Index: trip-planner-front/node_modules/ua-parser-js/test/browser-test.json
===================================================================
--- trip-planner-front/node_modules/ua-parser-js/test/browser-test.json	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/ua-parser-js/test/browser-test.json	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -161,14 +161,4 @@
     },
     {
-        "desc"    : "Camino on Mac",
-        "ua"      : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Camino/2.2.1",
-        "expect"  :
-        {
-            "name"    : "Camino",
-            "version" : "2.2.1",
-            "major"   : "2"
-        }
-    },
-    {
         "desc"    : "Chimera",
         "ua"      : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-PL; rv:1.0.1) Gecko/20021111 Chimera/0.6",
@@ -438,14 +428,4 @@
             "version" : "1.0a1",
             "major"   : "1"
-        }
-    },
-    {
-        "desc"    : "Firefox for Maemo (Nokia N900)",
-        "ua"      : "Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 Fennec/10.0.1",
-        "expect"  :
-        {
-            "name"    : "Fennec",
-            "version" : "10.0.1",
-            "major"   : "10"
         }
     },
@@ -750,14 +730,4 @@
     },
     {
-        "desc"    : "Netscape 6",
-        "ua"      : "Mozilla/5.0 (Windows; U; Win95; de-DE; rv:0.9.2) Gecko/20010726 Netscape6/6.1",
-        "expect"  :
-        {
-            "name"    : "Netscape",
-            "version" : "6.1",
-            "major"   : "6"
-        }
-    },
-    {
         "desc"    : "Nokia Browser",
         "ua"      : "Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaN8-00/025.007; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba",
@@ -770,24 +740,4 @@
     },
     {
-        "desc"    : "Obigo",
-        "ua"      : "LG-GS290/V100 Obigo/WAP2.0 Profile/MIDP-2.1 Configuration/CLDC-1.1",
-        "expect"  :
-        {
-            "name"    : "Obigo",
-            "version" : "WAP2.0",
-            "major"   : "2"
-        }
-    },
-    {
-        "desc"    : "Obigo",
-        "ua"      : "LG/KU990i/v10a Browser/Obigo-Q05A/3.6 MMS/LG-MMS-V1.0/1.2 Java/ASVM/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1",
-        "expect"  :
-        {
-            "name"    : "Obigo",
-            "version" : "Q05A",
-            "major"   : "05"
-        }
-    },
-    {
         "desc"    : "Oculus Browser",
         "ua"      : "Mozilla/5.0 (Linux; Android 7.0; SM-G920I Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/3.4.9 SamsungBrowser/4.0 Chrome/57.0.2987.146 Mobile VR Safari/537.36",
@@ -800,14 +750,4 @@
     },
     {
-        "desc"    : "Oculus Browser",
-        "ua"      : "Mozilla/5.0 (Linux; Android 10; Quest 2) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/15.0.0.0.22.280317669 SamsungBrowser/4.0 Chrome/89.0.4389.90 VR Safari/537.36",
-        "expect"  :
-        {
-            "name"    : "Oculus Browser",
-            "version" : "15.0.0.0.22.280317669",
-            "major"   : "15"
-        }
-    },
-    {
         "desc"    : "OmniWeb",
         "ua"      : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v558.48",
@@ -1020,14 +960,4 @@
     },
     {
-        "desc"    : "SeaMonkey on Mac",
-        "ua"      : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1",
-        "expect"  :
-        {
-            "name"    : "SeaMonkey",
-            "version" : "2.7.1",
-            "major"   : "2"
-        }
-    },
-    {
         "desc"    : "Silk Browser",
         "ua"      : "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.1.0-84)",
@@ -1160,14 +1090,4 @@
     },
     {
-        "desc"    : "UPBrowser",
-        "ua"      : "BenQ-CF61/1.00/WAP2.0/MIDP2.0/CLDC1.0 UP.Browser/6.3.0.4.c.1.102 (GUI) MMP/2.0",
-        "expect"  :
-        {
-            "name"    : "UP.Browser",
-            "version" : "6.3.0.4.c.1.102",
-            "major"   : "6"
-        }
-    },
-    {
         "desc": "WeChat on iOS",
         "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 8_4_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H321 MicroMessenger/6.3.6 NetType/WIFI Language/zh_CN",
@@ -1310,14 +1230,4 @@
     },
     {
-        "desc"    : "Firefox iOS using iPad",
-        "ua"      : "Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4",
-        "expect"  :
-        {
-            "name"    : "Firefox",
-            "version" : "1.0",
-            "major"   : "1"
-        }
-    },
-    {
         "desc"    : "QQ on iOS",
         "ua"      : "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A456 QQ/6.5.3.410 V1_IPH_SQ_6.5.3_1_APP_A Pixel/1080 Core/UIWebView NetType/WIFI Mem/26",
Index: trip-planner-front/node_modules/ua-parser-js/test/cpu-test.json
===================================================================
--- trip-planner-front/node_modules/ua-parser-js/test/cpu-test.json	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/ua-parser-js/test/cpu-test.json	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -81,12 +81,4 @@
     },
     {
-        "desc"    : "Nokia N900 Linux mobile",
-        "ua"      : "Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0) Gecko/20100101 Firefox/10.0 Fennec/10.0",
-        "expect"  :
-        {
-            "architecture"  : "arm"
-        }
-    },
-    {
         "desc"    : "ARMEABI",
         "ua"      : "[FBAN/FB4A;FBAV/237.0.0.44.120;FBBV/170693408;FBDM/{density=1.75,width=720,height=1280};FBLC/en_US;FBRV/172067074;FBCR/ ;FBMF/samsung;FBBD/samsung;FBPN/com.facebook.katana;FBDV/SM-S367VL;FBSV/9;FBBK/1;FBOP/19;FBCA/armeabi-v7a:armeabi;]",
@@ -107,20 +99,4 @@
         "desc"    : "AARCH64",
         "ua"      : "Mozilla/5.0 (X11; CrOS aarch64 13310.93.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.133 Safari/537.36",
-        "expect"  :
-        {
-            "architecture"  : "arm64"
-        }
-    },
-    {
-        "desc"    : "ARM64",
-        "ua"      : "Mozilla/5.0 (Windows NT 10.0; ARM64; RM-1096) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393",
-        "expect"  :
-        {
-            "architecture"  : "arm64"
-        }
-    },
-    {
-        "desc"    : "ARM64",
-        "ua"      : "Mozilla/5.0 (Linux; arm_64; Android 9; HRY-LX1T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 YaBrowser/19.12.1.121.00 Mobile Safari/537.36",
         "expect"  :
         {
@@ -155,12 +131,4 @@
         "desc"    : "Mac PowerPC",
         "ua"      : "iCab/2.9.5 (Macintosh; U; PPC; Mac OS X)",
-        "expect"  :
-        {
-            "architecture"  : "ppc"
-        }
-    },
-    {
-        "desc"    : "Mac OS X on PowerPC using Firefox",
-        "ua"      : "Mozilla/5.0 (Macintosh; PPC Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0",
         "expect"  :
         {
Index: trip-planner-front/node_modules/ua-parser-js/test/device-test.json
===================================================================
--- trip-planner-front/node_modules/ua-parser-js/test/device-test.json	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/ua-parser-js/test/device-test.json	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -99,13 +99,4 @@
     },
     {
-        "desc": "ASUS Zenfone Max Pro",
-        "ua": "Mozilla/5.0 (Linux; Android 9; ZB602KL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "ASUS",
-            "model": "ZB602KL",
-            "type": "mobile"
-        }
-    },
-    {
         "desc": "ASUS Zenfone Max Pro (M1)",
         "ua": "Mozilla/5.0 (Linux; Android 8.1; ASUS_X00TD Build/OPM1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Safari/537.36",
@@ -216,22 +207,4 @@
     },
     {
-        "desc": "Fairphone 2",
-        "ua": "Mozilla/5.0 (Linux; Android 7.1.2; FP2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Fairphone",
-            "model": "FP2",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Fairphone 3",
-        "ua": "Mozilla/5.0 (Linux; Android 9; FP3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Fairphone",
-            "model": "FP3",
-            "type": "mobile"
-        }
-    },
-    {
         "desc": "HTC Desire 820",
         "ua": "Mozilla/5.0 (Linux; Android 6.0.1; HTC Desire 820 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36",
@@ -297,4 +270,1803 @@
     },
     {
+        "desc": "iPad using UCBrowser",
+        "ua": "Mozilla/5.0 (iPad; U; CPU OS 11_2 like Mac OS X; zh-CN; iPad5,3) AppleWebKit/534.46 (KHTML, like Gecko) UCBrowser/3.0.1.776 U3/ Mobile/10A403 Safari/7543.48.3",
+        "expect": {
+            "vendor": "Apple",
+            "model": "iPad",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "iPad Air",
+        "ua": "Mozilla/5.0 (iPad; CPU OS 12_4_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPad4,1;FBMD/iPad;FBSN/iOS;FBSV/12.4.5;FBSS/2;FBID/tablet;FBLC/en_US;FBOP/5;FBCR/]",
+        "expect": {
+            "vendor": "Apple",
+            "model": "iPad",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "iPad using Facebook Browser",
+        "ua": "Mozilla/5.0 (iPad; CPU OS 14_4_2 like Mac OS X) WebKit/8610 (KHTML, like Gecko) Mobile/18D70 [FBAN/FBIOS;FBDV/iPad7,11;FBMD/iPad;FBSN/iOS;FBSV/14.4.2;FBSS/2;FBID/tablet;FBLC/en_US;FBOP/5]",
+        "expect": {
+            "vendor": "Apple",
+            "model": "iPad",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "iPod",
+        "ua": "Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53",
+        "expect": {
+            "vendor": "Apple",
+            "model": "iPod touch",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Lenovo Tab 2",
+        "ua": "Mozilla/5.0 (Linux; Android 5.0.1; Lenovo TAB 2 A7-30HC Build/LRX21M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.157 Safari/537.36",
+        "expect": {
+            "vendor": "Lenovo",
+            "model": "TAB 2 A7",
+            "type": "tablet"
+        }
+    },
+  {
+        "desc": "Lenovo Phone",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0; Lenovo PB2-650M Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.105 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/311.0.0.44.117;]",
+        "expect": {
+            "vendor": "Lenovo",
+            "model": "PB2-650M",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Lenovo Tab 3 Pro",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; Lenovo YT3-X90F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.99 Safari/537.36",
+        "expect": {
+            "vendor": "Lenovo",
+            "model": "YT3-X90F",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Lenovo Tab 4",
+        "ua": "Mozilla/5.0 (Linux; Android 7.1.1; Lenovo TB-X304F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.99 Safari/537.36",
+        "expect": {
+            "vendor": "Lenovo",
+            "model": "TB-X304F",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Lenovo Tab 4",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; Lenovo TAB 2 A7-30HC) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36",
+        "expect": {
+            "vendor": "Lenovo",
+            "model": "TAB 2 A7",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Lenovo Tab 7 Essential",
+        "ua": "Mozilla/5.0 (Linux; Android 7.0; Lenovo TB-7304X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
+        "expect": {
+            "vendor": "Lenovo",
+            "model": "TB-7304X",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Lenovo Tab M10",
+        "ua": "Mozilla/5.0 (Linux; arm_64; Android 9; Lenovo TB-X606F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 YaBrowser/20.9.4.99.01 Safari/537.36",
+        "expect": {
+            "vendor": "Lenovo",
+            "model": "TB-X606F",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "LG K500",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; LG-K500 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "LG",
+            "model": "K500",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "LG Nexus 4",
+        "ua": "Mozilla/5.0 (Linux; Android 4.2.1; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19",
+        "expect": {
+            "vendor": "LG",
+            "model": "Nexus 4",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "LG Nexus 4",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.3; en-us; Google Nexus 4 - 4.3 - API 18 - 768x1280 Build/JLS36G) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
+        "expect": {
+            "vendor": "LG",
+            "model": "Nexus 4",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "LG Nexus 5",
+        "ua": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19",
+        "expect": {
+            "vendor": "LG",
+            "model": "Nexus 5",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "LG Wing",
+        "ua": "Mozilla/5.0 (Linux; Android 10; LM-F100N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.101 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "LG",
+            "model": "LM-F100N",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "LG Smart TV",
+        "ua": "Mozilla/5.0 (DirectFB; U; Linux mips; en) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) LG Browser (; LG NetCast.TV-2011)",
+        "expect": {
+            "vendor": "LG",
+            "model": "undefined",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "LG Smart TV",
+        "ua": "Mozilla/5.0 (Linux; NetCast; U) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/53.0.2785 34 Safari/537.31 SmartTV/8.5",
+        "expect": {
+            "vendor": "LG",
+            "model": "undefined",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "Meizu M5 Note",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0; M5 Note Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043024 Safari/537.36 MicroMessenger/6.5.7.1040 NetType/WIFI Language/zh_CN",
+        "expect": {
+            "vendor": "Meizu",
+            "model": "M5 Note",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Microsoft Lumia 950",
+        "ua": "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/13.10586",
+        "expect": {
+            "vendor": "Microsoft",
+            "model": "Lumia 950",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Microsoft Surface Duo",
+        "ua": "Dalvik/2.1.0 (Linux; U; Android 10; Surface Duo Build/2020.1014.61)",
+        "expect": {
+            "vendor": "Microsoft",
+            "model": "Surface Duo",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Motorola Moto X",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.4; XT1097 Build/KXE21.187-38) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.109 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Motorola",
+            "model": "XT1097",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc"      : "Meizu M3S",
+        "ua"        : "Mozilla/5.0 (X11; Linux; Android 5.1; MZ-M3s Build/LMY47I) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrom/45.0.2454.94 Mobile Safari/537.36",
+        "expect"    :
+        {
+            "vendor"  : "Meizu",
+            "model"   : "M3s",
+            "type"    : "mobile"
+        }
+    },
+    {
+        "desc"      : "Microsoft Lumia 950",
+        "ua"        : "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/13.10586",
+        "expect"    :
+        {
+            "vendor"  : "Microsoft",
+            "model"   : "Lumia 950",
+            "type"    : "mobile"
+        }
+    },
+    {
+        "desc": "Motorola Nexus 6",
+        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.20 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Motorola",
+            "model": "Nexus 6",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Motorola Droid RAZR 4G",
+        "ua": "Mozilla/5.0 (Linux; U; Android 2.3; xx-xx; DROID RAZR 4G Build/6.5.1-73_DHD-11_M1-29) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
+        "expect": {
+            "vendor": "Motorola",
+            "model": "DROID RAZR 4G",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Motorola RAZR 2019",
+        "ua": "Mozilla/5.0 (Linux; Android 9; motorola razr) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/11.1 Chrome/75.0.3770.143 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Motorola",
+            "model": "razr",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "iPhone",
+        "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53",
+        "expect": {
+            "vendor": "Apple",
+            "model": "iPhone",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "iPhone SE",
+        "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPhone8,4;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBCR/]",
+        "expect": {
+            "vendor": "Apple",
+            "model": "iPhone",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "iPhone SE using Facebook App",
+        "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPhone8,4;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBCR/]",
+        "expect": {
+            "vendor": "Apple",
+            "model": "iPhone",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "iPhone 11 Pro Max",
+        "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPhone12,5;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/3;FBID/phone;FBLC/en_US;FBOP/5;FBCR/]",
+        "expect": {
+            "vendor": "Apple",
+            "model": "iPhone",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "iPhone XS",
+        "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPhone11,2;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/3;FBID/phone;FBLC/en_US;FBOP/5;FBCR/]",
+        "expect": {
+            "vendor": "Apple",
+            "model": "iPhone",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "iPod touch",
+        "ua": "Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53",
+        "expect": {
+            "vendor": "Apple",
+            "model": "iPod touch",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Moto X",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.2; xx-xx; XT1058 Build/13.9.0Q2.X-70-GHOST-ATT_LE-2) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
+        "expect": {
+            "vendor": "Motorola",
+            "model": "XT1058",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Motorola Moto g(6) Play",
+        "ua": "Mozilla/5.0 (Linux; Android 9; moto g(6) play) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Motorola",
+            "model": "moto g(6) play",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Motorola Moto g(7) Supra",
+        "ua": "Mozilla/5.0 (Linux; Android 9; moto g(7) supra Build/PCOS29.114-134-2; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/73.0.3683.90 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Motorola",
+            "model": "moto g(7) supra",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Motorola Moto E",
+        "ua": "Mozilla/5.0 (Linux; Android 7.1.1; Moto E (4) Build/NDQS26.69-64-11-7; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/56.0.2924.87 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Motorola",
+            "model": "Moto E (4)",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Nokia3xx",
+        "ua": "Nokia303/14.87 CLDC-1.1",
+        "expect": {
+            "vendor": "Nokia",
+            "model": "303",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Nokia 3.2",
+        "ua": "Mozilla/5.0 (Linux; Android 10; Nokia 3.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Nokia",
+            "model": "3.2",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Nokia N9",
+        "ua": "Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",
+        "expect": {
+            "vendor": "Nokia",
+            "model": "N9",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Nokia 2720 Flip",
+        "ua": "Mozilla/5.0 (Mobile; Nokia_2720_Flip; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2",
+        "expect": {
+            "vendor": "Nokia",
+            "model": "2720 Flip",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OnePlus One",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.4; A0001 Build/KTU84Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OnePlus",
+            "model": "1",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OnePlus One",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; OnePlus One A0001 Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OnePlus",
+            "model": "1",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OnePlus 3",
+        "ua": "Mozilla/5.0 (Linux; Android 7.1.1; ONEPLUS A3000 Build/NMF26F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.98 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OnePlus",
+            "model": "A3000",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OnePlus 6",
+        "ua": "Mozilla/5.0 (Linux; Android 9; ONEPLUS A6003) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.89 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OnePlus",
+            "model": "A6003",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OnePlus 6T",
+        "ua": "Mozilla/5.0 (Linux; Android 9; ONEPLUS A6010) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.96 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OnePlus",
+            "model": "A6010",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OnePlus 8T",
+        "ua": "Mozilla/5.0 (Linux; Android 11; KB2005) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OnePlus",
+            "model": "KB2005",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OnePlus 8 Pro",
+        "ua": "Mozilla/5.0 (Linux; Android 10; IN2025) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.119 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OnePlus",
+            "model": "IN2025",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OnePlus Nord N100",
+        "ua": "Mozilla/5.0 (Linux; Android 10; BE2015 Build/QKQ1.200719.002; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OnePlus",
+            "model": "BE2015",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OnePlus Nord N10 5G",
+        "ua": "Mozilla/5.0 (Linux; Android 10; BE2029) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.185 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OnePlus",
+            "model": "BE2029",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OPPO Neo",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; R831T Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 OppoBrowser/3.3.2 Mobile Safari/534.30",
+        "expect": {
+            "vendor": "OPPO",
+            "model": "R831T",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OPPO R7s",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7s Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/7.1 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OPPO",
+            "model": "R7s",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OPPO A3s",
+        "ua": "Mozilla/5.0 (Linux; Android 8.1; CPH1803 Build/OPM1.171019.026; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OPPO",
+            "model": "CPH1803",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OPPO A12",
+        "ua": "Mozilla/5.0 (Linux; Android 9; CPH2083) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OPPO",
+            "model": "CPH2083",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OPPO Reno",
+        "ua": "Mozilla/5.0 (Linux; Android 9; PCAT00 Build/PKQ1.190101.001; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.110 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OPPO",
+            "model": "PCAT00",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OPPO Reno3 Pro 5G",
+        "ua": "Mozilla/5.0 (Linux; Android 10; PCLM50) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.117 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OPPO",
+            "model": "PCLM50",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OPPO Reno4 SE",
+        "ua": "Mozilla/5.0 (Linux; U; Android 10; xx-xx; PEAM00 Build/QP1A.190711.020) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.80 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OPPO",
+            "model": "PEAM00",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OPPO Reno4 5G",
+        "ua": "Mozilla/5.0 (Linux; Android 10; PDPM00 Build/QKQ1.200216.002; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OPPO",
+            "model": "PDPM00",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OPPO Reno4 Pro 5G",
+        "ua": "Mozilla/5.0 (Linux; U; Android 10; xx-xx; PDNT00 Build/QKQ1.200216.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.80 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OPPO",
+            "model": "PDNT00",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OPPO Find X",
+        "ua": "Mozilla/5.0 (Linux; Android 8.1; PAFM00 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OPPO",
+            "model": "PAFM00",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OPPO Find 7a",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.3; xx-xx; X9007 Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
+        "expect": {
+            "vendor": "OPPO",
+            "model": "X9007",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Realme C1",
+        "ua": "Mozilla/5.0 (Linux; Android 8.1; RMX1811 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.126 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Realme",
+            "model": "RMX1811",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Realme Narzo 20",
+        "ua": "Mozilla/5.0 (Linux; U; Android 10; xx-xx; RMX2193 Build/QP1A.190711.020) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.80 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Realme",
+            "model": "RMX2193",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Philips SmartTV",
+        "ua": "Opera/9.80 HbbTV/1.1.1 (; Philips; ; ; ; ) NETTV/4.0.2; en) Version/11.60",
+        "expect": {
+            "vendor": "Philips",
+            "model": "",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "Kindle Fire HD",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true",
+        "expect": {
+            "vendor": "Amazon",
+            "model": "KFTT",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Kindle Fire HD",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true",
+        "expect": {
+            "vendor": "Amazon",
+            "model": "KFTT",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy A21s",
+        "ua": "Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-A217F) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/11.0 Chrome/75.0.3770.143 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-A217F",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy A31",
+        "ua": "Mozilla/5.0 (Linux; Android 10; SM-A315G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-A315G",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy A50",
+        "ua": "Mozilla/5.0 (Linux; Android 9; SM-A505F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.105 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-A505F",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy A80",
+        "ua": "Mozilla/5.0 (Linux; Android 9; SM-A805F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.112 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-A805F",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy Fold",
+        "ua": "Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-F900U Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/9.2 Chrome/67.0.3396.87 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-F900U",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy Z Flip",
+        "ua": "Mozilla/5.0 (Linux; Android 10; SM-F700N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-F700N",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy Z Fold2",
+        "ua": "Mozilla/5.0 (Linux; Android 10; SM-F916B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-F916B",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy S10E",
+        "ua": "Mozilla/5.0 (Linux; Android 9; SM-G970F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-G970F",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy Note 10+",
+        "ua": "Mozilla/5.0 (Linux; Android 9; SM-N976V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.89 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-N976V",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung SM-C5000",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; SM-C5000 Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/51.0.2704.81 Mobile Safari/537.36 wkbrowser 4.1.35 3065",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-C5000",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy Note 8",
+        "ua": "Mozilla/5.0 (Linux; Android 4.2.2; GT-N5100 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "GT-N5100",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Samsung SM-T231",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T231 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-T231",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy Tab 6 Lite",
+        "ua": "Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-P610) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/12.0 Chrome/79.0.3945.136 Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-P610",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy Tab A 9.7",
+        "ua": "Mozilla/5.0 (Linux; Android 7.1.1; SM-P550 Build/NMF26X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.90 Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-P550",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy Tab A 10.1",
+        "ua": " Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-T515) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/13.0 Chrome/83.0.4103.106 Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-T515",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy Tab S7",
+        "ua": "Mozilla/5.0 (Linux; Android 10; SM-T870) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-T870",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy Tab S",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T700 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-T700",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy Tab Pro 10.1",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T520 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-T520",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Samsung Note 10.1",
+        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SM-P605) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36",
+        "expect": {
+          "vendor": "Samsung",
+          "model": "SM-P605",
+          "type": "tablet"
+        }
+    },
+    {
+        "desc": "Samsung SmartTV2011",
+        "ua": "HbbTV/1.1.1 (;;;;;) Maple;2011",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SmartTV2011",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "Samsung SmartTV2012",
+        "ua": "HbbTV/1.1.1 (;Samsung;SmartTV2012;;;) WebKit",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SmartTV2012",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "Samsung SmartTV2014",
+        "ua": "HbbTV/1.1.1 (;Samsung;SmartTV2014;T-NT14UDEUC-1060.4;;) WebKit",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SmartTV2014",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "Samsung SmartTV",
+        "ua": "Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/537.42 (KHTML, like Gecko) Safari/537.42",
+        "expect": {
+            "vendor": "undefined",
+            "model": "undefined",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "Samsung SmartTV",
+        "ua": "Mozilla/5.0 (SMART-TV; Linux; Tizen 2.3) AppleWebkit/538.1 (KHTML, like Gecko) SamsungBrowser/1.0 TV Safari/538.1",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "undefined",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "Sony G8141 (Xperia XZ Premium)",
+        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; G8141) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Sony",
+            "model": "G8141",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Sony C5303 (Xperia SP)",
+        "ua": "Mozilla/5.0 (Linux; Android 4.3; C5303 Build/12.1.A.1.205) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Sony",
+            "model": "C5303",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Sony SO-02F (Xperia Z1 F)",
+        "ua": "Mozilla/5.0 (Linux; Android 4.2.2; SO-02F Build/14.1.H.2.119) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Sony",
+            "model": "SO-02F",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Sony D6653 (Xperia Z3)",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4; D6653 Build/23.0.A.0.376) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Sony",
+            "model": "D6653",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Sony Xperia SOL25 (ZL2)",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.4; SOL25 Build/17.1.1.C.1.64) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
+        "expect": {
+            "vendor": "Sony",
+            "model": "SOL25",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Sony Xperia SP",
+        "ua": "Mozilla/5.0 (Linux; Android 4.3; C5302 Build/12.1.A.1.201) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Sony",
+            "model": "C5302",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Sony Xperia L4",
+        "ua": "Mozilla/5.0 (Linux; Android 9; XQ-AD51) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.83 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Sony",
+            "model": "XQ-AD51",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Sony Xperia 1ii",
+        "ua": "Mozilla/5.0 (Linux; Android 10; XQ-AT51) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Sony",
+            "model": "XQ-AT51",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Sony Xperia 10ii",
+        "ua": "Mozilla/5.0 (Linux; Android 10; XQ-AU52) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Sony",
+            "model": "XQ-AU52",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Sony Xperia Pro",
+        "ua": "Mozilla/5.0 (Linux; Android 10; XQ-AQ52) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.185 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Sony",
+            "model": "XQ-AQ52",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Sony SGP521 (Xperia Z2 Tablet)",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4; SGP521 Build/17.1.A.0.432) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36",
+        "expect": {
+            "vendor": "Sony",
+            "model": "Xperia Tablet",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Sony Xperia Z2 Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SGP561) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.99 Safari/537.36",
+        "expect": {
+            "vendor": "Sony",
+            "model": "Xperia Tablet",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Sony Tablet S",
+        "ua": "Mozilla/5.0 (Linux; U; Android 3.1; Sony Tablet S Build/THMAS10000) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
+        "expect": {
+            "vendor": "Sony",
+            "model": "Xperia Tablet",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Sony Tablet Z LTE",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.1; SonySGP321 Build/10.2.C.0.143) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
+        "expect": {
+            "vendor": "Sony",
+            "model": "Xperia Tablet",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc"    : "Tesla",
+        "ua"      : "Mozilla/5.0 (X11; GNU/Linux) AppleWebKit/601.1 (KHTML, like Gecko) Tesla QtCarBrowser Safari/601.1",
+        "expect"  :
+        {
+            "vendor": "Tesla",
+            "model": "undefined",
+            "type": "embedded"
+        }
+    },
+    {
+        "desc"    : "Tesla",
+        "ua"      : "Mozilla/5.0 (X11; GNU/Linux) AppleWebKit/537.36 (KHTML, like Gecko) Chromium/79.0.3945.130 Chrome/79.0.3945.130 Safari/537.36 Tesla/2020.16.2.1-e99c70fff409",
+        "expect"  :
+        {
+            "vendor": "Tesla",
+            "model": "undefined",
+            "type": "embedded"
+        }
+    },
+    {
+        "desc": "Xiaomi 2013023",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.2.2; en-US; 2013023 Build/HM2013023) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/10.0.1.512 U3/0.8.0 Mobile Safari/533.1",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "2013023",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Hongmi Note 1W",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.2.2; zh-CN; HM NOTE 1W Build/JDQ39) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.7.9.439 U3/0.8.0 Mobile Safari/533.1",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "HM NOTE 1W",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Mi 3C",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.3; zh-CN; MI 3C Build/JLS36C) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.7.9.439 U3/0.8.0 Mobile Safari/533.1",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "MI 3C",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Mi 5",
+        "ua": "Mozilla/5.0 (Linux; Android 7.0; MI 5 Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.83 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "MI 5",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Mi 6",
+        "ua": "Mozilla/5.0 (Linux; Android 7.1; MI 6 Build/NMF26X; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/59.0.3071.125 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "MI 6",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Mi 5s Plus",
+        "ua": "Mozilla/5.0 (Linux; U; Android 6.0.1; zh-cn; MI 5s Plus Build/MXB48T) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.146 Mobile Safari/537.36 XiaoMi/MiuiBrowser/8.7.1",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "MI 5s Plus",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Mi A1",
+        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; Mi A1 Build/OPR1.170623.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "Mi A1",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Mi Note",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.4; MI NOTE LTE Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "MI NOTE LTE",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Mi One Plus",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; MI-ONE Plus Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "MI-ONE Plus",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi MI PAD 2",
+        "ua": "Mozilla/5.0 (Linux; Android 5.1; MI PAD 2 Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/60.0.3112.107 Safari/537.36 [FB_IAB/FB4A;FBAV/137.0.0.24.91;]",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "MI PAD 2",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Xiaomi MI PAD 4 PLUS",
+        "ua": "Mozilla/5.0 (Linux; Android 8.1; MI PAD 4 PLUS) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "MI PAD 4 PLUS",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Xiaomi POCO X2",
+        "ua": "Mozilla/5.0 (Linux; Android 10; POCO X2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "POCO X2",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Redmi 4A",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0; Redmi 4A Build/MMB29M; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/56.0.2924.87 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "Redmi 4A",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Redmi K30 5G",
+        "ua": "Mozilla/5.0 (Linux; Android 10; Redmi K30 5G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.96 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "Redmi K30 5G",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Redmi K30 Pro",
+        "ua": "Mozilla/5.0 (Linux; Android 10; Redmi K30 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "Redmi K30 Pro",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Redmi Note 3",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; Redmi Note 3 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.116 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "Redmi Note 3",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Redmi Note 9 Pro Max",
+        "ua": "Mozilla/5.0 (Linux; Android 10; Redmi Note 9 Pro Max) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.99 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "Redmi Note 9 Pro Max",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "PlayStation 4",
+        "ua": "Mozilla/5.0 (PlayStation 4 3.00) AppleWebKit/537.73 (KHTML, like Gecko)",
+        "expect": {
+            "vendor": "Sony",
+            "model": "PlayStation 4",
+            "type": "console"
+        }
+    },
+    {
+        "desc": "PlayStation 5",
+        "ua": "Mozilla/5.0 (Playstation; Playstation 5/1.05) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15",
+        "expect": {
+            "vendor": "Sony",
+            "model": "Playstation 5",
+            "type": "console"
+        }
+    },
+    {
+        "desc": "PlayStation Vita",
+        "ua": "Mozilla/5.0 (PlayStation Vita 3.52) AppleWebKit/537.73 (KHTML, like Gecko) Silk/3.2",
+        "expect": {
+            "vendor": "Sony",
+            "model": "PlayStation Vita",
+            "type": "console"
+        }
+    },
+    {
+        "desc": "Nintendo Switch",
+        "ua": "Mozilla/5.0 (Nintendo Switch; WifiWebAuthApplet) AppleWebKit/606.4 (KHTML, like Gecko) NF/6.0.1.15.4 NintendoBrowser/5.1.0.20393",
+        "expect": {
+            "vendor": "Nintendo",
+            "model": "Switch",
+            "type": "console"
+        }
+    },
+    {
+        "desc": "Nintendo WiiU",
+        "ua": "Mozilla/5.0 (Nintendo WiiU) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.4.2.9 NintendoBrowser/4.2.0.11146.EU",
+        "expect": {
+            "vendor": "Nintendo",
+            "model": "WiiU",
+            "type": "console"
+        }
+    },
+    {
+        "desc": "Nintendo Wii",
+        "ua": "Opera/9.10 (Nintendo Wii; U; ; 1621; en)",
+        "expect": {
+            "vendor": "Nintendo",
+            "model": "Wii",
+            "type": "console"
+        }
+    },
+    {
+        "desc": "Nintendo 3DS",
+        "ua": "Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7610.EU",
+        "expect": {
+            "vendor": "Nintendo",
+            "model": "3DS",
+            "type": "console"
+        }
+    },
+    {
+        "desc": "Nintendo 3DS",
+        "ua": "Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.EU",
+        "expect": {
+            "vendor": "Nintendo",
+            "model": "3DS",
+            "type": "console"
+        }
+    },
+    {
+        "desc": "Galaxy Nexus",
+        "ua": "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "Galaxy Nexus",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy C9 Pro",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0; SAMSUNG SM-C900F Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.2 Chrome/44.0.2403.133 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-C900F",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy S5",
+        "ua": "Mozilla/5.0 (Linux; Android 5.0; SM-G900F Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.78 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-G900F",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy S6",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-G920I Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-G920I",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy S6 Edge",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-G925I Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-G925I",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy Note 5 Chrome",
+        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SM-N920C Build/LMY47X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.91 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-N920C",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Samsung Galaxy Note 5 Samsung Browser",
+        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SAMSUNG SM-N920C Build/LMY47X) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Samsung",
+            "model": "SM-N920C",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Chromecast",
+        "ua": "Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.84 Safari/537.36 CrKey/1.22.79313",
+        "expect": {
+            "vendor": "Google",
+            "model": "Chromecast",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "Google Pixel C",
+        "ua": "Mozilla/5.0 (Linux; Android 7.0; Pixel C Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.98 Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel C",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Google Pixel C",
+        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; Pixel C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.64 Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel C",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Google Pixel",
+        "ua": "Mozilla/5.0 (Linux; Android 7.1; Pixel Build/NDE63V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel XL",
+        "ua": "Mozilla/5.0 (Linux; Android 7.1; Pixel XL Build/NDE63X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel XL",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel XL",
+        "ua": "Mozilla/5.0 (Linux; Android 9; Pixel XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel XL",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel 2",
+        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; Pixel 2 Build/OPM1.171019.013) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel 2",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel 2 XL",
+        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; Pixel 2 XL Build/OPM1.171019.013) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel 2 XL",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel 2 XL",
+        "ua": "Mozilla/5.0 (Linux; Android 9; Pixel 2 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel 2 XL",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel 3",
+        "ua": "Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PD1A.180720.030) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel 3",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel 3 XL",
+        "ua": "Mozilla/5.0 (Linux; Android 9; Pixel 3 XL Build/PD1A.180720.030) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel 3 XL",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel 3 XL",
+        "ua": "Mozilla/5.0 (Linux; Android 9; Pixel 3 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel 3 XL",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel 3a",
+        "ua": "Mozilla/5.0 (Linux; Android 10; Pixel 3a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel 3a",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel 3a XL",
+        "ua": "Mozilla/5.0 (Linux; Android 10; Pixel 3a XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel 3a XL",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel 4",
+        "ua": "Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel 4",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel 4a",
+        "ua": "Mozilla/5.0 (Linux; Android 10; Pixel 4a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.83 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel 4a",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel 4 XL",
+        "ua": "Mozilla/5.0 (Linux; Android 10; Pixel 4 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel 4 XL",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Google Pixel 5",
+        "ua": "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.120 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Google",
+            "model": "Pixel 5",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Generic Android Device",
+        "ua": "Mozilla/5.0 (Linux; U; Android 6.0.1; i980 Build/MRA58K)",
+        "expect": {
+            "vendor": "Generic",
+            "model": "Android 6.0.1"
+        }
+    },
+    {
+        "desc": "Android Phone Unidentified Vendor (docomo F-04K)",
+        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; F-04K Build/V15R060P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Safari/537.36",
+        "expect": {
+            "model": "F-04K",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Android Phone Unidentified Vendor (docomo SH-02M)",
+        "ua": "Mozilla/5.0 (Linux; Android 9; SH-02M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Mobile Safari/537.36",
+        "expect": {
+            "model": "SH-02M",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Android Tablet Unidentified Vendor (docomo F-02K)",
+        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; F-02K Build/V44R059G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.109 Safari/537.36",
+        "expect": {
+            "model": "F-02K",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Android Tablet Unidentified Vendor (docomo d-02K)",
+        "ua": "Mozilla/5.0 (Linux; Android 9; d-02K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Safari/537.36",
+        "expect": {
+            "model": "d-02K",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "LG VK Series Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 5.0.2; VK700 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.84 Safari/537.36",
+        "expect": {
+            "vendor": "LG",
+            "model": "VK700",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "LG LK Series Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 5.0.1; LGLK430 Build/LRX21Y) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/38.0.2125.102 Safari/537.36",
+        "expect": {
+            "vendor": "LG",
+            "model": "LK430",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "RCA Voyager III Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; RCT6973W43 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
+        "expect": {
+            "vendor": "RCA",
+            "model": "RCT6973W43",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "RCA Voyager II Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 5.0; RCT6773W22B Build/LRX21M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
+        "expect": {
+            "vendor": "RCA",
+            "model": "RCT6773W22B",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Verizon Quanta Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; QMV7B Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
+        "expect": {
+            "vendor": "Verizon",
+            "model": "QMV7B",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Verizon Ellipsis 8 Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; QTAQZ3 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
+        "expect": {
+            "vendor": "Verizon",
+            "model": "QTAQZ3",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Verizon Ellipsis 8HD Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; QTASUN1 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Safari/537.36",
+        "expect": {
+            "vendor": "Verizon",
+            "model": "QTASUN1",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Dell Venue 8 Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; Venue 8 3830 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
+        "expect": {
+            "vendor": "Dell",
+            "model": "Venue 8 3830",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Dell Venue 7 Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; Venue 7 3730 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
+        "expect": {
+            "vendor": "Dell",
+            "model": "Venue 7 3730",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Barnes & Noble Nook HD+ Tablet",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; Barnes & Noble Nook HD+ Build/JZO54K; CyanogenMod-10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
+        "expect": {
+            "vendor": "Barnes & Noble",
+            "model": "Nook HD+",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Barnes & Noble V400 Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 4.0.4; BNTV400 Build/IMM76L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.111 Safari/537.36",
+        "expect": {
+            "vendor": "Barnes & Noble",
+            "model": "V400",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "NuVision TM101A540N Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 5.1; TM101A540N Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/50.0.2661.86 Safari/537.36",
+        "expect": {
+            "vendor": "NuVision",
+            "model": "TM101A540N",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "ZTE-Z431",
+        "ua": "ZTE-Z431/1.4.0 NetFront/4.2 QTV5.1 Profile/MIDP-2.1 Configuration/CLDC-1.1",
+        "expect": {
+            "vendor": "ZTE",
+            "model": "Z431",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "ZTE",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; ZTE-Z740G Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
+        "expect": {
+            "vendor": "ZTE",
+            "model": "Z740G",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "ZTE K Series Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; K88 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
+        "expect": {
+            "vendor": "ZTE",
+            "model": "K88",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "ZTE Nubia Red Magic 3",
+        "ua": "Mozilla/5.0 (Linux; Android 9; NX629J Build/PKQ1.190321.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/45016 Mobile Safari/537.36 MMWEBID/4064 MicroMessenger/7.0.10.1580(0x27000A34) Process/tools NetType/WIFI Language/zh_CN ABI/arm64",
+        "expect": {
+            "vendor": "ZTE",
+            "model": "NX629J",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Swizz GEN610",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; GEN610 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Swiss",
+            "model": "GEN610",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Swizz ZUR700",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; ZUR700 Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Safari/537.36",
+        "expect": {
+            "vendor": "Swiss",
+            "model": "ZUR700",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Zeki TB782b Tablet",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.0.4; en-US; TB782B Build/IMM76D) AppleWebKit/534.31 (KHTML, like Gecko) UCBrowser/9.0.2.299 U3/0.8.0 Mobile Safari/534.31",
+        "expect": {
+            "vendor": "Zeki",
+            "model": "TB782B",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Dragon Touch Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 4.0.4; DT9138B Build/IMM76D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Dragon Touch",
+            "model": "9138B",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Insignia Tablet",
+        "ua": "Mozilla/5.0 (Linux; U; Android 6.0.1; NS-P08A7100 Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/56.0.2924.87 Safari/537.36",
+        "expect": {
+            "vendor": "Insignia",
+            "model": "NS-P08A7100",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Voice Xtreme V75",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.2.1; en-us; V75 Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
+        "expect": {
+            "vendor": "Voice",
+            "model": "V75",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "LvTel V11",
+        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; V11 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Safari/537.36",
+        "expect": {
+            "vendor": "LvTel",
+            "model": "V11",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Envizen Tablet V100MD",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; V100MD Build/V100MD.20130816) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
+        "expect": {
+            "vendor": "Envizen",
+            "model": "V100MD",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Rotor Tablet",
+        "ua": "mozilla/5.0 (linux; android 5.0.1; tu_1491 build/lrx22c) applewebkit/537.36 (khtml, like gecko) chrome/43.0.2357.93 safari/537.36",
+        "expect": {
+            "vendor": "Rotor",
+            "model": "1491",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "MachSpeed Tablets",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; Trio 7.85 vQ Build/Trio_7.85_vQ) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36",
+        "expect": {
+            "vendor": "MachSpeed",
+            "model": "Trio 7.85 vQ",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Trinity Tablets",
+        "ua": "Mozilla/5.0 (Linux; Android 5.0.1; Trinity T101 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Safari/537.36",
+        "expect": {
+            "vendor": "Trinity",
+            "model": "T101",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "NextBook Next7",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Next7P12 Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
+        "expect": {
+            "vendor": "NextBook",
+            "model": "Next7P12",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "NextBook Tablets",
+        "ua": "Mozilla/5.0 (Linux; Android 5.0; NXA8QC116 Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
+        "expect": {
+            "vendor": "NextBook",
+            "model": "NXA8QC116",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Le Pan Tablets",
+        "ua": "Mozilla/5.0 (Linux; Android 4.2.2; Le Pan TC802A Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
+        "expect": {
+            "vendor": "Le Pan",
+            "model": "TC802A",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Le Pan Tablets",
+        "ua": "Mozilla/5.0 (Linux; Android 4.2.2; Le Pan TC802A Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
+        "expect": {
+            "vendor": "Le Pan",
+            "model": "TC802A",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Amazon Alexa Echo Show",
+        "ua": "AlexaWebMediaPlayer/1.0.200641.0 (Linux;Android 5.1.1)",
+        "expect": {
+            "vendor": "Amazon",
+            "model": "Alexa",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Amazon Kindle Fire Tablet",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.4.3; en-us; KFSAWI Build/KTU84M) AppleWebKit/537.36 (KHTML, like Gecko) Silk/3.66 like Chrome/39.0.2171.93 Safari/537.36",
+        "expect": {
+            "vendor": "Amazon",
+            "model": "KFSAWI",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Amazon Kindle Fire Tablet",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.4.3; en-us; KFSAWI) AppleWebKit/537.36 (KHTML, like Gecko) Silk/3.66 like Chrome/39.0.2171.93 Safari/537.36",
+        "expect": {
+            "vendor": "Amazon",
+            "model": "KFSAWI",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Amazon Kindle Fire Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 9; KFMAWI Build/PS7312; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.110 Safari/537.36",
+        "expect": {
+            "vendor": "Amazon",
+            "model": "KFMAWI",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Amazon Fire TV",
+        "ua": "Mozilla/5.0 (Linux; Android 4.2.2; AFTB Build/JDQ39) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.173 Mobile Safari/537.22",
+        "expect": {
+            "vendor": "Amazon",
+            "model": "B",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "Amazon Fire TV",
+        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; AFTT) AppleWebKit/537.36 (KHTML, like Gecko) Silk/86.3.20 like Chrome/86.0.4240.198 Safari/537.36",
+        "expect": {
+            "vendor": "Amazon",
+            "model": "T",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "Android TV",
+        "ua": "Mozilla/5.0 (Linux; Android 10; 2020/2021 UHD Android TV Build/QTG3.201102.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) version/4.0 Chrome/83.0.4103.101 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "undefined",
+            "model": "undefined",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "Gigaset Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 4.2.2; Gigaset QV830 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
+        "expect": {
+            "vendor": "Gigaset",
+            "model": "QV830",
+            "type": "tablet"
+        }
+    },
+    {
         "desc": "HUAWEI MediaPad M3 Lite 10",
         "ua": "Mozilla/5.0 (Linux; Android 7.0; BAH-L09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Safari/537.36",
@@ -356,13 +2128,4 @@
             "vendor": "Huawei",
             "model": "AGR-L09",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Huawei M3",
-        "ua": "Mozilla/5.0 (Linux; Android 7.0; BTV-W09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "BTV-W09",
             "type": "tablet"
         }
@@ -439,2486 +2202,245 @@
           "type": "mobile"
       }
-    },
-    {
-        "desc": "Huawei P20 Pro",
-        "ua": "Mozilla/5.0 (Linux; Android 9; CLT-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "CLT-L29",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei P30",
-        "ua": "Mozilla/5.0 (Linux; Android 9; ELE-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "ELE-L29",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei P30 Pro",
-        "ua": "Mozilla/5.0 (Linux; Android 9; VOG-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.143 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "VOG-L29",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei P40",
-        "ua": "Mozilla/5.0 (Linux; Android 10; ANA-AN00 Build/HUAWEIANA-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/11.26 SP-engine/2.22.0 baiduboxapp/11.26.0.10 (Baidu; P1 10) NABar/1.0",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "ANA-AN00",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei P40 Pro",
-        "ua": "Mozilla/5.0 (Linux; Android 10; ELS-AN00 Build/HUAWEIELS-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Mobile Safari/537.36 mailapp/6.0.0",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "ELS-AN00",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei 30 Pro+",
-        "ua": "Mozilla/5.0 (Linux; Android 10; EBG-AN10 Build/HUAWEIEBG-AN10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.86 Mobile Safari/537.36 EdgA/42.0.0.2741",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "EBG-AN10",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei 30S",
-        "ua": "Mozilla/5.0 (Linux; Android 10; CDY-AN90 Build/HUAWEICDY-AN90; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Mobile Safari/537.36 mailapp/5.8.0",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "CDY-AN90",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Enjoy10e",
-        "ua": "Dalvik/2.1.0 (Linux; U; Android 10; MED-AL00 Build/HUAWEIMED-AL00)",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "MED-AL00",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Honor 6A",
-        "ua": "Mozilla/5.0 (Linux; Android 7.0; DLI-L22 Build/HONORDLI-L22; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.116 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/252.0.0.22.355;]",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "DLI-L22",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Honor 7",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0; PLK-L01 Build/HONORPLK-L01; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.116 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "PLK-L01",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei 10 Lite",
-        "ua": "Mozilla/5.0 (Linux; Android 9; HRY-LX1 Build/HONORHRY-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.91 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "HRY-LX1",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Y7 2018",
-        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; LDN-L01) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.62 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "LDN-L01",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Honor 8X",
-        "ua": "Mozilla/5.0 (Linux; Android 9; JSN-L21) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "JSN-L21",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Y6 2019",
-        "ua": "Mozilla/5.0 (Linux; Android 9; MRD-LX1N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "MRD-LX1N",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Y9 2019",
-        "ua": "Mozilla/5.0 (Linux; Android 9; JKM-LX2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "JKM-LX2",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Y5",
-        "ua": "Mozilla/5.0 (Linux; Android 9; AMN-LX3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "AMN-LX3",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Y7p",
-        "ua": "Mozilla/5.0 (Linux; Android 9; ART-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.92 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "ART-L29",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Mate 20 Lite",
-        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; SNE-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.116 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "SNE-LX1",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei P10 Lite",
-        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; WAS-LX1A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "WAS-LX1A",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Y5 Lite 2018",
-        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; DRA-LX5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "DRA-LX5",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Honor 8C",
-        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; BKK-LX2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "BKK-LX2",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "iPad using UCBrowser",
-        "ua": "Mozilla/5.0 (iPad; U; CPU OS 11_2 like Mac OS X; zh-CN; iPad5,3) AppleWebKit/534.46 (KHTML, like Gecko) UCBrowser/3.0.1.776 U3/ Mobile/10A403 Safari/7543.48.3",
-        "expect": {
-            "vendor": "Apple",
-            "model": "iPad",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "iPad Air",
-        "ua": "Mozilla/5.0 (iPad; CPU OS 12_4_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPad4,1;FBMD/iPad;FBSN/iOS;FBSV/12.4.5;FBSS/2;FBID/tablet;FBLC/en_US;FBOP/5;FBCR/]",
-        "expect": {
-            "vendor": "Apple",
-            "model": "iPad",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "iPad using Facebook Browser",
-        "ua": "Mozilla/5.0 (iPad; CPU OS 14_4_2 like Mac OS X) WebKit/8610 (KHTML, like Gecko) Mobile/18D70 [FBAN/FBIOS;FBDV/iPad7,11;FBMD/iPad;FBSN/iOS;FBSV/14.4.2;FBSS/2;FBID/tablet;FBLC/en_US;FBOP/5]",
-        "expect": {
-            "vendor": "Apple",
-            "model": "iPad",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "iPod",
-        "ua": "Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53",
-        "expect": {
-            "vendor": "Apple",
-            "model": "iPod touch",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Lenovo Tab 2",
-        "ua": "Mozilla/5.0 (Linux; Android 5.0.1; Lenovo TAB 2 A7-30HC Build/LRX21M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.157 Safari/537.36",
-        "expect": {
-            "vendor": "Lenovo",
-            "model": "TAB 2 A7",
-            "type": "tablet"
-        }
-    },
-  {
-        "desc": "Lenovo Phone",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0; Lenovo PB2-650M Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.105 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/311.0.0.44.117;]",
-        "expect": {
-            "vendor": "Lenovo",
-            "model": "PB2-650M",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Lenovo Tab 3 Pro",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; Lenovo YT3-X90F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.99 Safari/537.36",
-        "expect": {
-            "vendor": "Lenovo",
-            "model": "YT3-X90F",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Lenovo Tab 4",
-        "ua": "Mozilla/5.0 (Linux; Android 7.1.1; Lenovo TB-X304F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.99 Safari/537.36",
-        "expect": {
-            "vendor": "Lenovo",
-            "model": "TB-X304F",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Lenovo Tab 4",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; Lenovo TAB 2 A7-30HC) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36",
-        "expect": {
-            "vendor": "Lenovo",
-            "model": "TAB 2 A7",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Lenovo Tab 7 Essential",
-        "ua": "Mozilla/5.0 (Linux; Android 7.0; Lenovo TB-7304X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
-        "expect": {
-            "vendor": "Lenovo",
-            "model": "TB-7304X",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Lenovo Tab M10",
-        "ua": "Mozilla/5.0 (Linux; arm_64; Android 9; Lenovo TB-X606F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 YaBrowser/20.9.4.99.01 Safari/537.36",
-        "expect": {
-            "vendor": "Lenovo",
-            "model": "TB-X606F",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "LG V40 ThinQ",
-        "ua": "Mozilla/5.0 (Linux; Android 9; LM-V405) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "LG",
-            "model": "LM-V405",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "LG K30",
-        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; LM-X410.F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "LG",
-            "model": "LM-X410.F",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "LG K30",
-        "ua": "Mozilla/5.0 (Linux; Android 9; LM-X410.FGN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "LG",
-            "model": "LM-X410.FGN",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "LG Stylo 5",
-        "ua": "Mozilla/5.0 (Linux; Android 9; LM-Q720) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.96 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "LG",
-            "model": "LM-Q720",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "LG G7 ThinQ",
-        "ua": "Mozilla/5.0 (Linux; Android 9; LM-G710VM Build/PKQ1.181105.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.136 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "LG",
-            "model": "LM-G710VM",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "LG K500",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; LG-K500 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "LG",
-            "model": "K500",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "LG Nexus 4",
-        "ua": "Mozilla/5.0 (Linux; Android 4.2.1; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19",
-        "expect": {
-            "vendor": "LG",
-            "model": "Nexus 4",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "LG Nexus 4",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.3; en-us; Google Nexus 4 - 4.3 - API 18 - 768x1280 Build/JLS36G) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
-        "expect": {
-            "vendor": "LG",
-            "model": "Nexus 4",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "LG Nexus 5",
-        "ua": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19",
-        "expect": {
-            "vendor": "LG",
-            "model": "Nexus 5",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "LG Wing",
-        "ua": "Mozilla/5.0 (Linux; Android 10; LM-F100N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.101 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "LG",
-            "model": "LM-F100N",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "LG Smart TV",
-        "ua": "Mozilla/5.0 (DirectFB; U; Linux mips; en) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) LG Browser (; LG NetCast.TV-2011)",
-        "expect": {
-            "vendor": "LG",
-            "model": "undefined",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "LG Smart TV",
-        "ua": "Mozilla/5.0 (Linux; NetCast; U) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/53.0.2785 34 Safari/537.31 SmartTV/8.5",
-        "expect": {
-            "vendor": "LG",
-            "model": "undefined",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "LG Android TV",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; LG Android TV Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
-        "expect": {
-            "vendor": "LG",
-            "model": "undefined",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Meizu M5 Note",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0; M5 Note Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043024 Safari/537.36 MicroMessenger/6.5.7.1040 NetType/WIFI Language/zh_CN",
-        "expect": {
-            "vendor": "Meizu",
-            "model": "M5 Note",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Microsoft Lumia 950",
-        "ua": "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/13.10586",
-        "expect": {
-            "vendor": "Microsoft",
-            "model": "Lumia 950",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Microsoft Surface Duo",
-        "ua": "Dalvik/2.1.0 (Linux; U; Android 10; Surface Duo Build/2020.1014.61)",
-        "expect": {
-            "vendor": "Microsoft",
-            "model": "Surface Duo",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Motorola Moto X",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.4; XT1097 Build/KXE21.187-38) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.109 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Motorola",
-            "model": "XT1097",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc"      : "Meizu M3S",
-        "ua"        : "Mozilla/5.0 (X11; Linux; Android 5.1; MZ-M3s Build/LMY47I) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrom/45.0.2454.94 Mobile Safari/537.36",
-        "expect"    :
-        {
-            "vendor"  : "Meizu",
-            "model"   : "M3s",
-            "type"    : "mobile"
-        }
-    },
-    {
-        "desc"      : "Microsoft Lumia 950",
-        "ua"        : "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/13.10586",
-        "expect"    :
-        {
-            "vendor"  : "Microsoft",
-            "model"   : "Lumia 950",
-            "type"    : "mobile"
-        }
-    },
-    {
-        "desc": "Motorola Nexus 6",
-        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.20 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Motorola",
-            "model": "Nexus 6",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Motorola Droid RAZR 4G",
-        "ua": "Mozilla/5.0 (Linux; U; Android 2.3; xx-xx; DROID RAZR 4G Build/6.5.1-73_DHD-11_M1-29) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
-        "expect": {
-            "vendor": "Motorola",
-            "model": "DROID RAZR 4G",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Motorola RAZR 2019",
-        "ua": "Mozilla/5.0 (Linux; Android 9; motorola razr) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/11.1 Chrome/75.0.3770.143 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Motorola",
-            "model": "razr",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "iPhone",
-        "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53",
-        "expect": {
-            "vendor": "Apple",
-            "model": "iPhone",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "iPhone SE",
-        "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPhone8,4;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBCR/]",
-        "expect": {
-            "vendor": "Apple",
-            "model": "iPhone",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "iPhone SE using Facebook App",
-        "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPhone8,4;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBCR/]",
-        "expect": {
-            "vendor": "Apple",
-            "model": "iPhone",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "iPhone 11 Pro Max",
-        "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPhone12,5;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/3;FBID/phone;FBLC/en_US;FBOP/5;FBCR/]",
-        "expect": {
-            "vendor": "Apple",
-            "model": "iPhone",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "iPhone XS",
-        "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPhone11,2;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/3;FBID/phone;FBLC/en_US;FBOP/5;FBCR/]",
-        "expect": {
-            "vendor": "Apple",
-            "model": "iPhone",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "iPod touch",
-        "ua": "Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53",
-        "expect": {
-            "vendor": "Apple",
-            "model": "iPod touch",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Moto X",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.2; xx-xx; XT1058 Build/13.9.0Q2.X-70-GHOST-ATT_LE-2) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
-        "expect": {
-            "vendor": "Motorola",
-            "model": "XT1058",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Motorola Moto g(6) Play",
-        "ua": "Mozilla/5.0 (Linux; Android 9; moto g(6) play) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Motorola",
-            "model": "moto g(6) play",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Motorola Moto g(7) Supra",
-        "ua": "Mozilla/5.0 (Linux; Android 9; moto g(7) supra Build/PCOS29.114-134-2; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/73.0.3683.90 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Motorola",
-            "model": "moto g(7) supra",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Motorola Moto E",
-        "ua": "Mozilla/5.0 (Linux; Android 7.1.1; Moto E (4) Build/NDQS26.69-64-11-7; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/56.0.2924.87 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Motorola",
-            "model": "Moto E (4)",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Nokia3xx",
-        "ua": "Nokia303/14.87 CLDC-1.1",
-        "expect": {
-            "vendor": "Nokia",
-            "model": "303",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Nokia 3.2",
-        "ua": "Mozilla/5.0 (Linux; Android 10; Nokia 3.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Nokia",
-            "model": "3.2",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Nokia N9",
-        "ua": "Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",
-        "expect": {
-            "vendor": "Nokia",
-            "model": "N9",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Nokia 2720 Flip",
-        "ua": "Mozilla/5.0 (Mobile; Nokia_2720_Flip; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2",
-        "expect": {
-            "vendor": "Nokia",
-            "model": "2720 Flip",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Oculus Quest",
-        "ua": "Mozilla/5.0 (Linux; Android 10; Quest) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/15.0.0.0.22.280317669 SamsungBrowser/4.0 Chrome/89.0.4389.90 VR Safari/537.36",
-        "expect": {
-            "vendor": "Facebook",
-            "model": "Quest",
-            "type": "wearable"
-        }
-    },
-    {
-        "desc": "Oculus Quest 2",
-        "ua": "Mozilla/5.0 (Linux; Android 10; Quest 2) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/15.0.0.0.22.280317669 SamsungBrowser/4.0 Chrome/89.0.4389.90 VR Safari/537.36",
-        "expect": {
-            "vendor": "Facebook",
-            "model": "Quest 2",
-            "type": "wearable"
-        }
-    },
-    {
-        "desc": "OnePlus One",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.4; A0001 Build/KTU84Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OnePlus",
-            "model": "A0001",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OnePlus One",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; OnePlus One A0001 Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OnePlus",
-            "model": "A0001",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OnePlus 2",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; ONE A2003) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OnePlus",
-            "model": "A2003",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OnePlus 3",
-        "ua": "Mozilla/5.0 (Linux; Android 7.1.1; ONEPLUS A3000 Build/NMF26F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.98 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OnePlus",
-            "model": "A3000",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OnePlus 6",
-        "ua": "Mozilla/5.0 (Linux; Android 9; ONEPLUS A6003) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.89 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OnePlus",
-            "model": "A6003",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OnePlus 6T",
-        "ua": "Mozilla/5.0 (Linux; Android 9; ONEPLUS A6010) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.96 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OnePlus",
-            "model": "A6010",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OnePlus 8T",
-        "ua": "Mozilla/5.0 (Linux; Android 11; KB2005) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OnePlus",
-            "model": "KB2005",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OnePlus 8 Pro",
-        "ua": "Mozilla/5.0 (Linux; Android 10; IN2025) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.119 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OnePlus",
-            "model": "IN2025",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OnePlus Nord N100",
-        "ua": "Mozilla/5.0 (Linux; Android 10; BE2015 Build/QKQ1.200719.002; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OnePlus",
-            "model": "BE2015",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OnePlus Nord N10 5G",
-        "ua": "Mozilla/5.0 (Linux; Android 10; BE2029) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.185 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OnePlus",
-            "model": "BE2029",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OPPO Neo",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; R831T Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 OppoBrowser/3.3.2 Mobile Safari/534.30",
-        "expect": {
-            "vendor": "OPPO",
-            "model": "R831T",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OPPO R7s",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7s Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/7.1 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OPPO",
-            "model": "R7s",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OPPO A3s",
-        "ua": "Mozilla/5.0 (Linux; Android 8.1; CPH1803 Build/OPM1.171019.026; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OPPO",
-            "model": "CPH1803",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OPPO A12",
-        "ua": "Mozilla/5.0 (Linux; Android 9; CPH2083) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OPPO",
-            "model": "CPH2083",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OPPO Reno",
-        "ua": "Mozilla/5.0 (Linux; Android 9; PCAT00 Build/PKQ1.190101.001; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.110 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OPPO",
-            "model": "PCAT00",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OPPO Reno3 Pro 5G",
-        "ua": "Mozilla/5.0 (Linux; Android 10; PCLM50) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.117 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OPPO",
-            "model": "PCLM50",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OPPO Reno4 SE",
-        "ua": "Mozilla/5.0 (Linux; U; Android 10; xx-xx; PEAM00 Build/QP1A.190711.020) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.80 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OPPO",
-            "model": "PEAM00",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OPPO Reno4 5G",
-        "ua": "Mozilla/5.0 (Linux; Android 10; PDPM00 Build/QKQ1.200216.002; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OPPO",
-            "model": "PDPM00",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OPPO Reno4 Pro 5G",
-        "ua": "Mozilla/5.0 (Linux; U; Android 10; xx-xx; PDNT00 Build/QKQ1.200216.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.80 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OPPO",
-            "model": "PDNT00",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OPPO Reno5 A",
-        "ua": "Mozilla/5.0 (Linux; Android 11; A101OP) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OPPO",
-            "model": "A101OP",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OPPO Find X",
-        "ua": "Mozilla/5.0 (Linux; Android 8.1; PAFM00 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "OPPO",
-            "model": "PAFM00",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "OPPO Find 7a",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.3; xx-xx; X9007 Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
-        "expect": {
-            "vendor": "OPPO",
-            "model": "X9007",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Realme C1",
-        "ua": "Mozilla/5.0 (Linux; Android 8.1; RMX1811 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.126 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Realme",
-            "model": "RMX1811",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Realme C2",
-        "ua": "Mozilla/5.0 (Linux; Android 9; RMX1941) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Realme",
-            "model": "RMX1941",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Realme Narzo 20",
-        "ua": "Mozilla/5.0 (Linux; U; Android 10; xx-xx; RMX2193 Build/QP1A.190711.020) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.80 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Realme",
-            "model": "RMX2193",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Realme 2 Pro",
-        "ua": "Mozilla/5.0 (Linux; Android 9; RMX1801) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Realme",
-            "model": "RMX1801",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Philips SmartTV",
-        "ua": "Opera/9.80 HbbTV/1.1.1 (; Philips; ; ; ; ) NETTV/4.0.2; en) Version/11.60",
-        "expect": {
-            "vendor": "Philips",
-            "model": "",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Roku",
-        "ua": "Mozilla/5.0 (Roku) AppleWebKit/537.36 (KHTML, like Gecko) Web/1.1 Safari/537.36",
-        "expect": {
-            "vendor": "Roku",
-            "model": "",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Roku",
-        "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36 Roku/DVP-8.10 (468.10E04145A)",
-        "expect": {
-            "vendor": "Roku",
-            "model": "DVP-8.10",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Roku",
-        "ua": "Roku4640X/DVP-7.70 (297.70E04154A)",
-        "expect": {
-            "vendor": "Roku",
-            "model": "DVP-7.70",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Kindle Fire HD",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true",
-        "expect": {
-            "vendor": "Amazon",
-            "model": "KFTT",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Kindle Fire HD",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true",
-        "expect": {
-            "vendor": "Amazon",
-            "model": "KFTT",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy A21s",
-        "ua": "Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-A217F) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/11.0 Chrome/75.0.3770.143 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-A217F",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy A31",
-        "ua": "Mozilla/5.0 (Linux; Android 10; SM-A315G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-A315G",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy A50",
-        "ua": "Mozilla/5.0 (Linux; Android 9; SM-A505F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.105 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-A505F",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy A80",
-        "ua": "Mozilla/5.0 (Linux; Android 9; SM-A805F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.112 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-A805F",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy Fold",
-        "ua": "Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-F900U Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/9.2 Chrome/67.0.3396.87 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-F900U",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy Z Flip",
-        "ua": "Mozilla/5.0 (Linux; Android 10; SM-F700N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-F700N",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy Z Fold2",
-        "ua": "Mozilla/5.0 (Linux; Android 10; SM-F916B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-F916B",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy S10E",
-        "ua": "Mozilla/5.0 (Linux; Android 9; SM-G970F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-G970F",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy Note 10+",
-        "ua": "Mozilla/5.0 (Linux; Android 9; SM-N976V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.89 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-N976V",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung SM-C5000",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; SM-C5000 Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/51.0.2704.81 Mobile Safari/537.36 wkbrowser 4.1.35 3065",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-C5000",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy Note 8",
-        "ua": "Mozilla/5.0 (Linux; Android 4.2.2; GT-N5100 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "GT-N5100",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Samsung SM-T231",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T231 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-T231",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy Tab 6 Lite",
-        "ua": "Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-P610) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/12.0 Chrome/79.0.3945.136 Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-P610",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy Tab A 9.7",
-        "ua": "Mozilla/5.0 (Linux; Android 7.1.1; SM-P550 Build/NMF26X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.90 Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-P550",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy Tab A 10.1",
-        "ua": " Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-T515) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/13.0 Chrome/83.0.4103.106 Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-T515",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy Tab S7",
-        "ua": "Mozilla/5.0 (Linux; Android 10; SM-T870) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-T870",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy Tab S",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T700 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-T700",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy Tab Pro 10.1",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T520 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-T520",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Samsung Note 10.1",
-        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SM-P605) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36",
-        "expect": {
-          "vendor": "Samsung",
-          "model": "SM-P605",
-          "type": "tablet"
-        }
-    },
-    {
-        "desc": "Samsung SmartTV2011",
-        "ua": "HbbTV/1.1.1 (;;;;;) Maple;2011",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SmartTV2011",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Samsung SmartTV2012",
-        "ua": "HbbTV/1.1.1 (;Samsung;SmartTV2012;;;) WebKit",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SmartTV2012",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Samsung SmartTV2014",
-        "ua": "HbbTV/1.1.1 (;Samsung;SmartTV2014;T-NT14UDEUC-1060.4;;) WebKit",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SmartTV2014",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Samsung SmartTV",
-        "ua": "Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/537.42 (KHTML, like Gecko) Safari/537.42",
-        "expect": {
-            "vendor": "undefined",
-            "model": "undefined",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Samsung SmartTV",
-        "ua": "Mozilla/5.0 (SMART-TV; Linux; Tizen 2.3) AppleWebkit/538.1 (KHTML, like Gecko) SamsungBrowser/1.0 TV Safari/538.1",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "undefined",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Sharp Aquos B10",
-        "ua": "Mozilla/5.0 (Linux; Android 7.0; SH-A01) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sharp",
-            "model": "SH-A01",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sharp Aquos L2",
-        "ua": "Mozilla/5.0 (Linux; Android 7.0; SH-L02 Build/S4045) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sharp",
-            "model": "SH-L02",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sharp Aquos R2",
-        "ua": "Mozilla/5.0 (Linux; Android 8.0; SHV42) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.92 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sharp",
-            "model": "SHV42",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sony G8141 (Xperia XZ Premium)",
-        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; G8141) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sony",
-            "model": "G8141",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sony C5303 (Xperia SP)",
-        "ua": "Mozilla/5.0 (Linux; Android 4.3; C5303 Build/12.1.A.1.205) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sony",
-            "model": "C5303",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sony SO-02F (Xperia Z1 F)",
-        "ua": "Mozilla/5.0 (Linux; Android 4.2.2; SO-02F Build/14.1.H.2.119) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sony",
-            "model": "SO-02F",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sony D6653 (Xperia Z3)",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4; D6653 Build/23.0.A.0.376) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sony",
-            "model": "D6653",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sony Xperia SOL25 (ZL2)",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.4; SOL25 Build/17.1.1.C.1.64) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
-        "expect": {
-            "vendor": "Sony",
-            "model": "SOL25",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sony Xperia SP",
-        "ua": "Mozilla/5.0 (Linux; Android 4.3; C5302 Build/12.1.A.1.201) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sony",
-            "model": "C5302",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sony Xperia L4",
-        "ua": "Mozilla/5.0 (Linux; Android 9; XQ-AD51) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.83 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sony",
-            "model": "XQ-AD51",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sony Xperia 1ii",
-        "ua": "Mozilla/5.0 (Linux; Android 10; XQ-AT51) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sony",
-            "model": "XQ-AT51",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sony Xperia 1ii",
-        "ua": "Mozilla/5.0 (Linux; Android 10; SOG01) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sony",
-            "model": "SOG01",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sony Xperia 10ii",
-        "ua": "Mozilla/5.0 (Linux; Android 10; XQ-AU52) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sony",
-            "model": "XQ-AU52",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sony Xperia Pro",
-        "ua": "Mozilla/5.0 (Linux; Android 10; XQ-AQ52) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.185 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sony",
-            "model": "XQ-AQ52",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Sony SGP521 (Xperia Z2 Tablet)",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4; SGP521 Build/17.1.A.0.432) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36",
-        "expect": {
-            "vendor": "Sony",
-            "model": "Xperia Tablet",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Sony Xperia Z2 Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SGP561) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.99 Safari/537.36",
-        "expect": {
-            "vendor": "Sony",
-            "model": "Xperia Tablet",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Sony Tablet S",
-        "ua": "Mozilla/5.0 (Linux; U; Android 3.1; Sony Tablet S Build/THMAS10000) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
-        "expect": {
-            "vendor": "Sony",
-            "model": "Xperia Tablet",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Sony Tablet Z LTE",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.1; SonySGP321 Build/10.2.C.0.143) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
-        "expect": {
-            "vendor": "Sony",
-            "model": "Xperia Tablet",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc"    : "Tesla",
-        "ua"      : "Mozilla/5.0 (X11; GNU/Linux) AppleWebKit/601.1 (KHTML, like Gecko) Tesla QtCarBrowser Safari/601.1",
-        "expect"  :
-        {
-            "vendor": "Tesla",
-            "model": "undefined",
-            "type": "embedded"
-        }
-    },
-    {
-        "desc"    : "Tesla",
-        "ua"      : "Mozilla/5.0 (X11; GNU/Linux) AppleWebKit/537.36 (KHTML, like Gecko) Chromium/79.0.3945.130 Chrome/79.0.3945.130 Safari/537.36 Tesla/2020.16.2.1-e99c70fff409",
-        "expect"  :
-        {
-            "vendor": "Tesla",
-            "model": "undefined",
-            "type": "embedded"
-        }
-    },
-    {
-        "desc": "Xiaomi 2013023",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.2.2; en-US; 2013023 Build/HM2013023) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/10.0.1.512 U3/0.8.0 Mobile Safari/533.1",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "2013023",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Hongmi Note 1W",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.2.2; zh-CN; HM NOTE 1W Build/JDQ39) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.7.9.439 U3/0.8.0 Mobile Safari/533.1",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "HM NOTE 1W",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Mi 3C",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.3; zh-CN; MI 3C Build/JLS36C) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.7.9.439 U3/0.8.0 Mobile Safari/533.1",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "MI 3C",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Mi 5",
-        "ua": "Mozilla/5.0 (Linux; Android 7.0; MI 5 Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.83 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "MI 5",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Mi 6",
-        "ua": "Mozilla/5.0 (Linux; Android 7.1; MI 6 Build/NMF26X; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/59.0.3071.125 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "MI 6",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Mi 5s Plus",
-        "ua": "Mozilla/5.0 (Linux; U; Android 6.0.1; zh-cn; MI 5s Plus Build/MXB48T) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.146 Mobile Safari/537.36 XiaoMi/MiuiBrowser/8.7.1",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "MI 5s Plus",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Mi A1",
-        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; Mi A1 Build/OPR1.170623.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "Mi A1",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Mi Note",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.4; MI NOTE LTE Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "MI NOTE LTE",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Mi One Plus",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; MI-ONE Plus Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "MI-ONE Plus",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Mi Max 3",
-        "ua": "Mozilla/5.0 (Linux; Android 9; MI MAX 3 Build/PKQ1.181007.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.116 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "MI MAX 3",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Mi A1",
-        "ua": "Mozilla/5.0 (Linux; Android 9; Mi A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.101 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "Mi A1",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Mi A2 Lite",
-        "ua": "Mozilla/5.0 (Linux; Android 9; Mi A2 Lite) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.62 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "Mi A2 Lite",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Mi 9 SE",
-        "ua": "Mozilla/5.0 (Linux; Android 9; Mi 9 SE) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "Mi 9 SE",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Mi A2",
-        "ua": "Mozilla/5.0 (Linux; Android 9; Mi A2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "Mi A2",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi MI PAD 2",
-        "ua": "Mozilla/5.0 (Linux; Android 5.1; MI PAD 2 Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/60.0.3112.107 Safari/537.36 [FB_IAB/FB4A;FBAV/137.0.0.24.91;]",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "MI PAD 2",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Xiaomi MI PAD 4 PLUS",
-        "ua": "Mozilla/5.0 (Linux; Android 8.1; MI PAD 4 PLUS) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "MI PAD 4 PLUS",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Xiaomi POCO X2",
-        "ua": "Mozilla/5.0 (Linux; Android 10; POCO X2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "POCO X2",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Redmi 4A",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0; Redmi 4A Build/MMB29M; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/56.0.2924.87 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "Redmi 4A",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Redmi K30 5G",
-        "ua": "Mozilla/5.0 (Linux; Android 10; Redmi K30 5G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.96 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "Redmi K30 5G",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Redmi K30 Pro",
-        "ua": "Mozilla/5.0 (Linux; Android 10; Redmi K30 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "Redmi K30 Pro",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Redmi Note 3",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; Redmi Note 3 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.116 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "Redmi Note 3",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xiaomi Redmi Note 9 Pro Max",
-        "ua": "Mozilla/5.0 (Linux; Android 10; Redmi Note 9 Pro Max) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.99 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Xiaomi",
-            "model": "Redmi Note 9 Pro Max",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "PlayStation 4",
-        "ua": "Mozilla/5.0 (PlayStation 4 3.00) AppleWebKit/537.73 (KHTML, like Gecko)",
-        "expect": {
-            "vendor": "Sony",
-            "model": "PlayStation 4",
-            "type": "console"
-        }
-    },
-    {
-        "desc": "PlayStation 5",
-        "ua": "Mozilla/5.0 (Playstation; Playstation 5/1.05) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15",
-        "expect": {
-            "vendor": "Sony",
-            "model": "Playstation 5",
-            "type": "console"
-        }
-    },
-    {
-        "desc": "PlayStation Vita",
-        "ua": "Mozilla/5.0 (PlayStation Vita 3.52) AppleWebKit/537.73 (KHTML, like Gecko) Silk/3.2",
-        "expect": {
-            "vendor": "Sony",
-            "model": "PlayStation Vita",
-            "type": "console"
-        }
-    },
-    {
-        "desc": "Nintendo Switch",
-        "ua": "Mozilla/5.0 (Nintendo Switch; WifiWebAuthApplet) AppleWebKit/606.4 (KHTML, like Gecko) NF/6.0.1.15.4 NintendoBrowser/5.1.0.20393",
-        "expect": {
-            "vendor": "Nintendo",
-            "model": "Switch",
-            "type": "console"
-        }
-    },
-    {
-        "desc": "Nintendo WiiU",
-        "ua": "Mozilla/5.0 (Nintendo WiiU) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.4.2.9 NintendoBrowser/4.2.0.11146.EU",
-        "expect": {
-            "vendor": "Nintendo",
-            "model": "WiiU",
-            "type": "console"
-        }
-    },
-    {
-        "desc": "Nintendo Wii",
-        "ua": "Opera/9.10 (Nintendo Wii; U; ; 1621; en)",
-        "expect": {
-            "vendor": "Nintendo",
-            "model": "Wii",
-            "type": "console"
-        }
-    },
-    {
-        "desc": "Nintendo 3DS",
-        "ua": "Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7610.EU",
-        "expect": {
-            "vendor": "Nintendo",
-            "model": "3DS",
-            "type": "console"
-        }
-    },
-    {
-        "desc": "Nintendo 3DS",
-        "ua": "Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.EU",
-        "expect": {
-            "vendor": "Nintendo",
-            "model": "3DS",
-            "type": "console"
-        }
-    },
-    {
-        "desc": "Galaxy Nexus",
-        "ua": "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "Galaxy Nexus",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy C9 Pro",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0; SAMSUNG SM-C900F Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.2 Chrome/44.0.2403.133 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-C900F",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy S5",
-        "ua": "Mozilla/5.0 (Linux; Android 5.0; SM-G900F Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.78 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-G900F",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy S6",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-G920I Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-G920I",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy S6 Edge",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-G925I Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-G925I",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy Note 5 Chrome",
-        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SM-N920C Build/LMY47X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.91 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-N920C",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Samsung Galaxy Note 5 Samsung Browser",
-        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SAMSUNG SM-N920C Build/LMY47X) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Samsung",
-            "model": "SM-N920C",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Chromecast",
-        "ua": "Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.84 Safari/537.36 CrKey/1.22.79313",
-        "expect": {
-            "vendor": "Google",
-            "model": "Chromecast",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Google Pixel C",
-        "ua": "Mozilla/5.0 (Linux; Android 7.0; Pixel C Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.98 Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel C",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Google Pixel C",
-        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; Pixel C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.64 Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel C",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Google Pixel",
-        "ua": "Mozilla/5.0 (Linux; Android 7.1; Pixel Build/NDE63V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel XL",
-        "ua": "Mozilla/5.0 (Linux; Android 7.1; Pixel XL Build/NDE63X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel XL",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel XL",
-        "ua": "Mozilla/5.0 (Linux; Android 9; Pixel XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel XL",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel 2",
-        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; Pixel 2 Build/OPM1.171019.013) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel 2",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel 2 XL",
-        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; Pixel 2 XL Build/OPM1.171019.013) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel 2 XL",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel 2 XL",
-        "ua": "Mozilla/5.0 (Linux; Android 9; Pixel 2 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel 2 XL",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel 3",
-        "ua": "Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PD1A.180720.030) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel 3",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel 3 XL",
-        "ua": "Mozilla/5.0 (Linux; Android 9; Pixel 3 XL Build/PD1A.180720.030) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel 3 XL",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel 3 XL",
-        "ua": "Mozilla/5.0 (Linux; Android 9; Pixel 3 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel 3 XL",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel 3a",
-        "ua": "Mozilla/5.0 (Linux; Android 10; Pixel 3a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel 3a",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel 3a XL",
-        "ua": "Mozilla/5.0 (Linux; Android 10; Pixel 3a XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel 3a XL",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel 4",
-        "ua": "Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel 4",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel 4a",
-        "ua": "Mozilla/5.0 (Linux; Android 10; Pixel 4a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.83 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel 4a",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel 4 XL",
-        "ua": "Mozilla/5.0 (Linux; Android 10; Pixel 4 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel 4 XL",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Google Pixel 5",
-        "ua": "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.120 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Google",
-            "model": "Pixel 5",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Generic Android Device",
-        "ua": "Mozilla/5.0 (Linux; U; Android 6.0.1; i980 Build/MRA58K)",
-        "expect": {
-            "vendor": "Generic",
-            "model": "Android 6.0.1"
-        }
-    },
-    {
-        "desc": "Android Phone Unidentified Vendor (docomo F-04K)",
-        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; F-04K Build/V15R060P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Safari/537.36",
-        "expect": {
-            "model": "F-04K",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "docomo SH-02M",
-        "ua": "Mozilla/5.0 (Linux; Android 9; SH-02M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Sharp",
-            "model": "SH-02M",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Android Tablet Unidentified Vendor (docomo F-02K)",
-        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; F-02K Build/V44R059G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.109 Safari/537.36",
-        "expect": {
-            "model": "F-02K",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Android Tablet Unidentified Vendor (docomo d-02K)",
-        "ua": "Mozilla/5.0 (Linux; Android 9; d-02K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Safari/537.36",
-        "expect": {
-            "model": "d-02K",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "LG VK Series Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 5.0.2; VK700 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.84 Safari/537.36",
-        "expect": {
-            "vendor": "LG",
-            "model": "VK700",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "LG LK Series Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 5.0.1; LGLK430 Build/LRX21Y) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/38.0.2125.102 Safari/537.36",
-        "expect": {
-            "vendor": "LG",
-            "model": "LK430",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "RCA Voyager III Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; RCT6973W43 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
-        "expect": {
-            "vendor": "RCA",
-            "model": "RCT6973W43",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "RCA Voyager II Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 5.0; RCT6773W22B Build/LRX21M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
-        "expect": {
-            "vendor": "RCA",
-            "model": "RCT6773W22B",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Verizon Quanta Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; QMV7B Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
-        "expect": {
-            "vendor": "Verizon",
-            "model": "QMV7B",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Verizon Ellipsis 8 Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; QTAQZ3 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
-        "expect": {
-            "vendor": "Verizon",
-            "model": "QTAQZ3",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Verizon Ellipsis 8HD Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; QTASUN1 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Safari/537.36",
-        "expect": {
-            "vendor": "Verizon",
-            "model": "QTASUN1",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Dell Venue 8 Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; Venue 8 3830 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
-        "expect": {
-            "vendor": "Dell",
-            "model": "Venue 8 3830",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Dell Venue 7 Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; Venue 7 3730 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
-        "expect": {
-            "vendor": "Dell",
-            "model": "Venue 7 3730",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Barnes & Noble Nook HD+ Tablet",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; Barnes & Noble Nook HD+ Build/JZO54K; CyanogenMod-10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
-        "expect": {
-            "vendor": "Barnes & Noble",
-            "model": "Nook HD+",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Barnes & Noble V400 Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 4.0.4; BNTV400 Build/IMM76L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.111 Safari/537.36",
-        "expect": {
-            "vendor": "Barnes & Noble",
-            "model": "V400",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "NuVision TM101A540N Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 5.1; TM101A540N Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/50.0.2661.86 Safari/537.36",
-        "expect": {
-            "vendor": "NuVision",
-            "model": "TM101A540N",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "ZTE-Z431",
-        "ua": "ZTE-Z431/1.4.0 NetFront/4.2 QTV5.1 Profile/MIDP-2.1 Configuration/CLDC-1.1",
-        "expect": {
-            "vendor": "ZTE",
-            "model": "Z431",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "ZTE",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; ZTE-Z740G Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
-        "expect": {
-            "vendor": "ZTE",
-            "model": "Z740G",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "ZTE K Series Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; K88 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
-        "expect": {
-            "vendor": "ZTE",
-            "model": "K88",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "ZTE Nubia Red Magic 3",
-        "ua": "Mozilla/5.0 (Linux; Android 9; NX629J Build/PKQ1.190321.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/45016 Mobile Safari/537.36 MMWEBID/4064 MicroMessenger/7.0.10.1580(0x27000A34) Process/tools NetType/WIFI Language/zh_CN ABI/arm64",
-        "expect": {
-            "vendor": "ZTE",
-            "model": "NX629J",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "ZTE Blade A5",
-        "ua": "Mozilla/5.0 (Linux; Android 9; ZTE Blade A5 2019) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "ZTE",
-            "model": "Blade A5 2019",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "ZTE BLADE V0730",
-        "ua": "Mozilla/5.0 (Linux; Android 6.0; ZTE BLADE V0730) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "ZTE",
-            "model": "BLADE V0730",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "ZTE B2017G",
-        "ua": "Mozilla/5.0 (Linux; Android 7.1.1; ZTE B2017G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "ZTE",
-            "model": "B2017G",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Swizz GEN610",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; GEN610 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Swiss",
-            "model": "GEN610",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Swizz ZUR700",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; ZUR700 Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Safari/537.36",
-        "expect": {
-            "vendor": "Swiss",
-            "model": "ZUR700",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Zeki TB782b Tablet",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.0.4; en-US; TB782B Build/IMM76D) AppleWebKit/534.31 (KHTML, like Gecko) UCBrowser/9.0.2.299 U3/0.8.0 Mobile Safari/534.31",
-        "expect": {
-            "vendor": "Zeki",
-            "model": "TB782B",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Dragon Touch Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 4.0.4; DT9138B Build/IMM76D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Dragon Touch",
-            "model": "9138B",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Insignia Tablet",
-        "ua": "Mozilla/5.0 (Linux; U; Android 6.0.1; NS-P08A7100 Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/56.0.2924.87 Safari/537.36",
-        "expect": {
-            "vendor": "Insignia",
-            "model": "NS-P08A7100",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Voice Xtreme V75",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.2.1; en-us; V75 Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
-        "expect": {
-            "vendor": "Voice",
-            "model": "V75",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "LvTel V11",
-        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; V11 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Safari/537.36",
-        "expect": {
-            "vendor": "LvTel",
-            "model": "V11",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Envizen Tablet V100MD",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; V100MD Build/V100MD.20130816) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
-        "expect": {
-            "vendor": "Envizen",
-            "model": "V100MD",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Rotor Tablet",
-        "ua": "mozilla/5.0 (linux; android 5.0.1; tu_1491 build/lrx22c) applewebkit/537.36 (khtml, like gecko) chrome/43.0.2357.93 safari/537.36",
-        "expect": {
-            "vendor": "Rotor",
-            "model": "1491",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "MachSpeed Tablets",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; Trio 7.85 vQ Build/Trio_7.85_vQ) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36",
-        "expect": {
-            "vendor": "MachSpeed",
-            "model": "Trio 7.85 vQ",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Trinity Tablets",
-        "ua": "Mozilla/5.0 (Linux; Android 5.0.1; Trinity T101 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Safari/537.36",
-        "expect": {
-            "vendor": "Trinity",
-            "model": "T101",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "NextBook Next7",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Next7P12 Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
-        "expect": {
-            "vendor": "NextBook",
-            "model": "Next7P12",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "NextBook Tablets",
-        "ua": "Mozilla/5.0 (Linux; Android 5.0; NXA8QC116 Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
-        "expect": {
-            "vendor": "NextBook",
-            "model": "NXA8QC116",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Le Pan Tablets",
-        "ua": "Mozilla/5.0 (Linux; Android 4.2.2; Le Pan TC802A Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
-        "expect": {
-            "vendor": "Le Pan",
-            "model": "TC802A",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Le Pan Tablets",
-        "ua": "Mozilla/5.0 (Linux; Android 4.2.2; Le Pan TC802A Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
-        "expect": {
-            "vendor": "Le Pan",
-            "model": "TC802A",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Amazon Alexa Echo Show",
-        "ua": "AlexaWebMediaPlayer/1.0.200641.0 (Linux;Android 5.1.1)",
-        "expect": {
-            "vendor": "Amazon",
-            "model": "Alexa",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Amazon Kindle Fire Tablet",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.4.3; en-us; KFSAWI Build/KTU84M) AppleWebKit/537.36 (KHTML, like Gecko) Silk/3.66 like Chrome/39.0.2171.93 Safari/537.36",
-        "expect": {
-            "vendor": "Amazon",
-            "model": "KFSAWI",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Amazon Kindle Fire Tablet",
-        "ua": "Mozilla/5.0 (Linux; U; Android 4.4.3; en-us; KFSAWI) AppleWebKit/537.36 (KHTML, like Gecko) Silk/3.66 like Chrome/39.0.2171.93 Safari/537.36",
-        "expect": {
-            "vendor": "Amazon",
-            "model": "KFSAWI",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Amazon Kindle Fire Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 9; KFMAWI Build/PS7312; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.110 Safari/537.36",
-        "expect": {
-            "vendor": "Amazon",
-            "model": "KFMAWI",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Amazon Fire TV",
-        "ua": "Mozilla/5.0 (Linux; Android 4.2.2; AFTB Build/JDQ39) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.173 Mobile Safari/537.22",
-        "expect": {
-            "vendor": "Amazon",
-            "model": "B",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Amazon Fire TV",
-        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; AFTT) AppleWebKit/537.36 (KHTML, like Gecko) Silk/86.3.20 like Chrome/86.0.4240.198 Safari/537.36",
-        "expect": {
-            "vendor": "Amazon",
-            "model": "T",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Android TV",
-        "ua": "Mozilla/5.0 (Linux; Android 10; 2020/2021 UHD Android TV Build/QTG3.201102.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) version/4.0 Chrome/83.0.4103.101 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "undefined",
-            "model": "undefined",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "Gigaset Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 4.2.2; Gigaset QV830 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
-        "expect": {
-            "vendor": "Gigaset",
-            "model": "QV830",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Amazon Fire 7",
-        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; KFAUWI) AppleWebKit/537.36 (KHTML, like Gecko) Silk/80.5.3 like Chrome/80.0.3987.162 Safari/537.36",
-        "expect": {
-            "vendor": "Amazon",
-            "model": "KFAUWI",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "AT&T Radiant Core U304AA",
-        "ua": "Dalvik/2.1.0 (Linux; U; Android 9; U304AA Build/P00610)",
-        "expect": {
-            "vendor": "AT&T",
-            "model": "U304AA",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Vodafone Smart Tab 4G",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.4; Vodafone Smart Tab 4G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36",
-        "expect": {
-            "vendor": "Vodafone",
-            "model": "Smart Tab 4G",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Vodafone Smart ultra 6",
-        "ua": "Mozilla/5.0 (Linux; Android 5.0.2; Vodafone Smart ultra 6 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Vodafone",
-            "model": "Smart ultra 6",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "4ife 4K Smart TV Box",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; 4ife 4K Smart TV Box Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36 Vinebre",
-        "expect": {
-            "vendor": "undefined",
-            "model": "undefined",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "FaceBook Mobile App",
-        "ua": "[FBAN/FBIOS;FBAV/283.0.0.44.117;FBBV/238386386;FBDV/iPhone12,1;FBMD/iPhone;FBSN/iOS;FBSV/13.6.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBRV/240127608]",
-        "expect": {
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Issue #454",
-        "ua": "Mosamzilla/5.0 (Windows; U; Win98; en-US; rv:1.7.5) Gecko/20050603 Netscape/8.0.2",
-        "expect": {
-            "vendor": "undefined",
-            "model": "undefined",
-            "type": "undefined"
-        }
-    },
-    {
-        "desc": "Alcatel",
-        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; ALCATEL A564C Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "ALCATEL",
-            "model": "A564C",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Alcatel Go Flip",
-        "ua": "Mozilla/5.0 (Mobile; ALCATEL4044T; rv:37.0) Gecko/37.0 Firefox/37.0 KaiOS/1.0",
-        "expect": {
-            "vendor": "ALCATEL",
-            "model": "4044T",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Jolla",
-        "ua": "Mozilla/5.0 (Maemo; Linux; U; Jolla; Sailfish; Mobile; rv:31.0) Gecko/31.0 Firefox/31.0 SailfishBrowser/1.0",
-        "expect": {
-            "vendor": "Jolla",
-            "model": "undefined",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Xbox One",
-        "ua": "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; Xbox; Xbox One)",
-        "expect": {
-            "vendor": "Microsoft",
-            "model": "Xbox One",
-            "type": "console"
-        }
-    },
-    {
-        "desc": "Xbox",
-        "ua": "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Xbox)",
-        "expect": {
-            "vendor": "Microsoft",
-            "model": "Xbox",
-            "type": "console"
-        }
-    },
-    {
-        "desc": "Nvidia Shield Tablet",
-        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SHIELD Tablet Build/LVY48E; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/45.0.2454.19 Safari/537.36",
-        "expect": {
-            "vendor": "Nvidia",
-            "model": "SHIELD Tablet",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Ouya",
-        "ua": "Mozilla/5.0 (Linux; Android 4.1.2; OUYA Console Build/JZO54L-OUYA) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.84 Safari/537.36",
-        "expect": {
-            "vendor": "OUYA",
-            "model": "undefined",
-            "type": "console"
-        }
-    },
-    {
-        "desc": "Vivo Y52s",
-        "ua": "Mozilla/5.0 (Linux; Android 10; V2057A Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/12.10 SP-engine/2.28.0 baiduboxapp/12.10.0.10 (Baidu; P1 10) NABar/1.0",
-        "expect": {
-            "vendor": "Vivo",
-            "model": "V2057A",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Vivo X60",
-        "ua": "Mozilla/5.0 (Linux; Android 11; V2046A; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/8.8.71.0",
-        "expect": {
-            "vendor": "Vivo",
-            "model": "V2046A",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Vivo Y79A",
-        "ua": "Mozilla/5.0 (Linux; Android 7.1.2; vivo Y79A Build/N2G47H; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.0.14.0",
-        "expect": {
-            "vendor": "Vivo",
-            "model": "Y79A",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Vivo Y97",
-        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; V1813T Build/O11019; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.0.14.0",
-        "expect": {
-            "vendor": "Vivo",
-            "model": "V1813T",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Vivo iQOO Pro",
-        "ua": "Mozilla/5.0 (Linux; Android 11; V1916A; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.1.10.6",
-        "expect": {
-            "vendor": "Vivo",
-            "model": "V1916A",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Unknown Mobile using Firefox",
-        "ua": "Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0",
-        "expect": {
-            "vendor": "undefined",
-            "model": "undefined",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Unknown Tablet using Firefox",
-        "ua": "Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0",
-        "expect": {
-            "vendor": "undefined",
-            "model": "undefined",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Unknown Mobile using Focus for Android",
-        "ua": "Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.0 Chrome/59.0.3029.83 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "undefined",
-            "model": "undefined",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Unknown Tablet using Focus for Android",
-        "ua": "Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.0 Chrome/59.0.3029.83 Safari/537.36",
-        "expect": {
-            "vendor": "undefined",
-            "model": "undefined",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Unknown Device using Focus for Android with GeckoView",
-        "ua": "Mozilla/5.0 (Android 7.0; Mobile; rv:62.0) Gecko/62.0 Firefox/62.0",
-        "expect": {
-            "vendor": "undefined",
-            "model": "undefined",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Unknown Mobile using Firefox OS",
-        "ua": "Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0",
-        "expect": {
-            "vendor": "undefined",
-            "model": "undefined",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Unknown Tablet using Firefox OS",
-        "ua": "Mozilla/5.0 (Tablet; rv:26.0) Gecko/26.0 Firefox/26.0",
-        "expect": {
-            "vendor": "undefined",
-            "model": "undefined",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Unknown TV using Firefox OS",
-        "ua": "Mozilla/5.0 (TV; rv:44.0) Gecko/44.0 Firefox/44.0",
-        "expect": {
-            "vendor": "undefined",
-            "model": "undefined",
-            "type": "smarttv"
-        }
-    },
-    {
-        "desc": "PDA with Windows CE",
-        "ua": "Mozilla/4.0 (PDA; Windows CE/1.0.1) NetFront/3.0",
-        "expect": {
-            "vendor": "undefined",
-            "model": "undefined",
-            "type": "mobile"
-        }
+  },
+  {
+    "desc": "Huawei P20 Pro",
+    "ua": "Mozilla/5.0 (Linux; Android 9; CLT-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
+    "expect": {
+        "vendor": "Huawei",
+        "model": "CLT-L29",
+        "type": "mobile"
     }
+  },
+  {
+      "desc": "Huawei P30",
+      "ua": "Mozilla/5.0 (Linux; Android 9; ELE-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36",
+      "expect": {
+          "vendor": "Huawei",
+          "model": "ELE-L29",
+          "type": "mobile"
+      }
+  },
+  {
+      "desc": "Huawei P30 Pro",
+      "ua": "Mozilla/5.0 (Linux; Android 9; VOG-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.143 Mobile Safari/537.36",
+      "expect": {
+          "vendor": "Huawei",
+          "model": "VOG-L29",
+          "type": "mobile"
+      }
+  },
+  {
+    "desc": "Huawei P40",
+    "ua": "Mozilla/5.0 (Linux; Android 10; ANA-AN00 Build/HUAWEIANA-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/11.26 SP-engine/2.22.0 baiduboxapp/11.26.0.10 (Baidu; P1 10) NABar/1.0",
+    "expect": {
+        "vendor": "Huawei",
+        "model": "ANA-AN00",
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Huawei P40 Pro",
+    "ua": "Mozilla/5.0 (Linux; Android 10; ELS-AN00 Build/HUAWEIELS-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Mobile Safari/537.36 mailapp/6.0.0",
+    "expect": {
+        "vendor": "Huawei",
+        "model": "ELS-AN00",
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Huawei 30 Pro+",
+    "ua": "Mozilla/5.0 (Linux; Android 10; EBG-AN10 Build/HUAWEIEBG-AN10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.86 Mobile Safari/537.36 EdgA/42.0.0.2741",
+    "expect": {
+        "vendor": "Huawei",
+        "model": "EBG-AN10",
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Huawei 30S",
+    "ua": "Mozilla/5.0 (Linux; Android 10; CDY-AN90 Build/HUAWEICDY-AN90; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Mobile Safari/537.36 mailapp/5.8.0",
+    "expect": {
+        "vendor": "Huawei",
+        "model": "CDY-AN90",
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Huawei Enjoy10e",
+    "ua": "Dalvik/2.1.0 (Linux; U; Android 10; MED-AL00 Build/HUAWEIMED-AL00)",
+    "expect": {
+        "vendor": "Huawei",
+        "model": "MED-AL00",
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Amazon Fire 7",
+    "ua": "Mozilla/5.0 (Linux; Android 5.1.1; KFAUWI) AppleWebKit/537.36 (KHTML, like Gecko) Silk/80.5.3 like Chrome/80.0.3987.162 Safari/537.36",
+    "expect": {
+        "vendor": "Amazon",
+        "model": "KFAUWI",
+        "type": "tablet"
+    }
+  },
+  {
+    "desc": "AT&T Radiant Core U304AA",
+    "ua": "Dalvik/2.1.0 (Linux; U; Android 9; U304AA Build/P00610)",
+    "expect": {
+        "vendor": "AT&T",
+        "model": "U304AA",
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Vodafone Smart Tab 4G",
+    "ua": "Mozilla/5.0 (Linux; Android 4.4.4; Vodafone Smart Tab 4G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36",
+    "expect": {
+        "vendor": "Vodafone",
+        "model": "Smart Tab 4G",
+        "type": "tablet"
+    }
+  },
+  {
+    "desc": "Vodafone Smart ultra 6",
+    "ua": "Mozilla/5.0 (Linux; Android 5.0.2; Vodafone Smart ultra 6 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36",
+    "expect": {
+        "vendor": "Vodafone",
+        "model": "Smart ultra 6",
+        "type": "tablet"
+    }
+  },
+  {
+    "desc": "4ife 4K Smart TV Box",
+    "ua": "Mozilla/5.0 (Linux; Android 4.4.2; 4ife 4K Smart TV Box Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36 Vinebre",
+    "expect": {
+        "vendor": "undefined",
+        "model": "undefined",
+        "type": "smarttv"
+    }
+  },
+  {
+    "desc": "FaceBook Mobile App",
+    "ua": "[FBAN/FBIOS;FBAV/283.0.0.44.117;FBBV/238386386;FBDV/iPhone12,1;FBMD/iPhone;FBSN/iOS;FBSV/13.6.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBRV/240127608]",
+    "expect": {
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Issue #454",
+    "ua": "Mosamzilla/5.0 (Windows; U; Win98; en-US; rv:1.7.5) Gecko/20050603 Netscape/8.0.2",
+    "expect": {
+        "vendor": "undefined",
+        "model": "undefined",
+        "type": "undefined"
+    }
+  },
+  {
+    "desc": "Alcatel",
+    "ua": "Mozilla/5.0 (Linux; Android 4.4.2; ALCATEL A564C Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36",
+    "expect": {
+        "vendor": "ALCATEL",
+        "model": "A564C",
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Alcatel Go Flip",
+    "ua": "Mozilla/5.0 (Mobile; ALCATEL4044T; rv:37.0) Gecko/37.0 Firefox/37.0 KaiOS/1.0",
+    "expect": {
+        "vendor": "ALCATEL",
+        "model": "4044T",
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Jolla",
+    "ua": "Mozilla/5.0 (Maemo; Linux; U; Jolla; Sailfish; Mobile; rv:31.0) Gecko/31.0 Firefox/31.0 SailfishBrowser/1.0",
+    "expect": {
+        "vendor": "Jolla",
+        "model": "undefined",
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Xbox One",
+    "ua": "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; Xbox; Xbox One)",
+    "expect": {
+        "vendor": "Microsoft",
+        "model": "Xbox One",
+        "type": "console"
+    }
+  },
+  {
+    "desc": "Xbox",
+    "ua": "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Xbox)",
+    "expect": {
+        "vendor": "Microsoft",
+        "model": "Xbox",
+        "type": "console"
+    }
+  },
+  {
+    "desc": "Nvidia Shield Tablet",
+    "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SHIELD Tablet Build/LVY48E; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/45.0.2454.19 Safari/537.36",
+    "expect": {
+        "vendor": "Nvidia",
+        "model": "SHIELD Tablet",
+        "type": "tablet"
+    }
+  },
+  {
+    "desc": "Ouya",
+    "ua": "Mozilla/5.0 (Linux; Android 4.1.2; OUYA Console Build/JZO54L-OUYA) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.84 Safari/537.36",
+    "expect": {
+        "vendor": "OUYA",
+        "model": "undefined",
+        "type": "console"
+    }
+  },
+  {
+    "desc": "Vivo Y52s",
+    "ua": "Mozilla/5.0 (Linux; Android 10; V2057A Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/12.10 SP-engine/2.28.0 baiduboxapp/12.10.0.10 (Baidu; P1 10) NABar/1.0",
+    "expect": {
+        "vendor": "Vivo",
+        "model": "V2057A",
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Vivo X60",
+    "ua": "Mozilla/5.0 (Linux; Android 11; V2046A; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/8.8.71.0",
+    "expect": {
+        "vendor": "Vivo",
+        "model": "V2046A",
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Vivo Y79A",
+    "ua": "Mozilla/5.0 (Linux; Android 7.1.2; vivo Y79A Build/N2G47H; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.0.14.0",
+    "expect": {
+        "vendor": "Vivo",
+        "model": "Y79A",
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Vivo Y97",
+    "ua": "Mozilla/5.0 (Linux; Android 8.1.0; V1813T Build/O11019; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.0.14.0",
+    "expect": {
+        "vendor": "Vivo",
+        "model": "V1813T",
+        "type": "mobile"
+    }
+  },
+  {
+    "desc": "Vivo iQOO Pro",
+    "ua": "Mozilla/5.0 (Linux; Android 11; V1916A; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.1.10.6",
+    "expect": {
+        "vendor": "Vivo",
+        "model": "V1916A",
+        "type": "mobile"
+    }
+  }
 ]
Index: trip-planner-front/node_modules/ua-parser-js/test/os-test.json
===================================================================
--- trip-planner-front/node_modules/ua-parser-js/test/os-test.json	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/ua-parser-js/test/os-test.json	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -109,13 +109,4 @@
     },
     {
-        "desc"    : "Windows Mobile",
-        "ua"      : "Opera/9.80 (Windows Mobile; WCE; Opera Mobi/WMD-50433; U; en) Presto/2.4.13 Version/10.00",
-        "expect"  :
-        {
-            "name"    : "Windows Mobile",
-            "version" : "undefined"
-        }
-    },
-    {
         "desc"    : "Windows Phone",
         "ua"      : "Opera/9.80 (Windows Phone; Opera Mini/7.6.8/35.7518; U; ru) Presto/2.8.119 Version/11.10",
@@ -145,22 +136,4 @@
     },
     {
-        "desc"    : "Windows NT on x86 or aarch64 CPU using Firefox",
-        "ua"      : "Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0",
-        "expect"  :
-        {
-            "name"    : "Windows",
-            "version" : "NT x"
-        }
-    },
-    {
-        "desc"    : "Windows NT on x64 CPU using Firefox",
-        "ua"      : "Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0",
-        "expect"  :
-        {
-            "name"    : "Windows",
-            "version" : "NT x"
-        }
-    },
-    {
         "desc"    : "BlackBerry",
         "ua"      : "BlackBerry9300/5.0.0.912 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/378",
@@ -307,13 +280,4 @@
     },
     {
-        "desc"    : "Nokia N900 Linux mobile, on the Fennec browser",
-        "ua"      : "Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0) Gecko/20100101 Firefox/10.0 Fennec/10.0",
-        "expect"  :
-        {
-            "name"    : "Maemo",
-            "version" : "undefined"
-        }
-    },
-    {
         "desc"    : "MeeGo",
         "ua"      : "Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",
@@ -357,23 +321,5 @@
         {
             "name"    : "Firefox OS",
-            "version" : "14.0"
-        }
-    },
-    {
-        "desc"    : "Firefox OS on Tablet",
-        "ua"      : "Mozilla/5.0 (Tablet; rv:26.0) Gecko/26.0 Firefox/26.0",
-        "expect"  :
-        {
-            "name"    : "Firefox OS",
-            "version" : "26.0"
-        }
-    },
-    {
-        "desc"    : "Firefox OS on TV",
-        "ua"      : "Mozilla/5.0 (TV; rv:44.0) Gecko/44.0 Firefox/44.0",
-        "expect"  :
-        {
-            "name"    : "Firefox OS",
-            "version" : "44.0"
+            "version" : "undefined"
         }
     },
@@ -605,9 +551,9 @@
     {
         "desc"    : "Slackware",
-        "ua"      : "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41",
-        "expect"  :
-        {
-            "name"    : "Slackware",
-            "version" : "13.37"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
@@ -668,9 +614,9 @@
     {
         "desc"    : "Solaris",
-        "ua"      : "Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7) Gecko/20070606",
-        "expect"  :
-        {
-            "name"    : "Solaris",
-            "version" : "sun4u"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
@@ -704,9 +650,9 @@
     {
         "desc"    : "DragonFly",
-        "ua"      : "Mozilla/5.0 (X11; U; DragonFly i386; de; rv:1.9.1) Gecko/20090720 Firefox/3.5.1",
-        "expect"  :
-        {
-            "name"    : "DragonFly",
-            "version" : "undefined"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
@@ -739,31 +685,4 @@
     },
     {
-        "desc"    : "Mac OS on PowerPC",
-        "ua"      : "Mozilla/4.0 (compatible; MSIE 5.0b1; Mac_PowerPC)",
-        "expect"  :
-        {
-            "name"    : "Mac OS",
-            "version" : "undefined"
-        }
-    },
-    {
-        "desc"    : "Mac OS X on x86, x86_64, or aarch64 using Firefox",
-        "ua"      : "Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0",
-        "expect"  :
-        {
-            "name"    : "Mac OS",
-            "version" : "x.y"
-        }
-    },
-    {
-        "desc"    : "Mac OS X on PowerPC using Firefox",
-        "ua"      : "Mozilla/5.0 (Macintosh; PPC Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0",
-        "expect"  :
-        {
-            "name"    : "Mac OS",
-            "version" : "x.y"
-        }
-    },
-    {
         "desc"    : "Mac OS",
         "ua"      : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36",
@@ -848,270 +767,153 @@
     {
         "desc"    : "AIX",
-        "ua"      : "Mozilla/5.0 (X11; U; AIX 000138384C00; en-US; rv:1.0.1) Gecko/20030213 Netscape/7.0",
-        "expect"  :
-        {
-            "name"    : "AIX",
-            "version" : "undefined"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "Plan9",
-        "ua"      : "NCSA_Mosaic/5.0 (X11;Plan 9 4.0)",
-        "expect"  :
-        {
-            "name"    : "Plan 9",
-            "version" : "4.0"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "Minix",
-        "ua"      : "Mozilla/5.0 (X11; Original ; Minix 3.3 ; rv:3.0)",
-        "expect"  :
-        {
-            "name"    : "Minix",
-            "version" : "3.3"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "BeOS",
-        "ua"      : "Mozilla/5.0 (BeOS; U; BeOS BePC; en-US; rv:1.8.1.8pre) Gecko/20070926 SeaMonkey/1.1.5pre",
-        "expect"  :
-        {
-            "name"    : "BeOS",
-            "version" : "undefined"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "OS/2",
-        "ua"      : "Links (2.1pre14; OS/2 1 i386; 80x33)",
-        "expect"  :
-        {
-            "name"    : "OS/2",
-            "version" : "undefined"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "AmigaOS",
-        "ua"      : "Mozilla/4.0 (compatible; AWEB 3.4 SE; AmigaOS)",
-        "expect"  :
-        {
-            "name"    : "AmigaOS",
-            "version" : "undefined"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "MorphOS",
-        "ua"      : "AmigaVoyager/3.4.4 (MorphOS/PPC native)",
-        "expect"  :
-        {
-            "name"    : "MorphOS",
-            "version" : "undefined"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "UNIX",
-        "ua"      : "Surf/0.4.1 (X11; U; Unix; en-US) AppleWebKit/531.2+ Compatible (Safari)",
-        "expect"  :
-        {
-            "name"    : "Unix",
-            "version" : "undefined"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "Joli",
-        "ua"      : "Mozilla/5.0 (X11; Jolicloud Linux i686) AppleWebKit/537.6 (KHTML, like Gecko) Joli OS/1.2 Chromium/23.0.1240.0 Chrome/23.0.1240.0 Safari/537.6",
-        "expect"  :
-        {
-            "name"    : "Joli",
-            "version" : "1.2"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "CentOS",
-        "ua"      : "Konqueror/15.13 (CentOS Linux 7.4; cs-CZ;)",
-        "expect"  :
-        {
-            "name"    : "CentOS",
-            "version" : "7.4"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "PCLinuxOS",
-        "ua"      : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101209 PCLinuxOS/1.9.2.13-1pclos2010 (2010) Firefox/3.6.13",
-        "expect"  :
-        {
-            "name"    : "PCLinuxOS",
-            "version" : "1.9.2.13-1pclos2010"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "RedHat",
-        "ua"      : "Mozilla/5.0 (compatible; Konqueror/4.3; Linux) KHTML/4.3.4 (like Gecko) Red Hat Enterprise Linux/4.3.4-11.el6_1.4",
-        "expect"  :
-        {
-            "name"    : "Red Hat",
-            "version" : "4.3.4-11.el6_1.4"
-        }
-    },
-    {
-        "desc"    : "RedHat",
-        "ua"      : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.13pre) Gecko/20070717 Red Hat/1.0.9-4.el4 SeaMonkey/1.0.9",
-        "expect"  :
-        {
-            "name"    : "Red Hat",
-            "version" : "1.0.9-4.el4"
-        }
-    },
-    {
-        "desc"    : "RedHat",
-        "ua"      : "iTunes/4.7.1 (Linux; N; Red Hat; x86_64-linux; EN; utf8) SqueezeCenter, Squeezebox Server, Logitech Media Server/7.9.1/1522157629",
-        "expect"  :
-        {
-            "name"    : "Red Hat",
-            "version" : "undefined"
-        }
-    },
-    {
-        "desc"    : "RedHat",
-        "ua"      : "curl/7.20.0 (x86_64-redhat-linux-gnu) libcurl/7.20.0 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5",
-        "expect"  :
-        {
-            "name"    : "redhat",
-            "version" : "undefined"
-        }
-    },
-    {
-        "desc"    : "RISC OS",
-        "ua"      : "Mozilla/1.10 [en] (Compatible; RISC OS 3.70; Oregano 1.10)",
-        "expect"  :
-        {
-            "name"    : "RISC OS",
-            "version" : "3.70"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "Zenwalk",
-        "ua"      : "Flock/2.16 (Zenwalk 7.3; es_PR;)",
-        "expect"  :
-        {
-            "name"    : "Zenwalk",
-            "version" : "7.3"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "Hurd",
-        "ua"      : "Mozilla/5.0 (X11; Hurd 0.9 i386; en-US) libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.0 Safari/696.96",
-        "expect"  :
-        {
-            "name"    : "Hurd",
-            "version" : "0.9"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "Linux",
-        "ua"      : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36",
-        "expect"  :
-        {
-            "name"    : "Linux",
-            "version" : "x86_64"
-        }
-    },
-    {
-        "desc"    : "Deepin",
-        "ua"      : "Mozilla/5.0 (X11; Linux x86_64; Deepin 15.5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 NFSBrowser/5.0.0.1886",
-        "expect"  :
-        {
-            "name"    : "Deepin",
-            "version" : "15.5"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
+        }
+    },
+    {
+        "desc"    : "GNU",
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     },
     {
         "desc"    : "Palm OS",
-        "ua"      : "Mozilla/4.76 [en] (PalmOS; U; WebPro3.0; Palm-Arz1)",
-        "expect"  :
-        {
-            "name"    : "Palm",
-            "version" : "undefined"
-        }
-    },
-    {
-        "desc"    : "HP-UX",
-        "ua"      : "Mozilla/5.0 (X11; U; HP-UX 9000/785; es-ES; rv:1.0.1) Gecko/20020827 Netscape/7.0",
-        "expect"  :
-        {
-            "name"    : "HP-UX",
-            "version" : "undefined"
-        }
-    },
-    {
-        "desc"    : "Contiki",
-        "ua"      : "Contiki/1.0 (Commodore 64; http://dunkels.com/adam/contiki/)",
-        "expect"  :
-        {
-            "name"    : "Contiki",
-            "version" : "1.0"
-        }
-    },
-    {
-        "desc"    : "Linpus",
-        "ua"      : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b5pre) Gecko/2008032619 Linpus/3.0-0.49",
-        "expect"  :
-        {
-            "name"    : "Linpus",
-            "version" : "3.0-0.49"
-        }
-    },
-    {
-        "desc"    : "Manjaro",
-        "ua"      : "Mozilla/5.0 (X11; Manjaro 19.0.2; Arch; x64; rv:84.0) Gecko/20100101 Firefox/84.0",
-        "expect"  :
-        {
-            "name"    : "Manjaro",
-            "version" : "19.0.2"
-        }
-    },
-    {
-        "desc"    : "elementary OS",
-        "ua"      : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/604.1 (KHTML, like Gecko) Version/11.0 Safari/604.1 elementary OS/0.4 (Loki) Epiphany/3.18.11",
-        "expect"  :
-        {
-            "name"    : "elementary OS",
-            "version" : "0.4"
-        }
-    },
-    {
-        "desc"    : "GhostBSD",
-        "ua"      : "Mozilla/5.0 (X11; GhostBSD/10.3; x86_64; rv:50.0.1) Gecko/20100101 Firefox/50.0.1",
-        "expect"  :
-        {
-            "name"    : "GhostBSD",
-            "version" : "10.3"
-        }
-    },
-    {
-        "desc"    : "Android-x86",
-        "ua"      : "Mozilla/5.0 (Linux; Android 7.1.2; Generic Android-x86) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 OPR/61.2.3076.56749",
-        "expect"  :
-        {
-            "name"    : "Android-x86",
-            "version" : "7.1.2"
-        }
-    },
-    {
-        "desc"    : "Sabayon",
-        "ua"      : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Sabayon Chrome/19.0.1084.46 Safari/536.5",
-        "expect"  :
-        {
-            "name"    : "Sabayon",
-            "version" : "undefined"
-        }
-    },
-    {
-        "desc"    : "Linspire",
-        "ua"      : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060803 Firefox/1.5.0.4 Linspire/1.5.0.4",
-        "expect"  :
-        {
-            "name"    : "Linspire",
-            "version" : "1.5.0.4"
+        "ua"      : "",
+        "expect"  :
+        {
+            "name"    : "",
+            "version" : ""
         }
     }
Index: trip-planner-front/node_modules/ua-parser-js/test/test.js
===================================================================
--- trip-planner-front/node_modules/ua-parser-js/test/test.js	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/ua-parser-js/test/test.js	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -3,6 +3,4 @@
 var assert      = require('assert');
 var requirejs   = require('requirejs');
-var parseJS     = require('@babel/parser').parse;
-var traverse    = require('@babel/traverse').default;
 var UAParser    = require('./../src/ua-parser');
 var browsers    = require('./browser-test.json');
@@ -140,17 +138,10 @@
     var regexes;
 
-    before('Read main js file', function () {
-        var code = fs.readFileSync('src/ua-parser.js', 'utf8').toString();
-        var ast = parseJS(code, { sourceType: "script" });
-        regexes = [];
-        traverse(ast, {
-            RegExpLiteral: (path) => {
-                regexes.push(path.node.pattern);
-            }
+    // todo: use AST-based instead of grep
+    before('Read main js file', function (done) {
+        fs.readFile('src/ua-parser.js', 'utf8', function (err, data) {
+            regexes = data.match(/(\/.+\/[ig]+)(?=[,\s\n])/g);
+            done();
         });
-
-        if (regexes.length === 0) {
-            throw new Error("Regexes cannot be empty!");
-        }
     });
 
@@ -166,3 +157,3 @@
         });
     });
-});
+})
