Full Code of TibixDev/winboat for AI

main 74a7fddaf95d cached
102 files
1.9 MB
681.7k tokens
1630 symbols
1 requests
Download .txt
Showing preview only (2,051K chars total). Download the full file or copy to clipboard to get everything.
Repository: TibixDev/winboat
Branch: main
Commit: 74a7fddaf95d
Files: 102
Total size: 1.9 MB

Directory structure:
gitextract_lejw5r95/

├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── 1-bug-report.yml
│   │   ├── 2-feature-request.yml
│   │   └── config.yml
│   ├── renovate.json5
│   └── workflows/
│       └── release.yml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .prettierrc
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── build-guest-server.sh
├── data/
│   └── usb.ids
├── electron-builder.json
├── guest_server/
│   ├── RDPApps.reg
│   ├── argon2.go
│   ├── go.mod
│   ├── go.sum
│   ├── install.bat
│   ├── main.go
│   ├── nssm.sha1.txt
│   ├── scripts/
│   │   ├── apps.ps1
│   │   ├── get-icon.ps1
│   │   ├── time-sync.bat
│   │   └── update.ps1
│   ├── securekey.go
│   └── util.go
├── package.json
├── postcss.config.ts
├── scripts/
│   ├── build.ts
│   ├── dev-server.ts
│   └── private/
│       └── tsc.ts
├── src/
│   ├── main/
│   │   ├── main.ts
│   │   ├── static/
│   │   │   └── .gitkeep
│   │   └── tsconfig.json
│   ├── renderer/
│   │   ├── App.vue
│   │   ├── assets/
│   │   │   └── LICENSE.txt
│   │   ├── components/
│   │   │   ├── ConfigCard.vue
│   │   │   ├── WBContextMenu.vue
│   │   │   └── WBMenuItem.vue
│   │   ├── data/
│   │   │   ├── appicons.ts
│   │   │   ├── docker.ts
│   │   │   ├── internalapps.ts
│   │   │   └── podman.ts
│   │   ├── directives/
│   │   │   └── autoscroll.ts
│   │   ├── index.css
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── config.ts
│   │   │   ├── constants.ts
│   │   │   ├── containers/
│   │   │   │   ├── common.ts
│   │   │   │   ├── container.ts
│   │   │   │   ├── docker.ts
│   │   │   │   └── podman.ts
│   │   │   ├── exec-helper.ts
│   │   │   ├── install.ts
│   │   │   ├── migrate.ts
│   │   │   ├── qmp.ts
│   │   │   ├── specs.ts
│   │   │   ├── usbmanager.ts
│   │   │   └── winboat.ts
│   │   ├── main.ts
│   │   ├── public/
│   │   │   └── xel/
│   │   │       ├── CHANGELOG.md
│   │   │       ├── LICENSE.md
│   │   │       ├── README.md
│   │   │       ├── package.json
│   │   │       ├── themes/
│   │   │       │   ├── adwaita-dark.css
│   │   │       │   ├── adwaita.css
│   │   │       │   ├── base.css
│   │   │       │   ├── cupertino-dark.css
│   │   │       │   ├── cupertino.css
│   │   │       │   ├── fluent-dark.css
│   │   │       │   ├── fluent.css
│   │   │       │   ├── material-dark.css
│   │   │       │   └── material.css
│   │   │       └── xel.js
│   │   ├── router.ts
│   │   ├── tsconfig.json
│   │   ├── utils/
│   │   │   ├── bus.ts
│   │   │   ├── capitalize.ts
│   │   │   ├── debounce.ts
│   │   │   ├── getFreeRDP.ts
│   │   │   ├── icons.ts
│   │   │   ├── interval.ts
│   │   │   ├── log.ts
│   │   │   ├── openLink.ts
│   │   │   └── port.ts
│   │   ├── views/
│   │   │   ├── About.vue
│   │   │   ├── Apps.vue
│   │   │   ├── Blank.vue
│   │   │   ├── Config.vue
│   │   │   ├── Home.vue
│   │   │   ├── Migration.vue
│   │   │   └── SetupUI.vue
│   │   ├── vite-env.d.ts
│   │   └── window.d.ts
│   └── types.ts
├── tailwind.config.ts
└── vite.config.ts

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: winboat
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
thanks_dev: # Replace with a single thanks.dev username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']


================================================
FILE: .github/ISSUE_TEMPLATE/1-bug-report.yml
================================================
name: 🚨 Bug Report
description: Report an issue that you've encountered
title: "[Bug] "
labels:
    - bug
    - needs-triage
body:
    - type: markdown
      attributes:
          value: |
              Thanks for taking your time reporting an issue.
              Please make sure to look through the [issue tracker](https://github.com/TibixDev/winboat/issues) before submitting an issue as to avoid duplicates.
    - type: input
      attributes:
          label: What version of WinBoat are you running?
      validations:
          required: true
    - type: textarea
      attributes:
          label: Your Environment
          placeholder: |
              Linux Distro used: 
              Desktop Environment used:
              FreeRDP type and version used: (e.g. flatpak 3.17.1)
              Anything else you may find relevant...
      validations:
          required: true
    - type: textarea
      attributes:
          label: Steps to Reproduce / Context
          description: |
              Please provide clear steps to reproduce this issue. 
              If the issue is not completely reproducible, please provide some context about your case.
      validations:
          required: true
    - type: textarea
      attributes:
          label: Logs
          description: |
              Please drag 'n drop your `.log` files from `~/.winboat`, then format them accordingly. 
              WARNING: winboat.log contains your VM's password in plaintext, so if it's sensitive make sure to remove it before uploading."
          placeholder: |
              - [winboat.log](https://github.com/user-attachments/files/.../winboat.log)
              - [install.log](https://github.com/user-attachments/files/.../install.log)
              - [qmp.log](https://github.com/user-attachments/files/.../qmp.log)
              ...
      validations:
          required: true
    - type: textarea
      attributes:
          label: Expected Behavior
          description: Describe what should happen in this case.
      validations:
          required: true
    - type: textarea
      attributes:
          label: Current Behavior
          description: Tell us what happens instead of the Expected Behavior
      validations:
          required: true
    - type: textarea
      attributes:
          label: Possible Solution
          description: Optionally, suggest a fix/reason for the issue.
    - type: checkboxes
      attributes:
          label: Quality Notice
          options:
              - label: I have checked the issue tracker and verified that this bug is a unique case.
                required: true


================================================
FILE: .github/ISSUE_TEMPLATE/2-feature-request.yml
================================================
name: 🧩 Feature Request
description: Suggest a new feature, enhancement, or just share your idea
title: "[Feature] "
labels:
    - enhancement
body:
    - type: markdown
      attributes:
          value: |
              Thank you for taking your time submitting a Feature Request
              Please make sure to look through the [issue tracker](https://github.com/TibixDev/winboat/issues) before submitting a Feature Request as to avoid duplicates.
    - type: textarea
      attributes:
          label: Feature Description
          description: Please take your time in outlining your Feature Request, as it helps others understand it more clearly.
      validations:
          required: true
    - type: textarea
      attributes:
          label: Use-Case
          description: Why do you think this Feature would be useful?
      validations:
          required: true
    - type: textarea
      attributes:
          label: Proposed Implementation
          description: Optionally, you could provide us with a proposal as to how you'd implement this feature.
    - type: checkboxes
      attributes:
          label: Notice
          options:
              - label: I have checked the issue tracker and verified that this Feature Request has not been proposed before.
                required: true
              - label: I would like to help out implementing this feature


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
    - name: Ask for Help
      about: If you have any questions regarding WinBoat, join our Discord
      url: https://discord.gg/MEwmpWm4tN


================================================
FILE: .github/renovate.json5
================================================
{
    $schema: "https://docs.renovatebot.com/renovate-schema.json",
    extends: ["config:recommended", ":disableRateLimiting"],
    includePaths: ["**/src/renderer/lib/**"],
    regexManagers: [
        {
            fileMatch: ["src/renderer/lib/install\\.ts$"],
            matchStrings: ['"image":\\s*"(?<depName>ghcr\\.io/dockur/windows):(?<currentValue>[^"]+)"'],
            datasourceTemplate: "docker",
            depTypeTemplate: "container",
        },
    ],
}


================================================
FILE: .github/workflows/release.yml
================================================
name: Build WinBoat
permissions:
    contents: write
on:
    push:
        branches:
            - main
        tags:
            - "v*"
    workflow_dispatch:
        inputs:
            build_type:
                description: "Build type"
                required: true
                default: "all"
                type: choice
                options:
                    - all
                    - linux-only
                    - guest-server-only
jobs:
    build:
        runs-on: ubuntu-22.04
        if: >-
            (github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) ||
            (github.event_name == 'workflow_dispatch' && github.event.inputs.build_type != 'guest-server-only')
        steps:
            - name: Checkout code
              uses: actions/checkout@v5
            - name: Update USB IDs database
              run: |
                  echo "Removing old usb.ids file..."
                  rm -f data/usb.ids
                  echo "Downloading latest usb.ids from linux-usb.org..."
                  curl -o data/usb.ids http://www.linux-usb.org/usb.ids
                  echo "USB IDs database updated successfully"
            - name: Show build type
              run: |
                  if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
                    echo "Manual workflow triggered with build type: ${{ github.event.inputs.build_type }}"
                  else
                    echo "Automatic workflow triggered by ${{ github.event_name }}"
                  fi
            - name: Install system dependencies
              run: |
                  sudo apt-get update
                  sudo apt-get install -y libudev-dev libusb-1.0-0-dev
            - name: Set up Bun
              uses: oven-sh/setup-bun@v2
            - name: Set up Go
              uses: actions/setup-go@v5
              with:
                  go-version: "stable"
                  cache-dependency-path: "guest_server/go.sum"
            - name: Install dependencies
              run: bun ci
            - name: Build guest server and app
              run: bun run build:linux-gs
              env:
                  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
                  ELECTRON_BUILDER_COMPRESSION_LEVEL: 5
            - name: Derive artifact naming
              id: meta
              shell: bash
              run: |
                  bun -e "const p=require('./package.json'); console.log('NAME='+p.name)" >> "$GITHUB_OUTPUT"
                  bun -e "const p=require('./package.json'); console.log('VERSION='+p.version)" >> "$GITHUB_OUTPUT"
                  ARCH_FROM_FILE=$(ls dist/*.{AppImage,deb,rpm,tar.bz2} 2>/dev/null | head -n1 | xargs -I{} basename {} | sed -E 's/.*-([A-Za-z0-9_]+)\.[^.]+$/\1/')
                  if [ -n "$ARCH_FROM_FILE" ]; then
                    echo "ARCH=$ARCH_FROM_FILE" >> "$GITHUB_OUTPUT"
                  else
                    BUN_ARCH=$(bun -p "process.arch")
                    case "$BUN_ARCH" in
                      x64)   echo "ARCH=x86_64" >> "$GITHUB_OUTPUT" ;;
                      arm64) echo "ARCH=arm64"  >> "$GITHUB_OUTPUT" ;;
                      arm)   echo "ARCH=armv7l" >> "$GITHUB_OUTPUT" ;;
                      *)     echo "ARCH=$BUN_ARCH" >> "$GITHUB_OUTPUT" ;;
                    esac
                  fi
            - name: Upload AppImage
              uses: actions/upload-artifact@v4
              with:
                  name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}.appimage
                  path: dist/*.AppImage
                  if-no-files-found: ignore
            - name: Upload DEB
              uses: actions/upload-artifact@v4
              with:
                  name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}.deb
                  path: dist/*.deb
                  if-no-files-found: ignore
            - name: Upload RPM
              uses: actions/upload-artifact@v4
              with:
                  name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}.rpm
                  path: dist/*.rpm
                  if-no-files-found: ignore
            - name: Upload TAR.BZ2
              uses: actions/upload-artifact@v4
              with:
                  name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}.tar.bz2
                  path: dist/*.tar.bz2
                  if-no-files-found: ignore
            - name: Upload unpacked directory
              uses: actions/upload-artifact@v4
              with:
                  name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}-unpacked.zip
                  path: dist/linux-unpacked/**
                  if-no-files-found: ignore
            - name: Upload guest server zip
              uses: actions/upload-artifact@v4
              with:
                  name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}-guest_server.zip
                  path: dist/linux-unpacked/resources/guest_server/winboat_guest_server.zip
                  if-no-files-found: ignore
            # - name: Upload metadata
            #   uses: actions/upload-artifact@v4
            #   with:
            #     name: ${{ steps.meta.outputs.NAME }}-${{ steps.meta.outputs.VERSION }}-${{ steps.meta.outputs.ARCH }}-metadata
            #     path: |
            #       dist/latest-linux.yml
            #       dist/linux-unpacked/resources/guest_server/winboat_guest_server.zip
            #     if-no-files-found: ignore
    guest-server-only:
        runs-on: ubuntu-22.04
        if: github.event_name == 'workflow_dispatch' && github.event.inputs.build_type == 'guest-server-only'
        steps:
            - name: Checkout code
              uses: actions/checkout@v5
            - name: Show build type
              run: |
                  echo "Manual workflow triggered with build type: guest-server-only"
            - name: Set up Go
              uses: actions/setup-go@v5
              with:
                  go-version: "stable"
                  cache-dependency-path: "guest_server/go.sum"
            - name: Build guest server only
              run: bash build-guest-server.sh
            - name: Upload guest server artifacts
              uses: actions/upload-artifact@v4
              with:
                  name: guest-server-artifacts
                  path: guest_server/
    release:
        runs-on: ubuntu-22.04
        if: >-
            startsWith(github.ref, 'refs/tags/') ||
            (github.event_name == 'workflow_dispatch' && github.event.inputs.build_type == 'all')
        steps:
            - name: Checkout code
              uses: actions/checkout@v5
            - name: Update USB IDs database
              run: |
                  echo "Removing old usb.ids file..."
                  rm -f data/usb.ids
                  echo "Downloading latest usb.ids from linux-usb.org..."
                  curl -o data/usb.ids http://www.linux-usb.org/usb.ids
                  echo "USB IDs database updated successfully"
            - name: Show build type
              run: |
                  if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
                    echo "Manual workflow triggered with build type: ${{ github.event.inputs.build_type }}"
                  else
                    echo "Release workflow triggered by tag: ${{ github.ref_name }}"
                  fi
            - name: Install system dependencies
              run: |
                  sudo apt-get update
                  sudo apt-get install -y libudev-dev libusb-1.0-0-dev
            - name: Set up Bun
              uses: oven-sh/setup-bun@v2
            - name: Set up Go
              uses: actions/setup-go@v5
              with:
                  go-version: "stable"
                  cache-dependency-path: "guest_server/go.sum"
            - name: Install dependencies
              run: bun ci
            - name: Build guest server and app
              run: bun run build:linux-gs
              env:
                  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
                  ELECTRON_BUILDER_COMPRESSION_LEVEL: 5
            - name: Zip unpacked variant
              run: cd dist && zip -r winboat-linux-unpacked.zip linux-unpacked/
            - name: Create GitHub Release
              uses: softprops/action-gh-release@v1
              with:
                  files: |
                      dist/*.AppImage
                      dist/*.deb
                      dist/*.rpm
                      dist/*.tar.bz2
                      dist/winboat-linux-unpacked.zip
                      dist/latest-linux.yml
                      dist/linux-unpacked/resources/guest_server/winboat_guest_server.zip
                  draft: false
                  prerelease: false
                  generate_release_notes: true
              env:
                  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .gitignore
================================================
node_modules
dist
build

.vscode
.idea

result

package-lock.json
# src/renderer/public/*

# Custom
# *.exe
temp
guest_server/winboat_guest_server.exe
guest_server/winboat_guest_server.zip

================================================
FILE: .npmrc
================================================
engine-strict=true

================================================
FILE: .prettierignore
================================================

# Ignore xel's files
/src/renderer/public/xel


================================================
FILE: .prettierrc
================================================
{
    "tabWidth": 4,
    "printWidth": 120,
    "arrowParens": "avoid"
}


================================================
FILE: CODE_OF_CONDUCT.md
================================================
The WinBoat code of conduct is derived from [Ladybird](https://github.com/LadybirdBrowser/ladybird/blob/master/CODE_OF_CONDUCT.md).

- Participants will be tolerant of opposing views.
- Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks.
- When interpreting the words and actions of others, participants should always assume good intentions.
- Behavior that can be reasonably considered harassment will not be tolerated.


================================================
FILE: CONTRIBUTING.md
================================================
# WinBoat Contribution Guidelines

This document outlines the general contribution guidelines that apply to WinBoat.

> [!TIP]
> If you're new to open source, the [Open Source Etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) is an excellent read that you should check out before reading the rest of this document.

> [!IMPORTANT]
> Basic familiarity with Git and GitHub is required: If you are also new to these tools, visit [GitHub for complete beginners](https://github.com/git-guides#learning-git-basics) for a comprehensive introduction to them.

## General

1. **Avoid vibe-coding large features** - While probably most of us use AI while coding in our day to day lives, you should try to use it in a clever and targetted manner. Avoid submitting large vibe-coded features, because in 99% of the cases they will not behave as expected. These kinds of PR-s drain our energy and time that could be focused on something more useful, because what took a few seconds for the AI assistant to pump out will take us hours to test, discuss, and ultimately scrap because it doesn't take into account half the things a real programmer probably would. If you made heavy use of AI in your pull request, **indicate it**.

2. **Do not break existing code** - WinBoat aims to provide a seamless user experience, so please avoid the breakage of any existing features to the best of your abilities. Ensure that folks potentially upgrading to a new version that includes your changes won't have any problems, and address any migrations if they're required.

3. **Do rigorous testing** - WinBoat is used by tens of thousands of folks every day on a wide range of Linux distros, make sure that the PR you submit doesn't break compatibility on any of the mainstream distros.

4. **If you're unsure, ask** - If you want to start working on something large that you then intend for us to merge into WinBoat, it may be worth asking us first in an issue to understand if the feature is compatible with the philosophy of WinBoat and whether we want to include it. The same idea applies if you're unsure how to implement a feature in a way that's compatible with how WinBoat operates.

5. **Avoid introducing new programming languages** - WinBoat uses TypeScript & Vue for the Electron app, and Go & PowerShell for the Guest Server. Use these for getting things done.

6. **Avoid introducing new foreign dependencies** - Chances are there's an NPM / Go package for what you're trying to achieve or at least something similar. If there isn't, and it's a must to include it, discuss with us first.

## Branch Management

Before contributing, you should always create a personal fork of WinBoat, where you can create a dedicated branch for the changes you're aiming to make. Once you're finished with your changes, you can go ahead and create a PR aiming to merge your changes to WinBoat's main branch. If you're still in the process of development, but you'd still like to open a PR for visibility or discussion, make sure that you open a draft PR instead.

**Branch naming convention:** Use descriptive names like `feat/your-feature-name` or `fix/issue-description`

## Pull Requests & Commits

Your PR title should include what it's trying to do, e.g. `feat: Add VNC port into Configuration`, while the description should outline it in more detail, potentially explaining how the feature works, details on the implementation, and/or why the feature is useful.

Make sure you reference any issues that are potentially linked to your Pull Request using GitHub's [keywords](https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue), either via comments or commit messages.

WinBoat generally uses the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) naming scheme. You should aim to stick to these conventions whenever possible.

## Review & Merging Process

After you've submitted your changes as a PR, a maintainer may request changes to your code before merging. If everything goes well, your PR will be merged and shipped in the next version of WinBoat.

In case we find issues later on, the PR commits might be reverted and additional discussion will take place in the PR thread or a separate issue.


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2026 TibixDev

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
<div align="left">
  <table>
    <tr>
      <td>
        <img src="icons/winboat_logo.svg" alt="WinBoat Logo" width="150">
      </td>
      <td>
        <h1 style="color: #7C86FF; margin: 0; font-size: 32px;">WinBoat</h1>
        <p style="color: oklch(90% 0 0); font-size: 14px; margin: 5px 0;">Windows for Penguins.<br>
        Run Windows apps on 🐧 Linux with ✨ seamless integration</p>
      </td>
    </tr>
  </table>
</div>

## Screenshots

<div align="center">
  <img src="gh-assets/features/feat_dash.png" alt="WinBoat Dashboard" width="45%">
  <img src="gh-assets/features/feat_apps.png" alt="WinBoat Apps" width="45%">
  <img src="gh-assets/features/feat_native.png" alt="Native Windows" width="45%">
</div>

## ⚠️ Work in Progress ⚠️

WinBoat is currently in beta, so expect to occasionally run into hiccups and bugs. You should be comfortable with some level of troubleshooting if you decide to try it, however we encourage you to give it a shot anyway.

## Features

- **🎨 Elegant Interface**: Sleek and intuitive interface that seamlessly integrates Windows into your Linux desktop environment, making it feel like a native experience
- **📦 Automated Installs**: Simple installation process through our interface - pick your preferences & specs and let us handle the rest
- **🚀 Run Any App**: If it runs on Windows, it can run on WinBoat. Enjoy the full range of Windows applications as native OS-level windows in your Linux environment
- **🖥️ Full Windows Desktop**: Access the complete Windows desktop experience when you need it, or run individual apps seamlessly integrated into your Linux workflow
- **📁 Filesystem Integration**: Your home directory is mounted in Windows, allowing easy file sharing between the two systems without any hassle
- **✨ And many more**: Smartcard passthrough, resource monitoring, and more features being added regularly

## How Does It Work?

WinBoat is an Electron app which allows you to run Windows apps on Linux using a containerized approach. Windows runs as a VM inside a Docker/Podman container, we communicate with it using the [WinBoat Guest Server](https://github.com/TibixDev/winboat/tree/main/guest_server) to retrieve data we need from Windows. For compositing applications as native OS-level windows, we use FreeRDP together with Windows's RemoteApp protocol.

## Prerequisites

Before running WinBoat, ensure your system meets the following requirements:

- **RAM**: At least 4 GB of RAM
- **CPU**: At least 2 CPU threads
- **Storage**: At least 32 GB free space on the drive your selected install folder corresponds to
- **Virtualization**: KVM enabled in BIOS/UEFI
    - [How to enable virtualization](https://duckduckgo.com/?t=h_&q=how+to+enable+virtualization+in+%3Cmotherboard+brand%3E+bios&ia=web)
- **In case of Docker:**
  - **Docker**: Required for containerization
      - [Installation Guide](https://docs.docker.com/engine/install/)
      - **⚠️ NOTE:** Docker Desktop is **not** supported, you will run into issues if you use it
  - **Docker Compose v2**: Required for compatibility with docker-compose.yml files
      - [Installation Guide](https://docs.docker.com/compose/install/#plugin-linux-only)
  - **Docker User Group**: Add your user to the `docker` group
      - [Setup Instructions](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)
- **In case of Podman:**
  - **Podman**: Required for containerization
      - [Installation Guide](https://podman.io/docs/installation#installing-on-linux)
  - **Podman Compose**: Required for compatibility with podman-compose.yml files
      - [Installation Guide](https://github.com/containers/podman-compose?tab=readme-ov-file#installation)
- **FreeRDP**: Required for remote desktop connection (Please make sure you have **Version 3.x.x** with sound support included)
    - [Installation Guide](https://github.com/FreeRDP/FreeRDP/wiki/PreBuilds)
- [OPTIONAL] **Kernel Modules**: The `iptables` / `nftables` and `iptable_nat` kernel modules can be loaded for network autodiscovery and better shared filesystem performance, but this is not obligatory in newer versions of WinBoat
    - [Module loading instructions](https://rentry.org/rmfq2e5e)

## Downloading

You can download the latest Linux builds under the [Releases](https://github.com/TibixDev/winboat/releases) tab. We currently offer four variants:

- **AppImage:** A popular & portable app format which should run fine on most distributions
- **Unpacked:** The raw unpacked files, simply run the executable (`linux-unpacked/winboat`)
- **.deb:** The intended format for Debian based distributions
- **.rpm:** The intended format for Fedora based distributions
- **Nix (Nixpkgs)**
    1. Add the winboat package to your config (ensure using nixpkgs-unstable)
    using `environment.systemPackages = [pkgs.winboat];` or `home.packages = [pkgs.winboat];` if using home manager.
    2. Add the following lines to your nix configuration
    ```nix
    virtualisation.docker.enable = true;
    users.users.{yourUser}.extraGroups = ["docker"];
    ```
## Known Issues About Container Runtimes

- Docker Desktop is **unsupported** for now
- USB passthrough via Podman is currently **unsupported**

## Building WinBoat

- For building you need to have Bun and Go installed on your system
- Clone the repo (`git clone https://github.com/TibixDev/WinBoat`)
- Install the dependencies (`bun i`)
- Build the app and the guest server using `bun run build:linux-gs`
- You can now find the built app under `dist` with an AppImage and an Unpacked variant

## Running WinBoat in development mode

- Make sure you meet the [prerequisites](#prerequisites)
- Additionally, for development you need to have Bun and Go installed on your system
- Clone the repo (`git clone https://github.com/TibixDev/WinBoat`)
- Install the dependencies (`bun i`)
- Build the guest server (`bun run build:gs`)
- Run the app (`bun run dev`)

## Contributing

Contributions are welcome! Whether it's bug fixes, feature improvements, or documentation updates, we appreciate your help making WinBoat better.

**Please note**: We maintain a focus on technical contributions only. Pull requests containing political/sexual content, or other sensitive/controversial topics will not be accepted. Let's keep things focused on making great software! 🚀

Feel free to:

- Report bugs and issues
- Submit feature requests
- Contribute code improvements
- Help with documentation
- Share feedback and suggestions

Check out our issues page to get started, or feel free to open a new issue if you've found something that needs attention.

## License

WinBoat is licensed under the [MIT](https://github.com/TibixDev/winboat/blob/main/LICENSE) license

## Inspiration / Alternatives

These past few years some cool projects have surfaced with similar concepts, some of which we've also taken inspirations from.\
They're awesome and you should check them out:

- [WinApps](https://github.com/winapps-org/winapps)
- [Cassowary](https://github.com/casualsnek/cassowary)
- [dockur/windows](https://github.com/dockur/windows) (🌟 Also used in WinBoat)

## Socials & Contact

- [![Website](https://img.shields.io/badge/Website-winboat.app-blue?style=flat&logo=googlechrome&logoColor=white)](https://www.winboat.app/)
- [![Twitter](https://img.shields.io/badge/Twitter-@winboat__app-1DA1F2?style=flat&logo=x&logoColor=white)](https://x.com/winboat_app)
- [![Mastodon](https://img.shields.io/badge/Mastodon-@winboat-6364FF?style=flat&logo=mastodon&logoColor=white)](https://fosstodon.org/@winboat)
- [![Bluesky](https://img.shields.io/badge/Bluesky-winboat.app-00A8E8?style=flat&logo=bluesky&logoColor=white)](http://bsky.app/profile/winboat.app)
- [![Discord](https://img.shields.io/badge/Discord-Join_Community-5865F2?style=flat&logo=discord&logoColor=white)](http://discord.gg/MEwmpWm4tN)
- [![Email](https://img.shields.io/badge/Email-staff@winboat.app-D14836?style=flat&logo=gmail&logoColor=white)](mailto:staff@winboat.app)
- [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/TibixDev/winboat)

## Star History

<a href="https://www.star-history.com/#tibixdev/winboat&Date">
 <picture>
   <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=tibixdev/winboat&type=Date&theme=dark" />
   <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=tibixdev/winboat&type=Date" />
   <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=tibixdev/winboat&type=Date" />
 </picture>
</a>


================================================
FILE: SECURITY.md
================================================
# Security Policy

WinBoat takes security very seriously, if you believe you have found a security vulnerability within WinBoat, do the following steps:

1. Construct a PoC (Proof of Concept) showcasing how the vulnerability can be used in real world scenarios.
2. Make a video showcasing the vulnerability.
3. Send an email to `staff@winboat.app` with the subject line `[SECURITY] Example Vulnerability` or contact any maintainer on [Discord](https://discord.gg/MEwmpWm4tN) (faster).
4. We will respond as soon as possible and begin working on a fix if your vulnerability qualifies. During this time, please avoid disclosing it to any third parties or the general public for obvious reasons. Our commit messages will likely not indicate that it's a fix for a security vulnerability in specific, this is to minimize any N-day attacks.
5. A release will be made including the fix for the vulnerability, which will be mentioned in the patch notes.


================================================
FILE: build-guest-server.sh
================================================
#!/bin/bash
set -e

echo "Building guest server..."

# Variables
export GOOS=windows
export GOARCH=amd64
export PACKAGE=winboat-server
export VERSION="$(bun -p "require('./package.json').version")"
export COMMIT_HASH="$(git rev-parse --short HEAD)"
export BUILD_TIMESTAMP=$(date '+%Y-%m-%dT%H:%M:%S')
export LDFLAGS=(
  "-X 'main.Version=${VERSION}'"
  "-X 'main.CommitHash=${COMMIT_HASH}'"
  "-X 'main.BuildTimestamp=${BUILD_TIMESTAMP}'"
)

echo "Version: ${VERSION}"
echo "Commit Hash: ${COMMIT_HASH}"
echo "Build Timestamp: ${BUILD_TIMESTAMP}"

# Enter build directory
cd guest_server

# Verify nssm.exe integrity
echo "Verifying nssm.exe integrity..."
if [ -f "nssm.exe" ] && [ -f "nssm.sha1.txt" ]; then
    COMPUTED_HASH=$(sha1sum nssm.exe | cut -d' ' -f1)
    EXPECTED_HASH=$(cat nssm.sha1.txt | tr -d '[:space:]')
    
    if [ "$COMPUTED_HASH" = "$EXPECTED_HASH" ]; then
        echo "✓ nssm.exe integrity verified (SHA-1: $COMPUTED_HASH)"
    else
        echo "✗ nssm.exe integrity check FAILED!"
        echo "  Expected: $EXPECTED_HASH"
        echo "  Computed: $COMPUTED_HASH"
        exit 1
    fi
else
    echo "⚠ Warning: nssm.exe or nssm.sha1.txt not found, skipping integrity check"
fi

# Build the guest server
go build -ldflags="${LDFLAGS[*]}" -o winboat_guest_server.exe *.go
rm -f winboat_guest_server.zip
zip -r winboat_guest_server.zip .

echo "Guest server built: guest_server/winboat_guest_server.zip"

================================================
FILE: data/usb.ids
================================================
#
#	List of USB ID's
#
#	Maintained by Stephen J. Gowdy <linux.usb.ids@gmail.com>
#	If you have any new entries, please submit them via
#		http://www.linux-usb.org/usb-ids.html
#	or send entries as patches (diff -u old new) in the
#	body of your email (a bot will attempt to deal with it).
#	The latest version can be obtained from
#		http://www.linux-usb.org/usb.ids
#
# Version: 2025.09.15
# Date:    2025-09-15 20:34:02
#

# Vendors, devices and interfaces. Please keep sorted.

# Syntax:
# vendor  vendor_name
#	device  device_name				<-- single tab
#		interface  interface_name		<-- two tabs

0001  Fry's Electronics
	7778  Counterfeit flash drive [Kingston]
0002  Ingram
	0002  passport00
	7007  HPRT XT300
0003  Club Mac
0004  Nebraska Furniture Mart
0011  Unknown
	7788  counterfeit flash drive
001f  Walmart
	0b21  AB13X Headset Adapter
0040  Anyware Corporation
	073d  Mini Multimedia 2.4GHz Wireless Keyboard with Touch Pad
0042  DMT
0053  Planex
	5301  GW-US54ZGL 802.11bg
0078  Microntek
	0006  Joystick
0079  DragonRise Inc.
	0006  PC TWIN SHOCK Gamepad
	0011  Gamepad
	1800  Mayflash Wii U Pro Game Controller Adapter [DirectInput]
	181b  Venom Arcade Joystick
	1843  Mayflash GameCube Controller Adapter
	1844  Mayflash GameCube Controller
0080  Unknown
	a001  JMS578 based SATA bridge
0085  Boeye Technology Co., Ltd.
	0600  eBook Reader
0102  miniSTREAK
0105  Trust International B.V.
	145f  NW-3100 802.11b/g 54Mbps Wireless Network Adapter [zd1211]
0127  IBP
	0002  HDM Interface
	0127  ibp
0145  Unknown
	0112  Card Reader
017c  MLK
	145f  Trust Deskset
019c  mek
	0042  mek_42
0200  TP-Link
	0201  MA180 UMTS Modem
0204  Chipsbank Microelectronics Co., Ltd
	6025  CBM2080 / CBM2090 Flash drive controller
	6026  CBM1180 Flash drive controller
0218  Hangzhou Worlde
	0301  MIDI Port
0231  Sonuus Limited
02ad  HUMAX Co., Ltd.
	138c  PVR Mass Storage
0300  Ajazz
	1010  Akp153E Desktop Controller
	1020  AKP153R Desktop Controller
0303  Mini Automation Controller
0324  OCZ Technology Inc
	bc06  OCZ ATV USB 2.0 Flash Drive
	bc08  OCZ Rally2/ATV USB 2.0 Flash Drive
0325  OCZ Technology Inc
	ac02  ATV Turbo / Rally2 Dual Channel USB 2.0 Flash Drive
0386  LTS
	0001  PSX for USB Converter
03c3  ZWO
	120e  ASI120MC-S Planetary Camera
	1f10  EFF
	294f  ASI294MC Pro
03d9  Shenzhen Sinote Tech-Electron Co., Ltd
	0499  SE340D PC Remote Control
03da  Bernd Walter Computer Technology
	0002  HD44780 LCD interface
03e7  Intel
	2150  Myriad VPU [Movidius Neural Compute Stick]
	2485  Movidius MyriadX
	f63b  Myriad VPU [Movidius Neural Compute Stick]
03e8  EndPoints, Inc.
	0004  SE401 Webcam
	0008  101 Ethernet [klsi]
	0015  ATAPI Enclosure
	2123  SiPix StyleCam Deluxe
	8004  Aox 99001
03e9  Melexis (formerly Thesys Microelectronics)
03ea  Data Broadcasting Corp.
03eb  Atmel Corp.
	0902  4-Port Hub
	2002  Mass Storage Device
	2015  at90usbkey sample firmware (HID keyboard)
	2018  at90usbkey sample firmware (CDC ACM)
	2019  stk525 sample firmware (microphone)
	201c  at90usbkey sample firmware (HID mouse)
	201d  at90usbkey sample firmware (HID generic)
	2022  at90usbkey sample firmware (composite device)
	2040  LUFA Test PID
	2041  LUFA Mouse Demo Application
	2042  LUFA Keyboard Demo Application
	2043  LUFA Joystick Demo Application
	2044  LUFA CDC Demo Application
	2045  LUFA Mass Storage Demo Application
	2046  LUFA Audio Output Demo Application
	2047  LUFA Audio Input Demo Application
	2048  LUFA MIDI Demo Application
	2049  Stripe Snoop Magnetic Stripe Reader
	204a  LUFA CDC Class Bootloader
	204b  LUFA USB to Serial Adapter Project
	204c  LUFA RNDIS Demo Application
	204d  LUFA Combined Mouse and Keyboard Demo Application
	204e  LUFA Dual CDC Demo Application
	204f  LUFA Generic HID Demo Application
	2060  Benito Programmer Project
	2061  LUFA Combined Mass Storage and Keyboard Demo Application
	2062  LUFA Combined CDC and Mouse Demo Application
	2063  LUFA Datalogger Device
	2064  Interfaceless Control-Only LUFA Devices
	2065  LUFA Test and Measurement Demo Application
	2066  LUFA Multiple Report HID Demo
	2067  LUFA HID Class Bootloader
	2068  LUFA Virtual Serial/Mass Storage Demo
	2069  LUFA Webserver Project
	2103  JTAG ICE mkII
	2104  AVR ISP mkII
	2105  AVRONE!
	2106  STK600 development board
	2107  AVR Dragon
	2109  STK541 ZigBee Development Board
	210a  AT86RF230 [RZUSBSTICK] transceiver
	210d  XPLAIN evaluation kit (CDC ACM)
	2110  AVR JTAGICE3 Debugger and Programmer
	2111  Xplained Pro board debugger and programmer
	2122  XMEGA-A1 Explained evaluation kit
	2140  AVR JTAGICE3 (v3.x) Debugger and Programmer
	2141  ICE debugger
	2145  ATMEGA328P-XMINI (CDC ACM)
	2310  EVK11xx evaluation board
	2404  The Micro
	2fe4  ATxmega32A4U DFU bootloader
	2fe6  Cactus V6 (DFU)
	2fea  Cactus RF60 (DFU)
	2fee  atmega8u2 DFU bootloader
	2fef  atmega16u2 DFU bootloader
	2ff0  atmega32u2 DFU bootloader
	2ff1  at32uc3a3 DFU bootloader
	2ff3  atmega16u4 DFU bootloader
	2ff4  atmega32u4 DFU bootloader
	2ff6  at32uc3b0/1 DFU bootloader
	2ff7  at90usb82 DFU bootloader
	2ff8  at32uc3a0/1 DFU bootloader
	2ff9  at90usb646/647 DFU bootloader
	2ffa  at90usb162 DFU bootloader
	2ffb  at90usb AVR DFU bootloader
	2ffd  at89c5130/c5131 DFU bootloader
	2fff  at89c5132/c51snd1c DFU bootloader
	3301  at43301 4-Port Hub
	3312  4-Port Hub
	4102  AirVast W-Buddie WN210
	5601  at76c510 Prism-II 802.11b Access Point
	5603  Cisco 7920 WiFi IP Phone
	6119  AT91SAM CDC Demo Application
	6124  at91sam SAMBA bootloader
	6127  AT91SAM HID Keyboard Demo Application
	6129  AT91SAM Mass Storage Demo Application
	6200  AT91SAM HID Mouse Demo Application
	7603  D-Link DWL-120 802.11b Wireless Adapter [Atmel at76c503a]
	7604  at76c503a 802.11b Adapter
	7605  at76c503a 802.11b Adapter
	7606  at76c505 802.11b Adapter
	7611  at76c510 rfmd2948 802.11b Access Point
	7613  WL-1130 USB
	7614  AT76c505a Wireless Adapter
	7615  AT76C505AMX Wireless Adapter
	7617  AT76C505AS Wireless Adapter
	7800  Mini Album
	800c  Airspy HF+
	ff01  WootingOne
	ff02  WootingTwo
	ff07  Tux Droid fish dongle
03ec  Iwatsu America, Inc.
03ed  Mitel Corp.
03ee  Mitsumi
	0000  CD-R/RW Drive
	2501  eHome Infrared Receiver
	2502  eHome Infrared Receiver
	5609  Japanese Keyboard
	641f  WIF-0402C Bluetooth Adapter
	6438  Bluetooth Device
	6440  WML-C52APR Bluetooth Adapter
	6901  SmartDisk FDD
	6902  Floppy Disk Drive
	7500  CD-R/RW
	ffff  Dongle with BlueCore in DFU mode
03f0  HP, Inc
	0004  DeskJet 895c
	0011  OfficeJet G55
	0012  DeskJet 1125C Printer Port
	0024  KU-0316 Keyboard
	002a  LaserJet P1102
	0036  CCID Smartcard Keyboard KUS0133
	0053  DeskJet 2620 All-in-One Printer
	0101  ScanJet 4100c
	0102  PhotoSmart S20
	0104  DeskJet 880c/970c
	0105  ScanJet 4200c
	0107  CD-Writer Plus
	010c  Multimedia Keyboard Hub
	0111  G55xi Printer/Scanner/Copier
	0117  LaserJet 3200
	011c  hn210w 802.11b Adapter
	011d  Bluetooth 1.2 Interface [Broadcom BCM2035]
	0121  HP 39g+ [F2224A], 39gs [F2223A], 40gs [F2225A], 48gII [F2226A], 49g+ [F2228A], 50g [F2229A, NW240AA]
	0122  HID Internet Keyboard
	0125  DAT72 Tape
	0139  Barcode Scanner 4430
	0201  ScanJet 6200c
	0202  PhotoSmart S20
	0204  DeskJet 815c
	0205  ScanJet 3300c
	0207  CD-Writer Plus 8200e
	020c  Multimedia Keyboard
	0211  OfficeJet G85
	0212  DeskJet 1220C
	0217  LaserJet 2200
	0218  APOLLO P2500/2600
	0221  StreamSmart 400 [F2235AA]
	0223  Digital Drive Flash Reader
	022a  LaserJet CP1525nw/x
	0241  Link-5 micro dongle
	0304  DeskJet 810c/812c
	0305  ScanJet 4300c
	0307  CD-Writer+ CD-4e
	0311  OfficeJet G85xi
	0312  Color Inkjet CP1700
	0314  designjet 30/130 series
	0317  LaserJet 1200
	0324  SK-2885 keyboard
	034a  Elite Keyboard
	0401  ScanJet 5200c
	0404  DeskJet 830c/832c
	0405  ScanJet 3400cse
	0411  OfficeJet G95
	0412  Printing Support
	0417  LaserJet 1200 series
	0423  HS-COMBO Cardreader
	042a  LaserJet M1132 MFP
	0441  Prime [NW280AA, G8X92AA]
	046b  Dock G5
	0483  Engage Go 10 Tablet
	0504  DeskJet 885c
	0505  ScanJet 2100c
	0507  DVD+RW
	050c  5219 Wireless Keyboard
	0511  OfficeJet K60
	0512  DeskJet 450
	0517  LaserJet 1000
	051d  Bluetooth Interface
	052a  LaserJet M1212nf MFP
	0583  Engage Go 10 Tablet
	0601  ScanJet 6300c
	0604  DeskJet 840c
	0605  ScanJet 2200c
	0610  Z24i Monitor Hub
	0611  OfficeJet K60xi
	0612  business inkjet 3000
	0624  Bluetooth Dongle
	0641  X1200 Optical Mouse
	0653  DeskJet 3700 series
	0683  Engage Go 10 Tablet
	0701  ScanJet 5300c/5370c
	0704  DeskJet 825c
	0705  ScanJet 4400c
	070c  Personal Media Drive
	0711  OfficeJet K80
	0712  DeskJet 1180c
	0714  Printing Support
	0741  Prime Wireless Kit [FOK65AA]
	0801  ScanJet 7400c
	0804  DeskJet 816c
	0805  HP4470C
	0811  OfficeJet K80xi
	0817  LaserJet 3300
	0853  ENVY 5000 series
	0901  ScanJet 2300c
	0904  DeskJet 845c
	0912  Printing Support
	0917  LaserJet 3330
	0924  Modular Smartcard Keyboard
	0941  X500 Optical Mouse
	094a  Optical Mouse [672662-001]
	0a01  ScanJet 2400c
	0a17  color LaserJet 3700
	0b01  ScanJet 82x0C
	0b0c  Wireless Keyboard and Optical Mouse receiver
	0b17  LaserJet 2300d
	0c17  LaserJet 1010
	0c24  Bluetooth Dongle
	0d12  OfficeJet 9100 series
	0d17  LaserJet 1012
	0d4a  SK-2025 Keyboard
	0e17  LaserJet 1015
	0f0c  Wireless Keyboard and Optical Mouse receiver
	0f11  OfficeJet V40
	0f12  Printing Support
	0f17  LaserJet 1150
	0f2a  LaserJet 400 color M451dn
	1001  Photo Scanner 1000
	1002  PhotoSmart 140 series
	1004  DeskJet 970c/970cse
	1005  ScanJet 5400c
	1011  OfficeJet V40xi
	1016  Jornada 548 / iPAQ HW6515 Pocket PC
	1017  LaserJet 1300
	1024  Smart Card Keyboard
	1027  Virtual keyboard and mouse
	102a  LaserJet Professional P 1102w
	1102  PhotoSmart 240 series
	1104  DeskJet 959c
	1105  ScanJet 5470c/5490c
	110c  Pocket Media Drive
	1111  OfficeJet v60
	1116  Jornada 568 Pocket PC
	1117  LaserJet 1300n
	1151  PSC-750xi Printer/Scanner/Copier
	1198  HID-compliant mouse
	1202  PhotoSmart 320 series
	1204  DeskJet 930c
	1205  ScanJet 4500C/5550C
	1211  OfficeJet v60xi
	1217  LaserJet 2300L
	1227  Virtual CD-ROM
	1302  PhotoSmart 370 series
	1305  ScanJet 4570c
	1311  OfficeJet V30
	1312  DeskJet 460
	1317  LaserJet 1005
	1327  iLO Virtual Hub
	134a  Optical Mouse
	1405  ScanJet 3670
	1411  PSC 750
	1424  f2105 Monitor Hub
	1502  PhotoSmart 420 series
	1504  DeskJet 920c
	150c  Mood Lighting (Microchip Technology Inc.)
	1511  PSC 750xi
	1512  Printing Support
	1517  color LaserJet 3500
	1524  Smart Card Keyboard - KR
	1539  Mini Magnetic Stripe Reader
	1541  Prime [G8X92AA]
	154a  Laser Mouse
	1602  PhotoSmart 330 series
	1604  DeskJet 940c
	1605  ScanJet 5530C PhotoSmart
	1611  psc 780
	1617  LaserJet 3015
	161d  Wireless Rechargeable Optical Mouse (HID)
	1624  Smart Card Keyboard - JP
	1647  Z27n G2 Monitor Hub
	1702  PhotoSmart 380 series
	1704  DeskJet 948C
	1705  ScanJet 5590
	1711  psc 780xi
	1712  Printing Support
	1717  LaserJet 3020
	171d  Bluetooth 2.0 Interface [Broadcom BCM2045]
	1801  Inkjet P-2000U
	1802  PhotoSmart 470 series
	1804  DeskJet 916C
	1805  ScanJet 7650
	1811  PSC 720
	1812  OfficeJet Pro K550
	1817  LaserJet 3030
	181d  Bluetooth 2.0 Interface
	1902  PhotoSmart A430 series
	1904  DeskJet 3820
	1911  OfficeJet V45
	1917  LaserJet 3380
	1a02  PhotoSmart A510 series
	1a11  OfficeJet 5100 series
	1a17  color LaserJet 4650
	1b02  PhotoSmart A610 series
	1b04  DeskJet 3810
	1b05  ScanJet 4850C/4890C
	1b07  Premium Starter Webcam
	1c02  PhotoSmart A710 series
	1c17  Color LaserJet 2550l
	1d02  PhotoSmart A310 series
	1d17  LaserJet 1320
	1d24  Barcode scanner
	1e02  PhotoSmart A320 Printer series
	1e11  PSC-950
	1e17  LaserJet 1160 series
	1f02  PhotoSmart A440 Printer series
	1f11  PSC 920
	1f12  OfficeJet Pro K5300
	1f17  color LaserJet 5550
	1f1d  un2400 Gobi Wireless Modem
	2001  Floppy
	2002  Hub
	2004  DeskJet 640c
	2005  ScanJet 3570c
	2012  OfficeJet Pro K5400
	201d  un2400 Gobi Wireless Modem (QDL mode)
	2039  Cashdrawer
	2102  PhotoSmart 7345
	2104  DeskJet 630c
	2112  OfficeJet Pro L7500
	211d  Sierra MC5725 [ev2210]
	2202  PhotoSmart 7600 series
	2205  ScanJet 3500c
	2212  OfficeJet Pro L7600
	2217  color LaserJet 9500 MFP
	222a  LaserJet Pro MFP M125nw
	2302  PhotoSmart 7600 series
	2304  DeskJet 656c
	2305  ScanJet 3970c
	2311  OfficeJet d series
	2312  OfficeJet Pro L7700
	2317  LaserJet 4350
	231d  Broadcom 2070 Bluetooth Combo
	2402  PhotoSmart 7700 series
	2404  Deskjet F2280 series
	2405  ScanJet 4070 PhotoSmart
	2417  LaserJet 4250
	241d  Gobi 2000 Wireless Modem (QDL mode)
	2424  LP1965 19" Monitor Hub
	2441  Prime G2 [2AP18AA]
	2502  PhotoSmart 7700 series
	2504  DeskJet F4200 series
	2505  ScanJet 3770
	2512  OfficeJet Pro L7300 / Compaq LA2405 series monitor
	2514  4-port hub
	2517  LaserJet 2410
	251d  Gobi 2000 Wireless Modem
	2524  LP3065 30" Monitor Hub
	2602  PhotoSmart A520 series
	2605  ScanJet 3800c
	2611  OfficeJet 7100 series
	2617  Color LaserJet 2820 series
	2624  Pole Display (HP522 2 x 20 Line Display)
	2702  PhotoSmart A620 series
	2704  DeskJet 915
	2717  Color LaserJet 2830
	2724  Magnetic Stripe Reader IDRA-334133-HP
	2805  Scanjet G2710
	2811  PSC-2100
	2817  Color LaserJet 2840
	2841  OMEN MINDFRAME [3XT27AA]
	2902  PhotoSmart A820 series
	2911  PSC 2200
	2917  LaserJet 2420
	2a11  PSC 2150 series
	2a17  LaserJet 2430
	2a1d  Integrated Module with Bluetooth 2.1 Wireless technology
	2b11  PSC 2170 series
	2b17  LaserJet 1020
	2b4a  Business Slim Keyboard
	2c12  Officejet J4680
	2c17  LaserJet 1022
	2c24  Logitech M-UAL-96 Mouse
	2d05  Scanjet 7000
	2d11  OfficeJet 6110
	2d17  Printing Support
	2d2a  LaserJet Pro MFP M225dw
	2e11  PSC 1000
	2e17  LaserJet 2600n
	2e24  LP2275w Monitor Hub
	2f11  PSC 1200
	2f17  Color LaserJet 2605dn
	2f24  LP2475w Monitor Hub
	3002  PhotoSmart P1000
	3004  DeskJet 980c
	3005  ScanJet 4670v
	3011  PSC 1100 series
	3017  Printing Support
	304a  Slim Keyboard
	3102  PhotoSmart P1100 Printer w/ Card Reader
	3104  DeskJet 960c
	3111  OfficeJet 4100 series
	3117  EWS 2605dtn
	311d  Atheros AR9285 Malbec Bluetooth Adapter
	312a  LaserJet Pro M701n
	3202  PhotoSmart 1215
	3207  4 GB flash drive
	3211  OfficeJet 4105 series
	3217  LaserJet 3050
	3302  PhotoSmart 1218
	3304  DeskJet 990c
	3307  v125w Stick
	3312  OfficeJet J6410
	3317  LaserJet 3052
	3402  PhotoSmart 1115
	3404  DeskJet 6122
	3417  LaserJet 3055
	3502  PhotoSmart 230
	3504  DeskJet 6127c
	3511  PSC 2300
	3517  LaserJet 3390
	354a  Slim Keyboard
	3602  PhotoSmart 1315
	3611  PSC 2410 PhotoSmart
	3612  Officejet Pro 8000 A809
	3617  Color LaserJet 2605
	3711  PSC 2500
	3717  EWS UPD
	3724  Webcam
	3802  PhotoSmart 100
	3807  c485w Flash Drive
	3817  LaserJet P2015 series
	3902  PhotoSmart 130
	3912  Officejet Pro 8500
	3917  LaserJet P2014
	3a02  PhotoSmart 7150
	3a11  OfficeJet 5500 series
	3a17  Printing Support
	3a1d  hs2340 HSPA+ mobile broadband
	3b02  PhotoSmart 7150~
	3b05  Scanjet N8460
	3b11  PSC 1300 series
	3b17  LaserJet M1005 MFP
	3b2a  Color LaserJet MFP M277dw
	3c02  PhotoSmart 7350
	3c05  Scanjet Professional 1000 Mobile Scanner
	3c11  PSC 1358
	3c17  EWS UPD
	3d02  PhotoSmart 7350~
	3d11  OfficeJet 4215
	3d17  LaserJet P1005
	3e02  PhotoSmart 7550
	3e07  x755w Flash Drive
	3e17  LaserJet P1006
	3f02  PhotoSmart 7550~
	3f11  PSC-1315/PSC-1317
	3f17  Laserjet P1505
	4002  PhotoSmart 635/715/720/735/935/E337 (storage)
	4004  CP1160
	4102  PhotoSmart 618
	4105  ScanJet 4370
	4111  OfficeJet 7200 series
	4117  LaserJet 1018
	4202  PhotoSmart 812
	4205  ScanJet G3010
	4211  OfficeJet 7300 series
	4217  EWS CM1015
	4302  PhotoSmart 850 (ptp)
	4305  ScanJet G3110
	4311  OfficeJet 7400 series
	4317  Color LaserJet CM1017
	4402  PhotoSmart 935 (ptp)
	4417  EWS UPD
	4502  PhotoSmart 945 (PTP mode)
	4505  ScanJet G4010
	4507  External HDD
	4511  PhotoSmart 2600
	4512  E709n [Officejet 6500 Wireless]
	4517  EWS UPD
	4605  ScanJet G4050
	4611  PhotoSmart 2700
	4717  Color LaserJet CP1215
	4811  PSC 1600
	484a  Elite Dock G4
	4911  PSC 2350
	4b11  OfficeJet 6200
	4c11  PSC 1500 series
	4c17  EWS UPD
	4d11  PSC 1400
	4d17  EWS UPD
	4e11  PhotoSmart 2570 series
	4f11  OfficeJet 5600 (USBHUB)
	4f17  Color LaserJet CM1312 MFP
	5004  DeskJet 995c
	5011  PhotoSmart 3100 series
	5017  EWS UPD
	5111  PhotoSmart 3200 series
	5211  PhotoSmart 3300 series
	5307  v165w Stick
	5311  OfficeJet 6300
	5312  Officejet Pro 8500A
	5317  Color LaserJet CP2025 series
	5411  OfficeJet 4300
	5511  DeskJet F300 series
	5611  PhotoSmart C3180
	5617  LaserJet M1120 MFP
	5711  PhotoSmart C4100 series
	5717  LaserJet M1120n MFP
	5811  PhotoSmart C5100 series
	5817  LaserJet M1319f MFP
	581d  lt4112 Gobi 4G Module Network Device
	5911  PhotoSmart C6180
	5912  Officejet Pro 8600
	5a11  PhotoSmart C7100 series
	5b11  OfficeJet J2100 series
	5b12  Officejet Pro 8100
	5c11  PhotoSmart C4200 Printer series
	5c12  OfficeJet 6700
	5c17  LaserJet P2055 series
	5d11  PhotoSmart C5200 series
	5e11  PhotoSmart D7400 series
	6004  DeskJet 5550
	6102  Hewlett Packard Digital Camera
	6104  DeskJet 5650c
	6117  color LaserJet 3550
	6202  PhotoSmart 215
	6204  DeskJet 5150c
	6217  Color LaserJet 4700
	6302  PhotoSmart 318/612
	6317  Color LaserJet 4730mfp
	632a  LaserJet M203-M206
	6402  PhotoSmart 715 (ptp)
	6411  PhotoSmart C8100 series
	6417  LaserJet 5200
	6502  PhotoSmart 120 (ptp)
	6511  PhotoSmart C7200 series
	6602  PhotoSmart 320
	6611  PhotoSmart C4380 series
	6617  LaserJet 5200L
	6702  PhotoSmart 720 (ptp)
	6717  Color LaserJet 3000
	6802  PhotoSmart 620 (ptp)
	6811  PhotoSmart D5300 series
	6817  Color LaserJet 3800
	6911  PhotoSmart D7200 series
	6917  Color LaserJet 3600
	6a02  PhotoSmart 735 (ptp)
	6a11  PhotoSmart C6200 series
	6a17  LaserJet 4240
	6b02  PhotoSmart R707 (PTP mode)
	6b11  Photosmart C4500 series
	6c11  Photosmart C4480
	6c17  Color LaserJet 4610
	6f17  Color LaserJet CP6015 series
	7004  DeskJet 3320c
	7102  PhotoSmart 635 (PTP mode)
	7104  DeskJet 3420c
	7117  CM8060 Color MFP with Edgeline Technology
	7202  PhotoSmart 43x (ptp)
	7204  DeskJet 36xx
	7217  LaserJet M5035 MFP
	7302  PhotoSmart M307 (PTP mode)
	7304  DeskJet 35xx
	7311  Photosmart Premium C309
	7317  LaserJet P3005
	7404  Printing Support
	7417  LaserJet M4345 MFP
	7504  Printing Support
	7517  LaserJet M3035 MFP
	7604  DeskJet 3940
	7611  DeskJet F2492 All-in-One
	7617  LaserJet P3004
	7702  PhotoSmart R817 (PTP mode)
	7704  DeskJet D4100
	7717  CM8050 Color MFP with Edgeline Technology
	7804  DeskJet D1360
	7817  Color LaserJet CP3505
	7917  LaserJet M5025 MFP
	7a02  PhotoSmart M415 (PTP mode)
	7a04  DeskJet D2460
	7a11  Photosmart B109
	7a17  LaserJet M3027 MFP
	7b02  PhotoSmart M23 (PTP mode)
	7b17  Color LaserJet CP4005
	7c17  Color LaserJet CM6040 series
	7d04  DeskJet F2100 Printer series
	7d17  Color LaserJet CM4730 MFP
	7e04  DeskJet F4100 Printer series
	8017  LaserJet P4515
	8104  Printing Support
	8117  LaserJet P4015
	811c  Ethernet HN210E
	8204  Printing Support
	8207  FHA-3510 2.4GHz Wireless Optical Mobile Mouse
	8217  LaserJet P4014
	8317  LaserJet M9050 MFP
	8404  DeskJet 6800 series
	8417  LaserJet M9040 MFP
	8504  DeskJet 6600 series
	8604  DeskJet 5440
	8607  Optical Mobile Mouse
	8704  DeskJet 5940
	8711  Deskjet 2050 J510
	8804  DeskJet 6980 series
	8904  DeskJet 6940 series
	8911  Deskjet 1050 J410
	8c07  Digital Stereo Headset
	8c11  Deskjet F4500 series
	9002  PhotoSmart M437
	9102  PhotoSmart M537
	9207  HD-4110 Webcam
	9302  PhotoSmart R930 series
	9402  PhotoSmart R837
	942a  LaserJet Pro M12a
	9502  PhotoSmart R840 series
	952a  LaserJet Pro M12w
	9602  PhotoSmart M730 series
	9702  PhotoSmart R740 series
	9802  PhotoSmart Mz60 series
	9902  PhotoSmart M630 series
	9a02  PhotoSmart E330 series
	9b02  PhotoSmart M540 series
	9b07  Portable Drive
	9c02  PhotoSmart M440 series
	a004  DeskJet 5850c
	a011  Deskjet 3050A
	a407  Wireless Optical Comfort Mouse
	b002  PhotoSmart 7200 series
	b102  PhotoSmart 7200 series
	b107  v255w/c310w Flash Drive
	b116  Webcam
	b202  PhotoSmart 7600 series
	b302  PhotoSmart 7600 series
	b402  PhotoSmart 7700 series
	b502  PhotoSmart 7700 series
	b602  PhotoSmart 7900 series
	b702  PhotoSmart 7900 series
	b802  PhotoSmart 7400 series
	b902  PhotoSmart 7800 series
	ba02  PhotoSmart 8100 series
	bb02  PhotoSmart 8400 series
	bc02  PhotoSmart 8700 series
	bc11  Photosmart 7520 series
	bd02  PhotoSmart Pro B9100 series
	bef4  NEC Picty760
	c002  PhotoSmart 7800 series
	c102  PhotoSmart 8000 series
	c111  Deskjet 1510
	c202  PhotoSmart 8200 series
	c211  Deskjet 2540 series
	c302  DeskJet D2300
	c402  PhotoSmart D5100 series
	c502  PhotoSmart D6100 series
	c602  PhotoSmart D7100 series
	c702  PhotoSmart D7300 series
	c802  PhotoSmart D5060 Printer
	d104  Bluetooth Dongle
	d507  39gII [NW249AA]
	efbe  NEC Picty900
	f0be  NEC Picty920
	f1be  NEC Picty800
03f1  Genoa Technology
03f2  Oak Technology, Inc.
03f3  Adaptec, Inc.
	0020  AWN-8020 WLAN [Intersil PRISM 2.5]
	0080  AVC-1100 Audio Capture
	0083  AVC-2200 Device
	0087  AVC-2210 Loader
	0088  AVC-2210 Device
	008b  AVC-2310 Loader
	008c  AVC-2310 Device
	0094  eHome Infrared Receiver
	009b  AVC-1410 GameBridge TV NTSC
	2000  USBXchange Firmware Loader
	2001  USBXchange Adapter
	2002  USB2-Xchange Firmware Loader
	2003  USB2-Xchange Adapter
	4000  4-port hub
	adcc  Composite Device Support
03f4  Diebold, Inc.
03f5  Siemens Electromechanical
03f8  Epson Imaging Technology Center
03f9  KeyTronic Corp.
	0100  KT-2001 Keyboard
	0101  Keyboard
	0102  Keyboard Mouse
03fb  OPTi, Inc.
03fc  Elitegroup Computer Systems
03fd  Xilinx, Inc.
	0008  Platform Cable USB II
	0050  dfu downloader
03fe  Farallon Comunications
0400  National Semiconductor Corp.
	05dc  Rigol Technologies DS1000USB Oscilloscope
	0807  Bluetooth Dongle
	080a  Bluetooth Device
	09c4  Rigol Technologies DG1022 Arbitrary Waveform Generator
	1000  Mustek BearPaw 1200 Scanner
	1001  Mustek BearPaw 2400 Scanner
	1237  Hub
	a000  Smart Display Reference Device
	c359  Logitech Harmony
	c35b  Printing Support
	c55d  Rigol Technologies DS5000USB Oscilloscope
0401  National Registry, Inc.
0402  ALi Corp.
	5462  M5462 IDE Controller
	5602  M5602 Video Camera Controller
	5603  M5603 Video Camera Controller
	5606  M5606 Video Camera Controller [UVC]
	5621  M5621 High-Speed IDE Controller
	5623  M5623 Scanner Controller
	5627  Welland ME-740PS USB2 3.5" Power Saving Enclosure
	5632  M5632 Host-to-Host Link
	5635  M5635 Flash Card Reader
	5636  USB 2.0 Storage Device
	5637  M5637 IDE Controller
	5642  Storage Device
	5661  M5661 MP3 player
	5667  M5667 MP3 player
	8841  Newmine Camera
	9665  Gateway Webcam
0403  Future Technology Devices International, Ltd
	0000  H4SMK 7 Port Hub / Bricked Counterfeit FT232 Serial (UART) IC
	0232  Serial Converter
	1060  JTAG adapter
	1234  IronLogic RFID Adapter [Z-2 USB]
	1235  Iron Logic Z-397 RS-485/422 converter
	6001  FT232 Serial (UART) IC
	6002  Lumel PD12
	6007  Serial Converter
	6008  Serial Converter
	6009  Serial Converter
	6010  FT2232C/D/H Dual UART/FIFO IC
	6011  FT4232H Quad HS USB-UART/FIFO IC
	6014  FT232H Single HS USB-UART/FIFO IC
	6015  Bridge(I2C/SPI/UART/FIFO)
	601e  FT600 16-bit FIFO IC
	601f  FT601 32-bit FIFO IC
	6ee0  EZO Carrier Board
	6f70  HB-RF-USB
	7150  FT2232x wired for MPSSE+UART
	7151  FT2232x wired for MPSSE+UART
	7152  FreeCalypso dual UART with boot control
	7be8  FT232R
	8028  Dev board JTAG (FT232H based)
	8040  4 Port Hub
	8070  7 Port Hub
	8140  Vehicle Explorer Interface
	8210  MGTimer - MGCC (Vic) Timing System
	8348  FT232BM [SIENNA Serial Interface]
	8370  7 Port Hub
	8371  PS/2 Keyboard And Mouse
	8372  FT8U100AX Serial Port
	8508  Selectronic SP PRO
	87d0  Cressi Dive Computer Interface
	8a28  Rainforest Automation ZigBee Controller
	8a98  TIAO Multi-Protocol Adapter
	8b28  Alpermann+Velte TCI70
	8b29  Alpermann+Velte TC60 CLS
	8b2a  Alpermann+Velte Rubidium Q1
	8b2b  Alpermann+Velte TCD
	8b2c  Alpermann+Velte TCC70
	9090  SNAP Stick 200
	9132  LCD and Temperature Interface
	9133  CallerID
	9134  Virtual keyboard
	9135  Rotary Pub alarm
	9136  Pulsecounter
	9137  Ledbutton interface
	9e90  Marvell OpenRD Base/Client
	9f08  CIB-1894 Conclusion SmartLink Box:
	9f80  Ewert Energy Systems CANdapter
	a6d0  Texas Instruments XDS100v2 JTAG / BeagleBone A3
	a951  HCP HIT GSM/GPRS modem [Cinterion MC55i]
	a9a0  FT2232D - Dual UART/FIFO IC - FTDI
	abb8  Lego Mindstorms NXTCam
	b0c0  microSensys RFID device
	b0c1  microSensys RFID device
	b0c2  iID contactless RFID device
	b0c3  iID contactless RFID device
	b0c4  RFID device
	b0c5  RFID device
	b810  US Interface Navigator (CAT and 2nd PTT lines)
	b811  US Interface Navigator (WKEY and FSK lines)
	b812  US Interface Navigator (RS232 and CONFIG lines)
	b9b0  Fujitsu SK-16FX-100PMC V1.1
	baf8  Amontec JTAGkey
	bcd8  Stellaris Development Board
	bcd9  Stellaris Evaluation Board
	bcda  Stellaris ICDI Board
	bd90  PICAXE Download Cable [AXE027]
	bdc8  Egnite GmbH - JTAG/RS-232 adapter
	bfd8  OpenDCC
	bfd9  OpenDCC (Sniffer)
	bfda  OpenDCC (Throttle)
	bfdb  OpenDCC (Gateway)
	bfdc  OpenDCC (GBM)
	c580  HID UNIKEY dongle [F-Response]
	c630  lcd2usb interface
	c631  i2c-tiny-usb interface
	c632  xu1541 c64 floppy drive interface
	c633  TinyCrypt dongle
	c634  glcd2usb interface
	c7d0  RR-CirKits LocoBuffer-USB
	c8b8  Alpermann+Velte MTD TCU
	c8b9  Alpermann+Velte MTD TCU 1HE
	c8ba  Alpermann+Velte Rubidium H1
	c8bb  Alpermann+Velte Rubidium H3
	c8bc  Alpermann+Velte Rubidium S1
	c8bd  Alpermann+Velte Rubidium T1
	c8be  Alpermann+Velte Rubidium D1
	c8bf  Alpermann+Velte TC60 RLV
	cc48  Tactrix OpenPort 1.3 Mitsubishi
	cc49  Tactrix OpenPort 1.3 Subaru
	cc4a  Tactrix OpenPort 1.3 Universal
	cff8  Amontec JTAGkey
	d010  SCS PTC-IIusb
	d011  SCS Position-Tracker/TNC
	d012  SCS DRAGON 1
	d013  SCS DRAGON 1
	d388  Xsens converter
	d389  Xsens Wireless Receiver
	d38a  Xsens serial converter
	d38b  Xsens serial converter
	d38c  Xsens Wireless Receiver
	d38d  Xsens Awinda Station
	d38e  Xsens serial converter
	d38f  Xsens serial converter
	d491  Zolix Omni 1509 monochromator
	d578  Accesio USB-COM-4SM
	d678  GammaScout
	d6f8  UNI Black BOX
	d738  Propox JTAGcable II
	d739  Propox ISPcable III
	d9a9  Actisense USG-1 NMEA Serial Gateway
	d9aa  Actisense NGT-1 NMEA2000 PC Interface
	d9ab  Actisense NGT-1 NMEA2000 Gateway
	daf4  Qundis Serial Infrared Head
	e0d0  Total Phase Aardvark I2C/SPI Host Adapter
	e518  IBR IMB-usb
	e521  EVER Sinline XL Series UPS
	e6c8  PYRAMID Computer GmbH LCD
	e700  Elster Unicom III Optical Probe
	e729  Segway Robotic Mobility Platforms 200
	e888  Expert ISDN Control USB
	e889  USB-RS232 OptoBridge
	e88a  Expert mouseCLOCK USB II
	e88b  Precision Clock MSF USB
	e88c  Expert mouseCLOCK USB II HBG
	e8d8  Aaronia AG Spectran Spectrum Analyzer
	e8dc  Aaronia AG UBBV Preamplifier
	ea90  Eclo 1-Wire Adapter
	ecd9  miControl miCan-Stick
	ed71  HAMEG HO870 Serial Port
	ed72  HAMEG HO720 Serial Port
	ed73  HAMEG HO730 Serial Port
	ed74  HAMEG HO820 Serial Port
	eea2  PCStage Lite 32 channel DMX512 Interface
	ef10  FT1245BL
	f070  Serial Converter 422/485 [Vardaan VEUSB422R3]
	f0c8  SPROG Decoder Programmer
	f0c9  SPROG-DCC CAN-USB
	f0e9  Tagsys L-P101
	f0ee  Tagsys Medio P200x
	f1a0  Asix PRESTO Programmer
	f208  Papenmeier Braille-Display
	f3c0  4N-GALAXY Serial Converter
	f458  ABACUS ELECTRICS Optical Probe
	f608  CTI USB-485-Mini
	f60b  CTI USB-Nano-485
	f680  Suunto Sports Instrument
	f758  GW Instek GDS-8x0 Oscilloscope
	f7c0  ZeitControl Cardsystems TagTracer MIFARE
	f850  USB-UIRT (Universal Infrared Receiver+Transmitter)
	f918  Ant8 Logic Probe
	f9d9  Wetterempfanger 147.3kHz
	fa00  Matrix Orbital USB Serial
	fa01  Matrix Orbital MX2 or MX3
	fa02  Matrix Orbital MX4 or MX5
	fa03  Matrix Orbital VK/LK202 Family
	fa04  Matrix Orbital VK/LK204 Family
	fa20  Ross-Tech HEX-USB
	fc08  Crystalfontz CFA-632 USB LCD
	fc09  Crystalfontz CFA-634 USB LCD
	fc0b  Crystalfontz CFA-633 USB LCD
	fc0c  Crystalfontz CFA-631 USB LCD
	fc0d  Crystalfontz CFA-635 USB LCD
	fc0e  Crystalfontz CFA-533
	fc82  SEMC DSS-20/DSS-25 SyncStation
	fd48  ShipModul MiniPlex-4xUSB NMEA Multiplexer
	fd49  ShipModul MiniPlex-4xUSB-AIS NMEA Multiplexer
	fd4b  ShipModul MiniPlex NMEA Multiplexer
	ff08  ToolHouse LoopBack Adapter
	ff18  ScienceScope Logbook ML
	ff19  Logbook Bus
	ff1a  Logbook Bus
	ff1b  Logbook Bus
	ff1c  ScienceScope Logbook LS
	ff1d  ScienceScope Logbook HS
	ff1e  Logbook Bus
	ff1f  Logbook Bus
0404  NCR Corp.
	0202  78XX Scanner
	0203  78XX Scanner - Embedded System
	0310  K590 Printer, Self-Service
	0311  7167 Printer, Receipt/Slip
	0312  7197 Printer Receipt
	0320  5932-USB Keyboard
	0321  5953-USB Dynakey
	0322  5932-USB Enhanced Keyboard
	0323  5932-USB Enhanced Keyboard, Flash-Recovery/Download
	0324  5953-USB Enhanced Dynakey
	0325  5953-USB Enhanced Dynakey Flash-Recovery/Download
	0328  K016: USB-MSR ISO 3-track MSR: POS Standard (See HID pages)
	0329  K018: USB-MSR JIS 2-Track MSR: POS Standard
	032a  K016: USB-MSR ISO 3-Track MSR: HID Keyboard Mode
	032b  K016/K018: USB-MSR Flash-Recovery/Download
0405  Synopsys, Inc.
0406  Fujitsu-ICL Computers
0407  Fujitsu Personal Systems, Inc.
0408  Quanta Computer, Inc.
	0103  FV TouchCam N1 (Audio)
	030c  HP Webcam
	03b2  HP Webcam
	03f4  HP Webcam
	1030  FV TouchCam N1 (Video)
	3000  Optical dual-touch panel
	3001  Optical Touch Screen
	3008  Optical Touch Screen
	4033  HD Webcam
	a060  HD Webcam
0409  NEC Corp.
	0011  PC98 Series Layout Keyboard Mouse
	0012  ATerm IT75DSU ISDN TA
	0014  Japanese Keyboard
	0019  109 Japanese Keyboard with Bus-Powered Hub
	001a  PC98 Series Layout Keyboard with Bus-Powered Hub
	0025  Mini Keyboard with Bus-Powered Hub
	0027  MultiSync Monitor
	002c  Clik!-USB Drive
	0034  109 Japanese Keyboard with One-touch start buttons
	003f  Wireless Keyboard with One-touch start buttons
	0040  Floppy
	004e  SuperScript 1400 Series
	004f  Wireless Keyboard with One-touch start buttons
	0050  7-port hub
	0056  uPD720133 IDE bridge
	0058  HighSpeed Hub
	0059  HighSpeed Hub
	005a  HighSpeed Hub
	006a  Conceptronic USB Harddisk Box
	007d  MINICUBE2
	007e  PG-FP5 Flash Memory Programmer
	0081  SuperScript 1400 Series
	0082  SuperScript 1400 Series
	0094  Japanese Keyboard with One-touch start buttons
	0095  Japanese Keyboard
	00a9  AtermIT21L 128K Support Standard
	00aa  AtermITX72 128K Support Standard
	00ab  AtermITX62 128K Support Standard
	00ac  AtermIT42 128K Support Standard
	00ae  INSMATEV70G-MAX Standard
	00af  AtermITX70 128K Support Standard
	00b0  AtermITX80 128K Support Standard
	00b2  AtermITX80D 128K Support Standard
	00c0  Wireless Remocon
	00f7  Smart Display PK-SD10
	011d  e228 Mobile Phone
	0193  RVT-R Writer
	0203  HID Audio Controls
	021d  Aterm WL54SU2 802.11g Wireless Adapter [Atheros AR5523]
	0248  Aterm PA-WL54GU
	0249  Aterm WL300NU-G
	02b4  Aterm WL300NU-AG
	02b6  Aterm WL300NU-GS 802.11n Wireless Adapter
	02bc  Computer Monitor
	0300  LifeTouch Note
	0301  LifeTouch Note (debug mode)
	55aa  Hub
	55ab  Hub [iMac/iTouch kbd]
	8010  Intellibase Hub
	8011  Intellibase Hub
	efbe  P!cty 900 [HP DJ]
	f0be  P!cty 920 [HP DJ 812c]
040a  Kodak Co.
	0001  DVC-323
	0002  DVC-325
	0100  DC-220
	0110  DC-260
	0111  DC-265
	0112  DC-290
	0120  DC-240
	0121  DC-240 (PTP firmware)
	0130  DC-280
	0131  DC-5000
	0132  DC-3400
	0140  DC-4800
	0160  DC4800
	0170  DX3900
	0200  Digital Camera
	0300  EZ-200
	0400  MC3
	0402  Digital Camera
	0403  Z7590
	0500  DX3500
	0510  DX3600
	0525  DX3215
	0530  DX3700
	0535  EasyShare CX4230 Camera
	0540  LS420
	0550  DX4900
	0555  DX4330
	0560  CX4200
	0565  CX4210
	0566  CX4300
	0567  LS753
	0568  LS443
	0569  LS663
	0570  DX6340
	0571  CX6330
	0572  DX6440
	0573  CX6230
	0574  CX6200
	0575  DX6490
	0576  DX4530
	0577  DX7630
	0578  CX7300/CX7310
	0579  CX7220
	057a  CX7330
	057b  CX7430
	057c  CX7530
	057d  DX7440
	057e  C300
	057f  DX7590
	0580  Z730
	0581  Digital Camera
	0582  Digital Camera
	0583  Digital Camera
	0584  CX6445
	0585  Digital Camera
	0586  CX7525
	0587  Digital Camera
	0588  Digital Camera
	0589  EasyShare C360
	058a  C310
	058b  Digital Camera
	058c  C330
	058d  C340
	058e  V530
	058f  V550
	0590  Digital Camera
	0591  Digital Camera
	0592  Digital Camera
	0593  Digital Camera
	0594  Digital Camera
	0595  Digital Camera
	0596  Digital Camera
	0597  Digital Camera
	0598  EASYSHARE M1033 digital camera
	0599  Digital Camera
	059a  Digital Camera
	059b  Digital Camera
	059c  Digital Camera
	059d  Digital Camera
	059e  Digital Camera
	059f  Digital Camera
	05a0  Digital Camera
	05a1  Digital Camera
	05a2  Digital Camera
	05a3  Digital Camera
	05a4  Digital Camera
	05a5  Digital Camera
	05a6  Digital Camera
	05a7  Digital Camera
	05a8  Digital Camera
	05a9  Digital Camera
	05aa  Digital Camera
	05ab  Digital Camera
	05ac  Digital Camera
	05ad  Digital Camera
	05ae  Digital Camera
	05af  Digital Camera
	05b0  Digital Camera
	05b1  Digital Camera
	05b2  Digital Camera
	05b3  EasyShare Z710 Camera
	05b4  Digital Camera
	05b5  Digital Camera
	05b6  Digital Camera
	05b7  Digital Camera
	05b8  Digital Camera
	05b9  Digital Camera
	05ba  Digital Camera
	05bb  Digital Camera
	05bc  Digital Camera
	05bd  Digital Camera
	05be  Digital Camera
	05bf  Digital Camera
	05c0  Digital Camera
	05c1  Digital Camera
	05c2  Digital Camera
	05c3  Digital Camera
	05c4  Digital Camera
	05c5  Digital Camera
	05c8  EASYSHARE Z1485 IS Digital Camera
	05d3  EasyShare M320 Camera
	05d4  EasyShare C180 Digital Camera
	1001  EasyShare SV811 Digital Picture Frame
	4000  InkJet Color Printer
	4021  Photo Printer 6800
	4022  1400 Digital Photo Printer
	4023  Photo Printer 8800 / 9810
	402b  Photo Printer 6850
	402e  605 Photo Printer
	4034  805 Photo Printer
	4035  7000 Photo Printer
	4037  7010 Photo Printer
	4038  7015 Photo Printer
	404d  8810 Photo Printer
	404f  305 Photo Printer
	4056  ESP 7200 Series AiO
	4109  EasyShare Printer Dock Series 3
	410d  EasyShare G600 Printer Dock
	5010  Wireless Adapter
	5012  DBT-220 Bluetooth Adapter
	6001  i30
	6002  i40
	6003  i50
	6004  i60
	6005  i80
	6029  i900
	602a  i900
040b  Weltrend Semiconductor
	0a68  Func MS-3 gaming mouse [WT6573F MCU]
	2000  wired Keyboard [Dynex DX-WRK1401]
	2367  Human Interface Device [HP CalcPad 200 Calculator and Numeric Keypad]
	6510  Weltrend Bar Code Reader
	6520  Xploder Xbox Memory Unit (8MB)
	6533  Speed-Link Competition Pro
	6543  Manhattan Magnetic Card Strip Reader
040c  VTech Computers, Ltd
040d  VIA Technologies, Inc.
	3184  VNT VT6656 USB-802.11 Wireless LAN Adapter
	340b  FX-Audio DAC-X6
	340f  Audinst HUD-mx2
	6204  Vectro VT6204 IDE bridge
	6205  USB 2.0 Card Reader
040e  MCCI
040f  Echo Speech Corp.
0411  BUFFALO INC. (formerly MelCo., Inc.)
	0001  LUA-TX Ethernet [pegasus]
	0005  LUA-TX Ethernet
	0006  WLI-USB-L11 Wireless LAN Adapter
	0009  LUA2-TX Ethernet
	000b  WLI-USB-L11G-WR Wireless LAN Adapter
	000d  WLI-USB-L11G Wireless LAN Adapter
	0012  LUA-KTX Ethernet
	0013  USB2-IDE Adapter
	0016  WLI-USB-S11 802.11b Adapter
	0018  USB2-IDE Adapter
	001c  USB-IDE Bridge: DUB-PxxG
	0027  WLI-USB-KS11G 802.11b Adapter
	002a  SMSC USB97C202 "HD-HB300V2-EU"
	003d  LUA-U2-KTX Ethernet
	0044  WLI-USB-KB11 Wireless LAN Adapter
	004b  WLI-USB-G54 802.11g Adapter [Broadcom 4320 USB]
	004d  WLI-USB-B11 Wireless LAN Adapter
	0050  WLI2-USB2-G54 Wireless LAN Adapter
	005e  WLI-U2-KG54-YB WLAN
	0065  Python2 WDM Encoder
	0066  WLI-U2-KG54 WLAN
	0067  WLI-U2-KG54-AI WLAN
	006e  LUA-U2-GT 10/100/1000 Ethernet Adapter
	0089  RUF-C/U2 Flash Drive
	008b  Nintendo Wi-Fi
	0091  WLI-U2-KAMG54 Wireless LAN Adapter
	0092  WLI-U2-KAMG54 Bootloader
	0097  WLI-U2-KG54-BB
	00a9  WLI-U2-AMG54HP Wireless LAN Adapter
	00aa  WLI-U2-AMG54HP Bootloader
	00b3  PC-OP-RS1 RemoteStation
	00bc  WLI-U2-KG125S 802.11g Adapter [Broadcom 4320 USB]
	00ca  802.11n Network Adapter
	00cb  WLI-U2-G300N 802.11n Adapter
	00d8  WLI-U2-SG54HP
	00d9  WLI-U2-G54HP
	00da  WLI-U2-KG54L 802.11bg [ZyDAS ZD1211B]
	00db  External Hard Drive HD-PF32OU2 [Buffalo Ministation]
	00e8  WLI-UC-G300N Wireless LAN Adapter [Ralink RT2870]
	00f9  Portable DVD Writer (DVSM-PL58U2)
	0105  External Hard Drive HD-CEU2 [Drive Station]
	012c  SATA Bridge
	012e  WLI-UC-AG300N Wireless LAN Adapter
	0148  WLI-UC-G300HP Wireless LAN Adapter
	0150  WLP-UC-AG300 Wireless LAN Adapter
	0157  External Hard Drive HD-PEU2
	0158  WLI-UC-GNHP Wireless LAN Adapter
	015d  WLI-UC-GN Wireless LAN Adapter [Ralink RT3070]
	016f  WLI-UC-G301N Wireless LAN Adapter [Ralink RT3072]
	017f  Sony UWA-BR100 802.11abgn Wireless Adapter [Atheros AR7010+AR9280]
	019e  WLI-UC-GNP Wireless LAN Adapter
	01a1  MiniStation Metro
	01a2  WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070]
	01ba  SATA Bridge
	01dc  Ultra-Slim Portable DVD Writer (DVSM-PC58U2V)
	01de  External Hard Drive HD-PCTU3 [Buffalo MiniStation]
	01ea  SATA Bridge
	01ee  WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070]
	01f1  SATA Adapter [HD-LBU3]
	01fd  WLI-UC-G450 Wireless LAN Adapter
	027e  HD-LCU3
0412  Award Software International
0413  Leadtek Research, Inc.
	1310  WinFast TV - NTSC + FM
	1311  WinFast TV - NTSC + MTS + FM
	1312  WinFast TV - PAL BG + FM
	1313  WinFast TV - PAL BG+TXT + FM
	1314  WinFast TV Audio - PHP PAL I
	1315  WinFast TV Audio - PHP PAL I+TXT
	1316  WinFast TV Audio - PHP PAL DK
	1317  WinFast TV Audio - PHP PAL DK+TXT
	1318  WinFast TV - PAL I/DK + FM
	1319  WinFast TV - PAL N + FM
	131a  WinFast TV Audio - PHP SECAM LL
	131b  WinFast TV Audio - PHP SECAM LL+TXT
	131c  WinFast TV Audio - PHP SECAM DK
	131d  WinFast TV - SECAM DK + TXT + FM
	131e  WinFast TV - NTSC Japan + FM
	1320  WinFast TV - NTSC
	1321  WinFast TV - NTSC + MTS
	1322  WinFast TV - PAL BG
	1323  WinFast TV - PAL BG+TXT
	1324  WinFast TV Audio - PHP PAL I
	1325  WinFast TV Audio - PHP PAL I+TXT
	1326  WinFast TV Audio - PHP PAL DK
	1327  WinFast TV Audio - PHP PAL DK+TXT
	1328  WinFast TV - PAL I/DK
	1329  WinFast TV - PAL N
	132a  WinFast TV Audio - PHP SECAM LL
	132b  WinFast TV Audio - PHP SECAM LL+TXT
	132c  WinFast TV Audio - PHP SECAM DK
	132d  WinFast TV - SECAM DK + TXT
	132e  WinFast TV - NTSC Japan
	6023  EMP Audio Device
	6024  WinFast PalmTop/Novo TV Video
	6025  WinFast DTV Dongle (cold state)
	6026  WinFast DTV Dongle (warm state)
	6029  WinFast DTV Dongle Gold
	6125  WinFast DTV Dongle
	6126  WinFast DTV Dongle BDA Driver
	6a03  RTL2832 [WinFast DTV Dongle Mini]
	6f00  WinFast DTV Dongle (STK7700P based)
0414  Giga-Byte Technology Co., Ltd
0416  Winbond Electronics Corp.
	0035  W89C35 802.11bg WLAN Adapter
	0101  Hub
	0961  AVL Flash Card Reader
	3810  Smart Card Controller
	3811  Generic Controller - Single interface
	3812  Smart Card Controller_2Interface
	3813  Panel Display
	5011  Virtual Com Port
	511b  Nuvoton Nu-Link1 ICE
	511c  Nuvoton Nu-Link1 ICE
	511d  Nuvoton Nu-Link1 ICE/VCOM
	511e  Nuvoton Nu-Link1 MSC/VCOM
	5200  Nuvoton Nu-Link2-ME ICE/MSC/VCOM
	5201  Nuvoton Nu-Link2-Pro ICE/MSC/VCOM
	5210  Nuvoton Nu-Link2 MSC FW UPGRADE
	5211  Nuvoton Nu-Link2 HID FW UPGRADE
	5518  4-Port Hub
	551a  PC Sync Keypad
	551b  PC Async Keypad
	551c  Sync Tenkey
	551d  Async Tenkey
	551e  Keyboard
	551f  Keyboard w/ Sys and Media
	5521  Keyboard
	6481  16-bit Scanner
	7721  Memory Stick Reader/Writer
	7722  Memory Stick Reader/Writer
	7723  SD Card Reader
	b23c  Gaming Keyboard
	c141  Barcode Scanner
0417  Symbios Logic
0418  AST Research
0419  Samsung Info. Systems America, Inc.
	0001  IrDA Remote Controller / Creative Cordless Mouse
	0600  Desktop Wireless 6000
	2694  Laila
	3001  Xerox P1202 Laser Printer
	3003  Olivetti PG L12L
	3201  Docuprint P8ex
	3404  SCX-5x12 series
	3406  MFP 830 series
	3407  ML-912
	3601  InkJet Color Printer
	3602  InkJet Color Printer
	4602  Remote NDIS Network Device
	8001  Hub
	8002  SyncMaster HID Monitor Control
	aa03  SDAS-3 MP3 Player
041a  Phoenix Technologies, Ltd
041b  d'TV
041d  S3, Inc.
041e  Creative Technology, Ltd
	0414  HS-720 Headset
	1002  Nomad II
	1003  Blaster GamePad Cobra
	1050  GamePad Cobra
	1053  Mouse Gamer HD7600L
	200c  MuVo V100
	2020  Zen X-Fi 2
	2029  ZiiO
	2801  Prodikeys PC-MIDI multifunction keyboard
	3000  SoundBlaster Extigy
	3002  SB External Composite Device
	3010  SoundBlaster MP3+
	3014  SB External Composite Device
	3015  Sound Blaster Digital Music LX
	3020  SoundBlaster Audigy 2 NX
	3030  SB External Composite Device
	3040  SoundBlaster Live! 24-bit External SB0490
	3042  Sound Blaster X-Fi Surround 5.1
	3060  Sound Blaster Audigy 2 ZS External
	3061  SoundBlaster Audigy 2 ZS Video Editor
	3090  Sound Blaster Digital Music SX
	30d0  Xmod
	30d3  Sound Blaster Play!
	3100  IR Receiver (SB0540)
	3121  WoW tap chat
	3220  Sound Blaster Tactic(3D) Sigma sound card
	3232  Sound Blaster Premium HD [SBX]
	3237  SB X-Fi Surround 5.1 Pro
	3241  Sound Blaster JAM
	3263  SB X-Fi Surround 5.1 Pro
	3f00  E-Mu Xboard 25 MIDI Controller
	3f02  E-Mu 0202
	3f04  E-Mu 0404
	3f07  E-Mu Xmidi 1x1
	3f0a  E-Mu Tracker Pre
	3f0e  Xmidi 1x1 Tab
	4003  VideoBlaster Webcam Go Plus [W9967CF]
	4004  Nomad II MG
	4005  Webcam Blaster Go ES
	4007  Go Mini
	400a  PC-Cam 300
	400b  PC-Cam 600
	400c  Webcam 5 [pwc]
	400d  Webcam PD1001
	400f  PC-CAM 550 (Composite)
	4011  Webcam PRO eX
	4012  PC-CAM350
	4013  PC-Cam 750
	4015  CardCam Value
	4016  CardCam
	4017  Webcam Mobile [PD1090]
	4018  Webcam Vista [PD1100]
	4019  Audio Device
	401a  Webcam Vista [PD1100]
	401c  Webcam NX [PD1110]
	401d  Webcam NX Ultra
	401e  Webcam NX Pro
	401f  Webcam Notebook [PD1171]
	4020  Webcam NX
	4021  Webcam NX Ultra
	4022  Webcam NX Pro
	4028  Vista Plus cam [VF0090]
	4029  Webcam Live!
	402f  DC-CAM 3000Z
	4034  Webcam Instant
	4035  Webcam Instant
	4036  Webcam Live!/Live! Pro
	4037  Webcam Live!
	4038  ORITE CCD Webcam [PC370R]
	4039  Webcam Live! Effects
	403a  Webcam NX Pro 2
	403b  Creative Webcam Vista [VF0010]
	403c  Webcam Live! Ultra
	403d  Webcam Notebook Ultra
	403e  Webcam Vista Plus
	4041  Webcam Live! Motion
	4043  Vibra Plus Webcam
	4045  Live! Cam Voice
	4049  Live! Cam Voice
	4051  Live! Cam Notebook Pro [VF0250]
	4052  Live! Cam Vista IM
	4053  Live! Cam Video IM
	4054  Live! Cam Video IM
	4055  Live! Cam Video IM Pro
	4056  Live! Cam Video IM Pro
	4057  Live! Cam Optia
	4058  Live! Cam Optia AF
	405f  WebCam Vista (VF0330)
	4061  Live! Cam Notebook Pro [VF0400]
	4063  Live! Cam Video IM Pro
	4068  Live! Cam Notebook [VF0470]
	406c  Live! Cam Sync [VF0520]
	4083  Live! Cam Socialize [VF0640]
	4087  Live! Cam Socialize HD 1080 [VF0680]
	4088  Live! Cam Chat HD [VF0700]
	4095  Live! Cam Sync HD [VF0770]
	4097  Live! Cam Chat HD [VF0700/VF0790]
	4099  Creative VF0800 [RealSense Camera SR300]
	40a3  Live! Cam V3 2K [VF-0900]
	4100  Nomad Jukebox 2
	4101  Nomad Jukebox 3
	4102  NOMAD MuVo^2
	4106  Nomad MuVo
	4107  NOMAD MuVo
	4108  Nomad Jukebox Zen
	4109  Nomad Jukebox Zen NX
	410b  Nomad Jukebox Zen USB 2.0
	410c  Nomad MuVo NX
	410f  NOMAD MuVo^2 (Flash)
	4110  Nomad Jukebox Zen Xtra
	4111  Dell Digital Jukebox
	4116  MuVo^2
	4117  Nomad MuVo TX
	411b  Zen Touch
	411c  Nomad MuVo USB 2.0
	411d  Zen
	411e  Zen Micro
	4120  Nomad MuVo TX FM
	4123  Zen Portable Media Center
	4124  MuVo^2 FM (uHDD)
	4126  Dell DJ (2nd gen)
	4127  Dell DJ
	4128  NOMAD Jukebox Zen Xtra (mtp)
	412b  MuVo N200 with FM radio
	412f  Dell Digital Jukebox 2.Gen
	4130  Zen Micro (mtp)
	4131  DAP-HD0014 [Zen Touch] (MTP)
	4133  Mass Storage Device
	4134  Zen Neeon
	4136  Zen Sleek
	4137  Zen Sleek (mtp)
	4139  Zen Nano Plus
	413c  Zen MicroPhoto
	4150  Zen V (MTP)
	4151  Zen Vision:M (mtp)
	4152  Zen V Plus
	4153  Zen Vision W
	4154  Zen Stone
	4155  Zen Stone plus
	4157  Zen (MTP)
	500f  Broadband Blaster 8012U-V
	5015  TECOM Bluetooth Device
	ffff  Webcam Live! Ultra
041f  LCS Telegraphics
0420  Chips and Technologies
	1307  Celly SIM Card Reader
0421  Nokia Mobile Phones
	0001  E61i (PC Suite mode)
	0018  6288 GSM Smartphone
	0019  6288 GSM Smartphone (imaging mode)
	001a  6288 GSM Smartphone (file transfer mode)
	0024  5610 XpressMusic (Storage mode)
	0025  5610 XpressMusic (PC Suite mode)
	0028  5610 XpressMusic (Imaging mode)
	002d  6120 Phone (Mass storage mode)
	002e  6120 Phone (Media-Player mode)
	002f  6120 Phone (PC-Suite mode)
	0042  E51 (PC Suite mode)
	0064  3109c GSM Phone
	006b  5310 Xpress Music (PC Suite mode)
	006c  5310 Xpress music (Storage mode)
	006d  N95 (Storage mode)
	006e  N95 (Multimedia mode)
	006f  N95 (Printing mode)
	0070  N95 (PC Suite mode)
	0096  N810 Internet Tablet
	00aa  E71 (Mass storage mode)
	00ab  E71 (PC Suite mode)
	00e4  E71 (Media transfer mode)
	0103  ADL Flashing Engine AVALON Parent
	0104  ADL Re-Flashing Engine Parent
	0105  Nokia Firmware Upgrade Mode
	0106  ROM Parent
	010d  E75 (Storage Mode)
	010e  E75 (PC Suite mode)
	010f  E75 (Media transfer mode)
	0110  E75 (Imaging Mode)
	0154  5800 XpressMusic (PC Suite mode)
	0155  5800 XpressMusic (Multimedia mode)
	0156  5800 XpressMusic (Storage mode)
	0157  5800 XpressMusic (Imaging mode)
	0189  N810 Internet Tablet WiMAX
	0199  6700 Classic (msc)
	019a  6700 Classic (PC Suite)
	019b  6700 Classic (mtp)
	01b0  6303 classic Phone (PC Suite mode)
	01b1  6303 classic Phone (Mass storage mode)
	01b2  6303 classic Phone (Printing and media mode)
	01c7  N900 (Storage Mode)
	01c8  N900/N950 (PC-Suite Mode)
	0228  5530 XpressMusic
	023a  6730 Classic
	026a  N97 (mass storage)
	026b  N97 (Multimedia)
	026c  N97 (PC Suite)
	026d  N97 (Pictures)
	0295  660i/6600i Slide Phone (Mass Storage)
	0297  660i/6600i Slide Phone (Still Image)
	02e1  5230 (Storage mode)
	02e2  5230 (Multimedia mode)
	02e3  5230 (PC-Suite mode)
	02e4  5230 (Imaging mode)
	0360  C1-01 Ovi Suite Mode
	0396  C7-00 (Modem mode)
	03a4  C5 (Storage mode)
	03c0  C7-00 (Mass storage mode)
	03c1  C7-00 (Media transfer mode)
	03c2  Sim
	03cd  C7-00 (Nokia Suite mode)
	03d1  N950 (Storage Mode)
	03d2  N950 (PC Suite mode)
	0400  7600 Phone Parent
	0401  6650 GSM Phone
	0402  6255 Phone Parent
	0404  5510
	0405  9500 GSM Communicator
	0407  Music Player HDR-1(tm)
	040b  N-Gage GSM Phone
	040d  6620 Phone Parent
	040e  6651 Phone Parent
	040f  6230 GSM Phone
	0410  6630 Imaging Smartphone
	0411  7610 Phone Parent
	0413  6260 Phone Parent
	0414  7370
	0415  9300 GSM Smartphone
	0416  6170 Phone Parent
	0417  7270 Phone Parent
	0418  E70 (PC Suite mode)
	0419  E60 (PC Suite mode)
	041a  9500 GSM Communicator (RNDIS)
	041b  9300 GSM Smartphone (RNDIS)
	041c  7710 Phone Parent
	041d  6670 Phone Parent
	041e  6680
	041f  6235 Phone Parent
	0421  3230 Phone Parent
	0422  6681 Phone Parent
	0423  6682 Phone Parent
	0428  6230i Modem
	0429  6230i MultiMedia Card
	0431  770/N800 Internet Tablet
	0432  N90 Phone Parent
	0435  E70 (IP Passthrough/RNDIS mode)
	0436  E60 (IP Passthrough/RNDIS mode)
	0437  6265 Phone Parent
	043a  N70 USB Phone Parent
	043b  3155 Phone Parent
	043c  6155 Phone Parent
	043d  6270 Phone Parent
	0443  N70 Phone Parent
	0444  N91
	044c  NM850iG Phone Parent
	044d  E61 (PC Suite mode)
	044e  E61 (Data Exchange mode)
	044f  E61 (IP Passthrough/RNDIS mode)
	0453  9300 Phone Parent
	0456  6111 Phone Parent
	0457  6111 Phone (Printing mode)
	045a  6280 Phone Parent
	045d  6282 Phone Parent
	046e  6110 Navigator
	0471  6110 Navigator
	0485  MTP Device
	04b9  5300
	04bc  5200 (Nokia mode)
	04bd  5200 (Storage mode)
	04be  5200 (MTP mode)
	04c3  N800 Internet Tablet
	04ce  E90 Communicator (PC Suite mode)
	04cf  E90 Communicator (Storage mode)
	04f0  Nokia N95 (PC Suite mode)
	04f9  6300 (PC Suite mode)
	0508  E65 (PC Suite mode)
	0509  E65 (Storage mode)
	0518  N9 (Storage mode)
	0519  N9 (RNDIS/Ethernet mode)
	051a  N9 (PC Suite mode)
	054d  C2-01
	0600  Digital Pen SU-1B
	0610  CS-15 (Internet Stick 3G modem)
	0661  Lumia 620/920
	0662  301 Dual SIM (Mass Storage)
	0663  301 Dual SIM
	069a  130 [RM-1035] (Charging only)
	06fc  Lumia 640 Phone
	0720  X (RM-980)
	0800  Connectivity Cable DKU-5
	0801  Data Cable DKU-6
	0802  CA-42 Phone Parent
0422  ADI Systems, Inc.
0423  Computer Access Technology Corp.
	000a  NetMate Ethernet
	000c  NetMate2 Ethernet
	000d  USB Chief Analyzer
	0100  Generic Universal Protocol Analyzer
	0101  UPA USBTracer
	0200  Generic 10K Universal Protocol Analyzer
	020a  PETracer ML
	0300  Generic Universal Protocol Analyzer
	0301  2500H Tracer Trainer
	030a  PETracer x1
	1237  Andromeda Hub
0424  Microchip Technology, Inc. (formerly SMSC)
	0001  Integrated Hub
	0007  ULPI Transciever [USB3320]
	0140  LPC47M14x hub
	0acd  Sitecom Internal Multi Memory reader/writer MD-005
	0fdc  Floppy
	10cd  Sitecom Internal Multi Memory reader/writer MD-005
	2020  USB Hub
	20cd  Sitecom Internal Multi Memory reader/writer MD-005
	20fc  6-in-1 Card Reader
	2134  Hub
	2228  9-in-2 Card Reader
	223a  8-in-1 Card Reader
	2412  Hub
	2503  USB 2.0 Hub
	2504  Hub
	2507  hub
	2512  USB 2.0 Hub
	2513  2.0 Hub
	2514  USB 2.0 Hub
	2517  Hub
	2524  USB MultiSwitch Hub
	2602  USB 2.0 Hub
	2640  USB 2.0 Hub
	2660  Hub
	2744  Hub
	274d  HTC Hub Controller
	2807  Hub
	3fc7  RME Babyface audio system
	3fcc  RME MADIface
	4041  Hub and media card controller
	4060  Ultra Fast Media Reader
	4063  xD/SD/MS/MMC Reader
	4064  Ultra Fast Media Reader
	4712  USB4712 high-speed hub
	4713  USB4715 high-speed hub (2 ports disabled)
	4714  USB4715 high-speed hub (1 port disabled)
	4715  USB4715 high-speed hub
	4910  USB491x hub integrated functions (primary)
	4912  USB4912 high-speed hub (1 port disabled)
	4914  USB4914 high-speed hub
	4916  USB4916 high-speed hub
	4920  USB491x hub integrated functions (secondary)
	4925  USB4925 high-speed hub (primary upstream)
	4927  USB4927 high-speed hub (primary upstream)
	4931  USB4925/4927 high-speed hub (secondary upstream)
	4940  USB47xx/49xx hub integrated WinUSB
	4942  USB47xx/49xx hub integrated I2S audio port
	4943  USB47xx/49xx hub integrated I2S audio + HID port
	4944  USB47xx/49xx hub integrated serial port
	4946  USB47xx/49xx hub integrated serial + I2S audio port
	4947  USB47xx/49xx hub integrated serial + I2S audio + HID port
	494a  USB47xx/49xx hub integrated WinUSB + I2S audio port
	494b  USB47xx/49xx hub integrated WinUSB + I2S audio + HID port
	494c  USB47xx/49xx hub integrated WinUSB + serial port
	494e  USB47xx/49xx hub integrated WinUSB + serial + I2S audio port
	494f  USB47xx/49xx hub integrated WinUSB + serial + I2S audio + HID port
	5434  Hub
	5534  Hub
	5744  Hub
	5807  Hub
	7500  LAN7500 Ethernet 10/100/1000 Adapter
	9500  LAN9500/LAN9500i
	9512  SMC9512/9514 USB Hub
	9514  SMC9514 Hub
	9904  LAN9512/LAN9514 Ethernet 10/100 Adapter (SAL10)
	9e00  LAN9500A/LAN9500Ai
	a700  2 Port Hub
	ec00  SMSC9512/9514 Fast Ethernet Adapter
0425  Motorola Semiconductors HK, Ltd
	0101  G-Tech Wireless Mouse & Keyboard
	f102  G-Tech U+P Wireless Mouse
0426  Integrated Device Technology, Inc.
	0426  WDM Driver
0427  Motorola Electronics Taiwan, Ltd
0428  Advanced Gravis Computer Tech, Ltd
	4001  GamePad Pro
0429  Cirrus Logic
042a  Ericsson Austrian, AG
042b  Intel Corp.
	9316  8x931Hx Customer Hub
042c  Innovative Semiconductors, Inc.
042d  Micronics
042e  Acer, Inc.
	0380  MP3 Player
042f  Molex, Inc.
0430  Fujitsu Component Limited
	0002  109 Keyboard
	0005  Type 6 Keyboard
	000a  109 Japanese Keyboard
	000b  109 Japanese Keyboard
	0082  109 Japanese Keyboard
	0083  109 Japanese Keyboard
	00a2  Type 7 Keyboard
	0100  3-button Mouse
	0406  KVM Switch
	0502  Panasonic CF-19 HID Touch Panel
	100e  24.1" LCD Monitor v4 / FID-638 Mouse
	36ba  Bus Powered Hub
	a101  remote key/mouse for P3 chip
	a102  remote key/mouse/storage for P3 chip
	a103  remote storage for P3 chip
	a111  remote keyboard for P4 chip
	a112  remote mouse for P4 chip
	a113  remote storage for P4 chip
	a4a2  Ethernet (RNDIS and CDC ethernet)
	cdab  Raritan KVM dongle
0431  Itac Systems, Inc.
	0100  Mouse-Trak 3-button Track Ball
0432  Unisys Corp.
	0031  Document Processor
0433  Alps Electric, Inc.
	1101  IBM Game Controller
	abab  Keyboard
0434  Samsung Info. Systems America, Inc.
0435  Hyundai Electronics America
0436  Taugagreining HF
	0005  CameraMate (DPCM_USB)
0437  Framatome Connectors USA
0438  Advanced Micro Devices, Inc.
	7900  Root Hub
0439  Voice Technologies Group
043d  Lexmark International, Inc.
	0001  Laser Printer
	0002  Optra E310 Printer
	0003  Laser Printer
	0004  Laser Printer
	0005  Laser Printer
	0006  Laser Printer
	0007  Laser Printer
	0008  Inkjet Color Printer
	0009  Optra S2450 Printer
	000a  Laser Printer
	000b  Inkjet Color Printer
	000c  Optra E312 Printer
	000d  Laser Printer
	000e  Laser Printer
	000f  Laser Printer
	0010  Laser Printer
	0011  Laser Printer
	0012  Inkjet Color Printer
	0013  Inkjet Color Printer
	0014  InkJet Color Printer
	0015  InkJet Color Printer
	0016  Z12 Color Jetprinter
	0017  Z32 printer
	0018  Z52 Printer
	0019  Forms Printer
	001a  Z65 Printer
	001b  InkJet Photo Printer
	001c  Kodak Personal Picture Maker 200 Printer
	001d  InkJet Color Printer
	001e  InkJet Photo Printer
	001f  Kodak Personal Picture Maker 200 Card Reader
	0020  Z51 Printer
	0021  Z33 Printer
	0022  InkJet Color Printer
	0023  Laser Printer
	0024  Laser Printer
	0025  InkJet Color Printer
	0026  InkJet Color Printer
	0027  InkJet Color Printer
	0028  InkJet Color Printer
	0029  Scan Print Copy
	002a  Scan Print Copy
	002b  Scan Print Copy
	002c  Scan Print Copy
	002d  X70/X73 Scan/Print/Copy
	002e  Scan Print Copy
	002f  Scan Print Copy
	0030  Scan Print Copy
	0031  Scan Print Copy
	0032  Scan Print Copy
	0033  Scan Print Copy
	0034  Scan Print Copy
	0035  Scan Print Copy
	0036  Scan Print Copy
	0037  Scan Print Copy
	0038  Scan Print Copy
	0039  Scan Print Copy
	003a  Scan Print Copy
	003b  Scan Print Copy
	003c  Scan Print Copy
	003d  X83 Scan/Print/Copy
	003e  Scan Print Copy
	003f  Scan Print Copy
	0040  Scan Print Copy
	0041  Scan Print Copy
	0042  Scan Print Copy
	0043  Scan Print Copy
	0044  Scan Print Copy
	0045  Scan Print Copy
	0046  Scan Print Copy
	0047  Scan Print Copy
	0048  Scan Print Copy
	0049  Scan Print Copy
	004a  Scan Print Copy
	004b  Scan Print Copy
	004c  Scan Print Copy
	004d  Laser Printer
	004e  Laser Printer
	004f  InkJet Color Printer
	0050  InkJet Color Printer
	0051  Laser Printer
	0052  Laser Printer
	0053  InkJet Color Printer
	0054  InkJet Color Printer
	0057  Z35 Printer
	0058  Laser Printer
	005a  X63
	005c  InkJet Color Printer
	0060  X74/X75 Scanner
	0061  X74 Hub
	0065  X5130
	0069  X74/X75 Printer
	006d  X125
	006e  C510
	0072  X6170 Printer
	0073  InkJet Color Printer
	0078  InkJet Color Printer
	0079  InkJet Color Printer
	007a  Generic Hub
	007b  InkJet Color Printer
	007c  X1110/X1130/X1140/X1150/X1170/X1180/X1185
	007d  Photo 3150
	008a  4200 series
	008b  InkJet Color Printer
	008c  to CF/SM/SD/MS Card Reader
	008e  InkJet Color Printer
	008f  X422
	0091  Laser Printer E232
	0093  X5250
	0095  E220 Printer
	0096  2200 series
	0097  P6250
	0098  7100 series
	009e  P910 series Human Interface Device
	009f  InkJet Color Printer
	00a9  IBM Infoprint 1410 MFP
	00ab  InkJet Color Printer
	00b2  3300 series
	00b8  7300 series
	00b9  8300 series
	00ba  InkJet Color Printer
	00bb  2300 series
	00bd  Printing Support
	00be  Printing Support
	00bf  Printing Support
	00c0  6300 series
	00c1  4300 series
	00c7  Printing Support
	00c8  Printing Support
	00c9  Printing Support
	00cb  Printing Support
	00cc  E120(n)
	00d0  9300 series
	00d3  X340 Scanner
	00d4  X342n Scanner
	00d5  Printing Support
	00d6  X340 Scanner
	00e8  X642e
	00e9  2400 series
	00f6  3400 series
	00f7  InkJet Color Printer
	00ff  InkJet Color Printer
	010b  2500 series
	010d  3500-4500 series
	010f  6500 series
	0142  X3650 (Printer, Scanner, Copier)
	01bd  S800 Series Scanner
	01fa  S310 series
	020e  RICOH Aficio SP 4410SF
	4303  Xerox WorkCentre Pro 412
043e  LG Electronics USA, Inc.
	3001  AN-WF100 802.11abgn Wireless Adapter [Broadcom BCM4323]
	3004  TWFM-B003D 802.11abgn Wireless Module [Broadcom BCM43236B]
	3009  VC400
	3101  AN-WF500 802.11abgn + BT Wireless Adapter [Broadcom BCM43242]
	42bd  Flatron 795FT Plus Monitor
	4a4d  Flatron 915FT Plus Monitor
	7001  MF-PD100 Soul Digital MP3 Player
	7013  MP3 Player
	70d7  Mouse Scanner LSM-150 [LG Smart Scan Mouse]
	70f5  External HDD
	8484  LPC-U30 Webcam II
	8585  LPC-UC35 Webcam
	8888  Electronics VCS Camera II(LPC-U20)
	9800  Remote Control Receiver_iMON
	9803  eHome Infrared Receiver
	9804  DMB Receiver Control
	9a10  34UC88-B
	9a11  34UC88-B
	9a39  27UP850 - WK.AEUDCSN - External Monitor 4K
	9a57  UltraGear Monitor
	9c01  LGE Sync
043f  RadiSys Corp.
0440  Eizo Nanao Corp.
0441  Winbond Systems Lab.
	1456  Hub
0442  Ericsson, Inc.
	abba  Bluetooth Device
0443  Gateway, Inc.
	000e  Multimedia Keyboard
	002e  Millennium Keyboard
0445  Lucent Technologies, Inc.
0446  NMB Technologies Corp.
	6781  Keyboard with PS/2 Mouse Port
	6782  Keyboard
0447  Momentum Microsystems
0449  Duta Multi Robotik
	0128  Menengah
	0210  Dasar
	0612  Lanjutan
044a  Shamrock Tech. Co., Ltd
044b  WSI
044c  CCL/ITRI
044d  Siemens Nixdorf AG
044e  Alps Electric Co., Ltd
	1104  Japanese Keyboard
	1218  Electric Touchpad
	2002  MD-5500 Printer
	2014  Bluetooth Device
	3001  UGTZ4 Bluetooth
	3002  Bluetooth Device
	3003  Bluetooth Device
	3004  Bluetooth Adapter
	3005  Integrated Bluetooth Device
	3006  Bluetooth Adapter
	3007  Bluetooth Controller (ALPS/UGX)
	300c  Bluetooth Controller (ALPS/UGPZ6)
	300d  Bluetooth Controller (ALPS/UGPZ6)
	3010  Bluetooth Adapter
	3017  BCM2046 Bluetooth Device
	ffff  Compaq Bluetooth Multiport Module
044f  ThrustMaster, Inc.
	0400  HOTAS Cougar
	0402  HOTAS Warthog Joystick
	0404  HOTAS Warthog Throttle
	044f  GP XID
	0f00  Steering Wheel for Xbox
	0f03  Steering Wheel for Xbox
	0f07  Controller for Xbox
	0f0c  Xbox Memory Unit (8MB)
	0f10  Modena GT Wheel
	a003  Rage 3D Game Pad
	a01b  PK-GP301 Driving Wheel
	a0a0  Top Gun Joystick
	a0a1  Top Gun Joystick (rev2)
	a0a3  Fusion Digital GamePad
	a201  PK-GP201 PlayStick
	b108  T-Flight Hotas X Flight Stick
	b10a  T.16000M Joystick
	b203  360 Modena Pro Wheel
	b300  Firestorm Dual Power
	b303  FireStorm Dual Analog 2
	b304  Firestorm Dual Power
	b307  vibrating Upad
	b30b  Wireless VibrationPad
	b315  Firestorm Dual Analog 3
	b320  Dual Trigger gamepad PC/PS2 2.0
	b323  Dual Trigger 3-in-1 (PC Mode)
	b324  Dual Trigger 3-in-1 (PS3 Mode)
	b326  Gamepad GP XID
	b351  F16 MFD 1
	b352  F16 MFD 2
	b365  UbiSoft UbiConnect
	b603  force feedback Wheel
	b605  force feedback Racing Wheel
	b651  Ferrari GT Rumble Force Wheel
	b653  RGT Force Feedback Clutch Racing Wheel
	b654  Ferrari GT Force Feedback Wheel
	b677  T150 Racing Wheel
	b678  T.Flight Rudder Pedals
	b679  T-Rudder
	b687  TWCS Throttle
	b700  Tacticalboard
0450  DFI, Inc.
0451  Texas Instruments, Inc.
	0422  TUSB422 Port Controller with Power Delivery
	1234  Bluetooth Device
	1428  Hub
	1446  TUSB2040/2070 Hub
	16a2  CC Debugger
	16a6  BM-USBD1 BlueRobin RF heart rate sensor receiver
	16a8  CC2531 ZigBee
	16ae  CC2531 Dongle
	2036  TUSB2036 Hub
	2046  TUSB2046 Hub
	2077  TUSB2077 Hub
	2f90  SM-USB-DIG
	3200  TUSB3200 Boot Loader
	3410  TUSB3410 Microcontroller
	3f00  OMAP1610
	3f02  SMC WSKP100 Wi-Fi Phone
	505f  TUSB5052 Serial
	5153  TUSB5052 Hub
	5409  Frontier Labs NEX IA+ Digital Audio Player
	6000  AU5 ADSL Modem (pre-reenum)
	6001  AU5 ADSL Modem
	6060  RNDIS/BeWAN ADSL2+
	6070  RNDIS/BeWAN ADSL2+
	625f  TUSB6250 ATA Bridge
	8041  Hub
	8042  Hub
	8043  Hub
	8140  TUSB8041 4-Port Hub
	8142  TUSB8041 4-Port Hub
	9261  TUSB9261 SerialATA-Bridge
	926b  TUSB9260 Boot Loader
	bef3  CC1352R1 Launchpad
	dbc0  Device Bay Controller
	e001  GraphLink [SilverLink]
	e003  TI-84 Plus Calculator
	e004  TI-89 Titanium Calculator
	e008  TI-84 Plus Silver Calculator
	e00e  TI-89 Titanium Presentation Link
	e00f  TI-84 Plus Presentation Link
	e010  TI SmartPad Keyboard
	e011  Nspire CAS+ prototype
	e012  TI-Nspire Calculator
	e013  Network Bridge
	e01c  Data Collection Sled [Nspire Lab Cradle, Nspire Datatracker Cradle]
	e01e  Nspire CX Navigator Access Point
	e01f  Python Adapter (firmware install mode)
	e020  Python Adapter
	e022  Nspire CX II
	f430  MSP-FET430UIF JTAG Tool
	f432  eZ430 Development Tool
	ffff  Bluetooth Device
0452  Mitsubishi Electronics America, Inc.
	0021  HID Monitor Controls
	0050  Diamond Pro 900u CRT Monitor
	0051  Integrated Hub
	0100  Control Panel for Leica TCS SP5
0453  CMD Technology
	6781  NMB Keyboard
	6783  Chicony Composite Keyboard
0454  Vobis Microcomputer AG
0455  Telematics International, Inc.
0456  Analog Devices, Inc.
	7031  FX2 SPI/I2C Interface
	b672  Libiio based instrument [ADALM2000]
	b673  LibIIO based AD9363 Software Defined Radio [ADALM-PLUTO]
	f000  FT2232 JTAG ICE [gnICE]
	f001  FT2232H Hi-Speed JTAG ICE [gnICE+]
0457  Silicon Integrated Systems Corp.
	0150  Super Talent 1GB Flash Drive
	0151  Super Flash 1GB / GXT  64MB Flash Drive
	0162  SiS162 usb Wireless LAN Adapter
	0163  SiS163U 802.11 Wireless LAN Adapter
	0817  SiS-184-ASUS-4352.17 touch panel
	10e1  HID Touch Controller
	5401  Wireless Adapter RO80211GS-USB
0458  KYE Systems Corp. (Mouse Systems)
	0001  Mouse
	0002  Genius NetMouse Pro
	0003  Genius NetScroll+
	0006  Easy Mouse+
	0007  Trackbar Emotion
	000b  NetMouse Wheel(P+U)
	000c  TACOMA Fingerprint V1.06.01
	000e  Genius NetScroll Optical
	0013  TACOMA Fingerprint Mouse V1.06.01
	001a  Genius WebScroll+
	002e  NetScroll + Traveler / NetScroll 110
	0036  Pocket Mouse LE
	0039  NetScroll+ Superior
	003a  NetScroll+ Mini Traveler / Genius NetScroll 120
	004c  Slimstar Pro Keyboard
	0056  Ergo 300 Mouse
	0057  Enhanced Gaming Device
	0059  Enhanced Laser Device
	005a  Enhanced Device
	005b  Enhanced Device
	005c  Enhanced Laser Gaming Device
	005d  Enhanced Device
	0061  Bluetooth Dongle
	0066  Genius Traveler 1000 Wireless Mouse
	0072  Navigator 335
	0083  Bluetooth Dongle
	0087  Ergo 525V Laser Mouse
	0088  Genius Traveler 515 Laser
	0089  Genius Traveler 350
	00ca  Pen Mouse
	0100  EasyPen Tablet
	0101  CueCat
	011b  NetScroll T220
	0186  Genius DX-120 Mouse
	1001  Joystick
	1002  Game Pad
	1003  Genius VideoCam
	1004  Flight2000 F-23 Joystick
	100a  Aashima Technology Trust Sight Fighter Vibration Feedback Joystick
	2001  ColorPage-Vivid Pro Scanner
	2004  ColorPage-HR6 V1 Scanner
	2005  ColorPage-HR6/Vivid3
	2007  ColorPage-HR6 V2 Scanner
	2008  ColorPage-HR6 V2 Scanner
	2009  ColorPage-HR6A Scanner
	2011  ColorPage-Vivid3x Scanner
	2012  Plustek Scanner
	2013  ColorPage-HR7 Scanner
	2014  ColorPage-Vivid4
	2015  ColorPage-HR7LE Scanner
	2016  ColorPage-HR6X Scanner
	2017  ColorPage-Vivid3xe
	2018  ColorPage-HR7X
	2019  ColorPage-HR6X Slim
	201a  ColorPage-Vivid4xe
	201b  ColorPage-Vivid4x
	201c  ColorPage-HR8
	201d  ColorPage-Vivid 1200 X
	201e  ColorPage-Slim 1200
	201f  ColorPage-Vivid 1200 XE
	2020  ColorPage-Slim 1200 USB2
	2021  ColorPage-SF600
	3017  SPEED WHEEL 3 Vibration
	3018  Wireless 2.4Ghz Game Pad
	3019  10-Button USB Joystick with Vibration
	301a  MaxFire G-12U Vibration
	301c  Genius MaxFighter F-16U
	301d  Genius MaxFire MiniPad
	400f  Genius TVGo DVB-T02Q MCE
	4012  TVGo DVB-T03 [AF9015]
	5003  G-pen 560 Tablet
	5004  G-pen Tablet
	5005  Genius EasyPen M406
	5012  Genius EasyPen M406W
	5014  Genius EasyPen 340
	505e  Genius iSlim 330
	6001  GF3000F Ethernet Adapter
	7004  VideoCAM Express V2
	7006  Dsc 1.3 Smart Camera Device
	7007  VideoCAM Web
	7009  G-Shot G312 Still Camera Device
	700c  VideoCAM Web V3
	700d  G-Shot G511 Composite Device
	700f  VideoCAM Web
	7012  WebCAM USB2.0
	7014  VideoCAM Live V3
	701c  G-Shot G512 Still Camera
	7020  Sim 321C
	7025  Eye 311Q Camera
	7029  Genius Look 320s (SN9C201 + HV7131R)
	702c  Trek 320R Camera
	702f  Genius Slim 322
	7035  i-Look 325T Camera
	7045  Genius Look 1320 V2
	704c  Genius i-Look 1321
	704d  Slim 1322AF
	7055  Slim 2020AF camera
	705a  Asus USB2.0 Webcam
	705c  Genius iSlim 1300AF
	7061  Genius iLook 1321 V2
	7066  Acer Crystal Eye Webcam
	7067  Genius iSlim 1300AF V2
	7068  Genius eFace 1325R
	706d  Genius iSlim 2000AF V2
	7076  Genius FaceCam 312
	7079  FaceCam 2025R
	707f  TVGo DVB-T03 [RTL2832]
	7088  WideCam 1050
	7089  Genius FaceCam 320
	708c  Genius WideCam F100
0459  Adobe Systems, Inc.
045a  SONICblue, Inc.
	07da  Supra Express 56K modem
	0b4a  SupraMax 2890 56K Modem [Lucent Atlas]
	0b68  SupraMax 56K Modem
	5001  Rio 600 MP3 Player
	5002  Rio 800 MP3 Player
	5003  Nike Psa/Play MP3 Player
	5005  Rio S10 MP3 Player
	5006  Rio S50 MP3 Player
	5007  Rio S35 MP3 Player
	5008  Rio 900 MP3 Player
	5009  Rio S30 MP3 Player
	500d  Fuse MP3 Player
	500e  Chiba MP3 Player
	500f  Cali MP3 Player
	5010  Rio S11 MP3 Player
	501c  Virgin MPF-1000
	501d  Rio Fuse
	501e  Rio Chiba
	501f  Rio Cali
	503f  Cali256 MP3 Player
	5042  Rio Forge
	5202  Rio Riot MP3 Player
	5210  Rio Karma Music Player
	5220  Rio Nitrus MP3 Player
	5221  Rio Eigen
045b  Hitachi, Ltd
	0053  RX610 RX-Stick
	0229  mSATA Adapter [renkforce Pi-102]
045d  Nortel Networks, Ltd
045e  Microsoft Corp.
	0007  SideWinder Game Pad
	0008  SideWinder Precision Pro
	0009  IntelliMouse
	000b  Natural Keyboard Elite
	000e  SideWinder® Freestyle Pro
	0014  Digital Sound System 80
	001a  SideWinder Precision Racing Wheel
	001b  SideWinder Force Feedback 2 Joystick
	001c  Internet Keyboard Pro
	001d  Natural Keyboard Pro
	001e  IntelliMouse Explorer
	0023  Trackball Optical
	0024  Trackball Explorer
	0025  IntelliEye Mouse
	0026  SideWinder GamePad Pro
	0027  SideWinder PnP GamePad
	0028  SideWinder Dual Strike
	0029  IntelliMouse Optical
	002b  Internet Keyboard Pro
	002d  Internet Keyboard
	002f  Integrated Hub
	0033  Sidewinder Strategic Commander
	0034  SideWinder Force Feedback Wheel
	0038  SideWinder Precision 2
	0039  IntelliMouse Optical
	003b  SideWinder Game Voice
	003c  SideWinder Joystick
	0040  Wheel Mouse Optical
	0047  IntelliMouse Explorer 3.0
	0048  Office Keyboard 1.0A
	0053  Optical Mouse
	0059  Wireless IntelliMouse Explorer
	005c  Office Keyboard (106/109)
	005f  Wireless MultiMedia Keyboard
	0061  Wireless MultiMedia Keyboard (106/109)
	0063  Wireless Natural MultiMedia Keyboard
	0065  Wireless Natural MultiMedia Keyboard (106/109)
	006a  Wireless Optical Mouse (IntelliPoint)
	006d  eHome Remote Control Keyboard keys
	006e  MN-510 802.11b Wireless Adapter [Intersil ISL3873B]
	006f  Smart Display Reference Device
	0070  Wireless MultiMedia Keyboard
	0071  Wireless MultiMedia Keyboard (106/109)
	0072  Wireless Natural MultiMedia Keyboard
	0073  Wireless Natural MultiMedia Keyboard (106/109)
	0079  IXI Ogo CT-17 handheld device
	007a  10/100 USB NIC
	007d  Notebook Optical Mouse
	007e  Wireless Transceiver for Bluetooth
	0080  Digital Media Pro Keyboard
	0083  Basic Optical Mouse
	0084  Basic Optical Mouse
	008a  Wireless Optical Desktop Receiver 2.0A
	008b  Dual Receiver Wireless Mouse (IntelliPoint)
	008c  Wireless Intellimouse Explorer 2.0
	0095  IntelliMouse Explorer 4.0 (IntelliPoint)
	009c  Wireless Transceiver for Bluetooth 2.0
	009d  Wireless Optical Desktop 3.0
	00a0  eHome Infrared Receiver
	00a4  Compact Optical Mouse, model 1016
	00b0  Digital Media Pro Keyboard
	00b4  Digital Media Keyboard 1.0A
	00b9  Wireless Optical Mouse 3.0
	00bb  Fingerprint Reader
	00bc  Fingerprint Reader
	00bd  Fingerprint Reader
	00c2  MN-710 802.11g Wireless Adapter [Intersil ISL3886]
	00c9  MTP Device
	00ca  Fingerprint Reader
	00cb  Basic Optical Mouse v2.0
	00ce  Generic PPC Flash device
	00d1  Optical Mouse with Tilt Wheel
	00d2  Notebook Optical Mouse with Tilt Wheel
	00da  eHome Infrared Receiver
	00db  Natural Ergonomic Keyboard 4000 V1.0
	00dd  Comfort Curve Keyboard 2000 V1.0
	00e1  Wireless Laser Mouse 6000 Receiver
	00f4  LifeCam VX-6000 (SN9C20x + OV9650)
	00f5  LifeCam VX-3000
	00f6  Comfort Optical Mouse 1000
	00f7  LifeCam VX-1000
	00f8  LifeCam NX-6000
	00f9  Wireless Desktop Receiver 3.1
	0202  Xbox Controller
	0280  Xbox Memory Unit (8MB)
	0283  Xbox Communicator
	0284  Xbox DVD Playback Kit
	0285  Xbox Controller S
	0288  Xbox Controller S Hub
	0289  Xbox Controller S
	028b  Xbox360 DVD Emulator
	028d  Xbox360 Memory Unit 64MB
	028e  Xbox360 Controller
	028f  Xbox360 Wireless Controller via Plug & Charge Cable
	0290  Xbox360 Performance Pipe (PIX)
	0291  Xbox 360 Wireless Receiver for Windows
	0292  Xbox360 Wireless Networking Adapter
	029c  Xbox360 HD-DVD Drive
	029d  Xbox360 HD-DVD Drive
	029e  Xbox360 HD-DVD Memory Unit
	02a0  Xbox360 Big Button IR
	02a8  Xbox360 Wireless N Networking Adapter [Atheros AR7010+AR9280]
	02ad  Xbox NUI Audio
	02ae  Xbox NUI Camera
	02b0  Xbox NUI Motor
	02b6  Xbox360 Bluetooth Wireless Headset
	02bb  Kinect Audio
	02be  Kinect for Windows NUI Audio
	02bf  Kinect for Windows NUI Camera
	02c2  Kinect for Windows NUI Motor
	02d1  Xbox One Controller
	02d5  Xbox One Digital TV Tuner
	02dd  Xbox One Controller (Firmware 2015)
	02e0  Xbox One Wireless Controller
	02e3  Xbox One Elite Controller
	02e6  Xbox Wireless Adapter for Windows
	02ea  Xbox One Controller
	02f3  Xbox One Chatpad
	02fd  Xbox One S Controller [Bluetooth]
	02fe  Xbox Wireless Adapter for Windows
	0306  Surface Pro 7 SD Card Reader
	0400  Windows Powered Pocket PC 2002
	0401  Windows Powered Pocket PC 2002
	0402  Windows Powered Pocket PC 2002
	0403  Windows Powered Pocket PC 2002
	0404  Windows Powered Pocket PC 2002
	0405  Windows Powered Pocket PC 2002
	0406  Windows Powered Pocket PC 2002
	0407  Windows Powered Pocket PC 2002
	0408  Windows Powered Pocket PC 2002
	0409  Windows Powered Pocket PC 2002
	040a  Windows Powered Pocket PC 2002
	040b  Windows Powered Pocket PC 2002
	040c  Windows Powered Pocket PC 2002
	040d  Windows Powered Pocket PC 2002
	040e  Windows Powered Pocket PC 2002
	040f  Windows Powered Pocket PC 2002
	0410  Windows Powered Pocket PC 2002
	0411  Windows Powered Pocket PC 2002
	0412  Windows Powered Pocket PC 2002
	0413  Windows Powered Pocket PC 2002
	0414  Windows Powered Pocket PC 2002
	0415  Windows Powered Pocket PC 2002
	0416  Windows Powered Pocket PC 2002
	0417  Windows Powered Pocket PC 2002
	0432  Windows Powered Pocket PC 2003
	0433  Windows Powered Pocket PC 2003
	0434  Windows Powered Pocket PC 2003
	0435  Windows Powered Pocket PC 2003
	0436  Windows Powered Pocket PC 2003
	0437  Windows Powered Pocket PC 2003
	0438  Windows Powered Pocket PC 2003
	0439  Windows Powered Pocket PC 2003
	043a  Windows Powered Pocket PC 2003
	043b  Windows Powered Pocket PC 2003
	043c  Windows Powered Pocket PC 2003
	043d  Becker Traffic Assist Highspeed 7934
	043e  Windows Powered Pocket PC 2003
	043f  Windows Powered Pocket PC 2003
	0440  Windows Powered Pocket PC 2003
	0441  Windows Powered Pocket PC 2003
	0442  Windows Powered Pocket PC 2003
	0443  Windows Powered Pocket PC 2003
	0444  Windows Powered Pocket PC 2003
	0445  Windows Powered Pocket PC 2003
	0446  Windows Powered Pocket PC 2003
	0447  Windows Powered Pocket PC 2003
	0448  Windows Powered Pocket PC 2003
	0449  Windows Powered Pocket PC 2003
	044a  Windows Powered Pocket PC 2003
	044b  Windows Powered Pocket PC 2003
	044c  Windows Powered Pocket PC 2003
	044d  Windows Powered Pocket PC 2003
	044e  Windows Powered Pocket PC 2003
	044f  Windows Powered Pocket PC 2003
	0450  Windows Powered Pocket PC 2003
	0451  Windows Powered Pocket PC 2003
	0452  Windows Powered Pocket PC 2003
	0453  Windows Powered Pocket PC 2003
	0454  Windows Powered Pocket PC 2003
	0455  Windows Powered Pocket PC 2003
	0456  Windows Powered Pocket PC 2003
	0457  Windows Powered Pocket PC 2003
	0458  Windows Powered Pocket PC 2003
	0459  Windows Powered Pocket PC 2003
	045a  Windows Powered Pocket PC 2003
	045b  Windows Powered Pocket PC 2003
	045c  Windows Powered Pocket PC 2003
	045d  Windows Powered Pocket PC 2003
	045e  Windows Powered Pocket PC 2003
	045f  Windows Powered Pocket PC 2003
	0460  Windows Powered Pocket PC 2003
	0461  Windows Powered Pocket PC 2003
	0462  Windows Powered Pocket PC 2003
	0463  Windows Powered Pocket PC 2003
	0464  Windows Powered Pocket PC 2003
	0465  Windows Powered Pocket PC 2003
	0466  Windows Powered Pocket PC 2003
	0467  Windows Powered Pocket PC 2003
	0468  Windows Powered Pocket PC 2003
	0469  Windows Powered Pocket PC 2003
	046a  Windows Powered Pocket PC 2003
	046b  Windows Powered Pocket PC 2003
	046c  Windows Powered Pocket PC 2003
	046d  Windows Powered Pocket PC 2003
	046e  Windows Powered Pocket PC 2003
	046f  Windows Powered Pocket PC 2003
	0470  Windows Powered Pocket PC 2003
	0471  Windows Powered Pocket PC 2003
	0472  Windows Powered Pocket PC 2003
	0473  Windows Powered Pocket PC 2003
	0474  Windows Powered Pocket PC 2003
	0475  Windows Powered Pocket PC 2003
	0476  Windows Powered Pocket PC 2003
	0477  Windows Powered Pocket PC 2003
	0478  Windows Powered Pocket PC 2003
	0479  Windows Powered Pocket PC 2003
	047a  Windows Powered Pocket PC 2003
	047b  Windows Powered Pocket PC 2003
	04c8  Windows Powered Smartphone 2002
	04c9  Windows Powered Smartphone 2002
	04ca  Windows Powered Smartphone 2002
	04cb  Windows Powered Smartphone 2002
	04cc  Windows Powered Smartphone 2002
	04cd  Windows Powered Smartphone 2002
	04ce  Windows Powered Smartphone 2002
	04d7  Windows Powered Smartphone 2003
	04d8  Windows Powered Smartphone 2003
	04d9  Windows Powered Smartphone 2003
	04da  Windows Powered Smartphone 2003
	04db  Windows Powered Smartphone 2003
	04dc  Windows Powered Smartphone 2003
	04dd  Windows Powered Smartphone 2003
	04de  Windows Powered Smartphone 2003
	04df  Windows Powered Smartphone 2003
	04e0  Windows Powered Smartphone 2003
	04e1  Windows Powered Smartphone 2003
	04e2  Windows Powered Smartphone 2003
	04e3  Windows Powered Smartphone 2003
	04e4  Windows Powered Smartphone 2003
	04e5  Windows Powered Smartphone 2003
	04e6  Windows Powered Smartphone 2003
	04e7  Windows Powered Smartphone 2003
	04e8  Windows Powered Smartphone 2003
	04e9  Windows Powered Smartphone 2003
	04ea  Windows Powered Smartphone 2003
	04ec  Windows Phone (Zune)
	063e  Zune HD Media Player
	0640  KIN Phone
	0641  KIN Phone
	0642  KIN Phone
	0707  Wireless Laser Mouse 8000
	0708  Transceiver v 3.0 for Bluetooth
	070a  Charon Bluetooth Dongle (DFU)
	070f  LifeChat LX-3000 Headset
	0710  Zune Media Player
	0713  Wireless Presenter Mouse 8000
	0719  Xbox 360 Wireless Adapter
	071f  Mouse/Keyboard 2.4GHz Transceiver V2.0
	0721  LifeCam NX-3000 (UVC-compliant)
	0723  LifeCam VX-7000 (UVC-compliant)
	0724  SideWinder Mouse
	0728  LifeCam VX-5000
	0730  Digital Media Keyboard 3000
	0734  Wireless Optical Desktop 700
	0736  Sidewinder X5 Mouse
	0737  Compact Optical Mouse 500
	0745  Nano Transceiver v1.0 for Bluetooth
	074a  LifeCam VX-500 [1357]
	0750  Wired Keyboard 600
	0752  Wired Keyboard 400
	075d  LifeCam Cinema
	0761  LifeCam VX-2000
	0765  Xbox360 Slim Internal Wireless Module (1400) [Marvell 88W8786U]
	0766  LifeCam VX-800
	0768  Sidewinder X4
	076c  Comfort Mouse 4500
	076d  LifeCam HD-5000
	0770  LifeCam VX-700
	0772  LifeCam Studio
	0779  LifeCam HD-3000
	077f  LifeChat LX-6000 Headset
	0780  Comfort Curve Keyboard 3000
	0797  Optical Mouse 200
	0799  Surface Pro embedded keyboard
	07a5  Wireless Receiver 1461C
	07b2  2.4GHz Transceiver v8.0 used by mouse Wireless Desktop 900
	07b6  Comfort Curve Keyboard 3000
	07b9  Wired Keyboard 200
	07c6  RTL8153 GigE [Surface Ethernet Adapter]
	07ca  Surface Pro 3 Docking Station Audio Device
	07cd  Surface Keyboard
	07f8  Wired Keyboard 600 (model 1576)
	07fd  Nano Transceiver 1.1
	0800  Wireless keyboard (All-in-One-Media)
	0810  LifeCam HD-3000
	0823  Classic IntelliMouse
	082a  Pro Intellimouse
	0900  Surface Dock Hub
	0901  Surface Dock Hub
	0902  Surface Dock Hub
	0903  Surface Dock Hub
	0904  Surface Dock Extender
	0905  Surface Dock Audio
	090b  Hub
	090c  SD Card
	091a  Hub
	0927  RTL8153B GigE [Surface Ethernet Adapter]
	0955  Hub
	0957  Hub
	097a  Generic Superspeed Hub [Azure Kinect]
	097b  Generic Hub [Azure Kinect]
	097c  Azure Kinect Depth Camera
	097d  Azure Kinect 4K Camera
	097e  Azure Kinect Microphone Array
	09a0  RTL8153B GigE [Surface Ethernet Adapter]
	09c0  Surface Type Cover
	0a00  Lumia 950 (RM-1104/RM-1118)
	0b00  Xbox Elite Series 2 Controller (model 1797)
	0b12  Xbox Controller
	930a  ISOUSB.SYS Intel 82930 Isochronous IO Test Board
	ffca  Catalina
	fff8  Keyboard
	ffff  Windows CE Mass Storage
0460  Ace Cad Enterprise Co., Ltd
	0004  Tablet (5x3.75)
	0006  LCD Tablet (12x9)
	0008  Tablet (3x2.25)
0461  Primax Electronics, Ltd
	0010  HP PR1101U / Primax PMX-KPR1101U Keyboard
	0300  G2-300 Scanner
	0301  G2E-300 Scanner
	0302  G2-300 #2 Scanner
	0303  G2E-300 #2 Scanner
	0340  Colorado 9600 Scanner
	0341  Colorado 600u Scanner
	0345  Visioneer 6200 Scanner
	0346  Memorex Maxx 6136u Scanner
	0347  Primascan Colorado 2600u/Visioneer 4400 Scanner
	0360  Colorado 19200 Scanner
	0361  Colorado 1200u Scanner
	0363  VistaScan Astra 3600(ENG)
	0364  LG Electronics Scanworks 600U Scanner
	0365  VistaScan Astra 3600(ENG)
	0366  6400
	0367  VistaScan Astra 3600(ENG)
	0371  Visioneer Onetouch 8920 Scanner
	0374  UMAX Astra 2500
	0375  VistaScan Astra 3600(ENG)
	0377  Medion MD 5345 Scanner
	0378  VistaScan Astra 3600(ENG)
	037b  Medion MD 6190 Scanner
	037c  VistaScan Astra 3600(ENG)
	0380  G2-600 Scanner
	0381  ReadyScan 636i Scanner
	0382  G2-600 #2 Scanner
	0383  G2E-600 Scanner
	038a  UMAX Astra 3000/3600
	038b  Xerox 2400 Onetouch
	038c  UMAX Astra 4100
	0392  Medion/Lifetec/Tevion/Cytron MD 6190
	03a8  9420M
	0813  IBM UltraPort Camera
	0815  Micro Innovations IC200 Webcam
	0819  Fujifilm IX-30 Camera [webcam mode]
	081a  Fujifilm IX-30 Camera [storage mode]
	081c  Elitegroup ECS-C11 Camera
	081d  Elitegroup ECS-C11 Storage
	0a00  Micro Innovations Web Cam 320
	4d01  Comfort Keyboard / Kensington Orbit Elite
	4d02  Mouse-in-a-Box
	4d03  Kensington Mouse-in-a-box
	4d04  Mouse
	4d06  Balless Mouse (HID)
	4d0f  HP Optical Mouse
	4d15  Dell Optical Mouse
	4d17  Optical Mouse
	4d20  HP Optical Mouse
	4d2a  PoPo Elixir Mouse (HID)
	4d2b  Wireless Laser Mini Mouse (HID)
	4d2c  PoPo Mini Pointer Mouse (HID)
	4d2e  Optical Mobile Mouse (HID)
	4d51  0Y357C PMX-MMOCZUL (B) [Dell Laser Mouse]
	4d62  HP Laser Mobile Mini Mouse
	4d64  Asus wired optical mouse - Model MOEWUO
	4d75  Rocketfish RF-FLBTAD Bluetooth Adapter
	4d81  Dell N889 Optical Mouse
	4d8a  HP Multimedia Keyboard
	4d91  Laser mouse M-D16DL
	4d92  Optical mouse M-D17DR
	4db1  Dell Laptop Integrated Webcam 2Mpix
	4de3  HP 5-Button Optical Comfort Mouse
	4de7  webcam
	4e04  Lenovo Keyboard KB1021
	4e22  Dell Mouse, 2 Buttons, Modell: MS111-P
	4e26  Asus wired keyboard - model KB73211
	4e6f  Acer Wired Keyboard Model KBAY211
	4e72  Acer Wired Keyboard Model KBAY211
0463  MGE UPS Systems
	0001  UPS
	ffff  UPS
0464  AMP/Tycoelectronics Corp.
0467  AT&T Paradyne
0468  Wieson Technologies Co., Ltd
046a  CHERRY
	0001  Keyboard
	0003  My3000 Hub
	0004  CyBoard Keyboard
	0005  XX33 SmartCard Reader Keyboard
	0008  Wireless Keyboard and Mouse
	0010  SmartBoard XX44
	0011  G83 (RS 6000) Keyboard
	0021  CyMotion Expert Combo
	0023  Keyboard
	0027  CyMotion Master Solar Keyboard
	002a  Wireless Mouse & Keyboard
	002d  SmartTerminal XX44
	003c  Raptor Gaming Keyboard
	003d  Raptor Gaming Keyboard Integrated Hub
	003e  SmartTerminal ST-2xxx
	0041  G86 6240 Keyboard
	0076  MX-Board 3.0 G80-3850
	0077  MX BOARD 3.0S FL NBL Keyboard
	0079  MX BOARD 3.0S FL RGB Keyboard
	0080  eHealth Terminal ST 1503
	0081  eHealth Keyboard G87 1504
	0083  MX BOARD 3.0S FL RGB (KOREAN) Keyboard
	0084  eHealth Terminal ST1506
	0085  eHealth PIN-Pad PP1516
	00a1  SmartCard Reader Keyboard KC 1000 SC
	00ab  MX 1.0 FL BL Keyboard
	00ac  MX BOARD 1.0 TKL RGB Keyboard
	00b7  MX BOARD 8.0 TKL RGB Keyboard
	00bb  MX BOARD 10.0 FL RGB Keyboard
	00c3  G80 3000 TKL NBL Keyboard
	00c4  MX BOARD 2.0S FL RGB Keyboard
	00c5  G80 3000 TKL RGB Keyboard
	00c7  MV BOARD 3.0 FL RGB
	00c9  CCF MX 8.0 TKL BL Keyboard
	00ca  CCF MX 1.0 TKL BL Keyboard
	00cb  CCF MX 1.0 TKL NBL Keyboard
	00cd  G80 3000 TKL NBL (KOREAN) Keyboard
	00ce  MX BOARD 2.0S FL NBL Keyboard
	00d2  MX 1.0 FL NBL Keyboard
	00d3  MX 1.0 FL RGB Keyboard
	00dd  G80-3000N RGB TKL Keyboard
	00de  G80-3000N FL RGB Keyboard
	00df  MX BOARD 10.0N FL RGB Keyboard
	0106  R-300 Wireless Mouse Receiver
	010d  MX-Board 3.0 Keyboard
	0113  KC 6000 Slim Keyboard
	0180  Strait 3.0
	01a4  MC 2.1 Mouse
	01a6  MX BOARD 2.0S FL RGB DE Keyboard
	0201  Smart Board 1150
	0202  Smart Terminal 1150
	b090  Keyboard
	b091  Mouse
	c099  Stream Keyboard TKL
	c110  KC 4500 Ergo Keyboard
046b  American Megatrends, Inc.
	0001  Keyboard
	0101  PS/2 Keyboard, Mouse & Joystick Ports
	0301  USB 1.0 Hub
	0500  Serial & Parallel Ports
	ff10  Virtual Keyboard and Mouse
	ff20  Virtual CDROM
046c  Toshiba Corp., Digital Media Equipment
046d  Logitech, Inc.
	0082  Acer Aspire 5672 Webcam
	0200  WingMan Extreme Joystick
	0203  M2452 Keyboard
	0242  Chillstream for Xbox 360
	0301  M4848 Mouse
	0401  HP PageScan
	0402  NEC PageScan
	040f  Logitech/Storm PageScan
	0430  Mic (Cordless)
	0801  QuickCam Home
	0802  Webcam C200
	0804  Webcam C250
	0805  Webcam C300
	0807  Webcam B500
	0808  Webcam C600
	0809  Webcam Pro 9000
	080a  Portable Webcam C905
	080f  Webcam C120
	0810  QuickCam Pro
	0819  Webcam C210
	081a  Webcam C260
	081b  Webcam C310
	081d  HD Webcam C510
	0820  QuickCam VC
	0821  HD Webcam C910
	0823  HD Webcam B910
	0825  Webcam C270
	0826  HD Webcam C525
	0828  HD Webcam B990
	082b  Webcam C170
	082c  HD Webcam C615
	082d  HD Pro Webcam C920
	0830  QuickClip
	0836  B525 HD Webcam
	0837  BCC950 ConferenceCam
	0838  BCC950 ConferenceCam audio
	0839  BCC950 ConferenceCam integated hub
	0840  QuickCam Express
	0843  Webcam C930e
	0845  ConferenceCam CC3000e Camera
	0846  ConferenceCam CC3000e Speakerphone
	084b  ConferenceCam Connect Video
	084c  ConferenceCam Connect Audio
	084e  ConferenceCam Connect
	0850  QuickCam Web
	0857  Logi Group Speakerphone
	085c  C922 Pro Stream Webcam
	085e  BRIO Ultra HD Webcam
	086b  BRIO 4K Stream Edition
	0870  QuickCam Express
	0882  Logi Group Speakerphone
	0890  QuickCam Traveler
	0892  C920 HD Pro Webcam
	0893  StreamCam
	0894  CrystalCam
	0895  QuickCam for Dell Notebooks
	0896  OrbiCam
	0897  QuickCam for Dell Notebooks
	0899  QuickCam for Dell Notebooks
	089d  QuickCam E2500 series
	08a0  QuickCam IM
	08a1  QuickCam IM with sound
	08a2  Labtec Webcam Pro
	08a3  QuickCam QuickCam Chat
	08a6  QuickCam IM
	08a7  QuickCam Image
	08a9  Notebook Deluxe
	08aa  Labtec Notebooks
	08ac  QuickCam Cool
	08ad  QuickCam Communicate STX
	08ae  QuickCam for Notebooks
	08af  QuickCam Easy/Cool
	08b0  QuickCam 3000 Pro [pwc]
	08b1  QuickCam Notebook Pro
	08b2  QuickCam Pro 4000
	08b3  QuickCam Zoom
	08b4  QuickCam Zoom
	08b5  QuickCam Sphere
	08b9  QuickCam IM
	08bd  Microphone (Pro 4000)
	08c0  QuickCam Pro 3000
	08c1  QuickCam Fusion
	08c2  QuickCam PTZ
	08c3  Camera (Notebooks Pro)
	08c5  QuickCam Pro 5000
	08c6  QuickCam for DELL Notebooks
	08c7  QuickCam OEM Cisco VT Camera II
	08c9  QuickCam Ultra Vision
	08ca  Mic (Fusion)
	08cb  Mic (Notebooks Pro)
	08cc  Mic (PTZ)
	08ce  QuickCam Pro 5000
	08cf  QuickCam UpdateMe
	08d0  QuickCam Express
	08d7  QuickCam Communicate STX
	08d8  QuickCam for Notebook Deluxe
	08d9  QuickCam IM/Connect
	08da  QuickCam Messenger
	08dd  QuickCam for Notebooks
	08e0  QuickCam Express
	08e1  Labtec Webcam
	08e4  C505e HD Webcam
	08e5  C920 PRO HD Webcam
	08f0  QuickCam Messenger
	08f1  QuickCam Express
	08f2  Microphone (Messenger)
	08f3  QuickCam Express
	08f4  Labtec Webcam
	08f5  QuickCam Messenger Communicate
	08f6  QuickCam Messenger Plus
	0900  ClickSmart 310
	0901  ClickSmart 510
	0903  ClickSmart 820
	0905  ClickSmart 820
	0910  QuickCam Cordless
	0920  QuickCam Express
	0921  Labtec Webcam
	0922  QuickCam Live
	0928  QuickCam Express
	0929  Labtec Webcam Pro
	092a  QuickCam for Notebooks
	092b  Labtec Webcam Plus
	092c  QuickCam Chat
	092d  QuickCam Express / Go
	092e  QuickCam Chat
	092f  QuickCam Express Plus
	0950  Pocket Camera
	0960  ClickSmart 420
	0970  Pocket750
	0990  QuickCam Pro 9000
	0991  QuickCam Pro for Notebooks
	0992  QuickCam Communicate Deluxe
	0994  QuickCam Orbit/Sphere AF
	09a1  QuickCam Communicate MP/S5500
	09a2  QuickCam Communicate Deluxe/S7500
	09a4  QuickCam E 3500
	09a5  Quickcam 3000 For Business
	09a6  QuickCam Vision Pro
	09b0  Acer OrbiCam
	09b2  Fujitsu Webcam
	09c0  QuickCam for Dell Notebooks Mic
	09c1  QuickCam Deluxe for Notebooks
	0a01  USB Headset
	0a02  Premium Stereo USB Headset 350
	0a03  Logitech USB Microphone
	0a04  V20 portable speakers (USB powered)
	0a07  Z-10 Speakers
	0a0b  ClearChat Pro USB
	0a0c  Clear Chat Comfort USB Headset
	0a10  V10 Notebook Speakers
	0a13  Z-5 Speakers
	0a14  USB Headset
	0a15  G35 Headset
	0a17  G330 Headset
	0a1f  G930
	0a23  Laptop Speaker Z305
	0a29  H600 [Wireless Headset]
	0a37  USB Headset H540
	0a38  Headset H340
	0a44  Headset H390
	0a45  960 Headset
	0a4d  G430 Surround Sound Gaming Headset
	0a4f  MINI BOOM
	0a5b  G933 Wireless Headset Dongle
	0a5d  G933 Headset Battery Charger
	0a66  [G533 Wireless Headset Dongle]
	0a8f  H390 headset with microphone
	0a90  Zone Receiver
	0aaa  Logitech G PRO X Gaming Headset
	0ac4  G535 Wireless Gaming Headset
	0b02  C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode)
	8801  Video Camera
	b014  Bluetooth Mouse M336/M337/M535
	b305  BT Mini-Receiver
	bfe4  Premium Optical Wheel Mouse
	c000  N43 [Pilot Mouse]
	c001  N48/M-BB48/M-UK96A [FirstMouse Plus]
	c002  M-BA47 [MouseMan Plus]
	c003  MouseMan
	c004  WingMan Gaming Mouse
	c005  WingMan Gaming Wheel Mouse
	c00b  MouseMan Wheel
	c00c  Optical Wheel Mouse
	c00d  MouseMan Wheel+
	c00e  M-BJ58/M-BJ69 Optical Wheel Mouse
	c00f  MouseMan Traveler/Mobile
	c011  Optical MouseMan
	c012  Mouseman Dual Optical
	c014  Corded Workstation Mouse
	c015  Corded Workstation Mouse
	c016  Optical Wheel Mouse
	c018  Optical Wheel Mouse
	c019  Optical Tilt Wheel Mouse
	c01a  M-BQ85 Optical Wheel Mouse
	c01b  MX310 Optical Mouse
	c01c  Optical Mouse
	c01d  MX510 Optical Mouse
	c01e  MX518 Optical Mouse
	c024  MX300 Optical Mouse
	c025  MX500 Optical Mouse
	c030  iFeel Mouse
	c031  iFeel Mouse+
	c032  MouseMan iFeel
	c033  iFeel MouseMan+
	c034  MouseMan Optical
	c035  Mouse
	c036  Mouse
	c037  Mouse
	c038  Mouse
	c03d  M-BT96a Pilot Optical Mouse
	c03e  Premium Optical Wheel Mouse (M-BT58)
	c03f  M-BT85 [UltraX Optical Mouse]
	c040  Corded Tilt-Wheel Mouse
	c041  G5 Laser Mouse
	c042  G3 Laser Mouse
	c043  MX320/MX400 Laser Mouse
	c044  LX3 Optical Mouse
	c045  Optical Mouse
	c046  RX1000 Laser Mouse
	c047  Laser Mouse M-UAL120
	c048  G9 Laser Mouse
	c049  G5 Laser Mouse
	c050  RX 250 Optical Mouse
	c051  G3 (MX518) Optical Mouse
	c053  Laser Mouse
	c054  Bluetooth mini-receiver
	c058  M115 Mouse
	c05a  M90/M100 Optical Mouse
	c05b  M-U0004 810-001317 [B110 Optical USB Mouse]
	c05d  Optical Mouse
	c05f  M115 Optical Mouse
	c061  RX1500 Laser Mouse
	c062  M-UAS144 [LS1 Laser Mouse]
	c063  DELL Laser Mouse
	c064  M110 corded optical mouse (M-B0001)
	c066  G9x Laser Mouse
	c068  G500 Laser Mouse
	c069  M-U0007 [Corded Mouse M500]
	c06a  USB Optical Mouse
	c06b  G700 Wireless Gaming Mouse
	c06c  Optical Mouse
	c077  Mouse
	c07c  M-R0017 [G700s Rechargeable Gaming Mouse]
	c07d  G502 Mouse
	c07e  G402 Gaming Mouse
	c080  G303 Gaming Mouse
	c083  G403 Prodigy Gaming Mouse
	c084  G203 Gaming Mouse
	c088  G Pro Wireless gaming mouse (wired mode)
	c08b  G502 SE HERO Gaming Mouse
	c08e  G MX518 Gaming Mouse (MU0053)
	c092  G102/G203 LIGHTSYNC Gaming Mouse
	c093  M500s Optical Mouse
	c09d  G102 LIGHTSYNC Gaming Mouse
	c101  UltraX Media Remote
	c110  Harmony 785/880/885 Remote
	c111  Harmony 525 Remote
	c112  Harmony 890 Remote
	c11f  Harmony 900/1100 Remote
	c121  Harmony One Remote
	c122  Harmony 650/700 Remote
	c124  Harmony 300/350 Remote
	c125  Harmony 200 Remote
	c126  Harmony Link
	c129  Harmony Hub
	c12b  Harmony Touch/Ultimate Remote
	c201  WingMan Extreme Joystick with Throttle
	c202  WingMan Formula
	c207  WingMan Extreme Digital 3D
	c208  WingMan Gamepad Extreme
	c209  WingMan Gamepad
	c20a  WingMan RumblePad
	c20b  WingMan Action Pad
	c20c  WingMan Precision
	c20d  WingMan Attack 2
	c20e  WingMan Formula GP
	c211  iTouch Cordless Receiver
	c212  WingMan Extreme Digital 3D
	c213  J-UH16 (Freedom 2.4 Cordless Joystick)
	c214  ATK3 (Attack III Joystick)
	c215  Extreme 3D Pro
	c216  F310 Gamepad [DirectInput Mode]
	c218  F510 Gamepad [DirectInput Mode]
	c219  F710 Gamepad [DirectInput Mode]
	c21a  Precision Gamepad
	c21c  G13 Advanced Gameboard
	c21d  F310 Gamepad [XInput Mode]
	c21e  F510 Gamepad [XInput Mode]
	c21f  F710 Wireless Gamepad [XInput Mode]
	c221  G11/G15 Keyboard / Keyboard
	c222  G15 Keyboard / LCD
	c223  G11/G15 Keyboard / USB Hub
	c225  G11/G15 Keyboard / G keys
	c226  G15 Refresh Keyboard
	c227  G15 Refresh Keyboard
	c228  G19 Gaming Keyboard
	c229  G19 Gaming Keyboard Macro Interface
	c22a  Gaming Keyboard G110
	c22b  Gaming Keyboard G110 G-keys
	c22d  G510 Gaming Keyboard
	c22e  G510 Gaming Keyboard onboard audio
	c231  G13 Virtual Mouse
	c232  Gaming Virtual Keyboard
	c245  G400 Optical Mouse
	c246  Gaming Mouse G300
	c247  G100S Optical Gaming Mouse
	c248  G105 Gaming Keyboard
	c24a  G600 Gaming Mouse
	c24c  G400s Optical Mouse
	c24d  G710 Gaming Keyboard
	c24e  G500s Laser Gaming Mouse
	c24f  G29 Driving Force Racing Wheel [PS3]
	c251  GamePanel for Dell XPS M1730
	c260  G29 Driving Force Racing Wheel [PS4]
	c262  G920 Driving Force Racing Wheel
	c281  WingMan Force
	c283  WingMan Force 3D
	c285  WingMan Strike Force 3D
	c286  Force 3D Pro
	c287  Flight System G940
	c291  WingMan Formula Force
	c293  WingMan Formula Force GP
	c294  Driving Force
	c295  Momo Force Steering Wheel
	c298  Driving Force Pro
	c299  G25 Racing Wheel
	c29a  Driving Force GT
	c29b  G27 Racing Wheel
	c29c  Speed Force Wireless Wheel for Wii
	c2a0  Wingman Force Feedback Mouse
	c2a1  WingMan Force Feedback Mouse
	c2ab  G13 Joystick
	c301  iTouch Keyboard
	c302  iTouch Pro Keyboard
	c303  iTouch Keyboard
	c305  Internet Keyboard
	c307  Internet Keyboard
	c308  Internet Navigator Keyboard
	c309  Y-BF37 [Internet Navigator Keyboard]
	c30a  iTouch Composite
	c30b  NetPlay Keyboard
	c30c  Internet Keys (X)
	c30d  Internet Keys
	c30e  UltraX Keyboard (Y-BL49)
	c30f  Logicool HID-Compliant Keyboard (106 key)
	c311  Y-UF49 [Internet Pro Keyboard]
	c312  DeLuxe 250 Keyboard
	c313  Internet 350 Keyboard
	c315  Classic Keyboard 200
	c316  HID-Compliant Keyboard
	c317  Wave Corded Keyboard
	c318  Illuminated Keyboard
	c31a  Comfort Wave 450
	c31b  Compact Keyboard K300
	c31c  Keyboard K120
	c31d  Media Keyboard K200
	c31f  Comfort Keyboard K290
	c326  Washable Keyboard K310
	c328  Corded Keyboard K280e
	c32b  G910 Orion Spark Mechanical Keyboard
	c332  G502 Proteus Spectrum Optical Mouse
	c335  G910 Orion Spectrum Mechanical Keyboard
	c336  G213 Prodigy Gaming Keyboard
	c33a  G413 Gaming Keyboard
	c33e  G915 Mechanical Keyboard
	c33f  G815 Mechanical Keyboard
	c401  TrackMan Marble Wheel
	c402  Marble Mouse (2-button)
	c403  Turbo TrackMan Marble FX
	c404  TrackMan Wheel
	c408  Marble Mouse (4-button)
	c501  Cordless Mouse Receiver
	c502  Cordless Mouse & iTouch Keys
	c503  Cordless Mouse+Keyboard Receiver
	c504  Cordless Mouse+Keyboard Receiver
	c505  Cordless Mouse+Keyboard Receiver
	c506  MX700 Cordless Mouse Receiver
	c508  Cordless Trackball
	c509  Cordless Keyboard & Mouse
	c50a  Cordless Mouse
	c50b  Cordless Desktop Optical
	c50c  Cordless Desktop S510
	c50d  Cordless Mouse
	c50e  Cordless Mouse Receiver
	c510  Cordless Mouse
	c512  LX-700 Cordless Desktop Receiver
	c513  MX3000 Cordless Desktop Receiver
	c514  Cordless Mouse
	c515  Cordless 2.4 GHz Presenter Presentation remote control
	c517  LX710 Cordless Desktop Laser
	c518  MX610 Laser Cordless Mouse
	c51a  MX Revolution/G7 Cordless Mouse
	c51b  V220 Cordless Optical Mouse for Notebooks
	c521  Cordless Mouse Receiver
	c525  MX Revolution Cordless Mouse
	c526  Nano Receiver
	c529  Logitech Keyboard + Mice
	c52b  Unifying Receiver
	c52d  R700 Remote Presenter receiver
	c52e  MK260 Wireless Combo Receiver
	c52f  Nano Receiver
	c531  C-U0007 [Unifying Receiver]
	c532  Unifying Receiver
	c534  Nano Receiver
	c537  Cordless Mouse Receiver
	c539  Lightspeed Receiver
	c53a  PowerPlay Wireless Charging System
	c53d  G631 Keyboard
	c542  M185 compact wireless mouse
	c548  Logi Bolt Receiver
	c603  3Dconnexion Spacemouse Plus XT
	c605  3Dconnexion CADman
	c606  3Dconnexion Spacemouse Classic
	c621  3Dconnexion Spaceball 5000
	c623  3Dconnexion Space Traveller 3D Mouse
	c625  3Dconnexion Space Pilot 3D Mouse
	c626  3Dconnexion Space Navigator 3D Mouse
	c627  3Dconnexion Space Explorer 3D Mouse
	c628  3Dconnexion Space Navigator for Notebooks
	c629  3Dconnexion SpacePilot Pro 3D Mouse
	c62b  3Dconnexion Space Mouse Pro
	c640  NuLOOQ navigator
	c702  Cordless Presenter
	c703  Elite Keyboard Y-RP20 + Mouse MX900 (Bluetooth)
	c704  diNovo Wireless Desktop
	c705  MX900 Bluetooth Wireless Hub (C-UJ16A)
	c707  Bluetooth wireless hub
	c708  Bluetooth wireless hub
	c709  BT Mini-Receiver (HCI mode)
	c70a  MX5000 Cordless Desktop
	c70b  BT Mini-Receiver (HID proxy mode)
	c70c  BT Mini-Receiver (HID proxy mode)
	c70d  Bluetooth wireless hub
	c70e  MX1000 Bluetooth Laser Mouse
	c70f  Bluetooth wireless hub
	c712  Bluetooth wireless hub
	c714  diNovo Edge Keyboard
	c715  Bluetooth wireless hub
	c71a  Bluetooth wireless hub
	c71d  Bluetooth wireless hub
	c71f  diNovo Mini Wireless Keyboard
	c720  Bluetooth wireless hub
	ca03  MOMO Racing
	ca04  Formula Vibration Feedback Wheel
	ca84  Cordless Controller for Xbox
	ca88  Thunderpad for Xbox
	ca8a  Precision Vibration Feedback Wheel for Xbox
	caa3  DriveFX Racing Wheel
	cab1  Cordless Keyboard for Wii HID Receiver
	d001  QuickCam Pro
	f301  Controller
046e  Behavior Tech. Computer Corp.
	0100  Keyboard
	3001  Mass Storage Device
	3002  Mass Storage Device
	3003  Mass Storage Device
	3005  Mass Storage Device
	3008  Mass Storage Device
	5250  KeyMaestro Multimedia Keyboard
	5273  KeyMaestro Multimedia Keyboard
	52e6  Cordless Mouse
	5308  KeyMaestro Keyboard
	5408  KeyMaestro Multimedia Keyboard/Hub
	5500  Portable Keyboard 86+9 keys (Model 6100C US)
	5550  5 button optical mouse model M873U
	5720  Smart Card Reader
	6782  BTC 7932 mouse+keyboard
046f  Crystal Semiconductor
0471  Philips (or NXP)
	0101  DSS350 Digital Speaker System
	0104  DSS330 Digital Speaker System [uda1321]
	0105  UDA1321
	014f  GoGear SA9200
	0160  MP3 Player
	0161  MP3 Player
	0163  GoGear SA1100
	0164  GoGear SA1110/02
	0165  GoGear SA1330
	0201  Hub
	0222  Creative Nomad Jukebox
	0302  PCA645VC Webcam [pwc]
	0303  PCA646VC Webcam [pwc]
	0304  Askey VC010 Webcam [pwc]
	0307  PCVC675K Webcam [pwc]
	0308  PCVC680K Webcam [pwc]
	030b  PC VGA Camera (Vesta Fun)
	030c  PCVC690K Webcam [pwc]
	0310  PCVC730K Webcam [pwc]
	0311  PCVC740K ToUcam Pro [pwc]
	0312  PCVC750K Webcam [pwc]
	0314  DMVC 1000K
	0316  DMVC 2000K Video Capture
	0321  FunCam
	0322  DMVC1300K PC Camera
	0325  SPC 200NC PC Camera
	0326  SPC 300NC PC Camera
	0327  Webcam SPC 6000 NC (Webcam w/ mic)
	0328  SPC 700NC PC Camera
	0329  SPC 900NC PC Camera / ORITE CCD Webcam(PC370R)
	032d  SPC 210NC PC Camera
	032e  SPC 315NC PC Camera
	0330  SPC 710NC PC Camera
	0331  SPC 1300NC PC Camera
	0332  SPC 1000NC PC Camera
	0333  SPC 620NC PC Camera
	0334  SPC 520/525NC PC Camera
	0401  Semiconductors CICT Keyboard
	0402  PS/2 Mouse on Semiconductors CICT Keyboard
	0406  15 inch Detachable Monitor
	0407  10 inch Mobile Monitor
	0408  SG3WA1/74 802.11b WLAN Adapter [Atmel AT76C503A]
	0471  Digital Speaker System
	0601  OVU1020 IR Dongle (Kbd+Mouse)
	0602  ATI Remote Wonder II Input Device
	0603  ATI Remote Wonder II Controller
	0608  eHome Infrared Receiver
	060a  TSU9600 Remote Control
	060c  Consumer Infrared Transceiver (HP)
	060d  Consumer Infrared Transceiver (SRM5100)
	060e  RF Dongle
	060f  Consumer Infrared Transceiver
	0613  Infrared Transceiver
	0617  IEEE802.15.4 RF Dongle
	0619  TSU9400 Remote Control
	0666  Hantek DDS-3005 Arbitrary Waveform Generator
	0700  Semiconductors CICT Hub
	0701  150P1 TFT Display
	0809  AVNET Bluetooth Device
	0811  JR24 CDRW
	0814  DCCX38/P data cable
	0815  eHome Infrared Receiver
	0844  SA2111/02 1GB Flash Audio Player
	084a  GoGear SA3125
	084e  GoGear SA60xx (mtp)
	0888  Hantek DDS-3005 Arbitrary Waveform Generator
	1103  Digital Speaker System
	1120  Creative Rhomba MP3 player
	1125  Nike psa[128max Player
	1137  HDD065 MP3 player
	1201  Arima Bluetooth Device
	1230  Wireless Adapter 11g
	1232  SNU6500 Wireless Adapter
	1233  Wireless Adapter Bootloader Download
	1236  SNU5600 802.11bg
	1237  TalkTalk SNU5630NS/05 802.11bg
	1552  ISP 1581 Hi-Speed USB MPEG2 Encoder Reference Kit
	1801  Diva MP3 player
	200a  Wireless Network Adapter
	200f  802.11n Wireless Adapter
	2021  SDE3273FC/97 2.5" SATA HDD Enclosure [INIC-1608L]
	2022  GoGear SA52XX
	2034  Webcam SPC530NC
	2036  Webcam SPC1030NC
	203f  TSU9200 Remote Control
	2046  TSU9800 Remote Control
	204e  GoGear RaGa (SA1942/02)
	205e  TSU9300 Remote Control
	206c  MCE IR Receiver - Spinel plusf0r ASUS
	2070  GoGear Mix
	2076  GoGear Aria
	2079  GoGear Opus
	2088  MCE IR Receiver with ALS- Spinel plus for ASUS
	209e  PTA01 Wireless Adapter
	20b6  GoGear Vibe
	20d0  SPZ2000 Webcam [PixArt PAC7332]
	20e3  GoGear Raga
	20e4  GoGear ViBE 8GB
	2160  Mio LINK Heart Rate Monitor
	21e0  GoGEAR Raga
	262c  SPC230NC Webcam
	2721  PTA 317 TV Camera
	485d  Senselock SenseIV v2.x
	df55  LPCXpresso LPC-Link
0472  Chicony Electronics Co., Ltd
	0065  PFU-65 Keyboard [Chicony]
	b086  Asus USB2.0 Webcam
	b091  Webcam
0473  Sanyo Information Business Co., Ltd
0474  Sanyo Electric Co., Ltd
	0110  Digital Voice Recorder R200
	0217  Xacti J2
	022f  C5 Digital Media Camera (mass storage mode)
	0230  C5 Digital Media Camera (PictBridge mode)
	0231  C5 Digital Media Camera (PC control mode)
	0401  Optical Drive
	0701  SCP-4900 Cellphone
	071f  Usb Com Port Enumerator
	0722  W33SA Camera
0475  Relisys/Teco Information System
	0100  NEC Petiscan
	0103  Eclipse 1200U/Episode
	0210  Scorpio Ultra 3
0476  AESP
0477  Seagate Technology, Inc.
0478  Connectix Corp.
	0001  QuickCam
	0002  QuickClip
	0003  QuickCam Pro
0479  Advanced Peripheral Laboratories
047a  Semtech Corp.
	0004  ScreenCoder UR7HCTS2-USB
047b  Silitek Corp.
	0001  Keyboard
	0002  Keyboard and Mouse
	0011  SK-1688U Keyboard
	00f9  SK-1789u Keyboard
	0101  BlueTooth Keyboard and Mouse
	020b  SK-3105 SmartCard Reader
	050e  Internet Compact Keyboard
	1000  Trust Office Scan USB 19200
	1002  HP ScanJet 4300c Parallel Port
047c  Dell Computer Corp.
	ffff  UPS Tower 500W LV
047d  Kensington
	00f2  VeriMark Desktop
	1001  Mouse*in*a*Box
	1002  Expert Mouse Pro
	1003  Orbit TrackBall
	1004  MouseWorks
	1005  TurboBall
	1006  TurboRing
	1009  Orbit TrackBall for Mac
	1012  PocketMouse
	1013  Mouse*in*a*Box Optical Pro
	1014  Expert Mouse Pro Wireless
	1015  Expert Mouse
	1016  ADB/USB Orbit
	1018  Studio Mouse
	101d  Mouse*in*a*Box Optical Pro
	101e  Studio Mouse Wireless
	101f  PocketMouse Pro
	1020  Expert Mouse Trackball
	1021  Expert Mouse Wireless
	1022  Orbit Optical
	1023  Pocket Mouse Pro Wireless
	1024  PocketMouse
	1025  Mouse*in*a*Box Optical Elite Wireless
	1026  Pocket Mouse Pro
	1027  StudioMouse
	1028  StudioMouse Wireless
	1029  Mouse*in*a*Box Optical Elite
	102a  Mouse*in*a*Box Optical
	102b  PocketMouse
	102c  Iridio
	102d  Pilot Optical
	102e  Pilot Optical Pro
	102f  Pilot Optical Pro Wireless
	1042  Ci25m Notebook Optical Mouse [Diamond Eye Precision]
	1043  Ci65m Wireless Notebook Optical Mouse
	104a  PilotMouse Mini Retractable
	105d  PocketMouse Bluetooth
	105e  Bluetooth EDR Dongle
	1061  PocketMouse Grip
	1062  PocketMouse Max
	1063  PocketMouse Max Wireless
	1064  PocketMouse 2.0 Wireless
	1065  PocketMouse 2.0
	1066  PocketMouse Max Glow
	1067  ValueMouse
	1068  ValueOpt White
	1069  ValueOpt Black
	106a  PilotMouse Laser Wireless Mini
	106b  PilotMouse Laser - 3 Button
	106c  PilotMouse Laser - Gaming
	106d  PilotMouse Laser - Wired
	106e  PilotMouse Micro Laser
	1070  ValueOpt Travel
	1071  ValueOpt RF TX
	1072  PocketMouse Colour
	1073  PilotMouse Laser - 6 Button
	1074  PilotMouse Laser Wireless Mini
	1075  SlimBlade Presenter Media Mouse
	1076  SlimBlade Media Mouse
	1077  SlimBlade Presenter Mouse
	1152  Bluetooth EDR Dongle
	2002  Optical Elite Wireless
	2010  Wireless Presentation Remote
	2012  Wireless Presenter with Laser Pointer
	2021  PilotBoard Wireless
	2030  PilotBoard Wireless
	2034  SlimBlade Media Notebook Set
	2041  SlimBlade Trackball
	2048  Orbit Trackball with Scroll Ring
	4003  Gravis Xterminator Digital Gamepad
	4005  Gravis Eliminator GamePad Pro
	4006  Gravis Eliminator AfterShock
	4007  Gravis Xterminator Force
	4008  Gravis Destroyer TiltPad
	5001  Cabo I Camera
	5002  VideoCam CABO II
	5003  VideoCam
	8018  Expert Wireless Trackball Mouse (K72359WW)
	8068  Pro Fit Ergo Vertical Wireless Trackball
047e  Agere Systems, Inc. (Lucent)
	0300  ORiNOCO Card
	1001  USS720 Parallel Port
	2892  Systems Soft Modem
	bad1  Lucent 56k Modem
	f101  Atlas Modem
047f  Plantronics, Inc.
	0101  Bulk Driver
	02ee  BT600
	0301  Bulk Driver
	0411  Savi Office Base Station
	0ca1  USB DSP v4 Audio Interface
	4254  BUA-100 Bluetooth Adapter
	aa05  DA45
	ac01  Savi 7xx
	ad01  GameCom 777 5.1 Headset
	af00  DA70
	af01  DA80
	c008  Audio 655 DSP
	c00e  Blackwire C310 headset
	c03b  HD1
	c053  Blackwire C5220 headset (remote control and 3.5mm audio adapter)
	c056  Blackwire C3220 Headset
	ca01  Calisto 800 Series
	da60  DA60
0480  Toshiba America Inc
	0001  InTouch Module
	0004  InTouch Module
	0011  InTouch Module
	0014  InTouch Module
	0100  Stor.E Slim USB 3.0
	0200  External Disk
	0212  Toshiba Canvio Connect II 500GB Portable Hard Drive
	0820  Canvio Advance Disk
	0821  Canvio Advance 2TB model DTC920
	0900  MQ04UBF100
	a006  UAS Controller
	a007  External Disk USB 3.0
	a009  Stor.E Basics
	a00d  STOR.E BASICS 500GB
	a100  Canvio Alu 2TB 2.5" Black External Disk Model HDTH320EK3CA
	a102  Canvio Alu 2TB 2.5" Black External Disk Model HDTH320EK3CA
	a202  Canvio Basics HDD
	a208  Canvio Basics 2TB USB 3.0 Portable Hard Drive
	b001  Stor.E Partner
	b207  Canvio Ready
	d000  External Disk 2TB Model DT01ABA200
	d010  External Disk 3TB
	d011  Canvio Desk
0481  Zenith Data Systems
0482  Kyocera Corp.
	000e  FS-1020D Printer
	000f  FS-1920 Mono Printer
	0015  FS-1030D printer
	0100  Finecam S3x
	0101  Finecam S4
	0103  Finecam S5
	0105  Finecam L3
	0106  Finecam
	0107  Digital Camera Device
	0108  Digital Camera Device
	0203  AH-K3001V
	0204  iBurst Terminal
	0408  FS-1320D Printer
	0640  ECOSYS M6026cdn
	069b  ECOSYS M2635dn
	06b4  ECOSYS M5526cdw
0483  STMicroelectronics
	0102  Remote NDIS Network device with Android debug (ADB)
	0103  Remote NDIS Network device
	0104  MTP device with Android debug (ADB)
	0105  MTP device
	0106  PTP device with Android debug (ADB)
	0107  PTP device
	0137  BeWAN ADSL USB ST (blue or green)
	0138  Unicorn II (ST70138B + MTC-20174TQ chipset)
	0adb  Android Debug Bridge (ADB) device
	0afb  Android Fastboot device
	1307  Cytronix 6in1 Card Reader
	163d  Cool Icam Digi-MP3
	2015  TouchChip® Fingerprint Reader
	2016  Fingerprint Reader
	2017  Biometric Smart Card Reader
	2018  BioSimKey
	2302  Portable Flash Device (PFD)
	3744  ST-LINK/V1
	3747  ST Micro Connect Lite
	3748  ST-LINK/V2
	374b  ST-LINK/V2.1
	374d  STLINK-V3 Loader
	374e  STLINK-V3
	374f  STLINK-V3
	3752  ST-LINK/V2.1
	3753  STLINK-V3
	4810  ISDN adapter
	481d  BT Digital Access adapter
	5000  ST Micro/Ergenic ERG BT-002 Bluetooth Adapter
	5001  ST Micro Bluetooth Device
	5710  Joystick in FS Mode
	5720  Mass Storage Device
	5721  Interrupt Demo
	5722  Bulk Demo
	572a  STM32F401 microcontroller [ARM Cortex M4] [CDC/ACM serial port]
	5730  Audio Speaker
	5731  Microphone
	5740  Virtual COM Port
	5750  LED badge -- mini LED display -- 11x44
	7270  ST Micro Serial Bridge
	7554  56k SoftModem
	8213  ThermaData Logger Cradle
	8259  Probe
	91d1  Sensor Hub
	a171  ThermaData WiFi
	a2e0  BMeasure instrument
	a43f  inbed.io - Unified Controller (Gen 2)
	df11  STM Device in DFU Mode
	ff10  Swann ST56 Modem
0484  Specialix
0485  Nokia Monitors
0486  ASUS Computers, Inc.
	0185  EeePC T91MT HID Touch Panel
	573c  Xreal Light Microcontroller
0487  Stewart Connector
0488  Cirque Corp.
0489  Foxconn / Hon Hai
	0502  SmartMedia Card Reader Firmware Loader
	0503  SmartMedia Card Reader
	d00c  Rollei Compactline (Storage Mode)
	d00e  Rollei Compactline (Video Mode)
	e000  T-Com TC 300
	e003  Pirelli DP-L10
	e00d  Broadcom Bluetooth 2.1 Device
	e00f  Foxconn T77H114 BCM2070 [Single-Chip Bluetooth 2.1 + EDR Adapter]
	e011  Acer Bluetooth module
	e016  Ubee PXU1900 WiMAX Adapter [Beceem BCSM250]
	e02c  Atheros AR5BBU12 Bluetooth Device
	e032  Broadcom BCM20702 Bluetooth
	e042  Broadcom BCM20702 Bluetooth
	e04d  Atheros AR3012 Bluetooth
	e055  BCM43142A0 broadcom bluetooth
	e07a  Broadcom BCM20702A1 Bluetooth
	e0c8  MediaTek MT7921 Bluetooth
	e0cd  MediaTek Bluetooth Adapter
	e0d8  Bluetooth 5.2 Adapter [MediaTek MT7922]
048a  S-MOS Systems, Inc.
048c  Alps Electric Ireland, Ltd
048d  Integrated Technology Express, Inc.
	1165  IT1165 Flash Controller
	1172  Flash Drive
	1234  Chipsbank CBM2199 Flash Drive
	1336  SD/MMC Cardreader
	1345  Multi Cardreader
	5702  RGB LED Controller
	6008  8291 RGB keyboard backlight controller
	8297  IT8297 RGB LED Controller
	9006  IT9135 BDA Afatech DVB-T HDTV Dongle
	9009  Zolid HD DVD Maker
	9135  Zolid Mini DVB-T Stick
	9306  IT930x DVB stick
	9503  ITE it9503 feature-limited DVB-T transmission chip [ccHDtv]
	9507  ITE it9507 full featured DVB-T transmission chip [ccHDtv]
	9910  IT9910 chipset based grabber
	ff59  Hdmi-CEC Bridge
048f  Eicon Tech.
0490  United Microelectronics Corp.
0491  Capetronic
	0003  Taxan Monitor Control
0492  Samsung SemiConductor, Inc.
	0140  MP3 player
	0141  MP3 Player
0493  MAG Technology Co., Ltd
0495  ESS Technology, Inc.
0496  Micron Electronics
0497  Smile International
	c001  Camera Device
0498  Capetronic (Kaohsiung) Corp.
0499  Yamaha Corp.
	1000  UX256 MIDI I/F
	1001  MU1000
	1002  MU2000
	1003  MU500
	1004  UW500
	1005  MOTIF6
	1006  MOTIF7
	1007  MOTIF8
	1008  UX96 MIDI I/F
	1009  UX16 MIDI I/F
	100a  EOS BX
	100c  UC-MX
	100d  UC-KX
	100e  S08
	100f  CLP-150
	1010  CLP-170
	1011  P-250
	1012  TYROS
	1013  PF-500
	1014  S90
	1015  MOTIF-R
	1016  MDP-5
	1017  CVP-204
	1018  CVP-206
	1019  CVP-208
	101a  CVP-210
	101b  PSR-1100
	101c  PSR-2100
	101d  CLP-175
	101e  PSR-K1
	101f  EZ-J24
	1020  EZ-250i
	1021  MOTIF ES 6
	1022  MOTIF ES 7
	1023  MOTIF ES 8
	1024  CVP-301
	1025  CVP-303
	1026  CVP-305
	1027  CVP-307
	1028  CVP-309
	1029  CVP-309GP
	102a  PSR-1500
	102b  PSR-3000
	102e  ELS-01/01C
	1030  PSR-295/293
	1031  DGX-205/203
	1032  DGX-305
	1033  DGX-505
	1037  PSR-E403
	103c  MOTIF-RACK ES
	1045  MM6
	1054  S90XS Keyboard/Music Synthesizer
	160f  P-105
	1613  Clavinova CLP535
	1617  PSR-E353 digital keyboard
	1704  Steinberg UR44
	2000  DGP-7
	2001  DGP-5
	3001  YST-MS55D USB Speaker
	3003  YST-M45D USB Speaker
	4000  NetVolante RTA54i Broadband&ISDN Router
	4001  NetVolante RTW65b Broadband Wireless Router
	4002  NetVolante RTW65i Broadband&ISDN Wireless Router
	4004  NetVolante RTA55i Broadband VoIP Router
	5000  CS1D
	5001  DSP1D
	5002  DME32
	5003  DM2000
	5004  02R96
	5005  ACU16-C
	5006  NHB32-C
	5007  DM1000
	5008  01V96
	5009  SPX2000
	500a  PM5D
	500b  DME64N
	500c  DME24N
	6001  CRW2200UX Lightspeed 2 External CD-RW Drive
	7000  DTX
	7010  UB99
049a  Gandalf Technologies, Ltd
049b  Curtis Computer Products
049c  Acer Advanced Labs, Inc.
	0002  Keyboard (???)
049d  VLSI Technology
049f  Compaq Computer Corp.
	0002  InkJet Color Printer
	0003  iPAQ PocketPC
	000e  Internet Keyboard
	0012  InkJet Color Printer
	0018  PA-1/PA-2 MP3 Player
	0019  InkJet Color Printer
	001a  S4 100 Scanner
	001e  IJ650 Inkjet Printer
	001f  WL215 Adapter
	0021  S200 Scanner
	0027  Bluetooth Multiport Module by Compaq
	002a  1400P Inkjet Printer
	002b  A3000
	002c  Lexmark X125
	0032  802.11b Adapter [ipaq h5400]
	0033  Wireless LAN MultiPort W100 [Intersil PRISM 2.5]
	0036  Bluetooth Multiport Module
	0051  KU-0133 Easy Access Interner Keyboard
	0076  Wireless LAN MultiPort W200
	0080  GPRS Multiport
	0086  Bluetooth Device
	504a  Personal Jukebox PJB100
	505a  Linux-USB "CDC Subset" Device, or Itsy (experimental)
	8511  iPAQ Networking 10/100 Ethernet [pegasus2]
04a0  Digital Equipment Corp.
04a1  SystemSoft Corp.
	fff0  Telex Composite Device
04a2  FirePower Systems
04a3  Trident Microsystems, Inc.
04a4  Hitachi, Ltd
	0004  DVD-CAM DZ-MV100A Camcorder
	001e  DVDCAM USB HS Interface
04a5  Acer Peripherals Inc. (now BenQ Corp.)
	0001  Keyboard
	0002  API Ergo K/B
	0003  API Generic K/B Mouse
	12a6  AcerScan C310U
	1a20  Prisa 310U
	1a2a  Prisa 620U
	2022  Prisa 320U/340U
	2040  Prisa 620UT
	205e  ScanPrisa 640BU
	2060  Prisa 620U+/640U
	207e  Prisa 640BU
	209e  ScanPrisa 640BT
	20ae  S2W 3000U
	20b0  S2W 3300U/4300U
	20be  Prisa 640BT
	20c0  Prisa 1240UT
	20de  S2W 4300U+
	20f8  Benq 5000
	20fc  Benq 5000
	20fe  SW2 5300U
	2137  Benq 5150/5250
	2202  Benq 7400UT
	2311  Benq 5560
	3003  Benq Webcam
	3008  Benq 1500
	300a  Benq 3410
	300c  Benq 1016
	3019  Benq DC C40
	4000  P30 Composite Device
	4013  BenQ-Siemens EF82/SL91
	4044  BenQ-Siemens SF71
	4045  BenQ-Siemens E81
	4048  BenQ M7
	6001  Mass Storage Device
	6002  Mass Storage Device
	6003  ATA/ATAPI Adapter
	6004  Mass Storage Device
	6005  Mass Storage Device
	6006  Mass Storage Device
	6007  Mass Storage Device
	6008  Mass Storage Device
	6009  Mass Storage Device
	600a  Mass Storage Device
	600b  Mass Storage Device
	600c  Mass Storage Device
	600d  Mass Storage Device
	600e  Mass Storage Device
	600f  Mass Storage Device
	6010  Mass Storage Device
	6011  Mass Storage Device
	6012  Mass Storage Device
	6013  Mass Storage Device
	6014  Mass Storage Device
	6015  Mass Storage Device
	6125  MP3 Player
	6180  MP3 Player
	6200  MP3 Player
	7500  Hi-Speed Mass Storage Device
	8001  BenQ ZOWIE Gaming Mouse
	9000  AWL300 Wireless Adapter
	9001  AWL400 Wireless Adapter
	9213  Kbd Hub
04a6  Nokia Display Products
	00b9  Audio
	0180  Hub Type P
	0181  HID Monitor Controls
04a7  Visioneer
	0063  Visioneer DocuMate 152i
	0100  StrobePro
	0101  Strobe Pro Scanner (1.01)
	0102  StrobePro Scanner
	0211  OneTouch 7600 Scanner
	0221  OneTouch 5300 Scanner
	0223  OneTouch 8200
	0224  OneTouch 4800 USB/Microtek Scanport 3000
	0225  VistaScan Astra 3600(ENG)
	0226  OneTouch 5300 USB
	0229  OneTouch 7100
	022a  OneTouch 6600
	022c  OneTouch 9000/9020
	0231  6100 Scanner
	0311  6200 EPP/USB Scanner
	0321  OneTouch 8100 EPP/USB Scanner
	0331  OneTouch 8600 EPP/USB Scanner
	0341  6400
	0361  VistaScan Astra 3600(ENG)
	0362  OneTouch 9320
	0371  OneTouch 8700/8920
	0380  OneTouch 7700
	0382  Photo Port 7700
	0390  9650
	03a0  Xerox 4800 One Touch
	0410  OneTouch Pro 8800/8820
	0421  9450 USB
	0423  9750 Scanner
	0424  Strobe XP 450
	0425  Strobe XP 100
	0426  Strobe XP 200
	0427  Strobe XP 100
	0444  OneTouch 7300
	0445  CardReader 100
	0446  Xerox DocuMate 510
	0447  XEROX DocuMate 520
	0448  XEROX DocuMate 250
	0449  Xerox DocuMate 252
	044a  Xerox 6400
	044c  Xerox DocuMate 262
	0474  Strobe XP 300
	0475  Xerox DocuMate 272
	0478  Strobe XP 220
	0479  Strobe XP 470
	047a  9450
	047b  9650
	047d  9420
	0480  9520
	048f  Strobe XP 470
	0491  Strobe XP 450
	0493  9750
	0494  Strobe XP 120
	0497  Patriot 430
	0498  Patriot 680
	0499  Patriot 780
	049b  Strobe XP 100
	04a0  7400
	04ac  Xerox Travel Scanner 100
	04bb  strobe 400 scanner
	04cd  Xerox Travel Scanner 150
	04ee  Duplex Combo Scanner
04a8  Multivideo Labs, Inc.
	0101  Hub
	0303  Peripheral Switch
	0404  Peripheral Switch
04a9  Canon, Inc.
	1005  BJ Printer Hub
	1035  PD Printer Storage
	1050  BJC-8200
	1051  BJC-3000 Color Printer
	1052  BJC-6100
	1053  BJC-6200
	1054  BJC-6500
	1055  BJC-85
	1056  BJC-2110 Color Printer
	1057  LR1
	105a  BJC-55
	105b  S600 Printer
	105c  S400
	105d  S450 Printer
	105e  S800
	1062  S500 Printer
	1063  S4500
	1064  S300 Printer
	1065  S100
	1066  S630
	1067  S900
	1068  S9000
	1069  S820
	106a  S200 Printer
	106b  S520 Printer
	106d  S750 Printer
	106e  S820D
	1070  S530D
	1071  Sony MPR-501
	1072  I850 Printer
	1073  I550 Printer
	1074  S330 Printer
	1075  Sony MPR-505
	1076  i70
	1077  i950
	107a  S830D
	107b  i320
	107c  i470D
	107d  i9100
	107e  i450
	107f  i860
	1082  i350
	1084  i250
	1085  i255
	1086  i560
	1088  i965
	108a  i455
	108b  i900D
	108c  i475D
	108d  PIXMA iP2000
	108f  i80
	1090  i9900 Photo Printer
	1091  PIXMA iP1500
	1093  PIXMA iP4000
	1094  PIXMA iP3000x Printer
	1095  PIXMA iP6000D
	1097  PIXMA iP5000
	1098  PIXMA iP1000
	1099  PIXMA iP8500
	109c  PIXMA iP4000R
	109d  iP90
	10a0  PIXMA iP1600 Printer
	10a2  iP4200
	10a4  iP5200R
	10a5  iP5200
	10a7  iP6210D
	10a8  iP6220D
	10a9  iP6600D
	10b6  PIXMA iP4300 Printer
	10b7  PIXMA iP5300 Printer
	10c2  PIXMA iP1800 Printer
	10c4  Pixma iP4500 Printer
	10c9  PIXMA iP4600 Printer
	10ca  PIXMA iP3600 Printer
	10e3  PIXMA iX6850 Printer
	12fe  Printer in service mode
	1404  W6400PG
	1405  W8400PG
	150f  BIJ2350 PCL
	1510  BIJ1350 PCL
	1512  BIJ1350D PCL
	1601  DR-2080C Scanner
	1607  DR-6080 Scanner
	1608  DR-2580C Scanner
	1609  DR-3080CII
	160a  DR-2050C Scanner
	1700  PIXMA MP110 Scanner
	1701  PIXMA MP130 Scanner
	1702  MP410 Composite
	1703  MP430 Composite
	1704  MP330 Composite
	1706  PIXMA MP750 Scanner
	1707  PIXMA MP780/MP790
	1708  PIXMA MP760/MP770
	1709  PIXMA MP150 Scanner
	170a  PIXMA MP170 Scanner
	170b  PIXMA MP450 Scanner
	170c  PIXMA MP500 Scanner
	170d  PIXMA MP800 Scanner
	170e  PIXMA MP800R
	1710  MP950
	1712  PIXMA MP530
	1713  PIXMA MP830 Scanner
	1714  MP160
	1715  PIXMA MP180
	1716  PIXMA MP460
	1717  PIXMA MP510
	1718  PIXMA MP600
	1719  PIXMA MP600R
	171a  PIXMA MP810
	171b  PIXMA MP960
	171c  PIXMA MX7600
	1721  PIXMA MP210
	1722  PIXMA MP220
	1723  PIXMA MP470
	1724  PIXMA MP520 series
	1725  PIXMA MP610
	1726  PIXMA MP970
	1727  PIXMA MX300
	1728  PIXMA MX310 series
	1729  PIXMA MX700
	172b  MP140 ser
	172c  PIXMA MX850
	172d  PIXMA MP980
	172e  PIXMA MP630
	172f  PIXMA MP620
	1730  PIXMA MP540
	1731  PIXMA MP480
	1732  PIXMA MP240
	1733  PIXMA MP260
	1734  PIXMA MP190
	1735  PIXMA MX860
	1736  PIXMA MX320 series
	1737  PIXMA MX330
	173a  PIXMA MP250
	173b  PIXMA MP270 All-In-One Printer
	173c  PIXMA MP490
	173d  PIXMA MP550
	173e  PIXMA MP560
	173f  PIXMA MP640
	1740  PIXMA MP990
	1741  PIXMA MX340
	1742  PIXMA MX350
	1743  PIXMA MX870
	1746  PIXMA MP280
	1747  PIXMA MP495
	1748  PIXMA MG5100 Series
	1749  PIXMA MG5200 Series
	174a  PIXMA MG6100 Series
	174b  PIXMA MG8100 Series
	174d  PIXMA MX360
	174e  PIXMA MX410
	174f  PIXMA MX420
	1750  PIXMA MX880 Series
	1752  PIXMA MG3100 Series
	1753  PIXMA MG4100 Series
	1754  PIXMA MG5300 Series
	1755  PIXMA MG6200 Series
	1756  PIXMA MG8200 Series
	1757  PIXMA MP493
	1759  PIXMA MX370 Series
	175b  PIXMA MX430 Series
	175c  PIXMA MX510 Series
	175d  PIXMA MX710 Series
	175e  PIXMA MX890 Series
	175f  PIXMA MP230
	1762  PIXMA MG3200 Series
	1763  PIXMA MG4200 Series
	1764  PIXMA MG5400 Series
	1765  PIXMA MG6300 Series
	1766  PIXMA MX390 Series
	1768  PIXMA MX450 Series
	1769  PIXMA MX520 Series
	176a  PIXMA MX720 Series
	176b  PIXMA MX920 Series
	176d  PIXMA MG2500 Series
	176e  PIXMA MG3500 Series
	176f  PIXMA MG6500 Series
	1770  PIXMA MG6400 Series
	1771  PIXMA MG5500 Series
	1772  PIXMA MG7100 Series
	1774  PIXMA MX470 Series
	1775  PIXMA MX530 Series
	177c  PIXMA MG7500 Series
	177e  PIXMA MG6600 Series
	177f  PIXMA MG5600 Series
	1780  PIXMA MG2900 Series
	1787  PIXMA MX490 Series
	178a  PIXMA MG3600 Series
	178d  PIXMA MG6853
	180b  PIXMA MG3000 series
	183b  PIXMA MG3110 Series
	1856  PIXMA TS6250
	1900  CanoScan LiDE 90
	1901  CanoScan 8800F
	1904  CanoScan LiDE 100
	1905  CanoScan LiDE 200
	1906  CanoScan 5600F
	1907  CanoScan LiDE 700F
	1908  CanoScan 9000F
	1909  CanoScan LiDE 110
	190a  CanoScan LiDE 210
	190d  CanoScan 9000F Mark II
	190e  CanoScan LiDE 120
	190f  CanoScan LiDE 220
	1912  LiDE 400
	1913  CanoScan LiDE 300
	2200  CanoScan LiDE 25
	2201  CanoScan FB320U
	2202  CanoScan FB620U
	2204  CanoScan FB630U
	2205  CanoScan FB1210U
	2206  CanoScan N650U/N656U
	2207  CanoScan 1220U
	2208  CanoScan D660U
	220a  CanoScan D2400UF
	220b  CanoScan D646U
	220c  CanoScan D1250U2
	220d  CanoScan N670U/N676U/LiDE 20
	220e  CanoScan N1240U/LiDE 30
	220f  CanoScan 8000F
	2210  CanoScan 9900F
	2212  CanoScan 5000F
	2213  CanoScan LiDE 50/LiDE 35/LiDE 40
	2214  CanoScan LiDE 80
	2215  CanoScan 3000/3000F/3000ex
	2216  CanoScan 3200F
	2217  CanoScan 5200F
	2219  CanoScan 9950F
	221b  CanoScan 4200F
	221c  CanoScan LiDE 60
	221e  CanoScan 8400F
	221f  CanoScan LiDE 500F
	2220  CanoScan LIDE 25
	2224  CanoScan LiDE 600F
	2225  CanoScan LiDE 70
	2228  CanoScan 4400F
	2229  CanoScan 8600F
	2602  MultiPASS C555
	2603  MultiPASS C755
	260a  LBP810
	260e  LBP-2000
	2610  MPC600F
	2611  SmartBase MPC400
	2612  MultiPASS C855
	2617  LBP1210
	261a  iR1600
	261b  iR1610
	261c  iC2300
	261f  MPC200 Printer
	2621  iR2000
	2622  iR2010
	2623  FAX-B180C
	2629  FAXPHONE L75
	262b  LaserShot LBP-1120 Printer
	262c  imageCLASS D300
	262d  iR C3200
	262f  PIXMA MP730
	2630  PIXMA MP700
	2631  LASER CLASS 700
	2632  FAX-L2000
	2633  LASERCLASS 500
	2634  PC-D300/FAX-L400/ICD300
	2635  MPC190
	2636  LBP3200
	2637  iR C6800
	2638  iR C3100
	263c  PIXMA MP360
	263d  PIXMA MP370
	263e  PIXMA MP390
	263f  PIXMA MP375R
	2646  MF5530 Scanner Device V1.9.1
	2647  MF5550 Composite
	264c  PIXMA MP740
	264d  PIXMA MP710
	264e  MF5630
	264f  MF5650 (FAX)
	2650  iR 6800C EUR
	2651  iR 3100C EUR
	2654  LBP3600
	2655  FP-L170/MF350/L380/L398
	2656  iR1510-1670 CAPT Printer
	2657  LBP3210
	2659  MF8100
	265b  CAPT Printer
	265c  iR C3220
	265d  MF5730
	265e  MF5750
	265f  MF5770
	2660  MF3110
	2663  iR3570/iR4570
	2664  iR2270/iR2870
	2665  iR C2620
	2666  iR C5800
	2667  iR85PLUS
	2669  iR105PLUS
	266a  LBP3000
	266b  iR8070
	266c  iR9070
	266d  iR 5800C EUR
	266e  CAPT Device
	266f  iR2230
	2670  iR3530
	2671  iR5570/iR6570
	2672  iR C3170
	2673  iR 3170C EUR
	2674  FAX-L120
	2675  iR2830
	2676  LBP2900
	2677  iR C2570
	2678  iR 2570C EUR
	2679  LBP5000
	267a  iR2016
	267b  iR2020
	267d  MF7100 series
	267e  LBP3300
	2684  MF3200 series
	2686  MF6500 series
	2687  iR4530
	2688  LBP3460
	2689  FAX-L180/L380S/L398S
	268a  LC310/L390/L408S
	268b  LBP3500
	268c  iR C6870
	268d  iR 6870C EUR
	268e  iR C5870
	268f  iR 5870C EUR
	2691  iR7105
	26a1  LBP5300
	26a3  MF4100 series
	26a4  LBP5100
	26b0  MF4600 series
	26b4  MF4010 series
	26b5  MF4200 series
	26b6  FAX-L140/L130
	26b9  LBP3310
	26ba  LBP5050
	26da  LBP3010/LBP3018/LBP3050
	26db  LBP3100/LBP3108/LBP3150
	26e6  iR1024
	26ea  LBP9100C
	26ee  MF4320-4350
	26f1  LBP7200C
	26ff  LBP6300
	271a  LBP6000
	271b  LBP6200
	271c  LBP7010C/7018C
	2736  I-SENSYS MF4550d
	2737  MF4410
	2742  imageRUNNER1133 series
	2771  LBP6020
	2796  LBP6230/6240
	3041  PowerShot S10
	3042  CanoScan FS4000US Film Scanner
	3043  PowerShot S20
	3044  EOS D30
	3045  PowerShot S100
	3046  IXY Digital
	3047  Digital IXUS
	3048  PowerShot G1
	3049  PowerShot Pro90 IS
	304a  CP-10
	304b  IXY Digital 300
	304c  PowerShot S300
	304d  Digital IXUS 300
	304e  PowerShot A20
	304f  PowerShot A10
	3050  PowerShot unknown 1
	3051  PowerShot S110
	3052  Digital IXUS V
	3055  PowerShot G2
	3056  PowerShot S40
	3057  PowerShot S30
	3058  PowerShot A40
	3059  PowerShot A30
	305b  ZR45MC Digital Camcorder
	305c  PowerShot unknown 2
	3060  EOS D60
	3061  PowerShot A100
	3062  PowerShot A200
	3063  CP-100
	3065  PowerShot S200
	3066  Digital IXUS 330
	3067  MV550i Digital Video Camera
	3069  PowerShot G3
	306a  Digital unknown 3
	306b  MVX2i Digital Video Camera
	306c  PowerShot S45
	306d  PowerShot S45 PtP Mode
	306e  PowerShot G3 (normal mode)
	306f  PowerShot G3 (ptp)
	3070  PowerShot S230
	3071  PowerShot S230 (ptp)
	3072  PowerShot SD100 / Digital IXUS II (ptp)
	3073  PowerShot A70 (ptp)
	3074  PowerShot A60 (ptp)
	3075  IXUS 400 Camera
	3076  PowerShot A300
	3077  PowerShot S50
	3078  ZR70MC Digital Camcorder
	307a  MV650i (normal mode)
	307b  MV630i Digital Video Camera
	307c  CP-200
	307d  CP-300
	307f  Optura 20
	3080  MVX150i (normal mode) / Optura 20 (normal mode)
	3081  Optura 10
	3082  MVX100i / Optura 10
	3083  EOS 10D
	3084  EOS 300D / EOS Digital Rebel
	3085  PowerShot G5
	3087  Elura 50 (PTP mode)
	3088  Elura 50 (normal mode)
	308d  MVX3i
	308e  FV M1 (normal mode) / MVX 3i (normal mode) / Optura Xi (normal mode)
	3093  Optura 300
	3096  IXY DV M2 (normal mode) / MVX 10i (normal mode)
	3099  EOS 300D (ptp)
	309a  PowerShot A80
	309b  Digital IXUS (ptp)
	309c  PowerShot S1 IS
	309d  Powershot Pro 1
	309f  Camera
	30a0  Camera
	30a1  Camera
	30a2  Camera
	30a8  Elura 60E/Optura 40 (ptp)
	30a9  MVX25i (normal mode) / Optura 40 (normal mode)
	30b1  PowerShot S70 (normal mode) / PowerShot S70 (PTP mode)
	30b2  PowerShot S60 (normal mode) / PowerShot S60 (PTP mode)
	30b3  PowerShot G6 (normal mode) / PowerShot G6 (PTP mode)
	30b4  PowerShot S500
	30b5  PowerShot A75
	30b6  Digital IXUS II2  / Digital IXUS II2 (PTP mode) / PowerShot SD110 (PTP mode) / PowerShot SD110 Digital ELPH
	30b7  PowerShot A400 / PowerShot A400 (PTP mode)
	30b8  PowerShot A310 / PowerShot A310 (PTP mode)
	30b9  Powershot A85
	30ba  PowerShot S410 Digital Elph
	30bb  PowerShot A95
	30bd  CP-220
	30be  CP-330
	30bf  Digital IXUS 40
	30c0  Digital IXUS 30 (PTP mode) / PowerShot SD200 (PTP mode)
	30c1  Digital IXUS 50 (normal mode) / IXY Digital 55 (normal mode) / PowerShot A520 (PTP mode) / PowerShot SD400 (normal mode)
	30c2  PowerShot A510 (normal mode) / PowerShot A510 (PTP mode)
	30c4  Digital IXUS i5 (normal mode) / IXY Digital L2 (normal mode) / PowerShot SD20 (normal mode)
	30ea  EOS 1D Mark II (PTP mode)
	30eb  EOS 20D
	30ec  EOS 20D (ptp)
	30ee  EOS 350D
	30ef  EOS 350D (ptp)
	30f0  PowerShot S2 IS (PTP mode)
	30f2  Digital IXUS 700 (normal mode) / Digital IXUS 700 (PTP mode) / IXY Digital 600 (normal mode) / PowerShot SD500 (normal mode) / PowerShot SD500 (PTP mode)
	30f4  PowerShot SD30 / Ixus iZoom / IXY DIGITAL L3
	30f5  SELPHY CP500
	30f6  SELPHY CP400
	30f8  Powershot A430
	30f9  PowerShot A410 (PTP mode)
	30fa  PowerShot S80
	30fc  PowerShot A620 (PTP mode)
	30fd  PowerShot A610 (normal mode)/PowerShot A610 (PTP mode)
	30fe  Digital IXUS 65 (PTP mode)/PowerShot SD630 (PTP mode)
	30ff  Digital IXUS 55 (PTP mode)/PowerShot SD450 (PTP mode)
	3100  PowerShot TX1
	310b  SELPHY CP600
	310e  Digital IXUS 50 (PTP mode)
	310f  PowerShot A420
	3110  EOS Digital Rebel XTi
	3115  PowerShot SD900 / Digital IXUS 900 Ti / IXY DIGITAL 1000
	3116  Digital IXUS 750 / PowerShot SD550 (PTP mode)
	3117  PowerShot A700
	3119  PowerShot SD700 IS / Digital IXUS 800 IS / IXY Digital 800 IS
	311a  PowerShot S3 IS
	311b  PowerShot A540
	311c  PowerShot SD600 DIGITAL ELPH / DIGITAL IXUS 60 / IXY DIGITAL 70
	3125  PowerShot G7
	3126  PowerShot A530
	3127  SELPHY CP710
	3128  SELPHY CP510
	312d  Elura 100
	3136  PowerShot SD800 IS / Digital IXUS 850 IS / IXY DIGITAL 900 IS
	3137  PowerShot SD40 / Digital IXUS i7 IXY / DIGITAL L4
	3138  PowerShot A710 IS
	3139  PowerShot A640
	313a  PowerShot A630
	3141  SELPHY ES1
	3142  SELPHY CP730
	3143  SELPHY CP720
	3145  EOS 450D
	3146  EOS 40D
	3147  EOS 1Ds Mark III
	3148  PowerShot S5 IS
	3149  PowerShot A460
	314b  PowerShot SD850 IS DIGITAL ELPH / Digital IXUS 950 IS / IXY DIGITAL 810 IS
	314c  PowerShot A570 IS
	314d  PowerShot A560
	314e  PowerShot SD750 DIGITAL ELPH / DIGITAL IXUS 75 / IXY DIGITAL 90
	314f  PowerShot SD1000 DIGITAL ELPH / DIGITAL IXUS 70 / IXY DIGITAL 10
	3150  PowerShot A550
	3155  PowerShot A450
	315a  PowerShot G9
	315b  PowerShot A650 IS
	315d  PowerShot A720
	315e  PowerShot SX100 IS
	315f  PowerShot SD950 IS DIGITAL ELPH / DIGITAL IXUS 960 IS / IXY DIGITAL 2000 IS
	3160  Digital IXUS 860 IS
	3170  SELPHY CP750
	3171  SELPHY CP740
	3172  SELPHY CP520
	3173  PowerShot SD890 IS DIGITAL ELPH / Digital IXUS 970 IS / IXY DIGITAL 820 IS
	3174  PowerShot SD790 IS DIGITAL ELPH / Digital IXUS 90 IS / IXY DIGITAL 95 IS
	3175  IXY Digital 25 IS
	3176  PowerShot A590
	3177  PowerShot A580
	317a  PC1267 [Powershot A470]
	3184  Digital IXUS 80 IS (PTP mode)
	3185  SELPHY ES2
	3186  SELPHY ES20
	318d  PowerShot SX100 IS
	318e  PowerShot A1000 IS
	318f  PowerShot G10
	3191  PowerShot A2000 IS
	3192  PowerShot SX110 IS
	3193  PowerShot SD990 IS DIGITAL ELPH / Digital IXUS 980 IS / IXY DIGITAL 3000 IS
	3195  PowerShot SX1 IS
	3196  PowerShot SD880 IS DIGITAL ELPH / Digital IXUS 870 IS / IXY DIGITAL 920 IS
	3199  EOS 5D Mark II
	319a  EOS 7D
	319b  EOS 50D
	31aa  SELPHY CP770
	31ab  SELPHY CP760
	31ad  PowerShot E1
	31af  SELPHY ES3
	31b0  SELPHY ES30
	31b1  SELPHY CP530
	31bc  PowerShot D10
	31bd  PowerShot SD960 IS DIGITAL ELPH / Digital IXUS 110 IS / IXY DIGITAL 510 IS
	31be  PowerShot A2100 IS
	31bf  PowerShot A480
	31c0  PowerShot SX200 IS
	31c1  PowerShot SD970 IS DIGITAL ELPH / Digital IXUS 990 IS / IXY DIGITAL 830 IS
	31c2  PowerShot SD780 IS DIGITAL ELPH / Digital IXUS 100 IS / IXY DIGITAL 210 IS
	31c3  PowerShot A1100 IS
	31c4  PowerShot SD1200 IS DIGITAL ELPH / Digital IXUS 95 IS / IXY DIGITAL 110 IS
	31cf  EOS Rebel T1i / EOS 500D / EOS Kiss X3
	31dd  SELPHY CP780
	31df  PowerShot G11
	31e0  PowerShot SX120 IS
	31e1  PowerShot S90
	31e4  PowerShot SX20 IS
	31e5  Digital IXUS 200 IS
	31e6  PowerShot SD940 IS DIGITAL ELPH / Digital IXUS 120 IS / IXY DIGITAL 220 IS
	31e7  SELPHY CP790
	31ea  EOS Rebel T2i / EOS 550D / EOS Kiss X4
	31ee  SELPHY ES40
	31ef  PowerShot A495
	31f0  PowerShot A490
	31f1  PowerShot A3100 IS / PowerShot A3150 IS
	31f2  PowerShot A3000 IS
	31f3  PowerShot Digital ELPH SD1400 IS
	31f4  PowerShot SD1300 IS / IXUS 105
	31f5  Powershot SD3500 IS / IXUS 210 IS
	31f6  PowerShot SX210 IS
	31f7  Powershot SD4000 IS / IXUS 300 HS / IXY 30S
	31f8  Powershot SD4500 IS / IXUS 1000 HS / IXY 50S
	31ff  Digital IXUS 55
	3209  Vixia HF S21 A
	320f  PowerShot G12
	3210  Powershot SX30 IS
	3211  PowerShot SX130 IS
	3212  Powershot S95
	3214  SELPHY CP800
	3215  EOS 60D
	3218  EOS 600D / Rebel T3i (ptp)
	3219  EOS 1D X
	3223  PowerShot A3300 IS
	3224  PowerShot A3200 IS
	3225  PowerShot ELPH 500 HS / IXUS 310 HS
	3226  PowerShow A800
	3227  PowerShot ELPH 100 HS / IXUS 115 HS
	3228  PowerShot SX230 HS
	3229  PowerShot ELPH 300 HS / IXUS 220 HS
	322a  PowerShot A2200
	322b  Powershot A1200
	322c  PowerShot SX220 HS
	3233  PowerShot G1 X
	3234  PowerShot SX150 IS
	3235  PowerShot ELPH 510 HS / IXUS 1100 HS
	3236  PowerShot S100
	3237  PowerShot ELPH 310 HS / IXUS 230 HS
	3238  PowerShot SX40 HS
	323a  EOS 5D Mark III
	323b  EOS Rebel T4i
	323d  EOS M
	323e  PowerShot A1300
	323f  PowerShot A810
	3240  PowerShot ELPH 320 HS / IXUS 240 HS
	3241  PowerShot ELPH 110 HS / IXUS 125 HS
	3242  PowerShot D20
	3243  PowerShot A4000 IS
	3244  PowerShot SX260 HS
	3245  PowerShot SX240 HS
	3246  PowerShot ELPH 530 HS / IXUS 510 HS
	3247  PowerShot ELPH 520 HS / IXUS 500 HS
	3248  PowerShot A3400 IS
	3249  PowerShot A2400 IS
	324a  PowerShot A2300
	3250  EOS 6D
	3252  EOS 1D C
	3253  EOS 70D
	3255  SELPHY CP900
	3256  SELPHY CP810
	3258  PowerShot G15
	3259  PowerShot SX50 HS
	325a  PowerShot SX160 IS
	325b  PowerShot S110
	325c  PowerShot SX500 IS
	325e  PowerShot N
	325f  PowerShot SX280 HS
	3260  PowerShot SX270 HS
	3261  PowerShot A3500 IS
	3262  PowerShot A2600
	3263  PowerShot SX275 HS
	3264  PowerShot A1400
	3265  Powershot ELPH 130 IS / IXUS 140
	3266  Powershot ELPH 120 IS / IXUS 135
	3268  PowerShot ELPH 330 HS / IXUS 255 HS
	326f  EOS 7D Mark II
	3270  EOS 100D
	3271  PowerShot A2500
	3272  EOS 700D
	3274  PowerShot G16
	3275  PowerShot S120
	3276  PowerShot SX170 IS
	3277  PowerShot SX510 HS
	3278  PowerShot S200
	327a  SELPHY CP910
	327b  SELPHY CP820
	327d  Powershot ELPH 115 IS / IXUS 132
	327f  EOS Rebel T5 / EOS 1200D / EOS Kiss X70
	3284  PowerShot D30
	3285  PowerShot SX700 HS
	3286  PowerShot SX600 HS
	3287  PowerShot ELPH 140 IS / IXUS 150
	3288  Powershot ELPH 135 / IXUS 145
	3289  PowerShot ELPH 340 HS / IXUS 265 HS
	328a  PowerShot ELPH 150 IS / IXUS 155
	328b  PowerShot N Facebook(R) Ready
	3299  EOS M3
	329a  PowerShot SX60 HS
	329b  PowerShot SX520 HS
	329c  PowerShot SX400 IS
	329d  PowerShot G7 X
	329f  PowerShot SX530 HS
	32a0  EOS M10
	32a6  PowerShot SX710 HS
	32a7  PowerShot SX610 HS
	32a8  PowerShot G3 X
	32aa  Powershot ELPH 160 / IXUS 160
	32ab  PowerShot ELPH 350HS / IXUS 275 HS
	32ac  PowerShot ELPH 170 IS / IXUS 170
	32ad  PowerShot SX410 IS
	32b1  SELPHY CP1200
	32b2  PowerShot G9 X
	32b3  PowerShot G5 X
	32b4  EOS Rebel T6
	32bb  EOS M5
	32bf  PowerShot SX420 IS
	32c0  PowerShot ELPH 190IS
	32c1  PowerShot ELPH 180 / IXUS 175
	32c2  PowerShot SX720 HS
	32c5  EOS M6
	32cc  EOS 200D
	32d1  EOS M100
	32d2  EOS M50
	32d4  Powershot ELPH 185 / IXUS 185 / IXY 200
	32d5  PowerShot SX430 IS
	32db  SELPHY CP1300
	3302  SELPHY CP1500
04aa  DaeWoo Telecom, Ltd
04ab  Chromatic Research
04ac  Micro Audiometrics Corp.
04ad  Dooin Electronics
	2501  Bluetooth Device
04af  Winnov L.P.
04b0  Nikon Corp.
	0102  Coolpix 990
	0103  Coolpix 880
	0104  Coolpix 995
	0106  Coolpix 775
	0107  Coolpix 5000
	0108  Coolpix 2500
	0109  Coolpix 2500 (ptp)
	010a  Coolpix 4500
	010b  Coolpix 4500 (ptp)
	010d  Coolpix 5700 (ptp)
	010e  Coolpix 4300 (storage)
	010f  Coolpix 4300 (ptp)
	0110  Coolpix 3500 (Sierra Mode)
	0111  Coolpix 3500 (ptp)
	0112  Coolpix 885 (ptp)
	0113  Coolpix 5000 (ptp)
	0114  Coolpix 3100 (storage)
	0115  Coolpix 3100 (ptp)
	0117  Coolpix 2100 (ptp)
	0119  Coolpix 5400 (ptp)
	011d  Coolpix 3700 (ptp)
	0121  Coolpix 3200 (ptp)
	0122  Coolpix 2200 (ptp)
	0124  Coolpix 8400 (mass storage mode)
	0125  Coolpix 8400 (ptp)
	0126  Coolpix 8800
	0129  Coolpix 4800 (ptp)
	012c  Coolpix 4100 (storage)
	012d  Coolpix 4100 (ptp)
	012e  Coolpix 5600 (ptp)
	0130  Coolpix 4600 (ptp)
	0135  Coolpix 5900 (ptp)
	0136  Coolpix 7900 (storage)
	0137  Coolpix 7900 (ptp)
	013a  Coolpix 100 (storage)
	013b  Coolpix 100 (ptp)
	0141  Coolpix P2 (storage)
	0142  Coolpix P2 (ptp)
	0163  Coolpix P5100 (ptp)
	0169  Coolpix P50 (ptp)
	0202  Coolpix SQ (ptp)
	0203  Coolpix 4200 (mass storage mode)
	0204  Coolpix 4200 (ptp)
	0205  Coolpix 5200 (storage)
	0206  Coolpix 5200 (ptp)
	0301  Coolpix 2000 (storage)
	0302  Coolpix 2000 (ptp)
	0317  Coolpix L20 (ptp)
	0402  DSC D100 (ptp)
	0403  D2H (mass storage mode)
	0404  D2H SLR (ptp)
	0405  D70 (mass storage mode)
	0406  DSC D70 (ptp)
	0408  D2X SLR (ptp)
	0409  D50 digital camera
	040a  D50 (ptp)
	040c  D2Hs
	040e  DSC D70s (ptp)
	040f  D200 (mass storage mode)
	0410  D200 (ptp)
	0411  D80 (mass storage mode)
	0412  D80 (MTP/PTP mode)
	0413  D40 (mass storage mode)
	041e  D60 digital camera (mass storage mode)
	0422  D700 (ptp)
	0423  D5000
	0424  D3000
	0425  D300S
	0428  D7000
	0429  D5100
	042a  D800 (ptp)
	0430  D7100
	0434  D610
	0436  D810
	043f  D5600
	0455  Z50II
	0f03  PD-10 Wireless Printer Adapter
	4000  Coolscan LS 40 ED
	4001  LS 50 ED/Coolscan V ED
	4002  Super Coolscan LS-5000 ED
04b1  Pan International
04b3  IBM Corp.
	3003  Rapid Access III Keyboard
	3004  Media Access Pro Keyboard
	300a  Rapid Access IIIe Keyboard
	3016  UltraNav Keyboard Hub
	3018  UltraNav Keyboard
	301a  2-port low-power hub
	301b  SK-8815 Keyboard
	301c  Enhanced Performance Keyboard
	301e  Keyboard with UltraNav (SK-8845RC)
	3020  Enhanced Performance Keyboard
	3025  NetVista Full Width Keyboard
	3100  NetVista Mouse
	3103  ScrollPoint Pro Mouse
	3104  ScrollPoint Wireless Mouse
	3105  ScrollPoint Optical (HID)
	3107  ThinkPad 800dpi Optical Travel Mouse
	3108  800dpi Optical Mouse w/ Scroll Point
	3109  Optical ScrollPoint Pro Mouse
	310b  Red Wheel Mouse
	310c  Wheel Mouse
	4427  Portable CD ROM
	4482  Serial Converter
	4484  SMSC USB20H04 3-Port Hub [ThinkPad X4 UltraBase, Wistron S Note-3 Media Slice]
	4485  ThinkPad Dock Hub
	4524  40 Character Vacuum Fluorescent Display
	4525  Double sided CRT
	4535  4610 Suremark Printer
	4550  NVRAM (128 KB)
	4554  Cash Drawer
	4580  Hub w/ NVRAM
	4581  4800-2xx Hub w/ Cash Drawer
	4604  Keyboard w/ Card Reader
	4671  4820 LCD w/ MSR/KB
04b4  Cypress Semiconductor Corp.
	0001  Mouse
	0002  CY7C63x0x Thermometer
	0008  CDC ACM serial port
	0033  Mouse
	0060  Wireless optical mouse
	00f3  FX3 micro-controller (DFU mode)
	0100  Cino FuzzyScan F760-B
	0101  Keyboard/Hub
	0102  Keyboard with APM
	0130  MyIRC Remote Receiver
	0306  Telephone Receiver
	0407  Optical Skype Mouse
	0818  AE-SMKD92-* [Thumb Keyboard]
	0bad  MetaGeek Wi-Spy
	1002  CY7C63001 R100 FM Radio
	1006  Human Interface Device
	2050  hub
	2830  Opera1 DVB-S (cold state)
	3813  NANO BIOS Programmer
	4235  Monitor 02 Driver
	4381  SCAPS USC-1 Scanner Controller
	4611  Storage Adapter FX2 (CY)
	4616  Flash Disk (TPP)
	4624  DS-Xtreme Flash Card
	4717  West Bridge
	5201  Combi Keyboard-Hub (Hub)
	5202  Combi Keyboard-Hub (Keyboard)
	5500  HID->COM RS232 Adapter
	5a9b  Dacal CD/DVD Library D-101/DC-300/DC-016RW
	6022  Hantek DSO-6022BE
	602a  Hantek DSO-6022BL
	6370  ViewMate Desktop Mouse CC2201
	6502  CY4609
	6506  CY4603
	650a  CY4613
	6560  CY7C65640 USB-2.0 "TetraHub"
	6570  Unprogrammed CY7C65632/34 hub HX2VL
	6572  Unprogrammed CY7C65642 hub
	6830  CY7C68300A EZ-USB AT2 USB 2.0 to ATA/ATAPI
	6831  Storage Adapter ISD-300LP (CY)
	7417  Wireless PC Lock/Ultra Mouse
	8329  USB To keyboard/Mouse Converter
	8613  CY7C68013 EZ-USB FX2 USB 2.0 Development Kit
	8614  DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
	861f  Anysee E30 USB 2.0 DVB-T Receiver
	bca1  Barcode Reader
	cc04  Centor USB RACIA-ALVAR USB PORT
	cc06  Centor-P RACIA-ALVAR USB PORT
	d5d5  CY7C63x0x Zoltrix Z-Boxer GamePad
	de61  Barcode Reader
	de64  Barcode Reader
	f000  CY30700 Licorice evaluation board
	f111  CY8CKIT-002 PSoC MiniProg3 Rev A Program and debug kit
	f115  PSoC FirstTouch Programmer
	f139  KitProg
	f231  DELLY Changer 4in1 universal IR remote
	f232  Mono embedded computer
	fd10  Gembird MSIS-PM
	fd13  Energenie EG-PMS
	fd15  Energenie EG-PMS2
04b5  ROHM LSI Systems USA, LLC
	3064  Hantek DSO-3064
	6022  Hantek DSO-6022BE
	602a  Hantek DSO-6022BL
04b6  Hint Corp.
04b7  Compal Electronics, Inc.
04b8  Seiko Epson Corp.
	0001  Stylus Color 740 / Photo 750
	0002  ISD Smart Cable for Mac
	0003  ISD Smart Cable
	0004  Printer
	0005  Printer
	0006  Printer
	0007  Printer
	0015  Stylus Photo R3000
	0080  SC-P400 Series
	0101  GT-7000U [Perfection 636]
	0102  GT-2200
	0103  GT-6600U [Perfection 610]
	0104  GT-7600UF [Perfection 1200U/1200U Photo]
	0105  Stylus Scan 2000
	0106  Stylus Scan 2500
	0107  ES-2000 [Expression 1600U]
	0108  CC-700
	0109  ES-8500 [Expression 1640 XL]
	010a  GT-8700/GT-8700F [Perfection 1640SU/1640SU PHOTO]
	010b  GT-7700U [Perfection 1240U]
	010c  GT-6700U [Perfection 640]
	010d  CC-500L
	010e  ES-2200 [Perfection 1680]
	010f  GT-7200U [Perfection 1250/1250 PHOTO]
	0110  GT-8200U/GT-8200UF [Perfection 1650/1650 PHOTO]
	0112  GT-9700F [Perfection 2450 PHOTO]
	0114  Perfection 660
	0116  GT-9400UF [Perfection 3170]
	0118  GT-F600 [Perfection 4180]
	0119  GT-X750 [Perfection 4490 Photo]
	011a  CC-550L [1000 ICS]
	011b  GT-9300UF [Perfection 2400 PHOTO]
	011c  GT-9800F [Perfection 3200]
	011d  GT-7300U [Perfection 1260/1260 PHOTO]
	011e  GT-8300UF [Perfection 1660 PHOTO]
	011f  GT-8400UF [Perfection 1670/1670 PHOTO]
	0120  GT-7400U [Perfection 1270]
	0121  GT-F500/GT-F550 [Perfection 2480/2580 PHOTO]
	0122  GT-F520/GT-F570 [Perfection 3590 PHOTO]
	0126  ES-7000H [GT-15000]
	0128  GT-X700 [Perfection 4870]
	0129  ES-10000G [Expression 10000XL]
	012a  GT-X800 [Perfection 4990 PHOTO]
	012b  ES-H300 [GT-2500]
	012c  GT-X900 [Perfection V700/V750 Photo]
	012d  GT-F650 [GT-S600/Perfection V10/V100]
	012e  GT-F670 [Perfection V200 Photo]
	012f  GT-F700 [Perfection V350]
	0130  GT-X770 [Perfection V500]
	0131  GT-F720 [GT-S620/Perfection V30/V300 Photo]
	0133  GT-1500 [GT-D1000]
	0135  GT-X970
	0136  ES-D400 [GT-S80]
	0137  ES-D200 [GT-S50]
	0138  ES-H7200 [GT-20000]
	013a  GT-X820 [Perfection V600 Photo]
	0142  GT-F730 [GT-S630/Perfection V33/V330 Photo]
	0143  GT-S55
	0144  GT-S85
	0151  Perfection V800 Photo
	0202  Interface Card UB-U05 for Thermal Receipt Printers [M129C/TM-T70/TM-T88IV]
	0401  CP 800 Digital Camera
	0402  PhotoPC 850z
	0403  PhotoPC 3000z
	0509  JVC PIX-MC10
	0601  Stylus Photo 875DC Card Reader
	0602  Stylus Photo 895 Card Reader
	0801  CC-600PX [Stylus CX5200/CX5400/CX6600]
	0802  CC-570L [Stylus CX3100/CX3200]
	0803  Printer (Composite Device)
	0804  Storage Device
	0805  Stylus CX6300/CX6400
	0806  PM-A850 [Stylus Photo RX600/610]
	0807  Stylus Photo RX500/510
	0808  Stylus CX5200/CX5300/CX5400
	0809  Storage Device
	080a  F-3200
	080c  ME100 [Stylus CX1500]
	080d  Stylus CX4500/4600
	080e  PX-A550 [CX-3500/3600/3650 MFP]
	080f  Stylus Photo RX420/RX425/RX430
	0810  PM-A900 [Stylus Photo RX700]
	0811  PM-A870 [Stylus Photo RX620/RX630]
	0812  MFP Composite Device
	0813  Stylus CX6500/6600
	0814  PM-A700
	0815  LP-A500 [AcuLaser CX1]
	0816  Printer (Composite Device)
	0817  LP-M5500/LP-M5500F
	0818  Stylus CX3700/CX3800/DX3800
	0819  PX-A650 [Stylus CX4700/CX4800/DX4800/DX4850]
	081a  PM-A750 [Stylus Photo RX520/RX530]
	081b  MFP Composite Device
	081c  PM-A890 [Stylus Photo RX640/RX650]
	081d  PM-A950
	081e  MFP Composite Device
	081f  Stylus CX7700/7800
	0820  Stylus CX4100/CX4200/DX4200
	0821  Stylus CX5700F/CX5800F
	0822  Storage Device
	0823  MFP Composite Device
	0824  Storage Device
	0825  MFP Composite Device
	0826  Storage Device
	0827  PM-A820 [Stylus Photo RX560/RX580/RX585/RX590]
	0828  PM-A970
	0829  PM-T990
	082a  PM-A920
	082b  Stylus CX5900/CX5000/DX5000/DX5050
	082c  Storage Device
	082d  Storage Device
	082e  PX-A720 [Stylus CX5900/CX6000/DX6000]
	082f  PX-A620 [Stylus CX3900/DX4000/DX4050]
	0830  ME 200 [Stylus CX2800/CX2900]
	0831  Stylus CX6900F/CX7000F/DX7000F
	0832  MFP Composite Device
	0833  LP-M5600
	0834  LP-M6000
	0835  AcuLaser CX21
	0836  PM-T960
	0837  PM-A940 [Stylus Photo RX680/RX685/RX690]
	0838  PX-A640 [CX7300/CX7400/DX7400]
	0839  PX-A740 [CX8300/CX8400/DX8400]
	083a  PX-FA700 [CX9300F/CX9400Fax/DX9400F]
	083b  MFP Composite Device
	083c  PM-A840S [Stylus Photo RX595/RX610]
	083d  MFP Composite Device
	083e  MFP Composite Device
	083f  Stylus CX4300/CX4400/CX5500/CX5600/DX4400/DX4450
	0841  PX-401A [ME 300/Stylus NX100]
	0843  LP-M5000
	0844  EP-901A/EP-901F [Artisan 800/Stylus Photo PX800FW]
	0846  EP-801A [Artisan 700/Stylus Photo PX700W/TX700W]
	0847  PX-601F [ME Office 700FW/Stylus Office BX600FW/TX600FW]
	0848  ME Office 600F/Stylus Office BX300F/TX300F
	0849  Stylus SX205
	084a  PX-501A [Stylus NX400]
	084d  PX-402A [Stylus SX115/Stylus NX110 Series]
	084f  Multifunctional Printer Scanner [ME Office 510 / Epson Stylus SX215]
	0850  EP-702A [Stylus Photo PX650/TX650 Series]
	0851  Stylus SX410
	0852  EP-802A [Artisan 710 Series/Stylus Photo PX710W/TX720W Series]
	0853  EP-902A [Artisan 810 Series/Stylus Photo PX810FW Series]
	0854  ME OFFICE 650FN Series/Stylus Office BX310FN/TX520FN Series
	0855  PX-602F [Stylus Office BX610FW/TX620FW Series]
	0856  PX-502A [Stylus SX515W]
	085c  ME 320/330 Series [Stylus SX125]
	085d  PX-603F [ME OFFICE 960FWD Series/Stylus Office BX625FWD/TX620FWD Series]
	085e  PX-503A [ME OFFICE 900WD Series/Stylus Office BX525WD]
	085f  Stylus Office BX320FW/TX525FW Series
	0860  EP-903A/EP-903F [Artisan 835/Stylus Photo PX820FWD Series]
	0861  EP-803A/EP-803AW [Artisan 725/Stylus Photo PX720WD/TX720WD Series]
	0862  EP-703A [Stylus Photo PX660 Series]
	0863  ME OFFICE 620F Series/Stylus Office BX305F/BX305FW/TX320F
	0864  ME OFFICE 560W Series
	0865  ME OFFICE 520 Series
	0866  AcuLaser MX20DN/MX20DNF/MX21DNF
	0869  PX-1600F
	086a  PX-673F [Stylus Office BX925FWD]
	0870  Stylus Office BX305FW Plus
	0871  K200 Series
	0872  K300 Series
	0873  L200 Series
	0878  EP-704A
	0879  EP-904A/EP-904F [Artisan 837/Stylus Photo PX830FWD Series]
	087b  EP-804A/EP-804AR/EP-804AW [Stylus Photo PX730WD/Artisan 730 Series]
	087c  PX-1700F
	087d  PX-B750F/WP-4525 Series
	087f  PX-403A
	0880  PX-434A [Stylus NX330 Series]
	0881  PX-404A [ME OFFICE 535]
	0883  ME 340 Series/Stylus NX130 Series
	0884  Stylus NX430W Series
	0885  Stylus NX230/SX235W Series
	088f  Stylus Office BX635FWD
	0890  ME OFFICE 940FW Series/Stylus Office BX630FW Series
	0891  Stylus Office BX535WD
	0892  Stylus Office BX935FWD
	0893  EP-774A
	08d1  L220/L360 Series
	0e03  Thermal Receipt Printer [TM-T20]
	0e31  Thermal Receipt Printer [TM-L100]
	1114  XP-440 [Expression Home Small-in-One Printer]
	1115  ES-0133 [Expression Home XP-342]
	1129  ET-4750 [WorkForce ET-4750 EcoTank All-in-One]
	1168  Workforce WF-7820/7840 Series
	1186  ET-2820 Series [ET-2820 EcoTank All-in-One]
	118a  ET-2810/L3250 Series [EcoTank ET-2810/L3250]
	118b  ET-2850/L4260 Series [EcoTank ET-2850/L4260]
	11b0  XP-4200 Series [Expression Home XP-4200]
	11b9  ET-2830/L3550 Series [EcoTank ET-2830/L3550]
	11c8  ET-2860/L3270 Series [EcoTank ET-2860/L3270]
04b9  Rainbow Technologies, Inc.
	0300  SafeNet USB SuperPro/UltraPro
	1000  iKey 1000 Token
	1001  iKey 1200 Token
	1002  iKey Token
	1003  iKey Token
	1004  iKey Token
	1005  iKey Token
	1006  iKey Token
	1200  iKey 2000 Token
	1201  iKey Token
	1202  iKey 2032 Token
	1203  iKey Token
	1204  iKey Token
	1205  iKey Token
	1206  iKey 4000 Token
	1300  iKey 3000 Token
	1301  iKey 3000
	1302  iKey Token
	1303  iKey Token
	1304  iKey Token
	1305  iKey Token
	1306  iKey Token
	8000  SafeNet Sentinel Hardware Key
04ba  Toucan Systems, Ltd
04bb  I-O Data Device, Inc.
	0101  USB2-IDE/ATAPI Bridge Adapter
	014a  HDCL-UT
	0201  USB2-IDE/ATAPI Bridge Adapter
	0204  DVD Multi-plus unit iU-CD2
	0206  DVD Multi-plus unit DVR-UEH8
	0301  Storage Device
	0314  USB-SSMRW SD-card
	0319  USB2-IDE/ATAPI Bridge Adapter
	031a  USB2-IDE/ATAPI Bridge Adapter
	031b  USB2-IDE/ATAPI Bridge Adapter
	031e  USB-SDRW SD-card
	0502  Nogatech Live! (BT)
	0528  GV-USB Video Capture
	0901  USB ETT
	0904  ET/TX Ethernet [pegasus]
	0913  ET/TX-S Ethernet [pegasus2]
	0919  USB WN-B11
	0922  IOData AirPort WN-B11/USBS 802.11b
	0930  ETG-US2
	0937  WN-WAG/USL Wireless LAN Adapter
	0938  WN-G54/USL Wireless LAN Adapter
	093b  WN-GDN/USB
	093f  WNGDNUS2 802.11n
	0944  WHG-AGDN/US Wireless LAN Adapter
	0945  WN-GDN/US3 Wireless LAN Adapter
	0947  WN-G150U Wireless LAN Adapter
	0948  WN-G300U Wireless LAN Adapter
	0a03  Serial USB-RSAQ1
	0a07  USB2-iCN Adapter
	0a08  USB2-iCN Adapter
	0c01  FM-10 Pro Disk
04bd  Toshiba Electronics Taiwan Corp.
04be  Telia Research AB
04bf  TDK Corp.
	0100  MediaReader CF
	0115  USB-PDC Adapter UPA9664
	0116  USB-cdmaOne Adapter UCA1464
	0117  USB-PHS Adapter UHA6400
	0118  USB-PHS Adapter UPA6400
	0135  MediaReader Dual
	0202  73S1121F Smart Card Reader-
	0309  Bluetooth USB dongle
	030a  IBM Bluetooth Ultraport Module
	030b  Bluetooth Device
	030c  Ultraport Bluetooth Device
	0310  Integrated Bluetooth
	0311  Integrated Bluetooth Device
	0317  Bluetooth UltraPort Module from IBM
	0318  IBM Integrated Bluetooth
	0319  Bluetooth Adapter
	0320  Bluetooth Adapter
	0321  Bluetooth Device
	0a28  INDI AV-IN Device
	1301  Network Controller
	1302  i3 Gateway
	1303  i3 Micro Module
	1304  i3 Module
	1305  i3 Multi Sensing Module
	1400  Javelin Module Recovery
	1401  Javelin Module
	1500  Gas sensor demo board
04c1  U.S. Robotics (3Com)
	0020  56K Voice Pro
	0022  56K Voice Pro
	007e  ISDN TA
	0082  OfficeConnect Analog Modem
	008f  Pro ISDN TA
	0097  OfficeConnect Analog
	009d  HomeConnect Webcam [vicam]
	00a9  ISDN Pro TA-U
	00b9  HomeConnect IDSL Modem
	3021  56k Voice FaxModem Pro
04c2  Methode Electronics Far East PTE, Ltd
04c3  Maxi Switch, Inc.
	1102  Mouse
	2102  Mouse
04c4  Lockheed Martin Energy Research
04c5  Fujitsu, Ltd
	1029  fi-4010c Scanner
	1033  fi-4110CU
	1041  fi-4120c Scanner
	1042  fi-4220c Scanner
	105b  AH-F401U Air H device
	1084  PalmSecure Sensor V2
	1096  fi-5110EOX
	1097  fi-5110C
	10ae  fi-4120C2
	10af  fi-4220C2
	10c7  fi-60f scanner
	10e0  fi-5120c Scanner
	10e1  fi-5220C
	10e7  fi-5900C
	10fe  S500
	1104  KD02906 Line Thermal Printer
	114f  fi-6130
	1150  fi-6230
	11f3  fi-6130Z
	125a  PalmSecure Sensor Device - MP
	132e  fi-7160
	1526  PalmSecure-F Pro
	159f  ScanSnap iX1500
	15ff  Fi-8170 Document Scanner [Ricoh fi-8170: High Performance Desktop Scanner - PFU]
	200f  Sigma DP2 (Mass Storage)
	2010  Sigma DP2 (PictBridge)
	201d  SATA 3.0 6Gbit/s Adaptor [GROOVY]
04c6  Toshiba America Electronic Components
04c7  Micro Macro Technologies
04c8  Konica Corp.
	0720  Digital Color Camera
	0721  e-miniD Camera
	0722  e-mini
	0723  KD-200Z Camera
	0726  KD-310Z Camera
	0728  Revio C2 Mass Storage Device
	0729  Revio C2 Digital Camera
	072c  Revio KD20M
	072d  Revio KD410Z
04ca  Lite-On Technology Corp.
	0020  USB Keyboard
	003a  Multimedia Keyboard
	004b  Keyboard
	004f  SK-9020 keyboard
	008a  Acer Wired Mouse Model SM-9023
	00f9  Multimedia Keyboard
	1766  HID Monitor Controls
	2004  Bluetooth 4.0 [Broadcom BCM20702A0]
	2006  Broadcom BCM43142A0 Bluetooth Device
	2007  Broadcom BCM43142A0 Bluetooth Device
	3005  Atheros Bluetooth
	300b  Atheros AR3012 Bluetooth
	300d  Atheros AR3012 Bluetooth
	300f  Atheros AR3012 Bluetooth
	3014  Qualcomm Atheros Bluetooth
	3015  Qualcomm Atheros QCA9377 Bluetooth
	3802  MediaTek Bluetooth MT7921
	7022  HP HD Webcam
	7025  HP HD Webcam
	7046  TOSHIBA Web Camera - HD
	7054  HP HD Webcam
	705a  HD Webcam (960×540)
	9304  Hub
	f01c  TT1280DA DVB-T TV Tuner
04cb  Fuji Photo Film Co., Ltd
	0100  FinePix 30i/40i/50i, A101/201, 1300/2200, 1400/2400/2600/2800/4500/4700/4800/4900/6800/6900 Zoom
	0103  FinePix NX-500/NX-700 printer
	0104  FinePix A101, 2600/2800/4800/6800 Zoom (PC CAM)
	0108  FinePix F601 Zoom (DSC)
	0109  FinePix F601 Zoom (PC CAM)
	010a  FinePix S602 (Pro) Zoom (DSC)
	010b  FinePix S602 (Pro) Zoom (PC CAM)
	010d  FinePix S2 pro
	010e  FinePix F402 Zoom (DSC)
	010f  FinePix F402 Zoom (PC CAM)
	0110  FinePix M603 Zoom (DSC)
	0111  FinePix M603 Zoom (PC CAM)
	0112  FinePix A202, A200 Zoom (DSC)
	0113  FinePix A202, A200 Zoom (PC CAM)
	0114  FinePix F401 Zoom (DSC)
	0115  FinePix F401 Zoom (PC CAM)
	0116  FinePix A203 Zoom (DSC)
	0117  FinePix A203 Zoom (PC CAM)
	0118  FinePix A303 Zoom (DSC)
	0119  FinePix A303 Zoom (PC CAM)
	011a  FinePix S304/3800 Zoom (DSC)
	011b  FinePix S304/3800 Zoom (PC CAM)
	011c  FinePix A204/2650 Zoom (DSC)
	011d  FinePix A204/2650 Zoom (PC CAM)
	0120  FinePix F700 Zoom (DSC)
	0121  FinePix F700 Zoom (PC CAM)
	0122  FinePix F410 Zoom (DSC)
	0123  FinePix F410 Zoom (PC CAM)
	0124  FinePix A310 Zoom (DSC)
	0125  FinePix A310 Zoom (PC CAM)
	0126  FinePix A210 Zoom (DSC)
	0127  FinePix A210 Zoom (PC CAM)
	0128  FinePix A205(S) Zoom (DSC)
	0129  FinePix A205(S) Zoom (PC CAM)
	012a  FinePix F610 Zoom (DSC)
	012b  FinePix Digital Camera 030513
	012c  FinePix S7000 Zoom (DSC)
	012d  FinePix S7000 Zoom (PC CAM)
	012f  FinePix Digital Camera 030731
	0130  FinePix S5000 Zoom (DSC)
	0131  FinePix S5000 Zoom (PC CAM)
	013b  FinePix Digital Camera 030722
	013c  FinePix S3000 Zoom (DSC)
	013d  FinePix S3000 Zoom (PC CAM)
	013e  FinePix F420 Zoom (DSC)
	013f  FinePix F420 Zoom (PC CAM)
	0142  FinePix S7000 Zoom (PTP)
	0148  FinePix A330 Zoom (DSC)
	0149  FinePix A330 Zoom (UVC)
	014a  FinePix A330 Zoom (PTP)
	014b  FinePix A340 Zoom (DSC)
	014c  FinePix A340 Zoom (UVC)
	0159  FinePix F710 Zoom (DSC)
	0165  FinePix S3500 Zoom (DSC)
	0168  FinePix E500 Zoom (DSC)
	0169  FinePix E500 Zoom (UVC)
	016b  FinePix E510 Zoom (DSC)
	016c  FinePix E510 Zoom (PC CAM)
	016e  FinePix S5500 Zoom (DSC)
	016f  FinePix S5500 Zoom (UVC)
	0171  FinePix E550 Zoom (DSC)
	0172  FinePix E550 Zoom (UVC)
	0177  FinePix F10 (DSC)
	0179  Finepix F10 (PTP)
	0186  FinePix S5200/S5600 Zoom (DSC)
	0188  FinePix S5200/S5600 Zoom (PTP)
	018e  FinePix S9500 Zoom (DSC)
	018f  FinePix S9500 Zoom (PTP)
	0192  FinePix E900 Zoom (DSC)
	0193  FinePix E900 Zoom (PTP)
	019b  FinePix F30 (PTP)
	01af  FinePix A700 (PTP)
	01bf  FinePix F6000fd/S6500fd Zoom (PTP)
	01c0  FinePix F20 (PTP)
	01c1  FinePix F31fd (PTP)
	01c3  FinePix S5 Pro
	01c4  FinePix S5700 Zoom (PTP)
	01c5  FinePix F40fd (PTP)
	01c6  FinePix A820 Zoom (PTP)
	01d2  FinePix A800 Zoom (PTP)
	01d3  FinePix A920 (PTP)
	01d4  FinePix F50fd (PTP)
	01d5  FinePix F47 (PTP)
	01e7  Fujifilm A850 Digital Camera
	01f7  FinePix J250 (PTP)
	01fd  A160
	023e  FinePix AX300
	0240  FinePix S2950 Digital Camera
	0241  FinePix S3200 Digital Camera
	0278  FinePix JV300
	02c5  FinePix S9900W Digital Camera (PTP)
	02e0  X-T200 Digital Camera
	5006  ASK-300
	5007  DX100
04cc  ST-Ericsson
	1122  Hub
	1520  USB 2.0 Hub (Avocent KVM)
	1521  USB 2.0 Hub
	1a62  GW Instek GSP-830 Spectrum Analyzer (HID)
	2323  Ux500 serial debug port
	2533  NFC device (PN533)
	8116  Camera
04cd  Tatung Co. Of America
04ce  ScanLogic Corp.
	0002  SL11R-IDE IDE Bridge
	0100  USB2PRN Printer Class
	0300  Phantom 336CX - C3 scanner
	04ce  SL11DEMO, VID: 0x4ce, PID: 0x4ce
	07d1  SL11R, VID: 0x4ce, PID: 0x07D1
04cf  Myson Century, Inc.
	0022  OCZ Alchemy Series Elixir II Keyboard
	0800  MTP800 Mass Storage Device
	8810  CS8810 Mass Storage Device
	8811  CS8811 Mass Storage Device
	8813  CS8813 Mass Storage Device
	8818  USB2.0 to ATAPI Bridge Controller
	8819  USB 2.0 SD/MMC Reader
	9920  CS8819A2-114 Mass Storage Device
04d0  Digi International
04d1  ITT Canon
04d2  Altec Lansing Technologies
	0070  ADA70 Speakers
	0305  Non-Compliant Audio Device
	0311  ADA-310 Speakers
	2060  Claritel-i750 - vp
	ff05  ADA-305 Speakers
	ff47  Lansing HID Audio Controls
	ff49  Lansing HID Audio Controls
04d3  VidUS, Inc.
04d4  LSI Logic, Inc.
04d5  Forte Technologies, Inc.
04d6  Mentor Graphics
	e301  Bio-Key TouchLock XL All Weather Keyless Bio-Lock with Fingerprint Recognition
	e302  ZC3202 [4GB Green Book Digital Quran Reading Pen For Home Teaching Quran]
04d7  Oki Semiconductor
	1be4  Bluetooth Device
04d8  Microchip Technology, Inc.
	0002  PicoLCD 20x2
	0003  PICkit 2 Microcontroller Programmer
	000a  CDC RS-232 Emulation Demo
	000b  PIC18F2550 (32K Flashable 10 Channel, 10 Bit A/D USB Microcontroller)
	0032  PICkit1
	0033  PICkit2
	0036  PICkit Serial Analyzer
	00dd  MCP2221(a) UART/I2C Bridge
	00e0  PIC32 Starter Board
	04cd  28Cxxx EEPROM Programmer
	0a04  AGP LIN Serial Analyzer
	8000  In-Circuit Debugger
	8001  ICD2 in-circuit debugger
	8101  PIC24F Starter Kit
	8107  Microstick II
	8108  ChipKit Pro MX7 (PIC32MX)
	9004  Microchip REAL ICE
	9009  ICD3
	900a  PICkit3
	9012  PICkit4
	9015  ICD 4 In-Circuit Debugger
	c001  PicoLCD 20x4
	e11c  TL866CS EEPROM Programmer [MiniPRO]
	e72e  YuanCon
	e7ee  travisgeis.com Bike Light
	ec72  Joystick with Rotary Switch Creative Electronics Ltd
	ed16  BeamiRC 2.0 CNC remote controller analoge
	edb4  micro PLC (ATSAMD51G19A) [Black Brix ECU II]
	edb5  ATMEGA32U4 [Black Brix ECU]
	f2c4  Macareux-labs Hygrometry Temperature Sensor
	f2f7  Yepkit YKUSH
	f3aa  Macareux-labs Usbce Bootloader mode
	f437  SBE Tech Ultrasonic Anemometer
	f4b5  SmartScope
	f5fe  TrueRNG
	f8da  Hughski Ltd. ColorHug
	f8e8  Harmony 300/350 Remote
	f91c  SPROG IIv3
	faff  Dangerous Prototypes BusPirate v4 Bootloader mode
	fb00  Dangerous Prototypes BusPirate v4
	fbb2  GCUSB-nStep stepper motor controller
	fbba  DiscFerret Magnetic Disc Analyser (bootloader mode)
	fbbb  DiscFerret Magnetic Disc Analyser (active mode)
	fc1e  Bachrus Speedometer Interface
	fc92  Open Bench Logic Sniffer
	ffee  Devantech USB-ISS
	ffef  PICoPLC [APStech]
04d9  Holtek Semiconductor, Inc.
	0006  Wired Keyboard (78/79 key) [RPI Wired Keyboard 5]
	0022  Portable Keyboard
	0129  Keyboard [KBPV8000]
	0169  Keyboard
	0198  Keyboard
	0348  Keyboard
	0407  Keyboard [TEX Shinobi]
	0462  Laser Gaming mouse
	048e  Optical Mouse
	0499  Optical Mouse
	1135  Mouse [MGK-15BU/MLK-15BU]
	1203  Keyboard
	1400  PS/2 keyboard + mouse controller
	1503  Keyboard
	1603  Keyboard
	1605  Keyboard
	1702  Keyboard LKS02
	1818  Keyboard [Diatec Filco Majestouch 2]
	2011  Keyboard [Diatec Filco Majestouch 1]
	2013  Keyboard [Das Keyboard]
	2206  Fujitsu Siemens Mouse Esprimo Q
	2221  Keyboard
	2323  Keyboard
	2519  Shenzhen LogoTech 2.4GHz receiver
	2832  HT82A832R Audio MCU
	2834  HT82A834R Audio MCU
	4545  Keyboard [Diatec Majestouch 2 Tenkeyless]
	a01c  wireless multimedia keyboard with trackball [Trust ADURA 17911]
	a050  Chatman V1
	a052  USB-zyTemp
	a055  Keyboard
	a075  Optical Gaming Mouse
	a096  Keyboard
	a09f  E-Signal LUOM G10 Mechanical Gaming Mouse
	a100  Mouse [HV-MS735]
	a11b  Mouse [MX-3200]
	a153  Optical Gaming Mouse
	a29f  Microarray fingerprint reader
	b534  LGT8F328P Microprocessor
	e002  MCU
	fc2a  Gaming Mouse [Redragon M709]
	fc30  Gaming Mouse [Redragon M711]
	fc38  Gaming Mouse [Redragon M602-RGB]
	fc4d  Gaming Mouse [Redragon M908]
	fc55  Venus MMO Gaming Mouse
04da  Panasonic (Matsushita)
	0901  LS-120 Camera
	0912  SDR-S10
	0b01  CD-R/RW Drive
	0b03  SuperDisk 240MB
	0d01  CD-R Drive KXL-840AN
	0d09  CD-R Drive KXL-RW32AN
	0d0a  CD-R Drive KXL-CB20AN
	0d0d  CDRCB03
	0d0e  DVD-ROM & CD-R/RW
	0d14  DVD-RAM MLT08
	0f07  KX-MB2030 Multifunction Laser Printer
	0f40  Printer
	104d  Elite Panaboard UB-T880 (HID)
	104e  Elite Panaboard Pen Adaptor (HID)
	1500  MFSUSB Driver
	1800  DY-WL10 802.11abgn Adapter [Broadcom BCM4323]
	1b00  MultiMediaCard
	2121  EB-VS6
	2316  DVC Mass Storage Device
	2317  DVC USB-SERIAL Driver for WinXP
	2318  NV-GS11/230/250 (webcam mode)
	2319  NV-GS15 (webcam mode)
	231a  NV-GS11/230/250 (DV mode)
	231d  DVC Web Camera Device
	231e  DVC DV Stream Device
	2372  Lumix Camera (Storage mode)
	2374  Lumix Camera (PTP mode)
	2451  HDC-SD9
	245b  HC-X920K (3MOS Full HD video camcorder)
	2477  SDR-H85 Camcorder (PC mode)
	2478  SDR-H85 Camcorder (recorder mode - SD card)
	2479  SDR-H85 Camcorder (recorder mode - HDD)
	2497  HDC-TM700
	250c  Gobi Wireless Modem (QDL mode)
	250d  Gobi Wireless Modem
	3904  N5HBZ0000055 802.11abgn Wireless Adapter [Atheros AR7010+AR9280]
	3908  N5HBZ0000062 802.11abgn Wireless Adapter [Atheros AR9374v1.1]
	3c04  JT-P100MR-20 [ePassport Reader]
04db  Hypertec Pty, Ltd
04dc  Huan Hsin Holdings, Ltd
04dd  Sharp Corp.
	13a6  MFC2000
	6006  AL-1216
	6007  AL-1045
	6008  AL-1255
	6009  AL-1530CS
	600a  AL-1540CS
	600b  AL-1456
	600c  AL-1555
	600d  AL-1225
	600e  AL-1551CS
	600f  AR-122E
	6010  AR-152E
	6011  AR-157E
	6012  SN-1045
	6013  SN-1255
	6014  SN-1456
	6015  SN-1555
	6016  AR-153E
	6017  AR-122E N
	6018  AR-153E N
	6019  AR-152E N
	601a  AR-157E N
	601b  AL-1217
	601c  AL-1226
	601d  AR-123E
	6021  IS01
	7002  DVC Ver.1.0
	7004  VE-CG40U Digital Still Camera
	7005  VE-CG30 Digital Still Camera
	7007  VL-Z7S Digital Camcorder
	8004  Zaurus SL-5000D/SL-5500 PDA
	8005  Zaurus A-300
	8006  Zaurus SL-B500/SL-5600 PDA
	8007  Zaurus C-700 PDA
	9009  AR-M160
	9014  IM-DR80 Portable NetMD Player
	9031  Zaurus C-750/C-760/C-860/SL-C3000 PDA
	9032  Zaurus SL-6000
	903a  GSM GPRS
	9050  Zaurus C-860 PDA
	9056  Viewcam Z
	9073  AM-900
	9074  GSM GPRS
	90a9  Sharp Composite
	90d0  USB-to-Serial Comm. Port
	90f2  Sharp 3G GSM USB Control
	9120  WS004SH
	9122  WS007SH
	9123  W-ZERO3 ES Smartphone
	91a3  922SH Internet Machine
	939a  IS03
04de  MindShare, Inc.
04df  Interlink Electronics
04e1  Iiyama North America, Inc.
	0201  Monitor Hub
04e2  Exar Corp.
	0801  XR22801 Hub
	0802  XR22802 Hub
	0804  XR22804 Hub
	1100  XR2280x I2C Controller
	1200  XR2280x GPIO Controller
	1300  XR2280x 10/100 Ethernet
	1400  XR2280x UART Channel A
	1401  XR2280x UART Channel B
	1402  XR2280x UART Channel C
	1403  XR2280x UART Channel D
	1410  XR21V1410 USB-UART IC
	1411  XR21B1411 UART
	1412  XR21V1412 2-channel UART
	1414  XR21V1414 4-channel UART
	1420  XR21B1420 UART
	1422  XR21B1422 2-channel UART
	1424  XR21B1424 4-channel UART
04e3  Zilog, Inc.
04e4  ACC Microelectronics
04e5  Promise Technology
04e6  SCM Microsystems, Inc.
	0001  E-USB ATA Bridge
	0002  eUSCSI SCSI Bridge
	0003  eUSB SmartMedia Card Reader
	0005  eUSB SmartMedia/CompactFlash Card Reader
	0006  eUSB SmartMedia Card Reader
	0007  Hifd
	0009  eUSB ATA/ATAPI Adapter
	000a  eUSB CompactFlash Adapter
	000b  eUSCSI Bridge
	000c  eUSCSI Bridge
	000d  Dazzle MS
	0012  Dazzle SD/MMC
	0101  eUSB ATA Bridge (Sony Spressa USB CDRW)
	0311  Dazzle DM-CF
	0312  Dazzle DM-SD/MMC
	0313  Dazzle SM
	0314  Dazzle MS
	0322  e-Film Reader-5
	0325  eUSB ORCA Quad Reader
	0327  Digital Media Reader
	03fe  DMHS2 DFU Adapter
	0406  eUSB SmartDM Reader
	04e6  eUSB DFU Adapter
	04e7  STCII DFU Adapter
	04e8  eUSBDM DFU Adapter
	04e9  DM-E DFU Adapter
	0500  Veridicom 5thSense Fingerprint Sensor and eUSB SmartCard
	0701  DCS200 Loader Device
	0702  DVD Creation Station 200
	0703  DVC100 Loader Device
	0704  Digital Video Creator 100
	1001  SCR300 Smart Card Reader
	1010  USBAT-2 CompactFlash Card Reader
	1014  e-Film Reader-3
	1020  USBAT ATA/ATAPI Adapter
	2007  RSA SecurID ComboReader
	2009  Citibank Smart Card Reader
	200a  Reflex v.2 Smart Card Reader
	200d  STR391 Reader
	5111  SCR331-DI SmartCard Reader
	5113  SCR333 SmartCard Reader
	5114  SCR331-DI SmartCard Reader
	5115  SCR335 SmartCard Reader
	5116  SCR331-LC1 / SCR3310 SmartCard Reader
	5117  SCR3320 - Smart Card Reader
	5118  Expresscard SIM Card Reader
	5119  SCR3340 - ExpressCard54 Smart Card Reader
	511b  SmartCard Reader
	511d  SCR3311 Smart Card Reader
	5120  SCR331-DI SmartCard Reader
	5121  SDI010 Smart Card Reader
	5151  SCR338 Keyboard Smart Card Reader
	5292  SCL011 RFID reader
	5410  SCR35xx Smart Card Reader
	5591  SCL3711-NFC&RW
	5810  uTrust 2700 R Smart Card Reader
	e000  SCRx31 Reader
	e001  SCR331 SmartCard Reader
	e003  SPR532 PinPad SmartCard Reader
04e7  Elo TouchSystems
	0001  TouchScreen
	0002  Touchmonitor Interface 2600 Rev 2
	0004  4000U CarrollTouch® Touchmonitor Interface
	0007  2500U IntelliTouch® Touchmonitor Interface
	0008  3000U AccuTouch® Touchmonitor Interface
	0009  4000U CarrollTouch® Touchmonitor Interface
	0020  Touchscreen Interface (2700)
	0021  Touchmonitor Interface
	0030  4500U CarrollTouch® Touchmonitor Interface
	0032  Touchmonitor Interface
	0033  Touchmonitor Interface
	0041  5010 Surface Capacitive Touchmonitor Interface
	0042  Touchmonitor Interface
	0050  2216 AccuTouch® Touchmonitor Interface
	0071  Touchmonitor Interface
	0072  Touchmonitor Interface
	0081  Touchmonitor Interface
	0082  Touchmonitor Interface
	00ff  Touchmonitor Interface
	2902  WLIDS 21.5 Touchscreen
04e8  Samsung Electronics Co., Ltd
	0001  Printer Bootloader
	0100  Kingston Flash Drive (128MB)
	0110  Connect3D Flash Drive
	0111  Connect3D Flash Drive
	0300  E2530 / GT-C3350 Phones (Mass storage mode)
	04e8  Galaxy (MIDI mode)
	1003  MP3 Player and Recorder
	1006  SDC-200Z
	130c  NX100
	1323  WB700 Camera
	1f05  S2 Portable [JMicron] (500GB)
	1f06  HX-MU064DA portable harddisk
	2018  WIS09ABGN LinkStick Wireless LAN Adapter
	2035  Digital Photo Frame Mass Storage
	2036  Digital Photo Frame Mini Monitor
	3004  ML-4600
	3005  Docuprint P1210
	3008  ML-6060 laser printer
	300c  ML-1210 Printer
	300e  Laser Printer
	3104  ML-3550N
	3210  ML-5200A Laser Printer
	3226  Laser Printer
	3228  Laser Printer
	322a  Laser Printer
	322c  Laser Printer
	3230  ML-1440
	3232  Laser Printer
	3236  ML-1450
	3238  ML-1430
	323a  ML-1710 Printer
	323b  Phaser 3130
	323c  Laser Printer
	323d  Phaser 3120
	323e  Laser Printer
	3240  Laser Printer
	3242  ML-1510 Laser Printer
	3248  Color Laser Printer
	324a  Laser Printer
	324c  ML-1740 Printer
	324d  Phaser 3121
	3256  ML-1520 Laser Printer
	325b  Xerox Phaser 3117 Laser Printer
	325f  Phaser 3425 Laser Printer
	3260  CLP-510 Color Laser Printer
	3268  ML-1610 Mono Laser Printer
	326c  ML-2010P Mono Laser Printer
	3276  ML-3050/ML-3051 Laser Printer
	327e  ML-2510 Series
	328e  CLP-310 Color Laser Printer
	3292  ML-1640 Series Laser Printer
	3296  ML-2580N Mono Laser Printer
	3297  ML-191x/ML-252x Laser Printer
	329f  CLP-325 Color Laser Printer
	3301  ML-1660 Series
	330c  ML-1865
	330f  ML-216x Series Laser Printer
	3310  ML-331x Series Laser Printer
	3315  ML-2540 Series Laser Printer
	331e  M262x/M282x Xpress Series Laser Printer
	3409  SCX-4216F Scanner
	340c  SCX-5x15 series
	340d  SCX-6x20 series
	340e  MFP 560 series
	340f  Printing Support
	3412  SCX-4x20 series
	3413  SCX-4100 Scanner
	3415  Composite Device
	3419  Composite Device
	341a  Printing Support
	341b  SCX-4200 series
	341c  Composite Device
	341d  Composite Device
	341f  Composite Device
	3420  Composite Device
	3426  SCX-4500 Laser Printer
	342d  SCX-4x28 Series
	344f  SCX-3400 Series
	347e  C48x Series Color Laser Multifunction Printer
	3605  InkJet Color Printer
	3606  InkJet Color Printer
	3609  InkJet Color Printer
	3902  InkJet Color Printer
	3903  Xerox WorkCentre XK50cx
	390f  InkJet Color Printer
	3911  SCX-1020 series
	4001  PSSD T7
	4005  GT-S8000 Jet (msc)
	4f1f  GT-S8000 Jet (mtp)
	5000  YP-MF series
	5001  YP-100
	5002  YP-30
	5003  YP-700
	5004  YP-30
	5005  YP-300
	5006  YP-750
	500d  MP3 Player
	5010  Yepp YP-35
	5011  YP-780
	5013  YP-60
	5015  yepp upgrade
	501b  MP3 Player
	5021  Yepp YP-ST5
	5026  YP-MT6V
	5027  YP-T7
	502b  YP-F1
	5032  YP-J70
	503b  YP-U1 MP3 Player
	503d  YP-T7F
	5041  YP-Z5
	5050  YP-U2 MP3 Player
	5051  YP-F2R
	5055  YP-T9
	507d  YP-U3 (mtp)
	507f  YP-T9J
	5080  Yepp YP-K3 (msc)
	5081  Yepp YP-K3 (mtp)
	5082  YP-P2 (msc)
	5083  YP-P2 (mtp)
	508a  YP-T10
	508b  YP-S5 MP3 Player
	508c  YP-S5
	5090  YP-S3 (msc)
	5091  YP-S3 (mtp)
	5092  YP-U4 (msc)
	5093  YP-U4 (mtp)
	5095  YP-S2
	510f  YP-R1
	5119  Yepp YP-P3
	511c  YP-Q2
	5121  YP-U5
	5123  Yepp YP-M1
	5a00  YP-NEU
	5a01  YP-NDU
	5a03  Yepp MP3 Player
	5a04  YP-800
	5a08  YP-90
	5a0f  Meizu M6 MiniPlayer
	5b01  Memory Stick Reader/Writer
	5b02  Memory Stick Reader/Writer
	5b03  Memory Stick Reader/Writer
	5b04  Memory Stick Reader/Writer
	5b05  Memory Stick Reader/Writer
	5b11  SEW-2001u Card
	5f00  NEXiO Sync
	5f01  NEXiO Sync
	5f02  NEXiO Sync
	5f03  NEXiO Sync
	5f04  NEXiO Sync
	5f05  STORY Station 1TB
	6032  G2 Portable hard drive
	6033  G2 Portable device
	6034  G2 Portable hard drive
	60b3  M2 Portable Hard Drive
	60c4  M2 Portable Hard Drive USB 3.0
	6124  D3 Station External Hard Drive
	6125  D3 Station External Hard Drive
	61b5  M3 Portable Hard Drive 2TB
	61b6  M3 Portable Hard Drive 1TB
	61b7  M3 Portable Hard Drive 4TB
	61f3  Portable SSD T3 (MU-PT250B, MU-PT500B)
	61f5  Portable SSD T5
	6601  Mobile Phone
	6602  Galaxy
	6603  Galaxy
	6611  MITs Sync
	6613  MITs Sync
	6615  MITs Sync
	6617  MITs Sync
	6619  MITs Sync
	661b  MITs Sync
	661e  Handheld
	6620  Handheld
	6622  Handheld
	6624  Handheld
	662e  MITs Sync
	6630  MITs Sync
	6632  MITs Sync
	663e  D900e/B2100 Phone
	663f  SGH-E720/SGH-E840
	6640  Usb Modem Enumerator
	6651  i8510 Innov8
	6702  X830
	6708  U600 Phone
	6709  U600
	6734  Juke
	6759  D900e/B2100 Media Player
	675a  D900e/B2100 Mass Storage
	675b  D900e Camera
	6772  Standalone LTE device (Trial)
	6795  S5230
	6802  Standalone HSPA device
	6806  Composite LTE device (Trial)
	6807  Composite HSPA device
	681c  Galaxy Portal/Spica/S
	681d  Galaxy Portal/Spica Android Phone
	6843  E2530 Phone (Samsung Kies mode)
	684e  Wave (GT-S8500)
	685b  GT-I9100 Phone [Galaxy S II] (mass storage mode)
	685c  GT-I9250 Phone [Galaxy Nexus] (Mass storage mode)
	685d  GT-I9100 Phone [Galaxy S II] (Download mode)
	685e  GT-I9100 / GT-C3350 Phones (USB Debugging mode)
	6860  Galaxy series, misc. (MTP mode)
	6863  Galaxy series, misc. (tethering mode)
	6864  GT-I9070 (network tethering, USB debugging enabled)
	6865  Galaxy (PTP mode)
	6866  Galaxy (debugging mode)
	6868  Escape Composite driver for Android Phones: Modem+Diagnostic+ADB
	6875  GT-B3710 Standalone LTE device (Commercial)
	6876  GT-B3710 LTE Modem
	6877  Galaxy S
	687a  GT-E2370 mobile phone
	6888  GT-B3730 Composite LTE device (Commercial)
	6889  GT-B3730 Composite LTE device (Commercial)
	689a  LTE Storage Driver [CMC2xx]
	689e  GT-S5670 [Galaxy Fit]
	68aa  Reality
	7011  SEW-2003U Card
	7021  Bluetooth Device
	7061  eHome Infrared Receiver
	7080  Anycall SCH-W580
	7081  Human Interface Device
	7301  Fingerprint Device
	8001  Handheld
	8002  Portable SSD 500GB Model Number: MU - P8500B
	8003  Portable SSD T1
	d003  GT-I9003
	e020  SERI E02 SCOM 6200 UMTS Phone
	e021  SERI E02 SCOM 6200 Virtual UARTs
	e022  SERI E02 SCOM 6200 Flash Load Disk
	f000  Intensity 3 (Mass Storage Mode)
	ff30  SG_iMON
04e9  PC-Tel, Inc.
04ea  Brooktree Corp.
04eb  Northstar Systems, Inc.
	e004  eHome Infrared Transceiver
04ec  Tokyo Electron Device, Ltd
04ed  Annabooks
04ef  Pacific Electronic International, Inc.
04f0  Daewoo Electronics Co., Ltd
04f1  Victor Company of Japan, Ltd
	0001  GC-QX3 Digital Still Camera
	0004  GR-DVL815U Digital Video Camera
	0006  DV Camera Storage
	0008  GZ-MG30AA/MC500E Digital Video Camera
	0009  GR-DX25EK Digital Video Camera
	000a  GR-D72 Digital Video Camera
	1001  GC-A50 Camera Device
	3008  MP-PRX1 Ethernet
	3009  MP-XP7250 WLAN Adapter
04f2  Chicony Electronics Co., Ltd
	0001  KU-8933 Keyboard
	0002  NT68P81 Keyboard
	0110  KU-2971 Keyboard
	0111  KU-9908 Keyboard
	0112  KU-8933 Keyboard with PS/2 Mouse port
	0116  KU-2971/KU-0325 Keyboard
	0200  KBR-0108
	0201  Gaming Keyboard KPD0250
	0220  Wireless HID Receiver
	0402  Genius LuxeMate i200 Keyboard
	0403  KU-0420 keyboard
	0418  KU-0418 Tactical Pad
	0618  RG-0618U Wireless HID Receiver & KG-0609 Wireless Keyboard with Touchpad
	0718  wired mouse
	0760  Acer KU-0760 Keyboard
	0833  KU-0833 Keyboard
	0841  HP Multimedia Keyboard
	0860  2.4G Multimedia Wireless Kit
	0939  Amazon Basics mouse
	1061  HP KG-1061 Wireless Keyboard+Mouse
	1121  Periboard 717 Mini Wireless Keyboard
	2159  PERIBOARD-535 [Perixx Ergo Keyboard]
	a001  E-Video DC-100 Camera
	a120  ORITE CCD Webcam(PC370R)
	a121  ORITE CCD Webcam(PC370R)
	a122  ORITE CCD Webcam(PC370R)
	a123  ORITE CCD Webcam(PC370R)
	a124  ORITE CCD Webcam(PC370R)
	a128  PC Camera (SN9C202 + OV7663 + EEPROM)
	a133  Gateway Webcam
	a136  LabTec Webcam 5500
	a147  Medion Webcam
	a204  DSC WIA Device (1300)
	a208  DSC WIA Device (2320)
	a209  Labtec DC-2320
	a20a  DSC WIA Device (3310)
	a20c  DSC WIA Device (3320)
	a210  Audio Device
	b008  USB 2.0 Camera
	b009  Integrated Camera
	b010  Integrated Camera
	b012  1.3 MPixel UVC 
Download .txt
gitextract_lejw5r95/

├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── 1-bug-report.yml
│   │   ├── 2-feature-request.yml
│   │   └── config.yml
│   ├── renovate.json5
│   └── workflows/
│       └── release.yml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .prettierrc
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── build-guest-server.sh
├── data/
│   └── usb.ids
├── electron-builder.json
├── guest_server/
│   ├── RDPApps.reg
│   ├── argon2.go
│   ├── go.mod
│   ├── go.sum
│   ├── install.bat
│   ├── main.go
│   ├── nssm.sha1.txt
│   ├── scripts/
│   │   ├── apps.ps1
│   │   ├── get-icon.ps1
│   │   ├── time-sync.bat
│   │   └── update.ps1
│   ├── securekey.go
│   └── util.go
├── package.json
├── postcss.config.ts
├── scripts/
│   ├── build.ts
│   ├── dev-server.ts
│   └── private/
│       └── tsc.ts
├── src/
│   ├── main/
│   │   ├── main.ts
│   │   ├── static/
│   │   │   └── .gitkeep
│   │   └── tsconfig.json
│   ├── renderer/
│   │   ├── App.vue
│   │   ├── assets/
│   │   │   └── LICENSE.txt
│   │   ├── components/
│   │   │   ├── ConfigCard.vue
│   │   │   ├── WBContextMenu.vue
│   │   │   └── WBMenuItem.vue
│   │   ├── data/
│   │   │   ├── appicons.ts
│   │   │   ├── docker.ts
│   │   │   ├── internalapps.ts
│   │   │   └── podman.ts
│   │   ├── directives/
│   │   │   └── autoscroll.ts
│   │   ├── index.css
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── config.ts
│   │   │   ├── constants.ts
│   │   │   ├── containers/
│   │   │   │   ├── common.ts
│   │   │   │   ├── container.ts
│   │   │   │   ├── docker.ts
│   │   │   │   └── podman.ts
│   │   │   ├── exec-helper.ts
│   │   │   ├── install.ts
│   │   │   ├── migrate.ts
│   │   │   ├── qmp.ts
│   │   │   ├── specs.ts
│   │   │   ├── usbmanager.ts
│   │   │   └── winboat.ts
│   │   ├── main.ts
│   │   ├── public/
│   │   │   └── xel/
│   │   │       ├── CHANGELOG.md
│   │   │       ├── LICENSE.md
│   │   │       ├── README.md
│   │   │       ├── package.json
│   │   │       ├── themes/
│   │   │       │   ├── adwaita-dark.css
│   │   │       │   ├── adwaita.css
│   │   │       │   ├── base.css
│   │   │       │   ├── cupertino-dark.css
│   │   │       │   ├── cupertino.css
│   │   │       │   ├── fluent-dark.css
│   │   │       │   ├── fluent.css
│   │   │       │   ├── material-dark.css
│   │   │       │   └── material.css
│   │   │       └── xel.js
│   │   ├── router.ts
│   │   ├── tsconfig.json
│   │   ├── utils/
│   │   │   ├── bus.ts
│   │   │   ├── capitalize.ts
│   │   │   ├── debounce.ts
│   │   │   ├── getFreeRDP.ts
│   │   │   ├── icons.ts
│   │   │   ├── interval.ts
│   │   │   ├── log.ts
│   │   │   ├── openLink.ts
│   │   │   └── port.ts
│   │   ├── views/
│   │   │   ├── About.vue
│   │   │   ├── Apps.vue
│   │   │   ├── Blank.vue
│   │   │   ├── Config.vue
│   │   │   ├── Home.vue
│   │   │   ├── Migration.vue
│   │   │   └── SetupUI.vue
│   │   ├── vite-env.d.ts
│   │   └── window.d.ts
│   └── types.ts
├── tailwind.config.ts
└── vite.config.ts
Download .txt
SYMBOL INDEX (1630 symbols across 37 files)

FILE: guest_server/argon2.go
  type Argon2Configuration (line 13) | type Argon2Configuration struct
  function parseArgon2Hash (line 22) | func parseArgon2Hash(encodedHash string) (*Argon2Configuration, error) {
  function verifyPasswordSecure (line 60) | func verifyPasswordSecure(storedHash, providedPassword string) (bool, er...

FILE: guest_server/main.go
  constant AUTHKEY_HASH_REG (line 31) | AUTHKEY_HASH_REG = "WinBoatAuthHash"
  constant AUTHKEY_HASH_OEM_LOCATION (line 32) | AUTHKEY_HASH_OEM_LOCATION = "C:\\OEM\\auth.hash"
  type Metrics (line 34) | type Metrics struct
  type RDPStatusResponse (line 51) | type RDPStatusResponse struct
  function getApps (line 55) | func getApps(w http.ResponseWriter, r *http.Request) {
  function getHealth (line 67) | func getHealth(w http.ResponseWriter, r *http.Request) {
  function getVersion (line 75) | func getVersion(w http.ResponseWriter, r *http.Request) {
  function getMetrics (line 86) | func getMetrics(w http.ResponseWriter, r *http.Request) {
  function getRdpConnectedStatus (line 130) | func getRdpConnectedStatus(w http.ResponseWriter, r *http.Request) {
  function applyUpdate (line 159) | func applyUpdate(w http.ResponseWriter, r *http.Request) {
  function getIcon (line 254) | func getIcon(w http.ResponseWriter, r *http.Request) {
  function setAuthHash (line 273) | func setAuthHash(w http.ResponseWriter, r *http.Request) {
  function main (line 306) | func main() {

FILE: guest_server/securekey.go
  constant baseRegistryPath (line 19) | baseRegistryPath = `SOFTWARE\WinBoatSecureStore`
  function setSecureRegKey (line 24) | func setSecureRegKey(k string, v string) error {
  function getSecureRegKey (line 130) | func getSecureRegKey(k string) (*string, error) {

FILE: guest_server/util.go
  function checkErr (line 11) | func checkErr(err error) {
  function copyFile (line 18) | func copyFile(src string, dst string) {

FILE: scripts/build.ts
  function buildRenderer (line 12) | function buildRenderer() {
  function buildMain (line 20) | function buildMain() {

FILE: scripts/dev-server.ts
  function startRenderer (line 23) | async function startRenderer() {
  function startElectron (line 32) | async function startElectron() {
  function restartElectron (line 66) | function restartElectron() {
  function copyStaticFiles (line 79) | function copyStaticFiles() {
  function copy (line 87) | function copy(path) {
  function stop (line 95) | function stop() {
  function start (line 100) | async function start() {

FILE: scripts/private/tsc.ts
  function compile (line 4) | function compile(directory) {

FILE: src/main/main.ts
  constant WINDOW_MIN_WIDTH (line 9) | const WINDOW_MIN_WIDTH = 1280;
  constant WINDOW_MIN_HEIGHT (line 10) | const WINDOW_MIN_HEIGHT = 800;
  type SchemaType (line 13) | type SchemaType = {
  function createWindow (line 57) | function createWindow() {

FILE: src/renderer/data/appicons.ts
  constant DEFAULT_ICON (line 3) | const DEFAULT_ICON = "DEFAULT_ICON";

FILE: src/renderer/data/docker.ts
  constant DOCKER_DEFAULT_COMPOSE (line 4) | const DOCKER_DEFAULT_COMPOSE: ComposeConfig = {

FILE: src/renderer/data/podman.ts
  constant PODMAN_DEFAULT_COMPOSE (line 4) | const PODMAN_DEFAULT_COMPOSE: ComposeConfig = {

FILE: src/renderer/directives/autoscroll.ts
  type ScrollOptions (line 4) | interface ScrollOptions {
  type AutoScrollElement (line 10) | interface AutoScrollElement extends HTMLElement {
  method mounted (line 15) | mounted(el: AutoScrollElement, binding: DirectiveBinding<ScrollOptions>) {
  method beforeUnmount (line 48) | beforeUnmount(el: AutoScrollElement): void {
  method updated (line 57) | updated(el: AutoScrollElement, binding: DirectiveBinding<ScrollOptions>)...

FILE: src/renderer/lib/config.ts
  type RdpArg (line 9) | type RdpArg = {
  class WinboatVersion (line 15) | class WinboatVersion {
    method constructor (line 21) | constructor(public readonly versionToken: string) {
    method toString (line 39) | toString(): string {
    method toJSON (line 43) | toJSON(): string {
  type WinboatVersionData (line 48) | type WinboatVersionData = {
  type MultiMonitorMode (line 53) | enum MultiMonitorMode {
  type WinboatConfigObj (line 59) | type WinboatConfigObj = {
  class WinboatConfig (line 99) | class WinboatConfig {
    method getInstance (line 106) | static getInstance() {
    method constructor (line 111) | private constructor() {
    method config (line 125) | get config(): WinboatConfigObj {
    method config (line 140) | set config(newConfig: WinboatConfigObj) {
    method writeConfigObject (line 146) | static writeConfigObject(configObj: WinboatConfigObj): void {
    method readConfigObject (line 151) | static readConfigObject(writeDefault = true): WinboatConfigObj | null {

FILE: src/renderer/lib/constants.ts
  constant WINBOAT_DIR (line 5) | const WINBOAT_DIR = path.join(os.homedir(), ".winboat");
  constant DEFAULT_HOMEBREW_DIR (line 6) | const DEFAULT_HOMEBREW_DIR = path.join(os.homedir(), "../linuxbrew/.linu...
  constant WINDOWS_VERSIONS (line 8) | const WINDOWS_VERSIONS = {
  type WindowsVersionKey (line 18) | type WindowsVersionKey = keyof typeof WINDOWS_VERSIONS;
  constant WINDOWS_LANGUAGES (line 20) | const WINDOWS_LANGUAGES = {
  constant GUEST_RDP_PORT (line 57) | const GUEST_RDP_PORT = 3389;
  constant GUEST_QMP_PORT (line 58) | const GUEST_QMP_PORT = 7149;
  constant DEFAULT_HOST_QMP_PORT (line 59) | const DEFAULT_HOST_QMP_PORT = 8149;
  constant USB_CLASS_IMAGING (line 62) | const USB_CLASS_IMAGING = 6;
  constant USB_INTERFACE_MTP (line 63) | const USB_INTERFACE_MTP = 5;
  constant USB_VID_BLACKLIST (line 64) | const USB_VID_BLACKLIST = [
  constant RESTART_UNLESS_STOPPED (line 70) | const RESTART_UNLESS_STOPPED = "unless-stopped";
  constant RESTART_ON_FAILURE (line 71) | const RESTART_ON_FAILURE = "on-failure";
  constant RESTART_ALWAYS (line 72) | const RESTART_ALWAYS = "always";
  constant RESTART_NO (line 73) | const RESTART_NO = "no";

FILE: src/renderer/lib/containers/common.ts
  type ContainerRuntimes (line 11) | enum ContainerRuntimes {
  type CommonPorts (line 17) | enum CommonPorts {
  type ContainerSpecMap (line 29) | type ContainerSpecMap = {
  type ContainerSpecs (line 34) | type ContainerSpecs = ContainerSpecMap[ContainerRuntimes];
  function getContainerSpecs (line 36) | async function getContainerSpecs<T extends ContainerRuntimes>(type: T): ...
  function createContainer (line 40) | function createContainer<T extends ContainerRuntimes>(
  function getActiveHostPort (line 47) | function getActiveHostPort(

FILE: src/renderer/lib/containers/container.ts
  type ComposeDirection (line 10) | type ComposeDirection = "up" | "down";
  type ComposeArguments (line 11) | type ComposeArguments = "--no-start";
  type ContainerAction (line 12) | type ContainerAction = "start" | "stop" | "pause" | "unpause" | "restart";
  method _getSpecs (line 32) | static async _getSpecs(): Promise<any> {
  type ContainerStatus (line 37) | enum ContainerStatus {

FILE: src/renderer/lib/containers/docker.ts
  type DockerSpecs (line 20) | type DockerSpecs = {
  class DockerContainer (line 27) | class DockerContainer extends ContainerManager {
    method constructor (line 34) | constructor() {
    method writeCompose (line 38) | writeCompose(compose: ComposeConfig): void {
    method compose (line 46) | async compose(direction: ComposeDirection, extraArgs: ComposeArguments...
    method container (line 66) | async container(action: ContainerAction): Promise<void> {
    method port (line 78) | async port(): Promise<ComposePortEntry[]> {
    method remove (line 103) | async remove(): Promise<void> {
    method getStatus (line 114) | async getStatus(): Promise<ContainerStatus> {
    method exists (line 135) | async exists(): Promise<boolean> {
    method containerName (line 149) | get containerName(): string {
    method _getSpecs (line 153) | static override async _getSpecs(): Promise<DockerSpecs> {

FILE: src/renderer/lib/containers/podman.ts
  type PodmanSpecs (line 21) | type PodmanSpecs = {
  type PodmanAPIStatus (line 26) | enum PodmanAPIStatus {
  type PodmanInfo (line 31) | type PodmanInfo = {
  constant COMPOSE_ENV_VARS (line 47) | const COMPOSE_ENV_VARS = { PODMAN_COMPOSE_PROVIDER: "podman-compose", PO...
  class PodmanContainer (line 49) | class PodmanContainer extends ContainerManager {
    method constructor (line 56) | constructor() {
    method writeCompose (line 60) | writeCompose(compose: ComposeConfig): void {
    method compose (line 68) | async compose(direction: ComposeDirection, extraArgs: ComposeArguments...
    method container (line 90) | async container(action: ContainerAction): Promise<void> {
    method port (line 102) | async port(): Promise<ComposePortEntry[]> {
    method remove (line 127) | async remove(): Promise<void> {
    method getStatus (line 138) | async getStatus(): Promise<ContainerStatus> {
    method exists (line 163) | async exists(): Promise<boolean> {
    method containerName (line 177) | get containerName(): string {
    method _getSpecs (line 181) | static override async _getSpecs(): Promise<PodmanSpecs> {

FILE: src/renderer/lib/exec-helper.ts
  type ExecFileAsyncError (line 4) | type ExecFileAsyncError = {
  function stringifyExecFile (line 17) | function stringifyExecFile(file: string, args: string[]): string {
  function escapeString (line 25) | function escapeString(str: string): string {
  type EnvMap (line 40) | type EnvMap = {
  function concatEnv (line 44) | function concatEnv(a: EnvMap, b?: EnvMap) {

FILE: src/renderer/lib/install.ts
  type InstallStates (line 17) | enum InstallStates {
  type InstallEvents (line 28) | interface InstallEvents {
  class InstallManager (line 35) | class InstallManager {
    method constructor (line 42) | constructor(conf: InstallConfiguration) {
    method changeState (line 50) | changeState(newState: InstallStates) {
    method setPreinstallMsg (line 56) | setPreinstallMsg(msg: string) {
    method sleep (line 63) | sleep(ms: number) {
    method createComposeFile (line 67) | async createComposeFile() {
    method createOEMAssets (line 134) | async createOEMAssets() {
    method startContainer (line 207) | async startContainer() {
    method monitorContainerPreinstall (line 223) | async monitorContainerPreinstall() {
    method monitorAPIHealth (line 261) | async monitorAPIHealth() {
    method install (line 309) | async install() {
  function isInstalled (line 330) | async function isInstalled(): Promise<boolean> {

FILE: src/renderer/lib/migrate.ts
  function performAutoMigrations (line 16) | async function performAutoMigrations(): Promise<void> {
  function migrateComposePorts_Pre090 (line 45) | async function migrateComposePorts_Pre090(containerManager: ContainerMan...

FILE: src/renderer/lib/qmp.ts
  type QMPStatus (line 10) | type QMPStatus = "Connected" | "Closed";
  type QMPGreeting (line 12) | type QMPGreeting = {
  type QMPCommandInfo (line 26) | type QMPCommandInfo = {
  type QMPStatusInfo (line 30) | type QMPStatusInfo = {
  type QMPObjectPropertyInfo (line 35) | type QMPObjectPropertyInfo = {
  type QMPBlockInfo (line 42) | type QMPBlockInfo = {
  type QMPError (line 53) | type QMPError = {
  type QMPReturn (line 57) | type QMPReturn<T> = T extends never ? never : { return: T } | QMPError;
  type QMPCommandWithArgs (line 59) | type QMPCommandWithArgs = "human-monitor-command" | "device_add" | "devi...
  type QMPCommandNoArgs (line 60) | type QMPCommandNoArgs = "qmp_capabilities" | "query-commands" | "query-s...
  type QMPCommand (line 61) | type QMPCommand = QMPCommandWithArgs | QMPCommandNoArgs;
  type QMPArgumentProps (line 63) | type QMPArgumentProps = {
  type QMPArgument (line 75) | type QMPArgument<T extends keyof QMPArgumentProps> =
  type QMPCommandExpectedArgument (line 81) | type QMPCommandExpectedArgument<T extends QMPCommand> = T extends "human...
  type QMPResponse (line 92) | type QMPResponse<T extends QMPCommand> = QMPReturn<
  class QMPManager (line 112) | class QMPManager {
    method constructor (line 119) | constructor(socket: Socket) {
    method createConnection (line 132) | static async createConnection(host: string, port: number): Promise<QMP...
    method executeCommand (line 168) | async executeCommand<C extends QMPCommand>(
    method isAlive (line 212) | async isAlive(): Promise<boolean> {
    method handleError (line 240) | private static handleError(e: unknown, msg?: string) {}

FILE: src/renderer/lib/specs.ts
  function satisfiesPrequisites (line 8) | function satisfiesPrequisites(specs: Specs, containerSpecs?: ContainerSp...
  function getSpecs (line 26) | async function getSpecs() {
  type MemoryInfo (line 68) | type MemoryInfo = {
  function getMemoryInfo (line 73) | async function getMemoryInfo() {

FILE: src/renderer/lib/usbmanager.ts
  type LinuxDeviceDatabase (line 13) | type LinuxDeviceDatabase = Record<string, { name: string; devices: Recor...
  type DeviceStrings (line 15) | type DeviceStrings = {
  type PTSerializableDeviceInfo (line 22) | type PTSerializableDeviceInfo = {
  type VidPidHex (line 29) | type VidPidHex = {
  class USBManager (line 36) | class USBManager {
    method getInstance (line 50) | static getInstance() {
    method constructor (line 55) | private constructor() {
    method #setupDeviceUpdateListeners (line 69) | #setupDeviceUpdateListeners() {
    method #setupGuestListener (line 112) | #setupGuestListener() {
    method stringifyDevice (line 144) | stringifyDevice(device: Device): string {
    method stringifyPTSerializableDevice (line 194) | stringifyPTSerializableDevice(device: PTSerializableDeviceInfo): string {
    method #convertDeviceToPTSerializable (line 208) | #convertDeviceToPTSerializable(device: Device): PTSerializableDeviceIn...
    method addDeviceToPassthroughList (line 229) | async addDeviceToPassthroughList(device: Device) {
    method removeDeviceFromPassthroughList (line 261) | async removeDeviceFromPassthroughList(ptDevice: PTSerializableDeviceIn...
    method isDeviceInPassthroughList (line 282) | isDeviceInPassthroughList(device: Device): boolean {
    method isPTDeviceConnected (line 294) | isPTDeviceConnected(ptDevice: PTSerializableDeviceInfo): boolean {
    method removeAllPassthroughDevicesAndConfig (line 306) | async removeAllPassthroughDevicesAndConfig() {
    method isMTPDevice (line 320) | isMTPDevice(device: PTSerializableDeviceInfo | Device) {
    method getDeviceVidPidHex (line 348) | getDeviceVidPidHex(device: PTSerializableDeviceInfo | Device): VidPidH...
    method #QMPCheckIfDeviceExists (line 361) | async #QMPCheckIfDeviceExists(vendorId: number, productId: number): Pr...
    method #QMPAddDevice (line 380) | async #QMPAddDevice(device: Device) {
    method #QMPRemoveDevice (line 410) | async #QMPRemoveDevice(vendorId: number, productId: number) {
  function readLinuxDeviceDatabase (line 428) | function readLinuxDeviceDatabase(): LinuxDeviceDatabase {
  function getDeviceStringsFromLsusb (line 480) | function getDeviceStringsFromLsusb(vidHex: string, pidHex: string): Devi...
  function freeMTPDevice (line 505) | function freeMTPDevice(deviceBus: string) {

FILE: src/renderer/lib/winboat.ts
  constant USAGE_PATH (line 36) | const USAGE_PATH = path.join(WINBOAT_DIR, "appUsage.json");
  type CustomAppCommands (line 39) | enum CustomAppCommands {
  constant QMP_WAIT_MS (line 101) | const QMP_WAIT_MS = 2000;
  constant FETCH_TIMEOUT (line 102) | const FETCH_TIMEOUT = 1000;
  class AppManager (line 104) | class AppManager {
    method constructor (line 109) | constructor() {
    method updateAppCache (line 117) | async updateAppCache(apiURL: string, options: { forceRead?: boolean } ...
    method getApps (line 132) | async getApps(apiURL: string): Promise<WinApp[]> {
    method incrementAppUsage (line 163) | incrementAppUsage(app: WinApp) {
    method writeToDisk (line 168) | async writeToDisk() {
    method addCustomApp (line 179) | async addCustomApp(name: string, path: string, args: string, icon: str...
    method updateCustomApp (line 194) | async updateCustomApp(oldName: string, updatedApp: { Name: string; Pat...
    method removeCustomApp (line 215) | async removeCustomApp(app: WinApp) {
  class Winboat (line 223) | class Winboat {
    method getInstance (line 258) | static getInstance() {
    method constructor (line 263) | private constructor() {
    method createAPIIntervals (line 290) | async createAPIIntervals() {
    method destroyAPIIntervals (line 370) | async destroyAPIIntervals() {
    method getHealth (line 409) | async getHealth() {
    method getMetrics (line 419) | async getMetrics() {
    method getRDPConnectedStatus (line 425) | async getRDPConnectedStatus() {
    method readCompose (line 431) | static readCompose(composePath: string): ComposeConfig {
    method getCredentials (line 437) | getCredentials() {
    method #connectQMPManager (line 445) | async #connectQMPManager() {
    method createQMPInterval (line 466) | createQMPInterval() {
    method startContainer (line 485) | async startContainer() {
    method stopContainer (line 499) | async stopContainer() {
    method restartContainer (line 507) | async restartContainer() {
    method pauseContainer (line 521) | async pauseContainer() {
    method unpauseContainer (line 529) | async unpauseContainer() {
    method replaceCompose (line 542) | async replaceCompose(composeConfig: ComposeConfig) {
    method resetWinboat (line 581) | async resetWinboat() {
    method launchApp (line 619) | async launchApp(app: WinApp) {
    method checkVersionAndUpdateGuestServer (line 707) | async checkVersionAndUpdateGuestServer() {
    method hasQMPInterval (line 802) | get hasQMPInterval() {
    method apiUrl (line 806) | get apiUrl(): string | undefined {

FILE: src/renderer/public/xel/xel.js
  method get (line 1) | get(){return this.sourceCapabilities.firesTouchEvents?"touch":"mouse"}
  method get (line 1) | get(){return new Promise((t=>{"finished"===this.playState?t():this.addEv...
  method didTimeout (line 1) | get didTimeout(){return!e.timeout&&performance.now()-s-1>i}
  function E (line 1) | function E(t){return function(e){for(var i=arguments.length,s=new Array(...
  function $ (line 1) | function $(t,s){let n=arguments.length>2&&void 0!==arguments[2]?argument...
  function S (line 1) | function S(t){for(let e=0;e<t.length;e++){k(t,e)||(t[e]=null)}return t}
  function M (line 1) | function M(e){const i=o(null);for(const[s,n]of t(e)){k(e,s)&&(Array.isAr...
  function L (line 1) | function L(t,e){for(;null!==t;){const i=n(t,e);if(i){if(i.get)return E(i...
  function Ee (line 1) | function Ee(t,e,i){d(t,(t=>{t.call(s,e,i,pe)}))}
  class at (line 1) | class at{#t={};addEventListener(t,e){this.#t||(this.#t={});let i=this.#t...
    method addEventListener (line 1) | addEventListener(t,e){this.#t||(this.#t={});let i=this.#t[t];i||(this....
    method removeEventListener (line 1) | removeEventListener(t,e){if(this.#t&&this.#t[t]){for(var i=[],s=0;s<th...
    method dispatchEvent (line 1) | dispatchEvent(t){if(!this.#t)return;let e=this.#t[t.type];if(!e)return...
  function ot (line 1) | function ot(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}
  function lt (line 1) | function lt(t,e,i=[0,0,0]){const s=ot(t,e[0]),n=ot(t,e[1]),a=ot(t,e[2]);...
  function ht (line 1) | function ht(t){return"string"===dt(t)}
  function dt (line 1) | function dt(t){return(Object.prototype.toString.call(t).match(/^\[object...
  function ct (line 1) | function ct(t,{precision:e=16,unit:i}){return ut(t)?"none":(t=+mt(t,e))+...
  function ut (line 1) | function ut(t){return null===t}
  function pt (line 1) | function pt(t){return ut(t)?0:t}
  function mt (line 1) | function mt(t,e){if(0===t)return 0;let i=~~t,s=0;i&&e&&(s=1+~~Math.log10...
  function bt (line 1) | function bt(t,e,i){return isNaN(t)?e:isNaN(e)?t:t+(e-t)*i}
  function gt (line 1) | function gt(t,e,i){return!t||!e||t===e||t[0]===e[0]&&t[1]===e[1]||isNaN(...
  function ft (line 1) | function ft(t,e,i){return Math.max(Math.min(i,e),t)}
  function xt (line 1) | function xt(t,e){return Math.sign(t)===Math.sign(e)?t:-t}
  function wt (line 1) | function wt(t,e){return xt(Math.abs(t)**e,t)}
  function vt (line 1) | function vt(t,e){return 0===e?0:t/e}
  function kt (line 1) | function kt(t,e){if(t instanceof e)return!0;const i=e.name;for(;t;){cons...
  class yt (line 1) | class yt{type;coordMeta;coordRange;range;constructor(t,e){if("object"==t...
    method constructor (line 1) | constructor(t,e){if("object"==typeof t&&(this.coordMeta=t),e&&(this.co...
    method computedRange (line 1) | get computedRange(){return this.range?this.range:"<percentage>"===this...
    method unit (line 1) | get unit(){return"<percentage>"===this.type?"%":"<angle>"===this.type?...
    method resolve (line 1) | resolve(t){if("<angle>"===this.type)return t;let e=this.computedRange,...
    method serialize (line 1) | serialize(t,e){let i="<percentage>"===this.type?this.percentageRange(1...
    method toString (line 1) | toString(){let t=this.type;if(this.range){let[e="",i=""]=this.range;t+...
    method percentageRange (line 1) | percentageRange(t=1){let e;return e=this.coordMeta&&this.coordMeta.ran...
    method get (line 1) | static get(t,...e){return kt(t,this)?t:new this(t,...e)}
  class zt (line 1) | class zt{type;name;spaceCoords;coords;constructor(t,e=t.space){t[Ct]=thi...
    method constructor (line 1) | constructor(t,e=t.space){t[Ct]=this,this.type="function",this.name="co...
    method serializeCoords (line 1) | serializeCoords(t,e,i){return i=t.map(((t,e)=>yt.get(i?.[e]??this.coor...
    method coerceCoords (line 1) | coerceCoords(t,e){return Object.entries(this.space.coords).map((([i,s]...
    method canSerialize (line 1) | canSerialize(){return"function"===this.type||this.serialize}
    method get (line 1) | static get(t,...e){return!t||kt(t,this)?t:t[Ct]?t[Ct]:new zt(t,...e)}
  method add (line 1) | add(t,e,i){if("string"==typeof arguments[0])(Array.isArray(t)?t:[t]).for...
  method run (line 1) | run(t,e){this[t]=this[t]||[],this[t].forEach((function(t){t.call(e&&e.co...
  function St (line 1) | function St(t){return Array.isArray(t)?t:$t[t]}
  function Mt (line 1) | function Mt(t,e,i,s={}){if(t=St(t),e=St(e),!t||!e)throw new TypeError(`M...
  function At (line 1) | function At(t,e){let i,s={str:String(t)?.trim(),options:e};if(Et.run("pa...
  function Tt (line 1) | function Tt(t,e){if(Array.isArray(t))return t.map((t=>Tt(t,e)));if(!t)th...
  class Dt (line 1) | class Dt{constructor(t){this.id=t.id,this.name=t.name,this.base=t.base?D...
    method constructor (line 1) | constructor(t){this.id=t.id,this.name=t.name,this.base=t.base?Dt.get(t...
    method inGamut (line 1) | inGamut(t,{epsilon:e=75e-6}={}){if(!this.equals(this.gamutSpace))retur...
    method isUnbounded (line 1) | get isUnbounded(){return Object.values(this.coords).every((t=>!("range...
    method cssId (line 1) | get cssId(){return this.formats?.color?.id||this.id}
    method isPolar (line 1) | get isPolar(){for(let t in this.coords)if("angle"===this.coords[t].typ...
    method getFormat (line 1) | getFormat(t){if(!t)return null;"default"===t?t=Object.values(this.form...
    method equals (line 1) | equals(t){return!!t&&(this===t||this.id===t||this.id===t.id)}
    method to (line 1) | to(t,e){if(1===arguments.length){const i=Tt(t);[t,e]=[i.space,i.coords...
    method from (line 1) | from(t,e){if(1===arguments.length){const i=Tt(t);[t,e]=[i.space,i.coor...
    method toString (line 1) | toString(){return`${this.name} (${this.id})`}
    method getMinCoords (line 1) | getMinCoords(){let t=[];for(let e in this.coords){let i=this.coords[e]...
    method all (line 1) | static get all(){return[...new Set(Object.values(Dt.registry))]}
    method register (line 1) | static register(t,e){if(1===arguments.length&&(t=(e=arguments[0]).id),...
    method get (line 1) | static get(t,...e){if(!t||kt(t,this))return t;if("string"===dt(t)){let...
    method findFormat (line 1) | static findFormat(t,e=Dt.all){if(!t)return null;"string"==typeof t&&(t...
    method resolveCoord (line 1) | static resolveCoord(t,e){let i,s,n=dt(t);if("string"===n?t.includes("....
  function Bt (line 1) | function Bt(t){let e=[t];for(let i=t;i=i.base;)e.push(i);return e}
  method fromBase (line 1) | fromBase(t){let e=t.map(((t,e)=>t/Ft[e])).map((t=>t>Ht?Math.cbrt(t):(Nt*...
  method toBase (line 1) | toBase(t){let[e,i,s]=t,n=[];return n[1]=(e+16)/116,n[0]=i/500+n[1],n[2]=...
  function Xt (line 1) | function Xt(t){return"number"!=typeof t?t:(t%360+360)%360}
  method fromBase (line 1) | fromBase(t){if(void 0===this.ε){let t=Object.values(this.base.coords)[1]...
  method toBase (line 1) | toBase(t){let[e,i,s]=t,n=null,a=null;return ut(s)||(i=i<0?0:i,n=i*Math.c...
  function qt (line 1) | function qt(t){const e=t*t;return e*e*e*t}
  function Wt (line 1) | function Wt(t,e,{kL:i=1,kC:s=1,kH:n=1}={}){[t,e]=Tt([t,e]);let[a,r,o]=Gt...
  method fromBase (line 1) | fromBase(t){let e=lt(t,Kt);return e[0]=Math.cbrt(e[0]),e[1]=Math.cbrt(e[...
  method toBase (line 1) | toBase(t){let e=lt(t,te);return e[0]=e[0]**3,e[1]=e[1]**3,e[2]=e[2]**3,l...
  function ie (line 1) | function ie(t,e){[t,e]=Tt([t,e]);let[i,s,n]=ee.from(t),[a,r,o]=ee.from(e...
  function se (line 1) | function se(t,e,{epsilon:i=75e-6}={}){t=Tt(t),e||(e=t.space),e=Dt.get(e)...
  function ne (line 1) | function ne(t,e){t=Tt(t);let i,s=Dt.get(e,e?.space),n=e?.precision;retur...
  function ae (line 1) | function ae(t,e){if(t=Tt(t),"alpha"===e)return t.alpha??1;let{space:i,in...
  function re (line 1) | function re(t,e,i,s){return t=Tt(t),Array.isArray(e)&&([e,i,s]=[t.space,...
  function oe (line 1) | function oe(t,e,i){if(t=Tt(t),2===arguments.length&&"object"===dt(argume...
  function le (line 1) | function le(t){return{space:t.space,coords:t.coords.slice(),alpha:t.alpha}}
  method fromBase (line 1) | fromBase(t){let[e,i,s]=t,n=lt([ce*e-(ce-1)*s,ue*i-(ue-1)*e,s],ye).map((f...
  method toBase (line 1) | toBase(t){let[e,i,s]=t,n=lt([(e+ke)/(1+ve-ve*(e+ke)),i,s],Ee).map((funct...
  method toBase (line 1) | toBase(t){let e=function(t){let e=lt(t,Oe),i=e.map((function(t){return 1...
  function We (line 1) | function We(t,e){return t.map((t=>{const i=wt(e*Math.abs(t)*.01,.42);ret...
  function Ke (line 1) | function Ke(t,e,i,s,n){const a={};a.discounting=n,a.refWhite=t,a.surroun...
  function Qe (line 1) | function Qe(t,e){if(!(void 0!==t.J^void 0!==t.Q))throw new Error("Conver...
  function ti (line 1) | function ti(t,e){const i=We(lt(t.map((t=>100*t)),Xe).map(((t,i)=>t*e.dRg...
  method fromBase (line 1) | fromBase(t){const e=ti(t,Je);return[e.J,e.M,e.h]}
  function si (line 1) | function si(t){return t>8?Math.pow((t+16)/116,3):t/ii}
  function ni (line 1) | function ni(t,e){const i=116*((s=t[1])>ei?Math.cbrt(s):(ii*s+16)/116)-16...
  function hi (line 1) | function hi(t){t[1]<0&&(t=ri.fromBase(ri.toBase(t)));const e=Math.log(Ma...
  function ui (line 1) | function ui(t,{method:e=Lt.gamut_mapping,space:i,deltaEMethod:s="",jnd:n...
  function mi (line 1) | function mi(t,e,{inGamut:i}={}){t=Tt(t);let s=(e=Dt.get(e)).from(t),n={s...
  function bi (line 1) | function bi(t,e={}){let i,{precision:s=Lt.precision,format:n,inGamut:a=!...
  class Si (line 1) | class Si extends Dt{constructor(t){t.coords||(t.coords={r:{range:[0,1],n...
    method constructor (line 1) | constructor(t){t.coords||(t.coords={r:{range:[0,1],name:"Red"},g:{rang...
  method parse (line 1) | parse(t){t.length<=5&&(t=t.replace(/[a-f0-9]/gi,"$&$&"));let e=[];return...
  method parse (line 1) | parse(t){let e={spaceId:"srgb",coords:null,alpha:1};if("transparent"===(...
  function n (line 1) | function n(t){let n=(t+e/30)%12,a=i*Math.min(s,1-s);return s-a*Math.max(...
  function Oi (line 1) | function Oi(t){let[e,i,s]=ne(t,It),n=e+15*i+3*s;return[4*e/n,9*i/n]}
  method fromBase (line 1) | fromBase(t){let e=[pt(t[0]),pt(t[1]),pt(t[2])],i=e[1],[s,n]=Oi({space:It...
  method toBase (line 1) | toBase(t){let[e,i,s]=t;if(0===e||ut(e))return[0,0,0];i=pt(i),s=pt(s);let...
  function is (line 1) | function is(t,e,i){const s=e/(Math.sin(i)-t*Math.cos(i));return s<0?Infi...
  function ss (line 1) | function ss(t){const e=Math.pow(t+16,3)/1560896,i=e>Zi?e:t/Ui,s=i*(28451...
  function ns (line 1) | function ns(t,e){const i=e/360*Math.PI*2,s=is(t.r0s,t.r0i,i),n=is(t.r1s,...
  method fromBase (line 1) | fromBase(t){let e,[i,s,n]=[pt(t[0]),pt(t[1]),pt(t[2])];if(i>99.9999999)e...
  method toBase (line 1) | toBase(t){let e,[i,s,n]=[pt(t[0]),pt(t[1]),pt(t[2])];if(n>99.9999999)n=1...
  method fromBase (line 1) | fromBase(t){let e=Math.max(...t),i=Math.min(...t),[s,n,a]=t,[r,o,l]=[nul...
  method toBase (line 1) | toBase(t){let[e,i,s]=t;function n(t){let n=(t+e/60)%6;return s-s*i*Math....
  method fromBase (line 1) | fromBase(t){let[e,i,s]=t;return[e,s*(100-i)/100,100-s]}
  method toBase (line 1) | toBase(t){let[e,i,s]=t;i/=100,s/=100;let n=i+s;if(n>=1){return[e,0,100*(...
  function bs (line 1) | function bs(t,e){let i=t.length;if(i!==e.length)throw new Error(`Vectors...
  function gs (line 1) | function gs(t){return.5*(ms*t-us+Math.sqrt((ms*t-us)*(ms*t-us)+.12*ms*t))}
  function fs (line 1) | function fs(t){return(t**2+us*t)/(ms*(t+ps))}
  function xs (line 1) | function xs(t){let[e,i]=t;return[i/e,i/(1-e)]}
  function ws (line 1) | function ws(t,e){let i=lt(t,te);return i[0]=i[0]**3,i[1]=i[1]**3,i[2]=i[...
  function vs (line 1) | function vs(t,e,i,s){let n=function(t,e,i,s){let n,a,r,o,l,h,d,c;bs(s[0]...
  function ks (line 1) | function ks(t,e,i){let[s,n,a]=t,r=vs(n,a,e,i),o=function(t,e,i,s,n,a,r,o...
  class Zs (line 1) | class Zs{constructor(t){this.value=t}valueOf(){return this.value}}
    method constructor (line 1) | constructor(t){this.value=t}
    method valueOf (line 1) | valueOf(){return this.value}
  class Us (line 1) | class Us extends Zs{constructor(t="???"){super(t)}toString(t){return`{${...
    method constructor (line 1) | constructor(t="???"){super(t)}
    method toString (line 1) | toString(t){return`{${this.value}}`}
  class Ys (line 1) | class Ys extends Zs{constructor(t,e={}){super(t),this.opts=e}toString(t)...
    method constructor (line 1) | constructor(t,e={}){super(t),this.opts=e}
    method toString (line 1) | toString(t){try{return t.memoizeIntlObject(Intl.NumberFormat,this.opts...
  class Vs (line 1) | class Vs extends Zs{constructor(t,e={}){super(t),this.opts=e}toString(t)...
    method constructor (line 1) | constructor(t,e={}){super(t),this.opts=e}
    method toString (line 1) | toString(t){try{return t.memoizeIntlObject(Intl.DateTimeFormat,this.op...
  function qs (line 1) | function qs(t,e,i){if(i===e)return!0;if(i instanceof Ys&&e instanceof Ys...
  function Ws (line 1) | function Ws(t,e,i){return e[i]?tn(t,e[i].value):(t.reportError(new Range...
  function Ks (line 1) | function Ks(t,e){const i=[],s=Object.create(null);for(const n of e)"narg...
  function Js (line 1) | function Js(t,e){switch(e.type){case"str":return e.value;case"num":retur...
  function Qs (line 1) | function Qs(t,e){if(t.dirty.has(e))return t.reportError(new RangeError("...
  function tn (line 1) | function tn(t,e){return"string"==typeof e?t.bundle.L(e):Qs(t,e)}
  class en (line 1) | class en{constructor(t,e,i){this.dirty=new WeakSet,this.params=null,this...
    method constructor (line 1) | constructor(t,e,i){this.dirty=new WeakSet,this.params=null,this.placea...
    method reportError (line 1) | reportError(t){if(!(this.errors&&t instanceof Error))throw t;this.erro...
    method memoizeIntlObject (line 1) | memoizeIntlObject(t,e){let i=this.bundle.A.get(t);i||(i={},this.bundle...
  function sn (line 1) | function sn(t,e){const i=Object.create(null);for(const[s,n]of Object.ent...
  function an (line 1) | function an(t,e){let i=t[0];if(i instanceof Us)return new Us(`NUMBER(${i...
  function on (line 1) | function on(t,e){let i=t[0];if(i instanceof Us)return new Us(`DATETIME($...
  class hn (line 1) | class hn{constructor(t,{functions:e,useIsolating:i=!0,transform:s=t=>t}=...
    method constructor (line 1) | constructor(t,{functions:e,useIsolating:i=!0,transform:s=t=>t}={}){thi...
    method hasMessage (line 1) | hasMessage(t){return this.p.has(t)}
    method getMessage (line 1) | getMessage(t){return this.p.get(t)}
    method addResource (line 1) | addResource(t,{allowOverrides:e=!1}={}){const i=[];for(let s=0;s<t.bod...
    method formatPattern (line 1) | formatPattern(t,e=null,i=null){if("string"==typeof t)return this.L(t);...
  class Dn (line 1) | class Dn{constructor(t){this.body=[],dn.lastIndex=0;let e=0;for(;;){let ...
    method constructor (line 1) | constructor(t){this.body=[],dn.lastIndex=0;let e=0;for(;;){let i=dn.ex...
  class Bn (line 1) | class Bn{constructor(t,e){this.value=t,this.length=e}}
    method constructor (line 1) | constructor(t,e){this.value=t,this.length=e}
  method theme (line 1) | get theme(){return this.#e}
  method theme (line 1) | set theme(t){let e=document.head.querySelector(':scope > meta[name="xel-...
  method icons (line 1) | get icons(){return[...this.#i]}
  method icons (line 1) | set icons(t){let e=document.head.querySelector(':scope > meta[name="xel-...
  method locales (line 1) | get locales(){return[...this.#s]}
  method locales (line 1) | set locales(t){let e=document.head.querySelector(':scope > meta[name="xe...
  method locale (line 1) | get locale(){return this.#n[0]||"en"}
  method accentColor (line 1) | get accentColor(){return this.#a}
  method accentColor (line 1) | set accentColor(t){let e=document.head.querySelector(':scope > meta[name...
  method configStorage (line 1) | get configStorage(){return this.#r}
  method configStorage (line 1) | set configStorage(t){this.#r=t}
  method whenThemeReady (line 1) | get whenThemeReady(){return new Promise((t=>{null===this.#o?t():this.#o....
  method whenIconsReady (line 1) | get whenIconsReady(){return new Promise((t=>{null===this.#l?t():this.#l....
  method whenLocalesReady (line 1) | get whenLocalesReady(){return new Promise((t=>{null===this.#h?t():this.#...
  method themeStyleSheet (line 1) | get themeStyleSheet(){return this.#d}
  method presetAccentColors (line 1) | get presetAccentColors(){let t={};for(let e of this.#d.cssRules)if(1===e...
  method autocapitalize (line 1) | get autocapitalize(){return this.#c}
  method queryIcon (line 1) | queryIcon(t){t=!1===t.startsWith("#")?"#"+t:t;let e=null;for(let i of th...
  method queryMessage (line 1) | queryMessage(t,e={}){t=t.startsWith("#")?t.substring(1):t;let[i,s]=t.spl...
  method getConfig (line 1) | getConfig(t,e=null){let i=this.#r.getItem(t);return null===i?e:JSON.pars...
  method setConfig (line 1) | setConfig(t,e){let i=this.#r.getItem(t);null===e?delete this.#r[t]:this....
  method clearConfig (line 1) | clearConfig(){if(this.#r.length>0){let t=Object.keys(this.#r);this.#r.cl...
  method constructor (line 1) | constructor(){super(),document.adoptedStyleSheets=[this.#d];let{theme:t,...
  method #x (line 1) | #x(t){let e=this.#e,i=this.#a,s=this.#i,n=this.#s,{theme:a,accentColor:r...
  method #w (line 1) | #w(t){if(t.storageArea===this.#r){let e=t.key,i=null===t.newValue?null:J...
  method #k (line 1) | #k(t){return new Promise((async e=>{let i=await fetch(t),s=await i.text(...
  method #b (line 1) | #b(t){return new Promise((async e=>{null===this.#o&&(this.#o=[]);let i=a...
  method #g (line 1) | #g(t){return new Promise((async e=>{null===this.#l&&(this.#l=[]),this.#u...
  method #f (line 1) | #f(t){return new Promise((async e=>{null===this.#h&&(this.#h=[]);let i=t...
  method #C (line 1) | #C(){if(this.#p?.locales[0]?.startsWith("en")){let t=getComputedStyle(do...
  method #v (line 1) | async#v(){await this.whenThemeReady;let t=this.#a||this.presetAccentColo...
  method #m (line 1) | #m(){let t=document.head.querySelector(':scope > meta[name="xel-theme"]'...
  method #y (line 1) | #y(t){let e=[],i=-1;for(;;){let s=t.indexOf("@import",i);if(!(s>-1))brea...
  method iconsets (line 1) | get iconsets(){return console.warn('"Xel.iconsets" has been deprecated i...
  method iconsets (line 1) | set iconsets(t){console.warn('"Xel.iconsets" has been deprecated in Xel ...
  method whenIconsetsReady (line 1) | get whenIconsetsReady(){return console.warn('"Xel.whenIconsetsReady" has...
  method open (line 1) | get open(){return this.hasAttribute("open")}
  method showModal (line 1) | showModal(){return new Promise((async t=>{if(!0!==this.open&&!1!==this.i...
  method close (line 1) | close(){return new Promise((async t=>{if(this.R&&await this.R.finished,t...
  class Jn (line 1) | class Jn extends HTMLElement{static#z=Ns`<template><div id="main"><div i...
    method expanded (line 2) | get expanded(){return this.hasAttribute("expanded")}
    method expanded (line 2) | set expanded(t){t?this.setAttribute("expanded",""):this.removeAttribut...
    method disabled (line 2) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 2) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 2) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 2) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 2) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 2) | async connectedCallback(){await Gn.whenThemeReady,this.#M=new ResizeOb...
    method disconnectedCallback (line 2) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R),t...
    method expand (line 2) | expand(t=!0){return new Promise((async e=>{if(!1===this.expanded)if(!1...
    method collapse (line 2) | collapse(t=!0){return new Promise((async e=>{if(!0===this.expanded)if(...
    method #H (line 2) | #H(){this.#A.length>0&&(this.#A.map((t=>t.finish())),this.#A=[])}
    method #O (line 2) | #O(){let t=this.querySelector(":scope > header");t?this["#arrow"].styl...
    method #I (line 2) | #I(){let t=getComputedStyle(this["#arrow"]).getPropertyValue("--path-d...
    method #B (line 2) | #B(){let t=this.querySelector(":scope > header");t!==this.#S&&(null===...
    method #D (line 2) | #D(){this.#O()}
    method #T (line 2) | #T(t){"Enter"!==t.code&&"NumpadEnter"!==t.code||this.querySelector("he...
    method #P (line 2) | #P(t){let e=this.querySelector("header"),i=t.target.closest("[tabindex...
  class Qn (line 2) | class Qn extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
    method size (line 3) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 3) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 3) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
  class ta (line 3) | class ta extends HTMLElement{static#E=Fs`:host{display:block;position:fi...
    method ownerElement (line 4) | get ownerElement(){return this.#j?this.#j:document.body.firstElementCh...
    method ownerElement (line 4) | set ownerElement(t){this.#j=t}
    method constructor (line 4) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 4) | connectedCallback(){this.addEventListener("wheel",this.#N=t=>t.prevent...
    method disconnectedCallback (line 4) | disconnectedCallback(){this.removeEventListener("wheel",this.#N)}
    method show (line 4) | show(t=!0){this.title="",this.style.top="0px",this.style.left="0px",th...
    method hide (line 4) | hide(t=!0){if(t){let t=this.animate({opacity:["1","0"]},{duration:100,...
  class ea (line 4) | class ea extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
    method vertical (line 5) | get vertical(){return this.hasAttribute("vertical")}
    method vertical (line 5) | set vertical(t){t?this.setAttribute("vertical",""):this.removeAttribut...
    method constructor (line 5) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
  class ia (line 5) | class ia extends HTMLElement{static observedAttributes=["disabled","skin...
    method value (line 6) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
    method value (line 6) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
    method toggled (line 6) | get toggled(){return this.hasAttribute("toggled")}
    method toggled (line 6) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
    method togglable (line 6) | get togglable(){return this.hasAttribute("togglable")}
    method togglable (line 6) | set togglable(t){t?this.setAttribute("togglable",""):this.removeAttrib...
    method mixed (line 6) | get mixed(){return this.hasAttribute("mixed")}
    method mixed (line 6) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
    method disabled (line 6) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 6) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method condensed (line 6) | get condensed(){return this.hasAttribute("condensed")}
    method condensed (line 6) | set condensed(t){t?this.setAttribute("condensed",""):this.removeAttrib...
    method skin (line 6) | get skin(){return this.hasAttribute("skin")?this.getAttribute("skin"):...
    method skin (line 6) | set skin(t){this.setAttribute("skin",t)}
    method size (line 6) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 6) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method expanded (line 6) | get expanded(){return this.hasAttribute("expanded")}
    method expandable (line 6) | get expandable(){return this.#F()||this.#G()}
    method ownerButtons (line 6) | get ownerButtons(){if(this.parentElement){if("x-buttons"===this.parent...
    method constructor (line 6) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 6) | connectedCallback(){this.parentElement&&"a"===this.parentElement.local...
    method disconnectedCallback (line 6) | disconnectedCallback(){this.#_=!1}
    method attributeChangedCallback (line 6) | attributeChangedCallback(t,e,i){e!==i&&!1!==this.isConnected&&("disabl...
    method expand (line 6) | expand(){return new Promise((async t=>{this.#F()?await this.#tt():this...
    method collapse (line 6) | collapse(t=null){return new Promise((async e=>{this.#it()?await this.#...
    method #tt (line 6) | #tt(){return new Promise((async t=>{if(this.#F()){let t=this.querySele...
    method #st (line 6) | #st(t=null){return new Promise((async e=>{if(this.#it()){let e=this.qu...
    method #F (line 6) | #F(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope ...
    method #it (line 6) | #it(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope...
    method #et (line 6) | #et(){return new Promise((async t=>{if(this.#G()){let t=this.querySele...
    method #at (line 6) | #at(t=null){return new Promise((async e=>{if(this.#nt()){let e=this.qu...
    method #G (line 6) | #G(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope ...
    method #nt (line 6) | #nt(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope...
    method #rt (line 6) | #rt(){return new Promise((t=>{if(this.#ot()){this.querySelector(":scop...
    method #ot (line 6) | #ot(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope...
    method #lt (line 6) | #lt(){return new Promise((t=>{if(this.#ht()){this.querySelector(":scop...
    method #ht (line 6) | #ht(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope...
    method #dt (line 6) | #dt(){return new Promise((t=>{if(this.#ct()){this.querySelector(":scop...
    method #ct (line 6) | #ct(){let t=!1;if(!1===this.disabled){let e=this.querySelector(":scope...
    method #J (line 6) | #J(){this.setAttribute("role","button"),this.setAttribute("aria-disabl...
    method #Q (line 6) | #Q(){!1===this.hasAttribute("skin")&&this.setAttribute("skin","normal")}
    method #Y (line 6) | #Y(t){let e=this.querySelector(":scope > x-menu[opened]"),i=this.query...
    method #K (line 6) | #K(t){t.target.parentElement===this&&["x-menu","x-popover"].includes(t...
    method #V (line 6) | #V(){let t=this.querySelector(":scope > x-tooltip");if(t&&!1===t.disab...
    method #q (line 6) | #q(){let t=this.querySelector(":scope > x-tooltip");t&&t.close(),this....
    method #P (line 6) | #P(t){let e=this.querySelector(":scope > x-menu[opened]"),i=this.query...
    method #ut (line 6) | #ut(t){this.collapse()}
    method #pt (line 6) | async#pt(t){if(t.buttons>1)t.preventDefault();else if(this.querySelect...
    method #bt (line 6) | async#bt(t){let e=this.querySelector(":scope > x-menu, :scope > x-popo...
    method #mt (line 6) | #mt(t){let e=t.target.closest("x-menuitem");this.querySelector(":scope...
    method #W (line 6) | #W(t){!1===t.defaultPrevented&&("Enter"===t.code||"NumpadEnter"===t.co...
  class na (line 6) | class na extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
    method tracking (line 7) | get tracking(){return this.hasAttribute("tracking")?parseInt(this.getA...
    method tracking (line 7) | set tracking(t){this.setAttribute("tracking",t)}
    method vertical (line 7) | get vertical(){return this.hasAttribute("vertical")}
    method vertical (line 7) | set vertical(t){!0===t?this.setAttribute("vertical",""):this.removeAtt...
    method value (line 7) | get value(){if(2===this.tracking||3===this.tracking){return this.#gt()...
    method value (line 7) | set value(t){if(2===this.tracking||3===this.tracking){let e=this.#gt()...
    method constructor (line 7) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 7) | connectedCallback(){for(let t of this.children)if("x-button"===t.local...
    method #gt (line 7) | #gt(){return[...this.querySelectorAll(":scope > x-button, :scope > x-b...
    method #P (line 7) | #P(t){if(t.buttons>1)return;let e=t.target.closest("x-button");if(e&&!...
    method #W (line 7) | #W(t){if("ArrowRight"===t.code){let t=[...this.children].find((t=>t.ma...
  class aa (line 7) | class aa extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
    method constructor (line 8) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
  class ra (line 8) | class ra extends HTMLElement{static observedAttributes=["toggled","mixed...
    method value (line 9) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
    method value (line 9) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
    method toggled (line 9) | get toggled(){return this.hasAttribute("toggled")}
    method toggled (line 9) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
    method mixed (line 9) | get mixed(){return this.hasAttribute("mixed")}
    method mixed (line 9) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
    method disabled (line 9) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 9) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 9) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 9) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 9) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 9) | async connectedCallback(){Gn.addEventListener("themechange",this.#R=()...
    method disconnectedCallback (line 9) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R)}
    method attributeChangedCallback (line 9) | attributeChangedCallback(t,e,i){e!==i&&("toggled"===t?this.#xt():"mixe...
    method #ft (line 9) | #ft(){let t=getComputedStyle(this["#indicator"]).getPropertyValue("--p...
    method #J (line 9) | #J(){this.setAttribute("role","checkbox"),this.setAttribute("aria-chec...
    method #xt (line 9) | #xt(){this.#ft(),this.setAttribute("aria-toggled",this.mixed?"mixed":t...
    method #wt (line 9) | #wt(){this.#ft()}
    method #vt (line 9) | #vt(){this.#J()}
    method #Y (line 9) | #Y(t){if(t.buttons>1)t.preventDefault();else if(!1===this.matches(":fo...
    method #V (line 9) | #V(){let t=this.querySelector(":scope > x-tooltip");t&&!1===t.disabled...
    method #q (line 9) | #q(){let t=this.querySelector(":scope > x-tooltip");t&&t.close()}
    method #P (line 9) | async#P(t){this.mixed?this.mixed=!1:this.toggled=!this.toggled,this.di...
    method #W (line 9) | #W(t){"Enter"!==t.code&&"NumpadEnter"!==t.code&&"Space"!==t.code||(t.p...
  class oa (line 9) | class oa extends HTMLElement{static observedAttributes=["value","space",...
    method value (line 10) | get value(){return this.#kt}
    method value (line 10) | set value(t){t=Is(mi(At(t),this.space),this.#yt),this.#kt===t||this.ma...
    method space (line 10) | get space(){return this.hasAttribute("space")?this.getAttribute("space...
    method space (line 10) | set space(t){this.setAttribute("space",t)}
    method alpha (line 10) | get alpha(){return this.hasAttribute("alpha")}
    method alpha (line 10) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
    method required (line 10) | get required(){return this.hasAttribute("required")}
    method required (line 10) | set required(t){t?this.setAttribute("required",""):this.removeAttribut...
    method mixed (line 10) | get mixed(){return this.hasAttribute("mixed")}
    method mixed (line 10) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
    method disabled (line 10) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 10) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 10) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 10) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method empty (line 10) | get empty(){return this.hasAttribute("empty")}
    method error (line 10) | get error(){return this.hasAttribute("error")}
    method constructor (line 10) | constructor(){super(),this.#$=this.attachShadow({mode:"closed",delegat...
    method connectedCallback (line 10) | connectedCallback(){this.#yt=Gn.getConfig(`x-colorinput:${this.space}F...
    method disconnectedCallback (line 10) | disconnectedCallback(){Gn.removeEventListener("configchange",this.#$t)...
    method attributeChangedCallback (line 10) | attributeChangedCallback(t,e,i){e!==i&&("value"===t?this.#Zt():"space"...
    method selectAll (line 10) | selectAll(){this["#input"].select()}
    method clear (line 10) | clear(){this.value="",this.#Et=null,this.#Yt()}
    method reportValidity (line 10) | reportValidity(){let t=this["#input"].value;return this.required&&0===...
    method #Vt (line 10) | async#Vt(){if(!1===this.#qt())return;let t=this["#format-menu"];window...
    method #Wt (line 10) | async#Wt(t=null){if(!1===this.#Kt())return;let e=this["#format-menu"];...
    method #qt (line 10) | #qt(){if(this.disabled)return!1;{let t=this["#format-menu"];return t.q...
    method #Kt (line 10) | #Kt(){if(this.disabled)return!1;{let t=this["#format-menu"];return t.q...
    method #Jt (line 10) | #Jt(t="increment",e=1){let{value:i}=this["#input"],s=this.#Qt();if(s){...
    method #te (line 10) | #te(){let{value:t,selectionStart:e,selectionEnd:i}=this["#input"],s=["...
    method #Qt (line 10) | #Qt(){let{value:t,selectionStart:e,selectionEnd:i}=this["#input"],s=["...
    method #ee (line 10) | #ee(){let t,e=this["#input"].value;try{t=At(e)}catch(i){t=At("#"+e)}re...
    method #Gt (line 10) | #Gt(t){let e="color";return"srbg"===t?e="hex":"oklch"===t?e="oklch":"o...
    method #_t (line 10) | #_t(t){let{key:e,value:i,origin:s}=t.detail;e===`x-colorinput:${this.s...
    method #Ut (line 10) | #Ut(){this.#yt=Gn.getConfig(`x-colorinput:${this.space}Format`,this.#G...
    method #Zt (line 10) | #Zt(){this.value=this.hasAttribute("value")?this.getAttribute("value")...
    method #vt (line 10) | #vt(){this["#input"].disabled=this.disabled,this.#J()}
    method #P (line 10) | #P(t){if(2===t.detail){let t=this.#Qt(),e=this.#te();if(t){let[e,i]=t;...
    method #At (line 10) | #At(t){this.#Wt()}
    method #V (line 10) | #V(){let t=this.querySelector(":scope > x-tooltip");t&&!1===t.disabled...
    method #q (line 10) | #q(){let t=this.querySelector(":scope > x-tooltip");t&&t.close()}
    method #Rt (line 10) | #Rt(){this.#Yt(),this.dispatchEvent(new CustomEvent("textinputmodestar...
    method #Pt (line 10) | #Pt(){this.dispatchEvent(new CustomEvent("textinputmodeend",{bubbles:!...
    method #W (line 10) | #W(t){if("Enter"===t.code||"NumpadEnter"===t.code){if(t.preventDefault...
    method #Dt (line 10) | #Dt(){if(this.reportValidity(),null===this.#Et){let t=this.#ee();t!==t...
    method #Tt (line 10) | #Tt(t){this.#Et&&this.reportValidity(),t.stopPropagation(),this.#zt(),...
    method #Bt (line 10) | #Bt(){this.dispatchEvent(new CustomEvent("change",{bubbles:!0}))}
    method #It (line 10) | #It(t){!1===this["#input"].matches(":focus")&&(t.preventDefault(),this...
    method #Ot (line 10) | #Ot(){this["#input"].selectionStart===this["#input"].selectionEnd&&thi...
    method #Ht (line 10) | #Ht(t){this.#X=this.matches(":focus")}
    method #jt (line 10) | #jt(t){this.#Vt()}
    method #Ft (line 10) | #Ft(t){let e=t.target.closest("x-menuitem");if(e){if(!1===e.toggled){f...
    method #Nt (line 10) | #Nt(t){t.preventDefault()}
    method #Xt (line 10) | #Xt(){this.#Ct(),this.#I(),this.#zt(),this.#J()}
    method #Ct (line 10) | #Ct(){let t=At(this.#kt);!1===this.alpha&&(t.alpha=1);let e=Is(mi(t,th...
    method #I (line 10) | #I(){Gn.whenThemeReady.then((()=>{let t=getComputedStyle(this["#arrow"...
    method #Yt (line 10) | #Yt(){let t=this.#Et;t?this.setAttribute("error",""):this.removeAttrib...
    method #zt (line 10) | #zt(){0===this.value.length?this.setAttribute("empty",""):this.removeA...
    method #J (line 10) | #J(){this.setAttribute("role","input"),this.setAttribute("aria-disable...
  class wa (line 10) | class wa extends HTMLElement{static observedAttributes=["value","alpha",...
    method value (line 11) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
    method value (line 11) | set value(t){this.setAttribute("value",t)}
    method alpha (line 11) | get alpha(){return this.hasAttribute("alpha")}
    method alpha (line 11) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
    method spaces (line 11) | get spaces(){return this.hasAttribute("spaces")?this.getAttribute("spa...
    method spaces (line 11) | set spaces(t){this.setAttribute("spaces",t.join(" "))}
    method disabled (line 11) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 11) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method constructor (line 11) | constructor(){super(),this.#$=this.attachShadow({mode:"open"}),this.#$...
    method connectedCallback (line 11) | connectedCallback(){Gn.addEventListener("configchange",this.#$t=t=>{th...
    method disconnectedCallback (line 11) | disconnectedCallback(){Gn.removeEventListener("configchange",this.#$t)}
    method attributeChangedCallback (line 11) | attributeChangedCallback(t,e,i){e!==i&&("value"===t?this.#Zt():"alpha"...
    method grab (line 11) | grab(){return new Promise((async t=>{if(void 0===window.EyeDropper)win...
    method #Zt (line 11) | #Zt(){this.isConnected&&(this.#ie?this.#be():this.#Xt())}
    method #pe (line 11) | #pe(){for(let t of this["#main"].children)this.alpha?t.setAttribute("a...
    method #me (line 11) | #me(){this.isConnected&&this.#Xt()}
    method #vt (line 11) | #vt(){this.isConnected&&this.#Xt()}
    method #_t (line 11) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s&&e===`${this...
    method #se (line 11) | #se(){let t=At(this.value);if(this.dispatchEvent(new CustomEvent("chan...
    method #ae (line 11) | #ae(t){Gn.setConfig(`${this.localName}:type`,this["#type-buttons"].val...
    method #re (line 11) | #re(t){this["#input"].matches(":focus")&&t.stopImmediatePropagation()}
    method #oe (line 11) | #oe(t){this.#ie=!0,this.dispatchEvent(new CustomEvent("changestart",{b...
    method #le (line 11) | #le(t){let e=t.target;if("srgb"===e.space){let[e,i,s,n]=t.target.value...
    method #he (line 11) | #he(t){this.#ie=!1,this.dispatchEvent(new CustomEvent("changeend",{bub...
    method #de (line 11) | #de(t){this.dispatchEvent(new CustomEvent("changestart",{bubbles:!0}))...
    method #ce (line 11) | #ce(t){"Enter"!==t.key&&"Space"!==t.code||this.closest("x-popover")&&t...
    method #ue (line 11) | #ue(){return new Promise((async t=>{let e=await this.grab();this["#gra...
    method #Xt (line 11) | #Xt(){let t=this.#ge();this.#fe(t),this.#xe(t),this.#we(t),this.#Ct(t)...
    method #fe (line 11) | #fe(t=this.#ge()){return new Promise((async e=>{let i=this.spaces;if(a...
    method #ne (line 11) | #ne(){let t=this.#ge();for(let e of this["#space-select-menu"].childre...
    method #xe (line 11) | #xe(t=this.#ge()){let e;["srgb","srgb-linear","a98rgb","p3","rec2020",...
    method #we (line 11) | #we(t=this.#ge()){return new Promise((async e=>{let i,s=this["#type-bu...
    method #Ct (line 11) | #Ct(t=this.#ge()){this["#input"].space=t.spaceId,this["#input"].alpha=...
    method #ve (line 11) | #ve(){this["#grab-button"].disabled=this.disabled}
    method #ge (line 11) | #ge(){let t=At(this.value);!1===this.spaces.includes(t.spaceId)&&(t="h...
  class va (line 11) | class va extends HTMLElement{static#z=Ns`<template><div id="coord-0-slid...
    method value (line 12) | get value(){let t=this.#ke();if("rgb"===t){let[t,e,i]=this.#ye;return[...
    method value (line 12) | set value([t,e,i,s]){let n=this.#ke();if("rgb"===n)this.#ye=[t,e,i],th...
    method space (line 12) | get space(){return this.#ze}
    method space (line 12) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
    method alpha (line 12) | get alpha(){return this.hasAttribute("alpha")}
    method alpha (line 12) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
    method disabled (line 12) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 12) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method constructor (line 12) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 12) | connectedCallback(){this.#Ee=Gn.getConfig(`${this.localName}:model`,"h...
    method disconnectedCallback (line 12) | disconnectedCallback(){Gn.removeEventListener("configchange",this.#$t)}
    method #ke (line 12) | #ke(){return this.#Ee,"okhsv"===this.#Ee?"srgb"===this.#ze?"okhsv":"hs...
    method #De (line 12) | #De(){return"none"===this.#$e||"srgb"===this.#$e&&["srgb","srgb-linear...
    method #_t (line 12) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if(e===`${th...
    method #Pe (line 12) | #Pe(t){let e=t.target.closest("x-menuitem");if(e)if(e.parentElement===...
    method #Te (line 12) | #Te(){this.#Ie()}
    method #Me (line 12) | #Me(t){if(t.button>0||this.#ie)return;let e,i,s=this["#coord-0-slider-...
    method #Le (line 12) | #Le(t){if(t.button>0||this.#ie)return;let e,i,s=this.#ke(),n=this["#co...
    method #Ae (line 12) | #Ae(t){if(t.button>0||this.#ie)return;let e,i,s=this.#ke(),n=this["#co...
    method #Re (line 12) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
    method #Xt (line 12) | #Xt(){this.#Oe(),this.#_e(),this.#Ze(),this.#Ue(),this.#He(),this.#je(...
    method #Oe (line 12) | #Oe(){this["#coord-0-slider-marker"].style.left=100*this.#ye[0]+"%"}
    method #_e (line 12) | #_e(){let t=this.#ke();if("rgb"===t){let[,t,e]=this.#ye,i="srgb-linear...
    method #Ze (line 12) | #Ze(){let t=this.#De();if("none"===t)this["#coord-0-slider-gamut-path"...
    method #Ue (line 12) | #Ue(){this["#coord-1-slider-marker"].style.left=100*this.#ye[1]+"%"}
    method #He (line 12) | #He(){let t=this.#ke();if("rgb"===t){let[t,,e]=this.#ye,i="srgb-linear...
    method #je (line 12) | #je(){let t=this.#De();if("none"===t)this["#coord-1-slider-gamut-path"...
    method #Ye (line 12) | #Ye(){this["#coord-2-slider-marker"].style.left=100*this.#ye[2]+"%"}
    method #Ne (line 12) | #Ne(){let t=this.#ke();if("rgb"===t){let[t,e]=this.#ye,i="srgb-linear"...
    method #Fe (line 12) | #Fe(){let t=this.#De();if("none"===t)this["#coord-2-slider-gamut-path"...
    method #Ve (line 12) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
    method #Ge (line 12) | #Ge(){let t=this.#ke();if("rgb"===t){let[t,e,i]=this.#ye,s=[{space:thi...
    method #Xe (line 12) | #Xe(){let t=this.#De();if("none"===t)this["#coord-0-slider-marker"].re...
    method #Be (line 12) | #Be(){if(this.#Se){let t=this.#ke();"hsv"===t||"okhsv"===t?(this["#coo...
    method #Ie (line 12) | #Ie(){let t=this.#ke();for(let e of this["#color-model-menu"].querySel...
  class ka (line 12) | class ka extends HTMLElement{static#z=Ns`<template><div id="hue-slider" ...
    method value (line 13) | get value(){let[t,e,i]=this.#ye;return[t,e,i,this.#Ce]}
    method value (line 13) | set value([t,e,i,s]){this.#ye=[t,e,i],this.#Ce=s,this.#Xt()}
    method space (line 13) | get space(){return this.#ze}
    method space (line 13) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
    method alpha (line 13) | get alpha(){return this.hasAttribute("alpha")}
    method alpha (line 13) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
    method disabled (line 13) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 13) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method constructor (line 13) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 13) | connectedCallback(){this.#$e=Os(Gn.getConfig("x-colorpicker:gamutHints...
    method disconnectedCallback (line 13) | disconnectedCallback(){Gn.removeEventListener("configchange",this.#$t)}
    method #_t (line 13) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if("x-colorp...
    method #Pe (line 13) | #Pe(t){let e=t.target.closest("x-menuitem");e&&(e.parentElement===this...
    method #Te (line 13) | #Te(){this.#Ie()}
    method #qe (line 13) | #qe(t){if(t.button>0||this.#ie)return;let e,i,s=this["#hue-slider-trac...
    method #We (line 13) | #We(t){if(t.button>0||this.#ie)return;let e,i,s=this["#chroma-slider-t...
    method #Ke (line 13) | #Ke(t){if(t.button>0||this.#ie)return;let e,i,s=this["#lightness-slide...
    method #Re (line 13) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
    method #Xt (line 13) | #Xt(){this.#Je(),this.#ri(),this.#si(),this.#ni(),this.#Qe(),this.#ti(...
    method #Je (line 13) | #Je(){let[t,e,i]=this.#ye;this["#hue-slider-marker"].style.left=i/360*...
    method #ri (line 13) | #ri(){let t=[];if("oklch"===this.#ze)for(let e=0;e<=360;e+=5)t.push({s...
    method #si (line 13) | #si(){if("none"===this.#$e)this["#hue-slider-gamut-path"].removeAttrib...
    method #ni (line 13) | #ni(){let[t,e,i]=this.#ye;"oklch"===this.#ze?this["#chroma-slider-mark...
    method #Qe (line 13) | #Qe(){let[,,t]=this.#ye,e=[];if("oklch"===this.#ze)for(let i=0;i<=xa;i...
    method #ti (line 13) | #ti(){if("none"===this.#$e)this["#chroma-slider-gamut-path"].removeAtt...
    method #ai (line 13) | #ai(){let[t,e,i]=this.#ye;"oklch"===this.#ze?this["#lightness-slider-m...
    method #ei (line 13) | #ei(){let[,t,e]=this.#ye,i=[];if("oklch"===this.#ze)for(let s=0;s<=1;s...
    method #ii (line 13) | #ii(){if("none"===this.#$e)this["#lightness-slider-gamut-path"].remove...
    method #Ve (line 13) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
    method #Ge (line 13) | #Ge(){let[t,e,i]=this.#ye,s=[{space:this.#ze,coords:[t,e,i],alpha:0},{...
    method #Xe (line 13) | #Xe(){if("none"===this.#$e)this["#hue-slider-marker"].removeAttribute(...
    method #Be (line 13) | #Be(){this["#hue-slider-label"].hidden=!this.#Se,this["#chroma-slider-...
    method #Ie (line 13) | #Ie(){for(let t of this["#gamut-hints-menu"].querySelectorAll("x-menui...
  class ya (line 13) | class ya extends HTMLElement{static#z=Ns`<template><div id="lightness-sl...
    method value (line 14) | get value(){let[t,e,i]=this.#ye;return[t,e,i,this.#Ce]}
    method value (line 14) | set value([t,e,i,s]){this.#ye=[t,e,i],this.#Ce=s,this.#Xt()}
    method space (line 14) | get space(){return this.#ze}
    method space (line 14) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
    method alpha (line 14) | get alpha(){return this.hasAttribute("alpha")}
    method alpha (line 14) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
    method disabled (line 14) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 14) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method constructor (line 14) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 14) | connectedCallback(){this.#$e=Os(Gn.getConfig("x-colorpicker:gamutHints...
    method disconnectedCallback (line 14) | disconnectedCallback(){Gn.removeEventListener("configchange",this.#$t)}
    method #_t (line 14) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if("x-colorp...
    method #Pe (line 14) | #Pe(t){let e=t.target.closest("x-menuitem");e&&(e.parentElement===this...
    method #Te (line 14) | #Te(){this.#Ie()}
    method #Ke (line 14) | #Ke(t){if(t.button>0||this.#ie)return;let e,i,s=this["#lightness-slide...
    method #oi (line 14) | #oi(t){if(t.button>0||this.#ie)return;let e,i,s=this["#a-slider-track"...
    method #li (line 14) | #li(t){if(t.button>0||this.#ie)return;let e,i,s=this["#b-slider-track"...
    method #Re (line 14) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
    method #Xt (line 14) | #Xt(){this.#ai(),this.#ei(),this.#ii(),this.#pi(),this.#hi(),this.#di(...
    method #ai (line 14) | #ai(){let[t,e,i]=this.#ye;"oklab"===this.#ze?this["#lightness-slider-m...
    method #ei (line 14) | #ei(){let t=[],[e,i,s]=this.#ye;if("oklab"===this.#ze)for(let e=0;e<=1...
    method #ii (line 14) | #ii(){if("none"===this.#$e)this["#lightness-slider-gamut-path"].remove...
    method #pi (line 14) | #pi(){let[t,e,i]=this.#ye;"oklab"===this.#ze?this["#a-slider-marker"]....
    method #hi (line 14) | #hi(){let[t,,e]=this.#ye,i=[];if("oklab"===this.#ze)for(let s=-.4;s<=....
    method #di (line 14) | #di(){if("none"===this.#$e)this["#a-slider-gamut-path"].removeAttribut...
    method #mi (line 14) | #mi(){let[t,e,i]=this.#ye;"oklab"===this.#ze?this["#b-slider-marker"]....
    method #ci (line 14) | #ci(){let[t,e]=this.#ye,i=[];if("oklab"===this.#ze)for(let s=-.4;s<=.4...
    method #ui (line 14) | #ui(){if("none"===this.#$e)this["#b-slider-gamut-path"].removeAttribut...
    method #Ve (line 14) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
    method #Ge (line 14) | #Ge(){let[t,e,i]=this.#ye,s=[{space:this.#ze,coords:[t,e,i],alpha:0},{...
    method #Xe (line 14) | #Xe(){if("none"===this.#$e)this["#a-slider-marker"].removeAttribute("d...
    method #Be (line 14) | #Be(){this["#a-slider-label"].hidden=!this.#Se,this["#b-slider-label"]...
    method #Ie (line 14) | #Ie(){for(let t of this["#gamut-hints-menu"].querySelectorAll("x-menui...
  class Ca (line 14) | class Ca extends HTMLElement{static#z=Ns`<template><div id="x-slider" cl...
    method value (line 15) | get value(){let[t,e,i]=this.#ye;return[t,e,i,this.#Ce]}
    method value (line 15) | set value([t,e,i,s]){this.#ye=[t,e,i],this.#Ce=s,this.#Xt()}
    method space (line 15) | get space(){return this.#ze}
    method space (line 15) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
    method alpha (line 15) | get alpha(){return this.hasAttribute("alpha")}
    method alpha (line 15) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
    method disabled (line 15) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 15) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method constructor (line 15) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 15) | connectedCallback(){this.#$e=Os(Gn.getConfig("x-colorpicker:gamutHints...
    method disconnectedCallback (line 15) | disconnectedCallback(){Gn.removeEventListener("configchange",this.#$t)}
    method #_t (line 15) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if("x-colorp...
    method #Pe (line 15) | #Pe(t){let e=t.target.closest("x-menuitem");e&&(e.parentElement===this...
    method #Te (line 15) | #Te(){this.#Ie()}
    method #bi (line 15) | #bi(t){if(t.button>0||this.#ie)return;let e,i,s=this["#x-slider-track"...
    method #gi (line 15) | #gi(t){if(t.button>0||this.#ie)return;let e,i,s=this["#y-slider-track"...
    method #fi (line 15) | #fi(t){if(t.button>0||this.#ie)return;let e,i,s=this["#z-slider-track"...
    method #Re (line 15) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
    method #Xt (line 15) | #Xt(){this.#xi(),this.#Ci(),this.#zi(),this.#Ei(),this.#wi(),this.#vi(...
    method #xi (line 15) | #xi(){let[t]=this.#ye;this["#x-slider-marker"].style.left=t<0?"calc(0%...
    method #Ci (line 15) | #Ci(){let[,t,e]=this.#ye,i=[];for(let s=0;s<=1;s+=.05)i.push({space:th...
    method #zi (line 15) | #zi(){if("none"===this.#$e)this["#x-slider-gamut-path"].removeAttribut...
    method #Ei (line 15) | #Ei(){let[,t]=this.#ye;this["#y-slider-marker"].style.left=t<0?"calc(0...
    method #wi (line 15) | #wi(){let[t,,e]=this.#ye,i=[];for(let s=0;s<=1;s+=.05)i.push({space:th...
    method #vi (line 15) | #vi(){if("none"===this.#$e)this["#y-slider-gamut-path"].removeAttribut...
    method #$i (line 15) | #$i(){let[,,t]=this.#ye;this["#z-slider-marker"].style.left=t<0?"calc(...
    method #ki (line 15) | #ki(){let[t,e]=this.#ye,i=[];for(let s=0;s<=1;s+=.05)i.push({space:thi...
    method #yi (line 15) | #yi(){if("none"===this.#$e)this["#z-slider-gamut-path"].removeAttribut...
    method #Ve (line 15) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
    method #Ge (line 15) | #Ge(){let[t,e,i]=this.#ye,s=[{space:this.#ze,coords:[t,e,i],alpha:0},{...
    method #Xe (line 15) | #Xe(){if("none"===this.#$e)this["#x-slider-marker"].removeAttribute("d...
    method #Be (line 15) | #Be(){this["#x-slider-label"].hidden=!this.#Se,this["#y-slider-label"]...
    method #Ie (line 15) | #Ie(){for(let t of this["#gamut-hints-menu"].querySelectorAll("x-menui...
  class za (line 15) | class za extends HTMLElement{static#z=Ns`<template><div id="hue-slider" ...
    method value (line 16) | get value(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[t,e,i]=this.#ye...
    method value (line 16) | set value([t,e,i,s]){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[n,a,r]...
    method space (line 16) | get space(){return this.#ze}
    method space (line 16) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
    method alpha (line 16) | get alpha(){return this.hasAttribute("alpha")}
    method alpha (line 16) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
    method disabled (line 16) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 16) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method constructor (line 16) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 16) | connectedCallback(){this.#Ee=Gn.getConfig(`${this.localName}:model`,"h...
    method disconnectedCallback (line 16) | disconnectedCallback(){this.#Si.unobserve(this),Gn.removeEventListener...
    method #De (line 16) | #De(){return"none"===this.#$e||"srgb"===this.#$e&&["srgb","srgb-linear...
    method #_t (line 16) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if(e===`${th...
    method #Pe (line 16) | #Pe(t){let e=t.target.closest("x-menuitem");if(e)if(e.parentElement===...
    method #Te (line 16) | #Te(){this.#Ie()}
    method #Mi (line 16) | #Mi(){this.#Ai()}
    method #qe (line 16) | #qe(t){if(t.button>0||this.#ie)return;let e,i,s=this["#hue-slider-trac...
    method #Li (line 16) | #Li(t){if(t.button>0||this.#ie)return;let e,i,s=this["#planar-slider"]...
    method #Re (line 16) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
    method #Xt (line 16) | #Xt(){this.#Je(),this.#ri(),this.#si(),this.#Ri(),this.#Pi(),this.#Ti(...
    method #Je (line 16) | #Je(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[t]=this.#ye;this["#hu...
    method #ri (line 16) | #ri(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let t="srgb-linear"===thi...
    method #si (line 16) | #si(){let t=this.#De();if("none"===t)this["#hue-slider-gamut-path"].re...
    method #Ri (line 16) | #Ri(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[t,e,i]=this.#ye,s=100...
    method #Pi (line 16) | #Pi(){let[t]=this.#ye,e="srgb-linear"===this.#ze?"srgb-linear":"srgb",...
    method #Ti (line 16) | #Ti(){let t=this.#De();if("none"===t)this["#planar-slider-gamut-path"]...
    method #Ve (line 16) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
    method #Ge (line 16) | #Ge(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[t,e,i]=this.#ye,s="sr...
    method #Xe (line 16) | #Xe(){let t=this.#De();if("none"===t)this["#hue-slider-marker"].remove...
    method #Be (line 16) | #Be(){this["#hue-slider-label"].hidden=!this.#Se,this["#alpha-slider-l...
    method #Ie (line 16) | #Ie(){for(let t of this["#color-model-menu"].querySelectorAll("x-menui...
  class Ea (line 16) | class Ea extends HTMLElement{static#z=Ns`<template><div id="hue-slider" ...
    method value (line 17) | get value(){let[t,e,i]=this.#ye;return[t,e,i,this.#Ce]}
    method value (line 17) | set value([t,e,i,s]){this.#ye=[t,e,i],this.#Ce=s,this.#Xt()}
    method space (line 17) | get space(){return this.#ze}
    method space (line 17) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
    method alpha (line 17) | get alpha(){return this.hasAttribute("alpha")}
    method alpha (line 17) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
    method disabled (line 17) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 17) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method constructor (line 17) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 17) | connectedCallback(){this.#$e=Os(Gn.getConfig("x-colorpicker:gamutHints...
    method disconnectedCallback (line 17) | disconnectedCallback(){this.#Si.unobserve(this),Gn.removeEventListener...
    method #_t (line 17) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if("x-colorp...
    method #Pe (line 17) | #Pe(t){let e=t.target.closest("x-menuitem");e&&(e.parentElement===this...
    method #Te (line 17) | #Te(){this.#Ie()}
    method #Mi (line 17) | #Mi(){this.#Ai()}
    method #qe (line 17) | #qe(t){if(t.button>0||this.#ie)return;let e,i,s=this["#hue-slider-trac...
    method #Li (line 17) | #Li(t){if(t.button>0||this.#ie)return;let e,i,s=this["#planar-slider"]...
    method #Re (line 17) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
    method #Xt (line 17) | #Xt(){this.#Je(),this.#ri(),this.#si(),this.#Ri(),this.#Pi(),this.#Ti(...
    method #Je (line 17) | #Je(){let[t,e,i]=this.#ye;this["#hue-slider-marker"].style.left=i/360*...
    method #ri (line 17) | #ri(){let t=[];if("oklch"===this.#ze)for(let e=0;e<=360;e+=5)t.push({s...
    method #si (line 17) | #si(){if("none"===this.#$e)this["#hue-slider-gamut-path"].removeAttrib...
    method #Ri (line 17) | #Ri(){if("lch"===this.#ze){let[t,e]=this.#ye,i=t,s=100-e/fa*100;this["...
    method #Pi (line 17) | #Pi(){let t=this["#planar-slider-canvas"],e=t.getContext("2d",{colorSp...
    method #Ti (line 17) | #Ti(){if("none"===this.#$e)this["#planar-slider-gamut-path"].removeAtt...
    method #Ve (line 17) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
    method #Ge (line 17) | #Ge(){let[t,e,i]=this.#ye,s=[{space:this.#ze,coords:[t,e,i],alpha:0},{...
    method #Xe (line 17) | #Xe(){if("none"===this.#$e)this["#hue-slider-marker"].removeAttribute(...
    method #Be (line 17) | #Be(){this["#hue-slider-label"].hidden=!this.#Se,this["#alpha-slider-l...
    method #Ie (line 17) | #Ie(){for(let t of this["#gamut-hints-menu"].querySelectorAll("x-menui...
  class $a (line 17) | class $a extends HTMLElement{static#z=Ns`<template><div id="lightness-sl...
    method value (line 18) | get value(){let[t,e,i]=this.#ye;return[t,e,i,this.#Ce]}
    method value (line 18) | set value([t,e,i,s]){this.#ye=[t,e,i],this.#Ce=s,this.#Xt()}
    method space (line 18) | get space(){return this.#ze}
    method space (line 18) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
    method alpha (line 18) | get alpha(){return this.hasAttribute("alpha")}
    method alpha (line 18) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
    method disabled (line 18) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 18) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method constructor (line 18) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 18) | connectedCallback(){this.#$e=Os(Gn.getConfig("x-colorpicker:gamutHints...
    method disconnectedCallback (line 18) | disconnectedCallback(){this.#Si.unobserve(this),Gn.removeEventListener...
    method #_t (line 18) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if("x-colorp...
    method #Pe (line 18) | #Pe(t){let e=t.target.closest("x-menuitem");e&&(e.parentElement===this...
    method #Te (line 18) | #Te(){this.#Ie()}
    method #Mi (line 18) | #Mi(){this.#Ai()}
    method #Ke (line 18) | #Ke(t){if(t.button>0||this.#ie)return;let e,i,s=this["#lightness-slide...
    method #Li (line 18) | #Li(t){if(t.button>0||this.#ie)return;let e,i,s=this["#planar-slider"]...
    method #Re (line 18) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
    method #Xt (line 18) | #Xt(){this.#Ri(),this.#Pi(),this.#Ti(),this.#ai(),this.#ei(),this.#ii(...
    method #Ri (line 18) | #Ri(){let t,e,[i,s,n]=this.#ye;"lab"===this.#ze?(t=s<-125?"calc(0% - 1...
    method #Pi (line 18) | #Pi(){let t=this["#planar-slider-canvas"],e=t.getContext("2d",{colorSp...
    method #Ti (line 18) | #Ti(){if("none"===this.#$e)this["#planar-slider-gamut-path"].removeAtt...
    method #ai (line 18) | #ai(){let[t,e,i]=this.#ye;"oklab"===this.#ze?this["#lightness-slider-m...
    method #ei (line 18) | #ei(){let[,t,e]=this.#ye,i=[];if("oklab"===this.#ze)for(let s=0;s<=1;s...
    method #ii (line 18) | #ii(){if("none"===this.#$e)this["#lightness-slider-gamut-path"].remove...
    method #Ve (line 18) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
    method #Ge (line 18) | #Ge(){let[t,e,i]=this.#ye,s=[{space:this.#ze,coords:[t,e,i],alpha:0},{...
    method #Xe (line 18) | #Xe(){if("none"===this.#$e)this["#planar-slider-marker"].removeAttribu...
    method #Be (line 18) | #Be(){this["#lightness-slider-label"].hidden=!this.#Se,this["#alpha-sl...
    method #Ie (line 18) | #Ie(){for(let t of this["#gamut-hints-menu"].querySelectorAll("x-menui...
  class Sa (line 18) | class Sa extends HTMLElement{static#z=Ns`<template><div id="linear-slide...
    method value (line 19) | get value(){let[t,e,i]=this.#ye;return[t,e,i,this.#Ce]}
    method value (line 19) | set value([t,e,i,s]){this.#ye=[t,e,i],this.#Ce=s,this.#Xt()}
    method space (line 19) | get space(){return this.#ze}
    method space (line 19) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
    method alpha (line 19) | get alpha(){return this.hasAttribute("alpha")}
    method alpha (line 19) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
    method disabled (line 19) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 19) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method constructor (line 19) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 19) | connectedCallback(){this.#Ee=Gn.getConfig(`${this.localName}:model`,"x...
    method disconnectedCallback (line 19) | disconnectedCallback(){this.#Si.unobserve(this),Gn.removeEventListener...
    method #_t (line 19) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if(e===`${th...
    method #Pe (line 19) | #Pe(t){let e=t.target.closest("x-menuitem");e&&(e.parentElement===this...
    method #Te (line 19) | #Te(){this.#Ie()}
    method #Mi (line 19) | #Mi(){this.#Ai()}
    method #Di (line 19) | #Di(t){if(t.button>0||this.#ie)return;let e,i,s=this["#linear-slider-t...
    method #Li (line 19) | #Li(t){if(t.button>0||this.#ie)return;let e,i,s=this["#planar-slider"]...
    method #Re (line 19) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
    method #Xt (line 19) | #Xt(){this.#Bi(),this.#Ii(),this.#Oi(),this.#Ri(),this.#Pi(),this.#Ti(...
    method #Bi (line 19) | #Bi(){let[t,e,i]=this.#ye;"x-zy"===this.#Ee?this["#linear-slider-marke...
    method #Ii (line 19) | #Ii(){let[t,e,i]=this.#ye,s=[];if("x-zy"===this.#Ee)for(let t=0;t<=1;t...
    method #Oi (line 19) | #Oi(){if("none"===this.#$e)this["#linear-slider-gamut-path"].removeAtt...
    method #Ri (line 19) | #Ri(){let t,e,[i,s,n]=this.#ye;"x-zy"===this.#Ee?(t=n<0?"calc(0% - 18p...
    method #Pi (line 19) | #Pi(){let t=this["#planar-slider-canvas"],e=t.getContext("2d",{colorSp...
    method #Ti (line 19) | #Ti(){if("none"===this.#$e)this["#planar-slider-gamut-path"].removeAtt...
    method #Ve (line 19) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
    method #Ge (line 19) | #Ge(){let[t,e,i]=this.#ye,s=[{space:this.#ze,coords:[t,e,i],alpha:0},{...
    method #Xe (line 19) | #Xe(){if("none"===this.#$e)this["#linear-slider-marker"].removeAttribu...
    method #Be (line 19) | #Be(){this["#linear-slider-label"].hidden=!this.#Se,this["#linear-slid...
    method #Ie (line 19) | #Ie(){for(let t of this["#color-model-menu"].querySelectorAll("x-menui...
  class Ma (line 19) | class Ma extends HTMLElement{static#z=Ns`<template><div id="polar-slider...
    method value (line 20) | get value(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[t,e,i]=this.#ye...
    method value (line 20) | set value([t,e,i,s]){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[n,a,r]...
    method space (line 20) | get space(){return this.#ze}
    method space (line 20) | set space(t){this.#ze!==t&&(this.#ze=t,this.#Xt())}
    method alpha (line 20) | get alpha(){return this.hasAttribute("alpha")}
    method alpha (line 20) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
    method disabled (line 20) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 20) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method constructor (line 20) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 20) | connectedCallback(){this.#Ee=Gn.getConfig(`${this.localName}:model`,"h...
    method disconnectedCallback (line 20) | disconnectedCallback(){this.#Si.unobserve(this),Gn.removeEventListener...
    method #De (line 20) | #De(){return"none"===this.#$e||"srgb"===this.#$e&&["srgb","srgb-linear...
    method #_t (line 20) | #_t(t){let{key:e,value:i,origin:s}=t.detail;if("self"===s)if(e===`${th...
    method #Pe (line 20) | #Pe(t){let e=t.target.closest("x-menuitem");if(e)if(e.parentElement===...
    method #Te (line 20) | #Te(){this.#Ie()}
    method #Mi (line 20) | #Mi(){this.#ji()}
    method #Hi (line 20) | #Hi(t){if(t.button>0||this.#ie)return;let e,i,s=this["#polar-slider"]....
    method #Di (line 20) | #Di(t){if(t.button>0||this.#ie)return;let e,i,s=this["#linear-slider-t...
    method #Re (line 20) | #Re(t){if(t.button>0||this.#ie)return;let e,i,s=this["#alpha-slider-tr...
    method #Xt (line 20) | #Xt(){this.#Ni(),this.#Fi(),this.#Gi(),this.#Bi(),this.#Ii(),this.#Oi(...
    method #Ni (line 20) | #Ni(){let[t,e,i]=this.#ye;if("hsv"===this.#Ee||"hsl"===this.#Ee){let i...
    method #Fi (line 20) | #Fi(){let t="srgb-linear"===this.#ze?"srgb-linear":"srgb",e="srgb-line...
    method #Gi (line 20) | #Gi(){let t=this.#De();if("none"===t)this["#polar-slider-gamut-path"]....
    method #Bi (line 20) | #Bi(){let[,t,e]=this.#ye;"hsv"!==this.#Ee&&"hsl"!==this.#Ee||(this["#l...
    method #Ii (line 20) | #Ii(){if("hsv"===this.#Ee){let[t,e]=this.#ye,i="srgb-linear"===this.#z...
    method #Oi (line 20) | #Oi(){let t=this.#De();if("none"===t)this["#linear-slider-gamut-path"]...
    method #Ve (line 20) | #Ve(){this["#alpha-slider-marker"].style.left=100*this.#Ce+"%"}
    method #Ge (line 20) | #Ge(){if("hsv"===this.#Ee||"hsl"===this.#Ee){let[t,e,i]=this.#ye,s="sr...
    method #Xe (line 20) | #Xe(){let t=this.#De();if("none"===t)this["#polar-slider-marker"].remo...
    method #Be (line 20) | #Be(){this.#Se?("hsv"===this.#Ee?this["#linear-slider-label"].textCont...
    method #Ie (line 20) | #Ie(){for(let t of this["#color-model-menu"].querySelectorAll("x-menui...
  class La (line 20) | class La extends HTMLElement{static observedAttributes=["value","alpha",...
    method value (line 21) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
    method value (line 21) | set value(t){this.setAttribute("value",t)}
    method alpha (line 21) | get alpha(){return this.hasAttribute("alpha")}
    method alpha (line 21) | set alpha(t){t?this.setAttribute("alpha",""):this.removeAttribute("alp...
    method spaces (line 21) | get spaces(){return this.hasAttribute("spaces")?this.getAttribute("spa...
    method spaces (line 21) | set spaces(t){this.setAttribute("spaces",t.join(" "))}
    method disabled (line 21) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 21) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 21) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 21) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 21) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 21) | connectedCallback(){this["#color-picker"].setAttribute("value",this.va...
    method attributeChangedCallback (line 21) | attributeChangedCallback(t,e,i){e!==i&&("value"===t?this.#Zt():"alpha"...
    method #Vt (line 21) | async#Vt(){!1===this.hasAttribute("expanded")&&(this.#X=this.matches("...
    method #Wt (line 21) | async#Wt(t=null){if(this.hasAttribute("expanded")){if(this["#popover"]...
    method #Vi (line 21) | #Vi(){this["#preview"].style.background=this.value}
    method #J (line 21) | #J(){this.setAttribute("aria-disabled",this.disabled),this.disabled?(t...
    method #Zt (line 21) | #Zt(){!1===this.#Xi&&(this.#Vi(),this["#color-picker"].getAttribute("v...
    method #pe (line 21) | #pe(){this["#color-picker"].alpha=this.alpha}
    method #me (line 21) | #me(){this["#color-picker"].spaces=this.spaces}
    method #vt (line 21) | #vt(){this.#J()}
    method #qi (line 21) | #qi(){this["#color-picker"].size=this.size}
    method #Zi (line 21) | #Zi(){this.#Xi=!0,this.dispatchEvent(new CustomEvent("changestart",{bu...
    method #Ui (line 21) | #Ui(t){this.value=this["#color-picker"].value,this.dispatchEvent(new C...
    method #Yi (line 21) | #Yi(){this.#Xi=!1,this.dispatchEvent(new CustomEvent("changeend",{bubb...
    method #Y (line 21) | #Y(t){t.target===this&&!1===this.matches(":focus")&&t.preventDefault()}
    method #P (line 21) | #P(t){!1===this["#popover"].opened&&(t.preventDefault(),this.#Vt())}
    method #W (line 21) | #W(t){"Enter"===t.code||"NumpadEnter"===t.code||"Space"===t.code?(t.pr...
    method #_i (line 21) | #_i(){this.dispatchEvent(new CustomEvent("collapse")),this.#Wt()}
  class Aa (line 21) | class Aa extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
    method disabled (line 22) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 22) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method constructor (line 22) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 22) | connectedCallback(){this.#Wi=this.parentElement||this.parentNode.host,...
    method disconnectedCallback (line 22) | disconnectedCallback(){window.removeEventListener("blur",this.#Ki),thi...
    method open (line 22) | open(t,e){let i=this.querySelector("x-menu");!1===i.opened&&(i.openAtP...
    method close (line 22) | close(){return new Promise((async t=>{this["#backdrop"].hide(!1);let e...
    method #ts (line 22) | #ts(){this.close()}
    method #es (line 22) | #es(t){!1===this.disabled&&(t.preventDefault(),this.open(t.clientX,t.c...
    method #Qi (line 22) | #Qi(t){"touch"!==t.pointerType&&(t.preventDefault(),t.stopImmediatePro...
    method #ut (line 22) | #ut(t){t.buttons<=1&&"touch"!==t.pointerType&&(t.preventDefault(),t.st...
    method #At (line 22) | #At(t){"touch"===t.pointerType&&this.close()}
    method #P (line 22) | async#P(t){let e=t.target.closest("x-menuitem");if(e&&!1===e.disabled)...
    method #W (line 22) | #W(t){if("Escape"===t.code){this.querySelector("x-menu").opened&&(t.pr...
  class Ra (line 22) | class Ra extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
    method position (line 23) | get position(){return this.hasAttribute("position")?this.getAttribute(...
    method position (line 23) | set position(t){this.setAttribute("position",t)}
    method manual (line 23) | get manual(){return this.hasAttribute("manual")}
    method manual (line 23) | set manual(t){t?this.setAttribute("manual",""):this.removeAttribute("m...
    method constructor (line 23) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method open (line 23) | open(){return new Promise((async t=>{if(!1===this.isConnected)return v...
    method close (line 23) | close(){return new Promise((async t=>{this.#is&&await this.#is.finishe...
    method toggle (line 23) | toggle(){this.hasAttribute("popover")?this.close():this.open()}
  class Pa (line 23) | class Pa extends HTMLElement{static observedAttributes=["href"];static#z...
    method href (line 24) | get href(){return this.hasAttribute("href")?this.getAttribute("href"):""}
    method href (line 24) | set href(t){this.setAttribute("href",t)}
    method disabled (line 24) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 24) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 24) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 24) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 24) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 24) | connectedCallback(){Gn.addEventListener("iconschange",this.#as=()=>{th...
    method disconnectedCallback (line 24) | disconnectedCallback(){Gn.removeEventListener("iconschange",this.#as)}
    method attributeChangedCallback (line 24) | attributeChangedCallback(t,e,i){e!==i&&"href"===t&&this.#Xt()}
    method #V (line 24) | #V(){let t=this.querySelector(":scope > x-tooltip");t&&!1===t.disabled...
    method #q (line 24) | #q(){let t=this.querySelector(":scope > x-tooltip");t&&t.close()}
    method #Xt (line 24) | async#Xt(){let t=null,e=this.href.trim();if(""!==e){let i=null,s=null;...
  class Ta (line 24) | class Ta extends HTMLElement{static observedAttributes=["type","value","...
    method type (line 25) | get type(){return this.hasAttribute("type")?this.getAttribute("type"):...
    method type (line 25) | set type(t){this.setAttribute("type",t)}
    method value (line 25) | get value(){return this["#input"].value}
    method value (line 25) | set value(t){this["#input"].value!==t&&(this.matches(":focus")?(this["...
    method spellcheck (line 25) | get spellcheck(){return this.hasAttribute("spellcheck")}
    method spellcheck (line 25) | set spellcheck(t){t?this.setAttribute("spellcheck",""):this.removeAttr...
    method minLength (line 25) | get minLength(){return this.hasAttribute("minlength")?parseInt(this.ge...
    method minLength (line 25) | set minLength(t){this.setAttribute("minlength",t)}
    method maxLength (line 25) | get maxLength(){return this.hasAttribute("maxlength")?parseInt(this.ge...
    method maxLength (line 25) | set maxLength(t){this.setAttribute("maxlength",t)}
    method required (line 25) | get required(){return this.hasAttribute("required")}
    method required (line 25) | set required(t){t?this.setAttribute("required",""):this.removeAttribut...
    method readOnly (line 25) | get readOnly(){return this.hasAttribute("readonly")}
    method readOnly (line 25) | set readOnly(t){!0===t?this.setAttribute("readonly",t):this.removeAttr...
    method mixed (line 25) | get mixed(){return this.hasAttribute("mixed")}
    method mixed (line 25) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
    method disabled (line 25) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 25) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method validation (line 25) | get validation(){return this.hasAttribute("validation")?this.getAttrib...
    method validation (line 25) | set validation(t){this.setAttribute("validation",t)}
    method size (line 25) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 25) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method empty (line 25) | get empty(){return this.hasAttribute("empty")}
    method error (line 25) | get error(){return this.hasAttribute("error")}
    method constructor (line 25) | constructor(){super(),this.#$=this.attachShadow({mode:"closed",delegat...
    method connectedCallback (line 25) | connectedCallback(){this.#J(),this.#zt(),"instant"===this.validation?t...
    method attributeChangedCallback (line 25) | attributeChangedCallback(t,e,i){e!==i&&("type"===t?this.#ls():"value"=...
    method selectAll (line 25) | selectAll(){this["#input"].select()}
    method clear (line 25) | clear(){this.value="",this.#Et=null,this.#rs=null,this.#Yt()}
    method reportValidity (line 25) | reportValidity(){let t=new CustomEvent("beforevalidate",{bubbles:!1,ca...
    method setCustomValidity (line 25) | setCustomValidity(t){this.#rs=""===t?null:t,this.#Yt()}
    method #Yt (line 25) | #Yt(){let t=this.#rs||this.#Et;t?this.setAttribute("error",""):this.re...
    method #zt (line 25) | #zt(){0===this.value.length?this.setAttribute("empty",""):this.removeA...
    method #J (line 25) | #J(){this.setAttribute("role","input"),this.setAttribute("aria-disable...
    method #ls (line 25) | #ls(){"color"===this.type?this["#input"].type="text":this["#input"].ty...
    method #Zt (line 25) | #Zt(){this.value=this.hasAttribute("value")?this.getAttribute("value")...
    method #hs (line 25) | #hs(){this["#input"].spellcheck=this.spellcheck}
    method #ds (line 25) | #ds(){this["#input"].minLength=this.minLength}
    method #cs (line 25) | #cs(){this["#input"].maxLength=this.maxLength}
    method #us (line 25) | #us(){this["#input"].readOnly=this.readOnly,this.#J()}
    method #vt (line 25) | #vt(){this["#input"].disabled=this.disabled,this.#J()}
    method #ps (line 25) | #ps(){"instant"===this.validation?this.reportValidity():"auto"!==this....
    method #P (line 25) | #P(){this.#Yt()}
    method #V (line 25) | #V(){let t=this.querySelector(":scope > x-tooltip");t&&!1===t.disabled...
    method #q (line 25) | #q(){let t=this.querySelector(":scope > x-tooltip");t&&t.close()}
    method #Rt (line 25) | #Rt(){this.#Yt(),this.dispatchEvent(new CustomEvent("textinputmodestar...
    method #Pt (line 25) | #Pt(){this.dispatchEvent(new CustomEvent("textinputmodeend",{bubbles:!...
    method #W (line 25) | #W(t){"Enter"!==t.code&&"NumpadEnter"!==t.code||(document.execCommand(...
    method #Tt (line 25) | #Tt(t){"instant"===this.validation?this.reportValidity():"auto"!==this...
    method #de (line 25) | #de(t){this.#os=t.timeStamp,this.dispatchEvent(new CustomEvent("change...
    method #Bt (line 25) | #Bt(t){t.timeStamp-this.#os>100&&this.dispatchEvent(new CustomEvent("c...
  class Da (line 25) | class Da extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
    method value (line 26) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
    method value (line 26) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
    method level (line 26) | get level(){return this.hasAttribute("level")?parseInt(this.getAttribu...
    method level (line 26) | set level(t){null===t?this.removeAttribute("level"):this.setAttribute(...
    method disabled (line 26) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 26) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method constructor (line 26) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
  class Ha (line 26) | class Ha extends HTMLElement{static observedAttributes=["href","args","a...
    method href (line 26) | get href(){return this.hasAttribute("href")?this.getAttribute("href"):""}
    method href (line 26) | set href(t){this.setAttribute("href",t)}
    method args (line 26) | get args(){let t=Object.create(null),e=this.hasAttribute("args")?this....
    method args (line 26) | set args(t){let e=Object.keys(t).map((e=>`${e}: ${t[e]}`)).join(", ");...
    method autocapitalize (line 26) | get autocapitalize(){return!!this.hasAttribute("autocapitalize")}
    method autocapitalize (line 26) | set autocapitalize(t){t?this.setAttribute("autocapitalize",""):this.re...
    method ellipsis (line 26) | get ellipsis(){return this.hasAttribute("ellipsis")}
    method ellipsis (line 26) | set ellipsis(t){t?this.setAttribute("ellipsis",""):this.removeAttribut...
    method whenReady (line 26) | get whenReady(){return new Promise((t=>{null===this.#ms?t():this.#ms.p...
    method constructor (line 26) | constructor(){super(),this.textContent.length>0&&(this.#gs=this.textCo...
    method connectedCallback (line 26) | connectedCallback(){this.#Xt(),Gn.addEventListener("localeschange",thi...
    method disconnectedCallback (line 26) | disconnectedCallback(){Gn.removeEventListener("localeschange",this.#bs...
    method attributeChangedCallback (line 26) | attributeChangedCallback(t,e,i){e!==i&&!1!==this.isConnected&&("href"=...
    method #Xt (line 26) | async#Xt(){await Gn.whenLocalesReady;let t=Gn.queryMessage(this.href,t...
  class Fa (line 26) | class Fa extends HTMLElement{static observedAttributes=["opened"];static...
    method opened (line 27) | get opened(){return this.hasAttribute("opened")}
    method constructor (line 27) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 27) | connectedCallback(){this.setAttribute("role","menu"),this.setAttribute...
    method attributeChangedCallback (line 27) | attributeChangedCallback(t,e,i){e!==i&&"opened"===t&&this.#As()}
    method openOverElement (line 27) | openOverElement(t,e){return new Promise((async i=>{let s=this.querySel...
    method openOverLabel (line 27) | openOverLabel(t){return new Promise((async e=>{let i=this.querySelecto...
    method openNextToElement (line 27) | openNextToElement(t,e="horizontal",i=0){return new Promise((async s=>{...
    method openAtPoint (line 27) | openAtPoint(t,e){return new Promise((async i=>{this.#ys=!1,this.#zs=Nn...
    method close (line 27) | close(t=!0){return new Promise((async e=>{if(this.opened){this.removeA...
    method focusNextMenuItem (line 27) | focusNextMenuItem(){let t=this.querySelector(":scope > x-menuitem:focu...
    method focusPreviousMenuItem (line 27) | focusPreviousMenuItem(){let t=this.querySelector(":scope > x-menuitem:...
    method focusFirstMenuItem (line 27) | focusFirstMenuItem(){let t=this.querySelectorAll("x-menuitem:not([disa...
    method focusLastMenuItem (line 27) | focusLastMenuItem(){let t=this.querySelectorAll("x-menuitem:not([disab...
    method #Ps (line 27) | #Ps(t){let e=0;{let t=this.#fs[this.#fs.length-1],i=this.#fs[0];if(thi...
    method #Ts (line 27) | #Ts(){this.#xs&&(clearTimeout(this.#xs),this.#xs=null)}
    method #Rs (line 27) | #Rs(){this.style.position="fixed",this.style.top="0px",this.style.left...
    method #Ds (line 27) | #Ds(){return this.matches("*[closing], *[closing] x-menu")}
    method #As (line 27) | #As(){this.setAttribute("aria-hidden",!this.opened)}
    method #Y (line 27) | #Y(t){if(t.target!==this&&"hr"!==t.target.localName||t.stopPropagation...
    method #Es (line 27) | #Es(t){if(!this.#Ds()&&"touch"!==t.pointerType&&t.target.closest("x-me...
    method #$s (line 27) | #$s(t){t.relatedTarget&&Zn(t.relatedTarget,"x-menu")===this||!0===this...
    method #Bs (line 27) | #Bs(){this.#Ds()||(this.#Cs=!0,this.#Ts())}
    method #Is (line 27) | #Is(){this.#Ds()||(this.#Cs=!1,this.#Ts(),this.focus())}
    method #Ss (line 27) | #Ss(t){this.#fs.push({x:t.clientX,y:t.clientY}),this.#fs.length>3&&thi...
    method #Ms (line 27) | #Ms(t){t.target.closest("x-menu")===this?(t.preventDefault(),this.scro...
    method #Ls (line 27) | #Ls(){if(this.#ys){let t=this.scrollTop-this.#vs;if(this.#vs=this.scro...
    method #W (line 27) | #W(t){if(this.#Ds())t.preventDefault(),t.stopPropagation();else if("Ar...
  class Xa (line 27) | class Xa extends HTMLElement{static observedAttributes=["disabled"];stat...
    method disabled (line 28) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 28) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 28) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 28) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 28) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 28) | connectedCallback(){this.setAttribute("role","menubar"),this.setAttrib...
    method disconnectedCallback (line 28) | disconnectedCallback(){window.removeEventListener("orientationchange",...
    method attributeChangedCallback (line 28) | attributeChangedCallback(t,e,i){e!==i&&"disabled"===t&&this.#vt()}
    method #Ys (line 28) | #Ys(){{let t=this.querySelector(":scope > x-menuitem[ellipsis]");t?t.h...
    method #Ws (line 28) | #Ws(t){let e=t.querySelector(":scope > x-menu");if(e&&!1===e.opened){l...
    method #Ks (line 28) | #Ks(){return new Promise((async t=>{let e=this.#Os;this.#Os=!1,this.st...
    method #Js (line 28) | #Js(){let t=[...this.querySelectorAll(":scope > x-menuitem:not([disabl...
    method #Qs (line 28) | #Qs(){let t=[...this.querySelectorAll(":scope > x-menuitem:not([disabl...
    method #vt (line 28) | #vt(){this.setAttribute("aria-disabled",this.disabled)}
    method #Pt (line 28) | #Pt(t){null!==t.relatedTarget&&!1!==this.contains(t.relatedTarget)||th...
    method #Vs (line 28) | #Vs(){this.#Ks()}
    method #js (line 28) | #js(){this.isConnected&&this.#qs()}
    method #Ns (line 28) | #Ns(){this.isConnected&&this.#qs()}
    method #Fs (line 28) | #Fs(){this.isConnected&&this.#qs()}
    method #Zs (line 28) | #Zs(t){let e=this.querySelector("x-menu[opened]");e&&!1===e.contains(t...
    method #P (line 28) | async#P(t){let e=t.target.closest("x-menuitem");if(e&&!1===t.isTrusted...
    method #Gs (line 28) | async#Gs(t){if(this.hasAttribute("closing"))return;let e=t.target.clos...
    method #Xs (line 28) | #Xs(t){if(this.hasAttribute("closing"))return;let e=t.target.closest("...
    method #_s (line 28) | #_s(t){if(this.hasAttribute("closing"))return;let e=t.target.closest("...
    method #Us (line 28) | #Us(t){if(this.hasAttribute("closing"))t.stopPropagation(),t.preventDe...
  class _a (line 28) | class _a extends HTMLElement{static observedAttributes=["disabled"];stat...
    method value (line 29) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
    method value (line 29) | set value(t){this.value!==t&&(null===t?this.removeAttribute("value"):t...
    method toggled (line 29) | get toggled(){return this.hasAttribute("toggled")}
    method toggled (line 29) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
    method togglable (line 29) | get togglable(){return this.hasAttribute("togglable")}
    method togglable (line 29) | set togglable(t){t?this.setAttribute("togglable",""):this.removeAttrib...
    method disabled (line 29) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 29) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 29) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 29) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method whenTriggerEnd (line 29) | get whenTriggerEnd(){return new Promise((t=>{!1===this.#tn?t():this.#e...
    method constructor (line 29) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 29) | connectedCallback(){Gn.whenThemeReady.then((()=>{this.#ft(),this.#I()}...
    method disconnectedCallback (line 29) | disconnectedCallback(){this.#sn.disconnect(),Gn.removeEventListener("t...
    method attributeChangedCallback (line 29) | attributeChangedCallback(t,e,i){e!==i&&"disabled"===t&&this.#J()}
    method #ft (line 29) | #ft(){let t=getComputedStyle(this["#checkmark"]).getPropertyValue("--p...
    method #I (line 29) | #I(){let t=getComputedStyle(this["#arrow"]).getPropertyValue("--path-d...
    method #nn (line 29) | #nn(){if(this.parentElement&&"x-menubar"===this.parentElement.localNam...
    method #J (line 29) | #J(){this.setAttribute("role","menuitem"),this.setAttribute("aria-disa...
    method #an (line 29) | #an(){this.#ft(),this.#I()}
    method #Y (line 29) | async#Y(t){if(this.#in=this.matches(":focus"),t.buttons>1)return!1;if(...
    method #P (line 29) | async#P(t){if(t.buttons>1)return;let e=t.target.closest("x-menuitem"),...
    method #W (line 29) | #W(t){"Enter"!==t.code&&"NumpadEnter"!==t.code&&"Space"!==t.code||(t.p...
  class Za (line 29) | class Za extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
    method value (line 30) | get value(){let t=this.querySelector("x-navitem[toggled]");return t?t....
    method value (line 30) | set value(t){let e=[...this.querySelectorAll("x-navitem")],i=null===t?...
    method constructor (line 30) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 30) | connectedCallback(){this.setAttribute("role","navigation"),"x-navitem"...
    method #rn (line 30) | #rn(){let t=this;for(;;){let e=t.parentElement?.closest("x-nav");if(!e...
    method #P (line 30) | #P(t){let e=t.target.closest("x-navitem");if(e&&!1===e.hasAttribute("e...
    method #Y (line 30) | #Y(t){if(t.buttons>1)return void t.preventDefault();let e=t.target.clo...
    method #W (line 30) | #W(t){let e=this.#rn(),i=e.querySelector("x-navitem:focus");if("Enter"...
  class Ua (line 30) | class Ua extends HTMLElement{static observedAttributes=["disabled"];stat...
    method value (line 31) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
    method value (line 31) | set value(t){this.setAttribute("value",t)}
    method toggled (line 31) | get toggled(){return this.hasAttribute("toggled")}
    method toggled (line 31) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
    method disabled (line 31) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 31) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method expanded (line 31) | get expanded(){return this.hasAttribute("expanded")}
    method expanded (line 31) | set expanded(t){t?this.setAttribute("expanded",""):this.removeAttribut...
    method expandable (line 31) | get expandable(){return this.hasAttribute("expandable")}
    method constructor (line 31) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 31) | connectedCallback(){Gn.whenThemeReady.then((()=>{this.#I()})),Gn.addEv...
    method disconnectedCallback (line 31) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R)}
    method attributeChangedCallback (line 31) | attributeChangedCallback(t,e,i){e!==i&&"disabled"===t&&this.#J()}
    method expand (line 31) | expand(t=!0){return new Promise((async e=>{if(!1===this.expanded)if(!1...
    method collapse (line 31) | collapse(t=!0){return new Promise((async e=>{if(!0===this.expanded)if(...
    method #P (line 31) | #P(t){if(this===t.target.closest("x-navitem")&&this.hasAttribute("expa...
    method #H (line 31) | #H(){this.#A.length>0&&this.#A.map((t=>t.finish()))}
    method #J (line 31) | #J(){this.setAttribute("role","button"),this.setAttribute("aria-disabl...
    method #I (line 31) | #I(){let t=getComputedStyle(this["#arrow"]).getPropertyValue("--path-d...
  class Ya (line 31) | class Ya extends HTMLElement{static observedAttributes=["opened"];static...
    method opened (line 32) | get opened(){return this.hasAttribute("opened")}
    method opened (line 32) | set opened(t){!0===t?this.setAttribute("opened",""):this.removeAttribu...
    method timeout (line 32) | get timeout(){return this.hasAttribute("timeout")?parseFloat(this.getA...
    method timeout (line 32) | set timeout(t){this.setAttribute("timeout",t)}
    method size (line 32) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 32) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 32) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 32) | connectedCallback(){this.setAttribute("tabindex","0")}
    method attributeChangedCallback (line 32) | attributeChangedCallback(t,e,i){e!==i&&"opened"===t&&(this.opened?this...
    method #dn (line 32) | #dn(){if(this.isConnected){let t=0-this.getBoundingClientRect().height...
    method #K (line 32) | async#K(){if(null!==this.#ln&&(clearInterval(this.#ln),this.#ln=null),...
  class Wa (line 32) | class Wa extends HTMLElement{static observedAttributes=["value","min","m...
    method value (line 33) | get value(){return this.hasAttribute("value")?parseFloat(this.getAttri...
    method value (line 33) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
    method min (line 33) | get min(){return this.hasAttribute("min")?parseFloat(this.getAttribute...
    method min (line 33) | set min(t){Va(t)?this.setAttribute("min",t):this.removeAttribute("min")}
    method max (line 33) | get max(){return this.hasAttribute("max")?parseFloat(this.getAttribute...
    method max (line 33) | set max(t){Va(t)?this.setAttribute("max",t):this.removeAttribute("max")}
    method mixed (line 33) | get mixed(){return this.hasAttribute("mixed")}
    method mixed (line 33) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
    method precision (line 33) | get precision(){return this.hasAttribute("precision")?parseFloat(this....
    method precision (line 33) | set precision(t){this.setAttribute("precision",t)}
    method step (line 33) | get step(){return this.hasAttribute("step")?parseFloat(this.getAttribu...
    method step (line 33) | set step(t){this.setAttribute("step",t)}
    method prefix (line 33) | get prefix(){return this.hasAttribute("prefix")?this.getAttribute("pre...
    method prefix (line 33) | set prefix(t){this.setAttribute("prefix",t)}
    method suffix (line 33) | get suffix(){return this.hasAttribute("suffix")?this.getAttribute("suf...
    method suffix (line 33) | set suffix(t){this.setAttribute("suffix",t)}
    method mixed (line 33) | get mixed(){return this.hasAttribute("mixed")}
    method mixed (line 33) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
    method disabled (line 33) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 33) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 33) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 33) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 33) | constructor(){super(),this.#$=this.attachShadow({mode:"closed",delegat...
    method connectedCallback (line 33) | connectedCallback(){this.#J(),this.#Xt()}
    method attributeChangedCallback (line 33) | attributeChangedCallback(t,e,i){e!==i&&("value"===t?this.#Zt():"min"==...
    method #$n (line 33) | #$n(t=!1){let e=this.value,i=this.value;i+=t?10*this.step:this.step,i=...
    method #Mn (line 33) | #Mn(t=!1){let e=this.value,i=this.value;i-=t?10*this.step:this.step,i=...
    method #Ln (line 33) | #Ln(){this.#un||(this.#un=!0,this.dispatchEvent(new CustomEvent("chang...
    method #Rn (line 33) | #Rn(){let t=this["#editor"].textContent,e=parseFloat(t);Number.isNaN(e...
    method #Xt (line 33) | #Xt(){this.#Pn(),this.#Sn(),this.#Tn()}
    method #Pn (line 33) | #Pn(){if(this.hasAttribute("value"))if(this.step<1){let t=parseFloat(t...
    method #Sn (line 33) | #Sn(){let t=null;if(this.matches(":focus")){let e=this["#editor"].text...
    method #Tn (line 33) | #Tn(){let t=this.querySelector("x-stepper");if(t){let e=this.value>thi...
    method #J (line 33) | #J(){this.setAttribute("role","input"),this.setAttribute("aria-disable...
    method #Zt (line 33) | #Zt(){this.#Xt()}
    method #yn (line 33) | #yn(){this.#Tn()}
    method #Cn (line 33) | #Cn(){this.#Tn()}
    method #zn (line 33) | #zn(){this["#editor"].setAttribute("data-prefix",this.prefix)}
    method #En (line 33) | #En(){this["#editor"].setAttribute("data-suffix",this.suffix)}
    method #vt (line 33) | #vt(){this["#editor"].contentEditable=this.disabled?"false":"plaintext...
    method #Rt (line 33) | #Rt(){document.execCommand("selectAll"),this.dispatchEvent(new CustomE...
    method #Pt (line 33) | #Pt(){"chromium"===Hn()&&this.#$.getSelection().collapse(this["#main"]...
    method #fn (line 33) | #fn(){this.#Sn(),this.#Tn()}
    method #Ms (line 33) | #Ms(t){this.matches(":focus")&&(t.preventDefault(),this.#Ln(),t.wheelD...
    method #P (line 33) | #P(t){t.preventDefault()}
    method #Y (line 33) | #Y(t){"x-stepper"===t.target.localName&&t.preventDefault()}
    method #Xs (line 33) | #Xs(t){if(t.buttons>1||!1===t.isPrimary)t.preventDefault();else if(t.t...
    method #V (line 33) | #V(){let t=this.querySelector(":scope > x-tooltip");t&&!1===t.disabled...
    method #q (line 33) | #q(){let t=this.querySelector(":scope > x-tooltip");t&&t.close()}
    method #vn (line 33) | #vn(t){let e,i;this.matches(":focus")&&this.#Rn(),this.#bn=!0,this.add...
    method #kn (line 33) | #kn(t){let e,i;this.matches(":focus")&&this.#Rn(),this.#bn=!0,this.add...
    method #W (line 33) | #W(t){"ArrowDown"===t.code?(t.preventDefault(),this.#pn=!0,this.#Ln(),...
    method #xn (line 33) | #xn(t){"ArrowDown"===t.code||"ArrowUp"===t.code?(this.#pn=!1,this.#An(...
    method #wn (line 33) | #wn(t){!1===t.ctrlKey&&!1===t.altKey&&!1===t.metaKey&&!1===qa.includes...
    method #gn (line 33) | async#gn(t){t.preventDefault();let e=t.clipboardData.getData("text/pla...
  class Ka (line 33) | class Ka extends HTMLElement{static observedAttributes=["value","max","c...
    method value (line 34) | get value(){return this.hasAttribute("value")?parseInt(this.getAttribu...
    method value (line 34) | set value(t){t=ki(t,1,this.max),this.setAttribute("value",t)}
    method max (line 34) | get max(){return this.hasAttribute("max")?parseFloat(this.getAttribute...
    method max (line 34) | set max(t){this.setAttribute("max",t)}
    method controls (line 34) | get controls(){return this.hasAttribute("controls")?this.getAttribute(...
    method controls (line 34) | set controls(t){this.setAttribute("controls",t.join(" "))}
    method href (line 34) | get href(){return this.getAttribute("href")}
    method href (line 34) | set href(t){t?this.setAttribute("href",t):this.removeAttribute("href")}
    method constructor (line 34) | constructor(){super()}
    method connectedCallback (line 34) | connectedCallback(){if(!this.#$){this.setAttribute("role","navigation"...
    method disconnectedCallback (line 34) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R)}
    method attributeChangedCallback (line 34) | attributeChangedCallback(t,e,i){e!==i&&this.#$&&("value"===t||"max"===...
    method #an (line 34) | #an(){this.#Xt()}
    method #Y (line 34) | #Y(t){if(t.buttons>1)return void t.preventDefault();let e=t.target.clo...
    method #P (line 34) | #P(t){let e=t.target.closest(".item"),i=t.target.closest("a");e&&void ...
    method #W (line 34) | #W(t){let e=this["#items"].querySelector(":focus");if(e)if("Enter"===t...
    method #Dn (line 34) | #Dn(){let t="";if(this.controls.includes("first")&&this.max>1&&(t+=thi...
    method #Bn (line 34) | #Bn(t=1,e="prev"){let i='part="item"',s=`data-value="${t}"`,n=t===this...
    method #In (line 34) | #In(t=1,e=!1){let i=e||!this.href?null:this.#Hn(t),s=`id="item-${t}"`,...
    method #On (line 34) | #On(){return'<div class="item ellipsis-item">…</div>'}
    method #Hn (line 34) | #Hn(t=1){let e=new URL(this.href);return 1===t?e.searchParams.delete("...
    method #Xt (line 34) | #Xt(){let t=this["#items"].querySelector(":focus");this["#items"].inne...
  class Ja (line 34) | class Ja extends HTMLElement{static observedAttributes=["modal"];static#...
    method opened (line 35) | get opened(){return this.hasAttribute("opened")}
    method modal (line 35) | get modal(){return this.hasAttribute("modal")}
    method modal (line 35) | set modal(t){t?this.setAttribute("modal",""):this.removeAttribute("mod...
    method constructor (line 35) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 35) | connectedCallback(){this.tabIndex=-1}
    method attributeChangedCallback (line 35) | attributeChangedCallback(t,e,i){e!==i&&"modal"===t&&(this.modal&&this....
    method #Mi (line 35) | #Mi(){this.#_n(this.#Fn)}
    method open (line 35) | open(t,e=!0){return new Promise((async i=>{if(this.#Fn=t,!1===this.ope...
    method close (line 35) | close(t=!0){return new Promise((async e=>{if(!0===this.opened&&(this.r...
    method #_n (line 35) | #_n(t){let e=getComputedStyle(this).getPropertyValue("--align").trim()...
    method #Zn (line 35) | #Zn(){{let{backgroundColor:t,borderColor:e,borderWidth:i}=getComputedS...
  class Qa (line 35) | class Qa extends HTMLElement{static observedAttributes=["value","max","d...
    method value (line 36) | get value(){return this.hasAttribute("value")?parseFloat(this.getAttri...
    method value (line 36) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
    method max (line 36) | get max(){return this.hasAttribute("max")?parseFloat(this.getAttribute...
    method max (line 36) | set max(t){this.setAttribute("max",t)}
    method disabled (line 36) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 36) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 36) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 36) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 36) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 36) | connectedCallback(){this.#Xt()}
    method attributeChangedCallback (line 36) | attributeChangedCallback(t,e,i){e!==i&&("value"===t||"disabled"===t)&&...
    method #Xt (line 36) | #Xt(){if(null===this.value||-1===this.value||this.disabled?this["#dete...
  class tr (line 36) | class tr extends HTMLElement{static observedAttributes=["toggled","disab...
    method value (line 37) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
    method value (line 37) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
    method toggled (line 37) | get toggled(){return this.hasAttribute("toggled")}
    method toggled (line 37) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
    method mixed (line 37) | get mixed(){return this.hasAttribute("mixed")}
    method mixed (line 37) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
    method disabled (line 37) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 37) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 37) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 37) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 37) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 37) | connectedCallback(){this.#J()}
    method attributeChangedCallback (line 37) | attributeChangedCallback(t,e,i){e!==i&&("toggled"===t?this.#xt():"disa...
    method #J (line 37) | #J(){this.setAttribute("role","radio"),this.setAttribute("aria-checked...
    method #xt (line 37) | #xt(){this.setAttribute("aria-checked",this.toggled)}
    method #vt (line 37) | #vt(){this.#J()}
    method #P (line 37) | #P(t){this.closest("x-radios")||(this.toggled&&this.mixed?this.mixed=!...
    method #Y (line 37) | #Y(t){if(!1===this.matches(":focus")){t.preventDefault();let e=Zn(this...
    method #W (line 37) | #W(t){"Enter"!==t.code&&"NumpadEnter"!==t.code&&"Space"!==t.code||(t.p...
  class er (line 37) | class er extends HTMLElement{get value(){let t=this.querySelector("x-rad...
    method value (line 37) | get value(){let t=this.querySelector("x-radio[toggled]");return t?t.va...
    method value (line 37) | set value(t){for(let e of this.querySelectorAll("x-radio"))e.toggled=e...
    method constructor (line 37) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 37) | connectedCallback(){this.setAttribute("role","radiogroup");let t=[...t...
    method #P (line 37) | #P(t){let e=t.target.closest("x-radio");if(e&&!e.disabled&&t.buttons<=...
    method #W (line 37) | #W(t){if("ArrowDown"===t.code||"ArrowRight"===t.code){let e=[...this.q...
  class sr (line 37) | class sr extends HTMLElement{static observedAttributes=["disabled"];stat...
    method value (line 38) | get value(){let t=this.querySelector("x-menuitem[toggled]");return t?t...
    method value (line 38) | set value(t){for(let e of this.querySelectorAll("x-menuitem"))e.toggle...
    method mixed (line 38) | get mixed(){return this.hasAttribute("mixed")}
    method mixed (line 38) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
    method disabled (line 38) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 38) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 38) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 38) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 38) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 38) | connectedCallback(){this.#Yn.observe(this,{childList:!0,attributes:!0,...
    method disconnectedCallback (line 38) | disconnectedCallback(){this.#Yn.disconnect(),this.#Si.disconnect(),Gn....
    method attributeChangedCallback (line 38) | attributeChangedCallback(t,e,i){e!==i&&"disabled"===t&&this.#J()}
    method #Vt (line 38) | #Vt(){if(!1===this.#qt())return;this.#X=this.matches(":focus"),this["#...
    method #Wt (line 38) | async#Wt(t=null){if(!1===this.#Kt())return;let e=this.querySelector(":...
    method #qt (line 38) | #qt(){if(this.disabled)return!1;{let t=this.querySelector(":scope > x-...
    method #Kt (line 38) | #Kt(){if(this.disabled)return!1;{let t=this.querySelector(":scope > x-...
    method #Wn (line 38) | #Wn(){let t=this.querySelector(":scope > x-menu x-menuitem[toggled]");...
    method #Kn (line 38) | #Kn(){for(let t of this["#button"].children)if(t!==this["#arrow-contai...
    method #I (line 38) | #I(){let t=getComputedStyle(this["#arrow"]).getPropertyValue("--path-d...
    method #J (line 38) | #J(){this.setAttribute("aria-disabled",this.disabled),this.disabled?(t...
    method #Vn (line 38) | async#Vn(t){for(let e of t)if("attributes"===e.type&&"x-menuitem"===e....
    method #Mi (line 38) | #Mi(){this.#Kn()}
    method #Y (line 38) | #Y(t){t.target.closest("x-menu")||!1!==this.matches(":focus")||t.preve...
    method #P (line 38) | async#P(t){if(!(t.buttons>1))if(this.#qt())this.#Vt();else if(this.#Kt...
    method #qn (line 38) | #qn(t){t.preventDefault()}
    method #At (line 38) | #At(t){this.#Wt()}
    method #W (line 38) | #W(t){!1===t.defaultPrevented&&(this.querySelector(":scope > x-menu"),...
  class rr (line 38) | class rr extends HTMLElement{static observedAttributes=["value"];static#...
    method value (line 39) | get value(){let t=[];if(this.hasAttribute("value")){let e=this.getAttr...
    method value (line 39) | set value(t){this.setAttribute("value",t.join("+"))}
    method modKeys (line 39) | get modKeys(){return this.value.filter((t=>ar.includes(t)))}
    method normalKey (line 39) | get normalKey(){let t=this.value.find((t=>!1===ar.includes(t)));return...
    method constructor (line 39) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method attributeChangedCallback (line 39) | attributeChangedCallback(t,e,i){e!==i&&"value"===t&&this.#Xt()}
    method #Xt (line 39) | #Xt(){let t="";this.value;let e=this.modKeys,i=this.normalKey;if(nr){e...
  class or (line 39) | class or extends HTMLElement{static observedAttributes=["value","min","m...
    method min (line 40) | get min(){return this.hasAttribute("min")?parseFloat(this.getAttribute...
    method min (line 40) | set min(t){this.setAttribute("min",t)}
    method max (line 40) | get max(){return this.hasAttribute("max")?parseFloat(this.getAttribute...
    method max (line 40) | set max(t){this.setAttribute("max",t)}
    method value (line 40) | get value(){if(this.hasAttribute("value")){let t=this.getAttribute("va...
    method value (line 40) | set value(t){Array.isArray(t)?((t=t.map((t=>ki(t,this.min,this.max))))...
    method step (line 40) | get step(){return this.hasAttribute("step")?parseFloat(this.getAttribu...
    method step (line 40) | set step(t){this.setAttribute("step",t)}
    method ticks (line 40) | get ticks(){return this.hasAttribute("ticks")}
    method ticks (line 40) | set ticks(t){t?this.setAttribute("ticks",""):this.removeAttribute("tic...
    method disabled (line 40) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 40) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 40) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 40) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method range (line 40) | get range(){return this.hasAttribute("range")}
    method dragging (line 40) | get dragging(){return this.getAttribute("dragging")}
    method constructor (line 40) | constructor(){super(),this.#$=this.attachShadow({mode:"closed",delegat...
    method connectedCallback (line 40) | connectedCallback(){this.setAttribute("value",this.value),this.#ta.obs...
    method disconnectedCallback (line 40) | disconnectedCallback(){this.#ta.unobserve(this["#start-thumb"])}
    method attributeChangedCallback (line 40) | attributeChangedCallback(t,e,i){e!==i&&!1!==this.isConnected&&("value"...
    method #Zt (line 40) | #Zt(){this.#Xt()}
    method #yn (line 40) | #yn(){this.#Xt()}
    method #Cn (line 40) | #Cn(){this.#Xt()}
    method #ia (line 40) | #ia(){this.#Xt()}
    method #vt (line 40) | #vt(){this.#J()}
    method #ea (line 40) | #ea(){let t=this["#start-thumb"].getBoundingClientRect();t.width!==thi...
    method #Y (line 40) | #Y(t){if(!1===this.matches(":focus")){t.preventDefault();let e=Zn(this...
    method #Xs (line 40) | #Xs(t){if(t.buttons>1||!1===t.isPrimary)return;let e,i,s=null,{width:n...
    method #W (line 40) | #W(t){if("ArrowLeft"===t.code||"ArrowDown"===t.code){t.preventDefault(...
    method #Xt (line 40) | #Xt(){if(Array.isArray(this.value)){let[t,e]=this.value,i=(t-this.min)...
    method #J (line 40) | #J(){this.setAttribute("aria-disabled",this.disabled),this.disabled?(t...
  class lr (line 40) | class lr extends HTMLElement{static observedAttributes=["disabled"];stat...
    method disabled (line 41) | get disabled(){return!!this.hasAttribute("disabled")&&("increment"===t...
    method disabled (line 41) | set disabled(t){!0===t?this.setAttribute("disabled",""):!1===t?this.re...
    method constructor (line 41) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 41) | connectedCallback(){Gn.whenThemeReady.then((()=>{this.#na()})),Gn.addE...
    method disconnectedCallback (line 41) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R),t...
    method attributeChangedCallback (line 41) | attributeChangedCallback(t,e,i){e!==i&&"disabled"===t&&this.#vt()}
    method #na (line 41) | #na(){let t=getComputedStyle(this["#increment-arrow"]).getPropertyValu...
    method #vt (line 41) | #vt(){this.hasAttribute("disabled")&&(this.removeAttribute("pressed"),...
    method #Y (line 41) | #Y(t){let e=t.target.closest(".button"),i=null;if(e===this["#increment...
  class hr (line 41) | class hr extends HTMLElement{static observedAttributes=["value"];static#...
    method value (line 42) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
    method value (line 42) | set value(t){this.setAttribute("value",t)}
    method size (line 42) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 42) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 42) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 42) | connectedCallback(){this.#Vi()}
    method attributeChangedCallback (line 42) | attributeChangedCallback(t,e,i){e!==i&&"value"===t&&this.#Vi()}
    method #Vi (line 42) | #Vi(){this["#preview"].style.background=this.value}
  class dr (line 42) | class dr extends HTMLElement{static observedAttributes=["toggled","disab...
    method toggled (line 43) | get toggled(){return this.hasAttribute("toggled")}
    method toggled (line 43) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
    method mixed (line 43) | get mixed(){return this.hasAttribute("mixed")}
    method mixed (line 43) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
    method disabled (line 43) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 43) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 43) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 43) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 43) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 43) | connectedCallback(){jn(100).then((()=>this["#indicator-thumb"].style.t...
    method disconnectedCallback (line 43) | disconnectedCallback(){this["#indicator-thumb"].style.transition="none"}
    method attributeChangedCallback (line 43) | attributeChangedCallback(t,e,i){e!==i&&("toggled"===t?this.#xt():"disa...
    method #J (line 43) | #J(){this.setAttribute("role","switch"),this.setAttribute("aria-checke...
    method #xt (line 43) | #xt(){this.setAttribute("aria-checked",this.mixed?"mixed":this.toggled)}
    method #vt (line 43) | #vt(){this.#J()}
    method #Y (line 43) | #Y(t){if(t.buttons>1)t.preventDefault();else if(!1===this.matches(":fo...
    method #P (line 43) | async#P(t){this.mixed?this.mixed=!1:this.toggled=!this.toggled,this.di...
    method #W (line 43) | #W(t){"Enter"!==t.code&&"NumpadEnter"!==t.code&&"Space"!==t.code||(t.p...
  class cr (line 43) | class cr extends HTMLElement{static observedAttributes=["toggled","disab...
    method value (line 44) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
    method value (line 44) | set value(t){this.setAttribute("value",t)}
    method toggled (line 44) | get toggled(){return this.hasAttribute("toggled")}
    method toggled (line 44) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
    method disabled (line 44) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 44) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 44) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 44) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 44) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 44) | connectedCallback(){this.#J()}
    method attributeChangedCallback (line 44) | attributeChangedCallback(t,e,i){e!==i&&("toggled"===t||"disabled"===t)...
    method animateSelectionIndicator (line 44) | animateSelectionIndicator(t){return new Promise((async e=>{if("0px"!==...
    method #J (line 44) | #J(){this.setAttribute("role","tab"),this.setAttribute("aria-selected"...
    method #Y (line 44) | async#Y(t){if(!1===this.matches(":focus")){t.preventDefault();let e=Zn...
  class ur (line 44) | class ur extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
    method value (line 45) | get value(){let t=this.querySelector("x-tab[toggled]");return t?t.valu...
    method value (line 45) | set value(t){let e=[...this.querySelectorAll("x-tab")],i=null===t?null...
    method constructor (line 45) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 45) | connectedCallback(){this.setAttribute("role","tablist")}
    method #P (line 45) | async#P(t){if(!(t.buttons>1)&&t.target.closest("x-tab")){let e=this.qu...
    method #W (line 45) | #W(t){if("Enter"===t.code||"NumpadEnter"===t.code||"Space"===t.code){l...
  class pr (line 45) | class pr extends HTMLElement{static#z=Ns`<template><div id="container"><...
    method value (line 46) | get value(){return this.hasAttribute("value")?this.getAttribute("value...
    method value (line 46) | set value(t){null===t?this.removeAttribute("value"):this.setAttribute(...
    method removable (line 46) | get removable(){return this.hasAttribute("removable")}
    method removable (line 46) | set removable(t){t?this.setAttribute("removable",""):this.removeAttrib...
    method toggled (line 46) | get toggled(){return this.hasAttribute("toggled")}
    method toggled (line 46) | set toggled(t){t?this.setAttribute("toggled",""):this.removeAttribute(...
    method disabled (line 46) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 46) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method size (line 46) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 46) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 46) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 46) | connectedCallback(){Gn.whenThemeReady.then((()=>{this.#oa()})),this.#a...
    method disconnectedCallback (line 46) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R)}
    method #ra (line 46) | #ra(t){t.buttons<=1&&this.dispatchEvent(new CustomEvent("remove",{bubb...
    method #oa (line 46) | #oa(){let t=getComputedStyle(this["#remove-button"]).getPropertyValue(...
    method #aa (line 46) | #aa(){0===this["#scope-slot"].assignedElements().length?this.removeAtt...
  class mr (line 46) | class mr extends HTMLElement{static#z=Ns`<template><slot></slot></templa...
    method value (line 47) | get value(){return[...this.children].filter((t=>"x-tag"===t.localName)...
    method value (line 47) | set value(t){let e=[...this.children].filter((t=>"x-tag"===t.localName...
    method constructor (line 47) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method #Y (line 47) | #Y(t){if(t.buttons>1)t.preventDefault();else if(t.preventDefault(),!1=...
    method #P (line 47) | #P(t){let e=t.target.closest("x-tag");e&&!1===t.defaultPrevented&&(e.t...
    method #W (line 47) | #W(t){if(!1===t.defaultPrevented)if("Enter"===t.code||"NumpadEnter"===...
  class br (line 47) | class br extends HTMLElement{static observedAttributes=["spellcheck","di...
    method value (line 48) | get value(){return[...this.children].filter((t=>"x-tag"===t.localName)...
    method delimiter (line 48) | get delimiter(){return this.hasAttribute("delimiter")?this.getAttribut...
    method delimiter (line 48) | set delimiter(t){this.setAttribute("delimiter",t)}
    method spellcheck (line 48) | get spellcheck(){return this.hasAttribute("spellcheck")}
    method spellcheck (line 48) | set spellcheck(t){t?this.setAttribute("spellcheck",""):this.removeAttr...
    method mixed (line 48) | get mixed(){return this.hasAttribute("mixed")}
    method mixed (line 48) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
    method disabled (line 48) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 48) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method suggestions (line 48) | get suggestions(){return this.hasAttribute("suggestions")}
    method suggestions (line 48) | set suggestions(t){t?this.setAttribute("suggestions",""):this.removeAt...
    method size (line 48) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 48) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 48) | constructor(){super(),this.#$=this.attachShadow({mode:"closed",delegat...
    method connectedCallback (line 48) | connectedCallback(){this.#da(),this.#J()}
    method attributeChangedCallback (line 48) | attributeChangedCallback(t,e,i){e!==i&&("spellcheck"===t?this.#hs():"d...
    method clear (line 48) | clear(){let t=[...this.children].filter((t=>"x-tag"===t.localName));if...
    method getSuggestions (line 48) | getSuggestions(t){return[]}
    method #ua (line 48) | #ua(){let t=this["#input"].value;if(this["#input"].value="",this.#pa()...
    method #ma (line 48) | #ma(){this["#suggested-tags"].innerHTML="",!0===this["#suggestions-pop...
    method #Y (line 48) | #Y(t){t.target===this&&!1===t.defaultPrevented&&(t.preventDefault(),th...
    method #Xs (line 48) | #Xs(t){if(this.#ba=Nn(),t.target===this["#input"])this["#input"].value...
    method #ra (line 48) | #ra(t){t.stopPropagation();let e=t.target;e.remove(),this.#da(),this.d...
    method #hs (line 48) | #hs(){this["#input"].spellcheck=this.spellcheck}
    method #vt (line 48) | #vt(){this.#J()}
    method #la (line 48) | async#la(){this.dispatchEvent(new CustomEvent("textinputmodestart",{bu...
    method #ha (line 48) | #ha(){this.#ua(),this.#da(),this.dispatchEvent(new CustomEvent("textin...
    method #Tt (line 48) | #Tt(t){this["#input"].value.includes(this.delimiter)?(this.#ua(),this....
    method #W (line 48) | #W(t){if("Enter"===t.code||"NumpadEnter"===t.code)t.target===this["#in...
    method #Xt (line 48) | #Xt(){this.#da()}
    method #da (line 48) | #da(){let t=this.querySelector(":scope > x-label");t&&(t.hidden=this.v...
    method #J (line 48) | #J(){this.setAttribute("role","input"),this.setAttribute("aria-disable...
    method #pa (line 48) | #pa(){this["#input"].style.minWidth="0px",this["#input"].style.minWidt...
    method #ga (line 48) | #ga(t=0,e=this["#input"].value.length){this["#input"].selectionStart=t...
    method #ca (line 48) | #ca(t=!0){if(this.suggestions){let e=this["#input"].value;this["#input...
  class gr (line 48) | class gr extends HTMLElement{static observedAttributes=["value","spellch...
    method value (line 49) | get value(){return this["#editor"].textContent}
    method value (line 49) | set value(t){if(this["#editor"].textContent=t,this.matches(":focus")){...
    method spellcheck (line 49) | get spellcheck(){return this.hasAttribute("spellcheck")}
    method spellcheck (line 49) | set spellcheck(t){t?this.setAttribute("spellcheck",""):this.removeAttr...
    method minLength (line 49) | get minLength(){return this.hasAttribute("minlength")?parseInt(this.ge...
    method minLength (line 49) | set minLength(t){this.setAttribute("minlength",t)}
    method maxLength (line 49) | get maxLength(){return this.hasAttribute("maxlength")?parseInt(this.ge...
    method maxLength (line 49) | set maxLength(t){this.setAttribute("maxlength",t)}
    method required (line 49) | get required(){return this.hasAttribute("required")}
    method required (line 49) | set required(t){t?this.setAttribute("required",""):this.removeAttribut...
    method mixed (line 49) | get mixed(){return this.hasAttribute("mixed")}
    method mixed (line 49) | set mixed(t){t?this.setAttribute("mixed",""):this.removeAttribute("mix...
    method disabled (line 49) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 49) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method validation (line 49) | get validation(){return this.hasAttribute("validation")?this.getAttrib...
    method validation (line 49) | set validation(t){this.setAttribute("validation",t)}
    method size (line 49) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 49) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method empty (line 49) | get empty(){return this.hasAttribute("empty")}
    method error (line 49) | get error(){return this.hasAttribute("error")}
    method constructor (line 49) | constructor(){super(),this.#$=this.attachShadow({mode:"closed",delegat...
    method connectedCallback (line 49) | connectedCallback(){this.#J(),this.#zt(),"instant"===this.validation?t...
    method attributeChangedCallback (line 49) | attributeChangedCallback(t,e,i){e!==i&&("value"===t?this.#Zt():"spellc...
    method reportValidity (line 49) | reportValidity(){let t=new CustomEvent("beforevalidate",{bubbles:!1,ca...
    method setCustomValidity (line 49) | setCustomValidity(t){this.#rs=""===t?null:t,this.#Yt()}
    method #Yt (line 49) | #Yt(){let t=this.#rs||this.#Et;t?this.setAttribute("error",""):this.re...
    method #zt (line 49) | #zt(){0===this.value.length?this.setAttribute("empty",""):this.removeA...
    method #J (line 49) | #J(){this.setAttribute("role","input"),this.setAttribute("aria-disable...
    method #Zt (line 49) | #Zt(){this.value=this.hasAttribute("value")?this.getAttribute("value")...
    method #hs (line 49) | #hs(){this["#editor"].spellcheck=this.spellcheck}
    method #vt (line 49) | #vt(){this["#editor"].contentEditable=this.disabled?"false":"plaintext...
    method #ps (line 49) | #ps(){"instant"===this.validation?this.reportValidity():"auto"!==this....
    method #P (line 49) | #P(){this.#Yt()}
    method #Rt (line 49) | #Rt(){this.#fa=this.value,this.#Yt(),this.dispatchEvent(new CustomEven...
    method #Pt (line 49) | #Pt(){this.dispatchEvent(new CustomEvent("textinputmodeend",{bubbles:!...
    method #xa (line 49) | #xa(t){t.detail>=4&&document.execCommand("selectAll")}
    method #fn (line 49) | #fn(t){this.dispatchEvent(new CustomEvent("input",{bubbles:!0})),this....
  class fr (line 49) | class fr extends HTMLElement{static#z=Ns`<template><svg viewBox="0 0 100...
    method size (line 50) | get size(){let t=this.getAttribute("size");return"small"===t||"large"=...
    method size (line 50) | set size(t){"small"===t||"large"===t?this.setAttribute("size",t):this....
    method constructor (line 50) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 50) | connectedCallback(){this.#Xt(),this.#wa.observe(this)}
    method disconnectedCallback (line 50) | disconnectedCallback(){this.#wa.unobserve(this)}
    method #Xt (line 50) | #Xt(){if(this.hidden||this.checkVisibility&&!1===this.checkVisibility(...
  class xr (line 50) | class xr extends HTMLElement{static observedAttributes=["title"];static#...
    method maximized (line 51) | get maximized(){return this.hasAttribute("maximized")}
    method maximized (line 51) | set maximized(t){t?this.setAttribute("maximized",""):this.removeAttrib...
    method constructor (line 51) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method connectedCallback (line 51) | async connectedCallback(){Gn.addEventListener("themechange",this.#R=()...
    method disconnectedCallback (line 51) | disconnectedCallback(){Gn.removeEventListener("themechange",this.#R)}
    method #va (line 51) | #va(t){let e=t.target.closest("x-button");e&&this.dispatchEvent(new Cu...
    method #ka (line 51) | #ka(){for(let t of this["#buttons"].children){let e=getComputedStyle(t...
  class wr (line 51) | class wr extends HTMLElement{static observedAttributes=["disabled"];stat...
    method type (line 52) | get type(){return this.hasAttribute("type")?this.getAttribute("type"):...
    method type (line 52) | set type(t){this.setAttribute("type",t)}
    method disabled (line 52) | get disabled(){return this.hasAttribute("disabled")}
    method disabled (line 52) | set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribut...
    method opened (line 52) | get opened(){return this.hasAttribute("opened")}
    method constructor (line 52) | constructor(){super(),this.#$=this.attachShadow({mode:"closed"}),this....
    method attributeChangedCallback (line 52) | attributeChangedCallback(t,e,i){e!==i&&"disabled"===t&&this.disabled&&...
    method disconnectedCallback (line 52) | disconnectedCallback(){this.close(!1)}
    method open (line 52) | open(t,e=!0){return new Promise((async i=>{if(!1===this.opened&&this.i...
    method close (line 52) | close(t=!0){return new Promise((async e=>{if(!0===this.opened){if(this...
    method #_n (line 52) | #_n(t){let e=getComputedStyle(this).getPropertyValue("--align").trim()...

FILE: src/renderer/utils/bus.ts
  type Resolver (line 1) | type Resolver<T> = (value: T) => void;
  class MessageBus (line 3) | class MessageBus {
    method constructor (line 6) | constructor() {
    method send (line 10) | send<T>(channel: string, data: T): void {
    method waitFor (line 18) | waitFor<T>(channel: string): Promise<T> {

FILE: src/renderer/utils/capitalize.ts
  function capitalizeFirstLetter (line 1) | function capitalizeFirstLetter(val: string) {

FILE: src/renderer/utils/debounce.ts
  function debounce (line 1) | function debounce(func: Function, timeout = 300): Function {

FILE: src/renderer/utils/getFreeRDP.ts
  class FreeRDPInstallation (line 3) | class FreeRDPInstallation {
    method constructor (line 7) | constructor(file: string, defaultArgs: string[] = []) {
    method exec (line 12) | exec(args: string[]): Promise<{
    method stringifyExec (line 19) | stringifyExec(args: string[]): string {
  function getFreeRDP (line 33) | async function getFreeRDP() {

FILE: src/renderer/utils/icons.ts
  function addWinBoatIconCollection (line 9) | function addWinBoatIconCollection(extraIcons?: IconifyIcons) {

FILE: src/renderer/utils/interval.ts
  function setIntervalImmediately (line 4) | function setIntervalImmediately(func: Function, interval: number): NodeJ...

FILE: src/renderer/utils/log.ts
  function createLogger (line 5) | function createLogger(filePath: string) {

FILE: src/renderer/utils/openLink.ts
  function openLink (line 3) | function openLink(link: string) {
  function openAnchorLink (line 11) | function openAnchorLink(e: MouseEvent) {

FILE: src/renderer/utils/port.ts
  type PortType (line 5) | enum PortType {
  type Port (line 10) | type Port = number;
  type PortEntryOptions (line 12) | type PortEntryOptions = {
  class Range (line 17) | class Range {
    method constructor (line 35) | constructor(_tokenOrStart: number | string, _end?: number) {
    method toString (line 50) | toString(): string {
    method isRange (line 57) | static isRange(value: Port | Range): boolean {
  class ComposePortEntry (line 64) | class ComposePortEntry {
    method constructor (line 82) | constructor(_entryOrHostPort: string | number, _guestPort?: number, _o...
    method entry (line 104) | get entry(): string {
    method parseProtocol (line 109) | static parseProtocol(entry: string): PortEntryProtocol {
    method parsePortOrRange (line 123) | private static parsePortOrRange(token: string): Port | Range {
    method parsePort (line 136) | static parsePort(type: PortType, entry: string): Port | Range {
    method checkValidIP (line 151) | private static checkValidIP(ip: string, entry: string): string {
    method parseIP (line 163) | static parseIP(entry: string): string {
  class ComposePortMapper (line 191) | class ComposePortMapper {
    method constructor (line 201) | constructor(compose: ComposeConfig) {
    method pushPortEntry (line 215) | private pushPortEntry(entry: string | LongPortMapping) {
    method findGuestPortIndex (line 227) | private findGuestPortIndex(guestPort: number | string, protocol: PortE...
    method getShortPortMapping (line 244) | getShortPortMapping(guestPort: number | string, protocol: PortEntryPro...
    method setShortPortMapping (line 258) | setShortPortMapping(
    method hasShortPortMapping (line 286) | hasShortPortMapping(guestPort: string | number, protocol: PortEntryPro...
    method composeFormat (line 297) | get composeFormat(): string[] {
    method isPortOpen (line 314) | static async isPortOpen(port: number | string): Promise<boolean> {

FILE: src/renderer/window.d.ts
  type Specs (line 1) | type Specs = import("../types").Specs;
  type Window (line 3) | interface Window {

FILE: src/types.ts
  type Specs (line 5) | type Specs = {
  type InstallConfiguration (line 12) | type InstallConfiguration = {
  type WinApp (line 26) | type WinApp = {
  type CustomAppCallbacks (line 36) | type CustomAppCallbacks = {
  type PortEntryProtocol (line 40) | type PortEntryProtocol = "tcp" | "udp";
  type LongPortMapping (line 42) | type LongPortMapping = {
  type ComposeConfig (line 52) | type ComposeConfig = {
  type Metrics (line 91) | type Metrics = {
  type GuestServerVersion (line 108) | type GuestServerVersion = {
  type GuestServerUpdateResponse (line 114) | type GuestServerUpdateResponse = {
  type USBDevice (line 120) | type USBDevice = {
Condensed preview — 102 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,127K chars).
[
  {
    "path": ".github/FUNDING.yml",
    "chars": 890,
    "preview": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [u"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/1-bug-report.yml",
    "chars": 2632,
    "preview": "name: 🚨 Bug Report\ndescription: Report an issue that you've encountered\ntitle: \"[Bug] \"\nlabels:\n    - bug\n    - needs-tr"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/2-feature-request.yml",
    "chars": 1384,
    "preview": "name: 🧩 Feature Request\ndescription: Suggest a new feature, enhancement, or just share your idea\ntitle: \"[Feature] \"\nlab"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 184,
    "preview": "blank_issues_enabled: false\ncontact_links:\n    - name: Ask for Help\n      about: If you have any questions regarding Win"
  },
  {
    "path": ".github/renovate.json5",
    "chars": 474,
    "preview": "{\n    $schema: \"https://docs.renovatebot.com/renovate-schema.json\",\n    extends: [\"config:recommended\", \":disableRateLim"
  },
  {
    "path": ".github/workflows/release.yml",
    "chars": 9164,
    "preview": "name: Build WinBoat\npermissions:\n    contents: write\non:\n    push:\n        branches:\n            - main\n        tags:\n  "
  },
  {
    "path": ".gitignore",
    "chars": 188,
    "preview": "node_modules\ndist\nbuild\n\n.vscode\n.idea\n\nresult\n\npackage-lock.json\n# src/renderer/public/*\n\n# Custom\n# *.exe\ntemp\nguest_s"
  },
  {
    "path": ".npmrc",
    "chars": 18,
    "preview": "engine-strict=true"
  },
  {
    "path": ".prettierignore",
    "chars": 47,
    "preview": "\n# Ignore xel's files\n/src/renderer/public/xel\n"
  },
  {
    "path": ".prettierrc",
    "chars": 73,
    "preview": "{\n    \"tabWidth\": 4,\n    \"printWidth\": 120,\n    \"arrowParens\": \"avoid\"\n}\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 489,
    "preview": "The WinBoat code of conduct is derived from [Ladybird](https://github.com/LadybirdBrowser/ladybird/blob/master/CODE_OF_C"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 4297,
    "preview": "# WinBoat Contribution Guidelines\n\nThis document outlines the general contribution guidelines that apply to WinBoat.\n\n> "
  },
  {
    "path": "LICENSE",
    "chars": 1065,
    "preview": "MIT License\n\nCopyright (c) 2026 TibixDev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\no"
  },
  {
    "path": "README.md",
    "chars": 8565,
    "preview": "<div align=\"left\">\n  <table>\n    <tr>\n      <td>\n        <img src=\"icons/winboat_logo.svg\" alt=\"WinBoat Logo\" width=\"150"
  },
  {
    "path": "SECURITY.md",
    "chars": 946,
    "preview": "# Security Policy\n\nWinBoat takes security very seriously, if you believe you have found a security vulnerability within "
  },
  {
    "path": "build-guest-server.sh",
    "chars": 1429,
    "preview": "#!/bin/bash\nset -e\n\necho \"Building guest server...\"\n\n# Variables\nexport GOOS=windows\nexport GOARCH=amd64\nexport PACKAGE="
  },
  {
    "path": "data/usb.ids",
    "chars": 730501,
    "preview": "#\n#\tList of USB ID's\n#\n#\tMaintained by Stephen J. Gowdy <linux.usb.ids@gmail.com>\n#\tIf you have any new entries, please "
  },
  {
    "path": "electron-builder.json",
    "chars": 1251,
    "preview": "{\n    \"appId\": \"com.teabox.winboat\",\n    \"productName\": \"WinBoat\",\n    \"directories\": {\n        \"output\": \"dist\"\n    },\n"
  },
  {
    "path": "guest_server/RDPApps.reg",
    "chars": 998,
    "preview": "Windows Registry Editor Version 5.00\n\n    ; Disable RemoteApp allowlist so all applications can be used in Remote Deskto"
  },
  {
    "path": "guest_server/argon2.go",
    "chars": 1930,
    "preview": "package main\n\nimport (\n\t\"crypto/subtle\"\n\t\"encoding/base64\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"golang.org/x/crypto/argon2\"\n)\n"
  },
  {
    "path": "guest_server/go.mod",
    "chars": 466,
    "preview": "module winboat-server\n\ngo 1.24.2\n\nrequire (\n\tgithub.com/gorilla/mux v1.8.1\n\tgithub.com/rs/cors v1.11.1\n\tgithub.com/shiro"
  },
  {
    "path": "guest_server/go.sum",
    "chars": 2310,
    "preview": "github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.m"
  },
  {
    "path": "guest_server/install.bat",
    "chars": 1172,
    "preview": "@echo off\nset INSTALL_DIR=C:\\Program Files\\WinBoat\nset EXE_PATH=%INSTALL_DIR%\\winboat_guest_server.exe\nset TIME_SYNC_SCR"
  },
  {
    "path": "guest_server/main.go",
    "chars": 10185,
    "preview": "//go:build windows\n// +build windows\n\npackage main\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\t\""
  },
  {
    "path": "guest_server/nssm.sha1.txt",
    "chars": 40,
    "preview": "f280858dcfefabc1a9a006a57f6b266a5d1fde8e"
  },
  {
    "path": "guest_server/scripts/apps.ps1",
    "chars": 26771,
    "preview": "#Requires -Version 5.1\n#Requires -RunAsAdministrator\n\n#-----------------------------------------------------------------"
  },
  {
    "path": "guest_server/scripts/get-icon.ps1",
    "chars": 5830,
    "preview": "#Requires -Version 5.1\n\n# WinBoat - Icon Extraction Helper\n#\n# Usage:\n#   powershell -ExecutionPolicy Bypass -File icon."
  },
  {
    "path": "guest_server/scripts/time-sync.bat",
    "chars": 58,
    "preview": "@echo off\nnet stop w32time\nnet start w32time\nw32tm /resync"
  },
  {
    "path": "guest_server/scripts/update.ps1",
    "chars": 7284,
    "preview": "param(\n    [Parameter(Mandatory=$true)]\n    [string]$AppPath,\n    \n    [Parameter(Mandatory=$true)]\n    [string]$UpdateF"
  },
  {
    "path": "guest_server/securekey.go",
    "chars": 4526,
    "preview": "package main\n\nimport (\n\t\"fmt\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/windows\"\n\t\"golang.org/x/sys/windows/registry\"\n)\n\nvar (\n\tadva"
  },
  {
    "path": "guest_server/util.go",
    "chars": 456,
    "preview": "//go:build windows\n// +build windows\n\npackage main\n\nimport (\n\t\"log\"\n\t\"os\"\n)\n\nfunc checkErr(err error) {\n\tif err != nil {"
  },
  {
    "path": "package.json",
    "chars": 1848,
    "preview": "{\n    \"name\": \"winboat\",\n    \"version\": \"0.9.0\",\n    \"description\": \"Windows for Penguins\",\n    \"type\": \"module\",\n    \"m"
  },
  {
    "path": "postcss.config.ts",
    "chars": 93,
    "preview": "export default {\n    plugins: {\n        tailwindcss: {},\n        autoprefixer: {},\n    },\n};\n"
  },
  {
    "path": "scripts/build.ts",
    "chars": 1012,
    "preview": "import Path from \"path\";\nimport Chalk from \"chalk\";\nimport FileSystem from \"fs\";\nimport * as Vite from \"vite\";\nimport co"
  },
  {
    "path": "scripts/dev-server.ts",
    "chars": 3477,
    "preview": "process.env.NODE_ENV = \"development\";\n\nimport * as Vite from \"vite\";\nimport ChildProcess, { type ChildProcessWithoutNull"
  },
  {
    "path": "scripts/private/tsc.ts",
    "chars": 614,
    "preview": "import ChildProcess from \"child_process\";\nimport Chalk from \"chalk\";\n\nexport default function compile(directory) {\n    r"
  },
  {
    "path": "src/main/main.ts",
    "chars": 4263,
    "preview": "import { app, BrowserWindow, ipcMain, session, dialog } from \"electron\";\nimport { join } from \"path\";\nimport { initializ"
  },
  {
    "path": "src/main/static/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/main/tsconfig.json",
    "chars": 351,
    "preview": "{\n    \"compilerOptions\": {\n        \"target\": \"esnext\",\n        \"module\": \"nodenext\",\n        \"strict\": true,\n        \"es"
  },
  {
    "path": "src/renderer/App.vue",
    "chars": 14179,
    "preview": "<template>\n    <main \n        class=\"overflow-hidden relative w-screen h-screen\"\n        :class=\"{ animationsDisabled: '"
  },
  {
    "path": "src/renderer/assets/LICENSE.txt",
    "chars": 1065,
    "preview": "MIT License\n\nCopyright (c) 2026 TibixDev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\no"
  },
  {
    "path": "src/renderer/components/ConfigCard.vue",
    "chars": 5177,
    "preview": "<template>\n    <x-card\n        class=\"flex flex-row justify-between items-center p-2 py-3 my-0 w-full backdrop-blur-xl b"
  },
  {
    "path": "src/renderer/components/WBContextMenu.vue",
    "chars": 4710,
    "preview": "<!--\n  WBContextMenu - Replacement for broken xel contextmenu component\n  This is a working reimplementation of the xel "
  },
  {
    "path": "src/renderer/components/WBMenuItem.vue",
    "chars": 1914,
    "preview": "<!--\n  WBMenuItem - Replacement for broken xel menuitem component\n  This is a working reimplementation of the xel toolki"
  },
  {
    "path": "src/renderer/data/appicons.ts",
    "chars": 37663,
    "preview": "import { InternalApps } from \"../data/internalapps\";\n\nexport const DEFAULT_ICON = \"DEFAULT_ICON\";\n\nexport const AppIcons"
  },
  {
    "path": "src/renderer/data/docker.ts",
    "chars": 1583,
    "preview": "import { ComposeConfig } from \"../../types\";\nimport { RESTART_ON_FAILURE } from \"../lib/constants\";\n\nexport const DOCKER"
  },
  {
    "path": "src/renderer/data/internalapps.ts",
    "chars": 151,
    "preview": "export const InternalApps = {\n    WINDOWS_DESKTOP: \"WINDOWS_DESKTOP\",\n    WINDOWS_EXPLORER: \"WINDOWS_EXPLORER\",\n    NOVN"
  },
  {
    "path": "src/renderer/data/podman.ts",
    "chars": 1500,
    "preview": "import { ComposeConfig } from \"../../types\";\nimport { RESTART_ON_FAILURE } from \"../lib/constants\";\n\nexport const PODMAN"
  },
  {
    "path": "src/renderer/directives/autoscroll.ts",
    "chars": 2067,
    "preview": "// auto-scroll.ts\nimport type { Directive, DirectiveBinding } from \"vue\";\n\ninterface ScrollOptions {\n    behavior?: Scro"
  },
  {
    "path": "src/renderer/index.css",
    "chars": 756,
    "preview": "@import url(\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap\");\n@tailwin"
  },
  {
    "path": "src/renderer/index.html",
    "chars": 583,
    "preview": "<!doctype html>\n<html lang=\"en\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <meta name=\"viewport\" content=\"widt"
  },
  {
    "path": "src/renderer/lib/config.ts",
    "chars": 7194,
    "preview": "const fs: typeof import(\"fs\") = require(\"node:fs\");\nconst path: typeof import(\"path\") = require(\"node:path\");\nimport { t"
  },
  {
    "path": "src/renderer/lib/constants.ts",
    "chars": 2116,
    "preview": "const os: typeof import(\"os\") = require(\"node:os\");\nconst path: typeof import(\"path\") = require(\"node:path\");\n\n// Should"
  },
  {
    "path": "src/renderer/lib/containers/common.ts",
    "chars": 1869,
    "preview": "import { PortEntryProtocol } from \"../../../types\";\nimport { ContainerManager } from \"./container\";\nimport { DockerConta"
  },
  {
    "path": "src/renderer/lib/containers/container.ts",
    "chars": 1543,
    "preview": "import { ComposeConfig } from \"../../../types\";\nimport { WINBOAT_DIR } from \"../constants\";\nimport { createLogger } from"
  },
  {
    "path": "src/renderer/lib/containers/docker.ts",
    "chars": 7845,
    "preview": "import { ComposeConfig } from \"../../../types\";\nimport { DOCKER_DEFAULT_COMPOSE } from \"../../data/docker\";\nimport { cap"
  },
  {
    "path": "src/renderer/lib/containers/podman.ts",
    "chars": 7314,
    "preview": "import { ComposeConfig } from \"../../../types\";\nimport { PODMAN_DEFAULT_COMPOSE } from \"../../data/podman\";\nimport { WIN"
  },
  {
    "path": "src/renderer/lib/exec-helper.ts",
    "chars": 1202,
    "preview": "const { execFile }: typeof import(\"child_process\") = require(\"node:child_process\");\nconst { promisify }: typeof import(\""
  },
  {
    "path": "src/renderer/lib/install.ts",
    "chars": 12983,
    "preview": "import { type InstallConfiguration } from \"../../types\";\nimport { WINBOAT_DIR } from \"./constants\";\nimport { createLogge"
  },
  {
    "path": "src/renderer/lib/migrate.ts",
    "chars": 2866,
    "preview": "import { createLogger } from \"../utils/log\";\nimport { ComposePortMapper, Range } from \"../utils/port\";\nimport { WinboatC"
  },
  {
    "path": "src/renderer/lib/qmp.ts",
    "chars": 7916,
    "preview": "import { WINBOAT_DIR } from \"./constants\";\nimport { createLogger } from \"../utils/log\";\nconst path: typeof import(\"path\""
  },
  {
    "path": "src/renderer/lib/specs.ts",
    "chars": 3075,
    "preview": "import { getFreeRDP } from \"../utils/getFreeRDP\";\nimport { ContainerSpecs } from \"./containers/common\";\nconst fs: typeof"
  },
  {
    "path": "src/renderer/lib/usbmanager.ts",
    "chars": 21041,
    "preview": "import { type Device } from \"usb\";\nimport { type Ref, ref, watch } from \"vue\";\nimport { logger, Winboat } from \"./winboa"
  },
  {
    "path": "src/renderer/lib/winboat.ts",
    "chars": 30535,
    "preview": "import { ref, type Ref } from \"vue\";\nimport { WINBOAT_DIR } from \"./constants\";\nimport type {\n    ComposeConfig,\n    Cus"
  },
  {
    "path": "src/renderer/main.ts",
    "chars": 1089,
    "preview": "import { createApp } from \"vue\";\nimport App from \"./App.vue\";\nimport { router } from \"./router\";\nimport { MotionPlugin }"
  },
  {
    "path": "src/renderer/public/xel/CHANGELOG.md",
    "chars": 18335,
    "preview": "\n# CHANGELOG\n\n## 0.36.2 (2025-07-28)\n\n- [Fixed] `<x-menubar>` fails to update correctly on Firefox when using `slot=\"asi"
  },
  {
    "path": "src/renderer/public/xel/LICENSE.md",
    "chars": 15874,
    "preview": "\n# INTRO\n\nThis document defines the licensing terms for the Xel package distributed on NPM\nand the Xel source code distr"
  },
  {
    "path": "src/renderer/public/xel/README.md",
    "chars": 869,
    "preview": "\n# Xel ([DEMO](https://xel-toolkit.org))\n\n[![npm downloads](http://img.shields.io/npm/dt/xel.svg)](https://www.npmjs.org"
  },
  {
    "path": "src/renderer/public/xel/package.json",
    "chars": 587,
    "preview": "{\"name\":\"xel\",\"version\":\"0.36.2\",\"type\":\"module\",\"browser\":\"xel.js\",\"description\":\"Widget toolkit for building native-li"
  },
  {
    "path": "src/renderer/public/xel/themes/adwaita-dark.css",
    "chars": 37614,
    "preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
  },
  {
    "path": "src/renderer/public/xel/themes/adwaita.css",
    "chars": 37744,
    "preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
  },
  {
    "path": "src/renderer/public/xel/themes/base.css",
    "chars": 25578,
    "preview": "\n\n/*****************************************************************************************************************/\n\n/"
  },
  {
    "path": "src/renderer/public/xel/themes/cupertino-dark.css",
    "chars": 38523,
    "preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
  },
  {
    "path": "src/renderer/public/xel/themes/cupertino.css",
    "chars": 38911,
    "preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
  },
  {
    "path": "src/renderer/public/xel/themes/fluent-dark.css",
    "chars": 48869,
    "preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
  },
  {
    "path": "src/renderer/public/xel/themes/fluent.css",
    "chars": 48595,
    "preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
  },
  {
    "path": "src/renderer/public/xel/themes/material-dark.css",
    "chars": 47105,
    "preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
  },
  {
    "path": "src/renderer/public/xel/themes/material.css",
    "chars": 45786,
    "preview": ":root{width:100%;height:100%;margin:0;interpolate-size:allow-keywords;font-family:sans-serif;line-height:1.6}body{width:"
  },
  {
    "path": "src/renderer/public/xel/xel.js",
    "chars": 454104,
    "preview": "if(!1===MouseEvent.prototype.hasOwnProperty(\"pointerType\")&&Object.defineProperty(MouseEvent.prototype,\"pointerType\",{ge"
  },
  {
    "path": "src/renderer/router.ts",
    "chars": 1219,
    "preview": "import { createMemoryHistory, createRouter, RouteRecordRaw } from \"vue-router\";\n\nimport Home from \"./views/Home.vue\";\nim"
  },
  {
    "path": "src/renderer/tsconfig.json",
    "chars": 457,
    "preview": "{\n    \"compilerOptions\": {\n        \"target\": \"esnext\",\n        \"useDefineForClassFields\": true,\n        \"module\": \"esnex"
  },
  {
    "path": "src/renderer/utils/bus.ts",
    "chars": 562,
    "preview": "type Resolver<T> = (value: T) => void;\n\nexport class MessageBus {\n    private readonly resolvers: Map<string, Resolver<a"
  },
  {
    "path": "src/renderer/utils/capitalize.ts",
    "chars": 126,
    "preview": "export function capitalizeFirstLetter(val: string) {\n    return String(val).charAt(0).toUpperCase() + String(val).slice("
  },
  {
    "path": "src/renderer/utils/debounce.ts",
    "chars": 316,
    "preview": "export function debounce(func: Function, timeout = 300): Function {\n    let timer: NodeJS.Timeout;\n    return (...args: "
  },
  {
    "path": "src/renderer/utils/getFreeRDP.ts",
    "chars": 1263,
    "preview": "import { execFileAsync, stringifyExecFile } from \"../lib/exec-helper\";\n\nexport class FreeRDPInstallation {\n    file: str"
  },
  {
    "path": "src/renderer/utils/icons.ts",
    "chars": 593,
    "preview": "import { addCollection } from \"@iconify/vue\";\nimport { type IconifyIcons } from \"@iconify/types\";\n\n/**\n * Creates custom"
  },
  {
    "path": "src/renderer/utils/interval.ts",
    "chars": 243,
    "preview": "/**\n * Sets an interval but also executes `func` immediately\n */\nexport function setIntervalImmediately(func: Function, "
  },
  {
    "path": "src/renderer/utils/log.ts",
    "chars": 1191,
    "preview": "import { createConsola } from \"consola\";\nconst { writeFileSync, appendFileSync, mkdirSync }: typeof import(\"fs\") = requi"
  },
  {
    "path": "src/renderer/utils/openLink.ts",
    "chars": 469,
    "preview": "const { shell }: typeof import(\"@electron/remote\") = require(\"@electron/remote\");\n\nexport function openLink(link: string"
  },
  {
    "path": "src/renderer/utils/port.ts",
    "chars": 11278,
    "preview": "import { type ComposeConfig, LongPortMapping, type PortEntryProtocol } from \"../../types\";\n\nconst { createServer, isIPv4"
  },
  {
    "path": "src/renderer/views/About.vue",
    "chars": 1201,
    "preview": "<template>\n    <div class=\"flex flex-col items-center justify-center h-[calc(100vh-9rem)]\">\n        <img class=\"w-48\" sr"
  },
  {
    "path": "src/renderer/views/Apps.vue",
    "chars": 22021,
    "preview": "<template>\n    <div>\n        <dialog ref=\"addCustomAppDialog\">\n            <h3 class=\"mb-2\">{{ currentAppForm.Source ==="
  },
  {
    "path": "src/renderer/views/Blank.vue",
    "chars": 143,
    "preview": "<template>\n    <div class=\"flex justify-center items-center mt-40\">\n        <x-throbber class=\"w-16 h-16\"></x-throbber>\n"
  },
  {
    "path": "src/renderer/views/Config.vue",
    "chars": 37935,
    "preview": "<template>\n    <div class=\"flex flex-col gap-10 overflow-x-hidden\" :class=\"{ hidden: !maxNumCores }\">\n        <div>\n    "
  },
  {
    "path": "src/renderer/views/Home.vue",
    "chars": 11623,
    "preview": "<template>\n    <div>\n        <x-card\n            class=\"bg-neutral-800/20 backdrop-brightness-150 backdrop-blur-xl flex "
  },
  {
    "path": "src/renderer/views/Migration.vue",
    "chars": 2286,
    "preview": "<template>\n    <div class=\"flex flex-col gap-2 justify-center items-center mt-12\">\n        <div id=\"stepIcon\" class=\"fle"
  },
  {
    "path": "src/renderer/views/SetupUI.vue",
    "chars": 60540,
    "preview": "<template>\n    <div class=\"relative size-full p-16 overflow-hidden\">\n        <div class=\"size-full rounded-3xl bg-[#1F1F"
  },
  {
    "path": "src/renderer/vite-env.d.ts",
    "chars": 195,
    "preview": "/// <reference types=\"vite/client\" />\n\ndeclare module \"*.vue\" {\n    import type { DefineComponent } from \"vue\";\n    cons"
  },
  {
    "path": "src/renderer/window.d.ts",
    "chars": 347,
    "preview": "type Specs = import(\"../types\").Specs;\n\ninterface Window {\n    electronAPI: {\n        executeShellCommand: (command: str"
  },
  {
    "path": "src/types.ts",
    "chars": 3089,
    "preview": "import { type WindowsVersionKey } from \"./renderer/lib/constants\";\nimport { ContainerRuntimes } from \"./renderer/lib/con"
  },
  {
    "path": "tailwind.config.ts",
    "chars": 297,
    "preview": "/** @type {import('tailwindcss').Config} */\nexport default {\n    content: [\"./src/renderer/index.html\", \"./src/renderer/"
  },
  {
    "path": "vite.config.ts",
    "chars": 926,
    "preview": "import path from \"path\";\nimport vuePlugin from \"@vitejs/plugin-vue\";\nimport { defineConfig } from \"vite\";\nimport * as pa"
  }
]

About this extraction

This page contains the full source code of the TibixDev/winboat GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 102 files (1.9 MB), approximately 681.7k tokens, and a symbol index with 1630 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!