CVE-2022-23496 (published 2022-12-08T22:15Z)

 Yet Another UserAgent Analyzer (Yauaa) is a java library that tries to parse and analyze the useragent string and extract as many relevant attributes as possible. Applications using the Client Hints analysis feature introduced with 7.0.0 can crash because the Yauaa library throws an ArrayIndexOutOfBoundsException. If uncaught the exception will result in a program crash. Applications that do not use this feature are not affected. Users are advised to upgrade to version 7.9.0. Users unable to upgrade may catch and discard any ArrayIndexOutOfBoundsException thrown by the Yauaa library.

CVSS v3 base score: 7.5, HIGH (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)

Weakness information:
cwe_id: CWE-755
cwe_name: Improper Handling of Exceptional Conditions
description: The product does not handle or incorrectly handles an exceptional condition.
extended_description: 
            
         
         

Fix information:
repo_url: https://github.com/nielsbasjes/yauaa
commit_details: repo_url: https://github.com/nielsbasjes/yauaa
author: Niels Basjes
author_date: 2022-12-03 14:41:19+01:00
msg: feat: Better clienthint handling, ignore Kamo tags.
repository: repo_url: https://github.com/nielsbasjes/yauaa
repo_name: nielsbasjes/yauaa
description: Yet Another UserAgent Analyzer
repo_language: Java
owner: nielsbasjes
file_changes: filename: CHANGELOG.md
change_type: ModificationType.MODIFY
diff: @@ -7,6 +7,8 @@ v7.9.0-SNAPSHOT
   - Support having multiple places to define a lookup or set which are then merged.
 - New/improved detections
   - Non standard Apple device tags.
+  - Ignore the tags created by Kamo
+  - Slightly better analysis of the Client Hints
 
 v7.8.0
 ===

programming_language: Markdown
filename: ClientHintsAnalyzer.java
change_type: ModificationType.MODIFY
diff: @@ -297,156 +297,162 @@ public class ClientHintsAnalyzer extends ClientHintsHeadersParser {
         }
     }
 
-    private static final Set<String> CHROMIUM = new HashSet<>();
-    static {
-        CHROMIUM.add("Chromium");
-        CHROMIUM.add("Chrome");
+    private boolean newVersionIsBetter(MutableAgentField currentVersion, String version) {
+        boolean currentVersionHasMinor = currentVersion.getValue().contains(".");
+        boolean versionHasMinor = version.contains(".");
+        return currentVersion.isDefaultValue() ||
+            (!versionHasMinor && !currentVersionHasMinor) ||
+            (versionHasMinor);
     }
 
     public void improveLayoutEngineAndAgentInfo(MutableUserAgent userAgent, ClientHints clientHints) {
         // Improve the Agent info.
-        List<Brand> fullVersionList = clientHints.getFullVersionList();
-        if (fullVersionList != null && !fullVersionList.isEmpty()) {
-            String version;
-            String majorVersion;
-
-            String agentName;
-            for (Brand brand : fullVersionList) {
-                String[] versionSplits;
-                switch (brand.getName()) {
-                    case "Chromium":
-                        version = brand.getVersion();
-                        versionSplits = version.split("\\.");
-                        if (versionSplits.length == 4) {
-                            if (!"0".equals(versionSplits[1])) {
-                                continue;
-                            }
-                        }
-                        version = versionSplits[0] + '.' + versionSplits[1];
-                        majorVersion = versionSplits[0];
-                        overrideValue(userAgent.get(LAYOUT_ENGINE_NAME), "Blink");
-                        overrideValue(userAgent.get(LAYOUT_ENGINE_VERSION), version);
-                        overrideValue(userAgent.get(LAYOUT_ENGINE_NAME_VERSION), "Blink " + version);
-                        overrideValue(userAgent.get(LAYOUT_ENGINE_VERSION_MAJOR), majorVersion);
-                        overrideValue(userAgent.get(LAYOUT_ENGINE_NAME_VERSION_MAJOR), "Blink "+ majorVersion);
-
-                        if (fullVersionList.size() == 1) { // NOTE: The grease was filtered out !
-                            // So we have "Chromium" and not "Chrome" or "Edge" or something else
-                            if (CHROMIUM.contains(userAgent.getValue(AGENT_NAME))) {
-                                agentName = "Chromium";
-                                version = brand.getVersion();
-                                overrideValue(userAgent.get(AGENT_NAME), agentName);
-                                overrideValue(userAgent.get(AGENT_VERSION), version);
-                                overrideValue(userAgent.get(AGENT_NAME_VERSION), agentName + " " + version);
-                                overrideValue(userAgent.get(AGENT_VERSION_MAJOR), majorVersion);
-                                overrideValue(userAgent.get(AGENT_NAME_VERSION_MAJOR), agentName + " " + majorVersion);
-                            }
-                        }
-
-                        break;
-
-                    case "Google Chrome":
-                    case "Chrome":
-                        agentName = "Chrome";
-                        version = brand.getVersion();
-                        versionSplits = version.split("\\.");
-                        if (versionSplits.length == 4) {
-                            if (!"0".equals(versionSplits[1])) {
-                                continue;
-                            }
-                        }
-                        majorVersion = versionSplits[0];
-
-                        overrideValue(userAgent.get(AGENT_NAME), agentName);
-                        overrideValue(userAgent.get(AGENT_VERSION), version);
-                        overrideValue(userAgent.get(AGENT_NAME_VERSION), agentName + " " + version);
-                        overrideValue(userAgent.get(AGENT_VERSION_MAJOR), majorVersion);
-                        overrideValue(userAgent.get(AGENT_NAME_VERSION_MAJOR), agentName + " " + majorVersion);
-                        break;
-
-                    case "Microsoft Edge":
-                    case "Edge":
-                        agentName = "Edge";
-                        version = brand.getVersion();
-                        versionSplits = version.split("\\.");
-                        if (versionSplits.length == 4) {
-                            if (!"0".equals(versionSplits[1])) {
-                                continue;
-                            }
-                        }
-                        majorVersion = versionSplits[0];
-
-                        overrideValue(userAgent.get(AGENT_NAME), agentName);
-                        overrideValue(userAgent.get(AGENT_VERSION), version);
-                        overrideValue(userAgent.get(AGENT_NAME_VERSION), agentName + " " + version);
-                        overrideValue(userAgent.get(AGENT_VERSION_MAJOR), majorVersion);
-                        overrideValue(userAgent.get(AGENT_NAME_VERSION_MAJOR), agentName + " " + majorVersion);
-                        break;
-                    default:
-                        // Ignore
-                }
-            }
-        } else {
-            // No full versions available, only the major versions
-            ArrayList<Brand> brands = clientHints.getBrands();
-            if (brands == null) {
-                return;
-            }
+        boolean usingFullVersions = true;
+        List<Brand> versionList = clientHints.getFullVersionList();
+        if (versionList == null) {
+            versionList = clientHints.getBrands();
+            usingFullVersions = false;
+        }
 
-            if (brands.size() == 1) { // NOTE: The grease was filtered out !
-                Brand brand = brands.get(0);
-                if ("Chromium".equals(brand.getName())) {
-                    // So we have "Chromium" and not "Chrome", "Edge", "Opera" or something else
-                    String version = brand.getVersion();
-                    // NOTE: No full version available, only the major version
-                    // We trust the Client hints more than the version we derived from the User-Agent.
+        if (versionList == null) {
+            return; // Nothing to do
+        }
+
+        final Map<String, Brand> versionMap = new TreeMap<>();
+        versionList.forEach(v -> versionMap.put(v.getName(), v));
 
-                    overrideValue(userAgent.get(LAYOUT_ENGINE_NAME), "Blink");
-                    overrideValue(userAgent.get(LAYOUT_ENGINE_VERSION), version);
-                    overrideValue(userAgent.get(LAYOUT_ENGINE_NAME_VERSION), "Blink " + version);
-                    overrideValue(userAgent.get(LAYOUT_ENGINE_VERSION_MAJOR), version);
-                    overrideValue(userAgent.get(LAYOUT_ENGINE_NAME_VERSION_MAJOR), "Blink " + version);
+        // ========================
+        Brand chromium = versionMap.get("Chromium");
+        if (chromium != null) {
+            String version = chromium.getVersion();
+            String[] versionSplits = version.split("\\.");
+            String majorVersion = versionSplits[0];
 
-                    // So we have "Chromium" and not "Chrome" or "Edge" or something else
-                    if (CHROMIUM.contains(userAgent.getValue(AGENT_NAME))) {
+            // Work around the major in minor hack/feature of Chrome ~v99
+            if (versionSplits.length==4 && !"0".equals(versionSplits[1])) {
+                version = versionSplits[1] + ".0." + versionSplits[2] + '.' + versionSplits[3];
+                majorVersion = versionSplits[1];
+            }
+
+            // ==== Blink ?
+            MutableAgentField engineName = userAgent.get(LAYOUT_ENGINE_NAME);
+            if (engineName.isDefaultValue() || !"Blink".equals(engineName.getValue())) {
+                overrideValue(engineName, "Blink");
+            }
+            MutableAgentField engineVersion = userAgent.get(LAYOUT_ENGINE_VERSION);
+            MutableAgentField engineMajorVersion = userAgent.get(LAYOUT_ENGINE_VERSION_MAJOR);
+            String blinkVersion = majorVersion;
+            if (versionSplits.length>1) {
+                blinkVersion = majorVersion + ".0";
+            }
+            if (newVersionIsBetter(engineVersion, blinkVersion)) {
+                overrideValue(engineVersion, blinkVersion);
+                overrideValue(engineMajorVersion, majorVersion);
+            }
+
+            overrideValue(userAgent.get(LAYOUT_ENGINE_NAME_VERSION), engineName.getValue() + " " + engineVersion.getValue());
+            overrideValue(userAgent.get(LAYOUT_ENGINE_NAME_VERSION_MAJOR), engineName.getValue() + " " + engineMajorVersion.getValue());
+
+            // ===== Chromium browser?
+            if (versionList.size() == 1) { // NOTE: The grease was filtered out !
+                // So we have "Chromium" and not "Chrome" or "Edge" or something else
+                MutableAgentField currentVersion = userAgent.get(AGENT_VERSION);
+                if (newVersionIsBetter(currentVersion, version)) {
+                    overrideValue(userAgent.get(AGENT_NAME), "Chromium");
+                    overrideValue(userAgent.get(AGENT_VERSION), version);
+                    overrideValue(userAgent.get(AGENT_NAME_VERSION), "Chromium " + version);
+                    overrideValue(userAgent.get(AGENT_VERSION_MAJOR), majorVersion);
+                    overrideValue(userAgent.get(AGENT_NAME_VERSION_MAJOR), "Chromium " + majorVersion);
+                } else {
+                    // We ONLY update the name of the agent to Chromium in some cases
+                    if ("Chrome".equals(userAgent.getValue(AGENT_NAME))) {
                         overrideValue(userAgent.get(AGENT_NAME), "Chromium");
-                        overrideValue(userAgent.get(AGENT_VERSION), version);
-                        overrideValue(userAgent.get(AGENT_NAME_VERSION), "Chromium " + version);
-                        overrideValue(userAgent.get(AGENT_VERSION_MAJOR), version);
-                        overrideValue(userAgent.get(AGENT_NAME_VERSION_MAJOR), "Chromium " + version);
+                        overrideValue(userAgent.get(AGENT_NAME_VERSION), "Chromium " + currentVersion.getValue());
+
+                        String currentMajorVersion = userAgent.getValue(AGENT_VERSION_MAJOR);
+                        overrideValue(userAgent.get(AGENT_NAME_VERSION_MAJOR), "Chromium " + currentMajorVersion);
                     }
                 }
+
                 return;
             }
+        }
+        versionMap.remove("Chromium");
 
-            for (Brand brand : brands) {
-                String[] versionSplits;
-                switch (brand.getName()) {
-                    case "Microsoft Edge":
-                    case "Edge":
-                        MutableAgentField agentName = userAgent.get(AGENT_NAME);
-                        if (agentName.getValue().equals("Edge")) {
-                            continue;
-                        }
-                        String version = brand.getVersion();
-                        versionSplits = version.split("\\.");
-                        if (versionSplits.length == 4) {
-                            if (!"0".equals(versionSplits[1])) {
-                                continue;
-                            }
-                        }
-                        String majorVersion = versionSplits[0];
-
-                        overrideValue(agentName, "Edge");
-                        overrideValue(userAgent.get(AGENT_VERSION), version);
-                        overrideValue(userAgent.get(AGENT_NAME_VERSION), "Edge " + version);
-                        overrideValue(userAgent.get(AGENT_VERSION_MAJOR), majorVersion);
-                        overrideValue(userAgent.get(AGENT_NAME_VERSION_MAJOR), "Edge " + majorVersion);
-                        break;
-                    default:
+        // ========================
+        Brand chrome = versionMap.get("Chrome");
+        if (chrome == null) {
+            chrome = versionMap.get("Google Chrome");
+        }
+        if (chrome != null) {
+            if (versionMap.size() == 1) {
+                // So we have "Chrome" and nothing else
+                MutableAgentField currentVersion = userAgent.get(AGENT_VERSION);
+                String version = chrome.getVersion();
+                String[] versionSplits = version.split("\\.");
+                String majorVersion = versionSplits[0];
+
+                // Work around the major in minor hack/feature of Chrome ~v99
+                // 99.100.x.y is really 100.0.x.y
+                if (versionSplits.length==4 && !"0".equals(versionSplits[1])) {
+                    version = versionSplits[1] + ".0." + versionSplits[2] + '.' + versionSplits[3];
+                    majorVersion = versionSplits[1];
+                }
+
+//                if (currentVersion.isDefaultValue()  ||
+//                    (!currentVersion.getValue().contains(".") && usingFullVersions)) {
+                if (newVersionIsBetter(currentVersion, version)) {
+                    overrideValue(userAgent.get(AGENT_NAME), "Chrome");
+                    overrideValue(currentVersion, version);
+                    overrideValue(userAgent.get(AGENT_NAME_VERSION), "Chrome " + version);
+                    overrideValue(userAgent.get(AGENT_VERSION_MAJOR), majorVersion);
+                    overrideValue(userAgent.get(AGENT_NAME_VERSION_MAJOR), "Chrome " + majorVersion);
+                    return;
                 }
             }
         }
+        versionMap.remove("Chrome");
+        versionMap.remove("Google Chrome");
+        // ========================
+
+        // If anything remains then (we think) THAT is the truth...
+        for (Map.Entry<String, Brand> brandEntry : versionMap.entrySet()) {
+            Brand brand = brandEntry.getValue();
+            String rawBrandName = brand.getName();
+            String agentName = rawBrandName;
+
+            // Sanitize the common yet unwanted names
+            switch (rawBrandName) {
+                case "Microsoft Edge":
+                    agentName = "Edge";
+                    break;
+                default:
+            }
+
+            MutableAgentField agentNameField = userAgent.get(AGENT_NAME);
+            MutableAgentField agentVersionField = userAgent.get(AGENT_VERSION);
+
+            switch (agentName) {
+                case "Opera":
+                    // There is a bug in Opera which puts the wrong version in the client hints.
+                    break;
+
+                default:
+                    // Only do this if the existing in only a major version, and we have received full versions
+                    if (agentVersionField.getValue().contains(".") && !usingFullVersions){
+                        continue;
+                    }
+                    // In all other cases the client hint is expected to be "more" true.
+                    String version = brand.getVersion();
+                    String majorVersion = version.split("\\.")[0];
+                    overrideValue(agentNameField, agentName);
+                    overrideValue(userAgent.get(AGENT_VERSION), version);
+                    overrideValue(userAgent.get(AGENT_NAME_VERSION), agentName + " " + version);
+                    overrideValue(userAgent.get(AGENT_VERSION_MAJOR), majorVersion);
+                    overrideValue(userAgent.get(AGENT_NAME_VERSION_MAJOR), agentName + " " + majorVersion);
+                    break;
+            }
+        }
     }
 
     // In the above calculations there are fields that require additional input fields.

programming_language: Java
filename: Anonymize-Kamo.yaml
change_type: ModificationType.ADD
diff: @@ -0,0 +1,1455 @@
+config:
+
+# Tags used by https://www.ccleaner.com/kamo that must be ignored
+- set:
+    name: 'KamoAgents'
+    values:
+    - 'Agency'
+    - 'AtContent'
+    - 'Config'
+    - 'GLS'
+    - 'Herring'
+    - 'LikeWise'
+    - 'OpenWave'
+    - 'Trailer'
+    - 'Unique'
+    - 'Viewer'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36 Trailer/98.3.7512.13'
+      Sec-Ch-Ua                            : '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"'
+      Sec-Ch-Ua-Mobile                     : '?0'
+      Sec-Ch-Ua-Platform                   : '"Windows"'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '??'
+      OperatingSystemVersionMajor          : '??'
+      OperatingSystemNameVersion           : 'Windows NT ??'
+      OperatingSystemNameVersionMajor      : 'Windows NT ??'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '100'
+      LayoutEngineVersionMajor             : '100'
+      LayoutEngineNameVersion              : 'Blink 100'
+      LayoutEngineNameVersionMajor         : 'Blink 100'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Chrome'
+      AgentVersion                         : '100'
+      AgentVersionMajor                    : '100'
+      AgentNameVersion                     : 'Chrome 100'
+      AgentNameVersionMajor                : 'Chrome 100'
+      UAClientHintBrands_0_Brand           : 'Chromium'
+      UAClientHintBrands_0_Version         : '100'
+      UAClientHintBrands_1_Brand           : 'Google Chrome'
+      UAClientHintBrands_1_Version         : '100'
+      UAClientHintMobile                   : 'false'
+      UAClientHintPlatform                 : 'Windows'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36 Trailer/98.3.7512.13'
+      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"100.0.4896.127"'
+      Sec-Ch-Ua-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="100.0.4896.127", "Google Chrome";v="100.0.4896.127"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
+      Sec-Ch-Ua-Wow64                            : '?0'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '100.0'
+      LayoutEngineVersionMajor                   : '100'
+      LayoutEngineNameVersion                    : 'Blink 100.0'
+      LayoutEngineNameVersionMajor               : 'Blink 100'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Chrome'
+      AgentVersion                               : '100.0.4896.127'
+      AgentVersionMajor                          : '100'
+      AgentNameVersion                           : 'Chrome 100.0.4896.127'
+      AgentNameVersionMajor                      : 'Chrome 100'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Chromium'
+      UAClientHintBrands_0_Version               : '100'
+      UAClientHintBrands_1_Brand                 : 'Google Chrome'
+      UAClientHintBrands_1_Version               : '100'
+      UAClientHintFullVersion                    : '100.0.4896.127'
+      UAClientHintFullVersionList_0_Brand        : 'Chromium'
+      UAClientHintFullVersionList_0_Version      : '100.0.4896.127'
+      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
+      UAClientHintFullVersionList_1_Version      : '100.0.4896.127'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.1.0'
+      UAClientHintWow64                          : 'false'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 GLS/93.10.5259.60'
+      Sec-Ch-Ua                                  : '"Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"108.0.5359.72"'
+      Sec-Ch-Ua-Full-Version-List                : '"Not?A_Brand";v="8.0.0.0", "Chromium";v="108.0.5359.72", "Google Chrome";v="108.0.5359.72"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
+      Sec-Ch-Ua-Wow64                            : '?0'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '108.0'
+      LayoutEngineVersionMajor                   : '108'
+      LayoutEngineNameVersion                    : 'Blink 108.0'
+      LayoutEngineNameVersionMajor               : 'Blink 108'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Chrome'
+      AgentVersion                               : '108.0.5359.72'
+      AgentVersionMajor                          : '108'
+      AgentNameVersion                           : 'Chrome 108.0.5359.72'
+      AgentNameVersionMajor                      : 'Chrome 108'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Chromium'
+      UAClientHintBrands_0_Version               : '108'
+      UAClientHintBrands_1_Brand                 : 'Google Chrome'
+      UAClientHintBrands_1_Version               : '108'
+      UAClientHintFullVersion                    : '108.0.5359.72'
+      UAClientHintFullVersionList_0_Brand        : 'Chromium'
+      UAClientHintFullVersionList_0_Version      : '108.0.5359.72'
+      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
+      UAClientHintFullVersionList_1_Version      : '108.0.5359.72'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.1.0'
+      UAClientHintWow64                          : 'false'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 LikeWise/94.6.5565.66'
+      Sec-Ch-Ua                                  : '"Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"108.0.5359.72"'
+      Sec-Ch-Ua-Full-Version-List                : '"Not?A_Brand";v="8.0.0.0", "Chromium";v="108.0.5359.72", "Google Chrome";v="108.0.5359.72"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
+      Sec-Ch-Ua-Wow64                            : '?0'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '108.0'
+      LayoutEngineVersionMajor                   : '108'
+      LayoutEngineNameVersion                    : 'Blink 108.0'
+      LayoutEngineNameVersionMajor               : 'Blink 108'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Chrome'
+      AgentVersion                               : '108.0.5359.72'
+      AgentVersionMajor                          : '108'
+      AgentNameVersion                           : 'Chrome 108.0.5359.72'
+      AgentNameVersionMajor                      : 'Chrome 108'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Chromium'
+      UAClientHintBrands_0_Version               : '108'
+      UAClientHintBrands_1_Brand                 : 'Google Chrome'
+      UAClientHintBrands_1_Version               : '108'
+      UAClientHintFullVersion                    : '108.0.5359.72'
+      UAClientHintFullVersionList_0_Brand        : 'Chromium'
+      UAClientHintFullVersionList_0_Version      : '108.0.5359.72'
+      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
+      UAClientHintFullVersionList_1_Version      : '108.0.5359.72'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.1.0'
+      UAClientHintWow64                          : 'false'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 LikeWise/95.6.7405.6'
+      Sec-Ch-Ua                                  : '"Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"108.0.5359.72"'
+      Sec-Ch-Ua-Full-Version-List                : '"Not?A_Brand";v="8.0.0.0", "Chromium";v="108.0.5359.72", "Google Chrome";v="108.0.5359.72"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
+      Sec-Ch-Ua-Wow64                            : '?0'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '108.0'
+      LayoutEngineVersionMajor                   : '108'
+      LayoutEngineNameVersion                    : 'Blink 108.0'
+      LayoutEngineNameVersionMajor               : 'Blink 108'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Chrome'
+      AgentVersion                               : '108.0.5359.72'
+      AgentVersionMajor                          : '108'
+      AgentNameVersion                           : 'Chrome 108.0.5359.72'
+      AgentNameVersionMajor                      : 'Chrome 108'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Chromium'
+      UAClientHintBrands_0_Version               : '108'
+      UAClientHintBrands_1_Brand                 : 'Google Chrome'
+      UAClientHintBrands_1_Version               : '108'
+      UAClientHintFullVersion                    : '108.0.5359.72'
+      UAClientHintFullVersionList_0_Brand        : 'Chromium'
+      UAClientHintFullVersionList_0_Version      : '108.0.5359.72'
+      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
+      UAClientHintFullVersionList_1_Version      : '108.0.5359.72'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.1.0'
+      UAClientHintWow64                          : 'false'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 OpenWave/98.4.3033.34'
+      Sec-Ch-Ua                                  : '"Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"108.0.5359.72"'
+      Sec-Ch-Ua-Full-Version-List                : '"Not?A_Brand";v="8.0.0.0", "Chromium";v="108.0.5359.72", "Google Chrome";v="108.0.5359.72"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
+      Sec-Ch-Ua-Wow64                            : '?0'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '108.0'
+      LayoutEngineVersionMajor                   : '108'
+      LayoutEngineNameVersion                    : 'Blink 108.0'
+      LayoutEngineNameVersionMajor               : 'Blink 108'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Chrome'
+      AgentVersion                               : '108.0.5359.72'
+      AgentVersionMajor                          : '108'
+      AgentNameVersion                           : 'Chrome 108.0.5359.72'
+      AgentNameVersionMajor                      : 'Chrome 108'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Chromium'
+      UAClientHintBrands_0_Version               : '108'
+      UAClientHintBrands_1_Brand                 : 'Google Chrome'
+      UAClientHintBrands_1_Version               : '108'
+      UAClientHintFullVersion                    : '108.0.5359.72'
+      UAClientHintFullVersionList_0_Brand        : 'Chromium'
+      UAClientHintFullVersionList_0_Version      : '108.0.5359.72'
+      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
+      UAClientHintFullVersionList_1_Version      : '108.0.5359.72'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.1.0'
+      UAClientHintWow64                          : 'false'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko GLS/93.10.5259.60'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '7'
+      OperatingSystemVersionMajor          : '7'
+      OperatingSystemNameVersion           : 'Windows 7'
+      OperatingSystemNameVersionMajor      : 'Windows 7'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Trident'
+      LayoutEngineVersion                  : '7.0'
+      LayoutEngineVersionMajor             : '7'
+      LayoutEngineNameVersion              : 'Trident 7.0'
+      LayoutEngineNameVersionMajor         : 'Trident 7'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Internet Explorer'
+      AgentVersion                         : '11.0'
+      AgentVersionMajor                    : '11'
+      AgentNameVersion                     : 'Internet Explorer 11.0'
+      AgentNameVersionMajor                : 'Internet Explorer 11'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko LikeWise/94.6.5565.66'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '7'
+      OperatingSystemVersionMajor          : '7'
+      OperatingSystemNameVersion           : 'Windows 7'
+      OperatingSystemNameVersionMajor      : 'Windows 7'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Trident'
+      LayoutEngineVersion                  : '7.0'
+      LayoutEngineVersionMajor             : '7'
+      LayoutEngineNameVersion              : 'Trident 7.0'
+      LayoutEngineNameVersionMajor         : 'Trident 7'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Internet Explorer'
+      AgentVersion                         : '11.0'
+      AgentVersionMajor                    : '11'
+      AgentNameVersion                     : 'Internet Explorer 11.0'
+      AgentNameVersionMajor                : 'Internet Explorer 11'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '7'
+      OperatingSystemVersionMajor          : '7'
+      OperatingSystemNameVersion           : 'Windows 7'
+      OperatingSystemNameVersionMajor      : 'Windows 7'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '107'
+      LayoutEngineVersionMajor             : '107'
+      LayoutEngineNameVersion              : 'Blink 107'
+      LayoutEngineNameVersionMajor         : 'Blink 107'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Chrome'
+      AgentVersion                         : '107'
+      AgentVersionMajor                    : '107'
+      AgentNameVersion                     : 'Chrome 107'
+      AgentNameVersionMajor                : 'Chrome 107'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62'
+      Sec-Ch-Ua                                  : '"Microsoft Edge";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"107.0.1418.62"'
+      Sec-Ch-Ua-Full-Version-List                : '"Microsoft Edge";v="107.0.1418.62", "Chromium";v="107.0.5304.150", "Not=A?Brand";v="24.0.0.0"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
+      Sec-Ch-Ua-Wow64                            : '?0'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '107.0'
+      LayoutEngineVersionMajor                   : '107'
+      LayoutEngineNameVersion                    : 'Blink 107.0'
+      LayoutEngineNameVersionMajor               : 'Blink 107'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Edge'
+      AgentVersion                               : '107.0.1418.62'
+      AgentVersionMajor                          : '107'
+      AgentNameVersion                           : 'Edge 107.0.1418.62'
+      AgentNameVersionMajor                      : 'Edge 107'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Microsoft Edge'
+      UAClientHintBrands_0_Version               : '107'
+      UAClientHintBrands_1_Brand                 : 'Chromium'
+      UAClientHintBrands_1_Version               : '107'
+      UAClientHintFullVersion                    : '107.0.1418.62'
+      UAClientHintFullVersionList_0_Brand        : 'Microsoft Edge'
+      UAClientHintFullVersionList_0_Version      : '107.0.1418.62'
+      UAClientHintFullVersionList_1_Brand        : 'Chromium'
+      UAClientHintFullVersionList_1_Version      : '107.0.5304.150'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.1.0'
+      UAClientHintWow64                          : 'false'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62 GLS/93.10.5259.60'
+      Sec-Ch-Ua                                  : '"Microsoft Edge";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"107.0.1418.62"'
+      Sec-Ch-Ua-Full-Version-List                : '"Microsoft Edge";v="107.0.1418.62", "Chromium";v="107.0.5304.150", "Not=A?Brand";v="24.0.0.0"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
+      Sec-Ch-Ua-Wow64                            : '?0'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '107.0'
+      LayoutEngineVersionMajor                   : '107'
+      LayoutEngineNameVersion                    : 'Blink 107.0'
+      LayoutEngineNameVersionMajor               : 'Blink 107'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Edge'
+      AgentVersion                               : '107.0.1418.62'
+      AgentVersionMajor                          : '107'
+      AgentNameVersion                           : 'Edge 107.0.1418.62'
+      AgentNameVersionMajor                      : 'Edge 107'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Microsoft Edge'
+      UAClientHintBrands_0_Version               : '107'
+      UAClientHintBrands_1_Brand                 : 'Chromium'
+      UAClientHintBrands_1_Version               : '107'
+      UAClientHintFullVersion                    : '107.0.1418.62'
+      UAClientHintFullVersionList_0_Brand        : 'Microsoft Edge'
+      UAClientHintFullVersionList_0_Version      : '107.0.1418.62'
+      UAClientHintFullVersionList_1_Brand        : 'Chromium'
+      UAClientHintFullVersionList_1_Version      : '107.0.5304.150'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.1.0'
+      UAClientHintWow64                          : 'false'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62 LikeWise/94.6.5565.66'
+      Sec-Ch-Ua                                  : '"Microsoft Edge";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"107.0.1418.62"'
+      Sec-Ch-Ua-Full-Version-List                : '"Microsoft Edge";v="107.0.1418.62", "Chromium";v="107.0.5304.150", "Not=A?Brand";v="24.0.0.0"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
+      Sec-Ch-Ua-Wow64                            : '?0'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '107.0'
+      LayoutEngineVersionMajor                   : '107'
+      LayoutEngineNameVersion                    : 'Blink 107.0'
+      LayoutEngineNameVersionMajor               : 'Blink 107'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Edge'
+      AgentVersion                               : '107.0.1418.62'
+      AgentVersionMajor                          : '107'
+      AgentNameVersion                           : 'Edge 107.0.1418.62'
+      AgentNameVersionMajor                      : 'Edge 107'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Microsoft Edge'
+      UAClientHintBrands_0_Version               : '107'
+      UAClientHintBrands_1_Brand                 : 'Chromium'
+      UAClientHintBrands_1_Version               : '107'
+      UAClientHintFullVersion                    : '107.0.1418.62'
+      UAClientHintFullVersionList_0_Brand        : 'Microsoft Edge'
+      UAClientHintFullVersionList_0_Version      : '107.0.1418.62'
+      UAClientHintFullVersionList_1_Brand        : 'Chromium'
+      UAClientHintFullVersionList_1_Version      : '107.0.5304.150'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.1.0'
+      UAClientHintWow64                          : 'false'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62 LikeWise/95.6.7405.6'
+      Sec-Ch-Ua                                  : '"Microsoft Edge";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"107.0.1418.62"'
+      Sec-Ch-Ua-Full-Version-List                : '"Microsoft Edge";v="107.0.1418.62", "Chromium";v="107.0.5304.150", "Not=A?Brand";v="24.0.0.0"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
+      Sec-Ch-Ua-Wow64                            : '?0'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '107.0'
+      LayoutEngineVersionMajor                   : '107'
+      LayoutEngineNameVersion                    : 'Blink 107.0'
+      LayoutEngineNameVersionMajor               : 'Blink 107'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Edge'
+      AgentVersion                               : '107.0.1418.62'
+      AgentVersionMajor                          : '107'
+      AgentNameVersion                           : 'Edge 107.0.1418.62'
+      AgentNameVersionMajor                      : 'Edge 107'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Microsoft Edge'
+      UAClientHintBrands_0_Version               : '107'
+      UAClientHintBrands_1_Brand                 : 'Chromium'
+      UAClientHintBrands_1_Version               : '107'
+      UAClientHintFullVersion                    : '107.0.1418.62'
+      UAClientHintFullVersionList_0_Brand        : 'Microsoft Edge'
+      UAClientHintFullVersionList_0_Version      : '107.0.1418.62'
+      UAClientHintFullVersionList_1_Brand        : 'Chromium'
+      UAClientHintFullVersionList_1_Version      : '107.0.5304.150'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.1.0'
+      UAClientHintWow64                          : 'false'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62 OpenWave/98.4.3033.34'
+      Sec-Ch-Ua                                  : '"Microsoft Edge";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"107.0.1418.62"'
+      Sec-Ch-Ua-Full-Version-List                : '"Microsoft Edge";v="107.0.1418.62", "Chromium";v="107.0.5304.150", "Not=A?Brand";v="24.0.0.0"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
+      Sec-Ch-Ua-Wow64                            : '?0'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '107.0'
+      LayoutEngineVersionMajor                   : '107'
+      LayoutEngineNameVersion                    : 'Blink 107.0'
+      LayoutEngineNameVersionMajor               : 'Blink 107'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Edge'
+      AgentVersion                               : '107.0.1418.62'
+      AgentVersionMajor                          : '107'
+      AgentNameVersion                           : 'Edge 107.0.1418.62'
+      AgentNameVersionMajor                      : 'Edge 107'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Microsoft Edge'
+      UAClientHintBrands_0_Version               : '107'
+      UAClientHintBrands_1_Brand                 : 'Chromium'
+      UAClientHintBrands_1_Version               : '107'
+      UAClientHintFullVersion                    : '107.0.1418.62'
+      UAClientHintFullVersionList_0_Brand        : 'Microsoft Edge'
+      UAClientHintFullVersionList_0_Version      : '107.0.1418.62'
+      UAClientHintFullVersionList_1_Brand        : 'Chromium'
+      UAClientHintFullVersionList_1_Version      : '107.0.5304.150'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.1.0'
+      UAClientHintWow64                          : 'false'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62 Trailer/98.3.7512.13'
+      Sec-Ch-Ua                            : '"Microsoft Edge";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
+      Sec-Ch-Ua-Mobile                     : '?0'
+      Sec-Ch-Ua-Platform                   : '"Windows"'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '7'
+      OperatingSystemVersionMajor          : '7'
+      OperatingSystemNameVersion           : 'Windows 7'
+      OperatingSystemNameVersionMajor      : 'Windows 7'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '107'
+      LayoutEngineVersionMajor             : '107'
+      LayoutEngineNameVersion              : 'Blink 107'
+      LayoutEngineNameVersionMajor         : 'Blink 107'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Edge'
+      AgentVersion                         : '107'
+      AgentVersionMajor                    : '107'
+      AgentNameVersion                     : 'Edge 107'
+      AgentNameVersionMajor                : 'Edge 107'
+
+      UAClientHintBrands_0_Brand           : 'Microsoft Edge'
+      UAClientHintBrands_0_Version         : '107'
+      UAClientHintBrands_1_Brand           : 'Chromium'
+      UAClientHintBrands_1_Version         : '107'
+      UAClientHintMobile                   : 'false'
+      UAClientHintPlatform                 : 'Windows'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62 Trailer/98.3.7512.13'
+      Sec-Ch-Ua                                  : '"Microsoft Edge";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"107.0.1418.62"'
+      Sec-Ch-Ua-Full-Version-List                : '"Microsoft Edge";v="107.0.1418.62", "Chromium";v="107.0.5304.150", "Not=A?Brand";v="24.0.0.0"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
+      Sec-Ch-Ua-Wow64                            : '?0'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '107.0'
+      LayoutEngineVersionMajor                   : '107'
+      LayoutEngineNameVersion                    : 'Blink 107.0'
+      LayoutEngineNameVersionMajor               : 'Blink 107'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Edge'
+      AgentVersion                               : '107.0.1418.62'
+      AgentVersionMajor                          : '107'
+      AgentNameVersion                           : 'Edge 107.0.1418.62'
+      AgentNameVersionMajor                      : 'Edge 107'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Microsoft Edge'
+      UAClientHintBrands_0_Version               : '107'
+      UAClientHintBrands_1_Brand                 : 'Chromium'
+      UAClientHintBrands_1_Version               : '107'
+      UAClientHintFullVersion                    : '107.0.1418.62'
+      UAClientHintFullVersionList_0_Brand        : 'Microsoft Edge'
+      UAClientHintFullVersionList_0_Version      : '107.0.1418.62'
+      UAClientHintFullVersionList_1_Brand        : 'Chromium'
+      UAClientHintFullVersionList_1_Version      : '107.0.5304.150'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.1.0'
+      UAClientHintWow64                          : 'false'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 OPR/85.0.4341.60'
+      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Opera";v="85"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"99.0.4844.84"'
+      Sec-Ch-Ua-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="99.0.4844.84", "Opera";v="99.0.4844.84"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.0.0"'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '99.0'
+      LayoutEngineVersionMajor                   : '99'
+      LayoutEngineNameVersion                    : 'Blink 99.0'
+      LayoutEngineNameVersionMajor               : 'Blink 99'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Opera'
+      AgentVersion                               : '85.0.4341.60'
+      AgentVersionMajor                          : '85'
+      AgentNameVersion                           : 'Opera 85.0.4341.60'
+      AgentNameVersionMajor                      : 'Opera 85'
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Chromium'
+      UAClientHintBrands_0_Version               : '99'
+      UAClientHintBrands_1_Brand                 : 'Opera'
+      UAClientHintBrands_1_Version               : '85'
+      UAClientHintFullVersion                    : '99.0.4844.84'
+      UAClientHintFullVersionList_0_Brand        : 'Chromium'
+      UAClientHintFullVersionList_0_Version      : '99.0.4844.84'
+      UAClientHintFullVersionList_1_Brand        : 'Opera'
+      UAClientHintFullVersionList_1_Version      : '99.0.4844.84'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.0.0'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 OPR/85.0.4341.60 GLS/93.10.5259.60'
+      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Opera";v="85"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"99.0.4844.84"'
+      Sec-Ch-Ua-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="99.0.4844.84", "Opera";v="99.0.4844.84"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.0.0"'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '99.0'
+      LayoutEngineVersionMajor                   : '99'
+      LayoutEngineNameVersion                    : 'Blink 99.0'
+      LayoutEngineNameVersionMajor               : 'Blink 99'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Opera'
+      AgentVersion                               : '85.0.4341.60'
+      AgentVersionMajor                          : '85'
+      AgentNameVersion                           : 'Opera 85.0.4341.60'
+      AgentNameVersionMajor                      : 'Opera 85'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Chromium'
+      UAClientHintBrands_0_Version               : '99'
+      UAClientHintBrands_1_Brand                 : 'Opera'
+      UAClientHintBrands_1_Version               : '85'
+      UAClientHintFullVersion                    : '99.0.4844.84'
+      UAClientHintFullVersionList_0_Brand        : 'Chromium'
+      UAClientHintFullVersionList_0_Version      : '99.0.4844.84'
+      UAClientHintFullVersionList_1_Brand        : 'Opera'
+      UAClientHintFullVersionList_1_Version      : '99.0.4844.84'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.0.0'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 OPR/85.0.4341.60 LikeWise/94.6.5565.66'
+      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Opera";v="85"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"99.0.4844.84"'
+      Sec-Ch-Ua-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="99.0.4844.84", "Opera";v="99.0.4844.84"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.0.0"'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '99.0'
+      LayoutEngineVersionMajor                   : '99'
+      LayoutEngineNameVersion                    : 'Blink 99.0'
+      LayoutEngineNameVersionMajor               : 'Blink 99'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Opera'
+      AgentVersion                               : '85.0.4341.60'
+      AgentVersionMajor                          : '85'
+      AgentNameVersion                           : 'Opera 85.0.4341.60'
+      AgentNameVersionMajor                      : 'Opera 85'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Chromium'
+      UAClientHintBrands_0_Version               : '99'
+      UAClientHintBrands_1_Brand                 : 'Opera'
+      UAClientHintBrands_1_Version               : '85'
+      UAClientHintFullVersion                    : '99.0.4844.84'
+      UAClientHintFullVersionList_0_Brand        : 'Chromium'
+      UAClientHintFullVersionList_0_Version      : '99.0.4844.84'
+      UAClientHintFullVersionList_1_Brand        : 'Opera'
+      UAClientHintFullVersionList_1_Version      : '99.0.4844.84'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.0.0'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 OPR/85.0.4341.60 LikeWise/95.6.7405.6'
+      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Opera";v="85"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"99.0.4844.84"'
+      Sec-Ch-Ua-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="99.0.4844.84", "Opera";v="99.0.4844.84"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.0.0"'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '99.0'
+      LayoutEngineVersionMajor                   : '99'
+      LayoutEngineNameVersion                    : 'Blink 99.0'
+      LayoutEngineNameVersionMajor               : 'Blink 99'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Opera'
+      AgentVersion                               : '85.0.4341.60'
+      AgentVersionMajor                          : '85'
+      AgentNameVersion                           : 'Opera 85.0.4341.60'
+      AgentNameVersionMajor                      : 'Opera 85'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Chromium'
+      UAClientHintBrands_0_Version               : '99'
+      UAClientHintBrands_1_Brand                 : 'Opera'
+      UAClientHintBrands_1_Version               : '85'
+      UAClientHintFullVersion                    : '99.0.4844.84'
+      UAClientHintFullVersionList_0_Brand        : 'Chromium'
+      UAClientHintFullVersionList_0_Version      : '99.0.4844.84'
+      UAClientHintFullVersionList_1_Brand        : 'Opera'
+      UAClientHintFullVersionList_1_Version      : '99.0.4844.84'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.0.0'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 OPR/85.0.4341.60 Trailer/98.3.7512.13'
+      Sec-Ch-Ua                                  : '" Not A;Brand";v="99", "Chromium";v="99", "Opera";v="85"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Full-Version                     : '"99.0.4844.84"'
+      Sec-Ch-Ua-Full-Version-List                : '" Not A;Brand";v="99.0.0.0", "Chromium";v="99.0.4844.84", "Opera";v="99.0.4844.84"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.0.0"'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '99.0'
+      LayoutEngineVersionMajor                   : '99'
+      LayoutEngineNameVersion                    : 'Blink 99.0'
+      LayoutEngineNameVersionMajor               : 'Blink 99'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Opera'
+      AgentVersion                               : '85.0.4341.60'
+      AgentVersionMajor                          : '85'
+      AgentNameVersion                           : 'Opera 85.0.4341.60'
+      AgentNameVersionMajor                      : 'Opera 85'
+
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBrands_0_Brand                 : 'Chromium'
+      UAClientHintBrands_0_Version               : '99'
+      UAClientHintBrands_1_Brand                 : 'Opera'
+      UAClientHintBrands_1_Version               : '85'
+      UAClientHintFullVersion                    : '99.0.4844.84'
+      UAClientHintFullVersionList_0_Brand        : 'Chromium'
+      UAClientHintFullVersionList_0_Version      : '99.0.4844.84'
+      UAClientHintFullVersionList_1_Brand        : 'Opera'
+      UAClientHintFullVersionList_1_Version      : '99.0.4844.84'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.0.0'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:94.0) Gecko/20100101 Firefox/94.0 Herring/583.19.9'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Apple Macintosh'
+      DeviceBrand                          : 'Apple'
+      DeviceCpu                            : 'Intel'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Mac OS'
+      OperatingSystemVersion               : '10.13'
+      OperatingSystemVersionMajor          : '10.13'
+      OperatingSystemNameVersion           : 'Mac OS 10.13'
+      OperatingSystemNameVersionMajor      : 'Mac OS 10.13'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Gecko'
+      LayoutEngineVersion                  : '94.0'
+      LayoutEngineVersionMajor             : '94'
+      LayoutEngineNameVersion              : 'Gecko 94.0'
+      LayoutEngineNameVersionMajor         : 'Gecko 94'
+      LayoutEngineBuild                    : '20100101'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Firefox'
+      AgentVersion                         : '94.0'
+      AgentVersionMajor                    : '94'
+      AgentNameVersion                     : 'Firefox 94.0'
+      AgentNameVersionMajor                : 'Firefox 94'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 Agency/100.8.7507.8'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '>=10'
+      OperatingSystemVersionMajor          : '>=10'
+      OperatingSystemNameVersion           : 'Windows >=10'
+      OperatingSystemNameVersionMajor      : 'Windows >=10'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '103.0'
+      LayoutEngineVersionMajor             : '103'
+      LayoutEngineNameVersion              : 'Blink 103.0'
+      LayoutEngineNameVersionMajor         : 'Blink 103'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Edge'
+      AgentVersion                         : '103.0.1264.44'
+      AgentVersionMajor                    : '103'
+      AgentNameVersion                     : 'Edge 103.0.1264.44'
+      AgentNameVersionMajor                : 'Edge 103'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 AtContent/95.5.6374.75'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '>=10'
+      OperatingSystemVersionMajor          : '>=10'
+      OperatingSystemNameVersion           : 'Windows >=10'
+      OperatingSystemNameVersionMajor      : 'Windows >=10'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '103.0'
+      LayoutEngineVersionMajor             : '103'
+      LayoutEngineNameVersion              : 'Blink 103.0'
+      LayoutEngineNameVersionMajor         : 'Blink 103'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Edge'
+      AgentVersion                         : '103.0.1264.44'
+      AgentVersionMajor                    : '103'
+      AgentNameVersion                     : 'Edge 103.0.1264.44'
+      AgentNameVersionMajor                : 'Edge 103'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 Config/99.2.4311.12'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '>=10'
+      OperatingSystemVersionMajor          : '>=10'
+      OperatingSystemNameVersion           : 'Windows >=10'
+      OperatingSystemNameVersionMajor      : 'Windows >=10'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '103.0'
+      LayoutEngineVersionMajor             : '103'
+      LayoutEngineNameVersion              : 'Blink 103.0'
+      LayoutEngineNameVersionMajor         : 'Blink 103'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Edge'
+      AgentVersion                         : '103.0.1264.44'
+      AgentVersionMajor                    : '103'
+      AgentNameVersion                     : 'Edge 103.0.1264.44'
+      AgentNameVersionMajor                : 'Edge 103'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 GLS/90.10.6209.10'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '>=10'
+      OperatingSystemVersionMajor          : '>=10'
+      OperatingSystemNameVersion           : 'Windows >=10'
+      OperatingSystemNameVersionMajor      : 'Windows >=10'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '103.0'
+      LayoutEngineVersionMajor             : '103'
+      LayoutEngineNameVersion              : 'Blink 103.0'
+      LayoutEngineNameVersionMajor         : 'Blink 103'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Edge'
+      AgentVersion                         : '103.0.1264.44'
+      AgentVersionMajor                    : '103'
+      AgentNameVersion                     : 'Edge 103.0.1264.44'
+      AgentNameVersionMajor                : 'Edge 103'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 Herring/96.1.1770.71'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '>=10'
+      OperatingSystemVersionMajor          : '>=10'
+      OperatingSystemNameVersion           : 'Windows >=10'
+      OperatingSystemNameVersionMajor      : 'Windows >=10'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '103.0'
+      LayoutEngineVersionMajor             : '103'
+      LayoutEngineNameVersion              : 'Blink 103.0'
+      LayoutEngineNameVersionMajor         : 'Blink 103'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Edge'
+      AgentVersion                         : '103.0.1264.44'
+      AgentVersionMajor                    : '103'
+      AgentNameVersion                     : 'Edge 103.0.1264.44'
+      AgentNameVersionMajor                : 'Edge 103'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 LikeWise/91.6.3585.86'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '>=10'
+      OperatingSystemVersionMajor          : '>=10'
+      OperatingSystemNameVersion           : 'Windows >=10'
+      OperatingSystemNameVersionMajor      : 'Windows >=10'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '103.0'
+      LayoutEngineVersionMajor             : '103'
+      LayoutEngineNameVersion              : 'Blink 103.0'
+      LayoutEngineNameVersionMajor         : 'Blink 103'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Edge'
+      AgentVersion                         : '103.0.1264.44'
+      AgentVersionMajor                    : '103'
+      AgentNameVersion                     : 'Edge 103.0.1264.44'
+      AgentNameVersionMajor                : 'Edge 103'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 OpenWave/95.4.2243.44'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '>=10'
+      OperatingSystemVersionMajor          : '>=10'
+      OperatingSystemNameVersion           : 'Windows >=10'
+      OperatingSystemNameVersionMajor      : 'Windows >=10'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '103.0'
+      LayoutEngineVersionMajor             : '103'
+      LayoutEngineNameVersion              : 'Blink 103.0'
+      LayoutEngineNameVersionMajor         : 'Blink 103'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Edge'
+      AgentVersion                         : '103.0.1264.44'
+      AgentVersionMajor                    : '103'
+      AgentNameVersion                     : 'Edge 103.0.1264.44'
+      AgentNameVersionMajor                : 'Edge 103'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 Trailer/92.3.8742.43'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '>=10'
+      OperatingSystemVersionMajor          : '>=10'
+      OperatingSystemNameVersion           : 'Windows >=10'
+      OperatingSystemNameVersionMajor      : 'Windows >=10'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '103.0'
+      LayoutEngineVersionMajor             : '103'
+      LayoutEngineNameVersion              : 'Blink 103.0'
+      LayoutEngineNameVersionMajor         : 'Blink 103'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Edge'
+      AgentVersion                         : '103.0.1264.44'
+      AgentVersionMajor                    : '103'
+      AgentNameVersion                     : 'Edge 103.0.1264.44'
+      AgentNameVersionMajor                : 'Edge 103'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 Viewer/96.9.4198.99'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '>=10'
+      OperatingSystemVersionMajor          : '>=10'
+      OperatingSystemNameVersion           : 'Windows >=10'
+      OperatingSystemNameVersionMajor      : 'Windows >=10'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '103.0'
+      LayoutEngineVersionMajor             : '103'
+      LayoutEngineNameVersion              : 'Blink 103.0'
+      LayoutEngineNameVersionMajor         : 'Blink 103'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Edge'
+      AgentVersion                         : '103.0.1264.44'
+      AgentVersionMajor                    : '103'
+      AgentNameVersion                     : 'Edge 103.0.1264.44'
+      AgentNameVersionMajor                : 'Edge 103'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.62 Herring/98.1.5870.71'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '>=10'
+      OperatingSystemVersionMajor          : '>=10'
+      OperatingSystemNameVersion           : 'Windows >=10'
+      OperatingSystemNameVersionMajor      : 'Windows >=10'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '103.0'
+      LayoutEngineVersionMajor             : '103'
+      LayoutEngineNameVersion              : 'Blink 103.0'
+      LayoutEngineNameVersionMajor         : 'Blink 103'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Edge'
+      AgentVersion                         : '103.0.1264.62'
+      AgentVersionMajor                    : '103'
+      AgentNameVersion                     : 'Edge 103.0.1264.62'
+      AgentNameVersionMajor                : 'Edge 103'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 OPR/89.0.4447.48 Herring/95.1.6890.91'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '10.0'
+      OperatingSystemVersionMajor          : '10'
+      OperatingSystemNameVersion           : 'Windows 10.0'
+      OperatingSystemNameVersionMajor      : 'Windows 10'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '103.0'
+      LayoutEngineVersionMajor             : '103'
+      LayoutEngineNameVersion              : 'Blink 103.0'
+      LayoutEngineNameVersionMajor         : 'Blink 103'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Opera'
+      AgentVersion                         : '89.0.4447.48'
+      AgentVersionMajor                    : '89'
+      AgentNameVersion                     : 'Opera 89.0.4447.48'
+      AgentNameVersionMajor                : 'Opera 89'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36 Herring/100.1.7540.41'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '??'
+      OperatingSystemVersionMajor          : '??'
+      OperatingSystemNameVersion           : 'Windows NT ??'
+      OperatingSystemNameVersionMajor      : 'Windows NT ??'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '103'
+      LayoutEngineVersionMajor             : '103'
+      LayoutEngineNameVersion              : 'Blink 103'
+      LayoutEngineNameVersionMajor         : 'Blink 103'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Chrome'
+      AgentVersion                         : '103'
+      AgentVersionMajor                    : '103'
+      AgentNameVersion                     : 'Chrome 103'
+      AgentNameVersionMajor                : 'Chrome 103'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0 Agency/95.8.7917.18'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '8.1'
+      OperatingSystemVersionMajor          : '8'
+      OperatingSystemNameVersion           : 'Windows 8.1'
+      OperatingSystemNameVersionMajor      : 'Windows 8'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Gecko'
+      LayoutEngineVersion                  : '101.0'
+      LayoutEngineVersionMajor             : '101'
+      LayoutEngineNameVersion              : 'Gecko 101.0'
+      LayoutEngineNameVersionMajor         : 'Gecko 101'
+      LayoutEngineBuild                    : '20100101'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Firefox'
+      AgentVersion                         : '101.0'
+      AgentVersionMajor                    : '101'
+      AgentNameVersion                     : 'Firefox 101.0'
+      AgentNameVersionMajor                : 'Firefox 101'

programming_language: CoffeeScript
filename: ClientHints-Tests.yaml
change_type: ModificationType.MODIFY
diff: @@ -386,9 +386,9 @@ config:
       LayoutEngineNameVersionMajor               : 'Blink 100'
       AgentClass                                 : 'Browser'
       AgentName                                  : 'Chrome'
-      AgentVersion                               : '100.0'
+      AgentVersion                               : '100.0.4896.75'
       AgentVersionMajor                          : '100'
-      AgentNameVersion                           : 'Chrome 100.0'
+      AgentNameVersion                           : 'Chrome 100.0.4896.75'
       AgentNameVersionMajor                      : 'Chrome 100'
       UAClientHintArchitecture                   : 'x86'
       UAClientHintBrands_0_Brand                 : 'Chromium'
@@ -1230,7 +1230,7 @@ config:
 
 
 # Chromium Version 101.0.4951.64 (Official Build) snap (64-bit) on Ubuntu 20.04 LTS
-# NOTE: There is no Chromium tag so we use the Sec-Ch-Ua provided version.
+# NOTE: There is no Chromium tag so it is a bit unclear which version tag is to be used.
 - test:
     input:
       User-Agent                           : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'
@@ -1251,15 +1251,15 @@ config:
       OperatingSystemNameVersionMajor      : 'Linux ??'
       LayoutEngineClass                    : 'Browser'
       LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '101'
+      LayoutEngineVersion                  : '101.0'
       LayoutEngineVersionMajor             : '101'
-      LayoutEngineNameVersion              : 'Blink 101'
+      LayoutEngineNameVersion              : 'Blink 101.0'
       LayoutEngineNameVersionMajor         : 'Blink 101'
       AgentClass                           : 'Browser'
       AgentName                            : 'Chromium'
-      AgentVersion                         : '101' #.0.4951.64'
+      AgentVersion                         : '101.0.4951.64'
       AgentVersionMajor                    : '101'
-      AgentNameVersion                     : 'Chromium 101' #.0.4951.64'
+      AgentNameVersion                     : 'Chromium 101.0.4951.64'
       AgentNameVersionMajor                : 'Chromium 101'
       UAClientHintBrands_0_Brand           : 'Chromium'
       UAClientHintBrands_0_Version         : '101'
@@ -1340,15 +1340,15 @@ config:
       OperatingSystemNameVersionMajor            : 'Linux ??'
       LayoutEngineClass                          : 'Browser'
       LayoutEngineName                           : 'Blink'
-      LayoutEngineVersion                        : '95'
+      LayoutEngineVersion                        : '95.0'
       LayoutEngineVersionMajor                   : '95'
-      LayoutEngineNameVersion                    : 'Blink 95'
+      LayoutEngineNameVersion                    : 'Blink 95.0'
       LayoutEngineNameVersionMajor               : 'Blink 95'
       AgentClass                                 : 'Browser'
       AgentName                                  : 'Chromium'
-      AgentVersion                               : '95'
+      AgentVersion                               : '95.0.4638.69'
       AgentVersionMajor                          : '95'
-      AgentNameVersion                           : 'Chromium 95'
+      AgentNameVersion                           : 'Chromium 95.0.4638.69'
       AgentNameVersionMajor                      : 'Chromium 95'
 
       UAClientHintBrands_0_Brand                 : 'Chromium'
@@ -1382,15 +1382,15 @@ config:
       OperatingSystemNameVersionMajor            : 'Linux 5'
       LayoutEngineClass                          : 'Browser'
       LayoutEngineName                           : 'Blink'
-      LayoutEngineVersion                        : '95'
+      LayoutEngineVersion                        : '95.0'
       LayoutEngineVersionMajor                   : '95'
-      LayoutEngineNameVersion                    : 'Blink 95'
+      LayoutEngineNameVersion                    : 'Blink 95.0'
       LayoutEngineNameVersionMajor               : 'Blink 95'
       AgentClass                                 : 'Browser'
       AgentName                                  : 'Chromium'
-      AgentVersion                               : '95'
+      AgentVersion                               : '95.0.4638.69'
       AgentVersionMajor                          : '95'
-      AgentNameVersion                           : 'Chromium 95'
+      AgentNameVersion                           : 'Chromium 95.0.4638.69'
       AgentNameVersionMajor                      : 'Chromium 95'
 
       UAClientHintArchitecture                   : 'x86'

programming_language: CoffeeScript
filename: ExtendedAgents.yaml
change_type: ModificationType.MODIFY
diff: @@ -28,6 +28,7 @@ config:
     - 'HardwareTags'
     - 'SpecialChromeBrowserNames'
     - 'BrowserPluginNames'
+    - 'KamoAgents'
     values:
     - 'anonym'
     - 'OMI'  # Seen in some Sony TVs
@@ -74,7 +75,7 @@ config:
 
 - test:
     input:
-      User-Agent                           : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:94.0) Gecko/20100101 Firefox/94.0 Herring/583.19.9'
+      User-Agent                           : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:94.0) Gecko/20100101 Firefox/94.0 Basjes/1.2.3'
     expected:
       DeviceClass                          : 'Desktop'
       DeviceName                           : 'Apple Macintosh'
@@ -95,386 +96,9 @@ config:
       LayoutEngineNameVersionMajor         : 'Gecko 94'
       LayoutEngineBuild                    : '20100101'
       AgentClass                           : 'Browser'
-      AgentName                            : 'Herring'
-      AgentVersion                         : '583.19.9'
-      AgentVersionMajor                    : '583'
-      AgentNameVersion                     : 'Herring 583.19.9'
-      AgentNameVersionMajor                : 'Herring 583'
+      AgentName                            : 'Basjes'
+      AgentVersion                         : '1.2.3'
+      AgentVersionMajor                    : '1'
+      AgentNameVersion                     : 'Basjes 1.2.3'
+      AgentNameVersionMajor                : 'Basjes 1'
 
-
-- test:
-    input:
-      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 Agency/100.8.7507.8'
-    expected:
-      DeviceClass                          : 'Desktop'
-      DeviceName                           : 'Desktop'
-      DeviceBrand                          : 'Unknown'
-      DeviceCpu                            : 'Intel x86_64'
-      DeviceCpuBits                        : '64'
-      OperatingSystemClass                 : 'Desktop'
-      OperatingSystemName                  : 'Windows NT'
-      OperatingSystemVersion               : '>=10'
-      OperatingSystemVersionMajor          : '>=10'
-      OperatingSystemNameVersion           : 'Windows >=10'
-      OperatingSystemNameVersionMajor      : 'Windows >=10'
-      LayoutEngineClass                    : 'Browser'
-      LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '103.0'
-      LayoutEngineVersionMajor             : '103'
-      LayoutEngineNameVersion              : 'Blink 103.0'
-      LayoutEngineNameVersionMajor         : 'Blink 103'
-      AgentClass                           : 'Browser'
-      AgentName                            : 'Agency'
-      AgentVersion                         : '100.8.7507.8'
-      AgentVersionMajor                    : '100'
-      AgentNameVersion                     : 'Agency 100.8.7507.8'
-      AgentNameVersionMajor                : 'Agency 100'
-
-
-- test:
-    input:
-      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 AtContent/95.5.6374.75'
-    expected:
-      DeviceClass                          : 'Desktop'
-      DeviceName                           : 'Desktop'
-      DeviceBrand                          : 'Unknown'
-      DeviceCpu                            : 'Intel x86_64'
-      DeviceCpuBits                        : '64'
-      OperatingSystemClass                 : 'Desktop'
-      OperatingSystemName                  : 'Windows NT'
-      OperatingSystemVersion               : '>=10'
-      OperatingSystemVersionMajor          : '>=10'
-      OperatingSystemNameVersion           : 'Windows >=10'
-      OperatingSystemNameVersionMajor      : 'Windows >=10'
-      LayoutEngineClass                    : 'Browser'
-      LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '103.0'
-      LayoutEngineVersionMajor             : '103'
-      LayoutEngineNameVersion              : 'Blink 103.0'
-      LayoutEngineNameVersionMajor         : 'Blink 103'
-      AgentClass                           : 'Browser'
-      AgentName                            : 'AtContent'
-      AgentVersion                         : '95.5.6374.75'
-      AgentVersionMajor                    : '95'
-      AgentNameVersion                     : 'AtContent 95.5.6374.75'
-      AgentNameVersionMajor                : 'AtContent 95'
-
-
-- test:
-    input:
-      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 Config/99.2.4311.12'
-    expected:
-      DeviceClass                          : 'Desktop'
-      DeviceName                           : 'Desktop'
-      DeviceBrand                          : 'Unknown'
-      DeviceCpu                            : 'Intel x86_64'
-      DeviceCpuBits                        : '64'
-      OperatingSystemClass                 : 'Desktop'
-      OperatingSystemName                  : 'Windows NT'
-      OperatingSystemVersion               : '>=10'
-      OperatingSystemVersionMajor          : '>=10'
-      OperatingSystemNameVersion           : 'Windows >=10'
-      OperatingSystemNameVersionMajor      : 'Windows >=10'
-      LayoutEngineClass                    : 'Browser'
-      LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '103.0'
-      LayoutEngineVersionMajor             : '103'
-      LayoutEngineNameVersion              : 'Blink 103.0'
-      LayoutEngineNameVersionMajor         : 'Blink 103'
-      AgentClass                           : 'Browser'
-      AgentName                            : 'Config'
-      AgentVersion                         : '99.2.4311.12'
-      AgentVersionMajor                    : '99'
-      AgentNameVersion                     : 'Config 99.2.4311.12'
-      AgentNameVersionMajor                : 'Config 99'
-
-
-- test:
-    input:
-      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 GLS/90.10.6209.10'
-    expected:
-      DeviceClass                          : 'Desktop'
-      DeviceName                           : 'Desktop'
-      DeviceBrand                          : 'Unknown'
-      DeviceCpu                            : 'Intel x86_64'
-      DeviceCpuBits                        : '64'
-      OperatingSystemClass                 : 'Desktop'
-      OperatingSystemName                  : 'Windows NT'
-      OperatingSystemVersion               : '>=10'
-      OperatingSystemVersionMajor          : '>=10'
-      OperatingSystemNameVersion           : 'Windows >=10'
-      OperatingSystemNameVersionMajor      : 'Windows >=10'
-      LayoutEngineClass                    : 'Browser'
-      LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '103.0'
-      LayoutEngineVersionMajor             : '103'
-      LayoutEngineNameVersion              : 'Blink 103.0'
-      LayoutEngineNameVersionMajor         : 'Blink 103'
-      AgentClass                           : 'Browser'
-      AgentName                            : 'GLS'
-      AgentVersion                         : '90.10.6209.10'
-      AgentVersionMajor                    : '90'
-      AgentNameVersion                     : 'GLS 90.10.6209.10'
-      AgentNameVersionMajor                : 'GLS 90'
-
-
-- test:
-    input:
-      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 Herring/96.1.1770.71'
-    expected:
-      DeviceClass                          : 'Desktop'
-      DeviceName                           : 'Desktop'
-      DeviceBrand                          : 'Unknown'
-      DeviceCpu                            : 'Intel x86_64'
-      DeviceCpuBits                        : '64'
-      OperatingSystemClass                 : 'Desktop'
-      OperatingSystemName                  : 'Windows NT'
-      OperatingSystemVersion               : '>=10'
-      OperatingSystemVersionMajor          : '>=10'
-      OperatingSystemNameVersion           : 'Windows >=10'
-      OperatingSystemNameVersionMajor      : 'Windows >=10'
-      LayoutEngineClass                    : 'Browser'
-      LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '103.0'
-      LayoutEngineVersionMajor             : '103'
-      LayoutEngineNameVersion              : 'Blink 103.0'
-      LayoutEngineNameVersionMajor         : 'Blink 103'
-      AgentClass                           : 'Browser'
-      AgentName                            : 'Herring'
-      AgentVersion                         : '96.1.1770.71'
-      AgentVersionMajor                    : '96'
-      AgentNameVersion                     : 'Herring 96.1.1770.71'
-      AgentNameVersionMajor                : 'Herring 96'
-
-
-- test:
-    input:
-      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 LikeWise/91.6.3585.86'
-    expected:
-      DeviceClass                          : 'Desktop'
-      DeviceName                           : 'Desktop'
-      DeviceBrand                          : 'Unknown'
-      DeviceCpu                            : 'Intel x86_64'
-      DeviceCpuBits                        : '64'
-      OperatingSystemClass                 : 'Desktop'
-      OperatingSystemName                  : 'Windows NT'
-      OperatingSystemVersion               : '>=10'
-      OperatingSystemVersionMajor          : '>=10'
-      OperatingSystemNameVersion           : 'Windows >=10'
-      OperatingSystemNameVersionMajor      : 'Windows >=10'
-      LayoutEngineClass                    : 'Browser'
-      LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '103.0'
-      LayoutEngineVersionMajor             : '103'
-      LayoutEngineNameVersion              : 'Blink 103.0'
-      LayoutEngineNameVersionMajor         : 'Blink 103'
-      AgentClass                           : 'Browser'
-      AgentName                            : 'LikeWise'
-      AgentVersion                         : '91.6.3585.86'
-      AgentVersionMajor                    : '91'
-      AgentNameVersion                     : 'LikeWise 91.6.3585.86'
-      AgentNameVersionMajor                : 'LikeWise 91'
-
-
-- test:
-    input:
-      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 OpenWave/95.4.2243.44'
-    expected:
-      DeviceClass                          : 'Desktop'
-      DeviceName                           : 'Desktop'
-      DeviceBrand                          : 'Unknown'
-      DeviceCpu                            : 'Intel x86_64'
-      DeviceCpuBits                        : '64'
-      OperatingSystemClass                 : 'Desktop'
-      OperatingSystemName                  : 'Windows NT'
-      OperatingSystemVersion               : '>=10'
-      OperatingSystemVersionMajor          : '>=10'
-      OperatingSystemNameVersion           : 'Windows >=10'
-      OperatingSystemNameVersionMajor      : 'Windows >=10'
-      LayoutEngineClass                    : 'Browser'
-      LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '103.0'
-      LayoutEngineVersionMajor             : '103'
-      LayoutEngineNameVersion              : 'Blink 103.0'
-      LayoutEngineNameVersionMajor         : 'Blink 103'
-      AgentClass                           : 'Browser'
-      AgentName                            : 'OpenWave'
-      AgentVersion                         : '95.4.2243.44'
-      AgentVersionMajor                    : '95'
-      AgentNameVersion                     : 'OpenWave 95.4.2243.44'
-      AgentNameVersionMajor                : 'OpenWave 95'
-
-
-- test:
-    input:
-      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 Trailer/92.3.8742.43'
-    expected:
-      DeviceClass                          : 'Desktop'
-      DeviceName                           : 'Desktop'
-      DeviceBrand                          : 'Unknown'
-      DeviceCpu                            : 'Intel x86_64'
-      DeviceCpuBits                        : '64'
-      OperatingSystemClass                 : 'Desktop'
-      OperatingSystemName                  : 'Windows NT'
-      OperatingSystemVersion               : '>=10'
-      OperatingSystemVersionMajor          : '>=10'
-      OperatingSystemNameVersion           : 'Windows >=10'
-      OperatingSystemNameVersionMajor      : 'Windows >=10'
-      LayoutEngineClass                    : 'Browser'
-      LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '103.0'
-      LayoutEngineVersionMajor             : '103'
-      LayoutEngineNameVersion              : 'Blink 103.0'
-      LayoutEngineNameVersionMajor         : 'Blink 103'
-      AgentClass                           : 'Browser'
-      AgentName                            : 'Trailer'
-      AgentVersion                         : '92.3.8742.43'
-      AgentVersionMajor                    : '92'
-      AgentNameVersion                     : 'Trailer 92.3.8742.43'
-      AgentNameVersionMajor                : 'Trailer 92'
-
-
-- test:
-    input:
-      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44 Viewer/96.9.4198.99'
-    expected:
-      DeviceClass                          : 'Desktop'
-      DeviceName                           : 'Desktop'
-      DeviceBrand                          : 'Unknown'
-      DeviceCpu                            : 'Intel x86_64'
-      DeviceCpuBits                        : '64'
-      OperatingSystemClass                 : 'Desktop'
-      OperatingSystemName                  : 'Windows NT'
-      OperatingSystemVersion               : '>=10'
-      OperatingSystemVersionMajor          : '>=10'
-      OperatingSystemNameVersion           : 'Windows >=10'
-      OperatingSystemNameVersionMajor      : 'Windows >=10'
-      LayoutEngineClass                    : 'Browser'
-      LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '103.0'
-      LayoutEngineVersionMajor             : '103'
-      LayoutEngineNameVersion              : 'Blink 103.0'
-      LayoutEngineNameVersionMajor         : 'Blink 103'
-      AgentClass                           : 'Browser'
-      AgentName                            : 'Viewer'
-      AgentVersion                         : '96.9.4198.99'
-      AgentVersionMajor                    : '96'
-      AgentNameVersion                     : 'Viewer 96.9.4198.99'
-      AgentNameVersionMajor                : 'Viewer 96'
-
-
-- test:
-    input:
-      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.62 Herring/98.1.5870.71'
-    expected:
-      DeviceClass                          : 'Desktop'
-      DeviceName                           : 'Desktop'
-      DeviceBrand                          : 'Unknown'
-      DeviceCpu                            : 'Intel x86_64'
-      DeviceCpuBits                        : '64'
-      OperatingSystemClass                 : 'Desktop'
-      OperatingSystemName                  : 'Windows NT'
-      OperatingSystemVersion               : '>=10'
-      OperatingSystemVersionMajor          : '>=10'
-      OperatingSystemNameVersion           : 'Windows >=10'
-      OperatingSystemNameVersionMajor      : 'Windows >=10'
-      LayoutEngineClass                    : 'Browser'
-      LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '103.0'
-      LayoutEngineVersionMajor             : '103'
-      LayoutEngineNameVersion              : 'Blink 103.0'
-      LayoutEngineNameVersionMajor         : 'Blink 103'
-      AgentClass                           : 'Browser'
-      AgentName                            : 'Herring'
-      AgentVersion                         : '98.1.5870.71'
-      AgentVersionMajor                    : '98'
-      AgentNameVersion                     : 'Herring 98.1.5870.71'
-      AgentNameVersionMajor                : 'Herring 98'
-
-
-- test:
-    input:
-      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 OPR/89.0.4447.48 Herring/95.1.6890.91'
-    expected:
-      DeviceClass                          : 'Desktop'
-      DeviceName                           : 'Desktop'
-      DeviceBrand                          : 'Unknown'
-      DeviceCpu                            : 'Intel x86_64'
-      DeviceCpuBits                        : '64'
-      OperatingSystemClass                 : 'Desktop'
-      OperatingSystemName                  : 'Windows NT'
-      OperatingSystemVersion               : '10.0'
-      OperatingSystemVersionMajor          : '10'
-      OperatingSystemNameVersion           : 'Windows 10.0'
-      OperatingSystemNameVersionMajor      : 'Windows 10'
-      LayoutEngineClass                    : 'Browser'
-      LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '103.0'
-      LayoutEngineVersionMajor             : '103'
-      LayoutEngineNameVersion              : 'Blink 103.0'
-      LayoutEngineNameVersionMajor         : 'Blink 103'
-      AgentClass                           : 'Browser'
-      AgentName                            : 'Herring'
-      AgentVersion                         : '95.1.6890.91'
-      AgentVersionMajor                    : '95'
-      AgentNameVersion                     : 'Herring 95.1.6890.91'
-      AgentNameVersionMajor                : 'Herring 95'
-
-
-- test:
-    input:
-      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36 Herring/100.1.7540.41'
-    expected:
-      DeviceClass                          : 'Desktop'
-      DeviceName                           : 'Desktop'
-      DeviceBrand                          : 'Unknown'
-      DeviceCpu                            : 'Intel x86_64'
-      DeviceCpuBits                        : '64'
-      OperatingSystemClass                 : 'Desktop'
-      OperatingSystemName                  : 'Windows NT'
-      OperatingSystemVersion               : '??'
-      OperatingSystemVersionMajor          : '??'
-      OperatingSystemNameVersion           : 'Windows NT ??'
-      OperatingSystemNameVersionMajor      : 'Windows NT ??'
-      LayoutEngineClass                    : 'Browser'
-      LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '103'
-      LayoutEngineVersionMajor             : '103'
-      LayoutEngineNameVersion              : 'Blink 103'
-      LayoutEngineNameVersionMajor         : 'Blink 103'
-      AgentClass                           : 'Browser'
-      AgentName                            : 'Herring'
-      AgentVersion                         : '100.1.7540.41'
-      AgentVersionMajor                    : '100'
-      AgentNameVersion                     : 'Herring 100.1.7540.41'
-      AgentNameVersionMajor                : 'Herring 100'
-
-
-- test:
-    input:
-      User-Agent                           : 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0 Agency/95.8.7917.18'
-    expected:
-      DeviceClass                          : 'Desktop'
-      DeviceName                           : 'Desktop'
-      DeviceBrand                          : 'Unknown'
-      DeviceCpu                            : 'Intel x86_64'
-      DeviceCpuBits                        : '64'
-      OperatingSystemClass                 : 'Desktop'
-      OperatingSystemName                  : 'Windows NT'
-      OperatingSystemVersion               : '8.1'
-      OperatingSystemVersionMajor          : '8'
-      OperatingSystemNameVersion           : 'Windows 8.1'
-      OperatingSystemNameVersionMajor      : 'Windows 8'
-      LayoutEngineClass                    : 'Browser'
-      LayoutEngineName                     : 'Gecko'
-      LayoutEngineVersion                  : '101.0'
-      LayoutEngineVersionMajor             : '101'
-      LayoutEngineNameVersion              : 'Gecko 101.0'
-      LayoutEngineNameVersionMajor         : 'Gecko 101'
-      LayoutEngineBuild                    : '20100101'
-      AgentClass                           : 'Browser'
-      AgentName                            : 'Agency'
-      AgentVersion                         : '95.8.7917.18'
-      AgentVersionMajor                    : '95'
-      AgentNameVersion                     : 'Agency 95.8.7917.18'
-      AgentNameVersionMajor                : 'Agency 95'

programming_language: CoffeeScript
filename: FederatedSocialMedia.yaml
change_type: ModificationType.MODIFY
diff: @@ -244,9 +244,9 @@ config:
       OperatingSystemNameVersionMajor      : 'Linux ??'
       LayoutEngineClass                    : 'Browser'
       LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '104'
+      LayoutEngineVersion                  : '104.0'
       LayoutEngineVersionMajor             : '104'
-      LayoutEngineNameVersion              : 'Blink 104'
+      LayoutEngineNameVersion              : 'Blink 104.0'
       LayoutEngineNameVersionMajor         : 'Blink 104'
       AgentClass                           : 'Desktop App'
       AgentName                            : 'Element'

programming_language: CoffeeScript
filename: GeckoFirefox.yaml
change_type: ModificationType.MODIFY
diff: @@ -26,6 +26,7 @@ config:
     - 'ExactMatchMobileBrands'
     - 'BrowserPluginNames'
     - 'GenericUnwantedNames'
+    - 'KamoAgents'
     values:
     - 'AppleWebKit'
 

programming_language: CoffeeScript
filename: GoogleChrome.yaml
change_type: ModificationType.MODIFY
diff: @@ -3207,3 +3207,76 @@ config:
       AgentVersionMajor                    : '80'
       AgentNameVersion                     : 'Brave 80.0.3987.149'
       AgentNameVersionMajor                : 'Brave 80'
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Mobile Safari/537.36'
+      Sec-Ch-Ua                            : '"Brave";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
+      Sec-Ch-Ua-Mobile                     : '?1'
+      Sec-Ch-Ua-Platform                   : '"Android"'
+    expected:
+      DeviceClass                          : 'Phone'
+      DeviceName                           : 'Unknown'
+      DeviceBrand                          : 'Unknown'
+      OperatingSystemClass                 : 'Mobile'
+      OperatingSystemName                  : 'Android'
+      OperatingSystemVersion               : '??'
+      OperatingSystemVersionMajor          : '??'
+      OperatingSystemNameVersion           : 'Android ??'
+      OperatingSystemNameVersionMajor      : 'Android ??'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '107'
+      LayoutEngineVersionMajor             : '107'
+      LayoutEngineNameVersion              : 'Blink 107'
+      LayoutEngineNameVersionMajor         : 'Blink 107'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Brave'
+      AgentVersion                         : '107'
+      AgentVersionMajor                    : '107'
+      AgentNameVersion                     : 'Brave 107'
+      AgentNameVersionMajor                : 'Brave 107'
+
+      UAClientHintBrands_0_Brand           : 'Brave'
+      UAClientHintBrands_0_Version         : '107'
+      UAClientHintBrands_1_Brand           : 'Chromium'
+      UAClientHintBrands_1_Version         : '107'
+      UAClientHintMobile                   : 'true'
+      UAClientHintPlatform                 : 'Android'
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
+      Sec-Ch-Ua                            : '"Google Chrome";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
+      Sec-Ch-Ua-Mobile                     : '?0'
+      Sec-Ch-Ua-Platform                   : '"macOS"'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Apple Macintosh'
+      DeviceBrand                          : 'Apple'
+      DeviceCpu                            : 'Intel'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Mac OS'
+      OperatingSystemVersion               : '>=10.15.7'
+      OperatingSystemVersionMajor          : '>=10.15'
+      OperatingSystemNameVersion           : 'Mac OS >=10.15.7'
+      OperatingSystemNameVersionMajor      : 'Mac OS >=10.15'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '107'
+      LayoutEngineVersionMajor             : '107'
+      LayoutEngineNameVersion              : 'Blink 107'
+      LayoutEngineNameVersionMajor         : 'Blink 107'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Chrome'
+      AgentVersion                         : '107'
+      AgentVersionMajor                    : '107'
+      AgentNameVersion                     : 'Chrome 107'
+      AgentNameVersionMajor                : 'Chrome 107'
+      UAClientHintBrands_0_Brand           : 'Google Chrome'
+      UAClientHintBrands_0_Version         : '107'
+      UAClientHintBrands_1_Brand           : 'Chromium'
+      UAClientHintBrands_1_Version         : '107'
+      UAClientHintMobile                   : 'false'
+      UAClientHintPlatform                 : 'macOS'

programming_language: CoffeeScript
filename: GoogleChromeFrozen.yaml
change_type: ModificationType.MODIFY
diff: @@ -1813,3 +1813,149 @@ config:
       AgentVersionMajor                    : '102'
       AgentNameVersion                     : 'Chrome 102'
       AgentNameVersionMajor                : 'Chrome 102'
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
+      Sec-Ch-Ua                                  : '"Google Chrome";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
+      Sec-Ch-Ua-Arch                             : '"arm"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"107.0.5304.121"'
+      Sec-Ch-Ua-Full-Version-List                : '"Google Chrome";v="107.0.5304.121", "Chromium";v="107.0.5304.121", "Not=A?Brand";v="24.0.0.0"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"macOS"'
+      Sec-Ch-Ua-Platform-Version                 : '"12.6.0"'
+      Sec-Ch-Ua-Wow64                            : '?0'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Apple Macintosh'
+      DeviceBrand                                : 'Apple'
+      DeviceCpu                                  : 'ARM'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Mac OS'
+      OperatingSystemVersion                     : '12.6.0'
+      OperatingSystemVersionMajor                : '12'
+      OperatingSystemNameVersion                 : 'Mac OS 12.6.0'
+      OperatingSystemNameVersionMajor            : 'Mac OS 12'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '107.0'
+      LayoutEngineVersionMajor                   : '107'
+      LayoutEngineNameVersion                    : 'Blink 107.0'
+      LayoutEngineNameVersionMajor               : 'Blink 107'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Chrome'
+      AgentVersion                               : '107.0.5304.121'
+      AgentVersionMajor                          : '107'
+      AgentNameVersion                           : 'Chrome 107.0.5304.121'
+      AgentNameVersionMajor                      : 'Chrome 107'
+      UAClientHintArchitecture                   : 'arm'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Google Chrome'
+      UAClientHintBrands_0_Version               : '107'
+      UAClientHintBrands_1_Brand                 : 'Chromium'
+      UAClientHintBrands_1_Version               : '107'
+      UAClientHintFullVersion                    : '107.0.5304.121'
+      UAClientHintFullVersionList_0_Brand        : 'Google Chrome'
+      UAClientHintFullVersionList_0_Version      : '107.0.5304.121'
+      UAClientHintFullVersionList_1_Brand        : 'Chromium'
+      UAClientHintFullVersionList_1_Version      : '107.0.5304.121'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'macOS'
+      UAClientHintPlatformVersion                : '12.6.0'
+      UAClientHintWow64                          : 'false'
+
+
+- test:
+    input:
+      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.52'
+      Sec-Ch-Ua                            : '"Microsoft Edge";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
+      Sec-Ch-Ua-Mobile                     : '?0'
+      Sec-Ch-Ua-Platform                   : '"Windows"'
+    expected:
+      DeviceClass                          : 'Desktop'
+      DeviceName                           : 'Desktop'
+      DeviceBrand                          : 'Unknown'
+      DeviceCpu                            : 'Intel x86_64'
+      DeviceCpuBits                        : '64'
+      OperatingSystemClass                 : 'Desktop'
+      OperatingSystemName                  : 'Windows NT'
+      OperatingSystemVersion               : '??'
+      OperatingSystemVersionMajor          : '??'
+      OperatingSystemNameVersion           : 'Windows NT ??'
+      OperatingSystemNameVersionMajor      : 'Windows NT ??'
+      LayoutEngineClass                    : 'Browser'
+      LayoutEngineName                     : 'Blink'
+      LayoutEngineVersion                  : '107'
+      LayoutEngineVersionMajor             : '107'
+      LayoutEngineNameVersion              : 'Blink 107'
+      LayoutEngineNameVersionMajor         : 'Blink 107'
+      AgentClass                           : 'Browser'
+      AgentName                            : 'Edge'
+      AgentVersion                         : '107'
+      AgentVersionMajor                    : '107'
+      AgentNameVersion                     : 'Edge 107'
+      AgentNameVersionMajor                : 'Edge 107'
+      UAClientHintBrands_0_Brand           : 'Microsoft Edge'
+      UAClientHintBrands_0_Version         : '107'
+      UAClientHintBrands_1_Brand           : 'Chromium'
+      UAClientHintBrands_1_Version         : '107'
+      UAClientHintMobile                   : 'false'
+      UAClientHintPlatform                 : 'Windows'
+
+
+- test:
+    input:
+      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
+      Sec-Ch-Ua                                  : '"Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"'
+      Sec-Ch-Ua-Arch                             : '"x86"'
+      Sec-Ch-Ua-Bitness                          : '"64"'
+      Sec-Ch-Ua-Full-Version                     : '"108.0.5359.72"'
+      Sec-Ch-Ua-Full-Version-List                : '"Not?A_Brand";v="8.0.0.0", "Chromium";v="108.0.5359.72", "Google Chrome";v="108.0.5359.72"'
+      Sec-Ch-Ua-Mobile                           : '?0'
+      Sec-Ch-Ua-Model                            : '""'
+      Sec-Ch-Ua-Platform                         : '"Windows"'
+      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
+      Sec-Ch-Ua-Wow64                            : '?0'
+    expected:
+      DeviceClass                                : 'Desktop'
+      DeviceName                                 : 'Desktop'
+      DeviceBrand                                : 'Unknown'
+      DeviceCpu                                  : 'Intel x86_64'
+      DeviceCpuBits                              : '64'
+      OperatingSystemClass                       : 'Desktop'
+      OperatingSystemName                        : 'Windows NT'
+      OperatingSystemVersion                     : '7'
+      OperatingSystemVersionMajor                : '7'
+      OperatingSystemNameVersion                 : 'Windows 7'
+      OperatingSystemNameVersionMajor            : 'Windows 7'
+      LayoutEngineClass                          : 'Browser'
+      LayoutEngineName                           : 'Blink'
+      LayoutEngineVersion                        : '108.0'
+      LayoutEngineVersionMajor                   : '108'
+      LayoutEngineNameVersion                    : 'Blink 108.0'
+      LayoutEngineNameVersionMajor               : 'Blink 108'
+      AgentClass                                 : 'Browser'
+      AgentName                                  : 'Chrome'
+      AgentVersion                               : '108.0.5359.72'
+      AgentVersionMajor                          : '108'
+      AgentNameVersion                           : 'Chrome 108.0.5359.72'
+      AgentNameVersionMajor                      : 'Chrome 108'
+      UAClientHintArchitecture                   : 'x86'
+      UAClientHintBitness                        : '64'
+      UAClientHintBrands_0_Brand                 : 'Chromium'
+      UAClientHintBrands_0_Version               : '108'
+      UAClientHintBrands_1_Brand                 : 'Google Chrome'
+      UAClientHintBrands_1_Version               : '108'
+      UAClientHintFullVersion                    : '108.0.5359.72'
+      UAClientHintFullVersionList_0_Brand        : 'Chromium'
+      UAClientHintFullVersionList_0_Version      : '108.0.5359.72'
+      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
+      UAClientHintFullVersionList_1_Version      : '108.0.5359.72'
+      UAClientHintMobile                         : 'false'
+      UAClientHintPlatform                       : 'Windows'
+      UAClientHintPlatformVersion                : '0.1.0'
+      UAClientHintWow64                          : 'false'
+

programming_language: CoffeeScript
filename: Robots.yaml
change_type: ModificationType.MODIFY
diff: @@ -10715,16 +10715,16 @@ config:
       OperatingSystemNameVersionMajor      : 'Windows >=10'
       LayoutEngineClass                    : 'Browser'
       LayoutEngineName                     : 'Blink'
-      LayoutEngineVersion                  : '98'
-      LayoutEngineVersionMajor             : '98'
-      LayoutEngineNameVersion              : 'Blink 98'
-      LayoutEngineNameVersionMajor         : 'Blink 98'
+      LayoutEngineVersion                  : '97.0'
+      LayoutEngineVersionMajor             : '97'
+      LayoutEngineNameVersion              : 'Blink 97.0'
+      LayoutEngineNameVersionMajor         : 'Blink 97'
       AgentClass                           : 'Browser'
       AgentName                            : 'Chromium'
-      AgentVersion                         : '98'
-      AgentVersionMajor                    : '98'
-      AgentNameVersion                     : 'Chromium 98'
-      AgentNameVersionMajor                : 'Chromium 98'
+      AgentVersion                         : '97.0.4692.99'
+      AgentVersionMajor                    : '97'
+      AgentNameVersion                     : 'Chromium 97.0.4692.99'
+      AgentNameVersionMajor                : 'Chromium 97'
 
       UAClientHintBrands_0_Brand           : 'Chromium'
       UAClientHintBrands_0_Version         : '98'

programming_language: CoffeeScript