MVTec Software Manager

version 1.6.3.309
72212a94be984fa62f90b2647ac340b6b3bdd298

About the MVTec Software Manager

The MVTec Software Manager (SOM) is an installation manager for software packages. It starts a local web server, provides access to a remote catalog of products, and supports the following features:

  • downloading, verifying, and installing packages
  • switching between different package versions (upgrade/downgrade)
  • offline operation once the packages have been downloaded
  • command-line operation
  • launch pad

Additionally, the Software Manager detects MVTec products that have been installed by other means, and allows to switch between different versions of installed products.

Installing Software Manager

The Software Manager is a self-contained application and requires no installation at all. Nonetheless, it will offer to install itself upon startup, and add both a desktop icon and a start menu entry for SOM. If you choose to perform the installation, you may delete the original SOM binary as soon as the current session is exited. Otherwise, just close the "Welcome" dialog, and continue to use SOM without installation.

If another version of SOM is already installed, that version will be upgraded.

Once installed, SOM can manage itself from the page "Installed". However, if you completely uninstall SOM, it can only be re-installed as long as the current session is still running (or by running the original binary again).

Running Software Manager

In the majority of cases the Software Manager should only be run with the current user’s standard permissions. Since SOM version 1.2, it is in general no longer required to run SOM in system mode, i.e. with admin privileges, to install products for all users. For more information on how SOM handles admin privileges please refer to the section Admin privileges.

The only exception when it might still be required to start SOM with admin privileges is, when SOM is running in headless mode or when using the command line interface. Please see the corresponding sections Headless operation and Command line usage for more information.

When starting SOM a web server is started and your default browser should open the starting page automatically. If your browser does not come up, start "MVTec Software Manager CLI", enter som, and use the displayed address in any HTML5-compliant browser on your system. Since version 1.2.3, SOM will also register a tray icon with your operating system, to make it easier to keep track of running SOM instances and access the corresponding frontend. For more details see the section Tray icon.

By default, the SOM frontend needs to be unlocked before it can be used. Whenever SOM itself opens the frontend, this is done automatically. To learn more about this feature, please see the section Security.

On systems, where desktop or menu shortcuts are not available (e.g., embedded systems), SOM can be started from the command line:

Linux
$HOME/MVTec/SoftwareManager/som     # "MVTec Software Manager"
$HOME/MVTec/SoftwareManager/som cli # "MVTec Software Manager CLI"
Windows
%LOCALAPPDATA%\Programs\MVTec\SoftwareManager\som.exe     # "MVTec Software Manager"
%LOCALAPPDATA%\Programs\MVTec\SoftwareManager\som.exe cli # "MVTec Software Manager CLI"

Headless operation

On systems that lack a graphical environment, or are simply not powerful enough to run a full-blown HTML5-compliant browser, the Software Manager can either be controlled from the command line as described in the section Command line usage, or from the browser of another machine. Suppose SOM is running on a headless machine "tiny", and you want to control it from a more capable machine "bigshot". Login on "tiny", and issue the following command to start the SOM server:

$HOME/MVTec/SoftwareManager/som --hostname tiny -n # start server on tiny

The command line option "--hostname tiny" makes the server listen to other machines on the network, while "-n" prevents SOM from attempting to start up a browser. Enter the address displayed on the terminal of "tiny" into a browser running on "bigshot". Please make sure to copy the address including the unlock token. For more information on how to unlock the frontend please see section Security.

The headless mode has the following limitations:

  1. The running SOM will not be able to gain admin privileges using Windows UAC or polkit. Therefore, if you want SOM to perform actions that require admin privileges in headless mode, you will need to start SOM with these privileges. On Linux based systems this can be done using sudo, and on Windows systems use "Run as Administrator" when starting Software Manager.

Windows Defender Firewall warning

Upon the first start of SOM, the following warning may be issued by Windows Defender:

Windows Defender Firewall has blocked some features of this app

You can safely click "Cancel" unless you intend to access the SOM web server from another machine in your network. In that case, click "Allow access". For security reasons, SOM only listens to localhost (the machine it is running on) by default. To accept connections from other machines, replace "localhost" with your machine name in the settings of the Software Manager.

Startup problems

In case the Software Manager refuses to start at all, try to run it from the command line:

  • Start "MVTec Software Manager CLI".
  • Enter the command som.
MVTec Software Manager 1.6.3.309
{rev-commit}
mode: user, user: foo, os: windows
listening on http://localhost:8188

The above is the expected output from a successful SOM startup. It shows the tool name, the version number, the commit on which this version is based, the mode (user or system), username, operating system, and the URL to access the current session. Any other output may indicate a problem during startup.

By default, SOM listens on port 8188 for incoming HTTP connections. If this port is in use on your system, use the command line option --port, and configure another default port in the settings.

Connecting through an HTTP proxy

On systems that do not support a direct connection to the internet, the Software Manager can be instructed to connect through an HTTP proxy. Open the settings, enter your proxy into the "HTTP Proxy" field, and confirm your change with Enter. Note that SOM has to be restarted to actually use the proxy.

If your proxy requires authorization with a username and password, the proxy can be prefixed with username:password@, e.g., foo:secret@server:port. Specifying the proxy this way will keep your password stored in the settings file. If this is undesirable, you can start a SOM session with a temporary proxy setting:

som -P http://foo:secret@server:port

You can also specify the proxy in an environment variable HTTP_PROXY, which is used if the "HTTP Proxy" field in the settings of SOM is left empty.

HTTP_PROXY=http://foo:secret@server:port

For proxies with NTLM authentication, we suggest to install a forwarding proxy on your machine, and specify that proxy in SOM. One of the following third-party tools should work in this scenario:

Diagram

Usage

Upon server startup, the Software Manager is controlled entirely from your browser. The different pages that can be accessed via tabs in the header of each page are described in the following sections.

Security

For security reasons the communication between front- and backend of the Software Manager is secured by default, and only a frontend that has been unlocked can communicate with the backend. The frontend will be unlocked when:

  • it is opened by SOM itself
  • it is opened by the tray icon
  • an unlock token is provided as part of the URL, e.g. http://localhost:8188?token=lBGu-ogqHOOSZ7Tj
  • an unlock token is entered via the login form of the frontend

An unlock token is shown on the console output of SOM during startup, or can be copied to clipboard from the tray icon menu.

As an alternative to the unlock tokens, a password can be set that can be used instead of an unlock token in the login form. A password can either be set temporarily by the command line option --password, by the command som config server.password <password>, by manually changing the som.config file or in the settings dialog of the frontend. Please note that SOM will only save a hash of the password, so SOM will not be able to retrieve the password in plaintext if you lost it. However, you can always set a new password using one of the methods mentioned above.

The whole security feature can also be disabled with the command line option --insecure.

Tray icon

When the Software Manager is running, a SOM icon is shown in the tray region of your operating system/window manager. This icon and the menu, that can be accessed by a right-click on the icon, allow to open the frontend, or shutdown SOM completely. If any installed products can be updated, the icon changes in the following way:

mvtec software manager
All products are up-to-date.
mvtec software manager notification
At least one installed product can be updated.

Admin privileges

When installing packages, the Software Manager might require admin privileges when executing the install-hook of packages, or when extracting files to a location where the user that started SOM does not have write permission. For tasks that require admin privileges, SOM will try to gain these privileges by using the respective functionality of the operating system, and it will drop these privileges as soon as they are no longer required. On Windows systems, this will happen through the Windows User Account Control and on Linux based systems by using polkit.

Whenever possible, actions that require admin privileges will be marked in the frontend with the following symbol:

admin
Signifies that the action will require admin privileges.

Login

To download products with the Software Manager, you need to log in with your "MVLogin" account. You can only log in via the web interface, when SOM is running on the same device you are using to access the web interface, or using the CLI. In order to log in, using the web interface, click the button MVLogin. How to log in using the CLI is described in the section Command line usage. You will also be redirected to the login when a download is started, and you were not already logged in. After the login, the consent for retrieving user information and downloading MVTec products via SOM has to be given.

Offline installations are not affected and can still be used without login, as well as installations of packages that have already been downloaded and are available in the local repository.

Installed

This page lists installed products. Both products installed with the Software Manager and products installed with other MVTec installers are listed here. Depending on the actual installation, additional buttons for the execution of applications may appear for each product.

bell
Signifies available updates for the corresponding product. By clicking on the icon, the "Manage packages" dialog is opened with the new packages versions selected.
threedots
Customize product installed with SOM. Using this pop-up menu, the installed product can be updated (if new packages are available) or uninstalled completely. Using the entry "Manage packages" the installation may be customized, i.e., individual packages may be added or removed.

Once you select an installation, additional information for this installation will be shown on the right side of the screen. The additional information consists of the selected "profile" for the installation, a toggle switch to activate the installation (available only on Windows) and installation specific buttons to open the documentation or release notes of the product for example.

Active Installations

After installing a product, the Software Manager activates the installation by default by setting environment variables and by associating file extensions with executables of the product. For each product (e.g. HALCON) only one installation can be active at any given time. If you have multiple versions of the same product installed, you can, however, switch the active version by selecting the product on the Installed page, and activating it using the "Active installation" toggle switch in the additional information area on the top right.

Profiles

Profiles allow customization of the system environment for an installation to meet specific requirements. The additional information section on the top right of the Installed page lets you switch between different profiles for an installation by a dropdown selection. The same dropdown selection also allows you to manage profiles for an installation by selecting the option 'Edit profile'.

Each profile lets you change environment variables and associations between file extensions and executables of the product. Environment variables are further distinguished between product and profile variables. As the name suggests, product variables are defined by the product itself (e.g. HALCONROOT) and their value can not be changed by a profile. However, you can choose to disable a product variable for a profile using the provided checkbox. Profile variables can be set to arbitrary values. Using the + button additional user defined variables can be added.

Available

This page provides a list of available products from the configured product catalog. It is the starting page if no products are installed by the Software Manager. Installed products move over to the page "Installed". For each product you can choose to install it just for the current user, or for all users on your system. The latter will usually require admin privileges, see Admin privileges for details. SOM also allows to create custom installers for all products listed.

Custom Installers

Custom installers let you decide upon creation which packages should be part of the installer. You can create a custom installer for every product found on the available product page. Each product contains a split button for installing the product and when expanding the button you can select the option to create a custom installer. Possible use cases for this feature are the creation of installers for archiving, or the creation of runtime installers, where you decide which packages should be part of the installer.

A custom installer is created as a zip archive that can be used like any other Software Manager offline installers. It will contain the package archives you selected and the newest SOM version currently available. SOM allows to create custom installers for any target architecture the product is available.

Settings ic settings white 48dp

The settings page provides options that are stored persistently. Commit your changes by pressing Enter when the cursor is in a text field, or click Save changes. Options marked with an asterisk (*) require the Software Manager to be restarted.

Catalog URL

Specifies the location from where the product catalog is downloaded.

Default: https://packages.mvtec.com/som.catalog

HTTP proxy
Specifies the address of an HTTP proxy. Leave at the default (empty) value for a direct internet connection.
Host name *

Specifies the host name SOM listens on for incoming connections. The default value “localhost” will only accept local connections. Set this to the name of the machine SOM is running on to accept connections from other machines in your network. Please note that using the machine name will let SOM listen on all the machine’s IP addresses (same as specifying -H 0.0.0.0). This might be undesired if the machine can be reached publicly. Alternatively, use a private IP address of the machine to prevent external access while still allowing internal access from other machines on the network.

Default: localhost

Port number *

Specifies the port number SOM is listening on. If port number 0 is specified, SOM will select a free port automatically.

Default: 8188

The following entries are path names for various file locations used by SOM. Path names may contain environment variables, which always have to be prefixed with $. On Windows as an example, use $PROGRAMFILES instead of %PROGRAMFILES%. Clicking on the folder button opens the corresponding directory in a file manager.

There are two versions for the location of program files and data files. One is for installations that are for the current user only, the other is for installations that are for all users on the system. Once products are installed, the installation targets in either mode should not be changed, or havoc may ensue.

Documentation ic help outline white 48dp

This page displays the documentation of the Software Manager.

Language

Here, the language of the web interface can be selected. The documentation is available in English and German.

Lock lock

This button locks the Software Manager frontend. After locking the frontend, no actions can be performed until it is unlocked again using an unlock token or password. For more details please refer to the section Security.

Shutdown Software Manager

This button shuts down the the Software Manager web server. Any installations that are still in progress will be aborted. If the browser window is simply closed, SOM keeps running in the background, and the session is still accessible by double-clicking "MVTec Software Manager" again.

Notes about offline usage

Once a particular package has been downloaded, it is kept in a local repository, and it can be installed without requiring an internet connection. Depending on the amount of installed software packages, the repository may grow quite large over time, and the contents can safely be deleted if disk space becomes an issue. Missing packages will be downloaded again if required unless they are no longer provided at the remote catalog URL.

Command line options

Software Manager supports the following command line options (names in parentheses refer to the corresponding entry in the settings):

-H string | --hostname string (Host name)

Specifies the host name the Software Manager listens on for incoming connections. The default value “localhost” will only accept local connections. Set this to the name of the machine SOM is running on to accept connections from other machines in your network. Please note that using the machine name will let SOM listen on all the machine’s IP addresses (same as specifying -H 0.0.0.0). This might be undesired if the machine can be reached publicly. Alternatively, use -H with a private IP address of the machine to prevent external access while still allowing internal access from other machines on the network.

Default: localhost

-P string | --proxy string (HTTP proxy)
Specifies the address of an HTTP proxy. Leave at the default (empty) value for a direct internet connection.
--accept string
Some packages contain an EULA, that must be accepted before the installation is performed. When trying to install such a package from the command line, SOM will print the EULA on the console, along with an identification hash specific for its contents. To acknowledge the terms of the EULA, pass the hash to the parameter “--accept”.
-c string | --catalog string (Catalog URL)

Specifies the location from where the product catalog is downloaded.

Default: https://packages.mvtec.com/som.catalog

--data string (Install target (data))

Specifies the base directory where data packages are installed. In system mode, this directory should be writable by all users.

Default (user mode): $HOME/MVTec
Default (system mode): /opt/MVTec

-f string | --feed string
Specifies the URL of a specific feed, i.e., a distinct product. This parameter is primarily used for the installation or removal of packages from the command line. If no additional command (list, install, or remove) is specified on the command line, SOM starts as usual, and opens the configuration page of the specified product.
-h | --help
Print a list of command line options to the console and exit.
-n | --nogui
If specified, SOM will not attempt to start the default browser.
-p value | --port value (Port number)

Specifies the port number SOM is listening on. If port number 0 is specified, SOM will select a free port automatically.

Default: 8188

--programs string (Install target (programs))

Specifies the base directory where program packages are installed.

Default (user mode): $HOME/MVTec
Default (system mode): /opt/MVTec

-r string | --repository string (Repository path)

Specifies the base directory for downloaded packages. You may specify a shared directory to supply downloaded packages to multiple users. However, it is your responsibility to ensure that two SOM sessions running at the same time do not download the same files concurrently. The local repository behaves like a browser cache. The contents of this directory can safely be deleted. SOM will download missing files again when needed.

Default (user mode): $HOME/.som/repository
Default (system mode): $HOME/.som/repository

-v | --verbose
Output additional diagnostic messages.

Command line usage

In addition to being controlled from your browser, the Software Manager can also be operated from the command line. This enables script-driven installation and removal of software packages. To ease access to the command line, double-click the shortcut "MVTec Software Manager CLI". This opens a terminal that allows to run the command som without setting the environment variable PATH.

Commands for SOM are issued in the following format:

som <options> command [<spec>]

The <options> all start with a dash for the shorthand notation (-) and a double dash for full option names (--). A list is given with:

som -h

To list the available commands, enter:

som help

The optional <spec> depends on the actual command. The following sections list all commands with examples.

som config

Display the contents of the Software Manager configuration file. If the --reset flag is set, the default values of the configuration are restored.

som config <key>

Display the value of a specific configuration key. You can use the command som config to see all valid keys. If the --reset flag is set, configuration value is restored to its default value.

som config <key> <value>

Set the configuration key to the specified value.

som available

List the products that can be installed from the catalog. Any of the listed feed URLs can be selected using the option -f <url> in one of the following commands: install, list.

som sync

List the product catalog just like the command "som cat" but fetch any updates from the remote catalog beforehand.

som -f <url> list

List both meta and base packages of the product specified with -f.

som -f https://packages.mvtec.com/halcon/halcon-20.11-progress/halcon-20.11-progress.feed list

For each package, the name, description, and the available versions are listed. Installed package versions are marked with an asterisk (*) in the command output.

som -f <url> install

Install packages from the given feed with the package selection depending on the further arguments. If no further arguments are provided, or if "default" is provided as an argument, the default selection for the product will be installed. If "all" is provided as an argument, all packages from the product will be installed in their most recent version. The following two examples explain how a specific package and its dependencies can be installed:

som -f 20.11-progress install rt

In this example, no complete URL has been given. The Software Manager will automatically select the first matching feed from the catalog. Also, a package name has been given, but no version number has been specified. SOM always defaults to the latest package version. To install an older package version, the version string has to be specified explicitly (presuming a newer version of package rt existed):

som -f 20.11-progress install rt 20.11.0.0

The above command will only actually install "HALCON 20.11 Progress" after its "Software License Agreement" has been accepted. The last line of output repeats your command line with an additional parameter that signifies your acceptance of the agreement to the Software Manager. If you want to automate your installations, you have to figure out the acceptance hash interactively in advance like in this example.

som list

List installed products. Below each product name, the feed URL and a list of installed packages is provided. Meta packages are marked "M", and base packages are marked "B". The remaining fields are package name, package description, installed version, and installation directory (in that order). The fields are separated by tabs.

som -f <url> remove

Remove the given package (and all packages that depend on it). In the unlikely case that you do not want to keep your installed software (or parts of it), the remove command lets you reverse an accidental installation. If no package is specified, all installed packages of a product are removed.

som -f 20.11-progress remove rt

som cli

Starts a terminal/command prompt with the environment variable PATH extended, so that the command som can be executed without giving the full path. This is equal to running "MVTec Software Manager CLI".

On unix by default XTerm (/usr/bin/xterm) is started. In order to use a different terminal program, complement the call with the path of the desired program:

som cli /usr/local/st

som remove

Uninstalls all installed Software Manager packages. Usually, just like other products SOM should be uninstalled via the browser.

som login

By executing this command, a login process is started, allowing you to sign in with an account associated with SOM. Upon execution of the command, a URL will be displayed, which can be opened on any device to complete the login process. Simply follow the instructions provided on the displayed page to sign in. Upon successful completion of the login process, the command will automatically terminate, and you will be logged in on the current device.

som logout

If logged in, this command will log you out and invalidate all saved session information.

Uninstalling Software Manager

You can safely uninstall the Software Manager without affecting other products that have been installed with it. The repository containing any downloaded packages and the configuration file are not touched by the uninstallation and have to be removed manually. SOM can be uninstalled in multiple ways:

Using the browser

Start up the Software Manager, make sure the page "Installed" is selected, click the entry "Uninstall" in the pop-up menu threedots next to the entry "Software Manager", and confirm the uninstallation by clicking on "Apply". Afterward, shutdown the server to exit SOM.

Using the command line

Run "MVTec Software Manager CLI", and execute the following command:

som remove

Windows control panel

Open the Windows control panel, and select "Programs and Features". To start the uninstallation, double-click on the program entry "MVTec Software Manager (user)" (for a user installation), or "MVTec Software Manager (system)" for a system installation.

The alternative dialog "Apps & Features" can only be used if the Software Manager has been installed for all users in system mode. If SOM has been installed in user mode, it will still be listed, but trying to uninstall it from this dialog will advise you to do the following:

MVTec Software Manager must be uninstalled via MVTec Software Manager or
the Windows control panel 'Programs and Features'

Manual uninstallation

Simply deleting the installation folder of the Software Manager would leave non-functional menu entries and a desktop shortcut as well as a registry entry (windows only) behind. These would have to be deleted manually in the following directories (user mode):

Linux
$HOME/Desktop
$HOME/.local/share/applications
Windows
%USERPROFILE%\Desktop
%APPDATA%\Microsoft\Windows\Start Menu\Programs\MVTec Software Manager

In system mode, these shortcuts are generated in the home directory of the user who performed the installation on unix. On Windows, the shortcuts can be found in the following directories:

%PUBLIC%\Desktop
%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\MVTec Software Manager

For a user installation, run the Windows registry editor "regedit" and remove the following key and its sub-keys:

 HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\MVTec Software Manager (user)

For a system installation, run the Windows registry editor "regedit" as Administrator, and remove the following key and its sub-keys:

"HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\MVTec Software Manager (system)

Installation database

Installed packages are registered in a subdirectory som.d in each product installation directory. The file som.feed is a JSON file that contains metadata of the installed packages. In addition, the database directory contains a JSON file for each installed package that lists the installed files and directories. The Software Manager also all the product icons and on Windows an uninstaller to this directory.

Acronyms

EULA
"End User License Agreement"
HTML
Hypertext Markup Language
HTTP
Hypertext Transfer Protocol
JSON
JavaScript Object Notation
LAN
Local Area Network
NTLM
NT LAN Manager
SHA
Secure Hash Algorithm
SOM
MVTec Software Manager
URI
Uniform Resource Identifier
URL
Uniform Resource Locator

Release notes

1.6.3

  • When creating a custom installer the Software Manager now shows an estimate of the required storage space.
  • After the configuration of an installation a summary table is available, showing details about the required storage space.
  • The Software Manager now gives an overview of the required storage space for an installation.
  • The MVTec Software Manager now caches administrative files.
  • The step overview visible on the left side in the installation process can now be used to navigate back to previous steps.
  • The Software Manager now shows the download speed while downloading installation packages.
  • On windows systems file paths in environment variables set by Software Manager could contain a mix of forward and backward slashes. This problem has been fixed for new installations.
  • Uninstalling a product that was not part of the current catalog was not possible. This problem has been fixed.
  • It was not possible to modify an existing installation with an offline installer. This problem has been fixed.
  • Selecting packages when customizing an update could lead to all packages being deselected. This problem has been fixed.
  • Starting Software Manager on a port that is in use but where requests are not answered, led to Software Manager hanging on startup. This problem has been fixed.
  • Installations for the current user and for all users could not be distinguished on the profile modal. This problem has been fixed.
  • On linux systems the somctl helper tool that is installed alongside all installations was not marked as executable. This problem has been fixed.
  • When updating an installation, the Software Manager did not update the included somctl tool in all cases. This problem has been fixed.
  • Custom installers in some cases did not display package tree correctly. This problem has been fixed.
  • Trying to uninstall via CLI a product that was not installed led to an error message. This problem has been fixed.
  • Software Manager did not properly notify about installation errors on the Installed tab. This problem has been fixed.
  • The frontend of the offline installer was stuck in an endless loop when missing any of its dependencies including failed signatures due to wrong time on the system. This problem has been fixed.
  • Fetching icons from an offline repository could cause an (invalid) error message. This problem has been fixed.
  • The notification when launching an installed executable was not localized. This problem has been fixed.
  • Fix problems with parallel installation of the same product for current user and all users.
  • Known Bug: Restart Software Manager after installation of Scene Engine and prior to executing any products via Software Manager.

1.6.2

  • The Software Manager can now provide products for a specific group of users. This feature is used for example to provide a campus version of our product.
  • The "Available" page is now only accessible if the user is logged in.
  • The Software Manager frontend reported the wrong API version. This problem has been fixed.
  • When the web UI was started for the first time in a browser the Software Manager failed to load the system information and therefore could not install any product. This problem has been fixed.
  • During an installation for all users, the Software Manager failed to set the environment variables correctly. This problem has been fixed.
  • For small browser widths the product name was overlapping. This problem has been fixed.
  • Bootstrapping the Software Manager failed because a file was requested from the repository that does not exist. This problem has been fixed.
  • When selecting a pre-selection during package selection the state of the resulting checkboxes was not correct. This problem has been fixed.
  • The Software Manager reported the wrong API version in the web UI. This problem has been fixed.
  • When listing the available products using the Software Manager CLI command som cat catalog updates were implicitly disabled. This problem has been fixed.

1.6.1

  • The somctl tool is now installed alongside installations managed by Software Manager on all platforms.
  • Several small UI improvements for the new guided installation feature.
  • Executables that are part of an installation for all users could not be started in the Software Manager frontend. This problem has been fixed.
  • Installing products that require the user to be logged in via the CLI failed even when the user was logged in. This problem has been fixed.
  • Installing products for all users could lead to failing installations due to the elevated installer crashing. This problem has been fixed.
  • Exiting an offline installer before the installation was done led to an inconsistent state of the frontend when the installer was started again. This problem has been fixed.
  • The checkboxes for meta packages on the select packages install step did not show the correct state before "All" was selected as preselection. This problem has been fixed.

1.6.0

  • Software Manager now guides the user through performing an installation, offering an easy path with sensible default selections of packages.
  • When installing license files for products installed with the old installer, the license file was placed into the wrong directory. This problem has been fixed.
  • When modifying an installation the Software Manager now groups all steps together by their kind (e.g. downloading, extracting, deleting files, …​) instead of grouping them by the package they belong to. This fixes a problem, where trying to update an installation without being logged in could remove the installed packages without installing the new package versions.
  • SOM now allows to disable the creation of shortcuts in the windows start menu and on the desktop. For the CLI command install, this behavior can now be controlled with the new flag --disable-shortcut.
  • When packing a custom installer for a target architecture that differed from the os architecture, architecture specific packages could not be selected. This problem has been fixed.
  • After updating the Software Manager, a restart is required, but the newly installed version was not used after the restart. This problem has been fixed.
  • The Software Manager now resumes package downloads from where they left off, instead of restarting from the beginning after an unexpected interruption.
  • When packing a custom installer, the contained files did not have a modified date set. This problem has been fixed.
  • In rare conditions when the installation directory contains unicode characters the Software Manager was not able to create a Desktop Shortcut. This problem has been fixed.

1.5.1

  • When installing older HALCON versions on linux platforms, the .profile_halcon file was not generated by SOM 1.5.0. This problem has been fixed.

1.5.0

  • The Software Manager now allows to create custom offline installers from all products listed in the current catalog.
  • The new CLI commands 'login' and 'logout' now allow to log in/out with your MVLogin account using the CLI interface.
  • The CLI command 'install' now allows to install the default selection or also all packages for a product.
  • Offline installers no longer try to perform a login at MVLogin.
  • User profiles now store from which profile they were copied. If a product modifications adds or removes profile variables, the user profiles will now be kept in sync to the profile they were copied from.
  • When launching an executable of a product on Windows it was possible that an environment variable from the active installation was leaked into the started process. This problem has been fixed.
  • The CLI command 'list' also listed meta packages that contained no packages. This problem has been fixed.
  • After uninstalling a product the empty product folder was not removed. This problem has been fixed.
  • Opening additional content for a product where the path contains unicode characters failed. This problem has been fixed.
  • Desktop and start menu shortcuts created by SOM that pointed to targets or had icons where the path contained non-ascii characters were not created correctly. This problem has been fixed.
  • If on Windows the system-wide PATH variable contained ';;' HALCON installations reported having a misconfigured environment that could not be fixed. This problem has been fixed.
  • On windows SOM mixed '/' and '\' as separators in various paths. This problem has been fixed.

1.4.1

  • Uninstalling a product via the Windows Add/Remove Programs menu did not remove all shortcuts that were created by SOM. This problem has been fixed.
  • When more than one group of executables was shown on the profile modal, the selection of the groups were not independent of one another. This problem has been fixed.
  • Handling the PATH variable on Windows systems has been improved. SOM now handles conflicting values in user and system PATH differently.
  • When clicking outside the modal it won’t be closed. Pressing the escape key can now close an opened modal.
  • On small browser windows it could happen that not all available products were shown on the available tab. This problem has been fixed.
  • The settings dialog now rejects invalid repository paths.

1.4.0

  • Incorrect message "Modification was successful" was shown when trying to modify a registered product while not being logged in. This problem has been fixed.
  • Clearing a local repository in the settings now deletes all files except .catalog, .feed, .packages and .asc files.
  • Added missing documentation of Lock button on the frontend.
  • Files installed from tar.gz archives were not deleted when the package was removed. This problem has been fixed.
  • Removed the possibility of registering executables on Windows systems. The feature is replaced by the new profile functionality.
  • Added profiles to installations that let the user configure environment variables and file associations of installations.
  • Installations can now be set as active, to switch between different installed versions of a product.

1.3.1

  • Unlocking the frontend did not work on systems where the username contained spaces or other invalid characters. This problem has been fixed.
  • Due to a race condition the progress modal was not always closed after the modification of a product. This problem has been fixed.

1.3.0

  • SOM now also supports packages using tar.gz archives.
  • When updating an installation, the frontend now shows which packages will be updated on the package selection dialog.
  • The Logout button in the web UI now also performs a global logout from the MVLogin account.
  • Configuration values provided as options on the command line (e.g. --catalog for changing the catalog URL) now replace the corresponding value from the configuration file only temporarily. When SOM is restarted without the command line option, the old value from the configuration file will be used. Also, changing an option that was set by a command line flag in the Settings modal is no longer possible.
  • A new command som config was added that allows to display the current configuration, change individual values of the configuration or reset the whole configuration to the default values.
  • The INSTALL and INSTALL FOR ALL USERS buttons on the Available tab now show a different caption once a product has been installed, instead of only being disabled. Furthermore, when an installation can be updated, that is now also possible using the buttons on the Available tab.
  • By default, the frontend now needs to be unlocked, before it can send any commands or retrieve any information from the backend. The frontend can either be unlocked by tokens that the backend generates, or by a password that the user can set.
  • After installing a new SOM version, the frontend now prompts the user to restart the running SOM backend.
  • There is now a feedback button in the Web UI for sending feedback about the SOM to MVTec.
  • A new CLI command som version was added, that only prints the version information and then exits.
  • Fix a crash when hostname is misconfigured.
  • Configuration files located in the directory of the SOM executable now take precedence before the global configuration file.
  • Offline installers no longer use the global configuration file. Instead, they start with a default configuration and write to a local config file if any settings are changed.
  • When starting an executable of an installation done with an old NSIS installer, the HALCONEXAMPLES and HALCONIMAGES environment variables were not set correctly. This has been fixed.

1.2.3

  • The Settings modal now lists the cache size of the local repository and offers a button to remove all package data from the repository to save disk space.
  • The Console modal in the frontend now offers a button for exporting the log messages to a file.
  • While running, SOM now places an icon and menu in the notification area of the windows taskbar and any linux trays that follow the SystemNotifier/AppIndicator specification. The menu can be used to exit the running SOM session and to open the frontend. The icon will also signal if any installed products can be updated.
  • The frontend now checks if SOM is running as an offline installer. If that is the case,
    • a hint is shown on the Installed tab explaining the consequences
    • Changing the catalog URL in the settings or refreshing the catalog is prohibited
    • the Modify Packages and Update Packages actions are only available for the product that is part of the offline installer
    • as before, all installations can be uninstalled, regardless if they are part of the offline installer or not
  • The situations where SOM reuses an existing session have been restricted further. Now, SOM only reuses a session if the other SOM instance was started by the same user in the same mode (user or system) and has the same version. Both SOMs must also be an offline installer, or a normal SOM instance.

1.2.2

  • In rare cases, dependencies of packages were not resolved properly. This problem has been fixed.

1.2.1

  • Added a button for refreshing the catalog from server to the settings dialog.
  • HTML entities in the RSS feed are now displayed correctly.
  • After modifying a product finishes, the progress modal now displays if the modification was a success. In case of an error during the modification, the error is displayed in the modal instead of in a notification.
  • If SOM is started with an invalid hostname, an error message is now shown.
  • When starting a product executable on linux systems, the LD_LIBRARY_PATH was set incorrectly. This problem has been fixed.
  • Added a new action to installed products for opening the installation directory in the operating systems file browser.
  • In rare cases, installation hooks were not executed properly on Windows because spaces in the hook command were not escaped correctly. This problem has been fixed.

1.2

  • SOM now handles installing products for all users in a more intuitive way. It is no longer required to start SOM with elevated rights to install products for all users. Instead, SOM will request the required permissions only when necessary, and return them as soon as they are no longer needed. More information can be found in the new section [Admin rights] in the documentation.
  • The SOM frontend now displays which actions will require admin rights to perform.
  • When leaving the package selection dialog the current selection is now saved for as long as the current browser tab is kept open.
    The saved selection is automatically restored when the user opens the dialog again by clicking on Select Packages for a new installation or Modify Packages for an existing installation. When the user opens the package selection dialog via the Install or Update buttons, the selection is not restored.
  • An installation that was aborted because the user was not logged in can now be resumed after being redirected back to SOM by the identity provider.
  • The frontend now adapts to small screen sizes.
  • SOM now checks whether another instance is running on the same port. If the instance was started by the same user it reuses this session, otherwise a warning is shown that the port is used by another user and the session is not reused.

1.1.5

  • Updating a product using the bell icon led to only a random subset of packages selected for an update.
    This issue has been fixed.
  • Update of the identity provider
  • The documentation link in the frontend now opens the HTML version of the documentation.
  • SOM can now display EULA texts in HTML format.

1.1.4

  • External commands (install hooks, file explorer, product executables) are now started in the foreground on Windows.
  • The console log accessible in the frontend now shows all log entries.
  • The frontend now shows a warning when the SOM backend is running with elevated rights.
  • The frontend dialog showing the progress when installing or removing packages is now localized.

1.1.3

  • Environment variable changes are now broadcast to the system on Windows.
  • The date of the copyright notice of the frontend is now up-to-date.

1.1.2

  • SOM now installs all icons that are part of a product alongside the program files.
    This solves the problem that the icons of installed products could not be displayed when SOM was started as an offline installer.
  • Running SOM as an offline installer, now completely ignores the current catalog URL setting.
    When the catalog URL was last saved by an old offline installer where SOM version was smaller than 1.1, the catalog URL was set to a now invalid URL. This led to the problem that the offline installer could not install new products.
  • On Windows SOM now installs the correct version of the uninstaller somctl.exe automatically to the som.d folder.
    For previous SOM versions, the uninstaller had to be part of the product feed. This is no longer necessary.

1.1.1

  • Setting the HTTP proxy did not work as expected.
    The command line option -P/--proxy and the frontend setting "HTTP Proxy"did not have any effect. This has been fixed and the option now works as expected.
  • In system session mode SOM cached data in the local repository’s toplevel folder.
    This issue has been fixed.
  • The news display in the frontend was not localized.
    Also, when "All" was selected, no news was displayed when the frontend language was changed. Both these issues have been fixed.

1.0.0.2

  • Extend output from som list.
    The "list" command now lists the installation folder of each package. To make parsing the output easier, the fields are separated by tabs instead of spaces. The package description is no longer enclosed in parentheses.
  • Always install SOM as som via pop-up dialog.
    Renaming the SOM binary caused incomplete offline installations. This problem has been fixed.
  • Add package field Default (ApiVersion 1.3).
    The default package is installed using the button Install on the page "Available".
  • Fix package selection of meta packages with multiple versions.
    The automatic selection of meta packages produced inconsistent package selections in some cases. This problem has been fixed.
  • Add uploaded license files for HALCON as new files by default.
    SOM used to replace existing license files when a license file of the same name had been selected for upload. Now, license files are added as new files by default. If a license file with the same name already exists, an increasing number will be added to the target file. It is also possible to overwrite an existing license file by selecting its name in the upload form.

1.0.0.1

  • Fix installation issue when initially installing SOM from catalog.
    When running the downloaded SOM binary and installing SOM from the catalog instead of using the installation from the pop-up greeting, the installation would register the wrong path for the generated shortcuts.
  • Add command line option to force user mode.
  • Enable interactive acceptance of EULA from command line.
    Installing a product from the command line that requires the acceptance of an EULA is now possible by entering "I accept" interactively. Previously, the command always had to be repeated with an additional command line option "--accept string". This is still supported for non-interactive installations from the command line.

1.0.0.0

  • Get rid of the bootstrap installer.
    SOM now only consists of a single binary. It can be used without installing it at all. Upon startup, SOM will provide an installation button in case you wish to install it or upgrade an existing installation.
  • SOM as an offline installer.
    SOM can be bundled with additional products for offline installation. If SOM detects a repository directory next to it upon startup, it will serve this directory as http://localhost:8000/mirror (or whatever port it uses at startup). In addition, the catalog for this session will be switched to the mirrored repository. This way, the bundled product(s) can be installed without requiring an internet connection at all.
  • Detect running sessions with same username but different mode.
    Upon startup, SOM re-used a running session if the username matched regardless of the session mode. Now, SOM also compares the session mode (user/system), and will start a new session if a different mode is requested.
  • Respect configuration changes to the installation targets.
    When changing the installation target for programs/data in the settings page, SOM had to be restarted to actually use them. This problem has been fixed.
  • Create directories only if needed.
    SOM used to create configuration/installation directories upon the first start of the program.
  • Change handling of installed products from multiple catalogs.
    SOM used to distinguish products by their feed URL. Now, products are distinguished by their BaseDir, i.e., the base directory used for the installation. This way, products can be mirrored at multiple locations without conflict (provided that the feed actually specifies the same product).
  • Do not display installed products on page "Available".
  • Do not display products with no packages for current architecture on page "Available".
  • Always show progress bars on terminal (if available).
  • Document the different methods to uninstall SOM.
  • Move button to manage packages to a drop-down menu.
    Each installed product now features a drop-down menu ⋮ to customize the installation. The entries allow to manage the installed packages, update the product (see below), or uninstall it entirely.
  • Detect updates for installed packages.
    In previous versions, SOM used to download the catalog only when started for the first time. Further, updates had to be initiated manually by clicking "Refresh from server". Now, SOM fetches the catalog from the server automatically upon server startup unless "Keep catalog up-to-date"is deactivated in the settings. Potential updates for installed products are now indicated on the page "Installed". If updates are available, a bell icon appears next to the product name. Click this icon or the entry "Update" in the drop-down menu of the product.
  • Change package selection to an expandable tree.
    You can no longer switch between basic and meta packages. Instead, meta packages are displayed as nodes, which can be expanded to show the included base packages in case you wish to tweak the installation.
  • Allow feeds to include external packages.
    If a package description contains the field "PackagesURL", packages from the referenced file are included into the current feed.
  • Slight modifications to the output format in command line mode.
  • Removal of somctl.
    The auxiliary tool "somctl" has been removed. Its functionality has been integrated into SOM itself.
  • Add command line option "-A" to start SOM as Administrator on Windows.
  • Remove "base and "meta" commands.
    The command "list" now lists all packages of the given feed (-f string) by default.
  • Add optional terminal path for the command "cli" on Linux.
    By default, "som cli" starts an XTerm from /usr/local/xterm. To use a different terminal, add its path to the command:
som cli /usr/local/st
  • Require "MVTec Account" to download files.
    SOM now requires an "MVTec Account" for online installations. Downloaded files are associated with your login. Offline installations are not affected by this requirement. Once logged in, SOM stores a login token, so that your login is re-used in future sessions. If you want to install products from the command line, you have to log in from a browser session beforehand.
  • Display additional content for the selected product.
    The page "Installed" may display additional content for the selected product. Currently, this can be a link to the product documentation. The selected product is indicated by a slightly darker background color. To select another product, simply click on its background area.

0.9.2.1

  • Force default settings if SOM is not installed.

0.9.2.0

  • Extensions to the bootstrap installer.
    The bootstrap installer that installs SOM initially has been a mostly silent experience. It now features a minimalist graphical interface to provide a little more feedback of the installation process. It can also update older versions of SOM. The graphical interface can be suppressed with the command line option "-n". SOM can be uninstalled by providing the command line option "-u".
    If the file name of the bootstrap installer includes the string "offline", it expects a directory named repository next to the installer binary. The assumption is that this directory contains offline data for the installation of a certain product on machines with no internet access. The contents of this directory will be imported into the local repository, and SOM will be started so that the product can be installed. The offline installer will complain if it does not find the directory.
  • Changed CLI behavior if -f string is given without command.
    If a product is selected using the command line option -f string and none of the commands "base", "list", "install", "meta",or "remove" is given, som starts as usual, and opens the configuration page of the specified product. The old behavior (listing the meta and base packages) can be achieved using the command "list".

0.9.1.0

  • Initial public release of SOM.

The Software Manager uses third-party software from the following projects

fyne.io/systray

License
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright 2014 Brave New Software Project, Inc.

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

github.com/ProtonMail/go-crypto

License
Copyright (c) 2009 The Go Authors. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
   * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

github.com/cloudflare/circl

License
Copyright (c) 2019 Cloudflare. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
   * Neither the name of Cloudflare nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

========================================================================

Copyright (c) 2009 The Go Authors. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
   * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

github.com/coreos/go-oidc/v3/oidc

Copyright
CoreOS Project
Copyright 2014 CoreOS, Inc

This product includes software developed at CoreOS, Inc.
(http://www.coreos.com/).
License
Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "{}"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright {yyyy} {name of copyright owner}

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

github.com/go-jose/go-jose/v4

License
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

github.com/go-jose/go-jose/v4/json

License
Copyright (c) 2012 The Go Authors. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
   * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

github.com/go-logr/logr

License
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "{}"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright {yyyy} {name of copyright owner}

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

github.com/godbus/dbus/v5

License
Copyright (c) 2013, Georg Reinke (<guelfey at gmail dot com>), Google
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

github.com/golang-jwt/jwt/v5

License
Copyright (c) 2012 Dave Grijalva
Copyright (c) 2021 golang-jwt maintainers

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.

github.com/google/uuid

License
Copyright (c) 2009,2014 Google Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
   * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

github.com/joho/godotenv

License
Copyright (c) 2013 John Barton

MIT License

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.

github.com/k3a/html2text

License
MIT License

Copyright (c) 2017 Mario K3A Hros (www.k3a.me)

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.

github.com/knadh/koanf

License
The MIT License

Copyright (c) 2019, Kailash Nadh. https://github.com/knadh

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.

github.com/mdp/qrterminal/v3

License
Copyright 2019 Mark Percival <m@mdp.im>

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.

github.com/mitchellh/colorstring

License
The MIT License (MIT)

Copyright (c) 2014 Mitchell Hashimoto

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.

github.com/mitchellh/copystructure

License
The MIT License (MIT)

Copyright (c) 2014 Mitchell Hashimoto

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.

github.com/mitchellh/mapstructure

License
The MIT License (MIT)

Copyright (c) 2013 Mitchell Hashimoto

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.

github.com/mitchellh/reflectwalk

License
The MIT License (MIT)

Copyright (c) 2013 Mitchell Hashimoto

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.

github.com/rivo/uniseg

License
MIT License

Copyright (c) 2019 Oliver Kuederle

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.

github.com/schollz/progressbar/v3

License
MIT License

Copyright (c) 2017 Zack

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.

github.com/spf13/cobra

License
                                Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

github.com/spf13/pflag

License
Copyright (c) 2012 Alex Ogier. All rights reserved.
Copyright (c) 2012 The Go Authors. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
   * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

golang.org/x/crypto

License
Copyright 2009 The Go Authors.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
   * Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

golang.org/x/net

License
Copyright 2009 The Go Authors.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
   * Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

golang.org/x/oauth2

License
Copyright 2009 The Go Authors.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
   * Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

golang.org/x/sys

License
Copyright 2009 The Go Authors.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
   * Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

golang.org/x/term

License
Copyright 2009 The Go Authors.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
   * Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

golang.org/x/text

License
Copyright 2009 The Go Authors.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
   * Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

gopkg.in/yaml.v3

Copyright
Copyright 2011-2016 Canonical Ltd.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
License
This project is covered by two different licenses: MIT and Apache.

#### MIT License ####

The following files were ported to Go from C files of libyaml, and thus
are still covered by their original MIT license, with the additional
copyright staring in 2011 when the project was ported over:

    apic.go emitterc.go parserc.go readerc.go scannerc.go
    writerc.go yamlh.go yamlprivateh.go

Copyright (c) 2006-2010 Kirill Simonov
Copyright (c) 2006-2011 Kirill Simonov

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.

### Apache License ###

All the remaining project files are covered by the Apache license:

Copyright (c) 2011-2019 Canonical Ltd

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

rsc.io/qr

License
Copyright (c) 2009 The Go Authors. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
   * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

https://github.com/floating-ui/floating-ui

License
MIT License

Copyright (c) 2021 Floating UI contributors

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.

https://github.com/TanStack/table

License
MIT License

Copyright (c) 2016 Tanner Linsley

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.

https://github.com/vueuse/vueuse

License
MIT License

Copyright (c) 2019-PRESENT Anthony Fu<https://github.com/antfu>

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.

https://github.com/statelyai/xstate

License
The MIT License (MIT)

Copyright (c) 2015 David Khourshid

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.

https://github.com/browserslist/browserslist

License
The MIT License (MIT)

Copyright 2014 Andrey Sitnik <andrey@sitnik.ru> and other contributors

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.

https://github.com/NaturalIntelligence/fast-xml-parser

License
MIT License

Copyright (c) 2017 Amit Kumar Gupta

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.

https://github.com/vuejs/pinia

License
The MIT License (MIT)

Copyright (c) 2019-present Eduardo San Martin Morote

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.

https://github.com/intlify/vue-i18n

License
The MIT License (MIT)

Copyright (c) 2020 kazuya kawaguchi

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.

https://github.com/vuejs/router

License
The MIT License (MIT)

Copyright (c) 2019-present Eduardo San Martin Morote

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.

https://github.com/vuejs/core

License
The MIT License (MIT)

Copyright (c) 2018-present, Yuxi (Evan) You

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.