From ecc90a4b28b8bb6f314c15045a214cd5b21b8f07 Mon Sep 17 00:00:00 2001 From: Thomas Geiger Date: Mon, 15 Aug 2016 15:01:57 +0200 Subject: [PATCH] Initial commit (v1.4.0) --- README.md | 17 +- admin/admin.php | 1124 ++ admin/images/tag_manager-32.png | Bin 0 -> 1313 bytes admin/images/tag_manager-64.png | Bin 0 -> 916 bytes common/readoptions.php | 214 + css/admin-gtm4wp.css | 72 + ...ltomi-google-tag-manager-for-wordpress.php | 28 + integration/soundcloud.php | 33 + integration/vimeo.php | 28 + .../whichbrowser/data/applications-bots.php | 289 + .../data/applications-browsers.php | 243 + .../whichbrowser/data/applications-others.php | 135 + .../whichbrowser/data/browsers-chrome.php | 91 + .../whichbrowser/data/build-android.php | 244 + integration/whichbrowser/data/id-android.php | 323 + .../data/indices/models-android.php | 7051 +++++++ .../whichbrowser/data/indices/models-asha.php | 24 + .../whichbrowser/data/indices/models-bada.php | 27 + .../whichbrowser/data/indices/models-brew.php | 118 + .../data/indices/models-feature.php | 202 + .../data/indices/models-firefoxos.php | 55 + .../whichbrowser/data/indices/models-kddi.php | 393 + .../data/indices/models-palmos.php | 115 + .../data/indices/models-s30plus.php | 20 + .../whichbrowser/data/indices/models-s40.php | 249 + .../data/indices/models-symbian.php | 343 + .../data/indices/models-tizen.php | 92 + .../data/indices/models-touchwiz.php | 55 + .../whichbrowser/data/indices/models-wm.php | 534 + .../whichbrowser/data/indices/models-wp.php | 511 + .../whichbrowser/data/manufacturer-names.php | 40 + .../whichbrowser/data/models-android.php | 15281 ++++++++++++++++ integration/whichbrowser/data/models-asha.php | 18 + integration/whichbrowser/data/models-bada.php | 18 + .../whichbrowser/data/models-blackberry.php | 51 + integration/whichbrowser/data/models-brew.php | 52 + .../whichbrowser/data/models-feature.php | 100 + .../whichbrowser/data/models-firefoxos.php | 31 + integration/whichbrowser/data/models-ios.php | 80 + integration/whichbrowser/data/models-kddi.php | 353 + .../whichbrowser/data/models-palmos.php | 94 + .../whichbrowser/data/models-s30plus.php | 13 + integration/whichbrowser/data/models-s40.php | 135 + .../whichbrowser/data/models-symbian.php | 181 + .../whichbrowser/data/models-tizen.php | 45 + .../whichbrowser/data/models-touchwiz.php | 46 + integration/whichbrowser/data/models-wm.php | 322 + integration/whichbrowser/data/models-wp.php | 305 + .../whichbrowser/data/os-cfnetwork.php | 97 + integration/whichbrowser/data/os-darwin.php | 27 + integration/whichbrowser/data/profiles.php | 9297 ++++++++++ .../data/regexes/applications-bots.php | 5 + .../data/regexes/applications-browsers.php | 5 + .../data/regexes/applications-others.php | 5 + integration/whichbrowser/src/Analyser.php | 48 + .../whichbrowser/src/Analyser/Camouflage.php | 314 + .../whichbrowser/src/Analyser/Corrections.php | 168 + .../whichbrowser/src/Analyser/Derive.php | 478 + .../whichbrowser/src/Analyser/Header.php | 148 + .../src/Analyser/Header/Baidu.php | 17 + .../src/Analyser/Header/BrowserId.php | 65 + .../src/Analyser/Header/OperaMini.php | 72 + .../src/Analyser/Header/Puffin.php | 50 + .../src/Analyser/Header/UCBrowserNew.php | 182 + .../src/Analyser/Header/UCBrowserOld.php | 39 + .../src/Analyser/Header/Useragent.php | 44 + .../Analyser/Header/Useragent/Application.php | 451 + .../src/Analyser/Header/Useragent/Bot.php | 47 + .../src/Analyser/Header/Useragent/Browser.php | 2311 +++ .../src/Analyser/Header/Useragent/Device.php | 28 + .../Analyser/Header/Useragent/Device/Cars.php | 35 + .../Header/Useragent/Device/Ereader.php | 212 + .../Header/Useragent/Device/Gaming.php | 267 + .../Analyser/Header/Useragent/Device/Gps.php | 34 + .../Header/Useragent/Device/Media.php | 116 + .../Header/Useragent/Device/Mobile.php | 1270 ++ .../Analyser/Header/Useragent/Device/Pda.php | 255 + .../Header/Useragent/Device/Phone.php | 32 + .../Header/Useragent/Device/Printer.php | 46 + .../Header/Useragent/Device/Signage.php | 41 + .../Header/Useragent/Device/Tablet.php | 37 + .../Header/Useragent/Device/Television.php | 1168 ++ .../src/Analyser/Header/Useragent/Engine.php | 170 + .../src/Analyser/Header/Useragent/Os.php | 2387 +++ .../src/Analyser/Header/Useragent/Using.php | 59 + .../whichbrowser/src/Analyser/Header/Wap.php | 41 + integration/whichbrowser/src/Cache.php | 110 + .../src/Constants/BrowserType.php | 28 + .../src/Constants/DeviceSubType.php | 13 + .../whichbrowser/src/Constants/DeviceType.php | 32 + .../whichbrowser/src/Constants/EngineType.php | 14 + .../whichbrowser/src/Constants/Feature.php | 15 + .../whichbrowser/src/Constants/Flag.php | 17 + integration/whichbrowser/src/Constants/Id.php | 13 + .../whichbrowser/src/Data/Applications.php | 99 + .../whichbrowser/src/Data/BrowserIds.php | 17 + .../whichbrowser/src/Data/BuildIds.php | 23 + .../whichbrowser/src/Data/CFNetwork.php | 27 + integration/whichbrowser/src/Data/Chrome.php | 31 + integration/whichbrowser/src/Data/Darwin.php | 29 + .../whichbrowser/src/Data/DeviceModels.php | 353 + .../whichbrowser/src/Data/DeviceProfiles.php | 19 + .../whichbrowser/src/Data/Manufacturers.php | 30 + .../whichbrowser/src/Model/Browser.php | 181 + integration/whichbrowser/src/Model/Device.php | 251 + integration/whichbrowser/src/Model/Engine.php | 35 + integration/whichbrowser/src/Model/Family.php | 35 + integration/whichbrowser/src/Model/Main.php | 373 + integration/whichbrowser/src/Model/Os.php | 140 + .../whichbrowser/src/Model/Primitive/Base.php | 81 + .../src/Model/Primitive/NameVersion.php | 121 + integration/whichbrowser/src/Model/Using.php | 35 + .../whichbrowser/src/Model/Version.php | 301 + integration/whichbrowser/src/Parser.php | 58 + integration/woocommerce.php | 851 + integration/youtube.php | 15 + js/admin-subtabs.js | 69 + js/admin-tabcreator.js | 80 + js/analytics-talk-content-tracking.js | 138 + js/froogaloop.js | 259 + js/gtm4wp-contact-form-7-tracker.js | 14 + js/gtm4wp-download-tracker.js | 14 + js/gtm4wp-email-link-tracker.js | 12 + js/gtm4wp-form-move-tracker.js | 50 + js/gtm4wp-outbound-click-tracker.js | 19 + js/gtm4wp-social-tracker.js | 97 + js/gtm4wp-soundcloud.js | 138 + js/gtm4wp-vimeo-froogaloop.js | 105 + js/gtm4wp-vimeo.js | 268 + js/gtm4wp-woocommerce-tracker.js | 15 + js/gtm4wp-youtube.js | 221 + LICENSE => license.txt | 53 - public/frontend.php | 642 + readme.txt | 546 + 134 files changed, 55895 insertions(+), 55 deletions(-) create mode 100644 admin/admin.php create mode 100644 admin/images/tag_manager-32.png create mode 100644 admin/images/tag_manager-64.png create mode 100644 common/readoptions.php create mode 100644 css/admin-gtm4wp.css create mode 100644 duracelltomi-google-tag-manager-for-wordpress.php create mode 100644 integration/soundcloud.php create mode 100644 integration/vimeo.php create mode 100644 integration/whichbrowser/data/applications-bots.php create mode 100644 integration/whichbrowser/data/applications-browsers.php create mode 100644 integration/whichbrowser/data/applications-others.php create mode 100644 integration/whichbrowser/data/browsers-chrome.php create mode 100644 integration/whichbrowser/data/build-android.php create mode 100644 integration/whichbrowser/data/id-android.php create mode 100644 integration/whichbrowser/data/indices/models-android.php create mode 100644 integration/whichbrowser/data/indices/models-asha.php create mode 100644 integration/whichbrowser/data/indices/models-bada.php create mode 100644 integration/whichbrowser/data/indices/models-brew.php create mode 100644 integration/whichbrowser/data/indices/models-feature.php create mode 100644 integration/whichbrowser/data/indices/models-firefoxos.php create mode 100644 integration/whichbrowser/data/indices/models-kddi.php create mode 100644 integration/whichbrowser/data/indices/models-palmos.php create mode 100644 integration/whichbrowser/data/indices/models-s30plus.php create mode 100644 integration/whichbrowser/data/indices/models-s40.php create mode 100644 integration/whichbrowser/data/indices/models-symbian.php create mode 100644 integration/whichbrowser/data/indices/models-tizen.php create mode 100644 integration/whichbrowser/data/indices/models-touchwiz.php create mode 100644 integration/whichbrowser/data/indices/models-wm.php create mode 100644 integration/whichbrowser/data/indices/models-wp.php create mode 100644 integration/whichbrowser/data/manufacturer-names.php create mode 100644 integration/whichbrowser/data/models-android.php create mode 100644 integration/whichbrowser/data/models-asha.php create mode 100644 integration/whichbrowser/data/models-bada.php create mode 100644 integration/whichbrowser/data/models-blackberry.php create mode 100644 integration/whichbrowser/data/models-brew.php create mode 100644 integration/whichbrowser/data/models-feature.php create mode 100644 integration/whichbrowser/data/models-firefoxos.php create mode 100644 integration/whichbrowser/data/models-ios.php create mode 100644 integration/whichbrowser/data/models-kddi.php create mode 100644 integration/whichbrowser/data/models-palmos.php create mode 100644 integration/whichbrowser/data/models-s30plus.php create mode 100644 integration/whichbrowser/data/models-s40.php create mode 100644 integration/whichbrowser/data/models-symbian.php create mode 100644 integration/whichbrowser/data/models-tizen.php create mode 100644 integration/whichbrowser/data/models-touchwiz.php create mode 100644 integration/whichbrowser/data/models-wm.php create mode 100644 integration/whichbrowser/data/models-wp.php create mode 100644 integration/whichbrowser/data/os-cfnetwork.php create mode 100644 integration/whichbrowser/data/os-darwin.php create mode 100644 integration/whichbrowser/data/profiles.php create mode 100644 integration/whichbrowser/data/regexes/applications-bots.php create mode 100644 integration/whichbrowser/data/regexes/applications-browsers.php create mode 100644 integration/whichbrowser/data/regexes/applications-others.php create mode 100644 integration/whichbrowser/src/Analyser.php create mode 100644 integration/whichbrowser/src/Analyser/Camouflage.php create mode 100644 integration/whichbrowser/src/Analyser/Corrections.php create mode 100644 integration/whichbrowser/src/Analyser/Derive.php create mode 100644 integration/whichbrowser/src/Analyser/Header.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Baidu.php create mode 100644 integration/whichbrowser/src/Analyser/Header/BrowserId.php create mode 100644 integration/whichbrowser/src/Analyser/Header/OperaMini.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Puffin.php create mode 100644 integration/whichbrowser/src/Analyser/Header/UCBrowserNew.php create mode 100644 integration/whichbrowser/src/Analyser/Header/UCBrowserOld.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Application.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Bot.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Browser.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Device.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Device/Cars.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Device/Ereader.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Device/Gaming.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Device/Gps.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Device/Media.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Device/Mobile.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Device/Pda.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Device/Phone.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Device/Printer.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Device/Signage.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Device/Tablet.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Device/Television.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Engine.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Os.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Useragent/Using.php create mode 100644 integration/whichbrowser/src/Analyser/Header/Wap.php create mode 100644 integration/whichbrowser/src/Cache.php create mode 100644 integration/whichbrowser/src/Constants/BrowserType.php create mode 100644 integration/whichbrowser/src/Constants/DeviceSubType.php create mode 100644 integration/whichbrowser/src/Constants/DeviceType.php create mode 100644 integration/whichbrowser/src/Constants/EngineType.php create mode 100644 integration/whichbrowser/src/Constants/Feature.php create mode 100644 integration/whichbrowser/src/Constants/Flag.php create mode 100644 integration/whichbrowser/src/Constants/Id.php create mode 100644 integration/whichbrowser/src/Data/Applications.php create mode 100644 integration/whichbrowser/src/Data/BrowserIds.php create mode 100644 integration/whichbrowser/src/Data/BuildIds.php create mode 100644 integration/whichbrowser/src/Data/CFNetwork.php create mode 100644 integration/whichbrowser/src/Data/Chrome.php create mode 100644 integration/whichbrowser/src/Data/Darwin.php create mode 100644 integration/whichbrowser/src/Data/DeviceModels.php create mode 100644 integration/whichbrowser/src/Data/DeviceProfiles.php create mode 100644 integration/whichbrowser/src/Data/Manufacturers.php create mode 100644 integration/whichbrowser/src/Model/Browser.php create mode 100644 integration/whichbrowser/src/Model/Device.php create mode 100644 integration/whichbrowser/src/Model/Engine.php create mode 100644 integration/whichbrowser/src/Model/Family.php create mode 100644 integration/whichbrowser/src/Model/Main.php create mode 100644 integration/whichbrowser/src/Model/Os.php create mode 100644 integration/whichbrowser/src/Model/Primitive/Base.php create mode 100644 integration/whichbrowser/src/Model/Primitive/NameVersion.php create mode 100644 integration/whichbrowser/src/Model/Using.php create mode 100644 integration/whichbrowser/src/Model/Version.php create mode 100644 integration/whichbrowser/src/Parser.php create mode 100644 integration/woocommerce.php create mode 100644 integration/youtube.php create mode 100644 js/admin-subtabs.js create mode 100644 js/admin-tabcreator.js create mode 100644 js/analytics-talk-content-tracking.js create mode 100644 js/froogaloop.js create mode 100644 js/gtm4wp-contact-form-7-tracker.js create mode 100644 js/gtm4wp-download-tracker.js create mode 100644 js/gtm4wp-email-link-tracker.js create mode 100644 js/gtm4wp-form-move-tracker.js create mode 100644 js/gtm4wp-outbound-click-tracker.js create mode 100644 js/gtm4wp-social-tracker.js create mode 100644 js/gtm4wp-soundcloud.js create mode 100644 js/gtm4wp-vimeo-froogaloop.js create mode 100644 js/gtm4wp-vimeo.js create mode 100644 js/gtm4wp-woocommerce-tracker.js create mode 100644 js/gtm4wp-youtube.js rename LICENSE => license.txt (92%) create mode 100644 public/frontend.php create mode 100644 readme.txt diff --git a/README.md b/README.md index dd37d259..2f673562 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,15 @@ -# gtm4wp -Google Tag Manager plugin for WordPress +Google Tag Manager for WordPress +================================ +This GitHub repo was created to allow others to easily contribute to this WordPress plugin. You can find more about the plugin at [the plugin homepage](https://duracelltomi.com/) + +Support +------- +If you have any issues not related to the source code of the plugin directly, please visit the [support forum](https://wordpress.org/plugins/duracelltomi-google-tag-manager/) and ask your questions there. + +Bug report +---------- +Please use the [issue tracker](https://github.com/duracelltomi/gtm4wp/issues/new) of this GitHub repo to report any problem related to the source code. If you also was able to find a solution, send a Pull Request so that you code can be reviewed and merged to the core. + +Contribution +------------ +If you would like to extend plugin functionality by adding your own code, please feel free to send a Pull Request. It is also important to note that not all requests will be merged to the core so please do not be mad at me if your code does not get added. diff --git a/admin/admin.php b/admin/admin.php new file mode 100644 index 00000000..a2098f75 --- /dev/null +++ b/admin/admin.php @@ -0,0 +1,1124 @@ + false, + "wc-ga-plugin-warning" => false, + "wc-gayoast-plugin-warning" => false, + "wc-1-3-upgrade-info" => false +); + +$GLOBALS["gtm4wp_includefieldtexts"] = array( + GTM4WP_OPTION_INCLUDE_POSTTYPE => array( + "label" => __( "Posttype of current post/archive", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the type of the current post or archive page (post, page or any custom post type).", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_CATEGORIES => array( + "label" => __( "Category list of current post/archive", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the category names of the current post or archive page", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_TAGS => array( + "label" => __( "Tags of current post", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the tags of the current post.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_AUTHORID => array( + "label" => __( "Post author ID", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the ID of the author on the current post or author page.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_AUTHOR => array( + "label" => __( "Post author name", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the name of the author on the current post or author page.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_POSTDATE => array( + "label" => __( "Post date", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the date of the current post. This will include 4 dataLayer variables: full date, post year, post month, post date.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_POSTTITLE => array( + "label" => __( "Post title", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the title of the current post.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_POSTCOUNT => array( + "label" => __( "Post count", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the count of the posts currently shown on the page and the total number of posts in the category/tag/any taxonomy.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_POSTID => array( + "label" => __( "Post ID", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the post id.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_SEARCHDATA => array( + "label" => __( "Search data", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the search term, referring page URL and number of results on the search page.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_LOGGEDIN => array( + "label" => __( "Logged in status", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include whether there is a logged in user on your website.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_USERROLE => array( + "label" => __( "Logged in user role", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the role of the logged in user.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_USERID => array( + "label" => __( "Logged in user ID", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the ID of the logged in user.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_REMARKETING => array( + "label" => __( "Remarketing variable", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include a dataLayer variable where all dataLayer values are stored to be included in your AdWords remarketing tag as a custom variable field", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_BROWSERDATA => array( + "label" => __( "Browser data *", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the name, version and engine data of the browser the visitor uses.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_BETA + ), + GTM4WP_OPTION_INCLUDE_OSDATA => array( + "label" => __( "OS data *", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the name and version of the operating system the visitor uses.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_BETA + ), + GTM4WP_OPTION_INCLUDE_DEVICEDATA => array( + "label" => __( "Device data *", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include the type of device the user is currently using (desktop, tablet or mobile) including manufacturer and model data.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_BETA + ), + GTM4WP_OPTION_INCLUDE_WEATHER => array( + "label" => __( "Weather data", 'duracelltomi-google-tag-manager' ), + "description" => sprintf( __( "Check this option to include the current weather conditions around the current visitor.
Attention! This feature uses geoplugin.com and openweathermap.org to collect data.
Depending on your website's traffic, additional fees may apply!
This plugin caches weather data for 1 hour to lower the need to access those services.", 'duracelltomi-google-tag-manager' ), "http://www.geoplugin.com/premium?utm_source=gtm4wp&utm_medium=link&utm_campaign=duracelltomi-google-tag-manager-for-wordpress", "http://openweathermap.org/price?utm_source=gtm4wp&utm_medium=link&utm_campaign=duracelltomi-google-tag-manager-for-wordpress" ), + "phase" => GTM4WP_PHASE_EXPERIMENTAL + ), + GTM4WP_OPTION_INCLUDE_WEATHERUNITS => array( + "label" => __( "Weather data units", 'duracelltomi-google-tag-manager' ), + "description" => __( "Select which temperature units you would like to use.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_EXPERIMENTAL + ), + GTM4WP_OPTION_INCLUDE_WEATHEROWMAPI => array( + "label" => __( "OpenWeatherMap API key", 'duracelltomi-google-tag-manager' ), + "description" => __( 'Enter your OpenWeatherMap API key here. Get a free API key here.', 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_EXPERIMENTAL + ), + GTM4WP_OPTION_INCLUDE_SITEID => array( + "label" => __( "Site ID", 'duracelltomi-google-tag-manager' ), + "description" => __( 'ID of the current site in a WordPress Multisite environment', 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_INCLUDE_SITENAME => array( + "label" => __( "Site name", 'duracelltomi-google-tag-manager' ), + "description" => __( 'Name of the current site in a WordPress Multisite environment', 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ) +); + +$GLOBALS["gtm4wp_eventfieldtexts"] = array( + GTM4WP_OPTION_EVENTS_FORMMOVE => array( + "label" => __( "Form fill events (gtm4wp.formElementEnter & gtm4wp.formElementLeave)", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include a Tag Manager event when a visitor moves between elements of a form (comment, contact, etc).", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_EVENTS_SOCIAL => array( + "label" => __( "Social actions (gtm4wp.socialAction)", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include a Tag Manager event when a visitor uses a social button to share/like content on a social network.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_EVENTS_YOUTUBE => array( + "label" => __( "YouTube video events", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include a Tag Manager event when a visitor interacts with a YouTube video embeded on your site.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_EXPERIMENTAL + ), + GTM4WP_OPTION_EVENTS_VIMEO => array( + "label" => __( "Vimeo video events", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include a Tag Manager event when a visitor interacts with a Vimeo video embeded on your site.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_EXPERIMENTAL + ), + GTM4WP_OPTION_EVENTS_SOUNDCLOUD => array( + "label" => __( "Soundcloud events", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include a Tag Manager event when a visitor interacts with a Soundcloud media embeded on your site.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_EXPERIMENTAL + ), + GTM4WP_OPTION_EVENTS_OUTBOUND => array( + "label" => __( "Outbound link click events (gtm4wp.outboundClick)", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include a Tag Manager event when a visitor clicks on a link directing the visitor out of your website.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_DEPRECATED + ), + GTM4WP_OPTION_EVENTS_DOWNLOADS => array( + "label" => __( "Download click events (gtm4wp.downloadClick)", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include a Tag Manager event when a visitors clicks on a link that leads to a downloadable file on your website.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_DEPRECATED + ), + GTM4WP_OPTION_EVENTS_DWLEXT => array( + "label" => __( "Extensions to track", 'duracelltomi-google-tag-manager' ), + "description" => __( "Enter a comma separated list of extensions to track when 'Include download click events' option is set.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_DEPRECATED + ), + GTM4WP_OPTION_EVENTS_EMAILCLICKS => array( + "label" => __( "Email click events (gtm4wp.emailClick)", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this option to include a Tag Manager event when a visitor clicks on an email link.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_DEPRECATED + ) +); + +$GLOBALS["gtm4wp_scrollerfieldtexts"] = array( + GTM4WP_OPTION_SCROLLER_ENABLED => array( + "label" => __( "Enabled", 'duracelltomi-google-tag-manager' ), + "description" => __( "Enable scroll tracker script on your website.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_SCROLLER_DEBUGMODE => array( + "label" => __( "Debug mode", 'duracelltomi-google-tag-manager' ), + "description" => __( "Fire console.log() commands instead of dataLayer events.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_SCROLLER_CALLBACKTIME => array( + "label" => __( "Time delay before location check", 'duracelltomi-google-tag-manager' ), + "description" => __( "Enter the number of milliseconds after the script checks the current location. It prevents too many events being fired while scrolling.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_SCROLLER_DISTANCE => array( + "label" => __( "Minimum distance", 'duracelltomi-google-tag-manager' ), + "description" => __( "The minimum amount of pixels that a visitor has to scroll before we treat the move as scrolling.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_SCROLLER_CONTENTID => array( + "label" => __( "Content ID", 'duracelltomi-google-tag-manager' ), + "description" => __( "Enter the DOM ID of the content element in your template. Leave it empty for default(content). Do not include the # sign.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_SCROLLER_READERTIME => array( + "label" => __( "Scroller time", 'duracelltomi-google-tag-manager' ), + "description" => __( "Enter the number of seconds after the the scroller user is being treated as a reader, someone who really reads the content, not just scrolls through it.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ) +); + +$GLOBALS["gtm4wp_blacklistfieldtexts"] = array( + GTM4WP_OPTION_BLACKLIST_ENABLE => array( + "label" => __( "Enable blacklist/whitelist", 'duracelltomi-google-tag-manager' ), + "description" => __( "Disable feature or select whether you want to whitelist or blacklist tags", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_AWCONV => array( + "label" => __( "AdWords Conversion Tracking Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_AWREMARKET => array( + "label" => __( "AdWords Remarketing Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_GACLASSIC => array( + "label" => __( "Google Analytics Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_UA => array( + "label" => __( "Universal Analytics Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_ADADVISOR => array( + "label" => __( "AdAdvisor Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_ADROLL => array( + "label" => __( "AdRoll Smart Pixel Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_BIZO => array( + "label" => __( "Bizo Insight Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_CLICKTALE => array( + "label" => __( "ClickTale Standard Tracking Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_COMSCORE => array( + "label" => __( "comScore Unified Digital Measurement Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_CUSTOMHTML => array( + "label" => __( "Custom HTML Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_CUSTOMIMG => array( + "label" => __( "Custom Image Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_DBLCLKCOUNT => array( + "label" => __( "DoubleClick Floodlight Counter Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_DBLCLKSALES => array( + "label" => __( "DoubleClick Floodlight Sales Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MARIN => array( + "label" => __( "Marin Software Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MPLEXIFRAME => array( + "label" => __( "Mediaplex - IFRAME MCT Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MPLEXROI => array( + "label" => __( "Mediaplex - Standard IMG ROI Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MEDIA6DEG => array( + "label" => __( "Media6Degrees Universal Pixel Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_TURNCONV => array( + "label" => __( "Turn Conversion Tracking Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_TURNDATA => array( + "label" => __( "Turn Data Collection Tag", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ) +); + +$GLOBALS["gtm4wp_blacklistmfieldtexts"] = array( + GTM4WP_OPTION_BLACKLIST_MACRO_DOMELEMENT => array( + "label" => __( "DOM element Macro", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MACRO_CUSTOMJS => array( + "label" => __( "Custom JavaScript Macro", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MACRO_CONSTANT => array( + "label" => __( "Constant Macro", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MACRO_1STCOOKIE => array( + "label" => __( "First Party Cookie Macro", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MACRO_EVENTNAME => array( + "label" => __( "Event Name Macro", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MACRO_JSVAR => array( + "label" => __( "JavaScript Variable Macro", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MACRO_DLAYERVAR => array( + "label" => __( "DataLayer Variable Macro", 'duracelltomi-google-tag-manager' ), + "description" => __( "It is not recommended to blacklist this type of macro since most features of this plugin depend on dataLayer macros.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MACRO_RANDOMNUM => array( + "label" => __( "Random Number Macro", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MACRO_REFERRER => array( + "label" => __( "Referrer Macro", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MACRO_URL => array( + "label" => __( "URL Macro", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ), + GTM4WP_OPTION_BLACKLIST_MACRO_AUTOEVENT => array( + "label" => __( "Auto-Event Variable Macro", 'duracelltomi-google-tag-manager' ), + "description" => __( "", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE + ) +); + +$GLOBALS["gtm4wp_integratefieldtexts"] = array( + GTM4WP_OPTION_INTEGRATE_WPCF7 => array( + "label" => __( "Contact Form 7", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this to include a dataLayer event after a successfull form submission.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE, + "plugintocheck" => "contact-form-7/wp-contact-form-7.php" + ), +/* + GTM4WP_OPTION_INTEGRATE_WOOCOMMERCE => array( + "label" => __( "WooCommerce", 'duracelltomi-google-tag-manager' ), + "description" => __( "Enable this and you will get:
- Add-to-cart events
- E-commerce transaction data ready to be used with Google Analytics and Universal Analytics tags
- Google AdWords dynamic remarketing tags", 'duracelltomi-google-tag-manager' ), + "plugintocheck" => "woocommerce/woocommerce.php" + ) +*/ + GTM4WP_OPTION_INTEGRATE_WCTRACKCLASSICEC => array( + "label" => __( "Track classic e-commerce", 'duracelltomi-google-tag-manager' ), + "description" => __( sprintf( __( "Choose this option if you would like to track e-commerce data using classic transaction data.", 'duracelltomi-google-tag-manager' ) , 'https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce'), 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE, + "plugintocheck" => "woocommerce/woocommerce.php" + ), + GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC => array( + "label" => __( "Track enhanced e-commerce", 'duracelltomi-google-tag-manager' ), + "description" => __( sprintf( __( "Choose this option if you would like to track e-commerce data using enhanced ecommerce tracking.", 'duracelltomi-google-tag-manager' ) , 'https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce'), 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_BETA, + "plugintocheck" => "woocommerce/woocommerce.php" + ), + GTM4WP_OPTION_INTEGRATE_WCREMARKETING => array( + "label" => __( "AdWords Remarketing", 'duracelltomi-google-tag-manager' ), + "description" => __( "Enable this to add Google AdWords dynamic remarketing variables to the dataLayer", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_STABLE, + "plugintocheck" => "woocommerce/woocommerce.php" + ), + GTM4WP_OPTION_INTEGRATE_WCREMARKETINGSKU => array( + "label" => __( "Use SKU instead of ID", 'duracelltomi-google-tag-manager' ), + "description" => __( "Check this to use product SKU in the dynamic remarketing variables instead of the ID of the products. Will fallback to ID if no SKU is set.", 'duracelltomi-google-tag-manager' ), + "phase" => GTM4WP_PHASE_EXPERIMENTAL, + "plugintocheck" => "woocommerce/woocommerce.php" + ) +); + +function gtm4wp_admin_output_section( $args ) { + echo ''; + + switch( $args["id"] ) { + case GTM4WP_ADMIN_GROUP_GENERAL: { + _e( 'This plugin is intended to be used by IT girls&guys and marketing staff. Please be sure you read the Google Tag Manager Help Center before you start using this plugin.

', 'duracelltomi-google-tag-manager' ); + + break; + } + + case GTM4WP_ADMIN_GROUP_INCLUDES: { + _e( "Here you can check what data is needed to be included in the dataLayer to be able to access them in Google Tag Manager", 'duracelltomi-google-tag-manager' ); + echo "
"; + printf( __( '* Browser, OS and Device data is provided using WhichBrowser library.', 'duracelltomi-google-tag-manager' ), "http://whichbrowser.net/" ); + + break; + } + + case GTM4WP_ADMIN_GROUP_EVENTS: { + _e( "Fire tags in Google Tag Manager on special events on your website", 'duracelltomi-google-tag-manager' ); + echo '

'; + _e( 'In October 2013 Google released a new feature called auto event tracking. It is up to you how you use click events either using Google\'s solution or the settings below.', 'duracelltomi-google-tag-manager' ); + echo '

'; + + break; + } + + case GTM4WP_ADMIN_GROUP_SCROLLER: { + _e( "Fire tags based on how the visitor scrolls through your page.", 'duracelltomi-google-tag-manager' ); + echo '
'; + printf( __( 'Based on the script originaly posted to Analytics Talk', 'duracelltomi-google-tag-manager' ) , "http://cutroni.com/blog/2012/02/21/advanced-content-tracking-with-google-analytics-part-1/"); + + break; + } + + case GTM4WP_ADMIN_GROUP_BLACKLIST: { + _e( "Here you can control which types of tags and macros can be executed on your site regardless of what tags are included in your container on the Google Tag Manager site. Use this to increase security!", 'duracelltomi-google-tag-manager' ); + echo '
'; + _e( "Do not modify if you do not know what to do since it can cause issues in your tag deployment!", 'duracelltomi-google-tag-manager' ); + echo '
'; + _e( "Blacklisting of macros only work if you enable blacklist or whilelist of tags on the previous tab.", 'duracelltomi-google-tag-manager' ); + echo '
'; + _e( "Uncheck a row to blacklist a macro type.", 'duracelltomi-google-tag-manager' ); + + break; + } + + case GTM4WP_ADMIN_GROUP_INTEGRATION: { + _e( "Google Tag Manager for WordPress can integrate with several popular plugins. Please check the plugins you would like to integrate with:", 'duracelltomi-google-tag-manager' ); + + break; + } + + case GTM4WP_ADMIN_GROUP_ADVANCED: { + _e( "You usually do not need to modify thoose settings. Please be carefull while hacking here.", 'duracelltomi-google-tag-manager' ); + + break; + } + + case GTM4WP_ADMIN_GROUP_CREDITS: { + _e( "Some info about the author of this plugin", 'duracelltomi-google-tag-manager' ); + + break; + } + } // end switch + + echo '
'; +} + +function gtm4wp_admin_output_field( $args ) { + global $gtm4wp_options; + + switch( $args["label_for"] ) { + case GTM4WP_ADMIN_GROUP_GTMID: { + echo '
' . $args["description"]; + echo '
' . __( "This does not seems to be a valid Google Tag Manager ID! Valid format: GTM-XXXXX where X can be numbers and capital letters. Use comma without any space (,) to enter multpile container IDs.", 'duracelltomi-google-tag-manager' ) . ''; + + break; + } + + case GTM4WP_ADMIN_GROUP_PLACEMENT: { + echo ' ' . __( "Footer of the page (not recommended by Google, no tweak in your template required)", 'duracelltomi-google-tag-manager' ) . '
'; + echo ' ' . __( "Custom (needs tweak in your template)", 'duracelltomi-google-tag-manager' ) . '
'; + echo ' ' . __( "Codeless injection (no tweak, right placement but experimental, could break your frontend)", 'duracelltomi-google-tag-manager' ) . '
'; + echo ' ' . __( "Off (only add data layer to the page source)", 'duracelltomi-google-tag-manager' ) . '

' . $args["description"]; + + break; + } + + case GTM4WP_ADMIN_GROUP_DATALAYER: { + echo '
' . $args["description"]; + echo '
' . __( "This does not seems to be a valid JavaScript variable name! Please check and try again", 'duracelltomi-google-tag-manager' ) . ''; + + break; + } + + case GTM4WP_OPTIONS . "[" . GTM4WP_OPTION_BLACKLIST_ENABLE . "]": { + echo ' ' . __( "Disable feature: control everything on Google Tag Manager interface", 'duracelltomi-google-tag-manager' ) . '
'; + echo ' ' . __( "Allow all, except the checked items below (blacklist)", 'duracelltomi-google-tag-manager' ) . '
'; + echo ' ' . __( "Block all, except the checked items below (whitelist)", 'duracelltomi-google-tag-manager' ) . '
'; + echo $args["description"]; + + break; + } + + case GTM4WP_OPTIONS . "[" . GTM4WP_OPTION_INCLUDE_WEATHERUNITS . "]": { + echo ' ' . __( "Celsius", 'duracelltomi-google-tag-manager' ) . '
'; + echo ' ' . __( "Fahrenheit", 'duracelltomi-google-tag-manager' ) . '
'; + echo $args["description"]; + + break; + } + + case GTM4WP_ADMIN_GROUP_INFO: { + echo $args["description"]; + + break; + } + + default: { + $optval = $gtm4wp_options[$args["optionfieldid"]]; + + // fix wrong data type saved in v0.4 + if ( GTM4WP_OPTION_EVENTS_SOCIAL == $args["optionfieldid"] ) { + $optval = ( boolean )( $optval ); + } + + switch( gettype( $optval ) ) { + case "boolean": { + echo '
' . $args["description"]; + + if ( isset( $args["plugintocheck"] ) ) { + if ( is_plugin_active( $args["plugintocheck"] ) ) { + echo "
" . __( 'This plugin is active, it is strongly recommended to enable this integration!', 'duracelltomi-google-tag-manager' ); + } else { + echo "
" . __( 'This plugin is not active, enabling this integration could cause issues on frontend!', 'duracelltomi-google-tag-manager' ); + } + } + + break; + } + + case "integer": { + echo '
' . $args["description"]; + + if ( isset( $args["plugintocheck"] ) ) { + if ( is_plugin_active( $args["plugintocheck"] ) ) { + echo "
" . __( 'This plugin is active, it is strongly recommended to enable this integration!', 'duracelltomi-google-tag-manager' ); + } else { + echo "
" . __( 'This plugin is not active, enabling this integration could cause issues on frontend!', 'duracelltomi-google-tag-manager' ); + } + } + + break; + } + + default : { + echo '
' . $args["description"]; + } + } // end switch gettype optval + } + } // end switch +} + +function gtm4wp_sanitize_options($options) { + global $wpdb; + + $output = gtm4wp_reload_options(); + + foreach($output as $optionname => $optionvalue) { + if ( isset( $options[$optionname] ) ) { + $newoptionvalue = $options[$optionname]; + } else { + $newoptionvalue = ""; + } + + // "include" settings + if ( substr($optionname, 0, 8) == "include-" ) { + $output[$optionname] = (boolean) $newoptionvalue; + + // tracked download extensions + } else if ( $optionname == GTM4WP_OPTION_EVENTS_DWLEXT ) { + $output[$optionname] = str_replace( " ", "", trim( $newoptionvalue ) ); + + // dataLayer events + } else if ( substr($optionname, 0, 6) == "event-" ) { + $output[$optionname] = (boolean) $newoptionvalue; + + // clear oembed transients when feature is enabled because we need to hook into the oembed process to enable some 3rd party APIs + if ( $output[$optionname] && !$optionvalue ) { + if ( GTM4WP_OPTION_EVENTS_YOUTUBE == $optionname ) { + $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_value LIKE '%youtube.com%' AND meta_key LIKE '_oembed_%'" ); + } + + if ( GTM4WP_OPTION_EVENTS_VIMEO == $optionname ) { + $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_value LIKE '%vimeo.com%' AND meta_key LIKE '_oembed_%'" ); + } + } + + // integrations + } else if ( substr($optionname, 0, 10) == "integrate-" ) { + $output[$optionname] = (boolean) $newoptionvalue; + + // GTM code or dataLayer variable name + } else if ( ( $optionname == GTM4WP_OPTION_GTM_CODE ) || ( $optionname == GTM4WP_OPTION_DATALAYER_NAME ) ) { + $newoptionvalue = trim($newoptionvalue); + +// if ( ( $optionname == GTM4WP_OPTION_GTM_CODE ) && ( ! preg_match( "/^GTM-[A-Z0-9]+$/", $newoptionvalue ) ) ) { +// add_settings_error( GTM4WP_ADMIN_GROUP, GTM4WP_OPTIONS . '[' . GTM4WP_OPTION_GTM_CODE . ']', __( "Invalid Google Tag Manager ID. Valid ID format: GTM-XXXXX", 'duracelltomi-google-tag-manager' ) ); + if ( $optionname == GTM4WP_OPTION_GTM_CODE ) { + $_gtmid_list = explode( ",", $newoptionvalue ); + $_gtmid_haserror = false; + + foreach( $_gtmid_list as $one_gtm_id ) { + $_gtmid_haserror = $_gtmid_haserror || !preg_match( "/^GTM-[A-Z0-9]+$/", $one_gtm_id ); + } + + if ( $_gtmid_haserror ) { + add_settings_error( GTM4WP_ADMIN_GROUP, GTM4WP_OPTIONS . '[' . GTM4WP_OPTION_GTM_CODE . ']', __( "Invalid Google Tag Manager ID. Valid ID format: GTM-XXXXX. Use comma without additional space (,) to enter more than one container ID.", 'duracelltomi-google-tag-manager' ) ); + } else { + $output[$optionname] = $newoptionvalue; + } + } else if ( ( $optionname == GTM4WP_OPTION_DATALAYER_NAME ) && ( $newoptionvalue != "" ) && ( ! preg_match( "/^[a-zA-Z][a-zA-Z0-9_-]*$/", $newoptionvalue ) ) ) { + add_settings_error( GTM4WP_ADMIN_GROUP, GTM4WP_OPTIONS . '[' . GTM4WP_OPTION_DATALAYER_NAME . ']', __( "Invalid dataLayer variable name. Please start with a character from a-z or A-Z followed by characters from a-z, A-Z, 0-9 or '_' or '-'!", 'duracelltomi-google-tag-manager' ) ); + + } else { + $output[$optionname] = $newoptionvalue; + } + + // GTM container code placement + } else if ( $optionname == GTM4WP_OPTION_GTM_PLACEMENT ) { + $output[$optionname] = (int) $newoptionvalue; + if ( ( $output[$optionname] < 0) || ( $output[$optionname] > 3 ) ) { + $output[$optionname] = 0; + } + + // scroll tracking content ID + } else if ( $optionname == GTM4WP_OPTION_SCROLLER_CONTENTID ) { + $output[$optionname] = trim( str_replace( "#", "", $newoptionvalue ) ); + // anything else + } else { + switch( gettype($optionvalue)) { + case "boolean": { + $output[$optionname] = (boolean) $newoptionvalue; + + break; + } + + case "integer": { + $output[$optionname] = (int) $newoptionvalue; + + break; + } + + default: { + $output[$optionname] = $newoptionvalue; + } + } // end switch + } + } + + return $output; +} + +function gtm4wp_admin_init() { + global $gtm4wp_includefieldtexts, $gtm4wp_eventfieldtexts, $gtm4wp_integratefieldtexts, $gtm4wp_scrollerfieldtexts, + $gtm4wp_blacklistfieldtexts, $gtm4wp_blacklistmfieldtexts; + + register_setting( GTM4WP_ADMIN_GROUP, GTM4WP_OPTIONS, "gtm4wp_sanitize_options" ); + + add_settings_section( + GTM4WP_ADMIN_GROUP_GENERAL, + __( 'General', 'duracelltomi-google-tag-manager' ), + 'gtm4wp_admin_output_section', + GTM4WP_ADMINSLUG + ); + + add_settings_field( + GTM4WP_ADMIN_GROUP_GTMID, + __( 'Google Tag Manager ID', 'duracelltomi-google-tag-manager' ), + 'gtm4wp_admin_output_field', + GTM4WP_ADMINSLUG, + GTM4WP_ADMIN_GROUP_GENERAL, + array( + "label_for" => GTM4WP_ADMIN_GROUP_GTMID, + "description" => __( "Enter your Google Tag Manager ID here. Use comma without space (,) to enter multiple IDs.", 'duracelltomi-google-tag-manager' ) + ) + ); + + add_settings_field( + GTM4WP_ADMIN_GROUP_PLACEMENT, + __( 'Container code placement', 'duracelltomi-google-tag-manager' ), + 'gtm4wp_admin_output_field', + GTM4WP_ADMINSLUG, + GTM4WP_ADMIN_GROUP_GENERAL, + array( + "label_for" => GTM4WP_ADMIN_GROUP_PLACEMENT, + "description" => __( "Select how your container code should be included in your website.
If you select 'Custom' you need to edit your template file and add the following line just after the opening <body> tag:
<?php if ( function_exists( 'gtm4wp_the_gtm_tag' ) ) { gtm4wp_the_gtm_tag(); } ?>", 'duracelltomi-google-tag-manager' ) + ) + ); + + add_settings_section( + GTM4WP_ADMIN_GROUP_INCLUDES, + __( 'Basic data', 'duracelltomi-google-tag-manager' ), + 'gtm4wp_admin_output_section', + GTM4WP_ADMINSLUG + ); + + foreach($gtm4wp_includefieldtexts as $fieldid => $fielddata) { + add_settings_field( + "gtm4wp-admin-" . $fieldid . "-id", + $fielddata["label"].'', + 'gtm4wp_admin_output_field', + GTM4WP_ADMINSLUG, + GTM4WP_ADMIN_GROUP_INCLUDES, + array( + "label_for" => "gtm4wp-options[" . $fieldid . "]", + "description" => $fielddata["description"], + "optionfieldid" => $fieldid + ) + ); + } + + add_settings_section( + GTM4WP_ADMIN_GROUP_EVENTS, + __( 'Events', 'duracelltomi-google-tag-manager' ), + 'gtm4wp_admin_output_section', + GTM4WP_ADMINSLUG + ); + + foreach($gtm4wp_eventfieldtexts as $fieldid => $fielddata) { + add_settings_field( + "gtm4wp-admin-" . $fieldid . "-id", + $fielddata["label"].'', + 'gtm4wp_admin_output_field', + GTM4WP_ADMINSLUG, + GTM4WP_ADMIN_GROUP_EVENTS, + array( + "label_for" => "gtm4wp-options[" . $fieldid . "]", + "description" => $fielddata["description"], + "optionfieldid" => $fieldid + ) + ); + } + + add_settings_section( + GTM4WP_ADMIN_GROUP_SCROLLER, + __( 'Scroll tracking', 'duracelltomi-google-tag-manager' ), + 'gtm4wp_admin_output_section', + GTM4WP_ADMINSLUG + ); + + foreach($gtm4wp_scrollerfieldtexts as $fieldid => $fielddata) { + add_settings_field( + "gtm4wp-admin-" . $fieldid . "-id", + $fielddata["label"].'', + 'gtm4wp_admin_output_field', + GTM4WP_ADMINSLUG, + GTM4WP_ADMIN_GROUP_SCROLLER, + array( + "label_for" => "gtm4wp-options[" . $fieldid . "]", + "description" => $fielddata["description"], + "optionfieldid" => $fieldid + ) + ); + } + + add_settings_section( + GTM4WP_ADMIN_GROUP_BLACKLIST, + __( 'Blacklist tags', 'duracelltomi-google-tag-manager' ), + 'gtm4wp_admin_output_section', + GTM4WP_ADMINSLUG + ); + + foreach($gtm4wp_blacklistfieldtexts as $fieldid => $fielddata) { + add_settings_field( + "gtm4wp-admin-" . $fieldid . "-id", + $fielddata["label"].'', + 'gtm4wp_admin_output_field', + GTM4WP_ADMINSLUG, + GTM4WP_ADMIN_GROUP_BLACKLIST, + array( + "label_for" => "gtm4wp-options[" . $fieldid . "]", + "description" => $fielddata["description"], + "optionfieldid" => $fieldid + ) + ); + } + + foreach($gtm4wp_blacklistmfieldtexts as $fieldid => $fielddata) { + add_settings_field( + "gtm4wp-admin-" . $fieldid . "-id", + $fielddata["label"].'', + 'gtm4wp_admin_output_field', + GTM4WP_ADMINSLUG, + GTM4WP_ADMIN_GROUP_BLACKLIST, + array( + "label_for" => "gtm4wp-options[" . $fieldid . "]", + "description" => $fielddata["description"], + "optionfieldid" => $fieldid + ) + ); + } + + add_settings_section( + GTM4WP_ADMIN_GROUP_INTEGRATION, + __( 'Integration', 'duracelltomi-google-tag-manager' ), + 'gtm4wp_admin_output_section', + GTM4WP_ADMINSLUG + ); + + foreach($gtm4wp_integratefieldtexts as $fieldid => $fielddata) { + add_settings_field( + "gtm4wp-admin-" . $fieldid . "-id", + $fielddata["label"].'', + 'gtm4wp_admin_output_field', + GTM4WP_ADMINSLUG, + GTM4WP_ADMIN_GROUP_INTEGRATION, + array( + "label_for" => "gtm4wp-options[" . $fieldid . "]", + "description" => $fielddata["description"], + "optionfieldid" => $fieldid, + "plugintocheck" => $fielddata["plugintocheck"] + ) + ); + } + + add_settings_section( + GTM4WP_ADMIN_GROUP_ADVANCED, + __( 'Advanced', 'duracelltomi-google-tag-manager' ), + 'gtm4wp_admin_output_section', + GTM4WP_ADMINSLUG + ); + + add_settings_field( + GTM4WP_ADMIN_GROUP_DATALAYER, + __( 'dataLayer variable name', 'duracelltomi-google-tag-manager' ), + 'gtm4wp_admin_output_field', + GTM4WP_ADMINSLUG, + GTM4WP_ADMIN_GROUP_ADVANCED, + array( + "label_for" => GTM4WP_ADMIN_GROUP_DATALAYER, + "description" => __( "In some cases you need to rename the dataLayer variable. You can enter your name here. Leave black for default name: dataLayer", 'duracelltomi-google-tag-manager' ) + ) + ); + + add_settings_section( + GTM4WP_ADMIN_GROUP_CREDITS, + __( 'Credits', 'duracelltomi-google-tag-manager' ), + 'gtm4wp_admin_output_section', + GTM4WP_ADMINSLUG + ); + + add_settings_field( + GTM4WP_ADMIN_GROUP_INFO, + __( 'Author', 'duracelltomi-google-tag-manager' ), + 'gtm4wp_admin_output_field', + GTM4WP_ADMINSLUG, + GTM4WP_ADMIN_GROUP_CREDITS, + array( + "label_for" => GTM4WP_ADMIN_GROUP_INFO, + "description" => 'Thomas Geiger
+ Website: duracelltomi.com
+ Me on LinkedIn
+ JabJab Online Marketing on LinkedIn' + ) + ); + + // apply oembed code changes on the admin as well since the oembed call on the admin is cached by WordPress into a transient + // that is applied on the frontend later + require_once( dirname( __FILE__ ) . "/../integration/youtube.php" ); + require_once( dirname( __FILE__ ) . "/../integration/vimeo.php" ); + require_once( dirname( __FILE__ ) . "/../integration/soundcloud.php" ); +} + +function gtm4wp_show_admin_page() { + global $gtp4wp_plugin_url; +?> +
+

+

+
+ + + + +
+
+ __( "Posts" , 'duracelltomi-google-tag-manager' ), + "searchtabtitle" => __( "Search" , 'duracelltomi-google-tag-manager' ), + "visitortabtitle" => __( "Visitors" , 'duracelltomi-google-tag-manager' ), + "adwordstabtitle" => __( "AdWords" , 'duracelltomi-google-tag-manager' ), + "browsertabtitle" => __( "Browser/OS/Device" , 'duracelltomi-google-tag-manager' ), + "blocktagstabtitle" => __( "Blacklist tags" , 'duracelltomi-google-tag-manager' ), + "blockmacrostabtitle" => __( "Blacklist macros" , 'duracelltomi-google-tag-manager' ), + "wpcf7tabtitle" => __( "Contact Form 7" , 'duracelltomi-google-tag-manager' ), + "wctabtitle" => __( "WooCommerce" , 'duracelltomi-google-tag-manager' ), + "weathertabtitle" => __( "Weather data" , 'duracelltomi-google-tag-manager' ), + "generaleventstabtitle" => __( "General events" , 'duracelltomi-google-tag-manager' ), + "mediaeventstabtitle" => __( "Media events" , 'duracelltomi-google-tag-manager' ), + "depecratedeventstabtitle" => __( "Deprecated" , 'duracelltomi-google-tag-manager' ), + "sitetabtitle" => __( "Site" , 'duracelltomi-google-tag-manager' ) + ); + wp_localize_script( "admin-subtabs", 'gtm4wp', $subtabtexts ); + wp_enqueue_script( "admin-subtabs" ); + + wp_enqueue_script( "admin-tabcreator", $gtp4wp_plugin_url . "js/admin-tabcreator.js", array( "jquery-core" ), "1.0" ); + + wp_enqueue_style( "gtm4wp-validate", $gtp4wp_plugin_url . "css/admin-gtm4wp.css", array(), "1.0" ); + } +} + +function gtm4wp_admin_head() { + echo ' + +'; +} + +function gtm4wp_show_warning() { + global $gtm4wp_options, $gtp4wp_plugin_url, $gtm4wp_integratefieldtexts, $woocommerce, $current_user, + $gtm4wp_def_user_notices_dismisses; + + $gtm4wp_user_notices_dismisses = get_user_meta( $current_user->ID, GTM4WP_USER_NOTICES_KEY, true ); + if ( $gtm4wp_user_notices_dismisses === "" ) { + $gtm4wp_user_notices_dismisses = $gtm4wp_def_user_notices_dismisses; + } else { + $gtm4wp_user_notices_dismisses = @unserialize( $gtm4wp_user_notices_dismisses ); + if ( false === $gtm4wp_user_notices_dismisses ) { + $gtm4wp_user_notices_dismisses = array(); + } + } + $gtm4wp_user_notices_dismisses = array_merge( $gtm4wp_def_user_notices_dismisses, $gtm4wp_user_notices_dismisses ); + + if ( ( trim( $gtm4wp_options[GTM4WP_OPTION_GTM_CODE] ) == "" ) && ( false === $gtm4wp_user_notices_dismisses["enter-gtm-code"] ) ) { + echo '

' . sprintf( __( 'To start using Google Tag Manager for WordPress, please enter your GTM ID', 'duracelltomi-google-tag-manager' ), "options-general.php?page=" . GTM4WP_ADMINSLUG ) . ' | ' . __( 'Dismiss', 'duracelltomi-google-tag-manager' ) . '

'; + } + + if ( ( false === $gtm4wp_user_notices_dismisses["wc-ga-plugin-warning"] ) || ( false === $gtm4wp_user_notices_dismisses["wc-gayoast-plugin-warning"] ) || ( false === $gtm4wp_user_notices_dismisses["wc-1-3-upgrade-info"] ) ) { + $is_wc_active = $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKCLASSICEC ] || + $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC ] || + $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCREMARKETING ]; + + if ( ( false === $gtm4wp_user_notices_dismisses["wc-ga-plugin-warning"] ) && $is_wc_active && is_plugin_active( $gtm4wp_integratefieldtexts[ GTM4WP_OPTION_INTEGRATE_WCTRACKCLASSICEC ][ "plugintocheck" ] ) && ( version_compare( $woocommerce->version, "2.1" ) < 0 ) ) { + $woo_ga_options = get_option( "woocommerce_google_analytics_settings" ); + if ( $woo_ga_options ) { + if ( "" != $woo_ga_options["ga_id"] ) { + echo '

' . __( 'Notice: you should disable Google Analytics tracking in WooCommerce settings by leaving Google Analytics ID field empty if you are using Google Analytics tags inside Google Tag Manager!', 'duracelltomi-google-tag-manager' ) . ' | ' . __( 'Dismiss', 'duracelltomi-google-tag-manager' ) . '

'; + } + } + } + + if ( ( false === $gtm4wp_user_notices_dismisses["wc-ga-plugin-warning"] ) && $is_wc_active && is_plugin_active( "woocommerce-google-analytics-integration/woocommerce-google-analytics-integration.php" ) ) { + echo '

' . __( 'Notice: you should deactivate the plugin "WooCommerce Google Analytics Integration" if you are using Google Analytics tags inside Google Tag Manager!', 'duracelltomi-google-tag-manager' ) . ' | ' . __( 'Dismiss', 'duracelltomi-google-tag-manager' ) . '

'; + } + + if ( ( false === $gtm4wp_user_notices_dismisses["wc-gayoast-plugin-warning"] ) && $is_wc_active && is_plugin_active( "google-analytics-for-wordpress/googleanalytics.php" ) ) { + echo '

' . __( 'Notice: you should deactivate the plugin "Google Analytics for WordPress by Yoast" if you are using Google Analytics tags inside Google Tag Manager!', 'duracelltomi-google-tag-manager' ) . ' | ' . __( 'Dismiss', 'duracelltomi-google-tag-manager' ) . '

'; + } + + if ( $is_wc_active && ( false === $gtm4wp_user_notices_dismisses["wc-1-3-upgrade-info"] ) ) { + echo '

' . sprintf( __( 'Warning: Using WooCommerce and upgrading to v1.3 of the GTM plugin? Check this important blog post.', 'duracelltomi-google-tag-manager' ), "https://duracelltomi.com/google-tag-manager-for-wordpress/how-to-articles/upgrading-woocommerce-settings-for-v1-3" ) . ' | ' . __( 'Dismiss', 'duracelltomi-google-tag-manager' ) . '

'; + } + } +} + +function gtm4wp_dismiss_notice() { + global $gtm4wp_def_user_notices_dismisses, $current_user; + + $gtm4wp_user_notices_dismisses = get_user_meta( $current_user->ID, GTM4WP_USER_NOTICES_KEY, true ); + if ( $gtm4wp_user_notices_dismisses === "" ) { + $gtm4wp_user_notices_dismisses = $gtm4wp_def_user_notices_dismisses; + } else { + $gtm4wp_user_notices_dismisses = @unserialize( $gtm4wp_user_notices_dismisses ); + if ( false === $gtm4wp_user_notices_dismisses ) { + $gtm4wp_user_notices_dismisses = array(); + } + } + $gtm4wp_user_notices_dismisses = array_merge( $gtm4wp_def_user_notices_dismisses, $gtm4wp_user_notices_dismisses ); + + $noticeid = trim( basename( $_POST["noticeid"] ) ); + if ( array_key_exists( $noticeid, $gtm4wp_user_notices_dismisses ) ) { + $gtm4wp_user_notices_dismisses[ $noticeid ] = true; + update_user_meta( $current_user->ID, GTM4WP_USER_NOTICES_KEY, serialize( $gtm4wp_user_notices_dismisses ) ); + } +} + +function gtm4wp_add_plugin_action_links( $links, $file ) { + global $gtp4wp_plugin_basename; + + if ( $file != $gtp4wp_plugin_basename ) + return $links; + + $settings_link = '' . esc_html( __( 'Settings' ) ) . ''; + + array_unshift( $links, $settings_link ); + + return $links; +} + +function gtm4wp_show_upgrade_notification( $current_plugin_metadata, $new_plugin_metadata ) { + if ( isset( $new_plugin_metadata->upgrade_notice ) && strlen( trim( $new_plugin_metadata->upgrade_notice ) ) > 0 ) { + echo '

Important Upgrade Notice: '; + echo esc_html($new_plugin_metadata->upgrade_notice), '

'; + } +} + +add_action( 'admin_init', 'gtm4wp_admin_init' ); +add_action( 'admin_menu', 'gtm4wp_add_admin_page' ); +add_action( 'admin_enqueue_scripts', 'gtm4wp_add_admin_js' ); +add_action( 'admin_notices', 'gtm4wp_show_warning' ); +add_action( 'admin_head', 'gtm4wp_admin_head' ); +add_filter( 'plugin_action_links', 'gtm4wp_add_plugin_action_links', 10, 2 ); +add_action( 'wp_ajax_gtm4wp_dismiss_notice', 'gtm4wp_dismiss_notice' ); +add_action( 'in_plugin_update_message-duracelltomi-google-tag-manager-for-wordpress/duracelltomi-google-tag-manager-for-wordpress.php', 'gtm4wp_show_upgrade_notification', 10, 2 ); diff --git a/admin/images/tag_manager-32.png b/admin/images/tag_manager-32.png new file mode 100644 index 0000000000000000000000000000000000000000..f90437ccb0f1fd36ed9987e17eb129cb070886f8 GIT binary patch literal 1313 zcmV++1>X9JP)|Qul8}P51gVO+ za3K{Jg05ODifFshN>QtzxUmQ#f`Xt_x)2NMB2)x7Dzz0MU0Av)XhChIf6}DMO!H^v zy?c*~nMs>AlcfJYxXjGEZ{GRdcfNbhy`rkzNmu|?1rfOo@f6iLp`@XJ%-(Qoaa9}( zP#z!EC|Tx=b$Npl8q-D~DBP4RiJ(56&ZfuH&hDN|mq*W@JziahVUwjjSZk(!7 zEyNgrshW_FmDqBlR#6e+EHHfP`_c%~vP)01=Q`#1Ltkq*>sx-c(aVvv!96wg~X)5A7U2;nW$GTGm1V4S1KM;3w6EnzSUL-bfbHhEH^Q3P2ITDuQ#7 zbhpE3#YFp$*r+Y3N7{cRp%5$G1)W!537)jAlirgDYg>=KPcF>F0n;iS76cXl%Gh(? z?y@^}Zs~e<%YIv#h9?IyUV9P7#{;=U@uB_}#wbB${x|m?+B=v!^mCdW*ey1laarV$ zMcgVjw$+Oj8>-cH09JuGQt~m3)hdimOk<2$@F9eN7TSrA{T}%6T|%0z!B&#)O6};2WgJ%NIF&<_ylc*6U6KAy*(ic1(+VKM^-ma}vi8{KAo&1fXdqGfSXJ zIx>bhj=#jid`CM%+G0-?q7SOON&`bq);&E?4baU?{i{w3rKHxwKi z3N#TypjNA)s;w2MRH*c=H+J|iZsGzYxf>!ehd@V12iDq!O&9{YW{t!vS8Dj+oirO8 zbCO(t8tNWsw8yr#Haa^y7yp;{$c90g+W9sY-+Lp~G<7()Bog)BE3;oO?FWE!=gx8d z{Q1@+I&{YIPWOghGQG`rQQd@Vw8Q;E(%7rmT z$Hpj^%SgT9AR>70S+;Chx_b3JZfI!eqqjcZ{btvF>zs0}%WyszgHBJ=xnc$DH$9{j z+H~4PWN||3Tzyze7RO|{JXI6TNWM^)MD->RXpl&2HSX@|kq6eV7bgNf!)SdwC4i_R z-Xl8OTrQQvo5DeaG)?I)mFVm5C$bhF0s?dVq@a3PifXW4ed|VLpk9Ijj4^7h)hLRtc^G39P!UmUt%eYE`SRsDFfgFb zIaO5^5t^S(SXCvT&sPDuySq(KPtSE9P*jytsYJ0@oc-O~+soRuYZ)FMmMqK2=kpRS zs}r_RC~)-X(S7A|d2^B^8-Pg`-Bz@Qh|I}(2!U0rRxvm@XpSF0{@>}-rw=4a0^p%> zG8!2fp{uLQIp^}X>Z~Xtl4aS<#Kc6kR4QG%eg}?b0?g(>nl6^xb2z=qgmSASUn>3w X8*YeJ#dF`L00000NkvXXu0mjf99?cf literal 0 HcmV?d00001 diff --git a/admin/images/tag_manager-64.png b/admin/images/tag_manager-64.png new file mode 100644 index 0000000000000000000000000000000000000000..10be4afe02f231c17a08a954225a787f6a9b6bbb GIT binary patch literal 916 zcmV;F18e+=P)zL#UBY2q?-g*pLhCIYAvpk^X~Iss}X0;m(9CSV;f#sC0| z>&=G%HUP{K)7eMU$M^u|K;Aemr)9aU954W8J{w;5sa0AUY^?QR?F_^V76--1LyYC;w!@A5tNO3fCz4g*e4)gwW3n+BU40ps64&cg@hwO%O0oPVxdhV95CE_zFXGp> zUbm_C1?1C`Idv63mRDqR_C}i`KDhvZyM&MZ4Iu;oJqfLwb6zi(v;7U%X^_V?z>Z-U zP*oMNSgd=lTCJYzJCe!dKs%GkINlZ)rUzI^k_1Ij5RFE;ES7{50GvrkrBV_P2|@}0 zfM77lMS`#bfS!a%B;r{Np#=bE5)?&&R}zF50Q4@5UP$nT0Khv5z7YU;Bf(b!fbmQ4 zod96G5_~BD7@q{+3IN6rQkw_t(PA>r?JT8A(@%=1t qQ6>VY6QE`yfI0zcCIYAvpym(AnjSi3pZr_^0000 "", + GTM4WP_OPTION_DATALAYER_NAME => "", + GTM4WP_OPTION_GTM_PLACEMENT => GTM4WP_PLACEMENT_FOOTER, + + GTM4WP_OPTION_INCLUDE_REMARKETING => false, + GTM4WP_OPTION_INCLUDE_LOGGEDIN => false, + GTM4WP_OPTION_INCLUDE_USERROLE => false, + GTM4WP_OPTION_INCLUDE_USERID => false, + GTM4WP_OPTION_INCLUDE_POSTTYPE => true, + GTM4WP_OPTION_INCLUDE_CATEGORIES => true, + GTM4WP_OPTION_INCLUDE_TAGS => true, + GTM4WP_OPTION_INCLUDE_AUTHOR => true, + GTM4WP_OPTION_INCLUDE_AUTHORID => false, + GTM4WP_OPTION_INCLUDE_POSTDATE => false, + GTM4WP_OPTION_INCLUDE_POSTTITLE => false, + GTM4WP_OPTION_INCLUDE_POSTCOUNT => false, + GTM4WP_OPTION_INCLUDE_POSTID => false, + GTM4WP_OPTION_INCLUDE_SEARCHDATA => false, + GTM4WP_OPTION_INCLUDE_BROWSERDATA => false, + GTM4WP_OPTION_INCLUDE_OSDATA => false, + GTM4WP_OPTION_INCLUDE_DEVICEDATA => false, + GTM4WP_OPTION_INCLUDE_WEATHER => false, + GTM4WP_OPTION_INCLUDE_WEATHERUNITS => 0, + GTM4WP_OPTION_INCLUDE_WEATHEROWMAPI => '', + GTM4WP_OPTION_INCLUDE_SITEID => false, + GTM4WP_OPTION_INCLUDE_SITENAME => false, + + GTM4WP_OPTION_EVENTS_OUTBOUND => false, + GTM4WP_OPTION_EVENTS_DOWNLOADS => false, + GTM4WP_OPTION_EVENTS_DWLEXT => "pdf,doc,docx,xls,xlsx,ppt,pptx,zip,rar,gz,tar", + GTM4WP_OPTION_EVENTS_EMAILCLICKS => false, + GTM4WP_OPTION_EVENTS_FORMMOVE => true, + GTM4WP_OPTION_EVENTS_SOCIAL => false, + GTM4WP_OPTION_EVENTS_YOUTUBE => false, + GTM4WP_OPTION_EVENTS_VIMEO => false, + GTM4WP_OPTION_EVENTS_SOUNDCLOUD => false, + + GTM4WP_OPTION_SCROLLER_ENABLED => false, + GTM4WP_OPTION_SCROLLER_DEBUGMODE => false, + GTM4WP_OPTION_SCROLLER_CALLBACKTIME => 100, + GTM4WP_OPTION_SCROLLER_DISTANCE => 150, + GTM4WP_OPTION_SCROLLER_CONTENTID => "content", + GTM4WP_OPTION_SCROLLER_READERTIME => 60, + + GTM4WP_OPTION_BLACKLIST_ENABLE => 0, + GTM4WP_OPTION_BLACKLIST_ADADVISOR => false, + GTM4WP_OPTION_BLACKLIST_ADROLL => false, + GTM4WP_OPTION_BLACKLIST_AWCONV => false, + GTM4WP_OPTION_BLACKLIST_AWREMARKET => false, + GTM4WP_OPTION_BLACKLIST_BIZO => false, + GTM4WP_OPTION_BLACKLIST_CLICKTALE => false, + GTM4WP_OPTION_BLACKLIST_COMSCORE => false, + GTM4WP_OPTION_BLACKLIST_CUSTOMHTML => false, + GTM4WP_OPTION_BLACKLIST_CUSTOMIMG => false, + GTM4WP_OPTION_BLACKLIST_DBLCLKCOUNT => false, + GTM4WP_OPTION_BLACKLIST_DBLCLKSALES => false, + GTM4WP_OPTION_BLACKLIST_GACLASSIC => false, + GTM4WP_OPTION_BLACKLIST_MARIN => false, + GTM4WP_OPTION_BLACKLIST_MPLEXIFRAME => false, + GTM4WP_OPTION_BLACKLIST_MPLEXROI => false, + GTM4WP_OPTION_BLACKLIST_MEDIA6DEG => false, + GTM4WP_OPTION_BLACKLIST_TURNCONV => false, + GTM4WP_OPTION_BLACKLIST_TURNDATA => false, + GTM4WP_OPTION_BLACKLIST_UA => false, + + GTM4WP_OPTION_BLACKLIST_MACRO_DOMELEMENT => true, + GTM4WP_OPTION_BLACKLIST_MACRO_CUSTOMJS => true, + GTM4WP_OPTION_BLACKLIST_MACRO_CONSTANT => true, + GTM4WP_OPTION_BLACKLIST_MACRO_1STCOOKIE => true, + GTM4WP_OPTION_BLACKLIST_MACRO_EVENTNAME => true, + GTM4WP_OPTION_BLACKLIST_MACRO_JSVAR => true, + GTM4WP_OPTION_BLACKLIST_MACRO_DLAYERVAR => true, + GTM4WP_OPTION_BLACKLIST_MACRO_RANDOMNUM => true, + GTM4WP_OPTION_BLACKLIST_MACRO_REFERRER => true, + GTM4WP_OPTION_BLACKLIST_MACRO_URL => true, + GTM4WP_OPTION_BLACKLIST_MACRO_AUTOEVENT => true, + + GTM4WP_OPTION_INTEGRATE_WPCF7 => false, + +// GTM4WP_OPTION_INTEGRATE_WOOCOMMERCE => false, + GTM4WP_OPTION_INTEGRATE_WCTRACKCLASSICEC => false, + GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC => false, + GTM4WP_OPTION_INTEGRATE_WCREMARKETING => false, + GTM4WP_OPTION_INTEGRATE_WCREMARKETINGSKU => false, + + GTM4WP_OPTION_INTEGRATE_WPECOMMERCE => false +); + +function gtm4wp_reload_options() { + global $gtm4wp_defaultoptions; + + $storedoptions = (array) get_option( GTM4WP_OPTIONS ); + if ( ! is_array( $gtm4wp_defaultoptions ) ) { + $gtm4wp_defaultoptions = array(); + } + + // update WooCommerce settings from 0.7.x to 0.8 + if ( isset( $storedoptions[ GTM4WP_OPTION_INTEGRATE_WOOCOMMERCE ] ) && ! isset( $storedoptions[ GTM4WP_OPTION_INTEGRATE_WCTRACKCLASSICEC ] ) ) { + $storedoptions[ GTM4WP_OPTION_INTEGRATE_WCTRACKCLASSICEC ] = $storedoptions[ GTM4WP_OPTION_INTEGRATE_WOOCOMMERCE ]; + $storedoptions[ GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC ] = false; + $storedoptions[ GTM4WP_OPTION_INTEGRATE_WCREMARKETING ] = $storedoptions[ GTM4WP_OPTION_INTEGRATE_WOOCOMMERCE ]; + + unset( $storedoptions[ GTM4WP_OPTION_INTEGRATE_WOOCOMMERCE ] ); + } + + return array_merge( $gtm4wp_defaultoptions, $storedoptions ); +} + +function gtp4wp_debug_file( $debug_data ) { + $fp = fopen( dirname( __FILE__ ) . "/" . date("Y-m-d-H-i-s-u") . ".txt", "w" ); + if ( $fp ) { + fwrite( $fp, $debug_data ); + fclose( $fp ); + } +} + +$gtm4wp_options = gtm4wp_reload_options(); diff --git a/css/admin-gtm4wp.css b/css/admin-gtm4wp.css new file mode 100644 index 00000000..1a944aed --- /dev/null +++ b/css/admin-gtm4wp.css @@ -0,0 +1,72 @@ +.tabinfo { + display: block; + clear: both; + margin: 20px 10px; +} + +.gtm4wp-plugin-active { + color: #0c0; +} + +.gtm4wp-plugin-not-active { + color: #c00; +} + +.adminsubtabs { + list-style: none; + margin: 16px 0; + padding: 0; + font-size: 13px; + float: left; + color: #666; +} + +.adminsubtabs li { + display: inline-block; + margin: 0; + padding: 0 10px; + white-space: nowrap; + border-right: 1px solid #666; +} + +.adminsubtabs li:last-child { + border-right: 0; +} + +.adminsubtabs a { + padding: .2em; + text-decoration: none; +} + +.adminsubtabs a.subtab-active { + color: #000; + font-weight: bold; +} + +.gtm4wp-phase-beta, +.gtm4wp-phase-experimental, +.gtm4wp-phase-deprecated { + display: inline-block; + background-color: #f00; + color: #fff; + font-size: 9px; + padding: 2px; + margin-left: 5px; +} + +.gtm4wp-phase-beta:before { + content: "beta"; +} + +.gtm4wp-phase-deprecated { + background-color: #ddd; + color: #000; +} + +.gtm4wp-phase-experimental:before { + content: "experimental"; +} + +.gtm4wp-phase-deprecated:before { + content: "deprecated"; +} diff --git a/duracelltomi-google-tag-manager-for-wordpress.php b/duracelltomi-google-tag-manager-for-wordpress.php new file mode 100644 index 00000000..11710f93 --- /dev/null +++ b/duracelltomi-google-tag-manager-for-wordpress.php @@ -0,0 +1,28 @@ + '80legs', 'id' => '008', 'regexp' => '/(?:^|\s)008\/([0-9.]*)/u' ], + [ 'name' => '360spider', 'id' => '360', 'regexp' => '/360Spider/u' ], + [ 'name' => '360spider', 'id' => '360', 'regexp' => '/360spider-image/u' ], + [ 'name' => 'A6 Indexer', 'id' => 'a6', 'regexp' => '/A6-Indexer(?:\/([0-9.]*))?/u' ], + [ 'name' => 'Aboundex', 'id' => 'abound', 'regexp' => '/Aboundex\/([0-9.]*)/u' ], + [ 'name' => 'Ad Muncher', 'id' => 'muncher', 'regexp' => '/Ad Muncher v([0-9.]*)/u' ], + [ 'name' => 'Adaxas', 'id' => 'adaxas', 'regexp' => '/Adaxas Spider/u' ], + [ 'name' => 'AddThis.com', 'id' => 'addthis', 'regexp' => '/AddThis.com/u' ], + [ 'name' => 'ADmantX', 'id' => 'admantx', 'regexp' => '/ADmantX Platform Semantic Analyzer/u' ], + [ 'name' => 'AhrefsBot', 'id' => 'ahrefsbot', 'regexp' => '/AhrefsBot.Feeds v([0-9.]*)/u' ], + [ 'name' => 'AhrefsBot', 'id' => 'ahrefsbot', 'regexp' => '/AhrefsBot\/([0-9.]*)/u' ], + [ 'name' => 'Alexa', 'id' => 'archiver', 'regexp' => '/ia_archiver/u' ], + [ 'name' => 'AltaVista', 'id' => 'altavista', 'regexp' => '/AltaVista Intranet V([0-9.]*)/u' ], + [ 'name' => 'Analytics SEO', 'id' => 'curious', 'regexp' => '/Curious George - www.analyticsseo.com\/crawler/u' ], + [ 'name' => 'Amazon CloudFront', 'id' => 'cloudfront', 'regexp' => '/Amazon CloudFront/u' ], + [ 'name' => 'Amorank Spider', 'id' => 'amorank', 'regexp' => '/AmorankSpider\/([0-9.]*)/u' ], + [ 'name' => 'ArchiveBot', 'id' => 'archive', 'regexp' => '/ArchiveTeam ArchiveBot/u' ], + [ 'name' => 'Archive.org', 'id' => 'archive', 'regexp' => '/archive.org_bot(?:\/([0-9.]*))?/u' ], + [ 'name' => 'Archive.org', 'id' => 'archive', 'regexp' => '/special_archiver(?:\/([0-9.]*))?/u' ], + [ 'name' => 'Ask Jeeves', 'id' => 'jeeves', 'regexp' => '/Ask Jeeves\/Teoma/u' ], + [ 'name' => 'AstraSpider', 'id' => 'astra', 'regexp' => '/AstraSpider V([0-9.]*)/u' ], + [ 'name' => 'Backlink-Check', 'id' => 'backlink', 'regexp' => '/Backlink-Ceck.de/u' ], + [ 'name' => 'BacklinkCrawler', 'id' => 'backlink', 'regexp' => '/BacklinkCrawler/u' ], + [ 'name' => 'Baiduspider', 'id' => 'baidu', 'regexp' => '/Baiduspider[\+ ]\([\+ ]/u' ], + [ 'name' => 'Baiduspider', 'id' => 'baidu', 'regexp' => '/Baiduspider\/([0-9.]*)/u' ], + [ 'name' => 'Baiduspider', 'id' => 'baidu', 'regexp' => '/Baiduspider/u' ], + [ 'name' => 'Baiduspider', 'id' => 'baidu', 'regexp' => '/baiduspider-mobile-gate/u' ], + [ 'name' => 'Baiduspider', 'id' => 'baidu', 'regexp' => '/\+http:\/\/www.baidu.com\/search\/spider.html/u' ], + [ 'name' => 'Baiduspider', 'id' => 'baidu', 'regexp' => '/BaiduImagespider/u' ], + [ 'name' => 'BazQux', 'id' => 'bazqux', 'regexp' => '/BazQux\/([0-9.]*)/u' ], + [ 'name' => 'Bing', 'id' => 'bingbot', 'regexp' => '/bingbot\/([0-9.]*)/u' ], + [ 'name' => 'Bing', 'id' => 'msnbot', 'regexp' => '/msnbot\/([0-9.]*)/u' ], + [ 'name' => 'Bing', 'id' => 'msnbot', 'regexp' => '/msnbot-UDiscovery\/([0-9.]*)/u' ], + [ 'name' => 'Bing', 'id' => 'msnbot', 'regexp' => '/msnbot-media\/([0-9.]*)/u' ], + [ 'name' => 'Bing', 'id' => 'msnbot', 'regexp' => '/MsnBot-Media \/([0-9.]*)/u' ], + [ 'name' => 'Bing', 'id' => 'msnbot', 'regexp' => '/msnbot-NewsBlogs\/([0-9.]*)/u' ], + [ 'name' => 'Bing', 'id' => 'msnbot', 'regexp' => '/MSNBOT_Mobile/u' ], + [ 'name' => 'Bing', 'id' => 'msmobot', 'regexp' => '/MSMOBOT/u' ], + [ 'name' => 'Bing Preview', 'id' => 'bing', 'regexp' => '/BingPreview\/([0-9.]*)/u' ], + [ 'name' => 'BlogBridge', 'id' => 'blogbridge', 'regexp' => '/BlogBridge ([0-9.]*)/u' ], + [ 'name' => 'Bloglines', 'id' => 'bloglines', 'regexp' => '/Bloglines\/([0-9.]*)/u' ], + [ 'name' => 'Bloglovin', 'id' => 'bloglovin', 'regexp' => '/Bloglovin\/([0-9.]*)/u' ], + [ 'name' => 'BlogPulse', 'id' => 'blogpulse', 'regexp' => '/BlogPulse \(ISSpider-([0-9.]*)/u' ], + [ 'name' => 'Blogram', 'id' => 'blogram', 'regexp' => '/BlogramCrawler\/([0-9.]*)/u' ], + [ 'name' => 'Blogtrottr', 'id' => 'blogtrot', 'regexp' => '/Blogtrottr\/([0-9.]*)/u' ], + [ 'name' => 'Blogshares', 'id' => 'blogshares', 'regexp' => '/Blogshares/u' ], + [ 'name' => 'BoardReader', 'id' => 'boardreader', 'regexp' => '/BoardReader\/([0-9.]*)/u' ], + [ 'name' => 'Browsershots', 'id' => 'browsershots', 'regexp' => '/Browsershots/u' ], + [ 'name' => 'BUbiNG', 'id' => 'bubing', 'regexp' => '/BUbiNG/u' ], + [ 'name' => 'Butterfly', 'id' => 'butterfly', 'regexp' => '/Butterfly\/([0-9.]*)/u' ], + [ 'name' => 'CiteSeerX', 'id' => 'heritrix', 'regexp' => '/heritrix\/([0-9.]*)/u' ], + [ 'name' => 'Cliqzbot', 'id' => 'cliqz', 'regexp' => '/Cliqzbot\/([0-9.]*)/u' ], + [ 'name' => 'CloudFare Always Online', 'id' => 'cloudflare', 'regexp' => '/CloudFlare-AlwaysOnline\/([0-9.]*)/u' ], + [ 'name' => 'Comodo', 'id' => 'comodo', 'regexp' => '/Comodo Spider ([0-9.]*)/u' ], + [ 'name' => 'CommaFeed', 'id' => 'commafeed', 'regexp' => '/CommaFeed\/([0-9.]*)/u' ], + [ 'name' => 'CommonCrawl', 'id' => 'cbot', 'regexp' => '/CCBot\/([0-9.]*)/u' ], + [ 'name' => 'Data Hotel Watchdog', 'id' => 'watchdog', 'regexp' => '/Data-Hotel-Watchdog\/([0-9.]*)/u' ], + [ 'name' => 'DataparkSearch', 'id' => 'datasearch', 'regexp' => '/DataparkSearch\/([0-9.]*)/u' ], + [ 'name' => 'Daumoa', 'id' => 'daumoa', 'regexp' => '/Daumoa ([0-9.]*)/u' ], + [ 'name' => 'Digg', 'id' => 'digg', 'regexp' => '/Digg Deeper\/v([0-9.]*)/u' ], + [ 'name' => 'Digg', 'id' => 'digg', 'regexp' => '/Digg\/([0-9.]*)/u' ], + [ 'name' => 'Domain Re-Animator', 'id' => 'domain', 'regexp' => '/Domain Re-Animator Bot/u' ], + [ 'name' => 'Exabot Thumbnails', 'id' => 'exabot', 'regexp' => '/Exabot-Thumbnails/u' ], + [ 'name' => 'ExactSeek', 'id' => 'exactseek', 'regexp' => '/ExactSeek Crawler/u' ], + [ 'name' => 'Ezooms Crawler', 'id' => 'ezooms', 'regexp' => '/Ezooms\/([0-9.]*)/u' ], + [ 'name' => 'Facebook', 'id' => 'facebook', 'regexp' => '/facebookplatform\/([0-9.]*)/u' ], + [ 'name' => 'Facebook', 'id' => 'facebook', 'regexp' => '/facebookexternalhit\/([0-9.]*)/u' ], + [ 'name' => 'Facebook', 'id' => 'facebook', 'regexp' => '/facebookscraper\/([0-9.]*)/u' ], + [ 'name' => 'Facebook', 'id' => 'facebook', 'regexp' => '/FacebookSecurity\/([0-9.]*)/u' ], + [ 'name' => 'FAST Crawler', 'id' => 'fast', 'regexp' => '/FAST Crawler ([0-9.]*)/u' ], + [ 'name' => 'FAST Crawler', 'id' => 'fast', 'regexp' => '/FastCrawler3/u' ], + [ 'name' => 'FAST Enterprise Crawler', 'id' => 'fast', 'regexp' => '/FAST Enterprise Crawler\/([0-9.]*)/u' ], + [ 'name' => 'FAST Enterprise Crawler', 'id' => 'fast', 'regexp' => '/FAST Enterprise Crawler ([0-9.]*)/u' ], + [ 'name' => 'FAST Enterprise Crawler', 'id' => 'fast', 'regexp' => '/FAST EnterpriseCrawler ([0-9.]*)/u' ], + [ 'name' => 'FAST MetaWeb Crawler', 'id' => 'fast', 'regexp' => '/FAST MetaWeb Crawler/u' ], + [ 'name' => 'FAST mSEARCH Crawler', 'id' => 'fast', 'regexp' => '/FAST-mSEARCH Crawler ([0-9.]*)/u' ], + [ 'name' => 'FAST Web Crawler', 'id' => 'fast', 'regexp' => '/FAST-WebCrawler\/([0-9.]*)/u' ], + [ 'name' => 'Flamingo Search', 'id' => 'flamingo', 'regexp' => '/Flamingo_SearchEngine/u' ], + [ 'name' => 'Fastladder', 'id' => 'fastladder', 'regexp' => '/Fastladder FeedFetcher\/([0-9.]*)/u' ], + [ 'name' => 'Feedbin', 'id' => 'feed', 'regexp' => '/Feedbin/u' ], + [ 'name' => 'FeedWrangler', 'id' => 'wrangler', 'regexp' => '/Feed Wrangler\/([0-9.]*)/u' ], + [ 'name' => 'Feedly', 'id' => 'feed', 'regexp' => '/FeedlyApp\/([0-9.]*)/u' ], + [ 'name' => 'Feedly', 'id' => 'feed', 'regexp' => '/FeedlyBot\/([0-9.]*)/u' ], + [ 'name' => 'Feedly', 'id' => 'feed', 'regexp' => '/MetaFeedly\/([0-9.]*)/u' ], + [ 'name' => 'Feedspot', 'id' => 'feed', 'regexp' => '/Feedspot/u' ], + [ 'name' => 'FeedValidator', 'id' => 'validator', 'regexp' => '/FeedValidator\/([0-9.]*)/u' ], + [ 'name' => 'FeedZirra', 'id' => 'feed', 'regexp' => '/feedzirra/u' ], + [ 'name' => 'Fever', 'id' => 'fever', 'regexp' => '/Fever\/([0-9.]*)/u' ], + [ 'name' => 'Friendica', 'id' => 'friendica', 'regexp' => '/Friendica/u' ], + [ 'name' => 'FTRF: Friendly Robot', 'id' => 'robot', 'regexp' => '/FTRF: Friendly robot\/([0-9.]*)/u' ], + [ 'name' => 'Genieo Web Filter', 'id' => 'genieo', 'regexp' => '/Genieo\/([0-9.]*)/u' ], + [ 'name' => 'GNIP', 'id' => 'fetchor', 'regexp' => '/UnwindFetchor\/([0-9.]*)/u' ], + [ 'name' => 'Gocrawl', 'id' => 'google', 'regexp' => '/Googlebot \(gocrawl v([0-9.]*)\)/u' ], + [ 'name' => 'GomezAgent', 'id' => 'gomez', 'regexp' => '/GomezAgent ([0-9.]+)/u' ], + [ 'name' => 'Goo', 'id' => 'ichiro', 'regexp' => '/ichiro\/mobile goo/u' ], + [ 'name' => 'Goo Blog Search', 'id' => 'gooblog', 'regexp' => '/gooblog\/([0-9.]*)/u' ], + [ 'name' => 'Goo Blog Search', 'id' => 'gooblog', 'regexp' => '/gooblogsearch\/([0-9.]*)/u' ], + [ 'name' => 'Goo RSS Reader', 'id' => 'goorss', 'regexp' => '/gooRSSreader([0-9.]*)/u' ], + [ 'name' => 'Googlebot', 'id' => 'google', 'regexp' => '/Google[Bb]ot\/([0-9.]*)/u' ], + [ 'name' => 'Googlebot Mobile', 'id' => 'google', 'regexp' => '/Googlebot-Mobile\/([0-9.]*)/u' ], + [ 'name' => 'Googlebot Image', 'id' => 'google', 'regexp' => '/Googlebot-Image\/([0-9.]*)/u' ], + [ 'name' => 'Googlebot Video', 'id' => 'google', 'regexp' => '/Googlebot-Video\/([0-9.]*)/u' ], + [ 'name' => 'Google Ads Bot', 'id' => 'google', 'regexp' => '/AdsBot-Google/u' ], + [ 'name' => 'Google Adsense Snapshot', 'id' => 'google', 'regexp' => '/Adsense-Snapshot-Google/u' ], + [ 'name' => 'Google App Engine', 'id' => 'google', 'regexp' => '/AppEngine-Google/u' ], + [ 'name' => 'Google Web Preview', 'id' => 'google', 'regexp' => '/Google Web Preview/u' ], + [ 'name' => 'Google Page Speed', 'id' => 'google', 'regexp' => '/Google Page Speed Insights/u' ], + [ 'name' => 'Google FeedBurner', 'id' => 'feed', 'regexp' => '/FeedBurner\/([0-9.]*)/u' ], + [ 'name' => 'Google Feedfetcher', 'id' => 'google', 'regexp' => '/Feedfetcher-Google/iu' ], + [ 'name' => 'Google Font Analysis', 'id' => 'google', 'regexp' => '/Google-FontAnalysis\/([0-9.]*)/u' ], + [ 'name' => 'Google Sitemaps', 'id' => 'google', 'regexp' => '/Google-Sitemaps\/([0-9.]*)/u' ], + [ 'name' => 'Google Site Verification', 'id' => 'google', 'regexp' => '/Google-Site-Verification\/([0-9.]*)/u' ], + [ 'name' => 'Google Rich Snippets', 'id' => 'google', 'regexp' => '/Googlebot-richsnippets/u' ], + [ 'name' => 'Google Mediapartners', 'id' => 'google', 'regexp' => '/Mediapartners-Google\/([0-9.]*)/u' ], + [ 'name' => 'Google Mediapartners', 'id' => 'google', 'regexp' => '/Mediapartners-Google/u' ], + [ 'name' => 'Google News', 'id' => 'google', 'regexp' => '/Googlebot-News/u' ], + [ 'name' => 'Google Wireless Transcoder', 'id' => 'google', 'regexp' => '/Google Wireless Transcoder/u' ], + [ 'name' => 'Google Play Newsstand', 'id' => 'google', 'regexp' => '/GoogleProducer/u' ], + [ 'name' => 'Google YouTube Sample', 'id' => 'google', 'regexp' => '/Google-YouTubeSample\/([0-9.]*)/u' ], + [ 'name' => 'Grammarly', 'id' => 'grammarly', 'regexp' => '/Grammarly\/([0-9.]*)/u' ], + [ 'name' => 'Grub', 'id' => 'grub', 'regexp' => '/grub-client-([0-9.]*)/u' ], + [ 'name' => 'Hatena Antenna', 'id' => 'hatena', 'regexp' => '/Hatena Antenna\/([0-9.]*)/u' ], + [ 'name' => 'Hatena Diary', 'id' => 'hatena', 'regexp' => '/Hatena Diary RSS Module/u' ], + [ 'name' => 'Hatena Pagetitle', 'id' => 'hatena', 'regexp' => '/Hatena Pagetitle Agent\/([0-9.]*)/u' ], + [ 'name' => 'HeartRails Capture', 'id' => 'capture', 'regexp' => '/HeartRails_Capture\/([0-9.]*)/u' ], + [ 'name' => 'htdig', 'id' => 'htdig', 'regexp' => '/htdig\/([0-9.]*)/u' ], + [ 'name' => 'HTTPMon', 'id' => 'httpmon', 'regexp' => '/HTTPMon\/([0-9.]*)/u' ], + [ 'name' => 'HubPages', 'id' => 'hubpages', 'regexp' => '/HubPages V([0-9.]*)/u' ], + [ 'name' => 'iAsk Spider', 'id' => 'spider', 'regexp' => '/iaskspider\/([0-9.]*)/u' ], + [ 'name' => 'iAsk Spider', 'id' => 'spider', 'regexp' => '/iaskspider2/u' ], + [ 'name' => 'Ichiro', 'id' => 'ichiro', 'regexp' => '/ichiro\/([0-9.]*)/u' ], + [ 'name' => 'Internet Archive', 'id' => 'archive', 'regexp' => '/InternetArchive\/([0-9.]*)/u' ], + [ 'name' => 'JamesBOT', 'id' => 'crawler', 'regexp' => '/James BOT - WebCrawler/u' ], + [ 'name' => 'Jayde', 'id' => 'crawler', 'regexp' => '/Jayde Crawler./u' ], + [ 'name' => 'Kouio', 'id' => 'kouio', 'regexp' => '/kouio.com/u' ], + [ 'name' => 'Larbin', 'id' => 'larbin', 'regexp' => '/[Ll]arbin[\/_]([0-9.]*)/u' ], + [ 'name' => 'Linkedin Bot', 'id' => 'linkedin', 'regexp' => '/LinkedInBot\/([0-9.]*)/u' ], + [ 'name' => 'Linkdex Bot', 'id' => 'linkdex', 'regexp' => '/linkdexbot-mobile\/([0-9.]*)/u' ], + [ 'name' => 'Linkdex Bot', 'id' => 'linkdex', 'regexp' => '/linkdex.com\/v([0-9.]*)/u' ], + [ 'name' => 'Livedoor', 'id' => 'livedoor', 'regexp' => '/livedoor/u' ], + [ 'name' => 'LTX71', 'id' => 'ltx71', 'regexp' => '/ltx71/u' ], + [ 'name' => 'Magpie RSS', 'id' => 'magpie', 'regexp' => '/MagpieRSS\/([0-9.]*)/u' ], + [ 'name' => 'Mapian News Bot', 'id' => 'mapion', 'regexp' => '/mapion-news-bot\/([0-9.]*)/u' ], + [ 'name' => 'Microsoft Social Streams', 'id' => 'socialstreams', 'regexp' => '/Microsoft MSN SocialStreams Bot/u' ], + [ 'name' => 'Mixi', 'id' => 'mixi', 'regexp' => '/mixi-check\/([0-9.]*)/u' ], + [ 'name' => 'MnoGoSearch', 'id' => 'mnogo', 'regexp' => '/MnoGoSearch\/([0-9.]*)/u' ], + [ 'name' => 'Monitor.us', 'id' => 'monitor', 'regexp' => '/monitor.us/u' ], + [ 'name' => 'Naver Yeti', 'id' => 'yeti', 'regexp' => '/Yeti\/([0-9.]*)/u' ], + [ 'name' => 'Netcraft Survey Bot', 'id' => 'netcraft', 'regexp' => '/Netcraft Web Server Survey/u' ], + [ 'name' => 'Netvibes', 'id' => 'netvibes', 'regexp' => '/Netvibes/u' ], + [ 'name' => 'NewsBlur', 'id' => 'newsblur', 'regexp' => '/NewsBlur Favicon Fetcher/u' ], + [ 'name' => 'NewsBlur', 'id' => 'newsblur', 'regexp' => '/NewsBlur Feed Fetcher/u' ], + [ 'name' => 'NewsBlur', 'id' => 'newsblur', 'regexp' => '/NewsBlur Feed Finder/u' ], + [ 'name' => 'NewsBlur', 'id' => 'newsblur', 'regexp' => '/NewsBlur Page Fetcher/u' ], + [ 'name' => 'NewsGator', 'id' => 'newsgator', 'regexp' => '/NewsGator\/([0-9.]*)/u' ], + [ 'name' => 'NewsGator', 'id' => 'newsgator', 'regexp' => '/NewsGatorOnline\/([0-9.]*)/u' ], + [ 'name' => 'NewsGator FetchLinks', 'id' => 'newsgator', 'regexp' => '/NewsGator FetchLinks extension\/([0-9.]*)/u' ], + [ 'name' => 'OpenWebSpider', 'id' => 'spider', 'regexp' => '/OpenWebSpider v([0-9.]*)/u' ], + [ 'name' => 'OrangeBot', 'id' => 'orange', 'regexp' => '/OrangeBot-Collector\/([0-9.]*)/u' ], + [ 'name' => 'OrangeBot', 'id' => 'orange', 'regexp' => '/OrangeBot-Mobile/u' ], + [ 'name' => 'PagesInventory ', 'id' => 'pages', 'regexp' => '/PagesInventory/u' ], + [ 'name' => 'Picsearch bot', 'id' => 'psbot', 'regexp' => '/psbot-page/u' ], + [ 'name' => 'Pingdom', 'id' => 'pingdom', 'regexp' => '/Pingdom.com_bot_version_([0-9.]*)/u' ], + [ 'name' => 'Pinterest', 'id' => 'pinterest', 'regexp' => '/Pinterest\/([0-9.]*)/u' ], + [ 'name' => 'PostRank', 'id' => 'postrank', 'regexp' => '/PostRank\/([0-9.]*)/u' ], + [ 'name' => 'PowerMapper', 'id' => 'crawler', 'regexp' => '/CrawlerProcess \(http:\/\/www\.PowerMapper\.com\) \/([0-9.]*)/u' ], + [ 'name' => 'Radian 6', 'id' => 'feed', 'regexp' => '/R6_FeedFetcher/u' ], + [ 'name' => 'Radian 6', 'id' => 'comment', 'regexp' => '/R6_CommentReader/u' ], + [ 'name' => 'RssBar', 'id' => 'rssbar', 'regexp' => '/RssBar\/([0-9.]*)/u' ], + [ 'name' => 'ROI Hunter', 'id' => 'hunter', 'regexp' => '/ROI Hunter/u' ], + [ 'name' => 'QuerySeekerSpider', 'id' => 'spider', 'regexp' => '/QuerySeekerSpider(?:\/([0-9.]*))?/u' ], + [ 'name' => 'Quora Link Preview', 'id' => 'quora', 'regexp' => '/Quora Link Preview\/([0-9.]*)/u' ], + [ 'name' => 'SafeSearch Microdata', 'id' => 'safesearch', 'regexp' => '/SafeSearch microdata crawler/u' ], + [ 'name' => 'Scrapy', 'id' => 'scrapy', 'regexp' => '/Scrapy\/([0-9.]*)/u' ], + [ 'name' => 'ScreenerBot', 'id' => 'crawler', 'regexp' => '/ScreenerBot Crawler Beta ([0-9.]*)/u' ], + [ 'name' => 'Server Density', 'id' => 'monitor', 'regexp' => '/Server Density Service Monitoring/u' ], + [ 'name' => 'ShopWiki', 'id' => 'shopwiki', 'regexp' => '/ShopWiki\/([0-9.]*)/u' ], + [ 'name' => 'SilverReader', 'id' => 'reader', 'regexp' => '/SilverReader\/([0-9.]*)/u' ], + [ 'name' => 'SimplePie', 'id' => 'simplepie', 'regexp' => '/SimplePie\/([0-9.]*)/u' ], + [ 'name' => 'Site24x7', 'id' => 'site24', 'regexp' => '/Site24x7/u' ], + [ 'name' => 'Sogou Web Spider', 'id' => 'sogou', 'regexp' => '/sogou spider/u' ], + [ 'name' => 'Sogou Web Spider', 'id' => 'sogou', 'regexp' => '/Sogou pic spider\/([0-9.]*)/u' ], + [ 'name' => 'Sogou Web Spider', 'id' => 'sogou', 'regexp' => '/Sogou inst spider\/([0-9.]*)/u' ], + [ 'name' => 'Sogou Web Spider', 'id' => 'sogou', 'regexp' => '/Sogou web spider\/([0-9.]*)/u' ], + [ 'name' => 'Sogou Mobile Spider', 'id' => 'sogou', 'regexp' => '/Sogou Mobile Spider([0-9.]*)/u' ], + [ 'name' => 'Sophora Linkchecker', 'id' => 'sophora', 'regexp' => '/Sophora Linkchecker/u' ], + [ 'name' => 'Soso Web Spider', 'id' => 'soso', 'regexp' => '/Sosospider\/([0-9.]*)/u' ], + [ 'name' => 'Soso Web Spider', 'id' => 'soso', 'regexp' => '/Sosospider/u' ], + [ 'name' => 'Soso Image Spider', 'id' => 'soso', 'regexp' => '/Sosoimagespider/u' ], + [ 'name' => 'SPDYCheck', 'id' => 'spdycheck', 'regexp' => '/SPDYCheck SPDY Protocol Tester/iu' ], + [ 'name' => 'Spinn3r', 'id' => 'spinn', 'regexp' => '/Spinn3r ([0-9.]*)/iu' ], + [ 'name' => 'Spiderlytics', 'id' => 'spider', 'regexp' => '/Spiderlytics\/([0-9.]*)/iu' ], + [ 'name' => 'StatusCake Error Detector', 'id' => 'detector', 'regexp' => '/StatusCake Error Detector/iu' ], + [ 'name' => 'Summify', 'id' => 'summify', 'regexp' => '/Summify\/([0-9.]*)/u' ], + [ 'name' => 'TelegramBot', 'id' => 'telegram', 'regexp' => '/TelegramBot/u' ], + [ 'name' => 'Twisted PageGetter', 'id' => 'twisted', 'regexp' => '/Twisted PageGetter/u' ], + [ 'name' => 'Twitterbot', 'id' => 'twitter', 'regexp' => '/Twitterbot\/([0-9.]*)/u' ], + [ 'name' => 'Tiny Tiny RSS', 'id' => 'tiny', 'regexp' => '/Tiny Tiny RSS\/([0-9.]*)/u' ], + [ 'name' => 'TLSProber', 'id' => 'tlsprober', 'regexp' => '/TLSProber\/([0-9.]*)/u' ], + [ 'name' => 'Typhoeus', 'id' => 'typhoeus', 'regexp' => '/Typhoeus/u' ], + [ 'name' => 'Vagabondo', 'id' => 'vagabondo', 'regexp' => '/Vagabondo\/([0-9.]*)/u' ], + [ 'name' => 'Voilabot', 'id' => 'voila', 'regexp' => '/Voila[Bb]ot/u' ], + [ 'name' => 'VocusBot', 'id' => 'vocus', 'regexp' => '/VocusBot ([0-9.]*)/u' ], + [ 'name' => 'Vodafone mCrawler', 'id' => 'mcrawler', 'regexp' => '/Vodafone mCrawler/u' ], + [ 'name' => 'W3Bot', 'id' => 'w3bot', 'regexp' => '/W3Bot ([0-9.]*)/u' ], + [ 'name' => 'W3C CSS Validator', 'id' => 'jigsaw', 'regexp' => '/Jigsaw\/([0-9.]*)/u' ], + [ 'name' => 'W3C Internationalization Checker', 'id' => 'w3c', 'regexp' => '/W3C_I18n-Checker\/([0-9.]*)/u' ], + [ 'name' => 'W3C Line Mode', 'id' => 'w3c', 'regexp' => '/W3CLineMode\/([0-9.]*)/u' ], + [ 'name' => 'W3C Link Checker', 'id' => 'w3c', 'regexp' => '/W3C-checklink\/([0-9.]*)/u' ], + [ 'name' => 'W3C Markup Validator', 'id' => 'w3c', 'regexp' => '/W3C_Validator\/([0-9.]*)/u' ], + [ 'name' => 'W3C MobileOK Checker', 'id' => 'w3c', 'regexp' => '/W3C-mobileOK\/DDC-([0-9.]*)/u' ], + [ 'name' => 'W3C Multipage Validator', 'id' => 'w3c', 'regexp' => '/W3C_Multipage_Validator\/([0-9.]*)/u' ], + [ 'name' => 'W3C Robot', 'id' => 'w3c', 'regexp' => '/W3CRobot\/([0-9.]*)/u' ], + [ 'name' => 'W3C Unified Validator', 'id' => 'w3c', 'regexp' => '/W3C_Unicorn\/([0-9.]*)/u' ], + [ 'name' => 'W3C Validator.nu', 'id' => 'validator', 'regexp' => '/Validator.nu\//u' ], + [ 'name' => 'Wayback Archive', 'id' => 'wayback', 'regexp' => '/waybackarchive.org\/([0-9.]*)/u' ], + [ 'name' => 'WebbCrawler', 'id' => 'crawler', 'regexp' => '/WebbCrawler ([0-9.]*)/u' ], + [ 'name' => 'WebIndexer', 'id' => 'webindexer', 'regexp' => '/WebIndexer\//u' ], + [ 'name' => 'WordPress', 'id' => 'wordpress', 'regexp' => '/WordPress\/([0-9.]*)/u' ], + [ 'name' => 'WordPress.com', 'id' => 'wordpress', 'regexp' => '/WordPress\.com; http/u' ], + [ 'name' => 'WordPress Jetpack', 'id' => 'wordpress', 'regexp' => '/Jetpack by WordPress\.com/u' ], + [ 'name' => 'WWW Mechanize', 'id' => 'mechanize', 'regexp' => '/WWW-Mechanize\/([0-9.]*)/u' ], + [ 'name' => 'Xerka WebBot', 'id' => 'xerka', 'regexp' => '/Xerka WebBot v([0-9.]*)/u' ], + [ 'name' => 'XML Sitemaps Generator', 'id' => 'sitemap', 'regexp' => '/XML-Sitemaps\/([0-9.]*)/u' ], + [ 'name' => 'XMLSitemapGenerator', 'id' => 'sitemap', 'regexp' => '/XmlSitemapGenerator/u' ], + [ 'name' => 'YaCy Bot', 'id' => 'yacy', 'regexp' => '/yacy(?:\/|\s|bot)/u' ], + [ 'name' => 'Yandex Anti Virus', 'id' => 'yandex', 'regexp' => '/YandexAntivirus\/([0-9.]*)/u' ], + [ 'name' => 'Yandex Blogs', 'id' => 'yandex', 'regexp' => '/YandexBlogs\/([0-9.]*)/u' ], + [ 'name' => 'Yandex Bot', 'id' => 'yandex', 'regexp' => '/YandexBot\/([0-9.]*)/u' ], + [ 'name' => 'Yandex Direct', 'id' => 'yandex', 'regexp' => '/YandexDirect\/([0-9.]*)/u' ], + [ 'name' => 'Yandex Favicons', 'id' => 'yandex', 'regexp' => '/YandexFavicons\/([0-9.]*)/u' ], + [ 'name' => 'Yandex Image Resizer', 'id' => 'yandex', 'regexp' => '/YandexImageResizer\/([0-9.]*)/u' ], + [ 'name' => 'Yandex Images', 'id' => 'yandex', 'regexp' => '/YandexImages\/([0-9.]*)/u' ], + [ 'name' => 'Yandex Metrika', 'id' => 'yandex', 'regexp' => '/YandexMetrika\/([0-9.]*)/u' ], + [ 'name' => 'Yandex News', 'id' => 'yandex', 'regexp' => '/YandexNews\/([0-9.]*)/u' ], + [ 'name' => 'Yandex Newslinks', 'id' => 'yandex', 'regexp' => '/YandexNewslinks(?:\/([0-9.]*))?/u' ], + [ 'name' => 'Yahoo! Ad Monitoring', 'id' => 'yahoo', 'regexp' => '/Yahoo Ad monitoring/u' ], + [ 'name' => 'Yahoo! Blogs', 'id' => 'yahoo', 'regexp' => '/Yahoo-Blogs\/v([0-9.]*)/u' ], + [ 'name' => 'Yahoo! Cache System', 'id' => 'yahoo', 'regexp' => '/YahooCacheSystem/u' ], + [ 'name' => 'Yahoo! Feed Seeker', 'id' => 'yahoo', 'regexp' => '/YahooFeedSeeker\/([0-9.]*)/u' ], + [ 'name' => 'Yahoo! Feed Seeker', 'id' => 'yahoo', 'regexp' => '/YahooFeedSeeker Testing\/([0-9.]*)/u' ], + [ 'name' => 'Yahoo! Image', 'id' => 'yahoo', 'regexp' => '/Yahoo-MMCrawler\/([0-9.]*)/u' ], + [ 'name' => 'Yahoo! Link Expander', 'id' => 'yahoo', 'regexp' => '/Yahoo:LinkExpander/u' ], + [ 'name' => 'Yahoo! Link Preview', 'id' => 'yahoo', 'regexp' => '/Yahoo Link Preview/u' ], + [ 'name' => 'Yahoo! Video', 'id' => 'yahoo', 'regexp' => '/Yahoo-MMAudVid\/([0-9.]*)/u' ], + [ 'name' => 'Yahoo! Mindset', 'id' => 'yahoo', 'regexp' => '/Yahoo\! Mindset/u' ], + [ 'name' => 'Yahoo! Product Search', 'id' => 'yahoo', 'regexp' => '/YahooSeeker\/ProductSearch([0-9.]*)/u' ], + [ 'name' => 'Yahoo! Slurp', 'id' => 'yahoo', 'regexp' => '/Yahoo\! Slurp\/([0-9.]*)/u' ], + [ 'name' => 'Yahoo! Slurp', 'id' => 'yahoo', 'regexp' => '/Yahoo\! Slurp/u' ], + [ 'name' => 'Yahoo! Seeker', 'id' => 'yahoo', 'regexp' => '/YahooSeeker(?:\/([0-9.]*))?/u' ], + [ 'name' => 'Yahoo! Seeker', 'id' => 'yahoo', 'regexp' => '/YahooSeeker-Testing\/v([0-9.]*)/u' ], + [ 'name' => 'Yahoo! Seeker', 'id' => 'yahoo', 'regexp' => '/yahooseeker-jp-mobile/u' ], + [ 'name' => 'Yahoo! Site Checker', 'id' => 'y\!j', 'regexp' => '/Y\!J SiteChecker/u' ], + [ 'name' => 'Yahoo! Pipes', 'id' => 'yahoo', 'regexp' => '/Yahoo Pipes ([0-9.]*)/u' ], + [ 'name' => 'Yahoo! Video Search', 'id' => 'yahoo', 'regexp' => '/YahooVideoSearch/u' ], + [ 'name' => 'Yahoo! Japan', 'id' => 'yahoo', 'regexp' => '/Yahoo\! Japan/u' ], + [ 'name' => 'Yahoo! Japan', 'id' => 'y\!j', 'regexp' => '/(^|\(compatible; )Y\!J-/u' ], + + [ 'name' => 'Inktomi Slurp', 'id' => 'slurp', 'regexp' => '/Slurp\/([0-9.]*)/u' ], + [ 'name' => 'Inktomi Slurp', 'id' => 'slurp', 'regexp' => '/Slurp\.so\/([0-9.]*)/u' ], + + /* Generic bots */ + [ 'name' => 'Apache Httpd', 'id' => 'httpclient', 'regexp' => '/Apache-HttpClient(?:\/([0-9.]*))?/u' ], + [ 'name' => 'Apache Jakarta', 'id' => 'httpclient', 'regexp' => '/Jakarta Commons-HttpClient(?:\/([0-9.]*))?/u' ], + [ 'name' => 'Apache Nutch', 'id' => 'nutch', 'regexp' => '/\/Nutch-([0-9.]*)/u' ], + [ 'name' => 'Apache Nutch', 'id' => 'nutch', 'regexp' => '/Nutch(?:CVS|Org)\/([0-9.]*)/u' ], + [ 'name' => 'Apache Synapse', 'id' => 'synapse', 'regexp' => '/compatible; Synapse/u' ], + [ 'name' => 'Borland Delphi', 'id' => 'indy', 'regexp' => '/Indy Library/u' ], + [ 'name' => 'Wget', 'id' => 'wget', 'regexp' => '/Wget\/([0-9.]*)/u' ], + [ 'name' => 'Curl', 'id' => 'curl', 'regexp' => '/^curl\/([0-9.]*)/u' ], + + [ 'name' => 'Go', 'id' => 'package', 'regexp' => '/Go [0-9\.]+ package http/u' ], + [ 'name' => 'Java', 'id' => 'java', 'regexp' => '/^Java\/([0-9.]*)/u' ], + [ 'name' => 'Perl', 'id' => 'simple', 'regexp' => '/LWP::Simple\//u' ], + [ 'name' => 'Perl', 'id' => 'libwww', 'regexp' => '/libwww-perl\//u' ], + [ 'name' => 'Perl', 'id' => 'lwp', 'regexp' => '/lwp-trivial\//u' ], + [ 'name' => 'Python', 'id' => 'urllib', 'regexp' => '/Python-urllib/u' ], + [ 'name' => 'PHP', 'id' => 'php', 'regexp' => '/ PHP\/([0-9.]*)/u' ], + [ 'name' => 'PHP', 'id' => 'php', 'regexp' => '/^PHP/u' ], + [ 'name' => 'PHP', 'id' => 'pear', 'regexp' => '/PEAR HTTP_Request class/u' ], + [ 'name' => 'PHP', 'id' => 'php', 'regexp' => '/CakePHP/u' ], + [ 'name' => 'PHP', 'id' => 'zend', 'regexp' => '/Zend_Http_Client/u' ], + [ 'name' => 'Ruby', 'id' => 'ruby', 'regexp' => '/^Ruby/u' ], +]; diff --git a/integration/whichbrowser/data/applications-browsers.php b/integration/whichbrowser/data/applications-browsers.php new file mode 100644 index 00000000..defc36f7 --- /dev/null +++ b/integration/whichbrowser/data/applications-browsers.php @@ -0,0 +1,243 @@ + [ + + /* Desktop browsers */ + [ 'name' => '115 Browser', 'id' => '115', 'regexp' =>'/115Browser\/([0-9.]*)/u' ], + [ 'name' => '115 Chrome', 'id' => '115', 'regexp' =>'/115Chrome\/([0-9.]*)/u' ], + [ 'name' => '126 Browser', 'id' => '126', 'regexp' =>'/126BROWSER/u' ], + [ 'name' => '2345 Explorer', 'id' => '2345', 'regexp' =>'/2345Explorer\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => '2345 Explorer', 'id' => '2345', 'regexp' =>'/2345Explorer v([0-9.]*)/u', 'details' => 3 ], + [ 'name' => '2345 Chrome', 'id' => '2345', 'regexp' =>'/2345chrome v([0-9.]*)/u', 'details' => 3 ], + [ 'name' => '360 Extreme Explorer', 'id' => 'qihu', 'regexp' =>'/QIHU 360EE/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => '360 Safe Explorer', 'id' => 'qihu', 'regexp' =>'/QIHU 360SE/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => '7Star', 'id' => '7star', 'regexp' =>'/7Star\/([0-9.]*)/u' ], // see: http://www.qixing123.com + [ 'name' => 'ABrowse', 'id' => 'abrowse', 'regexp' =>'/A[Bb]rowse ([0-9.]*)/u' ], // browser for the Syllable OS + [ 'name' => 'Abrowser', 'id' => 'abrowse', 'regexp' =>'/Abrowser\/([0-9.]*)/u' ], // unbranded version of Firefox + [ 'name' => 'Acorn Browse', 'id' => 'acorn', 'regexp' =>'/Acorn Browse ([0-9.]+)/u' ], + [ 'name' => 'Acorn Browse', 'id' => 'acorn', 'regexp' =>'/Acorn Phoenix ([0-9.]+)/u' ], + [ 'name' => 'Acoo Browser', 'id' => 'acoo', 'regexp' =>'/Acoo Browser/u' ], + [ 'name' => 'AOL Desktop', 'id' => 'aol', 'regexp' =>'/AOL ([0-9.]*); AOLBuild/i' ], + [ 'name' => 'AOL Browser', 'id' => 'america', 'regexp' =>'/America Online Browser (?:[0-9.]*); rev([0-9.]*);/i' ], + [ 'name' => 'Arachne', 'id' => 'arachne', 'regexp' =>'/xChaos_Arachne\/[0-9]\.([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: www.glennmcc.org + [ 'name' => 'Arora', 'id' => 'arora', 'regexp' =>'/[Aa]rora\/([0-9.]*)/u' ], // see: www.arora-browser.org + [ 'name' => 'AWeb', 'id' => 'aweb', 'regexp' =>'/Amiga-AWeb(?:\/([0-9.]*))?/u' ], + [ 'name' => 'AvantGo', 'id' => 'avant', 'regexp' =>'/AvantGo ([0-9.]+)/u' ], + [ 'name' => 'Avant Browser', 'id' => 'avant', 'regexp' =>'/Avant Browser/u' ], + [ 'name' => 'Avant Browser', 'id' => 'avant', 'regexp' =>'/Avant TriCore/u' ], + [ 'name' => 'Aviator', 'id' => 'aviator', 'regexp' =>'/Aviator\/([0-9.]*)/u', 'details' => 1 ], // see: https://github.com/WhiteHatSecurity/Aviator + [ 'name' => 'Baidu Browser', 'id' => 'flyflow', 'regexp' =>'/FlyFlow\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Baidu Browser', 'id' => 'bdbrowser', 'regexp' =>'/bdbrowser\/([0-9.]*)/i' ], + [ 'name' => 'Baidu Browser', 'id' => 'bdbrowser', 'regexp' =>'/bdbrowser_i18n\/([0-9.]*)/i' ], + [ 'name' => 'Baidu Spark', 'id' => 'bdspark', 'regexp' =>'/BDSpark\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Beamrise', 'id' => 'beamrise', 'regexp' =>'/Beamrise\/([0-9.]*)/u' ], // see: http://beamrise.com + [ 'name' => 'Black Wren', 'id' => 'blackwren', 'regexp' =>'/BlackWren\/([0-9.]*)/u', 'details' => 2 ], // see: https://github.com/conmarap/jetbrowser + [ 'name' => 'Brave', 'id' => 'brave', 'regexp' =>'/brave\/([0-9.]*)/u' ], + [ 'name' => 'Byffox', 'id' => 'byffox', 'regexp' =>'/Byffox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Canure', 'id' => 'canure', 'regexp' =>'/Canure\/([0-9.]*)/u', 'details' => 3 ], // see: http://canure.weebly.com/index.html + [ 'name' => 'Charon', 'id' => 'charon', 'regexp' =>'/Charon/' ], // see: http://www.vitanuova.com/inferno/man/1/charon.html + [ 'name' => 'ChromePlus', 'id' => 'chromeplus', 'regexp' =>'/ChromePlus(?:\/([0-9.]*))?$/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'CometBird', 'id' => 'cometbird', 'regexp' =>'/CometBird\/([0-9.]*)/u' ], // see: http://www.cometbird.com + [ 'name' => 'Comodo Dragon', 'id' => 'comodo', 'regexp' =>'/Comodo_Dragon\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Comodo Dragon', 'id' => 'dragon', 'regexp' =>'/Dragon\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Comodo IceDragon', 'id' => 'dragon', 'regexp' =>'/IceDragon\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Conkeror', 'id' => 'conkeror', 'regexp' =>'/[Cc]onkeror\/([0-9.]*)/u' ], + [ 'name' => 'CoolNovo', 'id' => 'coolnovo', 'regexp' =>'/(?:CoolNovo|CoolNovoChromePlus)\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Cunaguaro', 'id' => 'cunaguaro', 'regexp' =>'/Cunaguaro\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Cyberfox', 'id' => 'cyberfox', 'regexp' =>'/Cyberfox\/([0-9.]*)/u', 'details' => 2 ], // see: https://cyberfox.8pecxstudios.com + [ 'name' => 'Daedalus', 'id' => 'daedalus', 'regexp' =>'/Daedalus ([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Dillo', 'id' => 'dillo', 'regexp' =>'/Dillo\/([0-9.]*)/u' ], // see: http://www.dillo.org + [ 'name' => 'Doga Rhodonit', 'id' => 'rhodonit', 'regexp' =>'/DogaRhodonit/u' ], + [ 'name' => 'EudoraWeb', 'id' => 'eudoraweb', 'regexp' =>'/EudoraWeb ([0-9.]*)/u' ], + [ 'name' => 'Flock', 'id' => 'flock', 'regexp' =>'/Flock\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Galeon', 'id' => 'galeon', 'regexp' =>'/Galeon\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'GNOME Web', 'id' => 'epiphany', 'regexp' =>'/Epiphany\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'IBrowse', 'id' => 'ibrowse', 'regexp' =>'/IBrowse[\/ ]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'iCab', 'id' => 'icab', 'regexp' =>'/iCab(?: J)?\/([0-9.]*)/u' ], + [ 'name' => 'Iceape', 'id' => 'iceape', 'regexp' =>'/Iceape\/([0-9.]*)/u' ], + [ 'name' => 'IceCat', 'id' => 'icecat', 'regexp' =>'/IceCat[ \/]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.gnu.org/software/gnuzilla/ + [ 'name' => 'Iceweasel', 'id' => 'iceweasel', 'regexp' =>'/Iceweasel\/([0-9.]*)/iu', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Iridium', 'id' => 'iridium', 'regexp' =>'/Iridium\/([0-9.]*)/u', 'details' => 2 ], // see: http://www.srware.net/en/software_srware_iron.php + [ 'name' => 'Iron', 'id' => 'iron', 'regexp' =>'/Iron\/([0-9.]*)/u', 'details' => 2 ], // see: http://www.srware.net/en/software_srware_iron.php + [ 'name' => 'Kazehakase', 'id' => 'kazehakase', 'regexp' =>'/Kazehakase\/([0-9.]*)/u' ], // see: http://kazehakase.osdn.jp + [ 'name' => 'KChrome', 'id' => 'kchrome', 'regexp' =>'/KChrome\/([0-9.]*)/u', 'details' => 3 ], // see: http://www.kchrome.com + [ 'name' => 'K-Meleon', 'id' => 'meleon', 'regexp' =>'/K-Meleon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://kmeleonbrowser.org + [ 'name' => 'LieBao', 'id' => 'lbbrowser', 'regexp' =>'/LBBROWSER/u' ], // see: http://www.liebao.cn + [ 'name' => 'Lobo', 'id' => 'lobo', 'regexp' =>'/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://sourceforge.net/projects/xamj/files/Lobo%20Browser/ + [ 'name' => 'Lunascape', 'id' => 'lunascape', 'regexp' =>'/ Lunascape[\/| ]([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv + [ 'name' => 'Naenara', 'id' => 'naenara', 'regexp' =>'/NaenaraBrowser\/([0-9.]*)/u', 'details' => 2 ], // Firefox based browser used with Red Star OS + [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser\/([0-9.]*)/u' ], + [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser-iPhone\/([0-9.]*)/u' ], + [ 'name' => 'MixShark', 'id' => 'mixshark', 'regexp' =>'/MixShark\/([0-9.]*)/u' ], // see: http://terbaddo.free.fr/mixshark.php + [ 'name' => 'mlbrowser', 'id' => 'mlbrowser', 'regexp' =>'/mlbrowser/u' ], // see: https://github.com/Topguy/mlbrowser + [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], + [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], + [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], + [ 'name' => 'Orca', 'id' => 'orca', 'regexp' =>'/Orca\/([0-9.]*)/u' ], + [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ + [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org + [ 'name' => 'Pale Moon', 'id' => 'palemoon', 'regexp' =>'/Pale[mM]oon\/([0-9.]*)/u' ], // see: https://www.palemoon.org + [ 'name' => 'Qihoo 360', 'id' => 'qihu', 'regexp' =>'/QIHU THEWORLD/u' ], + [ 'name' => 'QtWeb', 'id' => 'qtweb', 'regexp' =>'/QtWeb Internet Browser\/([0-9.]*)/u' ], + [ 'name' => 'QupZilla', 'id' => 'qupzilla', 'regexp' =>'/QupZilla\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'rekonq', 'id' => 'rekonq', 'regexp' =>'/rekonq(?:\/([0-9.]*))?/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Ryouko', 'id' => 'ryouko', 'regexp' =>'/Ryouko\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/foxhead128/ryouko + [ 'name' => 'SaaYaa Explorer', 'id' => 'saayaa', 'regexp' =>'/SaaYaa/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Sleipnir', 'id' => 'sleipnir', 'regexp' =>'/Sleipnir\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'Sogou Explorer', 'id' => 'metasr', 'regexp' =>'/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com + [ 'name' => 'SunChrome', 'id' => 'sunchrome', 'regexp' =>'/SunChrome\/([0-9.]*)/u' ], + [ 'name' => 'Superbird', 'id' => 'superbird', 'regexp' =>'/Super[Bb]ird\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Swing Browser', 'id' => 'swing', 'regexp' =>'/Swing(?:\(And\))?\/([0-9.]*)/u', 'details' => 3 ], // see: http://swing-browser.com + [ 'name' => 'Tencent Traveler', 'id' => 'tencent', 'regexp' =>'/TencentTraveler ([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'TenFourFox', 'id' => 'tenfourfox', 'regexp' =>'/TenFourFox\//u' ], + [ 'name' => 'The World', 'id' => 'theworld', 'regexp' =>'/TheWorld(?: ([0-9.]*))?/u' ], + [ 'name' => 'Tungsten Browser', 'id' => 'tungsten', 'regexp' =>'/TungstenBrowser\/([0-9.]*)/u' ], + [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], + [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Yandex Browser', 'id' => 'yabrowser', 'regexp' =>'/YaBrowser\/([0-9.]*)/u', 'details' => 2 ], + + /* Mobile browsers */ + [ 'name' => '1Browser', 'id' => '1password', 'regexp' =>'/1Password\/([0-9.]*)/u' ], + [ 'name' => '2345 Browser', 'id' => '2345', 'regexp' =>'/Mb2345Browser\/([0-9.]*)/u' ], + [ 'name' => '3G Explorer', 'id' => '3g explorer', 'regexp' =>'/3G Explorer\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => '4G Explorer', 'id' => '4g explorer', 'regexp' =>'/4G Explorer\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'Atomic', 'id' => 'atomiclite', 'regexp' =>'/AtomicLite\/([0-9.]*)/u' ], // see: http://atomicwebbrowser.com + [ 'name' => 'AU', 'id' => 'au', 'regexp' =>'/(?:^| )AU(?:.Browser)?\/([0-9.]+)/u' ], + [ 'name' => 'Awakening', 'id' => 'awakening', 'regexp' =>'/Awakening Browser\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Baidu Browser', 'id' => 'baidu', 'regexp' =>'/M?BaiduBrowser\/([0-9.]*)/i' ], + [ 'name' => 'Baidu Browser', 'id' => 'bdmobile', 'regexp' =>'/BdMobile\/([0-9.]*)/i' ], + [ 'name' => 'Baidu Browser', 'id' => 'bidu', 'regexp' =>'/BIDUBrowser[ \/]([0-9.]*)/u' ], + [ 'name' => 'Baidu Browser', 'id' => 'baidu', 'regexp' =>'/BaiduHD\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'Blazer', 'id' => 'blazer', 'regexp' =>'/Blazer\/([0-9.]*)/u' ], + [ 'name' => 'Cornowser', 'id' => 'cornowser', 'regexp' =>'/Cornowser\/([0-9.]*)/u' ], + [ 'name' => 'CuteBrowser', 'id' => 'cute', 'regexp' =>'/CuteBrowser\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Digia @Web', 'id' => 'digia', 'regexp' =>'/Digia @Web\/([0-9.]*)/u' ], + [ 'name' => 'Dorado', 'id' => 'dorado', 'regexp' =>'/Browser\/Dorado([0-9.]*)/u' ], + [ 'name' => 'Dorado', 'id' => 'dorado', 'regexp' =>'/Dorado WAP-Browser\/([0-9.]*)/u' ], + [ 'name' => 'Doris', 'id' => 'doris', 'regexp' =>'/Doris\/([0-9.]*)/u' ], + [ 'name' => 'Dorothy', 'id' => 'doroty', 'regexp' =>'/Dorothy$/u' ], + [ 'name' => 'EMOBILE Browser', 'id' => 'www browser', 'regexp' =>'/WWW Browser\/ver([0-9.]*)/u' ], + [ 'name' => 'Go.Web', 'id' => 'go\.web', 'regexp' =>'/Go\.Web\/([0-9.]*)/u' ], // used on early Blackberry, by GoAmerica + [ 'name' => 'Helium', 'id' => 'helium', 'regexp' =>'/HeliumMobileBrowser\/([0-9.]*)/u' ], + [ 'name' => 'iCab', 'id' => 'icab', 'regexp' =>'/iCabMobile\/([0-9.]*)/u' ], + [ 'name' => 'iLunascape', 'id' => 'lunascape', 'regexp' =>'/iLunascape\/([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv + [ 'name' => 'InternetSurfboard', 'id' => 'surfboard', 'regexp' =>'/InternetSurfboard\/([0-9.]*)/u' ], + [ 'name' => 'iSurf', 'id' => 'isurf', 'regexp' =>'/iSurf version \/v([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Jig Browser', 'id' => 'jig browser', 'regexp' =>'/jig browser(?: web| core|9i?)?;? ?([0-9.]+)?/u', 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'Jumanji', 'id' => 'jumanji', 'regexp' =>'/jumanji/u' ], // see: jumanji browser ubuntu + [ 'name' => 'Kiosk', 'id' => 'kiosk', 'regexp' =>'/Kiosk\/([0-9.]*)/u' ], // see: http://www.kioskbrowser.net + [ 'name' => 'LieBaoFast', 'id' => 'liebao', 'regexp' =>'/LieBaoFast\/([0-9.]*)/u' ], // see: http://www.liebao.cn + [ 'name' => 'MaCross Mobile', 'id' => 'macross', 'regexp' =>'/MaCross\/([0-9.]*)/u' ], + [ 'name' => 'Mammoth', 'id' => 'mammoth', 'regexp' =>'/Mammoth\/([0-9.]*)/u' ], // see: https://itunes.apple.com/cn/app/meng-ma-liu-lan-qi/id403760998?mt=8 + [ 'name' => 'Motorola Internet Browser', 'id' => 'mib', 'regexp' =>'/MIB\/([0-9.]*)/u' ], + [ 'name' => 'Motorola Internet Browser', 'id' => 'mib', 'regexp' =>'/MIB([0-9.]+)\//u' ], + [ 'name' => 'Motorola Internet Browser', 'id' => 'cmcs', 'regexp' =>'/Browser\/CMCS([0-9.]*)/u' ], + [ 'name' => 'Motorola WebKit', 'id' => 'motorola', 'regexp' =>'/MotorolaWebKit(?:\/([0-9.]*))?/u', 'details' => 3 ], + [ 'name' => 'MIUI Browser', 'id' => 'miui', 'regexp' =>'/MiuiBrowser\/([0-9.]*)/u' ], + [ 'name' => 'NetFront Life Browser', 'id' => 'netfrontlife', 'regexp' =>'/NetFrontLifeBrowser\/([0-9.]*)/u' ], + [ 'name' => 'OneBrowser', 'id' => 'onebrowser', 'regexp' =>'/OneBrowser\/([0-9.]*)/u' ], + [ 'name' => 'Polaris', 'id' => 'polaris', 'regexp' =>'/Polaris[\/ ]v?([0-9.]*)/iu', 'details' => 2 ], + [ 'name' => 'Polaris', 'id' => 'polaris', 'regexp' =>'/POLARIS([0-9.]+)/u', 'details' => 2 ], + [ 'name' => 'Openwave', 'id' => 'openwave', 'regexp' =>'/Open[Ww]ave\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'Openwave', 'id' => 'openwave', 'regexp' =>'/Openwave Mobile Browser ([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'Openwave', 'id' => 'openwave', 'regexp' =>'/Browser\/OpenWave([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'Openwave', 'id' => 'up', 'regexp' =>'/UP\. ?Browser(?:\/([a-z0-9.]*))?/iu', 'details' => 2, 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'Openwave', 'id' => 'km', 'regexp' =>'/KM\.Browser\/([0-9.]+)/iu', 'details' => 2, 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'Openwave', 'id' => 'up', 'regexp' =>'/UP\/([0-9.]+)/u', 'details' => 2, 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'SEMC Browser', 'id' => 'semc', 'regexp' =>'/SEMC-Browser\/([0-9.]*)/u' ], + [ 'name' => 'Sogou Mobile', 'id' => 'sogou', 'regexp' =>'/SogouMobileBrowser\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Swing Browser', 'id' => 'swing', 'regexp' =>'/Swing\(And\)\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'Symphony', 'id' => 'symphony', 'regexp' =>'/Symphony ([0-9.]+)$/u' ], + [ 'name' => 'WebLite', 'id' => 'weblite', 'regexp' =>'/WebLite\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], + + /* Television browsers */ + [ 'name' => 'AltiBrowser', 'id' => 'alti', 'regexp' =>'/AltiBrowser\/([0-9.]*)/i' ], + [ 'name' => 'Aplix', 'id' => 'aplix', 'regexp' =>'/Aplix_SANYO_browser\/([0-9](?:.[0-9.]+)?)/u' ], // browser for the Sega Saturn + [ 'name' => 'AwoX', 'id' => 'awox', 'regexp' =>'/AwoX(?:\/([0-9.]*))? Browser/i' ], + [ 'name' => 'Isis', 'id' => 'browserserver', 'regexp' =>'/BrowserServer/u' ], + [ 'name' => 'Isis', 'id' => 'isis', 'regexp' =>'/ISIS\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Spyglass', 'id' => 'spyglass', 'regexp' =>'/Spyglass ([0-9.]+); OpenTV/u' ], + [ 'name' => 'Oregan Browser', 'id' => 'oregan', 'regexp' =>'/OreganMediaBrowser(?:\/([0-9.]*))?/u', 'details' => 2 ], + [ 'name' => 'Viera Browser', 'id' => 'viera', 'regexp' =>'/Viera\/([0-9.]*)/u' ], + [ 'name' => 'Zetakey', 'id' => 'zetakey', 'regexp' =>'/Zetakey Webkit\/([0-9.]*)/u', 'type' => Constants\DeviceType::TELEVISION ], + [ 'name' => 'Zetakey', 'id' => 'zetakey', 'regexp' =>'/Zetakey\/([0-9.]*)/u', 'type' => Constants\DeviceType::TELEVISION ], + + /* Gaming browsers */ + [ 'name' => 'Aplix', 'id' => 'aplix', 'regexp' =>'/Aplix_SEGASATURN_browser\/([0-9](?:.[0-9.]+)?)/u' ], // browser for the Sega Saturn + [ 'name' => 'Bunjalloo', 'id' => 'bunjalloo', 'regexp' =>'/Bunjalloo\/([0-9.]*)/u' ], // browser for the Nintento DS + [ 'name' => 'Nintendo Web Framework', 'id' => 'nwf', 'regexp' =>'/NWF\/([0-9.]*)/u', 'details' => 2 ], // browser for the Sega Dreamcast + [ 'name' => 'Nuanti Meta', 'id' => 'nuanti', 'regexp' =>'/Nuanti(?:Meta)?\/([0-9.]*)/u' ], // browser for the Playstation + + /* Other browsers */ + [ 'name' => 'Wear Internet Browser','id' => 'wib', 'regexp' =>'/WIB\/([0-9.]*)/u' ], + + /* PDF renderers */ + [ 'name' => 'Prince', 'id' => 'prince', 'regexp' =>'/Prince\/([0-9.]*)/u' ], + + /* Unsorted */ + [ 'name' => 'Demobrowser', 'id' => 'demobrowser', 'regexp' =>'/demobrowser\/([0-9.]*)/u' ], + [ 'name' => 'Dooble', 'id' => 'dooble', 'regexp' =>'/Dooble(?:\/([0-9.]*))?/u' ], // see: http://dooble.sourceforge.net + [ 'name' => 'DWB', 'id' => 'dwb', 'regexp' =>'/dwb(?:-hg)?(?:\/([0-9.]*))?/u' ], + [ 'name' => 'EVM Browser', 'id' => 'evm', 'regexp' =>'/EVMBrowser\/([0-9.]*)/u' ], + [ 'name' => 'FireWeb', 'id' => 'fireweb', 'regexp' =>'/FireWeb\/([0-9.]*)/u' ], + [ 'name' => 'Hive Explorer', 'id' => 'hive', 'regexp' =>'/HiveE/u' ], + [ 'name' => 'Intermec Browser', 'id' => 'intermec', 'regexp' =>'/Intermec\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Phantom', 'id' => 'phantom', 'regexp' =>'/Phantom\/V([0-9.]*)/u' ], + [ 'name' => 'QtCreator', 'id' => 'qt', 'regexp' =>'/QtCreator\/([0-9.]*)/u' ], + [ 'name' => 'QtQmlViewer', 'id' => 'qt', 'regexp' =>'/QtQmlViewer/u' ], + [ 'name' => 'QtMiniBrowser', 'id' => 'qt', 'regexp' =>'/QtMiniBrowser\/([0-9.]*)/u' ], + [ 'name' => 'QtTestBrowser', 'id' => 'qt', 'regexp' =>'/QtTestBrowser\/([0-9.]*)/u' ], + [ 'name' => 'Roccat', 'id' => 'roccat', 'regexp' =>'/Roccat\/([0-9]\.[0-9.]*)/u' ], + [ 'name' => 'Raven for Mac', 'id' => 'raven', 'regexp' =>'/Raven for Mac\/([0-9.]*)/u' ], + [ 'name' => 'RockMelt', 'id' => 'rockmelt', 'regexp' =>'/RockMelt\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Scope', 'id' => 'scope', 'regexp' =>'/Scope\/([0-9.]*)/u', 'details' => 2 ], // see: http://www.programmer.co.jp/scope.shtml + [ 'name' => 'SlimBoat', 'id' => 'slim', 'regexp' =>'/SlimBoat\/([0-9.]*)/u' ], + [ 'name' => 'SlimBrowser', 'id' => 'slim', 'regexp' =>'/SlimBrowser(?:\/([0-9.]*))?/u' ], + [ 'name' => 'SMBrowser', 'id' => 'smbrowser', 'regexp' =>'/SMBrowser/u' ], + [ 'name' => 'Snowshoe', 'id' => 'snowshoe', 'regexp' =>'/Snowshoe\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Sputnik', 'id' => 'sputnik', 'regexp' =>'/Sputnik\/([0-9.]*)/iu', 'details' => 3 ], + [ 'name' => 'Surf', 'id' => 'surf', 'regexp' =>'/Surf\/([0-9.]*)/u' ], + [ 'name' => 'TaoBrowser', 'id' => 'tao', 'regexp' =>'/TaoBrowser\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'TaomeeBrowser', 'id' => 'tao', 'regexp' =>'/TaomeeBrowser\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'TazWeb', 'id' => 'taz', 'regexp' =>'/TazWeb/u' ], + [ 'name' => 'Uzbl', 'id' => 'uzbl', 'regexp' =>'/^Uzbl/u' ], + [ 'name' => 'Villanova', 'id' => 'villanova', 'regexp' =>'/Villanova\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'Vimb', 'id' => 'vimb', 'regexp' =>'/vimb\/([0-9.]*)/u' ], + [ 'name' => 'WADA Browser', 'id' => 'wada', 'regexp' =>'/WadaBrowser\/([0-9.]*)/u' ], + [ 'name' => 'Wavelink Velocity', 'id' => 'wavelink', 'regexp' =>'/Wavelink Velocity Browser\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'WebRender', 'id' => 'webrender', 'regexp' =>'/WebRender/u' ], + [ 'name' => 'Webster', 'id' => 'webster', 'regexp' =>'/Webster ([0-9.]*)/u' ], + [ 'name' => 'Wyzo', 'id' => 'wyzo', 'regexp' =>'/Wyzo\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'Yelang', 'id' => 'yelang', 'regexp' =>'/Yelang\/([0-9.]*)/u', 'details' => 3 ], // see: wellgo.org + [ 'name' => 'YRC Weblink', 'id' => 'yrcweb', 'regexp' =>'/YRCWeblink\/([0-9.]*)/u' ], + [ 'name' => '冲浪æµè§ˆå™¨', 'id' => 'surf', 'regexp' =>'/CMSurfClient-Android/u' ], + ], + + Constants\BrowserType::BROWSER_TEXT => [ + [ 'name' => 'CERN LineMode', 'id' => 'linemode', 'regexp' =>'/CERN-LineMode\/([0-9.]*)/u' ], + [ 'name' => 'Lynx', 'id' => 'lynx', 'regexp' =>'/Lynx\/([0-9.]*)/u' ], + [ 'name' => 'Lynx', 'id' => 'lynx', 'regexp' =>'/Lynx \(textmode\)/u' ], + [ 'name' => 'ELinks', 'id' => 'links', 'regexp' =>'/E[Ll]inks(?:\/| \()([0-9.]*[0-9])/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Links', 'id' => 'links', 'regexp' =>'/Links \(([0-9.]*)/u' ], + [ 'name' => 'w3m', 'id' => 'w3m', 'regexp' =>'/w3m\/([0-9.]*)/u' ], + ], + + Constants\BrowserType::UNKNOWN => [ + [ 'name' => 'PhantomJS', 'id' => 'phantom', 'regexp' =>'/PhantomJS\/([0-9.]*)/u' ], + [ 'name' => 'Nimbus', 'id' => 'nimbus', 'regexp' =>'/Nimbus\/([0-9.]*)/u' ], + [ 'name' => 'McAfee Web Gateway', 'id' => 'Webwasher', 'regexp' =>'/Webwasher\/([0-9.]*)/u' ], + [ 'name' => 'Open Sankoré', 'id' => 'sankore', 'regexp' =>'/Open-Sankore\/([0-9.]*)/u', 'type' => Constants\DeviceType::WHITEBOARD ], + [ 'name' => 'Adapi', 'id' => 'adapi', 'regexp' =>'/ ADAPI\/([0-9.]*)/u', 'hidden' => true, 'type' => Constants\DeviceType::SIGNAGE ], + [ 'name' => 'BrightSign', 'id' => 'brightsign', 'regexp' =>'/BrightSign\/([0-9.]*)/u', 'type' => Constants\DeviceType::SIGNAGE ], + [ 'name' => 'Coship MMCP', 'id' => 'coship', 'regexp' =>'/Coship_MMCP_([0-9.]*)/u', 'type' => Constants\DeviceType::SIGNAGE ], + ] +]; diff --git a/integration/whichbrowser/data/applications-others.php b/integration/whichbrowser/data/applications-others.php new file mode 100644 index 00000000..d98f3974 --- /dev/null +++ b/integration/whichbrowser/data/applications-others.php @@ -0,0 +1,135 @@ + [ + [ 'name' => 'iTunes', 'id' => 'itunes', 'regexp' =>'/iTunes\/(?:xaa.)?([0-9.]*)/u' ], + [ 'name' => 'iTunes', 'id' => 'itunes', 'regexp' =>'/iTunes-AppleTV\//u' ], + [ 'name' => 'QuickTime', 'id' => 'qt', 'regexp' =>'/\(qtver=([0-9.]*);/u' ], + [ 'name' => 'Bluefish', 'id' => 'bluefish', 'regexp' =>'/bluefish ([0-9.]*)/u' ], + [ 'name' => 'Nightingale', 'id' => 'nightingale', 'regexp' =>'/Nightingale\/([0-9.]*)/u' ], + [ 'name' => 'Songbird', 'id' => 'songbird', 'regexp' =>'/Songbird\/([0-9.]*)/u' ], + [ 'name' => 'Stagefright', 'id' => 'stagefright', 'regexp' =>'/stagefright\/([0-9.]*)/u' ], + [ 'name' => 'SubStream', 'id' => 'substream', 'regexp' =>'/SubStream\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'VLC', 'id' => 'vlc', 'regexp' =>'/VLC media player - version ([0-9.]*)/u' ], + [ 'name' => 'VLC', 'id' => 'vlc', 'regexp' =>'/VLC\/([0-9.]*)/u' ], + [ 'name' => 'Windows Media Player', 'id' => 'windows-media', 'regexp' =>'/Windows-Media-Player\/([0-9.]*)/u', 'details' => 1 ], + [ 'name' => 'CorePlayer', 'id' => 'coreplayer', 'regexp' =>'/CorePlayer\/([0-9.]*)/u' ], + [ 'name' => 'FlyCast', 'id' => 'flycast', 'regexp' =>'/FlyCast\/([0-9.]*)/u' ], + [ 'name' => 'Boxee', 'id' => 'boxee', 'regexp' => '/Boxee(?:\/([0-9.]*))?/u', 'type' => Constants\DeviceType::TELEVISION ], + [ 'name' => 'Kodi', 'id' => 'kodi', 'regexp' => '/^Kodi\/([0-9.]+)/u', 'details' => 2 ], + [ 'name' => 'XBMC', 'id' => 'xbmc', 'regexp' => '/^XBMC\/(?:PRE-)?([0-9.]+)/u', 'details' => 2 ], + ], + + Constants\BrowserType::APP_EMAIL => [ + [ 'name' => 'Lightning', 'id' => 'lightning', 'regexp' =>'/Lightning\/([0-9.]*)/u' ], + [ 'name' => 'Thunderbird', 'id' => 'thunderbird', 'regexp' =>'/Thunderbird[\/ ]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Microsoft Outlook', 'id' => 'outlook', 'regexp' =>'/Microsoft Outlook IMO, Build ([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Microsoft Outlook', 'id' => 'outlook', 'regexp' =>'/Microsoft Outlook ([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Microsoft Outlook Express', 'id' => 'outlook', 'regexp' =>'/Outlook-Express\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Lotus Notes', 'id' => 'lotus', 'regexp' =>'/Lotus-Notes\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Postbox', 'id' => 'postbox', 'regexp' =>'/Postbox[\/ ]([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'The Bat!', 'id' => 'bat', 'regexp' =>'/The Bat! ([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'Yahoo Mail', 'id' => 'yahoo', 'regexp' =>'/YahooMobile\/1.0 \(mail; ([0-9.]+)\)/u', 'details' => 3 ], + ], + + Constants\BrowserType::APP_NEWS => [ + [ 'name' => 'Daum', 'id' => 'daum', 'regexp' =>'/DaumApps\/([0-9.]*)/u' ], + [ 'name' => 'Daum', 'id' => 'daum', 'regexp' =>'/daumcafe\/([0-9.]*)/u' ], + ], + + Constants\BrowserType::APP_FEEDREADER => [ + [ 'name' => 'Akregator', 'id' => 'akregator', 'regexp' =>'/Akregator\/([0-9.]*)/u' ], + [ 'name' => 'Blogos', 'id' => 'blogos', 'regexp' =>'/Blogos\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'Cococ', 'id' => 'cococ', 'regexp' =>'/cococ\/([0-9.]*)/u' ], + [ 'name' => 'FeedDemon', 'id' => 'feed', 'regexp' =>'/FeedDemon\/([0-9.]*)/u' ], + [ 'name' => 'Feeddler', 'id' => 'feed', 'regexp' =>'/FeeddlerRSS[ \/]([0-9.]*)/u' ], + [ 'name' => 'Feeddler Pro', 'id' => 'feed', 'regexp' =>'/FeeddlerPro\/([0-9.]*)/u' ], + [ 'name' => 'Liferea', 'id' => 'liferea', 'regexp' =>'/Liferea\/([0-9.]*)/u' ], + [ 'name' => 'NewsBlur', 'id' => 'news', 'regexp' =>'/NewsBlur\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'Newsbeuter', 'id' => 'news', 'regexp' =>'/newsbeuter\/([0-9.]*)/u' ], + [ 'name' => 'JetBrains Omea Reader','id' => 'jetbrains', 'regexp' =>'/JetBrains Omea Reader ([0-9.]*)/u' ], + [ 'name' => 'RSS Bandit', 'id' => 'rss', 'regexp' =>'/RssBandit\/([0-9.]*)/u' ], + [ 'name' => 'RSS Junkie', 'id' => 'rss', 'regexp' =>'/RSS Junkie Daemon/u' ], + [ 'name' => 'RSS Owl', 'id' => 'rss', 'regexp' =>'/RSSOwl\/([0-9.]*)/u' ], + [ 'name' => 'Reeder', 'id' => 'reeder', 'regexp' =>'/Reeder\/([0-9.]*)/u' ], + [ 'name' => 'ReedKit', 'id' => 'reedkit', 'regexp' =>'/ReedKit\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Rome', 'id' => 'rome', 'regexp' =>'/Rome Client/u' ], + [ 'name' => 'jsRSS++', 'id' => 'rss', 'regexp' =>'/jsRSS++\/([0-9.]*)/u' ], + [ 'name' => 'Windows RSS Platorm', 'id' => 'rss', 'regexp' =>'/Windows-RSS-Platform\/([0-9.]*)/u' ], + ], + + Constants\BrowserType::APP_PODCAST => [ + [ 'name' => 'Ziepod', 'id' => 'ziepod', 'regexp' =>'/Ziepod\+? ([0-9.]*)/u' ], + ], + + Constants\BrowserType::APP_CHAT => [ + [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FBAN\/MessengerForiOS/u' ], + [ 'name' => 'Kik', 'id' => 'kik', 'regexp' =>'/Kik\/([0-9.]*)/u' ], + [ 'name' => 'WeChat', 'id' => 'messenger', 'regexp' =>'/MicroMessenger\/([0-9.]*)/u' ], + [ 'name' => 'Yahoo Messenger', 'id' => 'yahoo', 'regexp' =>'/YahooMobile\/1.0 \(im; ([0-9.]+)\)/u', 'details' => 3 ], + [ 'name' => 'Yammer', 'id' => 'yammer', 'regexp' =>'/Yammer\/([0-9.]*)/u', 'details' => 2 ], + ], + + Constants\BrowserType::APP_SOCIAL => [ + [ 'name' => 'Facebook', 'id' => 'fbios', 'regexp' =>'/FBAN\/FBIOS/u' ], + [ 'name' => 'Facebook', 'id' => 'fb4a', 'regexp' =>'/FBAN\/FB4A/u' ], + [ 'name' => 'Facebook', 'id' => 'fb4a', 'regexp' =>'/FB_IAB\/FB4A/u' ], + [ 'name' => 'Google+', 'id' => 'googleplus', 'regexp' =>'/com.google.GooglePlus/u' ], + [ 'name' => 'Instagram', 'id' => 'instagram', 'regexp' =>'/Instagram ([0-9.]+)/u' ], + [ 'name' => 'Sina Weibo', 'id' => 'weibo', 'regexp' =>'/weibo__([0-9.]*)/u' ], + [ 'name' => 'Tumblr', 'id' => 'tumblr', 'regexp' =>'/Tumblr\/([0-9.]*)/u' ], + [ 'name' => 'Twitter', 'id' => 'twitter', 'regexp' =>'/TwitterAndroid/u' ], + [ 'name' => 'Twitter', 'id' => 'twitter', 'regexp' =>'/Twitter for iPhone/u' ], + [ 'name' => 'WordPress', 'id' => 'wp-android', 'regexp' =>'/wp-android\/([0-9.]*)/u' ], + ], + + Constants\BrowserType::APP_OFFICE => [ + [ 'name' => 'LibreOffice', 'id' => 'office', 'regexp' =>'/LibreOffice/u' ], + [ 'name' => 'Microsoft Office', 'id' => 'office', 'regexp' =>'/MSOffice ([0-9.]*)/u' ], + [ 'name' => 'Microsoft Office', 'id' => 'office', 'regexp' =>'/Microsoft Office Mobile ?\/([0-9.]*)/u' ], + [ 'name' => 'Microsoft Excel', 'id' => 'office', 'regexp' =>'/Microsoft Office Excel ([0-9.]*)/u' ], + [ 'name' => 'Microsoft OneNote', 'id' => 'office', 'regexp' =>'/Microsoft Office OneNote ([0-9.]*)/u' ], + [ 'name' => 'Microsoft PowerPoint', 'id' => 'office', 'regexp' =>'/Microsoft Office PowerPoint ([0-9.]*)/u' ], + [ 'name' => 'Microsoft Word', 'id' => 'office', 'regexp' =>'/Microsoft Office Word ([0-9.]*)/u' ], + [ 'name' => 'OpenOffice', 'id' => 'office', 'regexp' =>'/OpenOffice\/([0-9.]*)/u' ], + ], + + Constants\BrowserType::APP_SEARCH => [ + [ 'name' => 'Baidu Hao123', 'id' => 'hao123', 'regexp' =>'/hao123\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Google Search', 'id' => 'gsa', 'regexp' =>'/GSA\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'NAVER', 'id' => 'naver', 'regexp' =>'/NAVER\(inapp; search; [0-9]+; ([0-9.]*)\)/u' ], + ], + + Constants\BrowserType::APP_EDITOR => [ + [ 'name' => 'Atom', 'id' => 'atom', 'regexp' =>'/Atom\/([0-9.]*)/u' ], + [ 'name' => 'Adobe GoLive', 'id' => 'golive', 'regexp' =>'/GoLive ([0-9.]*)/u' ], + [ 'name' => 'Brackets', 'id' => 'brackets', 'regexp' =>'/Brackets\/([0-9.]*)/u' ], + [ 'name' => 'iWeb', 'id' => 'iweb', 'regexp' =>'/(?:^| )iWeb\/([0-9])/u' ], + [ 'name' => 'Microsoft FrontPage', 'id' => 'frontpage', 'regexp' =>'/MS ?FrontPage[ \/]([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'W3C Amaya', 'id' => 'amaya', 'regexp' =>'/amaya\/([0-9.]*)/u' ], + ], + + Constants\BrowserType::APP_DOWNLOAD => [ + [ 'name' => 'Download Manager', 'id' => 'download', 'regexp' =>'/AndroidDownloadManager\//u' ], + ], + + Constants\BrowserType::APP_GAME => [ + [ 'name' => 'EA Origin', 'id' => 'origin', 'regexp' =>'/Origin\/([0-9.]*)/u' ], + [ 'name' => 'SecondLife', 'id' => 'secondlife', 'regexp' =>'/SecondLife\/([0-9.]*)/u' ], + [ 'name' => 'Valve Steam', 'id' => 'valve', 'regexp' =>'/Valve Steam/u' ], + [ 'name' => 'Raptr', 'id' => 'raptr', 'regexp' =>'/Raptr/u' ], + ], + + Constants\BrowserType::APP => [ + [ 'name' => 'Cooliris', 'id' => 'cooliris', 'regexp' =>'/Cooliris\/([0-9.]*)/u' ], + [ 'name' => 'Google Earth', 'id' => 'google', 'regexp' =>'/Google Earth\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Google Desktop', 'id' => 'google', 'regexp' =>'/Google Desktop\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Leechcraft', 'id' => 'leechcraft', 'regexp' =>'/Leechcraft(?:\/([0-9.]*))?/u', 'details' => 2 ], + [ 'name' => 'Lotus Expeditor', 'id' => 'expeditor', 'regexp' =>'/Gecko Expeditor ([0-9.]*)/u', 'details' => 3 ], + ] +]; diff --git a/integration/whichbrowser/data/browsers-chrome.php b/integration/whichbrowser/data/browsers-chrome.php new file mode 100644 index 00000000..b4a96b0b --- /dev/null +++ b/integration/whichbrowser/data/browsers-chrome.php @@ -0,0 +1,91 @@ + 'beta', + '0.3.154' => 'beta', + '0.4.154' => 'beta', + '1.0.154' => 'stable', + '2.0.172' => 'stable', + '3.0.195' => 'stable', + '4.0.249' => 'stable', + '4.1.249' => 'stable', + '5.0.375' => 'stable', + '6.0.472' => 'stable', + '7.0.517' => 'stable', + '8.0.552' => 'stable', + '9.0.597' => 'stable', + '10.0.648' => 'stable', + '11.0.696' => 'stable', + '12.0.742' => 'stable', + '13.0.782' => 'stable', + '14.0.835' => 'stable', + '15.0.874' => 'stable', + '16.0.912' => 'stable', + '17.0.963' => 'stable', + '18.0.1025' => 'stable', + '19.0.1084' => 'stable', + '20.0.1132' => 'stable', + '21.0.1180' => 'stable', + '22.0.1229' => 'stable', + '23.0.1271' => 'stable', + '24.0.1312' => 'stable', + '25.0.1364' => 'stable', + '26.0.1410' => 'stable', + '27.0.1453' => 'stable', + '28.0.1500' => 'stable', + '29.0.1547' => 'stable', + '30.0.1599' => 'stable', + '31.0.1650' => 'stable', + '32.0.1700' => 'stable', + '33.0.1750' => 'stable', + '34.0.1847' => 'stable', + '35.0.1916' => 'stable', + '36.0.1985' => 'stable', + '37.0.2062' => 'stable', + '38.0.2125' => 'stable', + '39.0.2171' => 'stable', + '40.0.2214' => 'stable', + '41.0.2272' => 'stable', + '42.0.2311' => 'stable', + '43.0.2357' => 'stable', + '44.0.2403' => 'stable', + '45.0.2454' => 'stable', + '46.0.2490' => 'stable', + '47.0.2526' => 'stable', + '48.0.2564' => 'stable', + '49.0.2623' => 'stable', + '50.0.2661' => 'stable', + '51.0.2704' => 'stable', +]; + +Chrome::$MOBILE = [ + '16.0.912' => 'beta', + '18.0.1025' => 'stable', + '25.0.1364' => 'stable', + '27.0.1453' => 'stable', + '29.0.1547' => 'stable', + '30.0.1599' => 'stable', + '31.0.1650' => 'stable', + '32.0.1700' => 'stable', + '33.0.1750' => 'stable', + '34.0.1847' => 'stable', + '35.0.1916' => 'stable', + '36.0.1985' => 'stable', + '37.0.2062' => 'stable', + '38.0.2125' => 'stable', + '39.0.2171' => 'stable', + '40.0.2214' => 'stable', + '41.0.2272' => 'stable', + '42.0.2311' => 'stable', + '43.0.2357' => 'stable', + '44.0.2403' => 'stable', + '45.0.2454' => 'stable', + '46.0.2490' => 'stable', + '47.0.2526' => 'stable', + '48.0.2564' => 'stable', + '49.0.2623' => 'stable', + '50.0.2661' => 'stable', + '51.0.2704' => 'stable', +]; diff --git a/integration/whichbrowser/data/build-android.php b/integration/whichbrowser/data/build-android.php new file mode 100644 index 00000000..aa01e441 --- /dev/null +++ b/integration/whichbrowser/data/build-android.php @@ -0,0 +1,244 @@ + '1.5', + 'DONUT' => '1.6', + 'ECLAIR' => '2.0', + 'FROYO' => '2.2', + 'GINGERBREAD' => '2.3', + + 'DRC83' => '1.6', + 'DRC92' => '1.6', + 'DRD08' => '1.6', + 'DRD20' => '1.6', + 'DMD64' => '1.6', + 'ESD20' => '2.0', + 'ESD56' => '2.0.1', + 'ERD79' => '2.1', + 'ERE27' => '2.1', + 'EPE54B' => '2.1', + 'ESE81' => '2.1', + 'EPF21B' => '2.1', + 'FRF85B' => '2.2', + 'FRF91' => '2.2', + 'FRG01B' => '2.2', + 'FRG22D' => '2.2', + 'FRG83' => '2.2.1', + 'FRG83D' => '2.2.1', + 'FRG83G' => '2.2.2', + 'FRK76' => '2.2.3', + 'FRK76C' => '2.2.3', + 'GRH55' => '2.3', + 'GRH78' => '2.3.1', + 'GRH78C' => '2.3.2', + 'GRI40' => '2.3.3', + 'GRI54' => '2.3.3', + 'GRJ06D' => '2.3.4', + 'GRJ22' => '2.3.4', + 'GRJ90' => '2.3.5', + 'GRK39C' => '2.3.6', + 'GRK39F' => '2.3.6', + 'GWK74' => '2.3.7', + + 'HRI39' => '3.0', + 'HRI66' => '3.0', + 'HWI69' => '3.0', + 'HRI83' => '3.0', + 'HMJ37' => '3.1', + 'HTJ85B' => '3.2', + 'HTK55D' => '3.2.1', + 'HTK75' => '3.2.1', + 'HTK75D' => '3.2.1', + 'HLK75C' => '3.2.2', + 'HLK75D' => '3.2.2', + 'HLK75F' => '3.2.4', + 'HLK75H' => '3.2.6', + + 'ITL41D' => '4.0.1', + 'ITL41E' => '4.0.1', + 'ITL41F' => '4.0.1', + 'ICL53F' => '4.0.2', + 'IML74K' => '4.0.3', + 'IML77' => '4.0.3', + 'IMM76' => '4.0.4', + 'IMM76D' => '4.0.4', + 'IMM76I' => '4.0.4', + 'IMM76K' => '4.0.4', + 'IMM76L' => '4.0.4', + 'JRO03C' => '4.1.1', + 'JRO03D' => '4.1.1', + 'JRO03E' => '4.1.1', + 'JRO03H' => '4.1.1', + 'JRO03L' => '4.1.1', + 'JRO03O' => '4.1.1', + 'JRO03R' => '4.1.1', + 'JRO03S' => '4.1.1', + 'JZO54K' => '4.1.2', + 'JZO54M' => '4.1.2', + 'JVP15S' => '4.2', // Interim build used by the Nexus 7 + 'JOP40C' => '4.2', + 'JOP40D' => '4.2.1', + 'JOP40F' => '4.2.1', + 'JOP40G' => '4.2.1', + 'JDQ39' => '4.2.2', + 'JDQ39B' => '4.2.2', + 'JDQ39E' => '4.2.2', + 'JWR66L' => '4.3', + 'JWR66N' => '4.3', + 'JWR66N.S005' => '4.3', // Google Play Edition - Samsung Galaxy S4 + 'JWR66V' => '4.3', + 'JWR66V.H10' => '4.3', // Google Play Edition - HTC One + 'JWR66V.S014' => '4.3', // Google Play Edition - Samsung Galaxy S4 + 'JWR66Y' => '4.3', + 'JWR66Y.S003' => '4.3', // Google Play Edition - Samsung Galaxy S4 + 'JSR78D' => '4.3', + 'JSS15J' => '4.3', + 'JSS15Q' => '4.3', + 'KRT16S' => '4.4', + 'KRT16M' => '4.4', + 'KOT49E' => '4.4.1', + 'KOT49H' => '4.4.2', + 'KVT49L' => '4.4.2', + 'KTU84L' => '4.4.3', + 'KTU84M' => '4.4.3', + 'KTU84P' => '4.4.4', + + 'LPV79' => ['value' => '5.0', 'alias' => 'L'], + 'LPV81C' => ['value' => '5.0', 'alias' => 'L'], + 'LPX13D' => ['value' => '5.0', 'alias' => 'L'], + + 'LRX21L' => '5.0', + 'LRX21M' => '5.0', + 'LRX21O' => '5.0', + 'LRX21P' => '5.0', + 'LRX21Q' => '5.0', + 'LRX21R' => '5.0', + 'LRX21T' => '5.0', + 'LRX21V' => '5.0', + 'LRX22C' => '5.0.1', + 'LRX22G' => '5.0.2', + 'LRX22L' => '5.0.2', + 'LGZ23.S3' => '5.0.2', // Sony Bravia Android TV + 'LGZ23.S15' => '5.0.2', // Sony Bravia Android TV + 'LGZ23.S37' => '5.0.2', // Sony Bravia Android TV + 'LGZ23.S49' => '5.0.2', // Sony Bravia Android TV + 'LGZ23.S55' => '5.0.2', // Sony Bravia Android TV + 'LGZ23.S59' => '5.0.2', // Sony Bravia Android TV + 'LGZ23.S61' => '5.0.2', // Sony Bravia Android TV + 'LGZ23.S73' => '5.0.2', // Sony Bravia Android TV + 'LGY70.S1' => '5.0.2', // Sony Bravia Android TV + 'LGY75.S91' => '5.0.2', // Sony Bravia Android TV + 'LGY75.S105' => '5.0.2', // Sony Bravia Android TV + 'LGY75.S109' => '5.0.2', // Sony Bravia Android TV + 'LGY75.S131' => '5.0.2', // Sony Bravia Android TV + 'LGY75.S143' => '5.0.2', // Sony Bravia Android TV + 'LGY75.S147' => '5.0.2', // Sony Bravia Android TV + 'LMY47D' => '5.1', + 'LMY47E' => '5.1', + 'LMY47I' => '5.1', + 'LMY47M' => '5.1', + 'LMY47O' => '5.1', + 'LMY47V' => '5.1.1', + 'LMY47X' => '5.1.1', + 'LMY47Z' => '5.1.1', + 'LMY48B' => '5.1.1', + 'LMY48E.S1' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S39' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S63' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S81' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S89' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S91' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S117' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S127' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S143' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S153' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S155' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S167' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S185' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S191' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S195' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S197' => '5.1.1', // Sony Bravia Android TV + 'LMY48E.S223' => '5.1.1', // Sony Bravia Android TV + 'LMY48B' => '5.1.1', + 'LMY48G' => '5.1.1', + 'LMY48I' => '5.1.1', + 'LMY48J' => '5.1.1', + 'LMY48M' => '5.1.1', + 'LMY48N' => '5.1.1', + 'LMY48P' => '5.1.1', + 'LMY48T' => '5.1.1', + 'LMY48U' => '5.1.1', + 'LMY48W' => '5.1.1', + 'LMY48X' => '5.1.1', + 'LMY48Y' => '5.1.1', + 'LMY48Z' => '5.1.1', + 'LMY49F' => '5.1.1', + 'LMY49G' => '5.1.1', + 'LMY49H' => '5.1.1', + 'LMY49I' => '5.1.1', + 'LMY49J' => '5.1.1', + 'LVY48C' => '5.1.1', + 'LVY48E' => '5.1.1', + 'LVY48F' => '5.1.1', + 'LVY48H' => '5.1.1', + 'LYZ28E' => '5.1.1', + 'LYZ28J' => '5.1.1', + 'LYZ28K' => '5.1.1', + 'LYZ28M' => '5.1.1', + 'LYZ28N' => '5.1.1', + + 'MPZ44Q' => ['value' => '6.0', 'alias' => 'M'], + 'MPZ79M' => ['value' => '6.0', 'alias' => 'M'], + + 'MRA58K' => '6.0', + 'MRA58N' => '6.0', + 'MRA58U' => '6.0', + 'MRA58V' => '6.0', + 'MRA58X' => '6.0', + 'MRA59B' => '6.0', + 'MDA89D' => '6.0', + 'MDA89E' => '6.0', + 'MDB08I' => '6.0', + 'MDB08K' => '6.0', + 'MDB08L' => '6.0', + 'MDB08M' => '6.0', + 'MMB29N' => '6.0', + 'MMB29K' => '6.0.1', + 'MMB29M' => '6.0.1', + 'MMB29O' => '6.0.1', + 'MMB29P' => '6.0.1', + 'MMB29S' => '6.0.1', + 'MMB29T' => '6.0.1', + 'MMB29Q' => '6.0.1', + 'MMB29R' => '6.0.1', + 'MMB29U' => '6.0.1', + 'MMB29V' => '6.0.1', + 'MMB29X' => '6.0.1', + 'MHC19I' => '6.0.1', + 'MHC19J' => '6.0.1', + 'MHC19Q' => '6.0.1', + 'MOB30D' => '6.0.1', + 'MOB30G' => '6.0.1', + 'MOB30H' => '6.0.1', + 'MOB30I' => '6.0.1', + 'MOB30J' => '6.0.1', + 'MTC19T' => '6.0.1', + 'MXB48J' => '6.0.1', + 'MXB48K' => '6.0.1', + 'MXB48T' => '6.0.1', + 'MXC14G' => '6.0.1', + 'MXC89F' => '6.0.1', + 'M5C14J' => '6.0.1', + + 'NPC56P' => ['value' => '7.0', 'alias' => 'N'], + 'NPC56W' => ['value' => '7.0', 'alias' => 'N'], + 'NPC56X' => ['value' => '7.0', 'alias' => 'N'], + 'NPC91K' => ['value' => '7.0', 'alias' => 'N'], + 'NPD35K' => ['value' => '7.0', 'alias' => 'N'], + 'NRD21D' => ['value' => '7.0', 'alias' => 'N'], + 'NRD28C' => ['value' => '7.0', 'alias' => 'N'], +]; + +// Source: http://source.android.com/source/build-numbers.html diff --git a/integration/whichbrowser/data/id-android.php b/integration/whichbrowser/data/id-android.php new file mode 100644 index 00000000..8780e1d5 --- /dev/null +++ b/integration/whichbrowser/data/id-android.php @@ -0,0 +1,323 @@ + '1Password', + 'com.browser2345' => '2345 Browser', + 'com.browser2345_ucc' => '2345 Browser', + 'com.browser2345hd' => '2345 Browser HD', + 'air.stage.web.view' => 'Adobe AIR', + 'air.stagewebview' => 'Adobe AIR', + 'air.StageWebViewBridgeTest.debug' => 'Adobe AIR', + 'air.StageWebViewVideo.debug' => 'Adobe AIR', + 'com.adobe.phonegap.app' => 'Adobe Phonegap', + 'com.adobe.reader' => 'Adobe Reader', + 'com.adobe.shadow.android' => 'Adobe Shadow', + 'com.airwatch.browser' => 'AirWatch Browser', + 'com.aliyun.mobile.browser' => 'Aliyun Browser', + 'net.adgjm.angel' => 'Angel Browser', + 'com.apc.browser' => 'APC', + 'com.apc.browser.standard' => 'APC', + 'com.apc.browser.standard6j8s' => 'APC', + 'com.apusapps.browser' => 'APUS Browser', + 'com.apusapps.browser.lark' => 'APUS Browser', + 'com.apusapps.browser.turbo' => 'APUS Browser', + 'com.asus.browser' => 'Asus Browser', + 'com.wAuroraWebBrowser' => 'Aurora Web Browser', + 'bdmobile.android.app' => 'Baidu Browser', + 'com.baidu.blink.testapp' => 'Baidu Browser', + 'com.baidu.blink.v38' => 'Baidu Browser', + 'com.baidu.browser.apps' => 'Baidu Browser', + 'com.baidu.browser.apps.lite' => 'Baidu Browser', + 'com.baidu.browser.apps_mr' => 'Baidu Browser', + 'com.baidu.browser.apps_neo' => 'Baidu Browser', + 'com.baidu.browser.apps_sj' => 'Baidu Browser', + 'com.baidu.browser.apps_yt' => 'Baidu Browser', + 'com.baidu.browser.app_bw' => 'Baidu Browser', + 'com.baidu.browser.blink.apps' => 'Baidu Browser', + 'com.baidu.browser.brower' => 'Baidu Browser', + 'com.baidu.browser.chrome' => 'Baidu Browser', + 'com.baidu.browser.inter' => 'Baidu Browser', + 'com.baidu.browser.inter.mini' => 'Baidu Browser', + 'com.baidu.browser.interyb' => 'Baidu Browser', + 'com.baidu.browser.lab' => 'Baidu Browser', + 'com.baidu.browser.pad' => 'Baidu Browser', + 'com.baidu.browserhd.inter' => 'Baidu Browser', + 'com.baidu.demo.webview' => 'Baidu Browser', + 'com.baidu.hi' => 'Baidu Browser', + 'com.baidu.searchbox' => 'Baidu Browser', + 'com.baidu.searchbox.pad' => 'Baidu Browser', + 'com.baidu.searchbox_bbk' => 'Baidu Browser', + 'com.baidu.searchbox_coolpad' => 'Baidu Browser', + 'com.baidu.searchbox_gionee' => 'Baidu Browser', + 'com.baidu.searchbox_hisense' => 'Baidu Browser', + 'com.baidu.searchbox_htc' => 'Baidu Browser', + 'com.baidu.searchbox_huawei' => 'Baidu Browser', + 'com.baidu.searchbox_ktouch' => 'Baidu Browser', + 'com.baidu.searchbox_lenovo' => 'Baidu Browser', + 'com.baidu.searchbox_oppo' => 'Baidu Browser', + 'com.baidu.searchbox_samsung' => 'Baidu Browser', + 'com.baidu.searchbox_sj' => 'Baidu Browser', + 'com.baidu.searchbox_sony' => 'Baidu Browser', + 'com.baidu.searchbox_tianyi' => 'Baidu Browser', + 'com.baidu.searchbox_zte' => 'Baidu Browser', + 'com.baidu.zeustest' => 'Baidu Browser', + 'com.wBestBrowser' => 'Best Browser', + 'com.boatbrowser.free' => 'Boat Browser', + 'com.boatbrowser.tablet' => 'Boat Browser', + 'com.boatgo.browser' => 'Boat Browser Mini', + 'com.ericsson.research.mario' => 'Bowser', + 'com.dotsandlines.carbon' => 'Carbon', + 'app.chameleon_browser' => 'Chameleon browser', + 'com.coship.mmcp' => 'Coship MMCP', + 'com.coship.tvos.web' => 'Coship MMCP', + 'com.coship.webapp' => 'Coship MMCP', + 'net.daum.android.daum' => 'Daum', + 'com.phikod.deviceportinfo' => 'Device Info Android', + 'com.dolphin.browser.android.jp' => 'Dolphin', + 'com.dolphin.browser.id' => 'Dolphin', + 'com.dolphin.browser.pad' => 'Dolphin', + 'com.dolphin.browser.tuna' => 'Dolphin', + 'com.dolphin.web.browser.android' => 'Dolphin', + 'mobi.mgeek.TunnyBrowser' => 'Dolphin', + 'mobile.mgeek.TunnyBrowser' => 'Dolphin', + 'com.dolphin.browser.xf' => 'Dolphin (Fighter Edition)', + 'com.dolphin.browser.lab.cn' => 'Dolphin Beta', + 'com.dolphin.browser.lab.en' => 'Dolphin Beta', + 'com.dolphin.browser.express.web' => 'Dolphin Express', + 'com.dolphin.browser.express.web.beta' => 'Dolphin Express', + 'com.dolphin.browser' => 'Dolphin Mini', + 'com.dolphin.browser.cn' => 'Dolphin Mini', + 'com.dolphin.browser.zero' => 'Dolphin Zero', + 'com.duckduckgo.mobile.android' => 'DuckDuckGo', + 'easy.browser' => 'Easy Browser', + 'easy.browser.classic' => 'Easy Browser', + 'easy.browser.com' => 'Easy Browser', + 'it.blogspot.fedeveloper' => 'Emergency Browser', + 'com.easy.browser' => 'ES Browser', + 'org.espier.browser' => 'Espier Browser', + 'com.exsoul' => 'Exsoul Web Browser', + 'com.jv.falcon' => 'Falcon', + 'com.jv.falcon.pro' => 'Falcon Pro', + 'com.devhd.feedly' => 'Feedly', + 'com.firemonkeybrowser' => 'FireMonkey', + 'com.comespice.browser' => 'Flash Browser', + 'com.funnyeden.browser' => 'Flash Browser', + 'com.whattheapps.fbrowser' => 'Flash Browser', + 'flipboard.app' => 'Flipboard', + 'flipboard.cn' => 'Flipboard', + 'com.lwi.android.flapps' => 'Floating Apps', + 'com.lwi.android.flappsfull' => 'Floating Apps', + 'gpc.myweb.hinet.net.PopupWeb' => 'Floating Browser Flux', + 'com.fortune.browser' => 'Fortune Web Browser', + 'com.browser.frogbrowser' => 'Frog Browser', + 'com.crowbar.beaverbrowser' => 'Frost Browser', + 'com.crowbar.beaverlite' => 'Frost Browser', + 'galaxy.browser.gb.free' => 'Galaxy Browser', + 'galaxy.browser.gb.pro' => 'Galaxy Browser', + 'com.mybro.browsah' => 'Genie Browser', + 'com.noinnion.android.greader.reader' => 'gReader', + 'com.noinnion.android.greader.readerpro' => 'gReader Pro', + 'jp.ddo.pigsty.HabitBrowser' => 'Habit Browser', + 'jp.ddo.pigsty.Habit_Browser' => 'Habit Browser', + 'com.baidu.hao123' => 'Hao123', + 'com.baidu.hao123.chrome.browser' => 'Hao123', + 'com.baidu.hao123.global' => 'Hao123', + 'com.htc.browser' => 'HTC Sense Browser', + 'com.htc.sense.browser' => 'HTC Sense Browser', + 'com.huawei.android.browser' => 'Huawei Emotion Browser', + 'com.huawei.browser' => 'Huawei Emotion Browser', + 'jp.co.lunascape.android.ilunascape' => 'iLunascape 2', + 'nu.tommie.inbrowser' => 'InBrowser', + 'nu.tommie.inbrowser.beta' => 'InBrowser Beta', + 'com.infamous.browser' => 'Infamous Browser', + 'derek.iSurf' => 'iSurf', + 'com.jerky.browser' => 'Javelin Incognito Browser', + 'com.jerky.browser2' => 'Javelin Incognito Browser', + 'com.adsi.kioware.client.mobile.app' => 'KioWare Kiosk', + 'com.kroniapp.browse' => 'Kronia Browser', + 'com.web.browser.labaadibrowser' => 'Labaadi Browser', + 'com.vng.android.zingbrowser' => 'Laban', + 'com.lastpass.lpandroid' => 'LastPass', + 'com.lenovo.browser' => 'Lenovo Browser', + 'com.lenovo.lps.simple' => 'Lenovo Browser', + 'com.light.browser' => 'Light Browser', + 'acr.browser.barebones' => 'Lightning Browser', + 'acr.browser.butterfly' => 'Lightning Browser', + 'acr.browser.lightning' => 'Lightning Browser', + 'acr.browser.lightning2' => 'Lightning Browser', + 'acr.browser.lightningq16w' => 'Lightning Browser', + 'acr.browser.spartancompany' => 'Lightning Browser', + 'acr.browser.spartancompanypaid' => 'Lightning Browser', + 'acr.browser.thunder' => 'Lightning Browser', + 'com.MoNTE.Lime' => 'Lime', + 'com.alphonso.pulse' => 'LinkedIn Pulse', + 'com.logio.logos' => 'Logos Browser', + 'it.lombardo.Lombardo' => 'Lombardo', + 'com.powerpoint45.lucidbrowser' => 'Lucid Browser', + 'com.powerpoint45.lucidbrowserfree' => 'Lucid Browser', + 'com.fiberlink.maas360.android.securebrowser' => 'MaaS360 Browser', + 'com.mx.browser' => 'Maxthon', + 'com.mx.browser.appendix' => 'Maxthon', + 'com.mx.browser.fast' => 'Maxthon', + 'com.mx.browser.free.mx100000000000' => 'Maxthon', + 'com.mx.browser.free.mx100000001915' => 'Maxthon', + 'com.mx.browser.free.mx100000002422' => 'Maxthon', + 'com.mx.browser.free.mx100000003135' => 'Maxthon', + 'com.mx.browser.free.mx100000003415' => 'Maxthon', + 'com.mx.browser.free.mx100000004211' => 'Maxthon', + 'com.mx.browser.free.mx100000004981' => 'Maxthon', + 'com.mx.browser.free.mx100000005137' => 'Maxthon', + 'com.mx.browser.free.mx200000000239' => 'Maxthon', + 'com.mx.browser.free.mx200000006760' => 'Maxthon', + 'com.mx.browser.free.mx200000013070' => 'Maxthon', + 'com.mx.browser.free.mx200000014602' => 'Maxthon', + 'com.mx.browser.free.mx200000014853' => 'Maxthon', + 'com.mx.browser.hg' => 'Maxthon', + 'com.mx.browser.kids' => 'Maxthon', + 'com.mx.browser.mtk' => 'Maxthon', + 'com.mx.browser.tablet' => 'Maxthon', + 'jp.co.inos.c1Browser' => 'MDM Browser', + 'com.ilegendsoft.mercury' => 'Mercury', + 'com.dmkho.mbm' => 'MiniBrowser Mobile', + 'com.dmkho.mbmbeta' => 'MiniBrowser Mobile', + 'com.mseven.msecure' => 'mSecure', + 'com.visvanoid.secretbrowse' => 'My Internet', + 'com.fevdev.nakedbrowser' => 'Naked Browser', + 'com.fevdev.nakedbrowserNDM' => 'Naked Browser', + 'com.fevdev.nakedbrowserpro' => 'Naked Browser Pro', + 'com.nanobrowser' => 'Nano Browser', + 'com.bos.ebrowser' => 'Navegador eBrowser', + 'com.nhn.android.navercafe' => 'Naver', + 'com.nhn.android.naverdic' => 'Naver', + 'com.nhn.android.search' => 'Naver', + 'com.access_company.android.livebrowser' => 'NetFront Life Browser', + 'com.access_company.android.nflifebrowser.lite' => 'NetFront Life Browser', + 'com.access_company.android.nflifeconnect' => 'NetFront Life Connect', + 'com.jiubang.browser' => 'Next Browser', + 'com.ninesky.browser' => 'Ninesky', + 'com.ninesky.browsercn' => 'Ninesky', + 'com.ninesky.browserzh' => 'Ninesky', + 'com.ninesky.nqbrowsercn' => 'Ninesky', + 'com.ninesky.nsbrowser' => 'Ninesky', + 'com.ninesky.sebrowser' => 'Ninesky', + 'com.appsverse.privatebrowser' => 'Nova Private Browser', + 'com.browser.nowadvanced' => 'Now Browser', + 'com.browser.nowbasic' => 'Now Browser', + 'com.browser.nowpro' => 'Now Browser', + 'com.browser.nowpro412t' => 'Now Browser', + 'com.wNewVisionBrowser' => 'NVision Browser', + 'com.compal.android.browser' => 'Ocean Browser', + 'com.maskyn.oldbrowser' => 'Old But Gold Internet Browser', + 'com.tencent.ibibo.mtt' => 'One Browser', + 'info.guardianproject.browser' => 'Orweb', + 'com.oupeng.browser' => 'Oupeng Browser', + 'com.oupeng.browser.beta10' => 'Oupeng Browser', + 'com.oupeng.browser.turbobeta' => 'Oupeng Browser', + 'com.oupeng.browserpre.cmcc' => 'Oupeng Browser', + 'com.oupeng.mini.android' => 'Oupeng Browser', + 'com.oupeng.xbrowser' => 'Oupeng Browser', + 'com.oupeng.xbrowser.beta' => 'Oupeng Browser', + 'com.myboyfriendisageek.airbrowser' => 'OverSkreen', + 'com.panasonic.pavc.viera.vieraremote2' => 'Panasonic TV Remote', + 'com.wPcBrowser' => 'PC Browser Mini', + 'com.penguinbrowser.penguinbrowser' => 'Penguin browser', + 'com.appsverse.photon' => 'Photon Browser', + 'com.appsverse.photonamazon' => 'Photon Browser', + 'com.levelup.touiteur' => 'Plume', + 'com.ideashower.readitlater.pro' => 'Pocket', + 'com.gflam.portal' => 'Portal', + 'com.hat.privatebrowser' => 'Private Browser', + 'com.JamesBecwar.FreePrivateBrowser' => 'Private Browser', + 'com.JamesBecwar.PrivateBrowser' => 'Private Browser', + 'com.qihoa.browser' => 'Qihoo 360 Browser', + 'com.qihoo.androidbrowser' => 'Qihoo 360 Browser', + 'com.qihoo.appstore' => 'Qihoo 360 Browser', + 'com.qihoo.browser' => 'Qihoo 360 Browser', + 'com.qihoo.browsertest' => 'Qihoo 360 Browser', + 'com.qihoo.express.browser' => 'Qihoo 360 Browser', + 'com.qihoo.expressbrowser' => 'Qihoo 360 Browser', + 'com.qihoo.haosou' => 'Qihoo 360 Browser', + 'com.qihoo.padbrowser' => 'Qihoo 360 Browser', + 'com.qihoo.padbrowser7' => 'Qihoo 360 Browser', + 'com.qihoo360.mobilesafe' => 'Qihoo 360 Browser', + 'com.qihoo360.mobilesafe_meizu' => 'Qihoo 360 Browser', + 'com.qihoo360.mobilesafe_mtk6573' => 'Qihoo 360 Browser', + 'com.tencent.android.pad' => 'QQ Browser', + 'com.tencent.blink' => 'QQ Browser', + 'com.tencent.hd.qq' => 'QQ Browser', + 'com.tencent.internat.mtt' => 'QQ Browser', + 'com.tencent.international.mtt' => 'QQ Browser', + 'com.tencent.mobileqq' => 'QQ Browser', + 'com.tencent.mtt' => 'QQ Browser', + 'com.tencent.padbrowser' => 'QQ Browser', + 'appinventor.ai_progetto2003.SCAN' => 'QR Barcode Scanner', + 'com.rarster.QuantumBrowser' => 'QuantumBrowser', + 'net.virifi.android.quickbrowser' => 'Quick ICS Browser', + 'net.virifi.android.quickbrowserpro' => 'Quick ICS Browser', + 'com.bjy.quicklinkbrowser' => 'Quick Link Browser', + 'com.rapid.browser' => 'Rapid Browser Pro', + 'com.rapid.browser2' => 'Rapid Browser Pro', + 'com.andrewshu.android.reddit' => 'Reddit is fun', + 'com.andrewshu.android.redditdonation' => 'Reddit is fun', + 'reddit.news' => 'Reddit News', + 'com.laurencedawson.reddit_sync.dev' => 'Reddit Sync Dev', + 'com.laurencedawson.reddit_sync.pro' => 'Reddit Sync Pro', + 'org.quantumbadger.redreader' => 'RedReader', + 'de.bomhard.android.RetroBrowser' => 'RetroBrowser', + 'com.rocket.browser' => 'Rocket Browser', + 'com.springdesign.screenshare.browser.client' => 'ScreenShare', + 'com.springdesign.screenshare.browser.server' => 'ScreenShare', + 'com.shark.sharkbrowser' => 'Shark Browser', + 'com.sina.weibo' => 'Sina Weibo', + 'com.sina.weibog3' => 'Sina Weibo', + 'com.sithagi.sithbrowser' => 'Sith Browser', + 'com.skyfire.browser' => 'SkyFire', + 'com.skyfire.browser.toolbar' => 'SkyFire', + 'com.skyfire.consumer.browser' => 'Skyfire', + 'jp.co.fenrir.android.sleipnir' => 'Sleipnir', + 'jp.co.fenrir.android.sleipnir_black' => 'Sleipnir', + 'jp.co.fenrir.android.sleipnir_ngp' => 'Sleipnir', + 'jp.co.fenrir.android.sleipnir_test' => 'Sleipnir', + 'jp.gocro.smartnews.android' => 'SmartNews', + 'com.cmcc.sofabrowser' => 'Sofa Browser', + 'sogou.mobile.explorer' => 'Sogou Mobile', + 'com.solo.browser' => 'Solo', + 'com.sonymobile.smallbrowser' => 'Sony Small Browser', + 'com.speedy.browser' => 'Speedy Browser', + 'com.appestry.split_browser' => 'Split Browser', + 'com.appestry.split_browser_trial' => 'Split Browser', + 'com.stumbleupon.android.app' => 'StumbleUpon', + 'iron.web.jalepano.browser' => 'Super Fast Browser', + 'com.gears42.surefox' => 'SureFox', + 'com.mns.android.swing' => 'Swing Browser', + 'net.biniok.tampermonkey' => 'Tampermonkey', + 'com.tcl.browser' => 'TCL Browser', + 'com.thuban.browser' => 'Thuban Handset Browser', + 'org.tint' => 'Tint Browser', + 'com.twidroid' => 'UberSocial', + 'com.uc.browser' => 'UC Browser', + 'com.uc.browser.en2ly5' => 'UC Browser', + 'com.uc.browser.hd.x86' => 'UC Browser', + 'com.uc.browser.hdx3kg' => 'UC Browser', + 'com.UCMobile' => 'UC Browser', + 'com.UCMobile.labs' => 'UC Browser', + 'com.UCMobile.ucsdk' => 'UC Browser', + 'com.UCMobile295d' => 'UC Browser', + 'com.UCMobile2jm4' => 'UC Browser', + 'com.UCMobile9jpo' => 'UC Browser', + 'com.UCMobileodw6' => 'UC Browser', + 'com.uc.browser.hd' => 'UC Browser HD', + 'com.uc.browser.en' => 'UC Browser Mini', + 'com.tencent.mm' => 'WeChat', + 'sui.mRelease' => 'xScope Browser Pro', + 'jp.co.yahoo.android.ybrowser' => 'Yahoo! JAPAN', + 'jp.co.yahoo.android.yjtop' => 'Yahoo! JAPAN', + 'ru.yandex.shell' => 'Yandex Shell', + 'com.zetakey.browser' => 'Zetakey', + 'org.zirco' => 'Zirco Browser', + 'com.zte.browser' => 'ZTE Browser', +]; diff --git a/integration/whichbrowser/data/indices/models-android.php b/integration/whichbrowser/data/indices/models-android.php new file mode 100644 index 00000000..2ddec4b5 --- /dev/null +++ b/integration/whichbrowser/data/indices/models-android.php @@ -0,0 +1,7051 @@ + + array ( + 0 => 'A[0-9]{3,3}!!', + 1 => 'E[0-9]{2,2}0?!!', + 2 => 'S[0-9]{2,2}0?!!', + 3 => 'V[0-9]{2,2}0!!', + 4 => 'Z[0-9]{3,3}!!', + 5 => '[0-9]0[0-9]F!!', + 6 => '(Haier[- ])?H[ETW]- ?[A-Z][0-9]!!', + 7 => '(Hisense )?(LED[0-9]{2,2}(G|K|L|EC|XT)[0-9]{2,3})!', + 8 => '[SX0][0-9]{2,2}HT!!', + 9 => '(Huawei )?[MSTX](1|2|7|8|10)\\-[A-Z0-9][0-9]{2,2}!!', + 10 => 'G[0-9]{3,3}!!', + 11 => 'Y[0-9]{3,3}!!', + 12 => '[0-9AS][0-9]{2,2}HW!!', + 13 => '(USCC-|KYOCERA-)?E[0-9]{4,4}!!', + 14 => '(USCC-|KYOCERA-)?C[0-9]{4,4}!!', + 15 => '[0-9]0[0-9]KC?!!', + 16 => '(XOLO )?[ABQX][0-9]{3,4}!!', + 17 => '(Lenovo ?)?(IdeaTab ?)?[AB][0-9]{4,4}!!', + 18 => '(Lenovo )?(Tab ?)?(2 ?)?[AS](7|8|10)!!', + 19 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', + 20 => '[0-9]0[0-9]LG!!', + 21 => 'M\\-PP!!', + 22 => 'M\\-MP!!', + 23 => 'M\\-IPRO!!', + 24 => '(MEDION|(MD )?LIFETAB)!!', + 25 => 'M\\.T\\.T\\.!!', + 26 => 'O\\+!!', + 27 => '[0-9]{2,2}PFH6[0-9]{3,3}!', + 28 => '[45A]0[0-9]SH!!', + 29 => '(3|5)0[0-9]SH!!', + 30 => 'C[0-9]{4,4}!!', + 31 => 'D[0-9]{4,4}!!', + 32 => 'E[0-9]{4,4}!!', + 33 => 'F[0-9]{4,4}!!', + 34 => 'E[0-9]{2,2}[a-z]!!', + 35 => 'L[0-9]{2,2}[a-z]!!', + 36 => '(SNM\\-)?M[0-9]{2,2}[a-z]!!', + 37 => 'S[0-9]{2,2}[a-z]!!', + 38 => '[a-z][a-z](?:-[a-z][a-z])?, SmartTabII7!', + ), + '@00' => + array ( + 0 => '001DL', + 1 => '003P', + 2 => '003Z', + 3 => '008Z', + 4 => '009Z', + ), + '@0P' => + array ( + 0 => '0PCV1', + 1 => '0PM92', + 2 => '0PJA1!', + 3 => '0PJA2!', + 4 => '0PKV1', + 5 => '0PAJ5', + ), + '@10' => + array ( + 0 => '101DL', + 1 => '101N', + 2 => '101T', + 3 => '101P', + 4 => '102P', + ), + '@11' => + array ( + 0 => 1105, + 1 => 1107, + ), + '@12' => + array ( + 0 => '1216[X]!', + ), + '@2 ' => + array ( + 0 => '(Lenovo )?(Tab ?)?(2 ?)?[AS](7|8|10)!!', + ), + '@20' => + array ( + 0 => '201M', + 1 => 2013061, + 2 => '2014216 TD-LTE', + 3 => '20141(12)!', + 4 => '20148(11|12|13|17|18|19|21)!', + 5 => '20145(02)!', + 6 => 2013122, + 7 => '(Xiaomi )?20130(22|23)!', + 8 => '20140(11)!', + 9 => '20145(01)!', + ), + '@2P' => + array ( + 0 => '2PQ93', + ), + '@3' => + array ( + 0 => '(3|5)0[0-9]SH!!', + ), + '@3G' => + array ( + 0 => '3G7334i', + 1 => '(Lenovo |Lephone )?3GC101!', + 2 => '(Lenovo |Lephone )?3GW100!', + 3 => '(Lenovo |Lephone )?3GW101!', + ), + '@40' => + array ( + 0 => '4003[AJ]!', + 1 => '4008[A]!', + 2 => '4009[ADEFKMSX]!', + 3 => '4013[ADEJKMX]!', + 4 => '4014[AMX]!', + 5 => '4015[ANTX]!', + 6 => '4015[D]!', + 7 => '4016[ADX]!', + 8 => '4017[DEFX]!', + 9 => '4018[ADEFMX]!', + 10 => '4024[DEX]!', + 11 => '4027[ADNX]!', + 12 => '4028[AEJS]!', + 13 => '4032[ADEX]!', + 14 => '4033[AL]!', + 15 => '4035[ADYX]!', + 16 => '4036[E]!', + 17 => '4037[AX]!', + 18 => '4037[T]!', + 19 => '4045[ADELOX]!', + 20 => '40[0-9]SC!!', + 21 => '40[0-9]SO!!', + 22 => '402ZT', + ), + '@48' => + array ( + 0 => '(48|50|55)AX600C!', + ), + '@50' => + array ( + 0 => '5015[ADEX]!', + 1 => '5016[AJ]!', + 2 => '5017[B]!', + 3 => '5017[ADEOX]!', + 4 => '5020[A]!', + 5 => '5022[DX]!', + 6 => '5025[DEGX]!', + 7 => '5038[ADEX]!', + 8 => '5042[ADEFGTWXY]!', + 9 => '5045[JX]!', + 10 => '5050[ASYX]!', + 11 => '5054[ADOSTX]!', + 12 => '5054[NW]!', + 13 => '5065[ADJWX]!', + 14 => '5070[DJX]!', + 15 => '504Q', + 16 => '504Q+', + 17 => '504QP', + 18 => '501LV', + 19 => '(48|50|55)AX600C!', + 20 => '5080C Pro', + 21 => '50[0-9]SO!!', + 22 => '502ZT', + ), + '@55' => + array ( + 0 => '5560S', + 1 => '(48|50|55)AX600C!', + ), + '@58' => + array ( + 0 => 5832, + 1 => 5855, + 2 => 5860, + 3 => '5860A', + 4 => '5860E', + 5 => '5860S', + 6 => 5870, + ), + '@60' => + array ( + 0 => '6014[DX]!', + 1 => '6016[ADEX]!', + 2 => '6036[AYX]!', + 3 => '6037[BIKY]!', + 4 => '6039[AHJKSY]!', + 5 => '6042[D]!', + 6 => '6043[AD]!', + 7 => '6044D', + 8 => '6045[BFGIKOXY]!', + 9 => '6050[AFWY]!', + 10 => '6055[BHIKPY]!', + 11 => '6070[K]!', + 12 => '6034R ORANGE Niva', + ), + '@70' => + array ( + 0 => '7030[L]!', + 1 => '7040[NR]!', + 2 => '7040[T]!', + 3 => '7043[AEKY]!', + 4 => '7044[AXY]!', + 5 => '7045[Y]!', + 6 => '7046[T]!', + 7 => '7048[ASWX]!', + 8 => '7050[Y]!', + 9 => '7051[X]!', + 10 => '7053[D]!', + 11 => '7055[AW]!', + ), + '@71' => + array ( + 0 => '710C', + ), + '@72' => + array ( + 0 => 7260, + 1 => 7266, + ), + '@75' => + array ( + 0 => '7500IPS', + ), + '@7D' => + array ( + 0 => '7D-501u', + ), + '@80' => + array ( + 0 => '8020[D]!', + 1 => '8030[BY]!', + 2 => 8022, + 3 => '801ES', + 4 => '80-1', + 5 => '801a', + 6 => '801s', + 7 => '802w', + 8 => '800P31C', + ), + '@81' => + array ( + 0 => '8190Q', + ), + '@82' => + array ( + 0 => '825 T-Mobile', + ), + '@83' => + array ( + 0 => '831C', + ), + '@87' => + array ( + 0 => 8720, + 1 => '8720L', + ), + '@88' => + array ( + 0 => 8810, + ), + '@89' => + array ( + 0 => 8950, + ), + '@8X' => + array ( + 0 => '8x-1000', + ), + '@90' => + array ( + 0 => '9002[AWX]!', + 1 => '9003[A]!', + 2 => '9006[W]!', + 3 => '9007[ATX]!', + 4 => '9005[X]!', + 5 => '9010[X]!', + 6 => '9022[X]!', + 7 => '9021A', + 8 => '909d', + 9 => 9088, + 10 => '9020[A]!', + ), + '@93' => + array ( + 0 => 9300, + 1 => '9300+', + 2 => '932i', + ), + '@97' => + array ( + 0 => '97FC', + ), + '@A0' => + array ( + 0 => 'A0001', + 1 => 'A0002', + ), + '@A1' => + array ( + 0 => 'A1-[0-9]{3,3}!!', + 1 => 'A10', + 2 => 'A13-?MID!', + 3 => 'A101B', + 4 => 'A101C', + 5 => 'A101B2-LZ', + 6 => 'A101IT', + 7 => 'A10 MID', + 8 => 'A10MID', + 9 => 'A101B-CF', + 10 => 'A1001T', + 11 => 'A19S', + 12 => 'A11', + 13 => 'A111', + 14 => 'A106', + 15 => 'A1 07', + 16 => 'A13', + 17 => 'A110Q', + 18 => 'A110Q Canvas 2 Plus', + 19 => 'A110Q Canvas 2+', + 20 => 'A1680', + 21 => 'A1001', + 22 => 'A10H(D5W6)', + 23 => 'A10HD(N9A3)', + 24 => 'A10t(5DM3)', + 25 => 'A10T(8DM1)', + 26 => 'A11(M5A7)', + 27 => 'A11s(M5A7)', + 28 => 'A15(E6C2)', + ), + '@A2' => + array ( + 0 => 'A206G', + 1 => 'A2', + 2 => 'A21', + ), + '@A3' => + array ( + 0 => 'A3-A[0-9]{2,2}!!', + 1 => 'A32', + 2 => 'A35DE', + 3 => 'A320a', + 4 => 'A3380', + 5 => 'A30t', + 6 => 'A31', + 7 => 'A31c', + 8 => 'A3', + ), + '@A4' => + array ( + 0 => 'A450TL', + 1 => 'A460G', + 2 => 'A463BG', + 3 => 'A480G', + 4 => 'A43', + 5 => 'A400CG', + 6 => 'A45', + 7 => 'A47', + 8 => 'A4', + ), + '@A5' => + array ( + 0 => 'A520L', + 1 => 'A521L', + 2 => 'A554C', + 3 => 'A556C', + 4 => 'A560G', + 5 => 'A562G', + 6 => 'A564R', + 7 => 'A564C', + 8 => 'A5 Easy', + 9 => 'A5 Easy TM', + 10 => 'A5 Lite', + 11 => 'A5 Quad Plus', + 12 => 'A5 Quad Plus TM', + 13 => 'A55i', + 14 => 'A52', + 15 => 'A5000', + 16 => 'a5', + ), + '@A6' => + array ( + 0 => 'A621BL', + 1 => 'A6 Duo', + 2 => 'A6 Lite', + 3 => 'A6277', + 4 => 'A6S', + ), + '@A7' => + array ( + 0 => 'A7 Lite', + 1 => 'A70HB', + 2 => 'A70BHT', + 3 => 'A70BHT-LZ', + 4 => 'A70BHT-PR', + 5 => 'A70CHT', + 6 => 'A70H', + 7 => 'A70S', + 8 => 'A7EB', + 9 => 'a7272', + 10 => 'A7272+(HTC DesireZ)', + 11 => 'A7 HD', + 12 => 'A7*', + 13 => 'A7+', + 14 => 'A750', + 15 => 'A7272+', + 16 => 'A70(CY6T)', + 17 => 'A78h四核(C1V3)', + ), + '@A8' => + array ( + 0 => 'A845L', + 1 => 'A846L', + 2 => 'A851L', + 3 => 'A862W', + 4 => 'A80KSC!', + 5 => 'A80HF', + 6 => 'A89', + 7 => 'A87', + 8 => 'A853', + 9 => 'A853 Milestone', + 10 => 'A878 Duo', + 11 => 'A898 Duo', + 12 => 'A8HD', + 13 => 'A80håŒæ ¸(A4P9)', + 14 => 'A80 se??(M5MA)', + 15 => 'A80 se四核(M5MC)', + 16 => 'A80HD四核(C4H6)', + 17 => 'A88 mini四核(M1C5)', + 18 => 'A81E', + ), + '@A9' => + array ( + 0 => 'A995L', + 1 => 'A95', + 2 => 'A97i', + 3 => '(GIO-)?(GiONEE[- ])?A9$!', + 4 => 'A90S', + 5 => 'A953', + 6 => 'A955', + ), + '@AA' => + array ( + 0 => 'AA3-600', + ), + '@AC' => + array ( + 0 => '(AC|BC|LC|MT|RC|QS|VM|TS|OC)[0-9]{4,4}[A-Z]!!', + 1 => 'AC45BHE', + 2 => 'AC50BHE', + 3 => 'AC50DHE', + 4 => 'ACM3066-8', + 5 => '(Explay|X-tremer|ActiveD|Informer|Surfer)!!', + 6 => 'ACT2000', + 7 => 'Acqua', + ), + '@AD' => + array ( + 0 => 'ADVAN Q7A', + 1 => 'ADVAN E1C+', + 2 => 'ADVAN S3', + 3 => 'ADVAN S3+', + 4 => 'ADVAN S3A', + 5 => 'ADVAN S3C', + 6 => 'ADVAN S4', + 7 => 'ADVAN S4+', + 8 => 'ADVAN S4A', + 9 => 'ADVAN S4C', + 10 => 'ADVAN S4E', + 11 => 'ADVAN S5E', + 12 => 'ADVAN S5E Pro', + 13 => 'ADVAN S5H', + 14 => 'ADVAN S5I', + 15 => 'Advan S5K', + 16 => 'ADVAN S5M', + 17 => 'ADVAN S6A', + 18 => 'ADVAN T1G', + 19 => 'ADVAN T1J', + 20 => 'ADVAN T1J+', + 21 => 'ADVAN T1L', + 22 => 'ADVAN T2E', + 23 => 'ADVAN T2F', + 24 => 'ADVAN T3E+', + 25 => 'ADVAN T5C', + 26 => 'Advent Vega', + 27 => 'ADR3010', + 28 => 'AD683G', + 29 => '(HTC|PCD|USCC)?ADR[0-9]{4,4}!!', + 30 => 'Adam', + 31 => 'ADM816KC', + 32 => 'ADM816HC', + 33 => 'ADM712HC', + 34 => 'ADM8000KP A', + 35 => 'ADM8000KP B', + 36 => 'ADR8995!', + 37 => 'ADR910L', + 38 => 'ADR910L 4G', + 39 => 'ADR930L', + 40 => 'ADR930L 4G', + 41 => 'AD686G', + 42 => 'AD687G', + 43 => 'AD6893G', + ), + '@AE' => + array ( + 0 => 'Aero A2-110', + 1 => 'Aegis2', + ), + '@AF' => + array ( + 0 => 'AFTB', + 1 => 'AFTS', + 2 => 'AFTM', + ), + '@AG' => + array ( + 0 => 'AG Chrome Selfie', + 1 => 'AG CHROME ULTRA', + 2 => 'AG Tab 7 0', + 3 => 'AG Go-Tab Access', + 4 => 'AG Chrome Go Tab 7.0', + 5 => '(KATBL|Agora)!!', + ), + '@AI' => + array ( + 0 => 'aigoPad', + 1 => 'aigoPadM60', + 2 => 'AigoPad M60', + 3 => 'aigoPad M80D', + 4 => 'aigoPad M80E', + 5 => 'Ainovo Aurora-II', + 6 => 'Ainovo Flame (Nexus 7)', + 7 => 'AIRIS GN135', + 8 => 'AIRIS S211', + 9 => 'AIRIS TM51Q', + 10 => 'AIRIS TM54QM', + 11 => 'AIRIS TM55S', + 12 => 'AIRIS TM60D', + 13 => 'AIRIS TM350', + 14 => 'AIRIS TM400', + 15 => 'AIRIS TM475', + 16 => 'AIRIS TM421M', + 17 => 'AIRIS TM500', + 18 => 'AIRIS OnePAD 725', + 19 => 'AIRIS OnePAD700', + 20 => 'AIRIS OnePAD 730', + 21 => 'AirisOnePad1000', + 22 => 'AirBook TTJ702', + 23 => '(DNS )?(Airtab )?(E|M|MA|MF|MW|P|PC|PF)[0-9]{2,4}!!', + 24 => 'Air!!', + 25 => 'Aiki-4S', + 26 => 'Aiki-5', + ), + '@AK' => + array ( + 0 => 'AK330', + 1 => 'AK330s', + 2 => 'AKAI NEO', + 3 => 'AKAI N8800', + 4 => 'AKAI PHA-4800', + 5 => 'AKAIPHA 5800', + 6 => 'AKAI MIDMA-7002S', + ), + '@AL' => + array ( + 0 => 'alien jolla bionic', + 1 => 'alien ubuntu qt', + 2 => 'Alcatel A851L', + 3 => 'Alcatel one touch 908F', + 4 => 'Alcatel one touch 918', + 5 => 'Alcatel ONETOUCH 918', + 6 => 'ALCATEL OT 919', + 7 => 'Alcatel one touch 990', + 8 => 'Alcatel one touch 990S', + 9 => 'Alcatel OT M\'pop 5020D', + 10 => 'Alcor Access Q913M', + 11 => 'Alcor Zest Q813I', + 12 => 'Alcor Zest Q813IS', + 13 => 'Alcor Zest Q813IX', + 14 => 'Alcor Zest Q933R', + 15 => 'ALLVIEW A4ALL', + 16 => 'ALLVIEW A6 Quad', + 17 => 'ALLVIEW P1', + 18 => 'Allview P2', + 19 => 'ALLVIEW P4', + 20 => 'ALLVIEW P4i', + 21 => 'Allview P5', + 22 => 'Allview P5-Mini', + 23 => 'ALLVIEW P5 Quad', + 24 => 'ALLVIEW P5 Qmax', + 25 => 'ALLVIEW P6', + 26 => 'ALLVIEW P6 Quad', + 27 => 'ALLVIEW TX1 Quasar', + 28 => '(Allview|Alldro)!!', + 29 => 'Allwinner A10', + 30 => '(Highscreen|Alpha|Bay|Cosmo|Explosion|Power|Prime|Zera)!!', + 31 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + 32 => 'Alfa L', + 33 => 'Ally', + 34 => 'Altus 18', + 35 => 'Altus 24', + ), + '@AM' => + array ( + 0 => 'amd brazos', + 1 => 'amd persimmon', + 2 => 'Amlogic M1 reference board', + 3 => 'AML8726M', + 4 => 'AMLOGIC8726MX', + 5 => 'AM335XEVM', + 6 => 'AM335XEVM SK', + 7 => 'am3517evm', + 8 => 'AM437XEVM', + 9 => 'Amazon Kindle Fire!', + 10 => 'Amazon Otter', + 11 => 'Amazon OtterX', + 12 => 'Amazon Otter2', + 13 => 'Amazon Tate', + 14 => 'Amazon Jem', + 15 => 'AMI-TT2', + 16 => 'AMI-TT2C', + 17 => 'AMI-TT4', + 18 => 'AMI-TTFORCE', + 19 => 'AML-MX REF', + 20 => '(AMO-)?AMOI!!', + 21 => 'AMD120', + 22 => '(Amaze|Hitech)!!', + 23 => 'Amaze 4G', + 24 => '(Amazing|Fantastic)!!', + ), + '@AN' => + array ( + 0 => 'Android', + 1 => 'Android-for-Rockchip-2818', + 2 => 'AN7CG2', + 3 => 'AN7G2', + 4 => 'AN7G2DTE', + 5 => 'AN7G2I', + 6 => 'AN7G3', + 7 => 'AN7BG2', + 8 => 'AN7BG2DT', + 9 => 'AN7BG3', + 10 => 'AN7CG3', + 11 => 'AN7DG3', + 12 => 'AN7DG3B', + 13 => 'AN7DG3-CP', + 14 => 'AN7DG3ST-CP', + 15 => 'AN7FG3', + 16 => 'AN7HG3', + 17 => 'AN7IG3', + 18 => 'AN8G2', + 19 => 'AN8G2I', + 20 => 'AN8G3', + 21 => 'AN8BG2', + 22 => 'AN8BG3', + 23 => 'AN8CG3', + 24 => 'AN9G2', + 25 => 'AN9G2I', + 26 => 'AN9G3', + 27 => 'AN10G2', + 28 => 'AN10G2-KN', + 29 => 'AN10G2-LN', + 30 => 'AN10G2I', + 31 => 'AN10BG2', + 32 => 'AN10BG2DT', + 33 => 'AN10BG2I', + 34 => 'AN10BG3', + 35 => 'AN10BG3DT', + 36 => 'AN10CG3', + 37 => 'AN10DG3', + 38 => 'AN13FP', + 39 => 'AN8BG3-LZ', + 40 => 'AN10G2-LZ', + 41 => 'AN10BG3-LZ', + 42 => 'AN7DG3C', + 43 => '(iBall )?Andi!!', + 44 => 'AND1', + 45 => 'AND1E', + 46 => 'AND1E TV', + 47 => 'Android edition by sfr STARADDICT', + 48 => 'Android Edition Starnaute', + 49 => 'Android Edition StarText', + 50 => 'Android Edition StarTrail', + 51 => '(Smartfren|Andromax)!!', + 52 => 'Androtab 7', + 53 => '(Starway )?Andromeda!!', + 54 => '(Andy|Yezz)!!', + ), + '@AO' => + array ( + 0 => 'AOLE 828', + 1 => 'AOSON G18', + 2 => 'Aoson M11', + 3 => 'Aoson M19', + 4 => 'aoson m33', + 5 => 'aoson M33 3G', + 6 => 'AOSON M1016', + 7 => '(cm|aokp) tenderloin!', + ), + '@AP' => + array ( + 0 => 'App Runtime for Chrome', + 1 => 'apollo', + 2 => 'Apanda.A60!', + 3 => 'apanda-A80S', + 4 => 'apanda-A100', + 5 => 'apanda-A101', + 6 => 'Aprix D97+', + ), + '@AQ' => + array ( + 0 => '(bq|Aquaris|Edison|Maxwell)!!', + 1 => 'AQUILA 080-1008', + 2 => 'AQUILA 097-1006', + 3 => '(Intex )?Aqua!!', + 4 => 'AQUOS!!', + ), + '@AR' => + array ( + 0 => 'ARCHM901', + 1 => 'Arnova 7G2', + 2 => 'ARNOVA8G2', + 3 => 'Arnova 10G2', + 4 => 'ARNOVA 90G3', + 5 => 'ARNOVA 90 G4', + 6 => 'ARNOVA 97G4', + 7 => 'ARNOVA 101 G4', + 8 => 'ARCHOS 50PL', + 9 => 'ARCHOS 79XE', + 10 => 'Archos5', + 11 => 'ARCHOS 70it2', + 12 => 'ARCHOS 70it2G8', + 13 => 'Archos 80 Internet Tablet', + 14 => 'Archos 101 Internet Tablet', + 15 => 'Archos!!', + 16 => 'Artes D708', + 17 => 'Artes D821', + 18 => 'Artes i701', + 19 => 'ARTES I709', + 20 => 'Artes Q812', + 21 => 'Arya A1+', + 22 => 'Arya Z2', + 23 => 'ARMM2V', + 24 => 'ARMM3V', + 25 => 'ARIES 101', + 26 => 'ARIES 785', + 27 => 'Arc', + 28 => 'Arc S', + ), + '@AS' => + array ( + 0 => 'Astone A108', + 1 => 'aspire1000s', + 2 => 'Aspire!!', + 3 => 'ASK SP[0-9]{3,3}!!', + 4 => 'ASTRI', + 5 => 'asus laptop', + 6 => 'ASUS T20', + 7 => 'ASUS Pad ME370T', + 8 => 'Asus Fonepad ME371MG 8GB', + 9 => 'AST21', + 10 => 'asus google cube', + 11 => 'ASP-4300W', + 12 => 'ASP-4500Z', + 13 => 'ASP-5000H', + 14 => 'Asus A10', + 15 => '(Huawei|Ascend|HW-)!!', + 16 => 'AS740', + 17 => 'AS870 4G', + 18 => 'AS985', + 19 => 'AS650C', + 20 => 'Aster', + 21 => 'Aster T', + ), + '@AT' => + array ( + 0 => 'AT390', + 1 => 'AT102HC', + 2 => 'AT104GS', + 3 => 'AT107F', + 4 => 'AT108F', + 5 => 'AT197F', + 6 => 'AT10H-A10WP', + 7 => 'AT101-014', + 8 => 'AT101T-114', + 9 => 'AT1A*', + 10 => 'AT1C', + 11 => 'AT1C*', + 12 => 'AT1D', + 13 => 'AT1G*', + 14 => 'ATP515CKIT', + 15 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + 16 => 'aTab9.7 IPS', + 17 => 'AT735', + 18 => 'Atrix 2', + 19 => 'Atrix 2 WeifanZ', + 20 => 'Atrix 4G', + 21 => 'Atrix 4G ME860', + 22 => 'Atrix 4G MB860', + 23 => 'Atrix HD', + 24 => 'AtrixHD', + 25 => 'ATP7526', + 26 => 'ATP7683', + 27 => 'AT1S0', + 28 => 'AT7-A', + 29 => 'AT7-B', + 30 => 'AT7-C', + 31 => 'AT10-A', + 32 => 'AT10LE-A', + 33 => 'AT10PE-A', + 34 => 'AT100', + 35 => 'AT200', + 36 => 'AT270', + 37 => 'AT300', + 38 => 'AT300SE', + 39 => 'AT330', + 40 => 'AT374', + 41 => 'AT400', + 42 => 'AT470', + 43 => 'AT500', + 44 => 'AT500a', + 45 => 'AT503', + 46 => 'AT570', + 47 => 'AT703', + 48 => 'AT830', + 49 => 'AT-A[QS][0-9]{2,2}!!', + 50 => 'ATLAS W', + ), + '@AU' => + array ( + 0 => 'Aurora-II', + 1 => 'AUX!!', + 2 => '(Aura|iberry|AUXUS)!!', + 3 => 'AURUS III', + ), + '@AV' => + array ( + 0 => '(Ilium )?Avvio!!', + ), + '@AX' => + array ( + 0 => 'AX3Party', + 1 => 'AX4Nano plus', + 2 => '(Axioo[\\- ])?PICO!!', + 3 => '(AXPAD|Axxion)!!', + 4 => '(Bmobile )?AX[0-9]{3,4}!!', + 5 => 'AX7OO', + 6 => 'AX600C', + ), + '@AZ' => + array ( + 0 => 'Azumi!!', + 1 => '(AZ|BT)[0-9]{3,3}!!', + ), + '@B1' => + array ( + 0 => 'B1-[A0-9][0-9]{2,2}!!', + 1 => 'B15', + 2 => 'B15Q', + ), + '@B3' => + array ( + 0 => 'B3000', + ), + '@B9' => + array ( + 0 => 'B916C', + ), + '@BA' => + array ( + 0 => 'Bay Trail Generic Platform', + 1 => 'Bayley Bay', + 2 => 'baoxue', + 3 => 'Barnes & Noble Nook Tablet', + 4 => 'Barnes & Noble Nook HD', + 5 => 'Barnes & Noble Nook HD+', + 6 => '(Highscreen|Alpha|Bay|Cosmo|Explosion|Power|Prime|Zera)!!', + 7 => 'Backflip', + 8 => 'Backflip Me600', + 9 => 'Bambook S1', + 10 => 'BARRY', + 11 => 'BASE!!', + ), + '@BB' => + array ( + 0 => 'BB EH7', + 1 => 'BB EH7LE', + 2 => '(BB )?Q5$!', + 3 => '(BB )?Q10$!', + 4 => '(BB )?Z10$!', + 5 => '(BB )?Z30$!', + 6 => '(BBG-|VIV-)?vivo!!', + 7 => 'Bbox Miami', + ), + '@BC' => + array ( + 0 => 'bcm platform', + 1 => 'bcm7231', + 2 => 'bcm7425', + 3 => 'bcm7429', + 4 => 'bcm7435', + 5 => 'bcm7439', + 6 => 'bcm7445', + 7 => 'bcm7584', + 8 => 'BCM21654!', + 9 => 'BCM21664!', + 10 => 'BCM23550!', + 11 => 'BCM28145!', + 12 => 'BCM28155!', + 13 => '(AC|BC|LC|MT|RC|QS|VM|TS|OC)[0-9]{4,4}[A-Z]!!', + 14 => 'BC1003', + ), + '@BD' => + array ( + 0 => '(BDS|BHX|BKO)\\-!!', + ), + '@BE' => + array ( + 0 => 'BEAGLEBONE', + 1 => 'BeagleBone Black', + 2 => 'BEAGLEBONEBLACK', + 3 => 'BEAGLEBONEBLACK.A5C', + 4 => 'berlin', + 5 => 'berlin bg2!', + 6 => 'berlin generic!', + 7 => 'BenQ JD-130', + 8 => 'BenQ Android TV', + 9 => 'BenWee 5100', + 10 => 'BEE 9500', + 11 => 'BenQ!!', + 12 => 'BenWee!!', + 13 => 'BePhone UN030', + 14 => 'Best ?sonny!!', + 15 => 'BEAN 454', + 16 => 'beetle', + 17 => 'Beeline!!', + ), + '@BF' => + array ( + 0 => 'BF[ \\-]!!', + 1 => 'BFB!!', + 2 => 'BF[0-9]{2,2}00!!', + ), + '@BG' => + array ( + 0 => 'bg2 !', + 1 => 'bg2ct !', + 2 => 'bg2q4k !', + 3 => 'bg2qa0v4 !', + 4 => 'bg2qv4 !', + ), + '@BH' => + array ( + 0 => '(BDS|BHX|BKO)\\-!!', + ), + '@BI' => + array ( + 0 => 'bird75v2', + 1 => 'BioniQ!!', + 2 => 'Bird!!', + 3 => 'BizSmartPhone', + 4 => 'BIP-6000', + 5 => 'BIRDY', + ), + '@BK' => + array ( + 0 => '(BDS|BHX|BKO)\\-!!', + ), + '@BL' => + array ( + 0 => 'Blaze', + 1 => 'Blaze Tablet', + 2 => 'BlueStacks!', + 3 => 'BlackBerry Runtime for Android Apps', + 4 => 'BLACKBERRY P\'9982', + 5 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', + 6 => 'Blaze S180', + 7 => 'BLADE LE 70', + 8 => 'BLACK', + 9 => '(BLF-)?lephone!!', + 10 => 'Blackphone 2', + 11 => 'BLOOM', + 12 => '(ZTE )?Blade!!', + 13 => 'Blade(-V880|-opda)?$!', + 14 => 'BLADEII', + 15 => 'Blade2', + 16 => 'Blade III', + ), + '@BM' => + array ( + 0 => 'BMOBILE DASH 3.5', + 1 => '(Bmobile )?AX[0-9]{3,4}!!', + 2 => 'Bmobile T35AC', + 3 => 'BM999', + ), + '@BN' => + array ( + 0 => '(NOOK )?BNRV(200|300)!', + 1 => '(NOOK )?BNTV250!', + 2 => '(NOOK )?BNRV350!', + 3 => '(NOOK )?BNTV(400)!', + 4 => '(NOOK )?BNTV(600)!', + 5 => '(NOOK )?BNTV(800)!', + 6 => 'BN Nook HD', + 7 => 'BN NookHD+', + ), + '@BO' => + array ( + 0 => 'Boost', + 1 => 'BO-FRSP4', + 2 => 'BO-LFSPBS5', + 3 => 'BOVO S-F16', + 4 => 'BOWAY!!', + 5 => 'Bouygues Telecom Bs 351', + 6 => 'Bouygues Telecom Bs 402', + 7 => 'Bouygues Telecom Bs 403', + 8 => 'Bouygues Telecom Bs 451', + 9 => 'Boston 4G', + 10 => 'Boston', + ), + '@BP' => + array ( + 0 => 'BP710A', + ), + '@BQ' => + array ( + 0 => '(bq|Aquaris|Edison|Maxwell)!!', + 1 => 'BQS-4001', + 2 => 'BQS-4007', + 3 => 'BQS-4501 Bristol', + 4 => 'BQS-4510', + 5 => 'BQS-4515', + 6 => 'BQS-4516', + 7 => 'BQS-4552', + 8 => 'BQS-4555', + 9 => 'BQS-5005', + 10 => 'BQS-5009', + 11 => 'BQS-5001', + 12 => 'BQS-5010', + 13 => 'BQS-5011', + 14 => 'BQS-5500', + 15 => 'BQS-5505', + ), + '@BR' => + array ( + 0 => 'Bravo', + 1 => 'BRAVIA 2015', + 2 => 'BRAVIA 4K 2015', + 3 => 'BRAVIA 4K GB', + 4 => 'BroadSign Xpress!', + 5 => 'Broncho M7', + 6 => '(BRS-)?BROR!!', + 7 => 'BRAVIA', + ), + '@BS' => + array ( + 0 => 'Bs 451', + 1 => 'Bs 501', + 2 => 'Bs541', + 3 => 'BSTB-200C', + ), + '@BT' => + array ( + 0 => '(AZ|BT)[0-9]{3,3}!!', + ), + '@BU' => + array ( + 0 => 'BUSH!!', + 1 => 'Burst S280', + 2 => 'Butterfly S', + ), + '@C2' => + array ( + 0 => 'C2', + ), + '@C5' => + array ( + 0 => '(GIO-)?(GiONEE[- ])?C500!', + 1 => 'C525c', + ), + '@C6' => + array ( + 0 => 'C6 Duo', + 1 => 'C6Quad 4G', + 2 => '(GIO-)?(GiONEE[- ])?C600!', + 3 => '(GIO-)?(GiONEE[- ])?C610!', + 4 => '(GIO-)?(GiONEE[- ])?C620!', + ), + '@C7' => + array ( + 0 => 'C771', + 1 => '(GIO-)?(GiONEE[- ])?C700!', + ), + '@C8' => + array ( + 0 => 'C811 4G', + 1 => 'C8660', + 2 => '(GIO-)?(GiONEE[- ])?C800!', + 3 => 'C8[0-9]{3,3}!!', + 4 => 'C868', + ), + '@C9' => + array ( + 0 => 'C908', + ), + '@CA' => + array ( + 0 => 'Cardhu', + 1 => 'CA907AAC0G', + 2 => 'Camangi-Mangrove7', + 3 => 'CAPTIVA!!', + 4 => 'Carpad T5', + 5 => 'Carpad T61 2g', + 6 => 'CAL21', + 7 => 'CA201SP', + 8 => 'CA-201L', + 9 => 'Casper VIA!!', + 10 => 'CAT!!', + 11 => 'Candy TV', + 12 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + 13 => 'calgary', + 14 => 'Captivate-I897', + ), + '@CC' => + array ( + 0 => 'CCE SK352', + ), + '@CE' => + array ( + 0 => 'cedartrail', + 1 => 'CENTURION', + 2 => 'CENTURION 3', + 3 => 'Celkon!!', + ), + '@CH' => + array ( + 0 => 'Chacer', + 1 => 'ChangHong!!', + 2 => 'CHER!!', + 3 => 'Cherry Mobile Burst', + 4 => 'Cherry Life', + 5 => 'Cherry Razor', + 6 => 'Cherry Mobile Razor', + 7 => 'CHERRY SNAP', + 8 => 'Cherry Sonic', + 9 => 'Cherry thunder2.0', + 10 => 'Cherry Mobile Amber W380', + 11 => 'Cherry w500', + 12 => 'CHUWI!!', + 13 => 'CHONG!!', + 14 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + 15 => '(HW-|HUAWEI )?(CHC|KII)!!', + 16 => 'chagall', + ), + '@CI' => + array ( + 0 => 'cius', + 1 => 'CIUS-7!', + 2 => 'Citycall!!', + 3 => 'CINK', + 4 => 'CINK+', + 5 => 'CINK FIVE', + 6 => 'CINK KING', + 7 => 'CINK PEAX', + 8 => 'CINK PEAX+', + 9 => 'CINK PEAX 2', + 10 => 'CINK SLIM', + 11 => 'Cink Slim A', + 12 => 'Cink Slim B', + 13 => 'CINK SLIM 2', + ), + '@CJ' => + array ( + 0 => '(CJ-)?ThL!!', + ), + '@CL' => + array ( + 0 => 'Clarion Mirage 2', + 1 => '(Cloudfone|CloudPad|Excite|Thrill)!!', + 2 => 'Clanga 079-1016', + 3 => 'Clanga 097-2016', + 4 => 'Clanga SE 097-1008', + 5 => 'CLP281X', + 6 => 'Click', + 7 => '(Intex )?Cloud!!', + 8 => 'CLIQ', + 9 => 'CLIQ XT', + 10 => 'CLIQ2', + ), + '@CM' => + array ( + 0 => 'CMP!!', + 1 => '(cm|aokp) tenderloin!', + 2 => 'CM980', + 3 => 'CM990', + ), + '@CN' => + array ( + 0 => 'CnM!!', + 1 => 'CN51 [NQ]!', + ), + '@CO' => + array ( + 0 => 'Colibri-T20', + 1 => 'Commodore!!', + 2 => 'Commtiva-HD710', + 3 => 'Commtiva-N700', + 4 => 'Connspeed IP71', + 5 => '(Colorfly|CT[0-9]{3,3})!!', + 6 => 'Colors!!', + 7 => 'ConCorde!!', + 8 => 'Coolgen!!', + 9 => 'Coolpad!!', + 10 => 'COSHIP F2', + 11 => 'COWON!!', + 12 => 'COZCO C1 Plus', + 13 => 'Collo DG100', + 14 => 'Collo 2 DG120', + 15 => 'Connect-2G-2.0', + 16 => '(Highscreen|Alpha|Bay|Cosmo|Explosion|Power|Prime|Zera)!!', + 17 => 'Coquettish Red', + 18 => 'Comet', + 19 => 'Corvair', + 20 => 'COOLPIX S800c', + 21 => 'COOLPIX S810c', + 22 => 'Constellation V', + ), + '@CP' => + array ( + 0 => 'CP-DX!!', + 1 => 'CP3700A', + ), + '@CR' => + array ( + 0 => 'Crespo!', + 1 => 'CRESTA.CTP888', + 2 => 'Cross!!', + 3 => 'Crosscall!!', + 4 => '(HUAWEI )?(CRR|MATE|MT1|MT2|MT7|M200|NXT|Z100)!!', + 5 => 'CRONO 22', + 6 => 'Crescent', + ), + '@CS' => + array ( + 0 => 'CS-1A13', + 1 => '(CSL[- ])?(Spice[- ]?)?Mi(-| )?[0-9]{3,3}!!', + ), + '@CT' => + array ( + 0 => 'CT[0-9]{3,4}!!', + 1 => 'CT-1', + 2 => 'CT910', + 3 => '(Colorfly|CT[0-9]{3,3})!!', + 4 => 'CTP828BT', + 5 => '(GIO-)?(GiONEE[- ])?Ctrl V1!', + 6 => '(GIO-)?(GiONEE[- ])?Ctrl V2!', + 7 => '(GIO-)?(GiONEE[- ])?Ctrl V3!', + 8 => '(GIO-)?(GiONEE[- ])?Ctrl V4!', + 9 => '(GIO-)?(GiONEE[- ])?Ctrl V5!', + 10 => 'CT50', + 11 => 'CT720G', + 12 => 'CT720HD', + 13 => 'CT920', + 14 => 'CT1006', + ), + '@CU' => + array ( + 0 => 'CUBOT!!', + 1 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', + 2 => 'CUBE!!', + ), + '@CW' => + array ( + 0 => 'CW[- ]!!', + ), + '@CX' => + array ( + 0 => 'CX-919', + 1 => 'CX-921', + 2 => 'CX-921B', + 3 => 'CX-929', + 4 => 'CX-950', + 5 => 'CX-958', + ), + '@CY' => + array ( + 0 => 'Cydle M7!', + 1 => 'Cynus!!', + 2 => 'Cyclone!!', + ), + '@D0' => + array ( + 0 => 'D000-0000(13|18|19)-[0-9]{3,3}!', + 1 => 'D000-0000(01|07)-[A-Z][0-9]{2,2}!', + 2 => 'D000-000002-[W0][0-9]{2,2}!', + 3 => 'D000-0000(10|11)-N!', + 4 => 'D000 000043', + ), + '@D2' => + array ( + 0 => 'D2-[0-9]{3,3}!!', + 1 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + ), + '@D5' => + array ( + 0 => 'D530', + 1 => 'D539', + ), + '@D7' => + array ( + 0 => 'D709', + 1 => 'D7800AD', + 2 => 'D75E', + 3 => 'D70W', + ), + '@D8' => + array ( + 0 => 'D820X', + 1 => 'D816(d|t|v|w|x)!', + 2 => 'D820mt', + 3 => 'D80', + ), + '@D9' => + array ( + 0 => 'D9702', + 1 => 'D91', + ), + '@DA' => + array ( + 0 => 'DA2[0-9]{2,2}[A-Z]+!!', + 1 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', + 2 => 'Dakele A380', + 3 => 'DAKELE MC001', + 4 => 'DATAM803HC', + 5 => 'DATAM805HC', + 6 => 'DATAM819HD!', + 7 => 'DARKFULL', + 8 => 'DARKMOON', + 9 => 'DARKNIGHT', + 10 => 'DARKSIDE', + ), + '@DE' => + array ( + 0 => 'Dell!!', + 1 => 'Dell XCD35', + 2 => 'DEM752HCF', + 3 => '(DENVER-)?TA[CD]-[0-9]{4,5}!!', + 4 => 'deovo V5', + 5 => 'DESAY!!', + 6 => 'Desire 816', + 7 => 'Desire ?HD!', + 8 => 'Desire L by HTC', + 9 => 'Desire ?S!', + 10 => 'Desire X', + 11 => 'Desire Z', + 12 => 'Desire!', + 13 => 'DEOX', + 14 => 'DEFY', + 15 => 'Defy(\\+| Plus)!', + 16 => 'DEDY+', + 17 => 'Dext', + 18 => 'Devour', + 19 => 'DEM752NC', + ), + '@DI' => + array ( + 0 => 'Dialog!!', + 1 => 'DIT[0-9]{4,6}!!', + 2 => 'DIGICEL DL800', + 3 => '(Digma )?iD[jmnsx][DQ]?[0-9]*!!', + 4 => 'DISTAB9000R', + 5 => 'DishTV Smartvu A2020', + 6 => 'Discovery DG500', + 7 => 'Discovery2-DG500C', + 8 => 'DIAMOND D1', + 9 => 'DIAMOND S3', + ), + '@DJ' => + array ( + 0 => 'DJC Touchtab3', + 1 => 'DJC Touchtab4', + ), + '@DK' => + array ( + 0 => 'Dk1031', + ), + '@DL' => + array ( + 0 => 'DLX', + 1 => 'DLXU', + 2 => 'dL1', + ), + '@DM' => + array ( + 0 => 'DM0[0-9]{2,2}(K|SH)!!', + 1 => 'DMC-CM1', + 2 => 'DM-01H', + ), + '@DN' => + array ( + 0 => 'DNS Airbook TYT701', + 1 => '(DNS )?(Airtab )?(E|M|MA|MF|MW|P|PC|PF)[0-9]{2,4}!!', + 2 => 'DNS S!!', + 3 => 'DNS4502M', + ), + '@DO' => + array ( + 0 => 'Dooderbutt!', + 1 => 'domod G20', + 2 => 'DOOGEE-TITANS-DG150', + 3 => 'DOOV!!', + 4 => 'Doro Liberto!!', + 5 => 'Doro 8030', + 6 => 'Doro 824', + 7 => 'Dolphin 70e Black', + 8 => 'Docomo HT-03A', + ), + '@DP' => + array ( + 0 => 'DPS Dream 7', + 1 => 'DPS Dream 9', + 2 => 'DP-X1', + 3 => 'DPH-D710', + ), + '@DR' => + array ( + 0 => 'Dream', + 1 => '(GIO-)?(GiONEE[- ])?Dream D1!', + 2 => 'Droid Incredible', + 3 => 'DroniX-0.5', + 4 => 'Droid', + 5 => 'DROID', + 6 => 'DROID ?2!', + 7 => 'DROID ?3!', + 8 => 'DROID ?4!', + 9 => 'DroidPro', + 10 => 'DROID Pro', + 11 => 'DROID HD', + 12 => 'DROID BIONIC!', + 13 => 'DROID RAZR HD!', + 14 => 'DROID ?RAZR!', + 15 => 'DROID SPYDER', + 16 => 'DROID ?X2!', + 17 => 'DROID ?X!', + 18 => 'DROIDZ Duo', + 19 => 'DROIDZ Active 3G', + 20 => 'DROIDZ ATOM S', + 21 => 'DROIDZ Beat TV', + 22 => 'DROIDZ Drive+', + 23 => 'DROIDZ Excel', + 24 => 'DROIDZ Excite', + 25 => 'DROIDZ Force', + 26 => 'DROIDZ Match TV', + 27 => 'DROIDZ Mini Q', + 28 => 'DROIDZ Portal X', + 29 => 'DROIDZ Quad', + 30 => 'DROIDZ Race', + 31 => 'DROIDZ Race X', + 32 => 'DROIDZ Sport', + 33 => 'DROIDZ Ultimate', + ), + '@DS' => + array ( + 0 => 'Dslide!!', + ), + '@DT' => + array ( + 0 => 'dtab01', + ), + '@DY' => + array ( + 0 => 'dyno 7.80', + 1 => 'dyno 7.85', + 2 => 'Dynamic Fun', + 3 => 'Dynamic Jump', + 4 => 'Dynamic Maxi', + 5 => 'Dynamic Milo', + 6 => 'Dynamic Racing 2', + 7 => 'Dynamic Raging Go', + 8 => 'Dynamic Shake', + 9 => 'Dynamic Wide', + 10 => 'Dynamic Wing', + 11 => 'Dynamic Racing 3', + ), + '@E' => + array ( + 0 => '(DNS )?(Airtab )?(E|M|MA|MF|MW|P|PC|PF)[0-9]{2,4}!!', + ), + '@E-' => + array ( + 0 => '(E-Boda|Eruption|Essential|Supreme|Storm|Revo)!!', + ), + '@E1' => + array ( + 0 => 'E1 v360', + 1 => 'E170BS', + 2 => 'E1031', + 3 => 'e1808 v75!', + 4 => 'e1109 v73!', + ), + '@E2' => + array ( + 0 => 'E2 Jump', + 1 => 'E239', + 2 => 'E270BSA', + 3 => 'E2281', + 4 => '(Moto)?E2$!', + 5 => '(Moto)?E2\\(4G-LTE\\)$!', + ), + '@E3' => + array ( + 0 => 'E3 Living', + 1 => 'E3 Sign', + 2 => '(GIO-)?(GiONEE[- ])?E3T!', + 3 => '(GIO-)?(GiONEE[- ])?E3$!', + ), + '@E4' => + array ( + 0 => 'E4', + 1 => 'E4 Lite', + ), + '@E5' => + array ( + 0 => '(GIO-)?(GiONEE[- ])?E5$!', + ), + '@E6' => + array ( + 0 => '(GIO-)?(GiONEE[- ])?E6mini!', + 1 => '(GIO-)?(GiONEE[- ])?E6$!', + 2 => '(GIO-)?(GiONEE[- ])?E6T$!', + 3 => 'E6782', + 4 => 'E650', + 5 => 'E60w', + ), + '@E7' => + array ( + 0 => 'E70[0-9]{2,2}H[DG]!!', + 1 => '(GIO-)?(GiONEE[- ])?E7$!', + 2 => 'E780', + 3 => 'E731', + ), + '@E8' => + array ( + 0 => 'E80[0-9]{2,2}H[DG]!!', + 1 => 'E860', + 2 => 'E800', + 3 => 'E815', + 4 => 'E812', + 5 => 'E810', + ), + '@E9' => + array ( + 0 => 'E900', + 1 => 'E912', + ), + '@EA' => + array ( + 0 => 'eagle75v1 2', + 1 => 'EasyPhone EP5', + 2 => 'EasyPad 971', + ), + '@EB' => + array ( + 0 => 'EBEN!!', + 1 => 'EBEST!!', + 2 => 'EB-4063-X', + 3 => 'EB-A71GJ', + 4 => 'EB-W51GJ', + 5 => 'EB-WX1GJ', + 6 => 'EB-L76G-B', + ), + '@EC' => + array ( + 0 => '(Hisense )?(LED[0-9]{2,2}(G|K|L|EC|XT)[0-9]{2,3})!', + 1 => 'Eco9 v1', + 2 => 'Eco9 v2', + 3 => 'Eco11 v2', + ), + '@ED' => + array ( + 0 => '(bq|Aquaris|Edison|Maxwell)!!', + 1 => 'edgejr', + 2 => 'edenTAB ET-701', + ), + '@EE' => + array ( + 0 => 'eeepc', + 1 => 'eee 701', + 2 => '(Eee Pad )?Transformer Prime TF201!', + ), + '@EF' => + array ( + 0 => 'EFM710A', + ), + '@EG' => + array ( + 0 => 'EG98', + 1 => 'EG680', + 2 => 'EG968B', + ), + '@EI' => + array ( + 0 => 'EIS01PT', + ), + '@EK' => + array ( + 0 => 'EK-[GK][CN][0-9]{3,3}!!', + ), + '@EL' => + array ( + 0 => 'EL72B', + 1 => 'ELF-II', + 2 => 'Elephone!!', + 3 => 'ELIYA S1', + 4 => 'Elektra L', + 5 => 'Elektra XL', + 6 => 'Electrify', + 7 => 'ELUGA I2', + 8 => 'ELUGA Turbo', + 9 => 'Elite', + 10 => 'Elite 11', + 11 => '(SENCOR )?ELEMENT!!', + ), + '@EM' => + array ( + 0 => 'EM63', + 1 => 'EM01F', + 2 => 'EMR1879', + ), + '@EN' => + array ( + 0 => 'Endeavour!!', + 1 => 'ENR U', + 2 => 'EndeavorU', + 3 => 'Enjoy 71', + 4 => 'Enjoy 7 Plus', + ), + '@EP' => + array ( + 0 => 'EPAD', + 1 => 'epade!!', + ), + '@EQ' => + array ( + 0 => 'equiso.smart.tv.pro', + ), + '@ER' => + array ( + 0 => '(E-Boda|Eruption|Essential|Supreme|Storm|Revo)!!', + 1 => 'Eris', + 2 => 'ERIS ADR6200', + ), + '@ES' => + array ( + 0 => '(E-Boda|Eruption|Essential|Supreme|Storm|Revo)!!', + 1 => 'eSTAR!!', + ), + '@ET' => + array ( + 0 => 'ETBW11AA', + 1 => 'Etel!!', + 2 => 'ET1', + 3 => 'Etisalat Smartphone', + ), + '@EV' => + array ( + 0 => 'EVOKE HDI Box', + 1 => 'EVDO1000', + 2 => 'EvoPAD!!', + 3 => 'EVERPAD SC-710', + 4 => 'Ever!!', + 5 => '(EVAS )?EVERCOSS[- ]A!!', + 6 => 'EVO', + 7 => 'Evo HD2', + 8 => 'EVO ?3D!', + 9 => 'EVO 4G', + 10 => 'Evo V 4G', + 11 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + 12 => '(EV|KM)-[ES][0-9]{3,3}!!', + 13 => 'Event', + 14 => 'EVERY35', + ), + '@EX' => + array ( + 0 => 'Exynos5410', + 1 => '(Cloudfone|CloudPad|Excite|Thrill)!!', + 2 => '(Explay|X-tremer|ActiveD|Informer|Surfer)!!', + 3 => '(Highscreen|Alpha|Bay|Cosmo|Explosion|Power|Prime|Zera)!!', + 4 => 'Explorer A310e', + ), + '@EZ' => + array ( + 0 => 'Ezcast', + 1 => 'eZee!!', + ), + '@F&' => + array ( + 0 => 'F&U ETB!!', + ), + '@F-' => + array ( + 0 => 'F-[0-9]{2,2}[A-Z]!!', + 1 => 'F-074', + ), + '@F1' => + array ( + 0 => 'f12[a-z]{3,3}!!', + 1 => '(GIO-)?(GiONEE[- ])?F103!', + 2 => 'F100', + 3 => 'F13', + 4 => 'F15', + ), + '@F3' => + array ( + 0 => '(GIO-)?(GiONEE[- ])?F301!', + ), + '@F5' => + array ( + 0 => 'F50Q', + ), + '@F6' => + array ( + 0 => 'F600', + ), + '@FA' => + array ( + 0 => 'FAR7', + 1 => 'FAR70B', + 2 => 'FARTM933KZ', + 3 => 'Fablet F3', + 4 => '(Amazing|Fantastic)!!', + ), + '@FC' => + array ( + 0 => 'FC6100', + ), + '@FD' => + array ( + 0 => 'FDT!!', + ), + '@FH' => + array ( + 0 => 'FHMD001', + ), + '@FI' => + array ( + 0 => 'FIH-FB0', + 1 => 'FIH-!!', + 2 => 'Find 5', + 3 => 'FIND7', + ), + '@FJ' => + array ( + 0 => 'FJ[LT][0-9]{2,2}!!', + 1 => 'FJJB091', + ), + '@FL' => + array ( + 0 => 'Flo', + 1 => 'Flounder', + 2 => 'Flame2', + 3 => 'Flare S100', + 4 => 'Flare 2.0', + 5 => 'Flare 2.1', + 6 => 'Flare2X', + 7 => 'Fly F[0-9]{2,3}!!', + 8 => 'Fly Phoenix 2', + 9 => 'Fly Ego Art 2', + 10 => '(Fly )?IQ ?[0-9]{3,4}!!', + 11 => 'Flylife!!', + 12 => 'Fly Flylife Web 7.85 Slim', + 13 => 'Flyer', + 14 => 'Flair P8', + ), + '@FN' => + array ( + 0 => '(tablet )?fnac!!', + ), + '@FO' => + array ( + 0 => 'Forward Active', + 1 => 'Forward Art', + 2 => 'Forward Escape', + 3 => 'Forward Endurance', + 4 => 'ForwardEndurance', + 5 => 'FORWARD EVOLVE', + 6 => 'Forward Infinity', + 7 => 'Forward Next', + 8 => 'Forward Prime', + 9 => 'Forward Racing 3', + 10 => 'Forward Ruby', + 11 => 'ForwardRuby', + 12 => 'Forward Shake', + 13 => 'ForwardXtreme', + 14 => 'Forward Young', + 15 => 'ForwardZero', + 16 => 'Forward 5 5', + 17 => 'Forward 5.5', + 18 => 'Folio 100', + 19 => 'folio100', + ), + '@FP' => + array ( + 0 => 'FP1', + 1 => 'FP1U', + 2 => 'FP2', + ), + '@FR' => + array ( + 0 => 'Freelander I20', + 1 => '(MODECOM )?FreeTAB!!', + ), + '@FS' => + array ( + 0 => 'FS403', + ), + '@FU' => + array ( + 0 => 'full Android on Microsoft Windows, pad, pc, n*books', + 1 => 'Fusion Bolt', + 2 => 'FUSIONideos', + ), + '@FW' => + array ( + 0 => 'FWS[0-9]{3,3}!!', + ), + '@FZ' => + array ( + 0 => 'FZ-A1(A|B)!', + 1 => 'FZ-B2(B|D)!', + 2 => 'FZ-N1', + 3 => 'FZ-X1', + ), + '@G ' => + array ( + 0 => 'G Watch', + 1 => 'G Watch R', + ), + '@G0' => + array ( + 0 => 'G0775', + ), + '@G1' => + array ( + 0 => 'G1-715', + 1 => 'G1-725', + 2 => 'G100W', + 3 => 'G17(B5DV)', + 4 => 'G17(B7DV)', + 5 => 'G17h 3G??(K5E2)', + 6 => 'G17h 3G??(K6E2', + 7 => 'G17h 3G四核(K5E2)', + 8 => 'G17h 3G四核(K6E2)', + 9 => 'G17s 3G', + 10 => 'G17s 3G??(K5E5)', + 11 => 'G17s 3G四核(K5E5)', + 12 => 'G17s 3G四核(K5E4)', + 13 => 'G17s 3G四核(K5E3)', + 14 => 'G18 3G四核(C6B9)', + 15 => 'G18mini(C5B9)', + 16 => 'G18d 3G四核(D3A2)', + 17 => 'G18d mini(FV2C)', + ), + '@G2' => + array ( + 0 => 'G2S', + 1 => 'G2SMNT', + ), + '@G3' => + array ( + 0 => '(Moto)?G3$!', + 1 => '(Moto)?G3-TE$!', + 2 => 'G3SMNTS22', + 3 => 'G3SMNTS23', + ), + '@G6' => + array ( + 0 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + ), + '@G7' => + array ( + 0 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + ), + '@G9' => + array ( + 0 => 'G9', + ), + '@GA' => + array ( + 0 => '(Google )?Galaxy Nexus!', + 1 => 'Galaxy S4 Google Editon', + 2 => 'Garmin!!', + 3 => 'Galaxy!!', + ), + '@GE' => + array ( + 0 => 'generic', + 1 => 'generic x86', + 2 => 'Gear Live', + 3 => 'Genius!!', + 4 => '(GP-|Geeksphone)!!', + 5 => 'Gemei!!', + 6 => 'GEM[0-9]{4,4}!!', + 7 => 'GETAWAY', + ), + '@GF' => + array ( + 0 => 'GFIVE!!', + ), + '@GH' => + array ( + 0 => 'Ghost', + 1 => 'GHIA!!', + ), + '@GI' => + array ( + 0 => '(Gsmart|Gigabyte|Rio)!!', + 1 => 'Gigaset!!', + 2 => '(GIO-)?(GiONEE[- ])?A9$!', + 3 => '(GIO-)?(GiONEE[- ])?C500!', + 4 => '(GIO-)?(GiONEE[- ])?C600!', + 5 => '(GIO-)?(GiONEE[- ])?C610!', + 6 => '(GIO-)?(GiONEE[- ])?C620!', + 7 => '(GIO-)?(GiONEE[- ])?C700!', + 8 => '(GIO-)?(GiONEE[- ])?C800!', + 9 => '(GIO-)?(GiONEE[- ])?Dream D1!', + 10 => '(GIO-)?(GiONEE[- ])?E3T!', + 11 => '(GIO-)?(GiONEE[- ])?E3$!', + 12 => '(GIO-)?(GiONEE[- ])?E5$!', + 13 => '(GIO-)?(GiONEE[- ])?E6mini!', + 14 => '(GIO-)?(GiONEE[- ])?E6$!', + 15 => '(GIO-)?(GiONEE[- ])?E6T$!', + 16 => '(GIO-)?(GiONEE[- ])?E7$!', + 17 => '(GIO-)?(GiONEE[- ])?F103!', + 18 => '(GIO-)?(GiONEE[- ])?F301!', + 19 => '(GIO-)?(GiONEE[- ])?GN5001!', + 20 => '(GIO-)?(GiONEE[- ])?GN5002!', + 21 => '(GIO-)?(GiONEE[- ])?GN8001!', + 22 => '(GIO-)?(GiONEE[- ])?GN9000!', + 23 => '(GIO-)?(GiONEE[- ])?GN9001!', + 24 => '(GIO-)?(GiONEE[- ])?GN9002!', + 25 => '(GIO-)?(GiONEE[- ])?GN9004!', + 26 => '(GIO-)?(GiONEE[- ])?GN9005!', + 27 => '(GIO-)?(GiONEE[- ])?GN9006!', + 28 => '(GIO-)?(GiONEE[- ])?GN9007!', + 29 => '(GIO-)?(GiONEE[- ])?GN9008!', + 30 => '(GIO-)?(GiONEE[- ])?GN9010!', + 31 => '(GIO-)?(GiONEE[- ])?GN100T!', + 32 => '(GIO-)?(GiONEE[- ])?GN100!', + 33 => '(GIO-)?(GiONEE[- ])?GN105!', + 34 => '(GIO-)?(GiONEE[- ])?GN106!', + 35 => '(GIO-)?(GiONEE[- ])?GN107!', + 36 => '(GIO-)?(GiONEE[- ])?GN108!', + 37 => '(GIO-)?(GiONEE[- ])?GN109!', + 38 => '(GIO-)?(GiONEE[- ])?GN135!', + 39 => '(GIO-)?(GiONEE[- ])?GN136!', + 40 => '(GIO-)?(GiONEE[- ])?GN137!', + 41 => '(GIO-)?(GiONEE[- ])?GN139!', + 42 => '(GIO-)?(GiONEE[- ])?GN150!', + 43 => '(GIO-)?(GiONEE[- ])?GN151!', + 44 => '(GIO-)?(GiONEE[- ])?GN152!', + 45 => '(GIO-)?(GiONEE[- ])?GN160T!', + 46 => '(GIO-)?(GiONEE[- ])?GN160!', + 47 => '(GIO-)?(GiONEE[- ])?GN168T!', + 48 => '(GIO-)?(GiONEE[- ])?GN170!', + 49 => '(GIO-)?(GiONEE[- ])?GN180!', + 50 => '(GIO-)?(GiONEE[- ])?GN181!', + 51 => '(GIO-)?(GiONEE[- ])?GN200!', + 52 => '(GIO-)?(GiONEE[- ])?GN205!', + 53 => '(GIO-)?(GiONEE[- ])?GN210!', + 54 => '(GIO-)?(GiONEE[- ])?GN305!', + 55 => '(GIO-)?(GiONEE[- ])?GN320!', + 56 => '(GIO-)?(GiONEE[- ])?GN360!', + 57 => '(GIO-)?(GiONEE[- ])?GN380!', + 58 => '(GIO-)?(GiONEE[- ])?GN600!', + 59 => '(GIO-)?(GiONEE[- ])?GN700T!', + 60 => '(GIO-)?(GiONEE[- ])?GN700W!', + 61 => '(GIO-)?(GiONEE[- ])?GN705T!', + 62 => '(GIO-)?(GiONEE[- ])?GN705W!', + 63 => '(GIO-)?(GiONEE[- ])?GN706L!', + 64 => '(GIO-)?(GiONEE[- ])?GN708T!', + 65 => '(GIO-)?(GiONEE[- ])?GN708W!', + 66 => '(GIO-)?(GiONEE[- ])?GN787!', + 67 => '(GIO-)?(GiONEE[- ])?GN800!', + 68 => '(GIO-)?(GiONEE[- ])?GN810!', + 69 => '(GIO-)?(GiONEE[- ])?GN818T!', + 70 => '(GIO-)?(GiONEE[- ])?GN858!', + 71 => '(GIO-)?(GiONEE[- ])?GN868!', + 72 => '(GIO-)?(GiONEE[- ])?GN878!', + 73 => 'Gionee M1', + 74 => 'Gionee M2', + 75 => 'Gionee M3S', + 76 => 'Gionee M5', + 77 => '(GIO-)?(GiONEE[- ])?S101!', + 78 => 'GiONEE TD500', + 79 => '(GIO-)?(GiONEE[- ])?V182!', + 80 => '(GIO-)?(GiONEE[- ])?V185!', + 81 => '(GIO-)?(GiONEE[- ])?V188!', + 82 => '(GIO-)?(GiONEE[- ])?W800!', + 83 => '(GIO-)?(GiONEE[- ])?X817!', + 84 => '(GIO-)?(GiONEE[- ])?Ctrl V1!', + 85 => '(GIO-)?(GiONEE[- ])?Ctrl V2!', + 86 => '(GIO-)?(GiONEE[- ])?Ctrl V3!', + 87 => '(GIO-)?(GiONEE[- ])?Ctrl V4!', + 88 => '(GIO-)?(GiONEE[- ])?Ctrl V5!', + 89 => '(GIO-)?(GiONEE[- ])?Pioneer P1!', + 90 => '(GIO-)?(GiONEE[- ])?Pioneer P2!', + 91 => '(GIO-)?(GiONEE[- ])?Pioneer P3!', + 92 => '(GIO-)?(GiONEE[- ])?Pioneer P4!', + 93 => 'Gionee P3', + 94 => 'Gionee P4', + 95 => 'GiONEE S7', + 96 => '(GIO-)?(GiONEE[- ])?Gpad G1!', + 97 => '(GIO-)?(GiONEE[- ])?Gpad G2!', + 98 => '(GIO-)?(GiONEE[- ])?Gpad G3!', + 99 => 'GinDream/GinMagic', + ), + '@GK' => + array ( + 0 => 'GK802', + ), + '@GL' => + array ( + 0 => 'Glass 1', + 1 => 'GLADIATOR', + 2 => 'GLADIATOR-2', + 3 => 'GLADIATOR 3', + 4 => 'GLADIATOR 4', + 5 => 'Glory', + 6 => 'Glory 2', + 7 => 'Glory3', + 8 => 'GLORY 4', + 9 => 'GloryG1000', + 10 => 'GL-900', + 11 => 'GLX!!', + 12 => 'GL07S', + ), + '@GM' => + array ( + 0 => 'GM FOX', + ), + '@GN' => + array ( + 0 => '(GIO-)?(GiONEE[- ])?GN5001!', + 1 => '(GIO-)?(GiONEE[- ])?GN5002!', + 2 => '(GIO-)?(GiONEE[- ])?GN8001!', + 3 => '(GIO-)?(GiONEE[- ])?GN9000!', + 4 => '(GIO-)?(GiONEE[- ])?GN9001!', + 5 => '(GIO-)?(GiONEE[- ])?GN9002!', + 6 => '(GIO-)?(GiONEE[- ])?GN9004!', + 7 => '(GIO-)?(GiONEE[- ])?GN9005!', + 8 => '(GIO-)?(GiONEE[- ])?GN9006!', + 9 => '(GIO-)?(GiONEE[- ])?GN9007!', + 10 => '(GIO-)?(GiONEE[- ])?GN9008!', + 11 => '(GIO-)?(GiONEE[- ])?GN9010!', + 12 => '(GIO-)?(GiONEE[- ])?GN100T!', + 13 => '(GIO-)?(GiONEE[- ])?GN100!', + 14 => '(GIO-)?(GiONEE[- ])?GN105!', + 15 => '(GIO-)?(GiONEE[- ])?GN106!', + 16 => '(GIO-)?(GiONEE[- ])?GN107!', + 17 => '(GIO-)?(GiONEE[- ])?GN108!', + 18 => '(GIO-)?(GiONEE[- ])?GN109!', + 19 => '(GIO-)?(GiONEE[- ])?GN135!', + 20 => '(GIO-)?(GiONEE[- ])?GN136!', + 21 => '(GIO-)?(GiONEE[- ])?GN137!', + 22 => '(GIO-)?(GiONEE[- ])?GN139!', + 23 => '(GIO-)?(GiONEE[- ])?GN150!', + 24 => '(GIO-)?(GiONEE[- ])?GN151!', + 25 => '(GIO-)?(GiONEE[- ])?GN152!', + 26 => '(GIO-)?(GiONEE[- ])?GN160T!', + 27 => '(GIO-)?(GiONEE[- ])?GN160!', + 28 => '(GIO-)?(GiONEE[- ])?GN168T!', + 29 => '(GIO-)?(GiONEE[- ])?GN170!', + 30 => '(GIO-)?(GiONEE[- ])?GN180!', + 31 => '(GIO-)?(GiONEE[- ])?GN181!', + 32 => '(GIO-)?(GiONEE[- ])?GN200!', + 33 => '(GIO-)?(GiONEE[- ])?GN205!', + 34 => '(GIO-)?(GiONEE[- ])?GN210!', + 35 => '(GIO-)?(GiONEE[- ])?GN305!', + 36 => '(GIO-)?(GiONEE[- ])?GN320!', + 37 => '(GIO-)?(GiONEE[- ])?GN360!', + 38 => '(GIO-)?(GiONEE[- ])?GN380!', + 39 => '(GIO-)?(GiONEE[- ])?GN600!', + 40 => '(GIO-)?(GiONEE[- ])?GN700T!', + 41 => '(GIO-)?(GiONEE[- ])?GN700W!', + 42 => '(GIO-)?(GiONEE[- ])?GN705T!', + 43 => '(GIO-)?(GiONEE[- ])?GN705W!', + 44 => '(GIO-)?(GiONEE[- ])?GN706L!', + 45 => '(GIO-)?(GiONEE[- ])?GN708T!', + 46 => 'GN 708T', + 47 => '(GIO-)?(GiONEE[- ])?GN708W!', + 48 => '(GIO-)?(GiONEE[- ])?GN787!', + 49 => '(GIO-)?(GiONEE[- ])?GN800!', + 50 => '(GIO-)?(GiONEE[- ])?GN810!', + 51 => '(GIO-)?(GiONEE[- ])?GN818T!', + 52 => '(GIO-)?(GiONEE[- ])?GN858!', + 53 => '(GIO-)?(GiONEE[- ])?GN868!', + 54 => '(GIO-)?(GiONEE[- ])?GN878!', + 55 => 'Gnappo Ideos', + ), + '@GO' => + array ( + 0 => 'google sdk', + 1 => 'Google Ion', + 2 => '(Google )?Nexus S!', + 3 => '(Google )?Galaxy Nexus!', + 4 => '(Google )?Nexus ?4!', + 5 => '(Google )?Nexus ?5!', + 6 => '(Google )?Nexus ?6!', + 7 => '(Google )?Nexus ?7 2013!', + 8 => '(Google )?Nexus ?7!', + 9 => '(Google )?Nexus ?9!', + 10 => '(Google )?Nexus ?10!', + 11 => 'google cube', + 12 => 'GOCL!!', + 13 => 'GO Live!!', + 14 => 'GOOPHONE!!', + 15 => 'GO !!', + 16 => 'GOA', + 17 => 'GO778', + 18 => 'GO980', + 19 => 'Gomobile GO1001', + ), + '@GP' => + array ( + 0 => '(GP-|Geeksphone)!!', + 1 => 'GP-431', + 2 => 'GP-720', + 3 => 'GPLUS GN708W', + 4 => 'GPLUS N809', + 5 => '(GIO-)?(GiONEE[- ])?Gpad G1!', + 6 => '(GIO-)?(GiONEE[- ])?Gpad G2!', + 7 => '(GIO-)?(GiONEE[- ])?Gpad G3!', + ), + '@GR' => + array ( + 0 => 'Grouper', + 1 => 'GR-TB!!', + 2 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + 3 => 'greenridge', + 4 => 'Graphos A10', + 5 => '(ZTE )?Grand!!', + 6 => 'Grand X', + 7 => 'Grand X In', + 8 => 'Grand X Intel', + 9 => 'Grand X Pro', + ), + '@GS' => + array ( + 0 => 'GS01', + 1 => '(Gsmart|Gigabyte|Rio)!!', + 2 => 'GS02', + 3 => 'GS03', + ), + '@GT' => + array ( + 0 => 'GT-I9505G', + 1 => 'GT-810', + 2 => 'GT-I7105', + 3 => 'GT-I9810', + 4 => 'GT-[HN][0-9]{4,4}!!', + 5 => 'GT-9000', + 6 => 'GT-[0-9]{4,4}!!', + 7 => 'GT-i9377', + 8 => 'GT-T9500', + 9 => 'GT540', + 10 => 'GT540f', + 11 => 'GTV100', + 12 => 'GT-B[0-9]{4,4}!!', + 13 => 'GT-I[0-9]{3,4}!!', + 14 => 'GT-N[0-9]{4,4}!!', + 15 => 'GT-P[0-9]{4,4}!!', + 16 => 'GT-S[0-9]{4,4}!!', + 17 => 'GT-T959!', + 18 => 'GT9100', + 19 => 'GTablet', + 20 => 'GtabComb', + ), + '@GV' => + array ( + 0 => 'GVON 898', + ), + '@GW' => + array ( + 0 => 'GW620', + ), + '@GX' => + array ( + 0 => 'GX1210V TV', + ), + '@H1' => + array ( + 0 => 'H120', + ), + '@H2' => + array ( + 0 => 'H2000+', + ), + '@H3' => + array ( + 0 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + ), + '@H6' => + array ( + 0 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + ), + '@H7' => + array ( + 0 => 'H701', + 1 => 'H7100', + 2 => 'H7500+', + ), + '@H8' => + array ( + 0 => 'H8 Life', + 1 => 'H866C', + 2 => 'H882L', + ), + '@H9' => + array ( + 0 => 'H9500', + ), + '@HA' => + array ( + 0 => 'HammerHead', + 1 => '(Haier[- ])?H[ETW]- ?[A-Z][0-9]!!', + 2 => 'Haier-W700', + 3 => 'Haier-SY0880', + 4 => 'HannsComb', + 5 => 'Hannspadd', + 6 => 'Hayabusa', + ), + '@HB' => + array ( + 0 => 'HB-100 DASAN', + 1 => 'HB-100 DASAN Networks, Inc.', + 2 => 'HB-1000', + ), + '@HD' => + array ( + 0 => 'HD2', + 1 => 'HD2 LEO', + 2 => 'HD7 Pro', + ), + '@HE' => + array ( + 0 => 'HEDY!!', + 1 => 'HERO H7500+', + 2 => 'Hero', + 3 => 'HERO CDMA', + 4 => 'HERO200', + ), + '@HI' => + array ( + 0 => '(Highscreen|Alpha|Bay|Cosmo|Explosion|Power|Prime|Zera)!!', + 1 => 'HIKe!!', + 2 => 'HILIVE H7', + 3 => '(HS-)?Hisense!!', + 4 => 'Hisense AD686G', + 5 => '(Hisense )?(LED[0-9]{2,2}(G|K|L|EC|XT)[0-9]{2,3})!', + 6 => 'Hisense Google TV TV', + 7 => 'hisense gx1200v', + 8 => '(Amaze|Hitech)!!', + 9 => 'HITO HT-3', + 10 => 'Hikari-iFrame!', + 11 => 'HIGHWAY', + 12 => 'HIGHWAY SIGNS', + ), + '@HK' => + array ( + 0 => 'HKPHONE H8-3G', + ), + '@HL' => + array ( + 0 => 'HLV-T!!', + ), + '@HM' => + array ( + 0 => 'HMP8100 ATV 93', + 1 => 'HMP8100 ATV INT', + 2 => 'HM 1', + 3 => 'HM 1A', + 4 => 'HM 1AC', + 5 => 'HM 1S', + 6 => 'HM 1SC', + 7 => 'HM 1SLTETD', + 8 => 'HM 1STD', + 9 => 'HM 1SW', + 10 => 'HM 2A', + 11 => 'HM NOTE', + 12 => 'HM NOTE 1LTE', + 13 => 'HM NOTE 1LTETD', + 14 => 'HM NOTE 1LTEW', + 15 => 'HM NOTE 1LTEGLOBAL', + 16 => 'HM NOTE 1TD', + 17 => 'HM NOTE 1S', + 18 => 'HM NOTE 1W', + ), + '@HN' => + array ( + 0 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + ), + '@HO' => + array ( + 0 => 'HOSIN!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + 2 => 'Honor3c2G-T', + 3 => 'HOMESYNCT2WIFI', + ), + '@HP' => + array ( + 0 => '(HP|Slate)!!', + 1 => 'HP!!', + 2 => 'HP-TouchPad', + 3 => '(HP )?Touchpad!', + ), + '@HS' => + array ( + 0 => 'HS-[0-9]{1,2}DTB!!', + 1 => 'HS-[EFHITUX][0-9]!!', + 2 => 'HS-E[GT][0-9]{3,3}!!', + 3 => '(HS-)?Hisense!!', + ), + '@HT' => + array ( + 0 => '(HTC )?Nexus ?One!', + 1 => 'HTC One', + 2 => 'HTC!!', + 3 => '(HTC|PCD|USCC)?ADR[0-9]{4,4}!!', + 4 => '(HTC )?HT[LV][0-9]{2,2}!!', + 5 => 'HTX21', + 6 => 'HTC Dream', + 7 => 'HTC Dream G1', + 8 => 'HTC Dream SparksMod ', + 9 => 'HTC Vision', + 10 => 'HTC T-Mobile myTouch 3G Slide', + 11 => 'HTC my ?Touch 3G Slide!', + 12 => 'HTC Glacier', + 13 => 'HTC Panache', + 14 => 'HTC My ?Touch ?4G$!', + 15 => 'HTC S910m', + 16 => 'HTC myTouch 4G Slide', + 17 => 'HTC Doubleshot', + ), + '@HU' => + array ( + 0 => 'HUAWEI WATCH', + 1 => 'Huawei MediaPad', + 2 => 'Huawei OsiMood MediaPad', + 3 => 'HUAWEI MediaPad M1 8.0', + 4 => 'Huawei MediaPad T1 7.0 3G', + 5 => 'Huawei MediaPad T1 8.0 4G', + 6 => 'Huawei MediaPad T1 10 4G', + 7 => '(Huawei )?[MSTX](1|2|7|8|10)\\-[A-Z0-9][0-9]{2,2}!!', + 8 => '(HUAWEI )?(CRR|MATE|MT1|MT2|MT7|M200|NXT|Z100)!!', + 9 => '(HW-|HUAWEI )?(TIT|TAG)!!', + 10 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + 11 => '(HW-|HUAWEI )?(CHC|KII)!!', + 12 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + 13 => 'Huawei P7 mini', + 14 => 'Huawei P8max', + 15 => 'HUAWEI LUA-(L03|U23)!', + 16 => 'HUAWEI CUN-(L03|U29)!', + 17 => 'HUAWEI SCC-U21', + 18 => '(Huawei|Ascend|HW-)!!', + 19 => 'HUAWEI Honor 3c w', + 20 => 'Huawei S7', + 21 => 'Hudl HT7S3', + 22 => 'Hudl 2', + 23 => 'HUAWEI U8686', + 24 => 'Huawei 858', + ), + '@HW' => + array ( + 0 => '(HW-|HUAWEI )?(TIT|TAG)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + 2 => '(HW-|HUAWEI )?(CHC|KII)!!', + 3 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + 4 => '(Huawei|Ascend|HW-)!!', + 5 => 'hwu8812D', + 6 => 'HW-01E', + 7 => 'HW-03E', + ), + '@HY' => + array ( + 0 => 'HY5001', + 1 => 'HYUNDAI!!', + 2 => 'Hydro', + 3 => 'Hydro PLUS', + ), + '@I ' => + array ( + 0 => 'I 7520', + ), + '@I-' => + array ( + 0 => 'i-Joy i-Call', + 1 => 'i-Call 300', + 2 => 'i-Call 300v2', + 3 => 'i-Call 504', + 4 => '(i-mobile|i-style|IQ)!!', + ), + '@I1' => + array ( + 0 => 'I110', + 1 => 'i1', + ), + '@I3' => + array ( + 0 => 'i3000', + ), + '@I5' => + array ( + 0 => 'i5300', + 1 => 'i5350', + ), + '@I6' => + array ( + 0 => 'i6000', + ), + '@I7' => + array ( + 0 => 'I7500', + ), + '@I8' => + array ( + 0 => 'i8400', + 1 => 'i8450', + 2 => 'i803w', + 3 => 'I897', + ), + '@I9' => + array ( + 0 => 'I9220', + 1 => 'i9400', + 2 => 'i9430', + 3 => 'i9480', + 4 => 'i9500', + 5 => 'i9570', + 6 => 'I9000', + 7 => 'I9300 Galaxy SIII ', + 8 => 'I9300', + ), + '@IB' => + array ( + 0 => '(iBall )?Andi!!', + 1 => 'iBall!!', + 2 => '(Aura|iberry|AUXUS)!!', + ), + '@IC' => + array ( + 0 => 'ICONIA!!', + 1 => 'IconBit NetTab Thor Mini', + ), + '@ID' => + array ( + 0 => '(Digma )?iD[jmnsx][DQ]?[0-9]*!!', + 1 => 'IDEOS!!', + 2 => 'IdeaPad A1', + 3 => 'IdeaPadA10', + 4 => 'Ideapad K1!', + 5 => 'Ideapad S10-3T', + 6 => '(Lenovo ?)?(IdeaTab ?)?[AB][0-9]{4,4}!!', + 7 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', + 8 => 'idea ?tv!!', + ), + '@IF' => + array ( + 0 => 'ifive!!', + ), + '@IG' => + array ( + 0 => 'IGGY', + ), + '@IL' => + array ( + 0 => '(Ilium )?Avvio!!', + 1 => 'ILT-MX100', + 2 => '(Lanix )?(Ilium|llium)!!', + ), + '@IM' => + array ( + 0 => 'imx50!', + 1 => 'imx51!', + 2 => 'imx53!', + 3 => 'imx6q!', + 4 => 'IMO!!', + 5 => 'Im(Smart|PAD)!!', + 6 => '(SKY )?IM[- ][A-Z][0-9]{3,3}!!', + ), + '@IN' => + array ( + 0 => '(Explay|X-tremer|ActiveD|Informer|Surfer)!!', + 1 => 'INSIGNIA 5', + 2 => 'INSIGNIA 5X', + 3 => 'Inspire HD', + 4 => 'Incredible', + 5 => 'Incredible 2', + 6 => 'Incredible ?S!', + 7 => 'Incredible ?2!', + 8 => 'Incredible 4G LTE', + 9 => 'Inspire 4G', + 10 => 'INFOBAR!!', + 11 => 'Infinix!!', + 12 => 'IN[0-9]{3,3}!!', + 13 => 'Infocus!!', + 14 => 'INHON PAPILIO G1', + 15 => 'intki E86', + 16 => 'Innos!!', + 17 => '(Intex )?Aqua!!', + 18 => '(Intex )?Cloud!!', + 19 => 'INTEX IRIS-II', + 20 => 'INQ Cloud Touch', + 21 => 'INQ Mayfair (EU)', + 22 => '(iNote|itel)!!', + 23 => 'Infinity', + 24 => 'Internet TV', + 25 => 'Internet TV Box', + ), + '@IO' => + array ( + 0 => 'iOCEAN!!', + ), + '@IP' => + array ( + 0 => 'iP977', + 1 => 'IPRO i5S', + ), + '@IQ' => + array ( + 0 => '(Fly )?IQ ?[0-9]{3,4}!!', + 1 => 'iQ(Talk|Tab)!!', + 2 => '(i-mobile|i-style|IQ)!!', + ), + '@IR' => + array ( + 0 => 'Iris!!', + ), + '@IS' => + array ( + 0 => 'IS11CA', + 1 => 'ISW?[0-9]{2,2}F!!', + 2 => 'ISW[0-9]{2,2}HT!!', + 3 => 'ISW11K', + 4 => 'IS11LG', + 5 => 'ISW11M', + 6 => 'IS12M', + 7 => 'IS11N', + 8 => 'IS06', + 9 => 'IS11PT', + 10 => 'IS703C', + 11 => 'IS801C', + 12 => 'ISW11SC', + 13 => 'IS0[0-9]!!', + 14 => 'ISW?1[0-9]SH!!', + 15 => 'IS[0-9]{2,2}S!!', + 16 => 'IS04', + 17 => 'IS11T', + ), + '@IT' => + array ( + 0 => '(iNote|itel)!!', + ), + '@IV' => + array ( + 0 => 'IVIO!!', + ), + '@IW' => + array ( + 0 => 'iwoo i900', + ), + '@IX' => + array ( + 0 => 'iX101T1', + 1 => 'iX101T1-2G', + 2 => 'iX101T1-XS', + ), + '@JA' => + array ( + 0 => 'Jaguar3', + 1 => 'Jaguar7', + ), + '@JC' => + array ( + 0 => 'JC-S9220', + 1 => 'JC-A[0-9]{3,3}!!', + 2 => 'JC-KSP8000', + ), + '@JI' => + array ( + 0 => '(JIAYU|JY-)!!', + 1 => 'JIMMY', + ), + '@JJ' => + array ( + 0 => 'JJ5S+', + ), + '@JO' => + array ( + 0 => 'Jolla', + 1 => 'Joy', + ), + '@JT' => + array ( + 0 => 'JT SmartPC02', + 1 => 'JT-Smart PC01', + 2 => 'JT-H580VT', + 3 => 'JT-H581VT', + 4 => 'JT-B1', + ), + '@JX' => + array ( + 0 => 'JXD!!', + ), + '@JY' => + array ( + 0 => '(JIAYU|JY-)!!', + ), + '@K-' => + array ( + 0 => 'K-?Touch!!', + ), + '@K0' => + array ( + 0 => 'K00C', + 1 => 'K010', + 2 => 'K010E', + 3 => 'K018', + 4 => 'K014', + 5 => 'K01B', + 6 => 'K00G', + 7 => 'K00E', + 8 => 'K00Y', + 9 => 'K00Z', + 10 => 'K012', + 11 => 'K019', + 12 => 'K01F', + 13 => 'K01N', + 14 => 'K01Q', + 15 => 'K016', + 16 => 'K01E', + 17 => 'K00X', + 18 => 'K00R', + 19 => 'K007', + 20 => 'K013', + 21 => 'K013C', + 22 => 'K017', + 23 => 'K01A', + 24 => 'K012 2', + 25 => 'K01U', + 26 => 'K00S', + 27 => 'K00U', + 28 => 'K011', + 29 => 'K015', + 30 => 'K01H', + 31 => 'K00L', + 32 => 'K00F', + 33 => 'K080', + ), + '@K1' => + array ( + 0 => 'K11', + 1 => 'K1', + ), + '@K3' => + array ( + 0 => 'K3', + ), + '@K8' => + array ( + 0 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', + ), + '@KA' => + array ( + 0 => 'Karbonn!!', + 1 => '(Karbonn|Titanium)!!', + 2 => '(KAZAM|Thunder|Tornado|Trooper)!!', + 3 => '(KATBL|Agora)!!', + ), + '@KB' => + array ( + 0 => 'KB901', + ), + '@KC' => + array ( + 0 => 'KC-01', + 1 => 'KC-S301AE', + 2 => 'KC-S701', + 3 => 'KCP01K', + ), + '@KE' => + array ( + 0 => 'KENEKSI', + ), + '@KF' => + array ( + 0 => 'KFOTE?!', + 1 => 'KFTT', + 2 => 'KFJW(I|A)!', + 3 => 'KFJMWI', + 4 => 'KFSOWI', + 5 => 'KFTHW(I|A)!', + 6 => 'KFAPW(I|A)!', + 7 => 'KFARWI', + 8 => 'KFASWI', + 9 => 'KFSAW(I|A)!', + 10 => 'KFFOWI', + 11 => 'KFMEWI', + 12 => 'KFTBWI', + ), + '@KI' => + array ( + 0 => 'Kindle Fire', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + 2 => '(HW-|HUAWEI )?(CHC|KII)!!', + 3 => 'KIOTO 793', + 4 => 'KITE', + 5 => 'KIS', + 6 => 'KIS PLUS', + 7 => 'KIS II', + 8 => 'KIS II Max', + 9 => 'KIS C341', + 10 => 'Kis T3', + ), + '@KM' => + array ( + 0 => '(EV|KM)-[ES][0-9]{3,3}!!', + ), + '@KN' => + array ( + 0 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + ), + '@KO' => + array ( + 0 => 'Konka Amber3', + 1 => 'KOMU!!', + 2 => 'KONKA!!', + 3 => 'koobee-T550', + 4 => 'Koobe!!', + 5 => 'KORIDY H15', + 6 => 'KORIDY H16', + ), + '@KP' => + array ( + 0 => 'KPT!!', + 1 => 'KPN!!', + ), + '@KS' => + array ( + 0 => 'KSP8000', + ), + '@KU' => + array ( + 0 => 'Kurio!!', + 1 => 'KU9500', + 2 => 'KUNO4', + 3 => 'KUNO 4+', + ), + '@KY' => + array ( + 0 => 'KYV33', + 1 => 'Kyobo mirasol eReader', + 2 => 'KYL[0-9]{2,2}!!', + 3 => '(USCC-|KYOCERA-)?E[0-9]{4,4}!!', + 4 => '(USCC-|KYOCERA-)?C[0-9]{4,4}!!', + 5 => 'KY[FLTYV][0-9]{2,2}!!', + 6 => 'Kyivstar!!', + ), + '@L' => + array ( + 0 => '(Hisense )?(LED[0-9]{2,2}(G|K|L|EC|XT)[0-9]{2,3})!', + ), + '@L-' => + array ( + 0 => 'L-0[0-9][A-Z]!!', + ), + '@L3' => + array ( + 0 => 'L3', + ), + '@L9' => + array ( + 0 => 'l97D', + ), + '@LA' => + array ( + 0 => 'LA-!!', + 1 => '(Lanix )?(Ilium|llium)!!', + 2 => 'Lark!!', + 3 => 'LAVA iris 351', + 4 => 'LAVA iRIS 504q', + 5 => 'LAVA S12', + 6 => 'LAP250U', + 7 => 'LAP255U', + 8 => 'LaVieTab!!', + 9 => 'LA-I Dual core', + 10 => 'LA-M3', + 11 => 'LA1-L', + 12 => 'LA2-E', + 13 => 'LA2-E1', + 14 => 'LA2-L', + 15 => 'LA2-T', + 16 => 'LA2-T1', + 17 => 'LA2-W', + 18 => 'LA2-W1', + 19 => 'LA3-W', + 20 => 'LA3S', + 21 => 'LA5-W', + ), + '@LC' => + array ( + 0 => '(AC|BC|LC|MT|RC|QS|VM|TS|OC)[0-9]{4,4}[A-Z]!!', + 1 => 'LC-Ux30US', + 2 => 'LC-[0-9]{2,2}((LE|UE)[0-9]{1,3}[A-Z])!', + 3 => 'LC-((A|S|LX)[0-9]{1,3}[A-Z])!', + 4 => 'LCD-((S|V|LX|UF)[0-9]{1,3}[A-Z])!', + ), + '@LD' => + array ( + 0 => 'LDK-ICK v1.4', + ), + '@LE' => + array ( + 0 => '(LE[0-9]{2,2}[BMU][0-9]{4,4}[A-Z]+)!', + 1 => '(Hisense )?(LED[0-9]{2,2}(G|K|L|EC|XT)[0-9]{2,3})!', + 2 => 'Legend', + 3 => 'leepoo!!', + 4 => 'LEMON P7', + 5 => 'Lenco!!', + 6 => 'LENCM900HZ', + 7 => 'Lenovo A1-32AB0', + 8 => 'Lenovo A1-32AJ0', + 9 => 'Lenovo IdeaPad Yoga 11S', + 10 => 'Lenovo IdeaPad Yoga 13', + 11 => '(Lenovo ?)?(IdeaTab ?)?[AB][0-9]{4,4}!!', + 12 => 'Lenovo YT3-X90L', + 13 => '(Lenovo )?(Tab ?)?(2 ?)?[AS](7|8|10)!!', + 14 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', + 15 => 'Lenovo Pad A4', + 16 => 'Lenovo', + 17 => 'lepad 001b', + 18 => 'lepad 001n', + 19 => '(Lenovo |Lephone )?3GC101!', + 20 => '(Lenovo |Lephone )?3GW100!', + 21 => '(Lenovo |Lephone )?3GW101!', + 22 => '(Lenovo )?S1[- ]37AH0!', + 23 => '(Lenovo )?S2[- ]38A(H0|T0)!', + 24 => 'Lenovo!!', + 25 => 'LenovoTV 40S9', + 26 => 'LenovoTV 50S52', + 27 => '(BLF-)?lephone!!', + 28 => 'Le Pan TC802A', + 29 => 'Le Pan TC1010', + 30 => 'Le Pan TC1020', + 31 => 'LePanII', + 32 => 'Le Pan S', + 33 => 'LENNY', + 34 => 'LENNY2', + ), + '@LG' => + array ( + 0 => 'LGE-lap crespo', + 1 => 'LGE-lap maguro', + 2 => 'LGE-maguro cappuccino', + 3 => 'LGE-lap mako', + 4 => 'LG-Nexus5', + 5 => 'LG-Watch Urbane', + 6 => 'LG-AN160', + 7 => 'LG-?AS[0-9]{3,3}!!', + 8 => 'LG-?C[0-9]{3,3}!!', + 9 => 'LG-CX670', + 10 => 'LG-?D[0-9]{3,3}!!', + 11 => 'LG-DS1203', + 12 => 'LG-?E[0-9]{3,3}!!', + 13 => 'LG-F[0-9]{3,3}!!', + 14 => 'LG-GT540!', + 15 => 'LG-GW620!', + 16 => 'LG-H[0-9]{3,3}!!', + 17 => 'LG-K[0-9]{3,3}!!', + 18 => 'LG-KH5200', + 19 => 'LG-KS1024', + 20 => 'LG-KU[0-9]{4,4}!!', + 21 => 'LG-?L[0-9]{2,3}[A-Z]!!', + 22 => 'LG-LG[0-9]{3,3}!!', + 23 => 'LGLK430', + 24 => 'LG-?LS[0-9]{3,3}!!', + 25 => 'LG-LU[0-9]{4,4}!!', + 26 => 'LG-LW690', + 27 => 'LG-LW770', + 28 => 'LG-?MS[0-9]{3,3}!!', + 29 => 'LG-P[0-9]{3,3}!!', + 30 => 'LG-SU[0-9]{3,3}!!', + 31 => 'LG-SU-760', + 32 => 'LGUK410', + 33 => 'LGUK932', + 34 => 'LG-UN350', + 35 => 'LG-?US[0-9]{3,3}!!', + 36 => 'LG-V[0-9]{3,3}!!', + 37 => 'LG-VK[0-9]{3,3}!!', + 38 => 'LG-VN[0-9]{3,3}!!', + 39 => 'LG-VM[0-9]{3,3}!!', + 40 => 'LG-VS[0-9]{3,3}!!', + 41 => 'LG-X[0-9]{3,3}!!', + 42 => 'lge-F160!', + 43 => 'LGE-E988!', + 44 => 'lgp-970', + 45 => 'LG[LSTV][0-9]{2,2}!!', + 46 => 'LG!!', + 47 => 'LG-Google TV!!', + 48 => 'LG-ANDROID MINI BOX', + 49 => 'LG-P999', + 50 => 'LG-E739', + 51 => 'LG-C800', + ), + '@LI' => + array ( + 0 => 'Liquid!!', + 1 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', + 2 => 'Liberty', + 3 => '(MEDION|(MD )?LIFETAB)!!', + 4 => 'Life', + 5 => 'Liberty Tab G100', + 6 => 'Live ?With ?Walkman!', + 7 => 'Light Tab', + 8 => 'Light Tab 2', + 9 => 'Light Tab 2W', + ), + '@LL' => + array ( + 0 => '(Lanix )?(Ilium|llium)!!', + ), + '@LO' => + array ( + 0 => 'LogicPD Zoom2', + 1 => 'Loox', + ), + '@LS' => + array ( + 0 => 'LS670', + 1 => 'LS740', + ), + '@LT' => + array ( + 0 => 'LT[0-9]{4,4}!!', + 1 => 'LTB-HS', + 2 => 'LT-TLA', + 3 => 'LT-NA7', + 4 => 'LT-NA7F', + 5 => '(SNM\\-)?LT[0-9]{2,2}[a-z]?!!', + ), + '@LU' => + array ( + 0 => 'LUXURY', + 1 => 'LUXURY 3', + 2 => 'LUXURY 4', + 3 => 'LUXURY 5', + 4 => 'Lucky Ultra Sonic U8650', + 5 => 'LU2300', + 6 => 'Lumia800', + 7 => 'Lumia 900', + 8 => 'Luna TAB07-920N', + 9 => 'Luna TAB07-100', + 10 => 'Luna TAB07-101', + 11 => 'Luna TAB274', + 12 => 'Luna TAB374', + 13 => 'Luna TAB474', + 14 => 'Luna TAB10-150', + 15 => 'Luno', + ), + '@M' => + array ( + 0 => '(DNS )?(Airtab )?(E|M|MA|MF|MW|P|PC|PF)[0-9]{2,4}!!', + ), + '@M ' => + array ( + 0 => 'M POP 5020A', + 1 => 'M POP', + ), + '@M-' => + array ( + 0 => 'M-270', + 1 => 'M-PAD N8', + ), + '@M0' => + array ( + 0 => 'M01', + 1 => 'M02', + 2 => 'M01T', + 3 => 'M009F', + 4 => 'M030', + 5 => 'M031', + 6 => 'M032', + 7 => 'M040', + 8 => 'M045', + ), + '@M1' => + array ( + 0 => 'M19', + 1 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + 2 => 'M1050S', + 3 => 'm1 note', + 4 => 'M1001', + 5 => 'M12', + ), + '@M2' => + array ( + 0 => '(HUAWEI )?(CRR|MATE|MT1|MT2|MT7|M200|NXT|Z100)!!', + 1 => 'M210', + 2 => 'm2 note', + ), + '@M3' => + array ( + 0 => 'M3 Enjoy TV Box', + 1 => 'M3-2200', + 2 => 'M305', + 3 => 'M350', + 4 => 'M363', + 5 => 'M310', + 6 => 'M370i', + 7 => 'M351', + 8 => 'M353', + 9 => 'M355', + 10 => 'M356', + ), + '@M4' => + array ( + 0 => 'M4301', + 1 => 'M470BSA', + 2 => 'M470BSE', + 3 => 'M4(TEL)? SS[0-9]{3,4}!!', + ), + '@M5' => + array ( + 0 => 'M555', + 1 => 'M532', + 2 => 'M571C', + 3 => 'M578C', + ), + '@M6' => + array ( + 0 => 'M650', + 1 => 'M660', + 2 => 'M6', + ), + '@M7' => + array ( + 0 => 'M701C', + 1 => 'M702', + 2 => 'M758A', + 3 => 'M7CDTU', + 4 => 'M70', + 5 => 'M785', + 6 => 'M726HC', + 7 => 'M70014', + ), + '@M8' => + array ( + 0 => 'M801', + 1 => 'M860', + 2 => 'M865', + 3 => 'M886', + 4 => 'M8', + 5 => 'M8 pro', + ), + '@M9' => + array ( + 0 => 'M975', + 1 => 'M9300', + 2 => 'M9', + 3 => 'M9-unlocked', + 4 => 'M9 pro', + 5 => 'M9000', + ), + '@MA' => + array ( + 0 => 'Maguro', + 1 => 'Mako', + 2 => 'manta', + 3 => '(bq|Aquaris|Edison|Maxwell)!!', + 4 => '(DNS )?(Airtab )?(E|M|MA|MF|MW|P|PC|PF)[0-9]{2,4}!!', + 5 => '(HUAWEI )?(CRR|MATE|MT1|MT2|MT7|M200|NXT|Z100)!!', + 6 => 'Malata!!', + 7 => 'Masstel!!', + 8 => 'MASTONE!!', + 9 => 'Maxtron!!', + 10 => 'magi', + 11 => 'MagicBox', + ), + '@MB' => + array ( + 0 => 'MBX DVBT reference board (c03ref)', + 1 => 'MBX Dongle board!', + 2 => 'MBX reference board!', + 3 => '(NMP|MBR|XDK|XDS|XMP)\\-!!', + 4 => 'MBS BEAN 454', + 5 => 'MB[0-9]{3,3}!!', + ), + '@MC' => + array ( + 0 => 'MC002', + 1 => 'MC32N0', + 2 => 'MC40N0', + 3 => 'MC67NA', + ), + '@MD' => + array ( + 0 => '(MEDION|(MD )?LIFETAB)!!', + 1 => 'MD-[0-9]{4,4}!!', + ), + '@ME' => + array ( + 0 => 'ME102A', + 1 => 'ME180A', + 2 => 'ME171', + 3 => 'ME172V', + 4 => 'ME173X', + 5 => 'ME301T', + 6 => 'ME302C', + 7 => 'ME302KL', + 8 => 'ME370T', + 9 => 'ME371MG', + 10 => 'ME372CG', + 11 => 'ME372CL-FF', + 12 => 'ME560CG', + 13 => 'ME581CL', + 14 => 'MeMO Pad 7', + 15 => 'MediaPad!!', + 16 => 'Mediacom 810C', + 17 => '(MEDION|(MD )?LIFETAB)!!', + 18 => 'MEEG!!', + 19 => 'meizu m1note', + 20 => 'MEIZU M9', + 21 => 'MEIZU MX', + 22 => '(MEO )?Smart A!!', + 23 => 'MEU AN!!', + 24 => 'ME[0-9]{3,3}!!', + 25 => 'MEM02', + 26 => 'MegaFon SP-AI', + 27 => 'MegaFon SP-A3', + 28 => 'MegaFon SP-A5', + 29 => 'MegaFon SP-A10', + 30 => 'MegaFon V9', + 31 => 'MegaFon V9+', + 32 => 'MegaFon SIM+', + 33 => 'MegaFon Login 3', + ), + '@MF' => + array ( + 0 => 'mfld (dv10|dv20|gi|lw00|pr2|pr3)!', + 1 => '(DNS )?(Airtab )?(E|M|MA|MF|MW|P|PC|PF)[0-9]{2,4}!!', + 2 => 'MFC[0-9]!!', + ), + '@MH' => + array ( + 0 => 'MH350', + ), + '@MI' => + array ( + 0 => 'MID1040C', + 1 => 'MID[0-9]{4,4}!!', + 2 => 'Mini 3iG', + 3 => 'MINT-DG330', + 4 => 'MID1018', + 5 => 'MID1028', + 6 => 'MITO!!', + 7 => 'Mi438S', + 8 => 'MID Ser(ai|ia)ls!', + 9 => 'MIUI.us Sensation 4G', + 10 => 'MID[0-9]!!', + 11 => 'Mi-A402', + 12 => 'Micromax!!', + 13 => 'Mio!!', + 14 => 'MIZ Z2', + 15 => 'Milestone XT711', + 16 => 'Milestone XT720', + 17 => 'Milestone', + 18 => 'Milestone X', + 19 => 'Milestone X2', + 20 => 'Milestone MAXX', + 21 => 'MILESTONE3', + 22 => 'MID7C', + 23 => 'MID43C', + 24 => 'MID74C', + 25 => 'MID77C', + 26 => 'MID82C', + 27 => 'MID84C', + 28 => 'MID102C', + 29 => 'MID103C', + 30 => 'MID104C', + 31 => 'MID114C', + 32 => 'MID[C012]!!', + 33 => '(CSL[- ])?(Spice[- ]?)?Mi(-| )?[0-9]{3,3}!!', + 34 => 'miTab!!', + 35 => 'MI-ONE', + 36 => 'MI-ONEC1', + 37 => 'MI-ONE C1', + 38 => 'MI-ONE Plus!', + 39 => 'mione plus', + 40 => 'MI ONE plus', + 41 => 'MI-ONEPlus', + 42 => 'MI 1S', + 43 => 'MI 1SC', + 44 => 'MI1/1s', + 45 => 'MI-TWO', + 46 => 'MI-TWOPlus', + 47 => 'MI2', + 48 => 'MI 2', + 49 => 'MI 2C', + 50 => 'MI 2A!', + 51 => 'MI2A', + 52 => 'MI 2S', + 53 => 'MI 2SC', + 54 => 'MI 2/2S', + 55 => 'Mi3', + 56 => 'MI-Three', + 57 => 'MI-ThreePlus', + 58 => 'MI 3', + 59 => 'MI 3C', + 60 => 'MI 3W', + 61 => 'Mi3W', + 62 => 'MI 4', + 63 => 'MI 4LTE', + 64 => 'MI 4C', + 65 => 'MI 4W', + 66 => 'Mi-4c', + 67 => 'Mi 4i', + 68 => 'MI NOTE LTE', + 69 => 'MI NOTE Pro', + 70 => 'MI PAD', + 71 => 'MiBOX iCNTV', + 72 => 'MiBOX1S', + 73 => 'MiBOX2', + ), + '@MK' => + array ( + 0 => 'MK808', + 1 => 'MK808B', + 2 => 'MK809', + 3 => 'MK809B', + 4 => 'MK809IV', + 5 => 'MK818B', + 6 => 'MK908', + 7 => 'MK908II', + 8 => 'MK16(a|i|$)!', + ), + '@ML' => + array ( + 0 => 'MLLED!!', + ), + '@MO' => + array ( + 0 => 'Moto E', + 1 => 'Moto G', + 2 => 'Moto G LTE', + 3 => 'Moto G 2014', + 4 => 'Moto G 2014 LTE', + 5 => 'Moto G (2014)', + 6 => 'Moto X', + 7 => 'Moto 360', + 8 => 'Mobile Sosh', + 9 => 'Monterra', + 10 => 'Mobiistar!!', + 11 => 'MOCHE SMART A16', + 12 => '(MODECOM )?FreeTAB!!', + 13 => 'MOGU!!', + 14 => 'moii!!', + 15 => 'MORAL N01', + 16 => 'Moto Droid', + 17 => 'Motorola Pro XT610', + 18 => 'Motorola Milestone MAXX', + 19 => 'Motorola Backflip Me600', + 20 => 'Moto ME860', + 21 => '(Moto)?E2$!', + 22 => '(Moto)?E2\\(4G-LTE\\)$!', + 23 => '(Moto)?G3$!', + 24 => '(Moto)?G3-TE$!', + 25 => 'MOTOROLA MOTOG', + 26 => 'Moto Backflip', + 27 => 'MOTOROLA XOOM MZ606', + 28 => 'MOTOROLA RAZR', + 29 => 'MOTWX435KT', + 30 => '(PLOYER-)?MOMO!!', + 31 => 'MOB-5045', + 32 => 'Mobii 7', + 33 => 'MoFing', + 34 => 'Movistar Express', + 35 => 'Movistar Link', + 36 => 'Movistar Motion', + 37 => 'Movistar Prime', + 38 => 'MOVE', + ), + '@MP' => + array ( + 0 => 'MP[0-9]{3,3}C!!', + 1 => 'MP717', + 2 => 'MP843', + 3 => 'MP888', + 4 => 'MP959', + 5 => 'MP969', + 6 => 'MP1010', + 7 => 'MP7007', + 8 => 'MPDC100 BT', + 9 => 'MPDC110 BT IPS', + 10 => 'MPDC112 BT IPS', + 11 => 'MPDC8 BT', + 12 => 'MPDC88 BT IPS', + 13 => 'MPDC706', + 14 => 'MPDC903', + 15 => 'MPQC704 HD', + 16 => 'MPQC784 IPS', + 17 => 'MPQC804HD', + 18 => 'MPQC1010', + ), + '@MS' => + array ( + 0 => 'MStar Amber3', + 1 => 'MSM', + 2 => 'msm(7227|7627)!', + 3 => 'msm7630!', + 4 => 'msm8660!', + 5 => 'msm(8x25|8625|8960)!', + 6 => 'msm8x30!', + 7 => 'msm8610!', + 8 => 'msm8909!', + 9 => 'msm(8226|8228)!', + 10 => 'MSM8926!', + 11 => 'msm8916!', + 12 => 'msm8952!', + 13 => 'msm8974!', + 14 => 'MSM8992!', + 15 => 'msm8994!', + 16 => 'MS840 4G', + 17 => 'MS3B', + 18 => 'MS4A', + 19 => 'MS3A', + ), + '@MT' => + array ( + 0 => 'mt5396!', + 1 => 'mt5399!', + 2 => 'mt5861!', + 3 => 'mt5880!', + 4 => 'mt5882!', + 5 => 'mt5890!', + 6 => 'mt6515!', + 7 => 'MTK6515', + 8 => 'mt6517!', + 9 => 'mt6571!', + 10 => 'mt6572!', + 11 => 'mt6575!', + 12 => 'mt6577!', + 13 => 'mt6582!', + 14 => 'mt6589!', + 15 => 'MTK-MT6589', + 16 => 'MTK6589!', + 17 => 'mt6592!', + 18 => 'MTK-MT6592', + 19 => 'MTK6592', + 20 => 'mt6595!', + 21 => 'mt6599!', + 22 => 'mt8125!', + 23 => 'mt8127!', + 24 => 'mt8135!', + 25 => 'MTK--8312', + 26 => 'mt8377!', + 27 => 'mt8389!', + 28 => 'mt8580!', + 29 => 'mt8658!', + 30 => '(AC|BC|LC|MT|RC|QS|VM|TS|OC)[0-9]{4,4}[A-Z]!!', + 31 => '(HUAWEI )?(CRR|MATE|MT1|MT2|MT7|M200|NXT|Z100)!!', + 32 => 'MTC Android', + 33 => 'MT791', + 34 => 'MT70[0-9]{2,2}!!', + 35 => 'MTK6516', + 36 => 'MT[0-9]{3,3}!!', + 37 => 'MTS-SP100', + 38 => 'MTS-SP101', + 39 => 'MT[0-9]{2,2}[a-z]!!', + 40 => 'MT7A', + 41 => 'MTC!!', + ), + '@MU' => + array ( + 0 => 'Multilaser Diamond', + 1 => 'Multilaser Orion', + 2 => 'Multilaser Oxy', + 3 => 'Multilaser Titanium', + ), + '@MW' => + array ( + 0 => 'MWND1', + 1 => 'mw07', + 2 => 'MW0710', + 3 => 'MW0711', + 4 => 'MW0712', + 5 => 'MW0731', + 6 => 'MW0731PLUS', + 7 => 'MW0733', + 8 => 'MW0811', + 9 => 'MW0812', + 10 => 'MW0812 V2.0', + 11 => 'MW0821', + 12 => 'MW0821 V2.0', + 13 => 'MW0821+', + 14 => 'MW0831', + 15 => 'MW0831Plus', + 16 => 'MW0922', + 17 => 'MW0931', + 18 => '(DNS )?(Airtab )?(E|M|MA|MF|MW|P|PC|PF)[0-9]{2,4}!!', + 19 => 'MW1031', + ), + '@MX' => + array ( + 0 => 'MX Enjoy TV BOX', + 1 => 'MX2', + 2 => 'MX4', + 3 => 'MX4 Pro', + ), + '@MY' => + array ( + 0 => 'MyPhone A818g Duo', + 1 => 'MyPhone A818 Slim Duo', + 2 => 'MyPhone A848 Duo', + 3 => 'MyPhone A848i Duo', + 4 => 'MyPhone A848g Duo', + 5 => 'MyPhone A888', + 6 => 'MyPhone A888 Duo', + 7 => 'My|Phone A888 Duo', + 8 => 'MyPhone A919 Duo', + 9 => 'MyPhone A919 3D Duo', + 10 => 'MyPhone A919i', + 11 => 'MyPhone A919i Duo', + 12 => 'MyPhone Agua Cyclone', + 13 => 'MyPhone Agua Hail', + 14 => 'MyPhone Agua Iceberg', + 15 => 'MyPhone Agua Iceberg Mini', + 16 => 'MyPhone Agua Iceberg Slim', + 17 => 'MyPhone Agua Infinity', + 18 => 'MyPhone Agua Ocean Lite', + 19 => 'MyPhone Agua Ocean Mini', + 20 => 'MyPhone Agua Ocean Pro', + 21 => 'MyPhone Agua Rain 2G', + 22 => 'MyPhone Agua Rain 3G', + 23 => 'MyPhone Agua Rio', + 24 => 'MyPhone Agua Rio Fun', + 25 => 'MyPhone Agua Rio Lite', + 26 => 'MyPhone Agua Storm', + 27 => 'MyPhone Agua Vortex', + 28 => 'myPhone C Smart', + 29 => 'myPhone Cube', + 30 => 'myPhone Cube 16GB', + 31 => 'myPhone Duosmart', + 32 => 'myPhone FUN 2', + 33 => 'myPhone Funky', + 34 => 'myPhone Hammer', + 35 => 'myPhone INFINITY 3G', + 36 => 'myPhone NEXT', + 37 => 'myPhone NEXTS', + 38 => 'myPhone NEXT S', + 39 => 'myPhone Smart', + 40 => 'myPhone S-line', + 41 => 'MyPhone Rio Craze', + 42 => 'MyPhone Rio Grande', + 43 => 'MyPhone Rio Junior TV', + 44 => 'MyPhone Rio 2 Fun', + 45 => 'MyPhone UNO', + 46 => 'MyPhone Xperia Rain 3G', + 47 => 'MyPad 2', + 48 => 'MyPad 750HD', + 49 => 'MyPad 1000 HD', + 50 => 'MY ?SAGA!!', + 51 => 'My ?Touch ?4G$!', + 52 => 'myTouch 4G Slide', + 53 => 'myTouch Slide 4G', + ), + '@MZ' => + array ( + 0 => 'MZ-m2 note', + 1 => 'MZ-M571C', + 2 => 'MZ-MX4', + 3 => 'MZ[0-9]{3,3}!!', + ), + '@N-' => + array ( + 0 => 'N-0[0-9][A-Z]!!', + ), + '@N1' => + array ( + 0 => 'N1', + 1 => 'N12', + 2 => 'N12R', + 3 => 'N101 DUAL CORE!', + ), + '@N2' => + array ( + 0 => 'N2T', + ), + '@N3' => + array ( + 0 => 'N3-2200', + 1 => 'N320', + ), + '@N5' => + array ( + 0 => 'N51(10|11|16|17)!', + 1 => 'N52(06|07|09)!', + 2 => 'N5PRO2jingying', + 3 => 'N50', + 4 => 'N50DT!', + 5 => 'N50GT', + 6 => 'N50GT A', + ), + '@N6' => + array ( + 0 => 'N612', + 1 => 'N6', + ), + '@N7' => + array ( + 0 => 'N700', + 1 => 'N710', + 2 => 'N70', + 3 => 'N70 3G', + 4 => 'N70 C', + 5 => 'N70DC', + 6 => 'N70-S', + 7 => 'N70HD', + 8 => 'N70 DUAL CORE', + 9 => 'N70DC-S', + 10 => 'N70DC-T', + 11 => 'N762', + 12 => 'N799D', + ), + '@N8' => + array ( + 0 => 'N8730-411', + 1 => 'N8730-41101', + 2 => 'N8730-41102', + 3 => 'N80($| from moage.com)!', + 4 => 'N80DC', + 5 => 'N80IPS', + 6 => 'N800', + 7 => 'N810', + 8 => 'N850L', + 9 => 'N860', + 10 => 'N861', + 11 => 'N880', + 12 => 'N8000', + 13 => 'N8000 USA Cricket', + 14 => 'N8000 USA RS', + 15 => 'N8000 WHTE CKT', + ), + '@N9' => + array ( + 0 => 'N930', + 1 => 'N9600', + 2 => 'N90', + 3 => 'N90 DUAL CORE!', + 4 => 'N90FHDRK', + 5 => 'N986', + 6 => 'N9100', + 7 => 'N9101', + 8 => 'N9130', + 9 => 'N9180', + 10 => 'N9500', + 11 => 'N9510', + 12 => 'N9515', + 13 => 'N9520', + 14 => 'N9810', + 15 => 'N9835', + 16 => 'N958St', + 17 => 'N918St', + ), + '@NA' => + array ( + 0 => 'NABI!!', + 1 => 'NaviPad TM-7055HD 3G', + 2 => 'NaviPad TM-7855 3G', + 3 => 'NaviPad TM-7858 3G (revision 1)', + 4 => 'NATCOM N8302', + ), + '@NB' => + array ( + 0 => 'NB036', + 1 => 'NBX-T7013N', + 2 => 'NBX-T7023N', + ), + '@NE' => + array ( + 0 => '(HTC )?Nexus ?One!', + 1 => '(Google )?Nexus S!', + 2 => '(Google )?Nexus ?4!', + 3 => 'Nexus 5X', + 4 => '(Google )?Nexus ?5!', + 5 => 'Nexus 6P', + 6 => '(Google )?Nexus ?6!', + 7 => '(Google )?Nexus ?7 2013!', + 8 => '(Google )?Nexus ?7!', + 9 => '(Google )?Nexus ?9!', + 10 => '(Google )?Nexus ?10!', + 11 => 'Nexus Player', + 12 => 'NEO-G4', + 13 => 'NEO-G4-108A', + 14 => 'NEO-G4 a', + 15 => 'NEO-X5', + 16 => 'NEO X5', + 17 => 'Neo-X5-B', + 18 => 'NEO-X5-116A', + 19 => 'NEO-X5-mini', + 20 => 'NEO X5 mini', + 21 => 'NEO-X6', + 22 => 'NEO-X7-216A', + 23 => 'NEO-X7-mini', + 24 => 'NEO-X8', + 25 => 'NEO-X8-H', + 26 => 'NEO-X8H-PLUS', + 27 => 'Neon', + 28 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', + 29 => 'NexusHD2', + 30 => 'Nexus HD2', + 31 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + 32 => 'Neon7', + 33 => 'Neon9', + 34 => '(NetTab|NT-)!!', + 35 => 'Newman K1', + 36 => 'NewmanK1', + 37 => 'Newman K2', + 38 => 'Newman N1', + 39 => 'Newman N2!', + 40 => 'Newman-N2!', + 41 => 'Newpad', + 42 => 'Newpad-K97', + 43 => 'Newpad-NP900', + 44 => 'Newpad P9', + 45 => 'Newpad P72', + 46 => 'Newsmy P72', + 47 => 'Newsmy P72-C', + 48 => 'Newsmy T3', + 49 => 'Newsmy T7II', + 50 => 'NEC-STR', + 51 => 'NEC-0912', + 52 => 'NEC-101S', + 53 => 'NECTEL-101S', + 54 => 'NEC-101T', + 55 => 'NEC-101TH', + 56 => 'NEC-102', + 57 => 'NE-103T', + 58 => 'NEC909e', + 59 => 'NE-202', + 60 => 'NE-201A1A', + 61 => 'NEC-NE-201A1A', + 62 => 'NEC-NEC-NE-201A1A', + 63 => 'NEC PC-TE508S1', + 64 => 'neken!!', + 65 => 'NEO!!', + 66 => '(Nexian )?NX-A[0-9]{3,3}!!', + 67 => 'Nextbook Premium 7', + 68 => 'Next7C12!', + 69 => 'Next7D12!', + 70 => 'Next7P12!', + 71 => 'Next7Q12!', + 72 => 'Next7P', + 73 => 'Next7S', + 74 => 'Nextbook Premium 7 SE', + 75 => 'NEXT8P', + 76 => 'Next8P11', + 77 => 'Next8P12', + 78 => 'Next9P', + 79 => 'Next10P12', + 80 => 'NEXT', + 81 => 'New Andromax-i', + 82 => 'Neo V', + 83 => 'NEBULA6.9', + ), + '@NG' => + array ( + 0 => 'NGM Black Hole', + 1 => 'NGM Dynamic Racing 2', + 2 => 'NGM Dynamic Racing 3', + 3 => 'NGM Dynamic Star', + 4 => 'NGM Dynamic Stylo', + 5 => 'NGM Forward Infinity', + 6 => 'NGM Forward Racing HD', + 7 => 'NGM Forward Young', + 8 => 'NGM Harley', + 9 => 'NGM Orion', + 10 => 'NGM Spirit', + 11 => 'NGM Time', + 12 => 'NGM Vanity Smart', + 13 => 'NGM Action', + 14 => 'NGM Legend', + 15 => 'NGM-Legend/Legend', + 16 => 'NGM Legend2', + 17 => 'NGM LegendXL', + 18 => 'NGM Miracle', + 19 => 'NGM P0laris', + 20 => 'NGM Wilco', + 21 => 'NGM WINN', + ), + '@NI' => + array ( + 0 => 'NITROGEN6X', + 1 => 'NID 7010', + 2 => 'Nibiru H1', + 3 => 'nine i7400', + ), + '@NM' => + array ( + 0 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + 1 => '(NMP|MBR|XDK|XDS|XMP)\\-!!', + ), + '@NO' => + array ( + 0 => 'Novo7', + 1 => 'Novo7 -?Aurora!', + 2 => 'novo Aurora', + 3 => 'Novo 7 Aurora', + 4 => 'Novo7 Advanced', + 5 => 'Novo7Advanced!', + 6 => 'Novo7 Advanced2', + 7 => 'Novo7 Basic', + 8 => 'NovoCrystal', + 9 => 'Novo 7 Crystal!', + 10 => 'Novo7 ELF', + 11 => 'Novo7 Fire', + 12 => 'Novo7 Flame', + 13 => 'Novo7 Grace', + 14 => 'Novo7 Legend', + 15 => 'novo7Legend!', + 16 => 'NOVO7 Mars', + 17 => 'Novo7 PALADIN', + 18 => 'Novo7 Rainbow', + 19 => 'Novo7 -Rainbow', + 20 => 'NOVO7 Tornados', + 21 => 'Novo7 Venus', + 22 => 'Novo 7 Venus', + 23 => 'Novo7 Venus QuadCore', + 24 => 'Novo 7 Venus QuadCore', + 25 => 'Novo8 Advanced', + 26 => 'Novo8 Discover Quadcore', + 27 => 'Novo8 Disover Quadcore', + 28 => 'Novo8 Dream QuadCore', + 29 => 'Novo8mini', + 30 => 'novo9-Spark', + 31 => 'NOVO9 Spark II', + 32 => 'Novo 10 Hero', + 33 => 'Novo10 ?Hero!', + 34 => 'Novo 10 Hero QuadCore', + 35 => 'Novo Captain', + 36 => 'Novo10 captain QuadCore', + 37 => 'NOOK', + 38 => 'Nook ?Color!', + 39 => '(NOOK )?BNRV(200|300)!', + 40 => 'Nook ?Tablet!', + 41 => 'NOOK Slate', + 42 => '(NOOK )?BNTV250!', + 43 => '(NOOK )?BNRV350!', + 44 => '(NOOK )?BNTV(400)!', + 45 => '(NOOK )?BNTV(600)!', + 46 => '(NOOK )?BNTV(800)!', + 47 => 'Nook HD', + 48 => 'Nook HD+', + 49 => 'Novapad!!', + 50 => 'Nova!!', + 51 => 'Now', + 52 => 'NO1 S6', + 53 => 'NOAIN!!', + 54 => 'Nokia N9', + 55 => 'Nokia N900', + 56 => 'Nokia X', + 57 => 'Nokia X Dual SIM', + 58 => 'Nokia X+', + 59 => 'Nokia Xplus', + 60 => 'Nokia XL 4G', + 61 => 'Nokia XL', + 62 => 'Nokia XL Dual SIM', + 63 => 'Nokia X2', + 64 => 'NokiaX2DS', + 65 => 'Notion Ink ADAM', + 66 => 'Note III', + 67 => 'Nozomi', + 68 => 'Noble TAB07-485', + 69 => '(QMobile|QTab|Q-Smart|Noir)!!', + ), + '@NP' => + array ( + 0 => 'npm702-NOVO7PALADIN', + ), + '@NS' => + array ( + 0 => 'NS115', + 1 => 'NS2816', + 2 => 'NS-14T002', + 3 => 'NS-13T001', + 4 => 'NSZ-G[A-Z][0-9]!!', + ), + '@NT' => + array ( + 0 => '(NetTab|NT-)!!', + ), + '@NU' => + array ( + 0 => 'Numy!!', + 1 => 'nuvi!!', + 2 => 'NuclearSX-SP5', + 3 => 'nubia Z5', + 4 => 'Nura 2', + ), + '@NW' => + array ( + 0 => 'NWZ?-Z1000Series!', + ), + '@NX' => + array ( + 0 => '(HUAWEI )?(CRR|MATE|MT1|MT2|MT7|M200|NXT|Z100)!!', + 1 => '(Nexian )?NX-A[0-9]{3,3}!!', + 2 => 'NXM726', + 3 => 'NXM726HN', + 4 => 'NXM726HN C030', + 5 => 'NXM726HN HASTINGS', + 6 => 'NXM727KC!', + 7 => 'NXM803HC', + 8 => 'NXM803HD', + 9 => 'NX868QW8G', + 10 => 'NXM805ND', + 11 => 'NXM805ND EN', + 12 => 'NXM908HC', + 13 => 'NXM703U', + 14 => 'NXM901', + 15 => 'NXM736', + 16 => 'NX700QC', + 17 => 'NX785QC8G', + 18 => 'NXM900MC', + 19 => '(ZXY-)?NX[0-9]{2,3}!!', + ), + '@NY' => + array ( + 0 => 'NYX!!', + ), + '@O2' => + array ( + 0 => 'O2 Joggler', + ), + '@OB' => + array ( + 0 => 'OB-OPPO A31c', + 1 => 'OB-OPPO 3005', + 2 => 'Obreey SURFpad', + ), + '@OC' => + array ( + 0 => '(AC|BC|LC|MT|RC|QS|VM|TS|OC)[0-9]{4,4}[A-Z]!!', + ), + '@OD' => + array ( + 0 => 'ODROID-A', + 1 => 'ODROID-U', + 2 => 'ODROID-U2', + 3 => 'ODROID-X', + 4 => 'ODROID-XU', + 5 => 'ODROID-XU3', + 6 => 'ODROID-X2', + 7 => 'ODYS-Chrono', + 8 => 'ODYS-EVO', + 9 => 'Odys-Loox', + 10 => 'ODYS-NOON', + 11 => 'ODYS-Q', + 12 => 'ODYS Space', + 13 => 'ODYS Space TKI BRR233v7', + 14 => 'ODYS Space TKI BRR233v9', + 15 => 'ODYS-Xpress', + 16 => 'ODYS Xtreme', + ), + '@OL' => + array ( + 0 => 'Olivetti Olipad 100', + ), + '@OM' => + array ( + 0 => 'Omap5panda', + 1 => 'OMAP', + 2 => 'OMAP SS', + 3 => 'omap3evm', + 4 => 'OMAP3ETPP', + 5 => 'Omap5sevm', + 6 => 'OMS TTD', + 7 => 'Omega 5.0', + 8 => 'Omega 5.5', + 9 => 'OMS1 6', + ), + '@ON' => + array ( + 0 => 'OnePAD 785I', + 1 => 'OnePAD 900HD', + 2 => 'OnePAD 970', + 3 => 'OnePAD 1100x2', + 4 => 'ONETOUCH Flash Plus', + 5 => 'one touch 890!', + 6 => 'one touch 891!', + 7 => 'one touch 900!', + 8 => 'one touch 903!', + 9 => 'one touch 906!', + 10 => 'one touch 908!', + 11 => 'one touch 909!', + 12 => 'one touch 910!', + 13 => 'one touch 913!', + 14 => 'one touch 916!', + 15 => 'one touch 918!', + 16 => 'one touch 922!', + 17 => 'one touch 927!', + 18 => 'one touch 928!', + 19 => 'one touch 930!', + 20 => 'one touch 960!', + 21 => 'one touch 976!', + 22 => 'one touch 978!', + 23 => 'one touch 979 HelloKitty', + 24 => 'one touch 979!', + 25 => 'one touch 980!', + 26 => 'one touch 981!', + 27 => 'one touch 983!', + 28 => 'one touch 985!', + 29 => 'one touch 986!', + 30 => 'one touch 988!', + 31 => 'one touch 990!', + 32 => 'one touch 991!', + 33 => 'one touch 992!', + 34 => 'ONE TOCH 992D', + 35 => 'one touch 993!', + 36 => 'one touch 995!', + 37 => 'one touch 997!', + 38 => 'one touch 998!', + 39 => 'one touch D662', + 40 => 'one touch D668', + 41 => 'one touch D820', + 42 => 'one touch D920', + 43 => 'one touch J320', + 44 => 'one ?touch 40(05|10|11)!', + 45 => 'one ?touch 4007!', + 46 => 'one ?touch 4008!', + 47 => 'one ?touch 4009!', + 48 => 'one ?touch 4013!', + 49 => 'one ?touch 4014!', + 50 => 'one ?touch 40(15|16)!', + 51 => 'one ?touch 4024!', + 52 => 'one ?touch 4027!', + 53 => 'one ?touch 4029!', + 54 => 'one ?touch 4030!', + 55 => 'one ?touch 4031!', + 56 => 'one ?touch 4032!', + 57 => 'one ?touch 4033!', + 58 => 'ONETOUCH POPC3', + 59 => 'one ?touch 40(35|36|37)!', + 60 => 'one ?touch 5045!', + 61 => 'one ?touch 5020!', + 62 => 'one ?touch 5021!', + 63 => 'one ?touch 5035!', + 64 => 'one ?touch 50(36|37)!', + 65 => 'ONETOUCH POPC5', + 66 => 'one ?touch 50(38)!', + 67 => 'one ?touch 5042!', + 68 => 'one ?touch 5050!', + 69 => 'one ?touch 6010!', + 70 => 'one ?touch 6012!', + 71 => 'ONE TOUCH IDOL MINI', + 72 => 'one ?touch 6014!', + 73 => 'one ?touch 6016!', + 74 => 'one ?touch 6030!', + 75 => 'one ?touch 6032!', + 76 => 'one ?touch 6033!', + 77 => 'one ?touch 60(34|35)!', + 78 => 'one ?touch 6036!', + 79 => 'one ?touch 6037!', + 80 => 'one ?touch 6039!', + 81 => 'one ?touch 6040!', + 82 => 'one ?touch 6043!', + 83 => 'one ?touch 6045!', + 84 => 'one ?touch 6050!', + 85 => 'one ?touch 7024!', + 86 => 'one touch fierce!', + 87 => 'one ?touch 70(25|30)!', + 88 => 'one ?touch 70(40|41)!', + 89 => 'one ?touch 7042!', + 90 => 'one ?touch 7043!', + 91 => 'one ?touch 7044!', + 92 => 'one ?touch 7045!', + 93 => 'one ?touch 7047!', + 94 => 'one ?touch 7050!', + 95 => 'one ?touch 8000!', + 96 => 'one ?touch 8008!', + 97 => 'one ?touch 8020!', + 98 => 'one ?touch 8030!', + 99 => 'one ?touch T10!', + 100 => 'one ?touch T20!', + 101 => 'one ?touch T60!', + 102 => 'ONE TOUCH TAB 7', + 103 => 'ONE TOUCH TAB 7HD', + 104 => 'ONE TOUCH TAB 8HD', + 105 => 'ONE TOUCH EVO7', + 106 => 'onetouch EVO7', + 107 => 'ONE TOUCH E710', + 108 => 'ONE TOUCH EVO 7HD', + 109 => 'ONE TOUCH EVO7HD', + 110 => 'ONE TOUCH EVO8HD', + 111 => 'ONETOUCH POP 7 LTE', + 112 => 'ONE ?TOUCH P310(A|X)!', + 113 => 'ONE ?TOUCH P320(A|X)!', + 114 => 'ONE ?TOUCH P321!', + 115 => 'ONE ?TOUCH POP 8S P350X!', + 116 => 'One S', + 117 => 'One X', + 118 => 'One X+', + 119 => 'One XL', + 120 => 'One V', + 121 => 'One', + 122 => 'One M7', + 123 => 'one m8', + 124 => 'One A0001', + 125 => 'OnePlus One', + 126 => 'OnePlus One A0001', + 127 => 'ONE A2001', + 128 => 'ONE A2003', + 129 => 'ONE A2005', + 130 => 'OnePlus2', + 131 => 'ONE E1000', + 132 => 'ONE E1001', + 133 => 'ONE E1003', + 134 => 'ONE E1005', + 135 => 'ONDA MID', + 136 => 'ONDA A9 Core4', + 137 => 'ONDA VI10', + 138 => 'Onda V812', + 139 => 'ONDA v975m', + 140 => 'ONDA V989', + 141 => 'ONDA V989 Core8', + ), + '@OP' => + array ( + 0 => 'OPPOLenovo A60', + 1 => 'Optimus!!', + 2 => 'Opus One', + 3 => 'OPS-DRD Digital Signage Player', + 4 => 'OP110', + 5 => 'OPPO A800', + 6 => 'OPPOX905', + 7 => 'OPPOX907', + 8 => 'OPPO Find5', + 9 => 'OPPOX909', + 10 => 'OPPO X909', + 11 => 'OPPOX9015', + 12 => 'OPPOX9017', + 13 => 'OPPO find7', + 14 => 'OPPOR601', + 15 => 'OPPOR801', + 16 => 'OPPOR803', + 17 => 'OPPOR805', + 18 => 'OPPOR807', + 19 => 'OPPO R811', + 20 => 'OPPO R813T', + 21 => 'OPPO R815', + 22 => 'OPPOR817', + 23 => 'Oppo R819', + 24 => 'OPPO R821', + 25 => 'OPPO R831', + 26 => 'Oppo R831 Limited Edition', + 27 => 'OPPO R1001', + 28 => 'OPPOR8015', + 29 => 'OPPOR8111', + 30 => 'OPPOT29', + 31 => '(OPPO-?)?T703!', + 32 => 'OPPOU701', + 33 => 'OPPOU7011', + 34 => 'OPPOU7015', + 35 => 'OPPO N1', + 36 => 'OPPO R7', + 37 => 'OPPO R7s', + 38 => 'OPPO R7 Plus', + 39 => 'OPSSON!!', + 40 => 'OP0118-12', + 41 => 'Optimus Barcelona', + 42 => 'Optimus Boston', + 43 => 'Optimus Madrid', + 44 => 'Optimus Monte Carlo', + 45 => 'Optimus San Francisco', + 46 => 'Optimus San Remo', + 47 => 'Optimus Zali', + ), + '@OR' => + array ( + 0 => 'Orange HUAWEI GRA-L09', + 1 => 'Orange Boston', + 2 => 'Orange Covo', + 3 => 'Orange Daytona', + 4 => 'Orange Dublin', + 5 => 'Orange Fova', + 6 => 'Orange Gova', + 7 => 'Orange Hi 4G', + 8 => 'Orange Hiro', + 9 => 'Orange infinity 996', + 10 => 'Orange Infinity 8008X', + 11 => 'Orange Kivo', + 12 => 'Orange Monte Carlo', + 13 => 'Orange Niva', + 14 => 'Orange Nura', + 15 => 'Orange Novi', + 16 => 'Orange Reyo', + 17 => 'Orange Rise 30', + 18 => 'Orange Rono', + 19 => 'Orange Roya', + 20 => 'Orange Runo', + 21 => 'Orange San Francisco', + 22 => 'Orange Sego', + 23 => 'Orange Tactile internet 2', + 24 => 'Orange Tado', + 25 => 'Orange Yomi', + 26 => 'Orange Yumo', + 27 => 'Orange Zali', + ), + '@OT' => + array ( + 0 => 'OT 918', + 1 => 'OT 919', + 2 => 'OT 919 HelloKitty', + 3 => 'OT-990C', + 4 => 'OT 990M', + 5 => 'OT-995', + ), + '@OU' => + array ( + 0 => 'OUYA( Console)?!', + ), + '@OV' => + array ( + 0 => '(OV-|Overmax|Vertis)!!', + ), + '@OY' => + array ( + 0 => 'Oysters Pacific 800', + 1 => 'Oysters T3 3G', + 2 => 'Oysters T7B 3G', + 3 => 'Oysters T7X 3G', + 4 => 'OYSTERS T14N 3G', + 5 => 'Oysters T37', + 6 => 'Oysters T72H 3G', + 7 => 'Oysters T72HRi 3G', + 8 => 'OYSTERS T80 3G', + ), + '@OZ' => + array ( + 0 => 'OZZY', + ), + '@P' => + array ( + 0 => '(DNS )?(Airtab )?(E|M|MA|MF|MW|P|PC|PF)[0-9]{2,4}!!', + ), + '@P-' => + array ( + 0 => 'P-0[0-9][A-Z]!!', + ), + '@P0' => + array ( + 0 => 'P001', + 1 => 'P001 2', + 2 => 'P002', + 3 => 'P01M', + 4 => 'P01MA', + 5 => 'P01T', + 6 => 'P01T 1', + 7 => 'P01V', + 8 => 'P01W', + 9 => 'P01Y', + 10 => 'P01Z', + 11 => 'P021', + 12 => 'P022', + 13 => 'P023', + 14 => 'P024', + ), + '@P1' => + array ( + 0 => 'P10AN', + 1 => 'P105', + 2 => 'P10HD??(E6NA)', + 3 => 'P11HD', + 4 => 'P11HD四核(G9X6)', + 5 => 'P11HD??(G9X6)', + 6 => 'P11HD四核(G9X7)', + 7 => 'P19HD(E1K3)', + 8 => 'P19HD(E1K5)', + ), + '@P2' => + array ( + 0 => 'P2A700', + 1 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + ), + '@P3' => + array ( + 0 => 'P330X', + 1 => 'P350X', + 2 => 'P360X', + 3 => 'P300(Funbook)', + ), + '@P4' => + array ( + 0 => 'P4i', + 1 => 'P4D Sirius', + ), + '@P5' => + array ( + 0 => 'P5 Energy', + 1 => 'P5Life', + 2 => 'P5Life TM', + 3 => 'P5', + ), + '@P6' => + array ( + 0 => 'P6 Energy', + 1 => 'P6 Energy TM', + 2 => 'P6 Pro', + 3 => 'P6 Qmax', + 4 => 'P6 Quad', + 5 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + ), + '@P7' => + array ( + 0 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + 1 => 'P700i', + 2 => 'P701', + 3 => 'P7', + 4 => 'P70 3Gå…«æ ¸(C2B7)', + 5 => 'P70h(A5C2)', + 6 => 'P72', + 7 => 'P72w', + 8 => 'P75a(G7E3)', + 9 => 'P75HD(M3E5)', + 10 => 'P76a(K3G5)', + 11 => 'P76aåŒæ ¸(M4Q5)', + 12 => 'P76e(A3E1)', + 13 => 'P76e(G6R8)', + 14 => 'P76håŒæ ¸(K8V1)', + 15 => 'P76såŒæ ¸(DKH5)', + 16 => 'P76TI', + 17 => 'P76v(A3V5)', + 18 => 'P78åŒæ ¸(G1M5)', + 19 => 'P78s(G1M5)', + 20 => 'P78s(G1M6)', + 21 => 'P78s(G1M7)', + 22 => 'P78HD四核(C4A5)', + 23 => 'P78HD??(C4A5)', + 24 => 'P79HD(A3V9)', + 25 => 'P79HD 3G(C4K5)', + 26 => 'p7901a', + ), + '@P8' => + array ( + 0 => 'P8 Energy', + 1 => 'P8 Energy mini', + 2 => 'P8 Energy mini TM', + 3 => 'P80 四核 (BV8K)', + 4 => 'P80 四核 (BV9K)', + 5 => 'P80s 四核(EF6W)', + 6 => 'P80 3G四核 (B1KC)', + 7 => 'P80 3G四核 (B4KC)', + 8 => 'P80 3Gå…«æ ¸(A4LL)', + 9 => 'P80 3Gå…«æ ¸(A5LL)', + 10 => 'P80 3Gå…«æ ¸(A6LL)', + 11 => 'P80 4G(K2G3)', + 12 => 'P81HD', + 13 => 'P85(A9D3)', + 14 => 'P85(A9D5)', + 15 => 'P85(R8A1)', + 16 => 'P85mini(DT8W)', + 17 => 'P85s mini(EWE8)', + 18 => 'P85t mini(KW8P)', + 19 => 'P85HDåŒæ ¸(K6N2)', + 20 => 'P86(F8G6)', + 21 => 'P88åŒæ ¸(H3D7)', + 22 => 'P88(H3D7)', + 23 => 'P88(GT4K)', + 24 => 'P88s mini??(F2V6)', + 25 => 'P88s mini四核(F2V7)', + 26 => 'P88HD(C5GV)', + 27 => 'P89 3Gå…«æ ¸(D1H8)', + 28 => 'P89 3Gk8(D1H8)', + 29 => 'P89mini(E2W6)', + 30 => 'P89 mini(E2W6)', + 31 => 'P89s(F8A5)', + 32 => 'P89s mini(F8A2)', + ), + '@P9' => + array ( + 0 => 'P940', + 1 => 'P990', + 2 => 'P90(H3U6)', + 3 => 'P90(H3U7)', + 4 => 'P98(F2K9)', + 5 => 'P98 å…«æ ¸(B9A3)', + 6 => 'P98 3Gk8(A4HY)', + 7 => 'P98 3G??(A4HY)', + 8 => 'P98 3G(M1Q2)', + 9 => 'P98 3Gå…«æ ¸(A3HY)', + 10 => 'P98 3Gå…«æ ¸(A4HY)', + 11 => 'P98 4G??(A8H6)', + 12 => 'P98 Air?? (C6V8)', + 13 => 'P98Air(C6V8)', + 14 => 'P98HD(A2Q6)', + 15 => 'P98HD+M6', + 16 => 'P98T(K3C4)', + ), + '@PA' => + array ( + 0 => 'Panda(Board)?!', + 1 => 'Passion', + 2 => '(Transformer )?(Pad )?TF300(T|TG|TL)!', + 3 => '(Transformer )?(Pad )?TF502(T)!', + 4 => '(Transformer )?(Pad )?TF700(T|K)!', + 5 => 'PadFone', + 6 => 'PadFone 2', + 7 => 'PadFone Infinity', + 8 => 'PadFone Infinity A86', + 9 => 'PadFone T004', + 10 => 'PadFone-T004', + 11 => 'PadFone T008', + 12 => 'PadFone T00C', + 13 => 'PadFone X', + 14 => 'PadFone X mini', + 15 => 'Patio100', + 16 => 'Patio100 3G', + 17 => 'PAD[0-9]{3,3}!!', + 18 => 'Panasonic!!', + 19 => 'pandigital9hr', + 20 => 'pandigital9hr2', + 21 => 'pandigitalopc1', + 22 => 'pandigitalopp1', + 23 => 'pandigitalp1hr', + 24 => 'PantechP!!', + 25 => 'PAT712W', + 26 => 'PATG7506HD', + 27 => 'PAP[0-9]{4,4}!!', + 28 => 'PAD1001', + ), + '@PB' => + array ( + 0 => 'PB99400', + ), + '@PC' => + array ( + 0 => 'PC1038', + 1 => '(DNS )?(Airtab )?(E|M|MA|MF|MW|P|PC|PF)[0-9]{2,4}!!', + 2 => '(HTC|PCD|USCC)?ADR[0-9]{4,4}!!', + 3 => 'PC36100!', + 4 => 'PC-TE307N1W', + 5 => 'PC-TE508BAW', + 6 => 'PC-TS508T1W', + 7 => 'PC-TS708T1W', + ), + '@PD' => + array ( + 0 => 'PD10-DYD', + 1 => 'PD6D1J', + ), + '@PE' => + array ( + 0 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + 1 => 'PEDI', + 2 => 'Penta!!', + 3 => 'Pentagram!!', + 4 => 'pepper', + ), + '@PF' => + array ( + 0 => '(DNS )?(Airtab )?(E|M|MA|MF|MW|P|PC|PF)[0-9]{2,4}!!', + ), + '@PG' => + array ( + 0 => 'PG06100', + 1 => 'PG41200', + 2 => 'PG86100!', + 3 => 'PGM 398', + ), + '@PH' => + array ( + 0 => 'PH7M EU 5596', + 1 => 'PHA-3850', + 2 => 'PHA-3880', + 3 => 'PHA-4850', + 4 => 'PHA-5850', + 5 => 'photon', + 6 => 'PH44100', + 7 => 'Photon', + 8 => 'Photon 4G', + 9 => 'Photon Q', + 10 => 'Photon Q LTE', + 11 => 'PH350', + 12 => 'PH520', + 13 => 'PHICOMM!!', + 14 => 'Philips I908', + 15 => 'Philips I928', + 16 => 'Philips S301', + 17 => 'Philips S308', + 18 => 'Philips S316T', + 19 => 'Philips S337', + 20 => 'Philips S358', + 21 => 'Philips S388!', + 22 => 'Philips S398', + 23 => 'Philips S616', + 24 => 'Philips T3500', + 25 => 'Philips T3566', + 26 => 'Philips V377', + 27 => 'Philips V387', + 28 => 'Philips W336', + 29 => 'Philips W536', + 30 => 'Philips W626', + 31 => 'Philips W632', + 32 => 'Philips W635', + 33 => 'Philips W737', + 34 => 'Philips W832', + 35 => 'Philips W3500', + 36 => 'Philips W3509', + 37 => 'Philips W3550', + 38 => 'Philips W3568', + 39 => 'Philips W6350', + 40 => 'PhilipsW6350', + 41 => 'Philips W6610', + 42 => 'Philips W6618', + 43 => 'Philips W7555', + 44 => 'Philips-W7555', + 45 => 'Philips-W8500', + 46 => 'Philips W8510', + 47 => 'Philips W8555', + 48 => 'Philips W8560', + 49 => 'Philips GoGear Connect', + 50 => 'Philips PI5000', + 51 => 'PHABLET 4S', + 52 => 'Phablet 4.5Q', + 53 => 'Phablet 5,3 Q', + ), + '@PI' => + array ( + 0 => 'Pixel C', + 1 => '(Axioo[\\- ])?PICO!!', + 2 => '(GIO-)?(GiONEE[- ])?Pioneer P1!', + 3 => '(GIO-)?(GiONEE[- ])?Pioneer P2!', + 4 => '(GIO-)?(GiONEE[- ])?Pioneer P3!', + 5 => '(GIO-)?(GiONEE[- ])?Pioneer P4!', + 6 => 'PI2000', + 7 => 'PI2010', + 8 => 'PI2011', + 9 => 'PI3100', + 10 => 'PI3100-93', + 11 => 'PI3100Z3 93', + 12 => 'PI3105', + 13 => 'PI3106', + 14 => 'PI3110', + 15 => 'PI3205G', + 16 => 'PI3210G', + 17 => 'PI3900', + 18 => 'PI3900-93', + 19 => 'PI3910', + 20 => 'PI4010G', + 21 => 'PI7000', + 22 => 'PI7100 93', + 23 => '(PNR-)?Pioneer!!', + 24 => 'PIRANHA!!', + ), + '@PJ' => + array ( + 0 => 'PJ83100', + 1 => 'PJ35100', + ), + '@PL' => + array ( + 0 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + 1 => 'Planet II v2', + 2 => 'Play 6X-1000', + 3 => 'Play8X-1100', + 4 => 'PLANET', + 5 => 'Playboy PB-S3', + 6 => '(PLOYER-)?MOMO!!', + 7 => 'PlayTabPro', + 8 => 'PLT!!', + 9 => 'PlayBook', + ), + '@PM' => + array ( + 0 => 'PM36100', + 1 => 'PM63100', + 2 => 'PMID!!', + 3 => 'PMP[0-9]{4,4}!!', + 4 => 'PMT[0-9]{4,4}!!', + ), + '@PN' => + array ( + 0 => 'pnx8473 kiryung', + 1 => 'PNDPP4MT9G2', + 2 => 'PNDPP44QC7', + 3 => 'PNDPP48GP', + 4 => 'PNDPP4MT9G3', + 5 => 'PNDPP410GP', + 6 => '(PNR-)?Pioneer!!', + ), + '@PO' => + array ( + 0 => '(Highscreen|Alpha|Bay|Cosmo|Explosion|Power|Prime|Zera)!!', + 1 => 'PocketBook A7', + 2 => 'PocketBook A10', + 3 => 'PocketBook A10 3G', + 4 => 'PocketBook SURFpad2', + 5 => 'PocketBook SURFpad 3 (7,85")', + 6 => 'PocketBook SURFpad 4 S', + 7 => 'PocketBook SURFpad 4 M', + 8 => 'PocketBook SURFpad 4 L', + 9 => 'POV-Mobii-7', + 10 => 'POV Mobii 7', + 11 => 'POV TAB-P506!', + 12 => 'POV TAB-P517!', + 13 => 'POV TAB-P527!', + 14 => 'POV TAB-P629!', + 15 => 'POV TAB-P701!', + 16 => 'POV TAB-P703!', + 17 => 'POV TAB-P720!', + 18 => 'POV TAB-P721A!', + 19 => 'POV TAB-P721!', + 20 => 'POV TAB-P722C!', + 21 => 'POV TAB-P731N!', + 22 => 'POV TAB-P825!', + 23 => 'POV TAB-P925!', + 24 => 'POV TAB-PR945!', + 25 => 'POV TAB-P1025!', + 26 => 'POV TAB-P1030!', + 27 => 'POV TAB-PI1045!', + 28 => 'POV TAB-P1325!', + 29 => '(POV )?TAB-PLAYTABPRO!', + 30 => '(POV )?TAB-PROTAB25!', + 31 => '(POV )?TAB-PROTAB26!', + 32 => 'POV TAB-PROTAB27', + 33 => '(POV )?TAB-PROTAB30!', + 34 => '(POV )?TAB-PROTAB2XXL(4)!', + 35 => '(POV )?TAB NAVI7 3G M!', + 36 => 'POV_TAB-NAVI7-3G-M', + 37 => 'POV TAB-P547(v1.0)', + 38 => 'POV TV-HDMI-200BT', + 39 => 'POV TV-HDMI-200BT(V2.0)', + 40 => 'POV TV-HDMI-210', + 41 => 'POV TV-HDMI-KB-01', + 42 => 'POV TV-SMARTTV-500', + 43 => 'Polaroid PSPT401', + 44 => 'Polaroid PSPC505', + 45 => 'Polaroid P4005A', + 46 => 'POLY ?PAD!!', + 47 => 'POLYTRON!!', + 48 => 'POMP!!', + 49 => 'Positivo Mini', + 50 => 'POSITIVO YPY 07FTB', + 51 => 'Positivo Ypy AB7E', + 52 => 'Positivo Ypy AB7EC', + 53 => 'Positivo Ypy AB7F', + 54 => 'Positivo AB7F', + 55 => 'Positivo Ypy AB7H', + 56 => 'Positivo Ypy AB10E', + 57 => 'Positivo Ypy AB10EC', + 58 => 'Positivo Ypy AB10H', + 59 => 'Positivo BGH Ypy L700', + 60 => 'Positivo Ypy L700', + 61 => 'Positivo Ypy L700 Ed. Especial', + 62 => 'Positivo Ypy L700+', + 63 => 'Positivo Ypy L700 Kids', + 64 => 'Positivo BGH Ypy L700 Kids', + 65 => 'Positivo Ypy L700+ Kids', + 66 => 'Positivo Ypy L1000', + 67 => 'Positivo Ypy L1000AB', + 68 => 'Positivo Ypy L1000F', + 69 => 'Positivo Ypy L1050', + 70 => 'Positivo Ypy L1050E', + 71 => 'Positivo Ypy L1050F', + 72 => 'Positivo S380', + 73 => 'Positivo S440', + 74 => 'Positivo S480', + 75 => 'Positivo S550', + 76 => 'Positivo X400', + 77 => 'Positivo X800', + ), + '@PP' => + array ( + 0 => 'PP4MT-7', + 1 => 'PP4MT-9', + ), + '@PR' => + array ( + 0 => 'Project Tango Tablet Development Kit', + 1 => '(Highscreen|Alpha|Bay|Cosmo|Explosion|Power|Prime|Zera)!!', + 2 => 'Pro 10 dual core', + 3 => 'Prada 3.0', + 4 => 'Primo76', + 5 => 'Primo 91', + 6 => 'PRIME PLUS 3G', + 7 => 'PROTAB2XXL', + 8 => 'PROV!!', + 9 => 'PRO!!', + 10 => 'Prestigio PAP5000TDUO', + 11 => 'PRBT 100', + 12 => 'printer-tablet', + 13 => 'PRS-T1', + 14 => 'PRIMO7', + 15 => 'PRIMO8', + 16 => 'PRO7D', + 17 => 'Primo C2', + 18 => 'Primo C3 3G', + 19 => 'Primo D2', + 20 => 'Primo D3', + 21 => 'Primo D4', + 22 => 'Primo D5', + 23 => 'Primo E1', + 24 => 'Primo E2', + 25 => 'PRIMO E3', + 26 => 'Primo E4', + 27 => 'Primo E4+', + 28 => 'Primo E6', + 29 => 'Primo EF', + 30 => 'Primo EF2', + 31 => 'Primo EF3', + 32 => 'Primo EM', + 33 => 'Primo F1', + 34 => 'Primo F2', + 35 => 'Primo-F2', + 36 => 'Primo F3', + 37 => 'Primo F3i', + 38 => 'Primo F4', + 39 => 'Primo F5', + 40 => 'Primo F6', + 41 => 'Primo-G1', + 42 => 'Primo G2', + 43 => 'Primo-G3', + 44 => 'Primo G4', + 45 => 'Primo G5', + 46 => 'Primo G6', + 47 => 'Primo GF2', + 48 => 'Primo GF4', + 49 => 'Primo GH+', + 50 => 'Primo-GH2', + 51 => 'Primo GH2', + 52 => 'Primo GH3', + 53 => 'Primo GH4', + 54 => 'Primo GH5', + 55 => 'Primo GH6', + 56 => 'Primo GM', + 57 => 'Primo GM mini', + 58 => 'Primo H2', + 59 => 'Primo-H3', + 60 => 'Primo H3', + 61 => 'Primo H4', + 62 => 'Primo H5', + 63 => 'Primo HM', + 64 => 'Primo HM3', + 65 => 'Primo-N', + 66 => 'Primo-N1', + 67 => 'Primo NF', + 68 => 'Primo NF+', + 69 => 'Primo NX', + 70 => 'Primo NX2', + 71 => 'Primo NX3', + 72 => 'Primo R1', + 73 => 'Primo R2', + 74 => 'Primo R3', + 75 => 'Primo R4', + 76 => 'Primo RH', + 77 => 'Primo RM', + 78 => 'Primo RM2', + 79 => 'Primo RM2 mini', + 80 => 'Primo RX2', + 81 => 'Primo RX4', + 82 => 'Primo S1', + 83 => 'Primo S3', + 84 => 'Primo S3 mini', + 85 => 'Primo V1', + 86 => 'Primo VX', + 87 => '(WALTON )?Primo-X1!', + 88 => 'Primo-X2', + 89 => 'Primo X2mini', + 90 => 'Primo X3', + 91 => 'Primo X3mini', + 92 => 'Primo Z', + 93 => 'Primo-ZX', + 94 => 'Primo ZX2', + 95 => 'Primo Walpad 7', + 96 => 'Primo Walpad 8', + 97 => 'Primo Walpad 8W', + 98 => 'Proton Lite', + 99 => 'Prism', + 100 => 'Prism II', + ), + '@PS' => + array ( + 0 => 'PSPT350', + 1 => 'PSP[0-9]{4,4}!!', + 2 => 'PS47', + ), + '@PT' => + array ( + 0 => 'PTL21', + ), + '@PU' => + array ( + 0 => 'PURE XL', + 1 => 'PULID F6', + 2 => 'PULID F7', + 3 => 'PULID F11', + 4 => 'PULID T3', + 5 => 'Pulse', + 6 => 'Pulse Mini', + ), + '@PY' => + array ( + 0 => 'Pyramid', + ), + '@Q-' => + array ( + 0 => 'Q-Wave!!', + 1 => '(QMobile|QTab|Q-Smart|Noir)!!', + ), + '@Q0' => + array ( + 0 => 'Q07CL01', + ), + '@Q1' => + array ( + 0 => '(BB )?Q10$!', + ), + '@Q5' => + array ( + 0 => '(BB )?Q5$!', + ), + '@QI' => + array ( + 0 => 'Qilive!!', + ), + '@QM' => + array ( + 0 => 'QM151E', + 1 => 'QM152E', + 2 => 'QM163E', + 3 => 'QM734-8G', + 4 => 'QM735-8G', + 5 => '(QMobile|QTab|Q-Smart|Noir)!!', + 6 => 'QMV7A', + 7 => 'QMV7B', + ), + '@QO' => + array ( + 0 => 'QOOQ', + ), + '@QS' => + array ( + 0 => '(AC|BC|LC|MT|RC|QS|VM|TS|OC)[0-9]{4,4}[A-Z]!!', + ), + '@QT' => + array ( + 0 => '(QMobile|QTab|Q-Smart|Noir)!!', + 1 => 'QTAQZ3', + 2 => 'QTAQZ3KID', + 3 => 'QTAIR7', + ), + '@QU' => + array ( + 0 => 'Quest', + 1 => 'Quicki-811', + 2 => 'QUANTUM 4', + 3 => 'QUANTUM 700m', + 4 => 'QUANTUM 1010N', + 5 => 'Quechua Phone 5', + ), + '@QV' => + array ( + 0 => 'QV151E', + ), + '@QW' => + array ( + 0 => 'QW ?TB-[0-9]{4,4}!!', + ), + '@R1' => + array ( + 0 => 'R1001', + 1 => 'R1011', + ), + '@R2' => + array ( + 0 => 'R2001', + 1 => 'R2010', + 2 => 'R2017', + ), + '@R3' => + array ( + 0 => 'R30GT', + ), + '@R6' => + array ( + 0 => 'R6006', + 1 => 'R6007', + ), + '@R7' => + array ( + 0 => 'R7005', + 1 => 'R7007', + ), + '@R8' => + array ( + 0 => 'R801', + 1 => 'R801T', + 2 => 'R803', + 3 => 'R805', + 4 => 'R807', + 5 => 'R809T', + 6 => 'R811', + 7 => 'R813T', + 8 => 'R815', + 9 => 'R815T', + 10 => 'R815W', + 11 => 'R817', + 12 => 'R817T', + 13 => 'R819', + 14 => 'R819T!', + 15 => 'R821', + 16 => 'R821T', + 17 => 'R823T', + 18 => 'R827', + 19 => 'R827T', + 20 => 'R829', + 21 => 'R829T', + 22 => 'R830', + 23 => 'R830S', + 24 => 'R831K', + 25 => 'R831L', + 26 => 'R831T', + 27 => 'R831S', + 28 => 'R831', + 29 => 'R833T', + 30 => 'R850', + 31 => 'R883T', + 32 => 'R8000', + 33 => 'R8001', + 34 => 'R8006', + 35 => 'R8007', + 36 => 'R8015', + 37 => 'R8106', + 38 => 'R8107', + 39 => 'R8109', + 40 => 'R8111', + 41 => 'R8113', + 42 => 'R8200', + 43 => 'R8201', + 44 => 'R8205', + 45 => 'R8206', + 46 => 'R8207', + 47 => 'R800(a|at|i|iv|x)!', + ), + '@RA' => + array ( + 0 => 'Rage', + 1 => 'RAPAXSE080-0508', + 2 => 'RAZR', + 3 => 'RAZR HD', + 4 => 'RAZR M', + 5 => 'RAZR MAXX', + 6 => 'Ramosi8', + 7 => 'Ramosi8c', + 8 => 'Ramosi9', + 9 => 'Ramosi9-3G', + 10 => 'Ramos i9s', + 11 => 'Ramos i9s Series', + 12 => 'Ramos i9s pro', + 13 => 'Ramosi10', + 14 => 'Ramosi12c', + 15 => 'Ramos W6HD', + 16 => 'Ramos W12', + 17 => 'Ramos W12HD', + 18 => 'Ramos W17Pro V3.0', + 19 => 'Ramos W21', + 20 => 'Ramos W25HD', + 21 => 'Ramos W27Pro', + 22 => 'Ramos W31', + 23 => 'Ramos w36', + 24 => 'Ramos W41', + 25 => 'Ramos W41 QuadCore', + 26 => 'Ramos X10 PRO!', + 27 => 'Rayhov!!', + 28 => 'RAINBOW', + 29 => 'RAINBOW 4G', + 30 => 'RacerII', + 31 => 'Racer', + ), + '@RB' => + array ( + 0 => 'RBK-490', + ), + '@RC' => + array ( + 0 => '(AC|BC|LC|MT|RC|QS|VM|TS|OC)[0-9]{4,4}[A-Z]!!', + ), + '@RE' => + array ( + 0 => 'redhookbay', + 1 => '(E-Boda|Eruption|Essential|Supreme|Storm|Revo)!!', + 2 => 'Rezound', + 3 => 'Renesas!', + 4 => 'Readboy!!', + 5 => 'ReederA8R', + 6 => 'Redmi', + 7 => 'Redmi 1S', + 8 => 'REDMI NOTE', + 9 => 'Redmi Note 4G (LTE)', + 10 => 'Redmi Note 2', + 11 => 'Redmi Note 3', + 12 => 'RedRice', + ), + '@RI' => + array ( + 0 => 'Rikomagic MK802', + 1 => 'Rikomagic MK802 ?II!', + 2 => 'Rikomagic MK802III', + 3 => 'Rikomagic MK802IIIS', + 4 => '(Gsmart|Gigabyte|Rio)!!', + 5 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + 6 => 'Rise', + 7 => '(Ritmix )?RM[DP]-?[0-9]{3,3}!!', + 8 => 'RIDGE', + 9 => 'RIDGE 4G', + 10 => 'RIDGE FAB 4G', + ), + '@RK' => + array ( + 0 => 'rksdk', + 1 => 'rk2808(sdk)?!', + 2 => 'rk2818(sdk)?!', + 3 => 'RK2906', + 4 => 'RK2918', + 5 => 'rk2926-q8', + 6 => 'rk2928sdk', + 7 => 'rk29sdk', + 8 => 'rk30sdk!', + 9 => 'rk30mtk', + 10 => 'rk3026', + 11 => 'rk3028a', + 12 => 'rk3028sdk', + 13 => 'rk3036', + 14 => 'rk3066', + 15 => 'rk31sdk', + 16 => 'rk31 5931', + 17 => 'rk31 8089', + 18 => 'rk31 872xu', + 19 => 'rk31au', + 20 => 'rk31rtl', + 21 => 'rk312x', + 22 => 'rk3188!', + 23 => 'rk3288!', + 24 => 'rk3990!', + 25 => 'RKM MK602', + 26 => 'RKM MK802IIIS', + 27 => 'RKM MK802IV', + 28 => 'RKM MK902', + 29 => 'RKM MK902II', + ), + '@RM' => + array ( + 0 => 'RM02', + 1 => 'RM-980', + 2 => 'RM-1061', + 3 => '(Ritmix )?RM[DP]-?[0-9]{3,3}!!', + 4 => 'RMD-[0-9]{2,3}G!!', + ), + '@RO' => + array ( + 0 => 'roiX', + 1 => 'RoverPad 3W T71D', + 2 => 'ROAR', + 3 => 'Roar A50', + ), + '@RP' => + array ( + 0 => 'RP-UDM01A', + ), + '@RT' => + array ( + 0 => 'RTC-700A', + ), + '@RW' => + array ( + 0 => 'RW107', + ), + '@S-' => + array ( + 0 => 'S-F16', + ), + '@S0' => + array ( + 0 => 'S01', + ), + '@S1' => + array ( + 0 => '(GIO-)?(GiONEE[- ])?S101!', + 1 => '(Lenovo )?S1[- ]37AH0!', + 2 => 'S1005KTAB', + ), + '@S2' => + array ( + 0 => 'S222', + 1 => '(Lenovo )?S2[- ]38A(H0|T0)!', + 2 => 'S2', + ), + '@S3' => + array ( + 0 => 's3c6410', + 1 => 'S30', + 2 => 'S308', + 3 => 'S3', + ), + '@S4' => + array ( + 0 => 'S40', + 1 => 'S4503Q', + 2 => 'S4505M', + 3 => 'S4', + ), + '@S5' => + array ( + 0 => 'S5PV210', + 1 => 'S5-F', + 2 => 'S50', + 3 => 'S50c', + 4 => 'S5', + 5 => 'S5 Mini!', + 6 => 'S51SE', + ), + '@S6' => + array ( + 0 => 'S658t', + 1 => 'S6 Edge+!', + ), + '@S7' => + array ( + 0 => 'S710d', + 1 => 'S710D', + 2 => 'S720i', + 3 => 'S7', + 4 => 's732', + ), + '@S8' => + array ( + 0 => 'S8600', + 1 => 'S88 DISCOVERY', + 2 => 'S880', + ), + '@SA' => + array ( + 0 => 'sama5d3', + 1 => 'SABRESD-MX6DQ', + 2 => 'saltbay', + 3 => 'SA3CNT', + 4 => 'Salora E1', + 5 => 'Satellite!!', + 6 => 'San Remo Mini', + 7 => 'San Francisco', + 8 => 'San Francisco for', + 9 => 'San Francisco II', + ), + '@SB' => + array ( + 0 => 'SBM[0-9]0[0-9]SH!!', + ), + '@SC' => + array ( + 0 => '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!', + 1 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + 2 => 'SCH-[iI][0-9]{3,3}!!', + 3 => 'SCH-L710!', + 4 => 'SCH-M828!', + 5 => 'SCH-N719', + 6 => 'SCH-P[0-9]{3,3}!!', + 7 => 'SCH-R[0-9]{3,3}!!', + 8 => 'SCH-S[0-9]{3,3}!!', + 9 => 'SCH-V727', + 10 => 'SCH-W[0-9]{3,4}!!', + 11 => 'SC-?0[0-9][A-Z]!!', + 12 => 'SC[LTV][23][0-9]!!', + 13 => 'Scroll!!', + 14 => 'SC-!!', + ), + '@SD' => + array ( + 0 => 'sdk', + 1 => 'SD4930UR', + ), + '@SE' => + array ( + 0 => 'sec smdkc210', + 1 => 'sec smdkv210', + 2 => 'SENSUELLE', + 3 => 'SensationXE!', + 4 => 'SensationXL!', + 5 => 'Sensation XL with Beats Audio', + 6 => 'Sensation!', + 7 => '(SENCOR )?ELEMENT!!', + 8 => 'SENSEIT R390', + 9 => 'SENWA S970', + ), + '@SF' => + array ( + 0 => 'SFR-G8800', + 1 => 'SFR-G8800 TV', + 2 => 'SFR StarTab', + ), + '@SG' => + array ( + 0 => 'SGH-[EILNMS][0-9]{3,4}!!', + 1 => 'SGH-T[0-9]{3,3}!!', + 2 => 'SGH-W2013!', + 3 => 'SGP[ST0-9][0-9]{2,2}!!', + ), + '@SH' => + array ( + 0 => 'Shark Bay Client platform', + 1 => 'shamu', + 2 => 'SHIELD Console', + 3 => 'SHIELD Android TV', + 4 => 'SHIELD Andr0id TV', + 5 => 'SHIELD', + 6 => 'SHIELD Tablet', + 7 => 'SHIELD Tablet K1', + 8 => 'SHIELD Tablet II', + 9 => 'Shine', + 10 => 'SH940C-LN', + 11 => 'SH940C-LN TV', + 12 => 'Sholes', + 13 => 'SHV-E[0-9]{3,3}!!', + 14 => 'SHW-M[0-9]{3,3}!!', + 15 => 'SH01D', + 16 => 'SH-M01', + 17 => 'SH-M02', + 18 => 'SH-M02-EVA20', + 19 => 'SH-RM02', + 20 => 'SH-[01][0-9][A-Z]!!', + 21 => '(SHP-)?(SHARP )?SH[0-9]{2,3}!!', + 22 => 'SH[FLTV][0-9]{2,2}!!', + 23 => 'SHARP-ADS1', + ), + '@SI' => + array ( + 0 => 'SiRF Dream', + 1 => 'simvalley SP-142', + 2 => 'Signature Touch', + 3 => 'Signature Touch L', + ), + '@SK' => + array ( + 0 => 'SK351', + 1 => 'SKT01', + 2 => '(SKY )?IM[- ][A-Z][0-9]{3,3}!!', + 3 => 'Skyworth!!', + 4 => 'SK17(a|i|iv|i-o)!', + 5 => 'SK-Mtek GT7305', + 6 => 'Skate', + 7 => 'Skate Pro', + ), + '@SL' => + array ( + 0 => 'Slider SL101', + 1 => 'SL930', + 2 => '(HP|Slate)!!', + 3 => 'Slidepad!!', + 4 => 'SLIDE', + ), + '@SM' => + array ( + 0 => 'smdk6410', + 1 => 'SMDKC110', + 2 => 'SMDKV210', + 3 => 'SMDK4x12', + 4 => 'SMDK4412', + 5 => 'SMDK5250', + 6 => 'SMDK5410', + 7 => 'smp86xx', + 8 => 'smp8734', + 9 => 'smp8756', + 10 => 'SM-G900FG', + 11 => 'SmartWatch 3', + 12 => 'Smart!!', + 13 => 'SM-H900A', + 14 => 'SmartTab1', + 15 => 'SmartPad!!', + 16 => '(MEO )?Smart A!!', + 17 => 'Smart Monitor 17', + 18 => 'SMARTTVBOX', + 19 => 'SMT-E5015', + 20 => 'SMT-i9100', + 21 => 'SM-A[0-9]{3,3}!!', + 22 => 'SM-C[0-9]{3,3}!!', + 23 => 'SM-E[0-9]{3,3}!!', + 24 => 'SM-G[0-9]{3,3}!!', + 25 => 'SM-I9500', + 26 => 'SM-J[0-9]{3,3}!!', + 27 => 'SM-N[0-9]{3,4}!!', + 28 => 'SM-P[0-9]{3,3}!!', + 29 => 'SM-S[0-9]{3,3}!!', + 30 => 'SM-T[0-9]{3,3}!!', + 31 => 'SM-V700', + 32 => 'SM-W[0-9]{4,4}!!', + 33 => 'Smartphone Android by SFR STARADDICT II', + 34 => '(Smartfren|Andromax)!!', + 35 => 'Smartfren Tab 7', + 36 => 'SmartQ!!', + 37 => 'SMART Sprint', + 38 => 'SmartTab!!', + ), + '@SN' => + array ( + 0 => 'SN[0-9]!!', + 1 => 'Snexian!!', + 2 => '(SNM\\-)?LT[0-9]{2,2}[a-z]?!!', + 3 => '(SNM\\-)?M[0-9]{2,2}[a-z]!!', + ), + '@SO' => + array ( + 0 => 'SoftwinerEvb', + 1 => 'SoftwinerEvb0308', + 2 => 'SoftwinerEvd', + 3 => 'Softwinerkf026', + 4 => 'Softwinerf721', + 5 => 'Softwinerf761', + 6 => 'Softwinerf761I', + 7 => 'Softwinerf900', + 8 => 'SoftwinerEvbV13', + 9 => 'soho', + 10 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + 11 => 'SONIC', + 12 => 'Sonim!!', + 13 => 'SO-0[0-9][A-Z]!!', + 14 => 'SO[LTV][0-9]{2,2}!!', + 15 => 'Sony Xperia Ray', + 16 => 'SonyEricssonMT15', + 17 => 'SonyEricssonST15', + 18 => 'Soshphone 4G', + 19 => 'soft stone', + ), + '@SP' => + array ( + 0 => 'Sprint!!', + 1 => 'Sparkle V', + 2 => 'SPNG9716DC', + 3 => 'SPH-D[0-9]{3,3}!!', + 4 => 'SPH-L[0-9]{3,3}!!', + 5 => 'SPH-M[0-9]{3,3}!!', + 6 => 'SPH-P[0-9]{3,3}!!', + 7 => 'SP-120', + 8 => 'SPX-5', + 9 => 'SPX-5 3G', + 10 => 'SPX-6', + 11 => 'SPX-12', + 12 => 'SpeedUp S3', + 13 => '(CSL[- ])?(Spice[- ]?)?Mi(-| )?[0-9]{3,3}!!', + 14 => 'SPICE IV', + 15 => 'SP-A20i', + 16 => 'SpringBoard', + ), + '@SR' => + array ( + 0 => 'SRT!!', + ), + '@ST' => + array ( + 0 => 'ste l8540!', + 1 => 'ste u8500', + 2 => 'ste u9540', + 3 => 'Stingray', + 4 => 'Stream', + 5 => 'Status', + 6 => 'Style', + 7 => 'STV100-1', + 8 => 'STV100-2', + 9 => 'STV100-3', + 10 => 'STV100-4', + 11 => 'STH100-2', + 12 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', + 13 => 'streak7', + 14 => '(E-Boda|Eruption|Essential|Supreme|Storm|Revo)!!', + 15 => 'ST7001', + 16 => 'ST8000', + 17 => 'ST9001', + 18 => 'ST10', + 19 => 'ST940I-UP', + 20 => 'STM[0-9]{3,3}H!!', + 21 => 'Stylo', + 22 => 'STARXTREM', + 23 => 'STARXTREM II', + 24 => 'STARXTREM 4', + 25 => 'STARXTREM5', + 26 => 'STARADDICT II', + 27 => 'STARADDICT II Plus', + 28 => 'STARADDICT III', + 29 => 'STARADDICT 4', + 30 => 'STARADDICT 5', + 31 => 'STARNAUTE II', + 32 => 'STARNAUTE3', + 33 => 'Starshine', + 34 => 'STARSHINE II', + 35 => 'STARSHINE III', + 36 => 'STARSHINE 4', + 37 => 'STARTEXT II', + 38 => 'STARTRAIL II', + 39 => 'StarTrail III', + 40 => 'STARTRAIL4', + 41 => 'STARTRAIL 4', + 42 => 'STARTRAIL5', + 43 => 'STARTRAIL 6 4G', + 44 => 'STARTRAIL6', + 45 => 'STARTRAIL7', + 46 => 'STARTAB', + 47 => 'ST[0-9]{2,2}[a-z]?!!', + 48 => 'Star N8000', + 49 => 'Star N9500', + 50 => 'Star N9589', + 51 => 'Star Q9000', + 52 => 'STAR S5', + 53 => 'STAR S7589', + 54 => 'Starmobile!!', + 55 => '(Starway )?Andromeda!!', + 56 => 'STX!!', + 57 => 'STOREX LinkBox', + 58 => 'StarTab 715x', + 59 => 'ST[0-9]{5,5}-[0-9]!!', + 60 => 'STAIRWAY', + 61 => 'StarTrail TT', + ), + '@SU' => + array ( + 0 => 'Surfing TAB B 9.7 3G', + 1 => 'Surfing Tab C 3G', + 2 => '(E-Boda|Eruption|Essential|Supreme|Storm|Revo)!!', + 3 => '(Explay|X-tremer|ActiveD|Informer|Surfer)!!', + 4 => 'SUPRA', + 5 => 'SUBLIM', + 6 => 'SUNSET', + ), + '@SV' => + array ( + 0 => 'sv8860', + 1 => 'SVP-DTV15', + ), + '@SW' => + array ( + 0 => 'Swift', + 1 => 'Swift Plus', + ), + '@SX' => + array ( + 0 => 'SXZ-PD!!', + 1 => 'SX9701W', + ), + '@SY' => + array ( + 0 => 'Sygnus', + 1 => 'SYTABEX7-2', + 2 => '(Symphony|Xplorer)!!', + 3 => 'Synrgic Uno M1', + ), + '@SZ' => + array ( + 0 => 'SZJ-JS101', + 1 => 'SZENIO!!', + ), + '@T-' => + array ( + 0 => 'T-07B', + 1 => 'T-800', + 2 => 'T-200', + 3 => 'T-Smart!!', + 4 => 'T-01C', + 5 => 'T-01D', + 6 => 'T-02D', + 7 => 'T-Mobile G1', + 8 => 'T-Mobile G2', + 9 => 'T-Mobile G2 Touch', + 10 => 'T-Mobile HTC G2', + 11 => 'T-Mobile myTouch', + 12 => 'T-Mobile myTouch 3G', + 13 => 'T-Mobile myTouch 3G Slide', + 14 => 'T-mobile my touch 3g slide', + 15 => 'T-Mobile Espresso', + 16 => 'T-Mobile myTouch 4G', + 17 => 'T-Mobile myTouch Q', + 18 => 'T-Mobile Opal', + 19 => 'T-Mobile Vivacity', + 20 => 'T-Hub2', + ), + '@T0' => + array ( + 0 => 'T01', + 1 => 'T012', + 2 => 'T02', + 3 => 'T05', + 4 => 'T03', + 5 => 'T04', + 6 => 'T00C', + 7 => 'T00E', + 8 => 'T00N', + 9 => 'T00D', + 10 => 'T00S', + 11 => 'T00T', + 12 => 'T001', + 13 => 'T00I', + 14 => 'T00I-D', + 15 => 'T00F', + 16 => 'T00J', + 17 => 'T00J-D', + 18 => 'T00K', + 19 => 'T00P', + 20 => 'T00G', + 21 => 'T00Q', + ), + '@T1' => + array ( + 0 => 'T1-B', + 1 => 'T1-D', + 2 => 'T1-E', + 3 => 'T1K Plus', + 4 => 'T1 7.0', + 5 => 'T11AD!', + ), + '@T2' => + array ( + 0 => 'T20', + ), + '@T3' => + array ( + 0 => 'T320a', + 1 => 'T30', + 2 => 'T3696', + 3 => 'T301', + ), + '@T6' => + array ( + 0 => 'T6', + ), + '@T7' => + array ( + 0 => '(OPPO-?)?T703!', + 1 => 'T720 SE', + 2 => 'T760 from moage.com', + ), + '@T8' => + array ( + 0 => 'T8[0-9]{3,3}!!', + ), + '@T9' => + array ( + 0 => 'T9108', + 1 => 'T92', + 2 => 'T9199h', + 3 => 'T9[0-9]{3,3}!!', + 4 => 'T959', + 5 => 'T98 4G??(C6R2)', + ), + '@TA' => + array ( + 0 => 'TA272HUL', + 1 => 'Tablet P1801-T', + 2 => 'Tablet P1802-T', + 3 => '(DENVER-)?TA[CD]-[0-9]{4,5}!!', + 4 => 'Tablet-P27', + 5 => 'TA10CA3', + 6 => '(tablet )?fnac!!', + 7 => '(HW-|HUAWEI )?(TIT|TAG)!!', + 8 => 'TA-FONE!!', + 9 => 'TAB1011', + 10 => 'TAB-1030', + 11 => '(Lenovo )?(Tab ?)?(2 ?)?[AS](7|8|10)!!', + 12 => 'TAB950', + 13 => 'TAB1062', + 14 => 'TAB192', + 15 => '(POV )?TAB-PLAYTABPRO!', + 16 => '(POV )?TAB-PROTAB25!', + 17 => '(POV )?TAB-PROTAB26!', + 18 => '(POV )?TAB-PROTAB30!', + 19 => 'TAB-PROTAB2-IPS9', + 20 => 'TAB-PROTAB2-IPS-3G', + 21 => 'TAB-PROTAB2-IPS-16', + 22 => 'TAB-PROTAB2.4', + 23 => 'TAB-PROTAB2XL', + 24 => 'TAB-PROTAB2.4XL', + 25 => 'TAB-PROTAB2XXL', + 26 => 'TAB-PROTAB2XXL(4)', + 27 => '(POV )?TAB-PROTAB2XXL(4)!', + 28 => '(POV )?TAB NAVI7 3G M!', + 29 => 'Tablet P', + 30 => 'Tablet S', + 31 => 'Tabra QAV801', + 32 => 'TAB 7 3G V8', + 33 => 'TAB 8 3G V8', + 34 => 'TAB9 3G', + 35 => 'TAB9 3G V8', + 36 => 'TAB 10 3G V16', + 37 => 'TAB 7i 3G', + 38 => 'TAB 10Q', + 39 => 'TAB09-410', + 40 => 'TAB10-410', + 41 => 'TAB07-485', + 42 => 'TAB07-200', + 43 => 'TAB9-200', + 44 => 'TAB10-201', + 45 => 'TAB210', + 46 => 'TAB220', + 47 => 'TAB224', + 48 => 'TAB250', + 49 => 'TAB275', + 50 => 'TAB260', + 51 => 'TAB264', + 52 => 'TAB360', + 53 => 'TAB364', + 54 => 'TAB410', + 55 => 'TAB411', + 56 => 'TAB420', + 57 => 'TAB424', + 58 => 'TAB450', + 59 => 'TAB460', + 60 => 'TAB461', + 61 => 'TAB464', + 62 => 'TAB465EUK', + 63 => 'TAB469', + 64 => 'TAB466EUK', + 65 => 'TAB467', + 66 => 'TAB462', + ), + '@TB' => + array ( + 0 => 'TB07FTA', + 1 => 'TB100', + 2 => 'TB782B', + 3 => 'TBD753B', + 4 => 'TBDB763', + 5 => 'TBDB863', + 6 => 'TBDC1093', + 7 => 'TBDG734', + 8 => 'TBDG874', + 9 => 'TBDG1073', + 10 => 'TBQC1063', + ), + '@TC' => + array ( + 0 => 'TCC8920 STB!', + 1 => 'TCC893X!', + 2 => 'TCC8935 HDMI!', + 3 => 'TCC8975 STB!', + 4 => 'TCC8920 EVM', + 5 => 'TCC8925 HDMI DONGLE', + 6 => 'TCC8930 STB EV', + 7 => 'TCC8930 STB1', + 8 => 'TCC8935 HDMI DONGLE', + 9 => 'TCL ONE TOUCH 990', + 10 => 'TC970', + 11 => 'TC970 (Wi-Fi)', + 12 => 'TC975', + 13 => 'TC55', + 14 => 'TC55CH', + 15 => 'TC70', + 16 => 'TC75', + 17 => 'TCL!!', + ), + '@TD' => + array ( + 0 => 'TD070VA1', + 1 => 'TD600', + 2 => 'TD-1010', + 3 => 'TD506', + ), + '@TE' => + array ( + 0 => 'Telechips M801 Evaluation Board', + 1 => 'Telechips TCC8900 Evaluation Board', + 2 => 'Tegra!!', + 3 => 'TECNO!!', + 4 => 'Teclast A10', + 5 => 'Teclast P76e!', + 6 => 'Teclast P85!', + 7 => 'Teclast X80h', + 8 => 'tegav2', + 9 => 'Tele2fon V3', + 10 => 'Tele2fon v5', + 11 => 'TELEFUNKEN Diamond TD1', + 12 => 'Telpad Dual S', + 13 => 'Telpad Quad S', + 14 => 'Telpad QS', + 15 => 'Tensent S9000', + 16 => 'teXet X-alpha', + 17 => 'teXet iX-mini', + 18 => 'teXet X-navi', + 19 => 'TEXET TM-4677', + 20 => 'TeamDRH ICS for GTablet', + 21 => 'Telenor!!', + ), + '@TF' => + array ( + 0 => 'TF101', + 1 => 'TF101-WiMAX', + 2 => 'TF201', + 3 => 'tf201t', + 4 => '(Transformer )?(Pad )?TF300(T|TG|TL)!', + 5 => '(Transformer )?(Pad )?TF502(T)!', + 6 => '(Transformer )?(Pad )?TF700(T|K)!', + ), + '@TH' => + array ( + 0 => 'thor', + 1 => 'Thunder S220', + 2 => '(Cloudfone|CloudPad|Excite|Thrill)!!', + 3 => '(KAZAM|Thunder|Tornado|Trooper)!!', + 4 => 'ThinkPad( Tablet)?!', + 5 => '(CJ-)?ThL!!', + 6 => 'THRiVE', + ), + '@TI' => + array ( + 0 => 'Tilapia', + 1 => 'Titan TV S320', + 2 => '(HW-|HUAWEI )?(TIT|TAG)!!', + 3 => '(Karbonn|Titanium)!!', + 4 => 'TI320-DU', + 5 => 'TI320-DU TV', + 6 => 'TizzBird!!', + ), + '@TL' => + array ( + 0 => 'TLINK[0-9]{3,3}!!', + ), + '@TM' => + array ( + 0 => 'TM400', + 1 => 'TM105', + 2 => 'TM105A', + 3 => 'TM-3200R', + 4 => 'TM-3204R', + 5 => 'TM-4004', + 6 => 'TM-4377', + 7 => 'TM-4515', + 8 => 'TM-4577', + 9 => 'TM-4677', + 10 => 'TM-5200', + 11 => 'TM-5377', + 12 => 'TM-7011', + 13 => 'TM-7016', + 14 => 'TM-7021', + 15 => 'TM-7023', + 16 => 'TM-7024', + 17 => 'TM-7025', + 18 => 'TM-7026', + 19 => 'TM-7026 (revision 4)', + 20 => 'TM-7037W', + 21 => 'TM-7038W', + 22 => 'TM-7041', + 23 => 'TM-7043XD', + 24 => 'TM-7047HD 3G', + 25 => 'TM-7096', + 26 => 'TM-7854', + 27 => 'TM-8041HD', + 28 => 'TM-8051', + 29 => 'TM-9720', + 30 => 'TM-9725', + 31 => 'TM-9740', + 32 => 'TM-9741', + 33 => 'TM-9743W', + 34 => 'TM-9747!', + 35 => 'TM-9748 3G', + 36 => 'TM-9750HD', + 37 => 'TM-9751HD', + 38 => 'TM-9757', + 39 => 'TM-9757 3G rev1', + 40 => 'TM-9767', + 41 => 'TM-1058', + 42 => 'tmn!!', + ), + '@TO' => + array ( + 0 => 'Toro', + 1 => 'Toro-VZW', + 2 => 'TOUCAN Stick HD', + 3 => 'TOUCAN Stick G4', + 4 => 'Toucan Stick 4K', + 5 => 'TOUCAN Stick 3D mk2', + 6 => 'TOUCHBOOK7.0 3G', + 7 => '(HP )?Touchpad!', + 8 => 'Touch Pro 2', + 9 => '(KAZAM|Thunder|Tornado|Trooper)!!', + 10 => 'Torque', + 11 => 'Touchlet X10.dual', + 12 => 'tolino tab!!', + 13 => 'TomTom Bridge', + 14 => 'TomTom PRO 8275', + 15 => 'TOOKY!!', + 16 => 'TOSHIBA AC AND AZ', + 17 => 'TOSHIBA FOLIO AND A', + 18 => 'Tostab03', + ), + '@TP' => + array ( + 0 => 'TPA60W', + 1 => 'TPC-7151', + ), + '@TQ' => + array ( + 0 => 'TQ150', + ), + '@TR' => + array ( + 0 => 'Transformer', + 1 => 'Transformer TF101(G)?!', + 2 => '(Eee Pad )?Transformer Prime TF201!', + 3 => 'Transformer TF201', + 4 => 'Transformer TF201G', + 5 => 'Transformer Prime', + 6 => 'Transformer Prime TF300T', + 7 => 'Transformer 300', + 8 => 'Transformer Pad', + 9 => '(Transformer )?(Pad )?TF300(T|TG|TL)!', + 10 => '(Transformer )?(Pad )?TF502(T)!', + 11 => 'Transformer Pad TF600T', + 12 => '(Transformer )?(Pad )?TF700(T|K)!', + 13 => 'Transformer (Pad )?Infinity!', + 14 => 'TR720F', + 15 => 'TR10CS1', + 16 => 'TripNiCE Pyramid', + 17 => '(KAZAM|Thunder|Tornado|Trooper)!!', + 18 => 'Triumph', + 19 => 'TRACER OXYGEN GS1', + 20 => 'Trevi PHABLET 4C', + 21 => 'Trevi PHABLET 5 S', + 22 => 'TREQ!!', + 23 => 'Trevi REVERSE 5.5Q', + 24 => 'Trevi PHABLET 6 S', + 25 => 'TRUE BEYOND 3G', + ), + '@TS' => + array ( + 0 => '(AC|BC|LC|MT|RC|QS|VM|TS|OC)[0-9]{4,4}[A-Z]!!', + 1 => 'TSP21', + 2 => 'TSB CLOUD COMPANION;TOSHIBA AC AND AZ', + ), + '@TT' => + array ( + 0 => 'TT101', + ), + '@TU' => + array ( + 0 => 'TURBO DG2014', + 1 => 'Turbo-X pi', + 2 => 'Turbo-X Ice', + 3 => 'Turbo-X Tablet Spice III', + 4 => 'Turkcell!!', + ), + '@TV' => + array ( + 0 => 'TVE9603I', + 1 => 'TVPAD Slim K3409', + ), + '@TX' => + array ( + 0 => 'TX201LA', + 1 => 'TX201LAF', + 2 => 'TX85', + 3 => 'TX18', + ), + '@U1' => + array ( + 0 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', + 1 => 'U1', + 2 => 'U1203', + ), + '@U2' => + array ( + 0 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', + 1 => 'U20(a|i|iv)!', + ), + '@U3' => + array ( + 0 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', + ), + '@U5' => + array ( + 0 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', + ), + '@U6' => + array ( + 0 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', + ), + '@U7' => + array ( + 0 => 'U701', + 1 => 'U701T', + 2 => 'U702', + 3 => 'U705', + 4 => 'U705T', + 5 => 'U705W', + 6 => 'U707', + 7 => 'U707T', + 8 => 'U708', + 9 => 'U7011', + 10 => 'U7015', + ), + '@U8' => + array ( + 0 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', + 1 => 'U8[0-9]{3,3}!!', + 2 => 'U880', + 3 => 'U880E', + 4 => 'U880s', + 5 => 'U8220', + ), + '@U9' => + array ( + 0 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', + 1 => 'U9[0-9]{3,3}!!', + ), + '@UL' => + array ( + 0 => 'Ultra', + 1 => 'Ultimix!!', + 2 => 'Ultra Charm', + 3 => 'Ultra Energy Lite', + 4 => 'Ultra Energy Plus', + 5 => 'Ultra Latitude', + 6 => 'Ultra Style', + 7 => 'Ultimate10', + 8 => 'Ultimate10-Android4.0', + 9 => 'Ultimate 10', + 10 => 'ultrafone!!', + 11 => 'Ultym 5', + 12 => 'Ultym 5L', + 13 => 'Ultym 5.2', + ), + '@UM' => + array ( + 0 => 'UM840', + 1 => 'UMI!!', + ), + '@UN' => + array ( + 0 => 'unknown M200-L09', + 1 => 'UNO X8', + 2 => 'UNO X10', + 3 => 'Unusual!!', + ), + '@UO' => + array ( + 0 => 'UOOGOU!!', + ), + '@UR' => + array ( + 0 => 'URBANO PROGRESSO', + ), + '@US' => + array ( + 0 => 'USCC ALCATEL one touch 909B', + 1 => 'USCC ALCATEL one touch 988', + 2 => '(HTC|PCD|USCC)?ADR[0-9]{4,4}!!', + 3 => 'USCCADR[0-9]{4,4}!!', + 4 => '(USCC-|KYOCERA-)?E[0-9]{4,4}!!', + 5 => '(USCC-|KYOCERA-)?C[0-9]{4,4}!!', + 6 => 'USCC-(LG)?US!!', + 7 => 'Usmart!!', + ), + '@UT' => + array ( + 0 => 'UTime!!', + ), + '@V-' => + array ( + 0 => 'V-T100', + ), + '@V1' => + array ( + 0 => 'V1 Viper', + 1 => 'V1 Viper E', + 2 => 'V1 Viper I', + 3 => 'V1 Viper I4G', + 4 => 'V1 Viper I4G PL', + 5 => 'V1 Viper I4G TM', + 6 => 'V1 Viper L', + 7 => 'V1 ViperS', + 8 => 'V1 Viper S4G', + 9 => 'V11', + 10 => 'V17HD', + 11 => '(GIO-)?(GiONEE[- ])?V182!', + 12 => '(GIO-)?(GiONEE[- ])?V185!', + 13 => '(GIO-)?(GiONEE[- ])?V188!', + 14 => 'V1', + 15 => 'V1277', + ), + '@V2' => + array ( + 0 => 'V2 Viper', + 1 => 'V2 Viper I', + 2 => 'V2 Viper I TM', + 3 => 'V2 Viper X', + 4 => 'V2 Viper X plus', + ), + '@V3' => + array ( + 0 => 'v360 E1', + ), + '@V5' => + array ( + 0 => 'V5U-simvalley SP-142', + 1 => 'V55', + ), + '@V7' => + array ( + 0 => 'V701s Core4', + 1 => 'V711s Core4', + 2 => 'V712 Core4', + 3 => 'V719 3G', + ), + '@V8' => + array ( + 0 => 'V801 Core4', + 1 => 'V801s Core4', + 2 => 'V811 Core4', + 3 => 'V812 Core4', + 4 => 'V813 Core4', + 5 => 'V813s Core4', + 6 => 'V818', + 7 => 'V818mini', + 8 => 'V819mini', + 9 => 'V819 3G', + 10 => 'V819i', + 11 => 'V865M', + 12 => 'V880', + 13 => 'V8000 USA Cricket', + 14 => 'V8110', + 15 => 'V8403', + 16 => 'V8409', + 17 => 'V8412', + 18 => 'V8413', + 19 => 'V8501', + 20 => 'V8502', + 21 => 'V8503', + 22 => 'V8505', + 23 => 'V8507', + 24 => 'V8508', + 25 => 'V8510', + 26 => 'V8511', + 27 => 'V8603', + ), + '@V9' => + array ( + 0 => 'V99', + 1 => 'V936', + 2 => 'V971 Core4', + 3 => 'V971s Core4', + 4 => 'V972 Core4', + 5 => 'V973 Core4', + 6 => 'V975 Core4', + 7 => 'V975i', + 8 => 'V975m', + 9 => 'V975m Core4', + 10 => 'V975s Core4', + 11 => 'V961', + 12 => 'V9', + 13 => 'V9S', + 14 => 'V9e', + 15 => 'V9e+', + 16 => 'V9A', + 17 => 'V9C', + ), + '@VA' => + array ( + 0 => 'Vandroid S5E', + 1 => 'Vandroid T1J', + 2 => 'Vandroid T3-A', + 3 => 'Vandroid T3i', + 4 => 'Vandroid T', + 5 => 'VAP430', + ), + '@VE' => + array ( + 0 => 'vexpress a9', + 1 => 'Ventana', + 2 => 'Vendor Optimus', + 3 => 'VEOLO', + 4 => 'VEOLO2', + 5 => 'Vega', + 6 => 'VegaBean!', + 7 => 'Venture', + 8 => 'Venue!!', + 9 => '(OV-|Overmax|Vertis)!!', + 10 => 'VEGA NO.6', + 11 => 'verykool!!', + 12 => 'Vertu Aster T', + 13 => 'VERTU Ti', + ), + '@VF' => + array ( + 0 => 'VF-895N', + 1 => 'VF-1397', + 2 => 'VF-1497', + ), + '@VI' => + array ( + 0 => 'VirtualBox!', + 1 => 'victoriabay', + 2 => 'Viva C701', + 3 => 'Viva H701', + 4 => 'Viva H701 LTE CZ', + 5 => 'VivaH7LTE', + 6 => 'VivaH8LTE', + 7 => 'VivaH10LTE', + 8 => 'Viva i7G', + 9 => 'Viva i10HD', + 10 => 'Viva i701G TM', + 11 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', + 12 => 'VICTORY', + 13 => 'Victory 2', + 14 => 'Victory 3', + 15 => 'Vibo-A688', + 16 => 'VitMod ExtraLite 1.6.5.fullodex for HTC HD7 Pro', + 17 => 'Vivid 4G', + 18 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + 19 => 'Vibrantmtd', + 20 => 'Vibrant T959', + 21 => 'victorys s8', + 22 => 'Victorys V8', + 23 => 'Videocon!!', + 24 => 'ViewSonic-V350', + 25 => 'ViewPhone3', + 26 => 'ViewPad 4', + 27 => 'ViewSonic-ViewPad4', + 28 => 'ViewPad7', + 29 => 'ViewPad 7D', + 30 => 'ViewPad 7D Pro', + 31 => 'ViewSonic-ViewPad7e', + 32 => 'ViewPad7e', + 33 => 'ViewPad 7Q', + 34 => 'ViewPad 7Q Plus', + 35 => 'ViewPad 7Q Pro', + 36 => 'ViewPad7X', + 37 => 'ViewPad 9Q', + 38 => 'ViewPad 10e', + 39 => 'ViewPad 10S', + 40 => 'ViewPad 70Q', + 41 => 'ViewPad97A', + 42 => 'ViewPad97a K1', + 43 => 'ViewPad97a Pro', + 44 => 'ViewPad 97Q', + 45 => 'ViewPad 100Q', + 46 => 'ViewPad 100N Pro', + 47 => 'ViewPad 701N', + 48 => 'ViewSonic VB733', + 49 => 'VINUS!!', + 50 => '(BBG-|VIV-)?vivo!!', + 51 => 'Viettel i5', + 52 => 'VIETTEL V8404!', + 53 => 'Viettel V8410', + 54 => 'VIETTEL V8411', + 55 => 'Viettel V8502', + 56 => 'VIETTEL V8506', + 57 => 'VIETTEL V8509', + ), + '@VK' => + array ( + 0 => 'VK410', + 1 => 'VK700', + 2 => 'VK810 4G', + 3 => 'VK815', + ), + '@VL' => + array ( + 0 => 'VL-[0-9]{3,3}!!', + ), + '@VM' => + array ( + 0 => 'VMware Virtual Platform', + 1 => '(AC|BC|LC|MT|RC|QS|VM|TS|OC)[0-9]{4,4}[A-Z]!!', + 2 => 'VM670', + ), + '@VN' => + array ( + 0 => '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!', + ), + '@VO' => + array ( + 0 => 'Vogue', + 1 => 'Volantis', + 2 => 'Volantisg', + 3 => 'VOYAGER DG300', + 4 => 'VOYAGER2 DG310', + 5 => 'Vox', + 6 => 'Vortex', + 7 => 'vollo Vi86', + 8 => 'VOTO V5', + 9 => 'VOTO VT868', + 10 => 'VOTO VT888', + 11 => 'VOTO W5300', + 12 => 'VOTO X2', + 13 => 'VOYO A15', + 14 => 'voyo X6', + 15 => 'Vodafone!!', + ), + '@VS' => + array ( + 0 => 'VS[0-9]{3,3}!!', + 1 => 'VS TOUCH!!', + 2 => 'VSD220', + 3 => 'VSD221', + 4 => 'VSD231', + 5 => 'VSD241', + 6 => 'Vsun i9', + 7 => 'Vsun V9', + ), + '@VT' => + array ( + 0 => 'VT6078', + 1 => 'VT75C', + 2 => 'VTAB1008', + 3 => 'VTAB3010', + ), + '@VW' => + array ( + 0 => 'VW RCBKK1', + ), + '@VX' => + array ( + 0 => 'VX-100', + 1 => 'VX580A', + 2 => 'VX580W', + 3 => 'VX610A', + ), + '@W1' => + array ( + 0 => 'W10', + 1 => 'W10 V2.0', + 2 => 'w13pro', + 3 => 'W13PRO V2.0', + 4 => 'W17PRO(Dualcore)', + 5 => 'W17PRO JB Dualcore', + 6 => 'W100', + ), + '@W2' => + array ( + 0 => 'W200', + 1 => 'W22PRO', + 2 => 'W22PRO 3G', + 3 => 'W27(Dualcore)', + 4 => 'W28(Dualcore)', + 5 => 'W20', + ), + '@W3' => + array ( + 0 => 'W337', + 1 => 'W3620', + 2 => 'W30(QuadCore)', + 3 => 'w30hd(QuadCore)', + 4 => 'W30HDPRO', + ), + '@W4' => + array ( + 0 => 'w42(QuadCore)', + ), + '@W5' => + array ( + 0 => 'W5510', + ), + '@W6' => + array ( + 0 => 'W606', + 1 => 'W619', + 2 => 'W686', + 3 => 'W626', + 4 => 'W6350', + 5 => 'W6360', + 6 => 'W6500', + 7 => 'W6620', + 8 => 'W6', + 9 => 'W6HD ICS', + 10 => 'W6HD ICS FULL', + ), + '@W7' => + array ( + 0 => 'W711', + 1 => 'W757', + 2 => 'W700', + 3 => 'W732', + ), + '@W8' => + array ( + 0 => 'W820', + 1 => '(GIO-)?(GiONEE[- ])?W800!', + 2 => 'W800', + 3 => 'W806', + 4 => 'W808', + 5 => 'W810', + 6 => 'W880', + 7 => 'W8', + 8 => 'W8 beyond', + ), + '@W9' => + array ( + 0 => 'W900', + 1 => 'W990', + ), + '@WA' => + array ( + 0 => 'WA-U420D', + 1 => 'WALSUN S1 Pro', + 2 => 'WALSUN S2', + 3 => 'Walton Primo', + 4 => 'WALTON Primo C1', + 5 => 'WALTON Primo-D1', + 6 => 'Walton Primo F2', + 7 => 'WALTON Primo-G1', + 8 => 'WALTON Primo G1', + 9 => 'Walton Primo H3', + 10 => 'WALTON H3', + 11 => 'WALTON Primo HMmini', + 12 => 'WALTON Primo-N1', + 13 => 'Walton Primo R1', + 14 => 'WALTON Primo S3', + 15 => '(WALTON )?Primo-X1!', + 16 => 'Walpad 8b', + 17 => 'Walpad 8x', + 18 => 'WAX', + ), + '@WE' => + array ( + 0 => 'WellcoM-A86', + 1 => 'WellcoM-A88', + 2 => 'WellcoM-A89', + 3 => 'WellcoM-A89-Plus', + 4 => 'WellcoM-A99', + 5 => 'WellcoM-A800', + 6 => 'WEXLER. ZEN 5', + 7 => 'WEXLER TAB7ID', + 8 => 'WEXLER-TAB-7iS', + 9 => 'WEXLER-TAB-7T', + 10 => 'WEXLER.BOOK T7008', + ), + '@WF' => + array ( + 0 => 'WF7C', + ), + '@WH' => + array ( + 0 => 'WHAM WG40', + ), + '@WI' => + array ( + 0 => 'Wingray', + 1 => 'Wildfire S!', + 2 => 'Wildfire!', + 3 => 'Wiko Cink Five', + 4 => 'Wiko Cink Peax', + 5 => 'WIKO-CINK PEAX', + 6 => 'Wiko Cink Slim', + 7 => 'WIKO-CINK SLIM', + 8 => 'Wiko Rainbow', + 9 => 'Wiko Stairway', + ), + '@WL' => + array ( + 0 => 'WL-101GQC', + ), + '@WM' => + array ( + 0 => 'WM8650', + 1 => 'WM8650-mid', + 2 => 'wm8710-tvbox', + 3 => 'WM8850-mid', + ), + '@WO' => + array ( + 0 => 'Woxter!!', + ), + '@WS' => + array ( + 0 => 'WS171', + ), + '@WT' => + array ( + 0 => 'WT[0-9]{2,2}[a-z]!!', + ), + '@WX' => + array ( + 0 => 'WX04K', + 1 => 'WX06K', + 2 => 'WX10K', + 3 => 'WX[0-9]{3,3}!!', + 4 => 'WX04SH', + 5 => 'WX05SH', + 6 => 'Wxt Tab PC 65CXi', + ), + '@X-' => + array ( + 0 => '(Explay|X-tremer|ActiveD|Informer|Surfer)!!', + 1 => 'X-treme PQ11', + 2 => 'X-treme PQ15', + 3 => 'X-tremePQ22', + 4 => 'X-basic', + 5 => 'X-basic2', + 6 => 'X-maxi', + 7 => 'X-medium', + ), + '@X0' => + array ( + 0 => 'X002', + 1 => 'X003', + 2 => 'X005', + ), + '@X1' => + array ( + 0 => 'X1 Soul', + 1 => 'X1 Soul Mini', + 2 => 'X1 mini Soul', + 3 => 'X1 Soul Xtreme', + 4 => 'X1 Xtreme Mini', + 5 => 'X1', + 6 => 'X1 7.0', + 7 => 'X1 Grand', + 8 => 'X1010', + 9 => 'X10(a|i|iv|i-o|s)?$!', + 10 => 'X10 ?(Mini ?Pro)$!', + 11 => 'X10 ?(Mini)$!', + 12 => 'X10H(G3C5)', + 13 => 'X10HD 3G(M6K6)', + 14 => 'X16 Power(D6F7)', + 15 => 'X16HD (K3J3)', + 16 => 'X16HD 3G(M5J5)', + ), + '@X2' => + array ( + 0 => 'X2 Soul', + 1 => 'X2 Soul Lite', + 2 => 'X2 Soul Lite TM', + 3 => 'X2 Soul Mini', + 4 => 'X2 Soul Mini TM', + 5 => 'X2 Soul PRO', + 6 => 'X2 Soul Style', + 7 => 'X2 Soul Style TM', + 8 => 'X2 Soul Style Plus', + 9 => 'X2 Soul Xtreme', + 10 => 'X2 Twin', + ), + '@X3' => + array ( + 0 => 'X3 Soul', + 1 => 'X3 Soul mini', + 2 => 'X325a', + 3 => 'X3-Ice MIUI XT720 Memorila Classics', + ), + '@X4' => + array ( + 0 => 'X403', + ), + '@X5' => + array ( + 0 => 'X550', + 1 => 'X515d', + 2 => 'X515e', + 3 => 'X525a', + 4 => 'X505', + 5 => 'X506', + 6 => 'X506S', + 7 => 'X507Q', + 8 => 'X500', + 9 => 'X500 USA General', + 10 => 'X501 USA Cricket', + 11 => 'X501 USA RS', + ), + '@X7' => + array ( + 0 => 'X710d', + 1 => 'X720D', + 2 => 'X710E', + 3 => 'X7G', + 4 => 'X720', + 5 => 'X70 3G (C5D9)', + 6 => 'X70 R(C7F9)', + 7 => 'X708S', + ), + '@X8' => + array ( + 0 => '(GIO-)?(GiONEE[- ])?X817!', + 1 => 'X8', + 2 => 'X80(C4M5)', + 3 => 'X80h', + 4 => 'X80h(FB5M)', + 5 => 'X80h(FB6M)', + 6 => 'X80HD(G2N5)', + 7 => 'X80HD(G2N6)', + 8 => 'X80HD(G2N8)', + 9 => 'X80HD(G2N9)', + 10 => 'X81-8G3D', + 11 => 'X89 (E7ED)', + 12 => 'X89HD (H21C)', + ), + '@X9' => + array ( + 0 => 'X920e', + 1 => 'X9', + 2 => 'X903', + 3 => 'X905', + 4 => 'X906', + 5 => 'X907', + 6 => 'X909', + 7 => 'X909T', + 8 => 'X9000', + 9 => 'X9006', + 10 => 'X9007', + 11 => 'X9015', + 12 => 'X9017', + 13 => 'X9070', + 14 => 'X9076', + 15 => 'X9077', + 16 => 'X90HD (M2PC)', + 17 => 'X98 3G(HKC1)', + 18 => 'X98 3G(HKC2)', + 19 => 'X98 3G(HKC3)', + 20 => 'X98 3G(lite)', + 21 => 'X98 Air(C5KN)', + 22 => 'X98 Air 3G', + 23 => 'X98 Air 3G(Smile)', + 24 => 'X98 Air 3G(C5J5)', + 25 => 'X98 Air 3G(C5J6)', + 26 => 'X98 Air 3G(C5J8)', + 27 => 'X98 Air 3G(C6J6)', + 28 => 'X98 Air 3G(C8J6)', + 29 => 'X98 Air 3G(C8J7)', + 30 => 'X98 Air 3G(C9J6)', + 31 => 'X98 Air 3G(C9J7)', + 32 => 'X98 Air 3G(C9J8)', + 33 => 'X98 Air II', + 34 => 'X98 Air II(HG5N)', + 35 => 'X98 Air II(HG6M)', + 36 => 'X98 Air II(HG7N)', + 37 => 'X98 Air II(HG9M)', + 38 => 'X98 Air II(HG9N)', + 39 => 'X98 Air III', + 40 => 'X98 Air III(M5C5)', + 41 => 'X98 Air III(M5C6)', + 42 => 'X98 Pro (K9C6)', + ), + '@XA' => + array ( + 0 => 'Xamarin Android Player!', + ), + '@XC' => + array ( + 0 => 'XCD 28', + 1 => 'XCD35', + ), + '@XD' => + array ( + 0 => '(NMP|MBR|XDK|XDS|XMP)\\-!!', + 1 => 'XDP-100R', + ), + '@XE' => + array ( + 0 => 'XELIO', + 1 => 'XELIO7PHONETAB', + 2 => 'Xelio 7 pro', + 3 => 'XELIO7PRO', + 4 => 'XELIO10 QUAD', + 5 => 'XELIO10EXTREME', + 6 => 'Xelio 10 Pro', + 7 => 'Xelio10Pro', + 8 => 'XELIO P900A', + 9 => 'Xenta-TAB07-210', + 10 => 'Xenta-TAB07-211', + 11 => 'Xenta TAB07-200', + 12 => 'Xenta TAB08-200', + 13 => 'Xenta TAB08-201-3G', + 14 => 'Xenta TAB9-200', + 15 => 'Xenta TAB09-211', + 16 => 'Xenta TAB10-211', + 17 => 'Xenta TAB10-201', + 18 => 'Xenta TAB13-201', + ), + '@XI' => + array ( + 0 => 'Xiaomi M1', + 1 => 'Xiaomi MI-2S', + 2 => 'xiaomi M3', + 3 => 'Xiaomi Mi 4', + 4 => 'xiaomi M4', + 5 => 'Xiaomi M5', + 6 => 'Xiaomi Redmi', + 7 => 'Xiaomi Redmi 1s', + 8 => 'Xiaomi Redmi One S', + 9 => 'Xiaomi Note 4G', + 10 => 'Xiaomi Note2', + 11 => '(Xiaomi )?20130(22|23)!', + ), + '@XL' => + array ( + 0 => 'XL39h', + ), + '@XM' => + array ( + 0 => '(NMP|MBR|XDK|XDS|XMP)\\-!!', + 1 => 'XM50h', + 2 => 'XM50t', + ), + '@XO' => + array ( + 0 => '(XOLO )?[ABQX][0-9]{3,4}!!', + 1 => 'XOLO One', + 2 => 'XOLO Play', + 3 => 'XOLO T1000', + 4 => 'Xolo QC800', + 5 => 'XOOM', + 6 => 'XOOM 2!', + 7 => 'XOOM MZ606', + 8 => 'Xoom Wifi', + 9 => 'Xoom LTE', + 10 => 'Xoom 3G', + 11 => 'XO Learning tablet', + ), + '@XP' => + array ( + 0 => 'Xperia Z Ultra', + 1 => 'XPRESS PRO', + 2 => 'Xperia!!', + 3 => '(Symphony|Xplorer)!!', + 4 => 'xPAD-70', + ), + '@XT' => + array ( + 0 => 'XT[0-9]{3,3}!!', + 1 => 'xt880b', + 2 => '(Hisense )?(LED[0-9]{2,2}(G|K|L|EC|XT)[0-9]{2,3})!', + 3 => 'Xteam Smartpad 810c', + 4 => 'Xteam 4.8 Smartpad 810c', + 5 => 'XT[0-9]{3,4}!!', + 6 => 'Xtab1081HD', + 7 => 'Xtreme V10', + 8 => 'Xtreme V20', + 9 => 'Xtreme-V30', + 10 => 'xTAB-7X', + 11 => 'xTAB-9', + 12 => 'xTAB-70!', + 13 => 'xTAB-100!', + 14 => 'Xtouch X405', + 15 => 'Xtreamer Mobile AiKi', + 16 => 'Xtreamer Mobile AiKi a7*', + 17 => 'Xtreamer Joyz', + ), + '@XW' => + array ( + 0 => 'XW-I8', + ), + '@Y2' => + array ( + 0 => 'Y2', + ), + '@YD' => + array ( + 0 => 'YD201', + ), + '@YE' => + array ( + 0 => 'Yellowstone', + 1 => '(Andy|Yezz)!!', + ), + '@YO' => + array ( + 0 => 'youwave custom', + 1 => 'YOGA Tablet!!', + ), + '@YP' => + array ( + 0 => 'YPY-72SIM', + 1 => 'YPY-73G', + 2 => 'Ypy 7 - TB07FTA', + 3 => 'YPY 07FTA', + 4 => 'YPY 07FTAB', + 5 => 'YPY 07FTAB PA', + 6 => 'YPY 07FTB', + 7 => 'YPY 07FTBF', + 8 => 'Ypy 7 - TB07STA', + 9 => 'YPY 07STB', + 10 => 'YPY 07STBF', + 11 => 'YPY 10FTA', + 12 => 'YPY10FTA', + 13 => 'YPY 10FTB', + 14 => 'YPY 10FTBF', + 15 => 'YPY 10STB', + 16 => 'YPY 10STBF', + 17 => 'YPY AB7D', + 18 => 'YPY AB7DC', + 19 => 'YPY AB10D', + 20 => 'YPY AB10DC', + 21 => 'YPY ABXD', + 22 => 'YPY J213', + 23 => 'YPY S350', + 24 => 'YPY S350 PLUS', + 25 => 'YPY S400', + 26 => 'YPY S405', + 27 => 'YPY S450', + 28 => 'YPY S460', + 29 => 'YPY S500', + 30 => 'YPY TQ7', + 31 => 'YP-G!!', + 32 => 'YP712', + ), + '@YU' => + array ( + 0 => 'yukkabeach', + 1 => 'YU5050', + 2 => 'YUSUN E98', + 3 => 'YUSUN L71', + 4 => 'YUSUN L88', + 5 => 'YUSUN LA2-T', + 6 => 'YUSUN LA2 T', + 7 => 'YUSUN LA2-T1', + 8 => 'YUSUN LA2 T1', + 9 => 'YUSUN LA2-W', + 10 => 'YUSUN LA2 W1', + 11 => 'YUSUN T22', + 12 => 'YUSUN-T22', + 13 => 'YUSUN T30', + 14 => 'YUSUN T31', + 15 => 'YUSUN T50', + 16 => 'YUSUN T85', + 17 => 'YUSUN W90', + 18 => 'YUSUN W306', + 19 => 'yusun W702', + 20 => 'YUSUN W706', + 21 => 'YUSUN W708', + 22 => 'YUSUN - W 800', + 23 => 'YUSUN--W 800', + 24 => 'YUSUN W808', + 25 => 'YUSUN -- W 900', + ), + '@YX' => + array ( + 0 => 'YX-YUSUN E80', + 1 => 'YX-YUSUN E89', + 2 => 'YX-YUSUN E96', + ), + '@Z0' => + array ( + 0 => 'Z002', + 1 => 'Z007', + 2 => 'Z008', + 3 => 'Z008D', + 4 => 'Z00A', + 5 => 'Z00AD', + 6 => 'Z00ADA', + 7 => 'Z00ADB', + 8 => 'Z00D', + 9 => 'Z00ED', + 10 => 'Z00EDB', + 11 => 'Z00LD', + 12 => 'Z00LDC', + 13 => 'Z00LDD', + 14 => 'Z00MD', + 15 => 'Z00RD', + 16 => 'Z00TD', + 17 => 'Z00TDA', + 18 => 'Z00WD', + 19 => 'Z011D', + 20 => 'Z00UD', + 21 => 'Z00UDA', + 22 => 'Z00UDB', + 23 => 'Z00UDC', + 24 => 'Z00SD', + 25 => 'Z00VD', + 26 => 'Z00XS', + 27 => 'Z00XSA', + 28 => 'Z00XSB', + 29 => 'Z010D', + 30 => 'Z010DA', + 31 => 'Z010DD', + 32 => 'Z012DA', + 33 => 'Z00YD', + ), + '@Z1' => + array ( + 0 => '(BB )?Z10$!', + 1 => '(HUAWEI )?(CRR|MATE|MT1|MT2|MT7|M200|NXT|Z100)!!', + 2 => 'Z1i', + ), + '@Z2' => + array ( + 0 => 'Z282 C91', + ), + '@Z3' => + array ( + 0 => '(BB )?Z30$!', + ), + '@Z4' => + array ( + 0 => 'Z4', + 1 => 'Z4 mini', + ), + '@Z5' => + array ( + 0 => 'Z520m', + ), + '@Z6' => + array ( + 0 => 'Z660G', + 1 => 'Z665C', + 2 => 'Z667', + 3 => 'Z667G', + 4 => 'Z667T', + ), + '@Z7' => + array ( + 0 => 'Z71', + 1 => 'Z710', + 2 => 'Z710e', + 3 => 'Z715e', + 4 => 'Z730', + 5 => 'Z740', + 6 => 'Z740G', + 7 => 'Z750C', + 8 => 'Z752C', + 9 => 'Z753G', + 10 => 'Z768G', + 11 => 'Z777', + 12 => 'Z787', + 13 => 'Z788G', + 14 => 'Z791G', + 15 => 'Z792', + 16 => 'Z795G', + 17 => 'Z796C', + 18 => 'Z797C', + ), + '@Z8' => + array ( + 0 => 'Z818L', + 1 => 'Z819L', + ), + '@Z9' => + array ( + 0 => 'Z930L', + 1 => 'Z932L', + 2 => 'Z936L', + 3 => 'Z970', + 4 => 'Z987', + 5 => 'Z992', + ), + '@ZA' => + array ( + 0 => 'Zaffire 785', + 1 => 'Zaffire 970', + 2 => 'ZA950', + 3 => 'ZA966', + 4 => 'ZA985', + ), + '@ZB' => + array ( + 0 => 'ZBOX-ID18', + 1 => 'ZBOX-ID81', + ), + '@ZE' => + array ( + 0 => 'ZenWatch', + 1 => 'ZenWatch 2', + 2 => 'Zenith', + 3 => 'Zenfone 5 LTE', + 4 => 'ZenFone 2', + 5 => 'ZenFone 2E', + 6 => '(Highscreen|Alpha|Bay|Cosmo|Explosion|Power|Prime|Zera)!!', + 7 => 'ZEN 4.5', + 8 => 'ZEN 4.7', + 9 => 'ZENITHINK C94!', + ), + '@ZI' => + array ( + 0 => 'Zii!!', + 1 => 'Zio P2', + 2 => 'Zio', + 3 => 'ZiiLABS ViewBook 730', + 4 => 'Zigo Eon6i', + 5 => 'Zigo Eon7i', + 6 => 'Zigo Nebula Tab 7.1', + 7 => 'Ziss Ranger HD', + 8 => 'Zilo', + ), + '@ZO' => + array ( + 0 => 'Zoom', + 1 => '(Zopo )?ZP ?[0-9]{3,3}!!', + ), + '@ZP' => + array ( + 0 => '(Zopo )?ZP ?[0-9]{3,3}!!', + ), + '@ZT' => + array ( + 0 => 'zt180', + 1 => 'ZTE G[0-9]{3,3}!!', + 2 => 'ZTE Q[0-9]{3,3}!!', + 3 => 'ZTE Q[0-9]!!', + 4 => 'ZTE T[0-9]!!', + 5 => '(ZTE )?Blade!!', + 6 => 'ZTE Geek!!', + 7 => '(ZTE )?Grand!!', + 8 => 'ZTE Kis!!', + 9 => 'ZTE Libra', + 10 => 'ZTE LINK', + 11 => 'ZTE T T9', + 12 => 'ZTE V7073', + 13 => 'ZTE V9', + 14 => 'ZTE V9A', + 15 => 'ZTE C V9E', + 16 => 'ZTE V7273', + 17 => 'ZTE R22', + 18 => 'ZTE V70', + 19 => 'ZTE V72', + 20 => 'ZTE V72A', + 21 => 'ZTE K97', + 22 => 'ZTE T T98', + 23 => 'ZTE 975', + 24 => 'ZTE Skate', + 25 => 'ZTE Skate 2', + 26 => 'ZTE STAR', + 27 => 'ZTE Star 1', + 28 => 'ZTE Tureis', + 29 => 'ZTE S118', + 30 => 'ZTE S251', + 31 => 'ZTE S291', + 32 => 'ZTE X500', + 33 => 'ZTE C X500', + 34 => 'ZTE C N600!', + 35 => 'ZTE C N606', + 36 => 'ZTE Z667', + 37 => 'ZTE Z667G', + 38 => 'ZTE Z669', + 39 => 'ZTE C N700', + 40 => 'ZTE U N720', + 41 => 'ZTE U N721', + 42 => 'ZTE P727A', + 43 => 'ZTE Z740', + 44 => 'ZTE Z740G', + 45 => 'ZTE C R750', + 46 => 'ZTE C R750+', + 47 => 'ZTE Z753G', + 48 => 'ZTE Z755', + 49 => 'ZTE C N760', + 50 => 'ZTE U V760', + 51 => 'ZTE CLARO Q1', + 52 => 'ZTE LEO M1', + 53 => 'ZTE LEO S1', + 54 => 'ZTE LEO S2', + 55 => 'ZTE LEO Q1', + 56 => 'ZTE V765M', + 57 => 'ZTE LEO Q2', + 58 => 'ZTE V768', + 59 => 'ZTE V769M', + 60 => 'ZTE Z777', + 61 => 'ZTE V779M', + 62 => 'ZTE C N780', + 63 => 'ZTE Z787', + 64 => 'ZTE N788', + 65 => 'ZTE Kis Pro', + 66 => 'ZTE V788!', + 67 => 'ZTE U788!', + 68 => 'ZTE N789', + 69 => 'ZTE B790', + 70 => 'ZTE N790!', + 71 => 'ZTE T790', + 72 => 'ZTE U790', + 73 => 'ZTE V790', + 74 => 'ZTE U791!', + 75 => 'ZTE V791', + 76 => 'ZTE Z791G', + 77 => 'ZTE B792', + 78 => 'ZTE U793', + 79 => 'ZTE V793', + 80 => 'ZTE B795', + 81 => 'ZTE N795', + 82 => 'ZTE U795!', + 83 => 'ZTE V795', + 84 => 'ZTE N798!', + 85 => 'ZTE N799!', + 86 => 'ZTE T U802', + 87 => 'ZTE T U805', + 88 => 'ZTE T U806', + 89 => 'ZTE N807', + 90 => 'ZTE U807', + 91 => 'ZTE U807N', + 92 => 'ZTE V807', + 93 => 'ZTE U808', + 94 => 'ZTE V808', + 95 => 'ZTE U809', + 96 => 'ZTE V809', + 97 => 'ZTE V811', + 98 => 'ZTE V811W', + 99 => 'ZTE Z812', + 100 => 'ZTE V815W', + 101 => 'ZTE T U812', + 102 => 'ZTE Z813', + 103 => 'ZTE V816W', + 104 => 'ZTE U817', + 105 => 'ZTE V817', + 106 => 'ZTE N818', + 107 => 'ZTE U818', + 108 => 'ZTE V818', + 109 => 'ZTE U819', + 110 => 'ZTE GV821', + 111 => 'ZTE V829', + 112 => 'ZTE T U830', + 113 => 'ZTE V830W', + 114 => 'ZTE Z830', + 115 => 'ZTE Racer', + 116 => 'ZTE U X850', + 117 => 'ZTE X850', + 118 => 'ZTE U V852', + 119 => 'ZTE N855D', + 120 => 'ZTE N855D+', + 121 => 'ZTE U V856', + 122 => 'ZTE V856', + 123 => 'ZTE U V857', + 124 => 'ZTE U V859', + 125 => 'ZTE-U V859', + 126 => 'ZTE V860', + 127 => 'ZTE-860U', + 128 => 'ZTE U? X876!', + 129 => 'ZTE X876', + 130 => 'ZTE V877!', + 131 => 'ZTE U879', + 132 => 'ZTE A880', + 133 => 'ZTE B880', + 134 => 'ZTE C N880!', + 135 => 'ZTE R880H', + 136 => 'ZTE ?U880!', + 137 => 'ZTE T ?U880!', + 138 => 'ZTE (U )?V880!', + 139 => 'ZTE U(V)880+', + 140 => 'ZTE U-V880', + 141 => 'ZTE U V-880', + 142 => 'ZTE N880E!', + 143 => 'ZTE N880F', + 144 => 'ZTE N880G', + 145 => 'ZTE N881E', + 146 => 'ZTE N881F', + 147 => 'ZTE U V881', + 148 => 'ZTE V881', + 149 => 'ZTE V882', + 150 => 'ZTE N882E', + 151 => 'ZTE ?U885!', + 152 => 'ZTE U887', + 153 => 'ZTE V887', + 154 => 'ZTE U889', + 155 => 'ZTE V889!', + 156 => 'ZTE U V889D', + 157 => 'ZTE Blade III', + 158 => 'ZTE N900', + 159 => 'ZTE N900D', + 160 => 'ZTE T ?U900!', + 161 => 'ZTE M901C', + 162 => 'ZTE N909', + 163 => 'ZTE N909D', + 164 => 'ZTE N910', + 165 => 'ZTE N919', + 166 => 'ZTE N919D', + 167 => 'ZTE C X920', + 168 => 'ZTE U930!', + 169 => 'ZTE Grand X', + 170 => 'ZTE U930 Ultimate', + 171 => 'ZTE U930HD', + 172 => 'ZTE U935', + 173 => 'ZTE U950', + 174 => 'ZTE V955', + 175 => 'ZTE Z955L', + 176 => 'ZTE U956', + 177 => 'ZTE V956', + 178 => 'ZTE Z958', + 179 => 'ZTE N960', + 180 => 'ZTE (U )?V960!', + 181 => 'ZTE T ?U960!', + 182 => 'ZTE U960E', + 183 => 'ZTE U960s2', + 184 => 'ZTE U960s3', + 185 => 'ZTE V965', + 186 => 'ZTE V967S', + 187 => 'ZTEv967s', + 188 => 'ZTE U968', + 189 => 'ZTE U969', + 190 => 'ZTE N970', + 191 => 'ZTE U970!', + 192 => 'ZTE V970!', + 193 => 'ZTE Mimosa X', + 194 => 'ZTE V975', + 195 => 'ZTE N980', + 196 => 'ZTE N983', + 197 => 'ZTE V983', + 198 => 'ZTE Grand Era', + 199 => 'ZTE U985', + 200 => 'ZTE V985', + 201 => 'ZTE V985 Grand Era', + 202 => 'ZTE N986', + 203 => 'ZTE V ?987!', + 204 => 'ZTE Z987', + 205 => 'ZTE U988S', + 206 => 'ZTE V988', + 207 => 'ZTE Grand S', + 208 => 'ZTE Roamer', + 209 => 'ZTE Z990!', + 210 => 'ZTE Z992', + 211 => 'ZTE Z993', + 212 => 'ZTE Z995', + 213 => 'ZTE V998', + 214 => 'ZTE Z998', + 215 => 'ZTE V9800', + 216 => 'ZTE U9810', + 217 => 'ZTE U9815', + 218 => 'ZTE V9815', + 219 => 'ZTE Grand Memo LTE', + 220 => 'ZTE V9820', + 221 => 'ZTE N9120', + 222 => 'ZTE N9511', + 223 => 'ZTE Nubia Z7', + 224 => 'ZTE Nubia X6', + 225 => 'ZTE N5', + 226 => 'ZTE N5L', + 227 => 'ZTE N5S', + 228 => 'ZTE U5', + 229 => 'ZTE U5S', + 230 => 'ZTE V5S', + 231 => 'ZTE A2015', + 232 => 'ZTE A2016', + 233 => 'ZTE B2015', + 234 => 'ZTE C2016', + 235 => 'ZTE S2004', + 236 => 'ZTE S2005', + 237 => 'ZTE S2010', + 238 => 'ZTE W1010', + ), + '@ZU' => + array ( + 0 => 'ZUK Z1', + 1 => 'ZUK Z2', + ), + '@ZX' => + array ( + 0 => 'ZXY-ZTE-C X920', + 1 => 'ZXY-ZTE V6700', + 2 => 'ZXY-ZTE N8010', + 3 => 'ZXY-ZTE N8300', + 4 => '(ZXY-)?NX[0-9]{2,3}!!', + ), +); diff --git a/integration/whichbrowser/data/indices/models-asha.php b/integration/whichbrowser/data/indices/models-asha.php new file mode 100644 index 00000000..47fdbdc5 --- /dev/null +++ b/integration/whichbrowser/data/indices/models-asha.php @@ -0,0 +1,24 @@ + + array ( + 0 => 500, + 1 => 501, + 2 => '501s', + 3 => '501.1', + 4 => '501.2', + 5 => 502, + 6 => 503, + 7 => '503s', + ), + '@AS' => + array ( + 0 => 'Asha230SingleSIM', + 1 => 'Asha230DualSIM', + 2 => 'Asha500SingleSIM', + 3 => 'Asha500DualSIM', + ), +); diff --git a/integration/whichbrowser/data/indices/models-bada.php b/integration/whichbrowser/data/indices/models-bada.php new file mode 100644 index 00000000..c601c7e0 --- /dev/null +++ b/integration/whichbrowser/data/indices/models-bada.php @@ -0,0 +1,27 @@ + + array ( + 0 => 'GT- ?S52(50|53)!', + 1 => 'GT-S53(30|33)!', + 2 => 'GT-S5380!', + 3 => 'GT-S57(50|53)!', + 4 => 'GT-S57(80)!', + 5 => 'GT-S72(30|33)!', + 6 => 'GT-S7250!', + 7 => 'GT-S8500!', + 8 => 'GT- ?S8530!', + 9 => 'GT- ?S8600!', + ), + '@SC' => + array ( + 0 => 'SCH-F859!', + ), + '@SH' => + array ( + 0 => 'SHW-M410', + ), +); diff --git a/integration/whichbrowser/data/indices/models-brew.php b/integration/whichbrowser/data/indices/models-brew.php new file mode 100644 index 00000000..a3763037 --- /dev/null +++ b/integration/whichbrowser/data/indices/models-brew.php @@ -0,0 +1,118 @@ + + array ( + 0 => 'CDM8999', + 1 => 'CDM8992', + ), + '@CO' => + array ( + 0 => 'Coolpad D508', + 1 => 'Coolpad E600', + ), + '@E4' => + array ( + 0 => 'E4255', + ), + '@EX' => + array ( + 0 => 'EX200!', + ), + '@HS' => + array ( + 0 => 'HS-E316!', + ), + '@HU' => + array ( + 0 => 'HUAWEI U2801!', + 1 => 'HUAWEI U5200!', + ), + '@LG' => + array ( + 0 => 'LG272', + 1 => 'LG510', + ), + '@LN' => + array ( + 0 => 'LN510', + ), + '@LX' => + array ( + 0 => 'LX610', + ), + '@M2' => + array ( + 0 => 'M260!', + ), + '@M3' => + array ( + 0 => 'M390!', + ), + '@M5' => + array ( + 0 => 'M550!', + ), + '@P5' => + array ( + 0 => 'P5000', + ), + '@P6' => + array ( + 0 => 'P6020', + 1 => 'P6030', + ), + '@PL' => + array ( + 0 => 'PLS M330', + ), + '@S2' => + array ( + 0 => 'S2151!', + ), + '@SA' => + array ( + 0 => 'sam-r631', + ), + '@SC' => + array ( + 0 => 'SCH-B309!', + 1 => 'SCH-F839', + 2 => 'SCH-M519!', + 3 => 'SCH-S559!', + 4 => 'SCH-S579!', + 5 => 'SCH-U380', + 6 => 'SCH-U485', + 7 => 'SCH-U820', + 8 => 'SCH-W709!', + 9 => 'SCP-6750', + 10 => 'SCP6760', + 11 => 'SCP-6760', + 12 => 'SCP6780', + ), + '@SP' => + array ( + 0 => 'SPH M330', + 1 => 'Sprint M850', + ), + '@TX' => + array ( + 0 => 'TXT8045', + ), + '@VN' => + array ( + 0 => 'VN170', + 1 => 'VN271', + 2 => 'VN280', + 3 => 'VN360', + 4 => 'VN530', + ), + '@VX' => + array ( + 0 => 'VX9200!', + 1 => 'VX9600!', + 2 => 'VX11000', + ), +); diff --git a/integration/whichbrowser/data/indices/models-feature.php b/integration/whichbrowser/data/indices/models-feature.php new file mode 100644 index 00000000..258aaa52 --- /dev/null +++ b/integration/whichbrowser/data/indices/models-feature.php @@ -0,0 +1,202 @@ + + array ( + 0 => 'CK13[ai]?$!', + 1 => 'CK15[ai]?$!', + ), + '@CO' => + array ( + 0 => 'COCOON', + ), + '@EF' => + array ( + 0 => 'EF71', + ), + '@EX' => + array ( + 0 => 'EX115', + 1 => 'EX118', + 2 => 'EX119', + 3 => 'EX128', + 4 => 'EX225', + 5 => 'EX226', + 6 => 'EX430', + ), + '@F1' => + array ( + 0 => 'F100[ai]?$!', + ), + '@GM' => + array ( + 0 => 'GM360', + ), + '@GR' => + array ( + 0 => 'GR700', + ), + '@GS' => + array ( + 0 => 'GS290', + 1 => 'GS500', + ), + '@GT' => + array ( + 0 => 'GT500!', + 1 => 'GT550', + 2 => 'GT-B2710', + 3 => 'GT-B3210', + 4 => 'GT-B3313', + 5 => 'GT-C3200', + 6 => 'GT-C3222', + 7 => 'GT-C3322', + 8 => 'GT-C3500', + 9 => 'GT-C5010!', + 10 => 'GT-E1282!', + 11 => 'GT-E2152', + 12 => 'GT-E2220', + 13 => 'GT-E2222', + 14 => 'GT-E2202', + 15 => 'GT-E2250', + 16 => 'GT-E2252', + 17 => 'GT-E3213', + 18 => 'GT-E3309I', + 19 => 'GT-M8910', + 20 => 'GT-S3332', + 21 => 'GT-S33(50|53)!', + 22 => 'GT-S35(70|72)!', + 23 => 'GT-S5229', + 24 => 'GT-S5270!', + 25 => 'GT-S5610!', + 26 => 'GT-I6410!', + 27 => 'GT-I8320!', + 28 => 'GT-I8330!', + ), + '@J1' => + array ( + 0 => 'J105[ai]?$!', + 1 => 'J108[ai]?$!', + 2 => 'J10(i2?)?$!', + ), + '@J2' => + array ( + 0 => 'J20[ai]?$!', + ), + '@K6' => + array ( + 0 => 'K612', + ), + '@KC' => + array ( + 0 => 'KC910i', + ), + '@KP' => + array ( + 0 => 'KP500!', + 1 => 'KP570!', + ), + '@KU' => + array ( + 0 => 'KU990i', + ), + '@LI' => + array ( + 0 => 'Lightpipe', + ), + '@M3' => + array ( + 0 => 'm3510c', + ), + '@MO' => + array ( + 0 => 'MOTOQA1', + ), + '@P7' => + array ( + 0 => 'P7000', + ), + '@P9' => + array ( + 0 => 'P9020', + 1 => 'P9050', + ), + '@PL' => + array ( + 0 => 'PLS6600KJ', + ), + '@PM' => + array ( + 0 => 'PM-8200', + ), + '@S7' => + array ( + 0 => 'S7350', + ), + '@SA' => + array ( + 0 => 'sam-r560', + ), + '@SC' => + array ( + 0 => 'SCP-5500', + 1 => 'SCP-6600', + 2 => 'SCH-W169', + 3 => 'SCH-W279', + ), + '@SG' => + array ( + 0 => 'SGH-A667', + 1 => 'SGH-A697', + 2 => 'SGH-A877', + 3 => 'SGH-A927', + 4 => 'SGH-A997', + 5 => 'SGH-D880', + 6 => 'SGH-G600', + 7 => 'SGH-J700V', + 8 => 'SGH-S390G', + 9 => 'SGH-T189N', + 10 => 'SGHX660V', + 11 => 'SGH-Z107!', + 12 => 'SGH-Z130!', + 13 => 'SGH-Z500!', + ), + '@SM' => + array ( + 0 => 'SM-B313E', + 1 => 'SM-B350E', + 2 => 'SM-B780(A|W)!', + ), + '@TE' => + array ( + 0 => 'tecnot36', + ), + '@U1' => + array ( + 0 => 'U100[ai]?$!', + 1 => 'U10[ai]?$!', + ), + '@VO' => + array ( + 0 => 'Vodafone 575', + ), + '@W1' => + array ( + 0 => 'W100i?$!', + 1 => 'W150i?$!', + ), + '@W2' => + array ( + 0 => 'W20i?$!', + ), + '@WT' => + array ( + 0 => 'WT13i$!', + ), + '@X5' => + array ( + 0 => 'X5i$!', + ), +); diff --git a/integration/whichbrowser/data/indices/models-firefoxos.php b/integration/whichbrowser/data/indices/models-firefoxos.php new file mode 100644 index 00000000..d988e230 --- /dev/null +++ b/integration/whichbrowser/data/indices/models-firefoxos.php @@ -0,0 +1,55 @@ + + array ( + 0 => 'ALCATEL ONE TOUCH FIRE', + 1 => 'ALCATEL ONE TOUCH 4012A', + 2 => 'ALCATEL ONE TOUCH 4012X', + 3 => 'ALCATELOneTouch4012A!', + 4 => 'ALCATELOneTouch4012X!', + 5 => 'ALCATELOneTouch4019A!', + 6 => 'ALCATELOneTouch4019X!', + 7 => 'ALCATELOneTouch4020D!', + 8 => 'ALCATELOneTouch4022!', + 9 => 'ALCATELOneTouch4023!', + 10 => 'ALCATELOneTouch6015X!', + ), + '@HU' => + array ( + 0 => 'HUAWEI Ascend Y300-F1', + 1 => 'HUAWEIY300-F1', + ), + '@LG' => + array ( + 0 => 'LG-D3(00|01)!', + 1 => 'LGL25', + ), + '@MA' => + array ( + 0 => 'madai', + ), + '@ON' => + array ( + 0 => 'OneTouch4019A', + ), + '@OP' => + array ( + 0 => 'OPEN', + 1 => 'OpenC', + 2 => 'Open C', + 3 => 'OPENC2', + 4 => 'OPEN2', + ), + '@OR' => + array ( + 0 => 'Orange KLIF', + 1 => 'Orange KLIFD', + ), + '@ZT' => + array ( + 0 => 'ZTEOPEN', + ), +); diff --git a/integration/whichbrowser/data/indices/models-kddi.php b/integration/whichbrowser/data/indices/models-kddi.php new file mode 100644 index 00000000..044fc9bf --- /dev/null +++ b/integration/whichbrowser/data/indices/models-kddi.php @@ -0,0 +1,393 @@ + + array ( + 0 => 'CA11', + 1 => 'CA12', + 2 => 'CA13', + 3 => 'CA14', + 4 => 'CA21', + 5 => 'CA22', + 6 => 'CA23', + 7 => 'CA24', + 8 => 'CA25', + 9 => 'CA26', + 10 => 'CA27', + 11 => 'CA28', + 12 => 'CA31', + 13 => 'CA32', + 14 => 'CA33', + 15 => 'CA34', + 16 => 'CA35', + 17 => 'CA36', + 18 => 'CA37', + 19 => 'CA38', + 20 => 'CA39', + 21 => 'CA3A', + 22 => 'CA3B', + 23 => 'CA3C', + 24 => 'CA3D', + 25 => 'CA3E', + 26 => 'CA3F', + 27 => 'CA3G', + 28 => 'CA3H', + 29 => 'CA3I', + 30 => 'CA3J', + 31 => 'CA3K', + ), + '@DN' => + array ( + 0 => 'DN01', + 1 => 'DN11', + ), + '@ER' => + array ( + 0 => 'ERK0', + ), + '@FJ' => + array ( + 0 => 'FJ31', + ), + '@HI' => + array ( + 0 => 'HI01', + 1 => 'HI02', + 2 => 'HI11', + 3 => 'HI12', + 4 => 'HI13', + 5 => 'HI14', + 6 => 'HI21', + 7 => 'HI23', + 8 => 'HI24', + 9 => 'HI31', + 10 => 'HI32', + 11 => 'HI33', + 12 => 'HI34', + 13 => 'HI35', + 14 => 'HI36', + 15 => 'HI37', + 16 => 'HI38', + 17 => 'HI39', + 18 => 'HI3A', + 19 => 'HI3B', + 20 => 'HI3C', + 21 => 'HI3D', + 22 => 'HI3E', + 23 => 'HI3F', + 24 => 'HI3G', + 25 => 'HI3H', + ), + '@KC' => + array ( + 0 => 'KC3Q', + 1 => 'KC3S', + 2 => 'KC3V', + 3 => 'KC11', + 4 => 'KC12', + 5 => 'KC13', + 6 => 'KC14', + 7 => 'KC15', + 8 => 'KC21', + 9 => 'KC22', + 10 => 'KC23', + 11 => 'KC24', + 12 => 'KC25', + 13 => 'KC26', + 14 => 'KC27', + 15 => 'KC28', + 16 => 'KC29', + 17 => 'KC2A', + 18 => 'KC31', + 19 => 'KC32', + 20 => 'KC33', + 21 => 'KC34', + 22 => 'KC35', + 23 => 'KC36', + 24 => 'KC37', + 25 => 'KC38', + 26 => 'KC39', + 27 => 'KC3A', + 28 => 'KC3B', + 29 => 'KC3D', + 30 => 'KC3E', + 31 => 'KC3G', + 32 => 'KC3H', + 33 => 'KC3I', + 34 => 'KC3K', + 35 => 'KC3M', + 36 => 'KC3N', + 37 => 'KC3O', + 38 => 'KC3P', + 39 => 'KC3R', + 40 => 'KC3T', + 41 => 'KC3U', + 42 => 'KC3W', + 43 => 'KC3X', + 44 => 'KC3Y', + 45 => 'KC3Z', + 46 => 'KC41', + 47 => 'KC42', + 48 => 'KC43', + 49 => 'KC44', + 50 => 'KC45', + 51 => 'KC46', + 52 => 'KC47', + 53 => 'KC48', + 54 => 'KC4A', + 55 => 'KCC1', + 56 => 'KCC2', + 57 => 'KCI1', + 58 => 'KCI2', + 59 => 'KCT1', + 60 => 'KCT2', + 61 => 'KCT3', + 62 => 'KCT4', + 63 => 'KCT5', + 64 => 'KCT6', + 65 => 'KCT7', + 66 => 'KCT8', + 67 => 'KCT9', + 68 => 'KCTA', + 69 => 'KCTB', + 70 => 'KCTC', + ), + '@MA' => + array ( + 0 => 'MA11', + 1 => 'MA12', + 2 => 'MA13', + 3 => 'MA21', + 4 => 'MA31', + 5 => 'MA32', + 6 => 'MA33', + 7 => 'MA34', + 8 => 'MA35', + 9 => 'MAC1', + 10 => 'MAC2', + 11 => 'MAI1', + 12 => 'MAI2', + 13 => 'MAT1', + 14 => 'MAT2', + 15 => 'MAT3', + ), + '@MI' => + array ( + 0 => 'MIT1', + ), + '@PT' => + array ( + 0 => 'PT21', + 1 => 'PT23', + 2 => 'PT33', + 3 => 'PT34', + 4 => 'PT35', + 5 => 'PT36', + ), + '@SA' => + array ( + 0 => 'SA21', + 1 => 'SA22', + 2 => 'SA24', + 3 => 'SA25', + 4 => 'SA26', + 5 => 'SA27', + 6 => 'SA28', + 7 => 'SA29', + 8 => 'SA2A', + 9 => 'SA31', + 10 => 'SA32', + 11 => 'SA33', + 12 => 'SA34', + 13 => 'SA35', + 14 => 'SA36', + 15 => 'SA37', + 16 => 'SA38', + 17 => 'SA39', + 18 => 'SA3A', + 19 => 'SA3B', + 20 => 'SA3C', + 21 => 'SA3D', + 22 => 'SA3E', + ), + '@SH' => + array ( + 0 => 'SH31', + 1 => 'SH32', + 2 => 'SH33', + 3 => 'SH34', + 4 => 'SH35', + 5 => 'SH36', + 6 => 'SH37', + 7 => 'SH38', + 8 => 'SH39', + 9 => 'SH3A', + 10 => 'SH3B', + 11 => 'SH3C', + 12 => 'SH3D', + 13 => 'SH3E', + 14 => 'SH3F', + 15 => 'SH3G', + 16 => 'SH3H', + 17 => 'SH3I', + 18 => 'SH3J', + 19 => 'SH3K', + 20 => 'SH3L', + ), + '@SN' => + array ( + 0 => 'SN3K', + 1 => 'SN3T', + 2 => 'SN11', + 3 => 'SN13', + 4 => 'SN14', + 5 => 'SN15', + 6 => 'SN16', + 7 => 'SN17', + 8 => 'SN21', + 9 => 'SN22', + 10 => 'SN23', + 11 => 'SN24', + 12 => 'SN25', + 13 => 'SN26', + 14 => 'SN27', + 15 => 'SN28', + 16 => 'SN29', + 17 => 'SN31', + 18 => 'SN32', + 19 => 'SN33', + 20 => 'SN34', + 21 => 'SN35', + 22 => 'SN36', + 23 => 'SN37', + 24 => 'SN38', + 25 => 'SN39', + 26 => 'SN3A', + 27 => 'SN3B', + 28 => 'SN3C', + 29 => 'SN3D', + 30 => 'SN3E', + 31 => 'SN3F', + 32 => 'SN3G', + 33 => 'SN3H', + 34 => 'SN3I', + 35 => 'SN3J', + 36 => 'SN3L', + 37 => 'SN3M', + 38 => 'SN3N', + 39 => 'SN3O', + 40 => 'SN3P', + 41 => 'SN3Q', + 42 => 'SN3R', + 43 => 'SN3S', + 44 => 'SN3U', + 45 => 'SN3V', + ), + '@ST' => + array ( + 0 => 'ST22', + 1 => 'ST33', + 2 => 'ST11', + 3 => 'ST12', + 4 => 'ST13', + 5 => 'ST14', + 6 => 'ST21', + 7 => 'ST23', + 8 => 'ST24', + 9 => 'ST25', + 10 => 'ST26', + 11 => 'ST27', + 12 => 'ST28', + 13 => 'ST29', + 14 => 'ST2A', + 15 => 'ST2C', + 16 => 'ST2D', + 17 => 'ST31', + 18 => 'ST32', + 19 => 'ST34', + ), + '@SY' => + array ( + 0 => 'SY12', + 1 => 'SY13', + 2 => 'SY14', + 3 => 'SY15', + 4 => 'SYC1', + 5 => 'SYT1', + 6 => 'SYT2', + 7 => 'SYT3', + 8 => 'SYT4', + 9 => 'SY01', + 10 => 'SY02', + 11 => 'SY03', + 12 => 'SY11', + ), + '@TS' => + array ( + 0 => 'TS3Q', + 1 => 'TS3U', + 2 => 'TS3W', + 3 => 'TS01', + 4 => 'TS11', + 5 => 'TS12', + 6 => 'TS13', + 7 => 'TS14', + 8 => 'TS21', + 9 => 'TS22', + 10 => 'TS23', + 11 => 'TS24', + 12 => 'TS25', + 13 => 'TS26', + 14 => 'TS27', + 15 => 'TS28', + 16 => 'TS29', + 17 => 'TS2A', + 18 => 'TS2B', + 19 => 'TS2C', + 20 => 'TS2D', + 21 => 'TS2E', + 22 => 'TS31', + 23 => 'TS32', + 24 => 'TS33', + 25 => 'TS34', + 26 => 'TS35', + 27 => 'TS36', + 28 => 'TS37', + 29 => 'TS38', + 30 => 'TS39', + 31 => 'TS3A', + 32 => 'TS3B', + 33 => 'TS3C', + 34 => 'TS3D', + 35 => 'TS3E', + 36 => 'TS3G', + 37 => 'TS3H', + 38 => 'TS3I', + 39 => 'TS3J', + 40 => 'TS3K', + 41 => 'TS3L', + 42 => 'TS3M', + 43 => 'TS3N', + 44 => 'TS3O', + 45 => 'TS3P', + 46 => 'TS3R', + 47 => 'TS3S', + 48 => 'TS3T', + 49 => 'TS3V', + 50 => 'TS3X', + 51 => 'TS3Y', + 52 => 'TS3Z', + 53 => 'TS41', + 54 => 'TSC1', + 55 => 'TSI1', + 56 => 'TST1', + 57 => 'TST2', + 58 => 'TST3', + 59 => 'TST4', + 60 => 'TST5', + 61 => 'TST6', + 62 => 'TST7', + ), +); diff --git a/integration/whichbrowser/data/indices/models-palmos.php b/integration/whichbrowser/data/indices/models-palmos.php new file mode 100644 index 00000000..3fed3984 --- /dev/null +++ b/integration/whichbrowser/data/indices/models-palmos.php @@ -0,0 +1,115 @@ + + array ( + 0 => 'acer-momo', + 1 => 'acer-coco', + 2 => 'Acea-MZ01', + 3 => 'Acea-PD01', + ), + '@GR' => + array ( + 0 => 'grmn-3200', + 1 => 'grmn-3600', + 2 => 'grmn-3700', + ), + '@GS' => + array ( + 0 => 'gsRl-zicn', + 1 => 'gsRl-zcn2', + 2 => 'gsRl-zcn5', + ), + '@HS' => + array ( + 0 => 'hspr-H101', + 1 => 'hspr-H102', + ), + '@KW' => + array ( + 0 => 'kwc.-7135', + ), + '@PA' => + array ( + 0 => 'Palm-D061', + 1 => 'Palm-D062', + 2 => 'Palm-TunX', + 3 => 'Palm-stuj', + 4 => 'Palm-hbbs', + 5 => 'Palm-trnd', + 6 => 'Palm-ecty', + 7 => 'Palm-lith', + 8 => 'Palm-sky1', + 9 => 'Palm-D053', + 10 => 'Palm-D052', + 11 => 'Palm-D060', + 12 => 'Palm-MT64', + 13 => 'Palm-Cct1', + 14 => 'Palm-Zir4', + 15 => 'Palm-Frg1', + 16 => 'Palm-Frg2', + 17 => 'Palm-Arz1', + 18 => 'Palm-TnT5', + 19 => 'Palm-atc1', + 20 => 'Palm-D050', + 21 => 'Palm-Cubs', + 22 => 'Palm-Zi21', + 23 => 'Palm-D051', + 24 => 'Palm-Zi22', + 25 => 'Palm-Zpth', + 26 => 'Palm-Zi72', + ), + '@QC' => + array ( + 0 => 'qcom-qc20', + ), + '@SM' => + array ( + 0 => 'smsn-phix', + 1 => 'smsn-Phx2', + 2 => 'smsn-blch', + 3 => 'smsn-BLFM', + 4 => 'smsn-glxy', + ), + '@SO' => + array ( + 0 => 'sony-ystn', + 1 => 'sony-ysmt', + 2 => 'sony-ysm2', + 3 => 'sony-nsca', + 4 => 'sony-nsc2', + 5 => 'sony-vnce', + 6 => 'sony-mdna', + 7 => 'sony-npls', + 8 => 'sony-rdwd', + 9 => 'sony-crdb', + 10 => 'sony-tldo', + 11 => 'sony-mdrd', + 12 => 'sony-grnd', + 13 => 'sony-frta', + 14 => 'sony-cocs', + 15 => 'sony-glps', + 16 => 'sony-mcnd', + 17 => 'sony-vrna', + 18 => 'sony-atom', + 19 => 'sony-goha', + 20 => 'sony-leia', + 21 => 'sony-hwai', + 22 => 'sony-goku', + 23 => 'sony-luke', + 24 => 'sony-amno', + 25 => 'sony-prmr', + 26 => 'sony-ancy', + ), + '@TP' => + array ( + 0 => 'Tpwv-Rdog', + ), + '@TR' => + array ( + 0 => 'trgp-trg1', + 1 => 'trgp-trg2', + ), +); diff --git a/integration/whichbrowser/data/indices/models-s30plus.php b/integration/whichbrowser/data/indices/models-s30plus.php new file mode 100644 index 00000000..75b0dfd8 --- /dev/null +++ b/integration/whichbrowser/data/indices/models-s30plus.php @@ -0,0 +1,20 @@ + + array ( + 0 => 215, + ), + '@22' => + array ( + 0 => 220, + 1 => 222, + 2 => 225, + ), + '@23' => + array ( + 0 => 230, + ), +); diff --git a/integration/whichbrowser/data/indices/models-s40.php b/integration/whichbrowser/data/indices/models-s40.php new file mode 100644 index 00000000..8ec1e7ac --- /dev/null +++ b/integration/whichbrowser/data/indices/models-s40.php @@ -0,0 +1,249 @@ + + array ( + 0 => 109, + ), + '@11' => + array ( + 0 => 110, + 1 => 111, + 2 => '111.1', + 3 => 112, + 4 => 114, + ), + '@16' => + array ( + 0 => '1682c', + ), + '@20' => + array ( + 0 => 200, + 1 => 201, + 2 => 202, + 3 => 203, + 4 => 205, + 5 => '205.1', + 6 => '205.3', + 7 => 206, + 8 => '206.1', + 9 => 208, + 10 => '208.1', + 11 => '208.2', + 12 => '208.3', + 13 => '208.4', + 14 => 2055, + 15 => 2060, + ), + '@21' => + array ( + 0 => 210, + 1 => '210.2', + 2 => '210.3', + 3 => '210.4', + 4 => '210.5', + ), + '@22' => + array ( + 0 => '2220s!', + ), + '@23' => + array ( + 0 => '2320c!', + 1 => '2322c!', + 2 => '2323c!', + 3 => '2330c!', + ), + '@26' => + array ( + 0 => '2600c!', + 1 => '2680s!', + 2 => 2690, + 3 => 2692, + ), + '@27' => + array ( + 0 => '2700c!', + 1 => '2710c', + 2 => '2710c-2', + 3 => '2720a!', + 4 => '2730c!', + ), + '@30' => + array ( + 0 => 300, + 1 => 301, + 2 => '301.1', + 3 => 302, + 4 => 303, + 5 => 305, + 6 => 306, + 7 => 308, + 8 => 309, + 9 => 3020, + ), + '@31' => + array ( + 0 => 310, + 1 => 311, + 2 => '3109c', + 3 => '3110c', + 4 => '3120c', + 5 => '3120classic', + ), + '@32' => + array ( + 0 => '3208c', + ), + '@35' => + array ( + 0 => '3500c', + 1 => '3555b', + ), + '@36' => + array ( + 0 => '3600s', + 1 => '3610a', + ), + '@37' => + array ( + 0 => '3710fold', + 1 => '3720c', + ), + '@50' => + array ( + 0 => '5000!', + ), + '@51' => + array ( + 0 => 515, + 1 => '515.2', + 2 => '5130!', + 3 => '5130c!', + 4 => 5132, + ), + '@52' => + array ( + 0 => '5200!', + 1 => '5220!', + ), + '@53' => + array ( + 0 => '5300!', + 1 => '5310!', + 2 => 5330, + 3 => '5330-1d', + ), + '@56' => + array ( + 0 => '5610d!', + ), + '@60' => + array ( + 0 => '6070!', + ), + '@62' => + array ( + 0 => '6208c', + 1 => '6212c', + 2 => '6260s!', + 3 => '6230i!', + 4 => 6233, + 5 => 6234, + 6 => '6263!', + 7 => 6280, + ), + '@63' => + array ( + 0 => 6300, + 1 => '6300i', + 2 => 6301, + 3 => '6303c', + 4 => '6303classic', + 5 => '6303iclassic', + 6 => '6303ci', + 7 => 6350, + ), + '@65' => + array ( + 0 => '6500s!', + ), + '@66' => + array ( + 0 => '6600f!', + 1 => '6600s!', + 2 => '6600i!', + ), + '@67' => + array ( + 0 => '6700c!', + 1 => '6750c', + ), + '@70' => + array ( + 0 => '7070!', + ), + '@71' => + array ( + 0 => '7100s!', + ), + '@72' => + array ( + 0 => '7210s!', + 1 => '7210Supernova!', + 2 => '7230!', + ), + '@73' => + array ( + 0 => '7310c!', + ), + '@75' => + array ( + 0 => 7500, + 1 => '7510Supernova!', + ), + '@76' => + array ( + 0 => '7610Supernova!', + ), + '@88' => + array ( + 0 => '8800!', + ), + '@C1' => + array ( + 0 => 'C1-01!', + 1 => 'C1-02!', + 2 => 'C1-03!', + ), + '@C2' => + array ( + 0 => 'C2-00!', + 1 => 'C2-01!', + 2 => 'C2-02!', + 3 => 'C2-03!', + 4 => 'C2-05!', + 5 => 'C2-06!', + ), + '@C3' => + array ( + 0 => 'C3-00!', + 1 => 'C3-01!', + ), + '@X2' => + array ( + 0 => 'X2-00!', + 1 => 'X2-01!', + 2 => 'X2-02!', + 3 => 'X2-03!', + 4 => 'X2-05!', + ), + '@X3' => + array ( + 0 => 'X3-00!', + 1 => 'X3-02!', + ), +); diff --git a/integration/whichbrowser/data/indices/models-symbian.php b/integration/whichbrowser/data/indices/models-symbian.php new file mode 100644 index 00000000..44e63a41 --- /dev/null +++ b/integration/whichbrowser/data/indices/models-symbian.php @@ -0,0 +1,343 @@ + + array ( + 0 => '(?i)U1(a|i|iv)?$!', + 1 => '(?i)U5(a|i|iv)?$!', + 2 => '(?i)U8(a|i)?$!', + ), + '@32' => + array ( + 0 => 3230, + 1 => 3250, + ), + '@36' => + array ( + 0 => 3650, + 1 => 3660, + ), + '@50' => + array ( + 0 => 500, + ), + '@52' => + array ( + 0 => 5228, + 1 => '5233!', + 2 => '5230!', + 3 => 5232, + 4 => '5235!', + 5 => 5236, + 6 => 5238, + 7 => 5250, + ), + '@53' => + array ( + 0 => '5320!', + ), + '@55' => + array ( + 0 => '5500d!', + 1 => '5530!', + ), + '@56' => + array ( + 0 => '5630!', + ), + '@57' => + array ( + 0 => '5700!', + 1 => '5730!', + ), + '@58' => + array ( + 0 => '5800!', + ), + '@60' => + array ( + 0 => 600, + 1 => 603, + ), + '@61' => + array ( + 0 => '6110Navigator', + 1 => '6120c!', + 2 => '6121c!', + 3 => '6122c!', + 4 => '6124c', + ), + '@62' => + array ( + 0 => '6210 ?Navigator!', + 1 => '6220c!', + 2 => 6260, + 3 => '6290!', + ), + '@66' => + array ( + 0 => 6600, + 1 => 6630, + 2 => '6650d!', + 3 => 6670, + 4 => 6680, + 5 => 6681, + ), + '@67' => + array ( + 0 => '6700s', + 1 => 6708, + 2 => '6710s', + 3 => '6720c!', + 4 => '6730c!', + 5 => '6760s!', + 6 => 6788, + 7 => '6788i', + 8 => '6790s-1b!', + 9 => '6790s-1c!', + ), + '@70' => + array ( + 0 => 700, + 1 => 701, + 2 => '702T', + ), + '@76' => + array ( + 0 => 7610, + 1 => 7650, + 2 => 7660, + ), + '@80' => + array ( + 0 => '801T', + 1 => 808, + 2 => '808PureView', + 3 => '808 PureView', + ), + '@A1' => + array ( + 0 => 'A1000', + ), + '@A9' => + array ( + 0 => 'A920', + 1 => 'A925', + ), + '@BE' => + array ( + 0 => 'BenQ P30', + 1 => 'BenQ P31', + ), + '@C5' => + array ( + 0 => 'C5-00!', + 1 => 'C5-01', + 2 => 'C5-03!', + 3 => 'C5-04', + 4 => 'C5-05', + 5 => 'C5-06', + ), + '@C6' => + array ( + 0 => 'C6-00!', + 1 => 'C6-01!', + ), + '@C7' => + array ( + 0 => 'C7-00!', + ), + '@CO' => + array ( + 0 => 'ConstellationT', + 1 => 'ConstellationQuest', + ), + '@E-' => + array ( + 0 => 'E-90-1', + ), + '@E5' => + array ( + 0 => 'E5-00!', + 1 => 'E50(-[1-9])?$!', + 2 => 'E51(-[1-9])?$!', + 3 => 'E52(-[1-9])?$!', + 4 => 'E55(-[1-9])?$!', + ), + '@E6' => + array ( + 0 => 'E6', + 1 => 'E6-00', + 2 => 'E60(-[1-9])?$!', + 3 => 'E61i!', + 4 => 'E61(-[1-9])?$!', + 5 => 'E62(-[1-9])?$!', + 6 => 'E63(-[1-9])?$!', + 7 => 'E65(-[1-9])?$!', + 8 => 'E66(-[1-9])?$!', + ), + '@E7' => + array ( + 0 => 'E7-00', + 1 => 'E70(-[1-9])?$!', + 2 => 'E71x', + 3 => 'E71(-[1-9])?$!', + 4 => 'E72(-[1-9])?$!', + 5 => 'E73(-[1-9])?$!', + 6 => 'E75(-[1-9])?$!', + ), + '@E9' => + array ( + 0 => 'E90(-[1-9])?$!', + ), + '@G7' => + array ( + 0 => 'G700', + ), + '@G9' => + array ( + 0 => 'G900', + ), + '@I7' => + array ( + 0 => 'I7710', + ), + '@I8' => + array ( + 0 => 'I8510', + 1 => 'I8910', + ), + '@LG' => + array ( + 0 => 'LG KS10', + 1 => 'LGKT610', + 2 => 'LGKT615', + ), + '@M1' => + array ( + 0 => 'M1000', + ), + '@M6' => + array ( + 0 => 'M600i', + ), + '@N-' => + array ( + 0 => 'N-Gage', + 1 => 'N-GageQD', + ), + '@N5' => + array ( + 0 => 'N5233!', + ), + '@N7' => + array ( + 0 => 'N70(-[1-9])?$!', + 1 => 'N71(-[1-9])?$!', + 2 => 'N72(-[1-9])?$!', + 3 => 'N73(-[1-9])?$!', + 4 => 'N75(-[1-9])?$!', + 5 => 'N76(-[1-9])?$!', + 6 => 'N77(-[1-9])?$!', + 7 => 'N78(-[1-9])?$!', + 8 => 'N79(-[1-9])?$!', + ), + '@N8' => + array ( + 0 => 'N8-00', + 1 => 'N80(-[1-9])?$!', + 2 => 'N81(-[1-9])?$!', + 3 => 'N82(-[1-9])?$!', + 4 => 'N85(-[1-9])?$!', + 5 => 'N86(-[1-9])?$!', + 6 => 'N86 ?8MP$!', + ), + '@N9' => + array ( + 0 => 'N90(-[1-9])?$!', + 1 => 'N91(-[1-9])?$!', + 2 => 'N92(-[1-9])?$!', + 3 => 'N93(-[1-9])?$!', + 4 => 'N93i', + 5 => 'N95(-[1-9])?$!', + 6 => 'N95[ -]8GB(-[1-9])?!', + 7 => 'N96(-[1-9])?$!', + 8 => 'N97(-[1-3])?$!', + 9 => 'N97i', + 10 => 'N97(-[4-5])?$!', + 11 => 'N97 ?mini!', + ), + '@NO' => + array ( + 0 => 'Nokia N81', + 1 => 'Nokia N81 8GB', + ), + '@OR' => + array ( + 0 => 'Oro', + ), + '@P1' => + array ( + 0 => 'P1i', + ), + '@P9' => + array ( + 0 => 'P910i', + 1 => 'P990i', + ), + '@PA' => + array ( + 0 => 'Panasonic-X700', + 1 => 'Panasonic-X800', + ), + '@RI' => + array ( + 0 => 'RIZR-Z8', + 1 => 'RIZR-Z10', + ), + '@SG' => + array ( + 0 => 'SGH-D720', + 1 => 'SGH-D728', + 2 => 'SGH-D730', + 3 => 'SGH-i400!', + 4 => 'SGH-i408!', + 5 => 'SGH-i450!', + 6 => 'SGH-i455!', + 7 => 'SGH-i458!', + 8 => 'SGH-i520!', + 9 => 'SGH-i550!', + 10 => 'SGH-i560!', + 11 => 'SGH-i568!', + 12 => 'SGH-i570!', + 13 => 'SGH-G810', + ), + '@T7' => + array ( + 0 => 'T7-00', + ), + '@U' => + array ( + 0 => 'U', + ), + '@W9' => + array ( + 0 => 'W950i', + 1 => 'W960i', + ), + '@X5' => + array ( + 0 => 'X5-00', + 1 => 'X5-01', + ), + '@X6' => + array ( + 0 => 'X6-00!', + ), + '@X7' => + array ( + 0 => 'X7-00!', + ), +); diff --git a/integration/whichbrowser/data/indices/models-tizen.php b/integration/whichbrowser/data/indices/models-tizen.php new file mode 100644 index 00000000..779b80c4 --- /dev/null +++ b/integration/whichbrowser/data/indices/models-tizen.php @@ -0,0 +1,92 @@ + + array ( + 0 => '(ARMV7 )?SM-Z9005!', + ), + '@BA' => + array ( + 0 => 'Baltic', + ), + '@EM' => + array ( + 0 => 'Emulator', + ), + '@FA' => + array ( + 0 => 'FamilyHub', + ), + '@GT' => + array ( + 0 => 'GT-I8800!', + 1 => 'GT-I8805!', + 2 => 'GT-I9500!', + ), + '@HA' => + array ( + 0 => 'hawkp', + ), + '@KI' => + array ( + 0 => 'KIRAN', + ), + '@MO' => + array ( + 0 => 'Mobile-RD-PQ', + 1 => 'Mobile-Emulator', + ), + '@NX' => + array ( + 0 => 'NX300', + ), + '@SC' => + array ( + 0 => 'SC-03F', + ), + '@SD' => + array ( + 0 => 'sdk', + ), + '@SE' => + array ( + 0 => 'SEC SC-001', + 1 => 'SEC SC-03F', + ), + '@SG' => + array ( + 0 => 'SGH-N099', + ), + '@SM' => + array ( + 0 => 'SM-HIGGS', + 1 => '(ARMV7 )?SM-Z9005!', + 2 => 'SM-Z130!', + 3 => 'SM-Z300!', + 4 => 'SM-Z500!', + 5 => 'SM-Z700!', + 6 => 'SM-Z900!', + 7 => 'SM-Z910!', + 8 => 'SM-R750!', + ), + '@TI' => + array ( + 0 => 'TIZEN SM-Z130!', + 1 => 'TIZEN SM-Z300!', + 2 => 'TIZEN Emulator', + ), + '@TM' => + array ( + 0 => 'TM1', + ), + '@XU' => + array ( + 0 => 'xu3', + ), + '@Z3' => + array ( + 0 => 'Z3 Z910F', + ), +); diff --git a/integration/whichbrowser/data/indices/models-touchwiz.php b/integration/whichbrowser/data/indices/models-touchwiz.php new file mode 100644 index 00000000..9b35f058 --- /dev/null +++ b/integration/whichbrowser/data/indices/models-touchwiz.php @@ -0,0 +1,55 @@ + + array ( + 0 => 'GT-B5310!', + 1 => 'GT-B3410', + 2 => 'GT-B7722', + 3 => 'GT-C3262', + 4 => 'GT-C33(00|03)!', + 5 => 'GT-C3312R', + 6 => 'GT-C3312!', + 7 => 'GT-C3330', + 8 => 'GT-C6712', + 9 => 'GT-E2652!', + 10 => 'GT-I6230!', + 11 => 'GT-I6712!', + 12 => 'GT-M3710', + 13 => 'GT-M5650', + 14 => 'GT-S3370!', + 15 => 'GT-S36(50|53)!', + 16 => 'GT-S3770!', + 17 => 'GT-S38(00|02)!', + 18 => 'GT-S3850', + 19 => 'GT-S5220', + 20 => 'GT-S5222R', + 21 => 'GT-S5222', + 22 => 'GT-S52(30|33)!', + 23 => 'GT-S5260P', + 24 => 'GT-S52(60|63)!', + 25 => 'GT-S5292R', + 26 => 'GT-S5292', + 27 => 'GT-S5560!', + 28 => 'GT-S5600', + 29 => 'GT-S5603', + 30 => 'GT-S5620!', + 31 => 'GT-S5680', + 32 => 'GT-S7550', + 33 => 'GT-S8000c', + 34 => 'GT-S8003', + ), + '@S8' => + array ( + 0 => 'S80(00|03)!', + ), + '@SG' => + array ( + 0 => 'SGH-A597', + 1 => 'SGH-F480', + 2 => 'SGH-F480I', + 3 => 'SGH-T528g', + ), +); diff --git a/integration/whichbrowser/data/indices/models-wm.php b/integration/whichbrowser/data/indices/models-wm.php new file mode 100644 index 00000000..dfe99e0e --- /dev/null +++ b/integration/whichbrowser/data/indices/models-wm.php @@ -0,0 +1,534 @@ + + array ( + 0 => '.*T5555!', + 1 => '.*T8585!', + 2 => '.*S521!', + 3 => '.*T33(20|33|35)!', + 4 => '.*T5353!', + 5 => '.*P3700!', + 6 => '.*T82(82|83)!', + 7 => '.*T73(73|80)!', + 8 => '.*T7272!', + 9 => '.*T2223!', + ), + '@-G' => + array ( + 0 => '-GalaxyII', + 1 => '-GalaxyMini', + ), + '@-P' => + array ( + 0 => '-P525!', + 1 => '-P526!', + 2 => '-P527!', + 3 => '-P552w!', + 4 => '-P552!', + 5 => '-P565!', + 6 => '-P735!', + ), + '@12' => + array ( + 0 => 1210, + ), + '@A3' => + array ( + 0 => 'A3100', + 1 => 'A3300c', + ), + '@A4' => + array ( + 0 => 'A4500!', + ), + '@AL' => + array ( + 0 => 'Alltel HTC PPC6800', + 1 => 'Alltel HTC Touch', + 2 => 'Alltel HTC Touch Diamond', + ), + '@AM' => + array ( + 0 => 'Ameo!', + ), + '@BI' => + array ( + 0 => 'Bird T900', + ), + '@C6' => + array ( + 0 => 'C6625', + ), + '@CH' => + array ( + 0 => 'CHT 9100!', + ), + '@CO' => + array ( + 0 => 'Coolpad F800', + ), + '@DA' => + array ( + 0 => 'Datalogic Memor', + ), + '@DO' => + array ( + 0 => 'Dopod838Pro', + 1 => 'DopodD810', + 2 => 'dopod-S900c', + 3 => 'dopodT5588', + 4 => 'dopodT8388', + 5 => 'dopodT8588', + ), + '@DX' => + array ( + 0 => 'DX900', + ), + '@E1' => + array ( + 0 => 'E100', + ), + '@ES' => + array ( + 0 => 'ES405B!', + ), + '@F9' => + array ( + 0 => 'F900', + ), + '@GA' => + array ( + 0 => 'garmin-asus-Nuvifone-M10', + ), + '@GI' => + array ( + 0 => 'GIGABYTE-MS800', + ), + '@GM' => + array ( + 0 => 'GM730', + 1 => 'GM750Q', + ), + '@GT' => + array ( + 0 => 'GT-B5722', + 1 => 'GT-B6520', + 2 => 'GT-B7300', + 3 => 'GT-B7320!', + 4 => 'GT-B7330!', + 5 => 'GT-B7350', + 6 => 'GT-B7610', + 7 => 'GT-C6625', + 8 => 'GT-I8000!', + ), + '@GW' => + array ( + 0 => 'GW550', + 1 => 'GW825', + ), + '@H-' => + array ( + 0 => 'H-21', + ), + '@HD' => + array ( + 0 => '(HTC )?HD mini!', + 1 => '(HTC )?HD2!', + ), + '@HP' => + array ( + 0 => 'HP iPAQ 510', + 1 => 'HPiPAQ510!', + 2 => 'HPiPAQ610', + 3 => 'HPiPAQ910!', + 4 => 'HP iPAQ h6300', + 5 => 'HP iPAQ hw6500!', + 6 => 'HPiPAQhw6900!', + 7 => 'HPiPAQrw6800!', + 8 => 'HPiPAQrw6815!', + 9 => 'HPiPAQDataMessenger!', + 10 => 'HPiPAQVoiceMessenger!', + 11 => 'HPiPAQGlisten', + 12 => 'HP KB1', + ), + '@HT' => + array ( + 0 => 'HTC8500', + 1 => 'HTC P3300', + 2 => 'HTC love', + 3 => 'HTC P3350', + 4 => 'HTC P3400!', + 5 => 'HTC P3450!', + 6 => 'HTC HERALD', + 7 => 'HTC P6300', + 8 => 'HTC P6500', + 9 => 'HTC X7500', + 10 => 'HTC X7510', + 11 => '(HTC )?HD mini!', + 12 => '(HTC )?HD2!', + 13 => 'HTC T8290', + 14 => 'HTC MAX 4G', + 15 => 'HTC MTeoR', + 16 => 'HTC Prophet', + 17 => 'HTC Snap!', + 18 => 'HTC Maple S520', + 19 => 'HTC S620!', + 20 => 'HTC Excalibur', + 21 => 'HTC S630', + 22 => 'HTC S710', + 23 => 'HTC S730', + 24 => 'HTC S740', + 25 => 'HTC Touch', + 26 => 'HTC Elf', + 27 => 'HTC 6900', + 28 => 'HTC6900', + 29 => 'HTC6900-MR1', + 30 => 'HTC TouchDual', + 31 => 'HTC Touch 3G!', + 32 => 'HTC Jade', + 33 => 'HTC Mega!', + 34 => 'HTC Touch2!', + 35 => 'HTC Touch Cruise!', + 36 => 'HTC P3650', + 37 => 'HTC P3651', + 38 => 'HTC Polaris', + 39 => 'HTC Touch Diamond2!', + 40 => 'HTC Touch Diamond!', + 41 => 'HTC Diamond', + 42 => 'HTC P3701', + 43 => 'HTC P5500', + 44 => 'HTC P5310!', + 45 => 'HTC Touch HD2!', + 46 => 'HTC Touch HD!', + 47 => 'HTC Touch Pro2!', + 48 => 'HTC Touch Pro!', + 49 => 'HTC P4600', + 50 => 'HTC Raphael', + 51 => 'HTC Touch Viva!', + 52 => 'HTC Trinity', + 53 => 'HTC P3600', + 54 => 'HTC P3600i', + 55 => 'HTC v3600', + 56 => 'HTC TyTN II', + 57 => 'HTC Kaiser', + 58 => 'HTC TyTN!', + 59 => 'HTC Mercury', + 60 => 'HTC wizard', + 61 => 'HTCPPC6850!', + 62 => 'HTC VDA V', + 63 => 'HTC v1510', + 64 => 'HTC VPACompactIV', + 65 => 'HT01A', + ), + '@I-' => + array ( + 0 => 'i-mate JAMA', + 1 => 'i-mate JAMAQ', + 2 => 'i-mate JAMin', + 3 => 'i-mate JASJAM', + 4 => 'i-mate JAQ', + 5 => 'i-mate JAQ3', + 6 => 'i-mate K-JAM', + 7 => 'i-mate PDAL', + 8 => 'i-mate 6150', + 9 => 'i-mate 8150!', + 10 => 'i-mate 8502', + 11 => 'i-mate 9502!', + ), + '@K-' => + array ( + 0 => 'K-Touch W366!', + ), + '@KD' => + array ( + 0 => 'KDDI-HT01', + ), + '@KY' => + array ( + 0 => 'Kyocera-E4000', + ), + '@LE' => + array ( + 0 => 'Lenovo ET860', + 1 => 'LENOVO-ET980', + ), + '@LG' => + array ( + 0 => 'LG-GM730!', + 1 => 'LG-GM750!', + 2 => 'LG-GW550!', + 3 => 'LG-KS20', + 4 => 'LG-MS25', + 5 => 'LGE VS750', + ), + '@M1' => + array ( + 0 => 'M1i', + ), + '@M5' => + array ( + 0 => 'M530w!', + ), + '@M9' => + array ( + 0 => 'M930!', + ), + '@MC' => + array ( + 0 => 'MC45!', + 1 => 'MC659B!', + ), + '@MD' => + array ( + 0 => 'MDA III!', + 1 => 'MDA compact II!', + 2 => 'MDA compact!', + 3 => 'MDA Pro!', + 4 => 'MDA Touch!', + 5 => 'MDA Vario!', + ), + '@NU' => + array ( + 0 => 'Nuvifone-M10', + 1 => 'Nuvifone-M20', + ), + '@O2' => + array ( + 0 => 'o2 Xda comet', + 1 => 'O2 Xda 2mini', + 2 => 'O2 Xda 2s', + ), + '@P3' => + array ( + 0 => 'P3470!', + 1 => 'P3450', + 2 => 'P3650', + 3 => 'P3650t', + 4 => 'P3600!', + ), + '@P4' => + array ( + 0 => 'P400', + 1 => 'P4350!', + 2 => 'P4550', + ), + '@P5' => + array ( + 0 => 'P550', + ), + '@P7' => + array ( + 0 => 'P750', + ), + '@PA' => + array ( + 0 => 'Palm500!', + 1 => 'Palm750', + 2 => 'Palm850!', + 3 => 'Palm Treo850e', + 4 => 'PANTECH-C810', + ), + '@PP' => + array ( + 0 => 'PPC6850!', + ), + '@Q-' => + array ( + 0 => 'Q-UMTS', + ), + '@Q8' => + array ( + 0 => 'Q8', + ), + '@Q9' => + array ( + 0 => 'Q9', + 1 => 'Q9c!', + 2 => 'Q9m!', + ), + '@S0' => + array ( + 0 => 'S01SH', + 1 => 'S01SH2', + ), + '@S1' => + array ( + 0 => 'S11HT', + 1 => 'S12HT', + ), + '@S2' => + array ( + 0 => 'S200', + 1 => 'S21HT', + 2 => 'S22HT', + ), + '@SC' => + array ( + 0 => 'SCH-M490', + 1 => 'SCH-M710', + 2 => 'SCH-M715', + 3 => 'SCH-i220!', + 4 => 'SCH-i225!', + 5 => 'SCH-i760!', + 6 => 'SCH-i770!', + 7 => 'SCHI910!', + 8 => 'SCH-i920', + 9 => 'SC-01B', + ), + '@SF' => + array ( + 0 => 'SFR v3650!', + ), + '@SG' => + array ( + 0 => 'SGH-i600!', + 1 => 'SGH-i601!', + 2 => 'SGH-I607', + 3 => 'SGH-i608!', + 4 => 'SGH-I617', + 5 => 'SGH-I637', + 6 => 'SGH-i640!', + 7 => 'SGH-i718', + 8 => 'SGH-i718plus', + 9 => 'SGH-i728', + 10 => 'SGH-i780!', + 11 => 'SGH-i900!', + 12 => 'SGH-i908E', + ), + '@SI' => + array ( + 0 => 'SIE-SX66', + 1 => 'sigmarion3', + ), + '@SP' => + array ( + 0 => 'Sprint:MotoQ9c', + 1 => 'Sprint Treo850e', + 2 => 'SPH-M7200', + 3 => 'SPH-M7350', + 4 => 'SPH-M8400', + 5 => 'SPHI325!', + 6 => 'Spice D1100', + 7 => 'SPV E600', + 8 => 'SPV E650', + 9 => 'SPV M700', + 10 => 'SPV M2000', + 11 => 'SPV M3100', + 12 => 'Sprint S511', + 13 => 'Sprint:SPH-ip830w', + 14 => 'Sprint:PPC6600-1', + 15 => 'Sprint:PPC-6700', + 16 => 'Sprint:PPC6800', + 17 => 'Sprint PPC6850SP', + 18 => 'Sprint MP6850SP', + 19 => 'Sprint MP6900SP', + 20 => 'Sprint MP6950SP', + ), + '@T-' => + array ( + 0 => 'T-Mobile Atlas', + 1 => 'T-Mobile Dash', + 2 => 'T-Mobile LEO', + 3 => 'T-Mobile Cleopatra', + 4 => 'T-01A!', + 5 => 'T-01B!', + ), + '@T5' => + array ( + 0 => 'T5388', + ), + '@T9' => + array ( + 0 => 'T9188', + 1 => 'T9199', + ), + '@TG' => + array ( + 0 => '(Toshiba[- ])?TG01!', + ), + '@TO' => + array ( + 0 => '(Toshiba[- ])?TG01!', + ), + '@TR' => + array ( + 0 => 'Treo800w', + ), + '@V1' => + array ( + 0 => 'v1415', + 1 => 'v1240', + 2 => 'v1210', + 3 => 'v1640', + ), + '@VE' => + array ( + 0 => 'Velocity', + ), + '@VI' => + array ( + 0 => 'VIP12!', + ), + '@VP' => + array ( + 0 => 'VPA Touch', + ), + '@W3' => + array ( + 0 => 'W366', + ), + '@WS' => + array ( + 0 => 'WS003SH', + 1 => 'WS004SH', + 2 => 'WS007SH', + 3 => 'WS011SH', + 4 => 'WS020SH', + 5 => 'WS027SH', + ), + '@X0' => + array ( + 0 => 'X01T', + 1 => 'X02T!', + 2 => 'X01HT', + 3 => 'X02HT', + 4 => 'X03HT', + 5 => 'X04HT', + 6 => 'X05HT', + 7 => 'X01SC', + ), + '@X1' => + array ( + 0 => 'X1', + 1 => 'X1[ia]!', + ), + '@X2' => + array ( + 0 => 'X2', + 1 => 'X2[ia]!', + ), + '@XD' => + array ( + 0 => 'Xda diamond', + 1 => 'Xda neo', + 2 => 'Xda nova', + 3 => 'Xda orbit', + 4 => 'Xda terra', + 5 => 'Xda trion', + ), + '@XV' => + array ( + 0 => 'XV6175!', + 1 => 'XV6875!', + 2 => 'XV6900', + 3 => 'XV6975', + ), + '@ZT' => + array ( + 0 => 'ZTE E N72', + 1 => 'ZTE E X70', + ), +); diff --git a/integration/whichbrowser/data/indices/models-wp.php b/integration/whichbrowser/data/indices/models-wp.php new file mode 100644 index 00000000..7dafe993 --- /dev/null +++ b/integration/whichbrowser/data/indices/models-wp.php @@ -0,0 +1,511 @@ + + array ( + 0 => '(HD7|.*T92(92|95|96))!', + 1 => '((7 )?Mozart|.*T86(97|98))!', + 2 => '(7 Pro|.*T75(75|76))!', + 3 => '.*T8788!', + 4 => '((7 )?Trophy|.*T8686)!', + 5 => '(Radar|.*C110e)!', + 6 => '.*X310e!', + 7 => '(Lumia ?|Nokia ?)?[0-9]{3,4}!!', + ), + '@- ' => + array ( + 0 => '- BUSH Windows Phone', + 1 => '- Lazer SMART WIND', + ), + '@0P' => + array ( + 0 => '0P6B140', + 1 => '0P6B180', + ), + '@40' => + array ( + 0 => '40 Cesium', + ), + '@47' => + array ( + 0 => 47, + ), + '@4A' => + array ( + 0 => '4Afrika', + ), + '@69' => + array ( + 0 => '6990LVW', + ), + '@7 ' => + array ( + 0 => '((7 )?Mozart|.*T86(97|98))!', + 1 => '7 HTC MOZART', + 2 => '(7 Pro|.*T75(75|76))!', + 3 => '7 Surround', + 4 => '((7 )?Trophy|.*T8686)!', + ), + '@75' => + array ( + 0 => '75eL0N', + ), + '@8S' => + array ( + 0 => '8S', + 1 => '8S by HTC', + ), + '@8X' => + array ( + 0 => '8X', + 1 => '8X by HTC', + ), + '@;H' => + array ( + 0 => ';HD2', + ), + '@;P' => + array ( + 0 => ';PD67100', + ), + '@ + array ( + 0 => '!', + ), + '@A6' => + array ( + 0 => 'A620(b|d|e|m|t)!', + ), + '@AC' => + array ( + 0 => 'AC50CE', + 1 => 'ACD U', + 2 => 'Accord', + ), + '@AL' => + array ( + 0 => 'Allegro', + ), + '@AN' => + array ( + 0 => 'Andi4L', + 1 => 'Android!', + ), + '@AT' => + array ( + 0 => 'Ativ S', + 1 => 'ATIV S Neo', + ), + '@BI' => + array ( + 0 => 'Billy 4.7', + ), + '@BP' => + array ( + 0 => 'BP30.BM180', + ), + '@C6' => + array ( + 0 => 'C620(d|e|t)!', + 1 => 'C625(a|b)!', + ), + '@CE' => + array ( + 0 => 'CETUS', + ), + '@DO' => + array ( + 0 => 'DolphinCT50', + ), + '@E2' => + array ( + 0 => 'E260T+', + ), + '@E6' => + array ( + 0 => 'E600', + ), + '@ET' => + array ( + 0 => 'Eternity', + ), + '@FI' => + array ( + 0 => 'FierceXL', + ), + '@FO' => + array ( + 0 => 'Focus i917!', + 1 => 'FOCUS S', + ), + '@FT' => + array ( + 0 => 'FTJ152E', + 1 => 'FTJ152F', + ), + '@FZ' => + array ( + 0 => 'FZ-E1', + ), + '@GA' => + array ( + 0 => 'Galaxy6', + ), + '@GO' => + array ( + 0 => 'Gold', + ), + '@GT' => + array ( + 0 => 'GT-[IS][0-9]{4,4}!!', + ), + '@GW' => + array ( + 0 => 'GW910', + ), + '@H8' => + array ( + 0 => 'H883G', + ), + '@HA' => + array ( + 0 => 'Harley Davidson', + 1 => 'Harley-Davidson', + 2 => 'Haden', + ), + '@HD' => + array ( + 0 => 'HD2', + 1 => 'HD2(Leo', + 2 => 'HD2 LEO', + 3 => '(HD7|.*T92(92|95|96))!', + ), + '@HE' => + array ( + 0 => 'HELSINKI', + ), + '@HT' => + array ( + 0 => 'HTC HD2', + 1 => 'HTC Mozart', + 2 => 'htc mpw6958', + 3 => 'htcmpw6958', + 4 => 'HTC 7 Trophy', + 5 => 'HTC Trophy', + 6 => 'HTC6690LVW', + 7 => 'HTC6990LVW', + 8 => 'HTC6990LVW 4G', + 9 => 'htc 8x', + 10 => 'HTCPO881', + 11 => 'HTC6995LVW', + ), + '@HU' => + array ( + 0 => 'HUAWEI Ascend W1!', + 1 => 'HUAWEI ?W1-(C00|U00|U34)!', + 2 => 'HUAWEI ?W2-(T00|T01|U00|U051)!', + ), + '@I9' => + array ( + 0 => 'I917', + ), + '@ID' => + array ( + 0 => 'id[0-9]{3,3}!!', + ), + '@IM' => + array ( + 0 => 'Impera I', + 1 => 'Impera M', + 2 => 'Impera S', + ), + '@IN' => + array ( + 0 => 'InfoPath!', + ), + '@IQ' => + array ( + 0 => 'IQ400W', + ), + '@IR' => + array ( + 0 => 'iris Win 1', + ), + '@IS' => + array ( + 0 => 'IS12T', + ), + '@IX' => + array ( + 0 => 'Ixion W 5', + ), + '@LE' => + array ( + 0 => 'LEO', + ), + '@LG' => + array ( + 0 => 'LG-E740!', + 1 => 'LG-E-?900!', + 2 => 'LG-E906', + 3 => 'LG-C900!', + ), + '@LI' => + array ( + 0 => 'Linux!', + ), + '@LU' => + array ( + 0 => '(Lumia ?|Nokia ?)?[0-9]{3,4}!!', + ), + '@M2' => + array ( + 0 => 'M220', + ), + '@M3' => + array ( + 0 => 'M310', + ), + '@M5' => + array ( + 0 => 'M5w', + ), + '@MA' => + array ( + 0 => 'Mazaa', + ), + '@ME' => + array ( + 0 => 'MegaFon SP-W1', + ), + '@MI' => + array ( + 0 => 'MICROMAX-W121', + 1 => 'MI4', + 2 => 'Microsoft!', + ), + '@MO' => + array ( + 0 => 'MOBILE Alpha Luxe', + 1 => 'MOBILE Alpha Style', + 2 => 'Mondrian', + 3 => '((7 )?Mozart|.*T86(97|98))!', + 4 => 'MouseComputer MADOSMA Q501', + ), + '@MW' => + array ( + 0 => 'MWP6885', + 1 => 'mwp6985', + 2 => 'MWP-47!', + ), + '@N8' => + array ( + 0 => 'N880e!', + ), + '@NE' => + array ( + 0 => 'NEO', + ), + '@NO' => + array ( + 0 => '(Lumia ?|Nokia ?)?[0-9]{3,4}!!', + ), + '@OM' => + array ( + 0 => 'Omega', + 1 => 'OM(NI|IN)A ?7!', + 2 => 'Omnia W', + ), + '@ON' => + array ( + 0 => 'ONE TOUCH 5040X', + ), + '@PC' => + array ( + 0 => 'PC93100', + 1 => 'PC40100', + ), + '@PD' => + array ( + 0 => 'PD67100', + ), + '@PI' => + array ( + 0 => 'PI39100', + 1 => 'PI86100', + ), + '@PK' => + array ( + 0 => 'PKT-407', + ), + '@PM' => + array ( + 0 => 'PM23300', + ), + '@PR' => + array ( + 0 => 'PRESTIGIO-PSP8500DUO', + ), + '@PS' => + array ( + 0 => 'PSP8400DUO', + 1 => 'PSP8500DUO', + ), + '@QS' => + array ( + 0 => 'QSMART DREAM W473', + ), + '@QU' => + array ( + 0 => 'Quantum', + ), + '@RA' => + array ( + 0 => '(Radar|.*C110e)!', + ), + '@RI' => + array ( + 0 => 'RIO U', + ), + '@RM' => + array ( + 0 => 'RM-[0-9]{3,4}!!', + ), + '@S5' => + array ( + 0 => 'S58', + ), + '@S6' => + array ( + 0 => 'S606', + ), + '@SC' => + array ( + 0 => 'Schubert!', + 1 => 'SCH-R860U', + 2 => 'SCH-I930', + ), + '@SE' => + array ( + 0 => 'SeaRay', + ), + '@SG' => + array ( + 0 => 'SGH-[IT][0-9]{3,3}!!', + ), + '@SM' => + array ( + 0 => 'SM-W750V', + ), + '@SO' => + array ( + 0 => 'SOUL2', + ), + '@SP' => + array ( + 0 => 'Spark', + 1 => 'SPH-I800', + ), + '@SU' => + array ( + 0 => 'Surround', + 1 => 'Surface Phone', + ), + '@TA' => + array ( + 0 => 'Taylor', + 1 => 'Tania', + ), + '@TC' => + array ( + 0 => 'TC70', + ), + '@TG' => + array ( + 0 => 'TG01', + ), + '@TH' => + array ( + 0 => 'Thunder 450W', + ), + '@TI' => + array ( + 0 => 'Titan', + 1 => 'Titanium Wind W4', + ), + '@TO' => + array ( + 0 => 'Touch-IT HD7', + 1 => 'Touch-IT Trophy', + ), + '@TR' => + array ( + 0 => '((7 )?Trophy|.*T8686)!', + ), + '@TS' => + array ( + 0 => 'TSUNAGI', + ), + '@UL' => + array ( + 0 => 'Ultimate', + ), + '@US' => + array ( + 0 => 'USCCHTC-PC93100', + 1 => 'USCCN859', + ), + '@V9' => + array ( + 0 => 'V965W', + ), + '@VE' => + array ( + 0 => 'Venue Pro', + ), + '@VI' => + array ( + 0 => 'Virtual!', + ), + '@VW' => + array ( + 0 => 'VW820', + ), + '@W1' => + array ( + 0 => 'W10', + 1 => 'W1-(C00|U00|U34)!', + 2 => 'W121', + ), + '@W2' => + array ( + 0 => 'W2-(T00|T01|U00)!', + ), + '@WI' => + array ( + 0 => 'WIN HD LTE', + 1 => 'WIN HD W510l', + 2 => 'WIN HD W510u', + 3 => 'WIN JR LTE', + 4 => 'WIN JR W410a', + 5 => 'WIN JR W410i', + 6 => 'WIN JR W410u', + 7 => 'WIN 400', + 8 => 'WINJOY', + 9 => 'WinWin', + 10 => 'Windows Phone 8X by HTC!', + 11 => 'WindowsPhone8Xby', + 12 => 'Windows Phone 8S by HTC!', + 13 => 'WindowsPhone8Sby', + 14 => 'Win1', + 15 => 'Win-Q900S', + 16 => 'Win Q1000', + 17 => 'Windows!', + ), + '@XX' => + array ( + 0 => 'XXX!', + ), +); diff --git a/integration/whichbrowser/data/manufacturer-names.php b/integration/whichbrowser/data/manufacturer-names.php new file mode 100644 index 00000000..77af4195 --- /dev/null +++ b/integration/whichbrowser/data/manufacturer-names.php @@ -0,0 +1,40 @@ + 'LG', + 'LGE' => 'LG', + 'TOSHIBA' => 'Toshiba', + 'SAMSUNG' => 'Samsung', + 'SHARP' => 'Sharp', + 'SONY' => 'Sony', +]; + +Manufacturers::$TELEVISION = [ + 'ALDISUED' => 'Aldi', + 'BANGOLUFSEN' => 'Bang & Olufsen', + 'CHANGHONG' => 'Changhong', + 'changhong' => 'Changhong', + 'FINLUX' => 'Finlux', + 'HHW HAIER' => 'Haier', + 'HITACHI' => 'Hitachi', + 'HYUNDAI' => 'Hyundai', + 'inverto' => 'Inverto', + 'LOEWE' => 'Loewe', + 'MEDION' => 'Medion', + 'Nagra OpenTV' => 'NAGRA', + 'PANASONIC' => 'Panasonic', + 'Sagemcom_Broadband_SAS' => 'Sagemcom', + 'SERAPHIC' => 'Seraphic', + 'selevision' => 'Selevision', + 'smart' => 'Smart', + 'Sky_worth' => 'Skyworth', + 'TechnoTrend Goerler' => 'TechnoTrend', + 'TechnoTrend Goerler/Kathrein' => 'TechnoTrend', + 'TELEFUNKEN' => 'Telefunken', + 'THOM' => 'Thomson', + 'THOMSON' => 'Thomson', + 'tv2n' => 'TV2N', + 'VESTEL' => 'Vestel' +]; diff --git a/integration/whichbrowser/data/models-android.php b/integration/whichbrowser/data/models-android.php new file mode 100644 index 00000000..dc828cca --- /dev/null +++ b/integration/whichbrowser/data/models-android.php @@ -0,0 +1,15281 @@ + [ null, null ], + 'google sdk' => [ null, null, DeviceType::EMULATOR ], + 'sdk' => [ null, null, DeviceType::EMULATOR ], + 'generic' => [ null, null ], + 'generic x86' => [ null, null ], + 'VirtualBox!' => [ null, null, DeviceType::EMULATOR ], + + /* Development boards and kits */ + 'amd brazos' => [ 'AMD', 'Fusion based device', DeviceType::DEVBOARD ], + 'amd persimmon' => [ 'AMD', 'Persimmon based device', DeviceType::DEVBOARD ], + 'Amlogic M1 reference board' => [ 'Amlogic', 'M1 reference board', DeviceType::DEVBOARD ], + 'AML8726M' => [ 'Amlogic', 'AML8726-M based device', DeviceType::DEVBOARD ], + 'AMLOGIC8726MX' => [ 'Amlogic', 'AML8726-MX based device', DeviceType::DEVBOARD ], + 'vexpress a9' => [ 'ARM', 'Versatile Express development platform', DeviceType::DEVBOARD ], + 'sama5d3' => [ 'Atmel', 'SAMA5D3 based device', DeviceType::DEVBOARD ], + 'BEAGLEBONE' => [ 'BeagleBoard', 'BeagleBone', DeviceType::DEVBOARD ], + 'BeagleBone Black' => [ 'BeagleBoard', 'BeagleBone Black', DeviceType::DEVBOARD ], + 'BEAGLEBONEBLACK' => [ 'BeagleBoard', 'BeagleBone Black', DeviceType::DEVBOARD ], + 'BEAGLEBONEBLACK.A5C' => [ 'BeagleBoard', 'BeagleBone Black', DeviceType::DEVBOARD ], + 'NITROGEN6X' => [ 'Boundary Devices', 'Nitrogen6X', DeviceType::DEVBOARD ], + 'bcm platform' => [ 'Broadcom', 'BCM based device', DeviceType::DEVBOARD ], + 'bcm7231' => [ 'Broadcom', 'BCM7231 based device', DeviceType::DEVBOARD ], + 'bcm7425' => [ 'Broadcom', 'BCM7425 based device', DeviceType::DEVBOARD ], + 'bcm7429' => [ 'Broadcom', 'BCM7429 based device', DeviceType::DEVBOARD ], + 'bcm7435' => [ 'Broadcom', 'BCM7435 based device', DeviceType::DEVBOARD ], + 'bcm7439' => [ 'Broadcom', 'BCM7439 based device', DeviceType::DEVBOARD ], + 'bcm7445' => [ 'Broadcom', 'BCM7445 based device', DeviceType::DEVBOARD ], + 'bcm7584' => [ 'Broadcom', 'BCM7584 based device', DeviceType::DEVBOARD ], + 'BCM21654!' => [ 'Broadcom', 'BCM21654 based device', DeviceType::DEVBOARD ], + 'BCM21664!' => [ 'Broadcom', 'BCM21664 based device', DeviceType::DEVBOARD ], + 'BCM23550!' => [ 'Broadcom', 'BCM23550 based device', DeviceType::DEVBOARD ], + 'BCM28145!' => [ 'Broadcom', 'BCM28145 based device', DeviceType::DEVBOARD ], + 'BCM28155!' => [ 'Broadcom', 'BCM28155 based device', DeviceType::DEVBOARD ], + 'imx50!' => [ 'Freescale', 'i.MX50 based device', DeviceType::DEVBOARD ], + 'imx51!' => [ 'Freescale', 'i.MX51 based device', DeviceType::DEVBOARD ], + 'imx53!' => [ 'Freescale', 'i.MX53 based device', DeviceType::DEVBOARD ], + 'imx6q!' => [ 'Freescale', 'i.MX6Q based device', DeviceType::DEVBOARD ], + 'SABRESD-MX6DQ' => [ 'Freescale', 'i.MX6DQ based device', DeviceType::DEVBOARD ], + 'ODROID-A' => [ 'Hardkernel', 'ODROID-A developer tablet', DeviceType::TABLET ], + 'ODROID-U' => [ 'Hardkernel', 'ODROID-U developer board', DeviceType::DEVBOARD ], + 'ODROID-U2' => [ 'Hardkernel', 'ODROID-U2 developer board', DeviceType::DEVBOARD ], + 'ODROID-X' => [ 'Hardkernel', 'ODROID-X developer board', DeviceType::DEVBOARD ], + 'ODROID-XU' => [ 'Hardkernel', 'ODROID-XU developer board', DeviceType::DEVBOARD ], + 'ODROID-XU3' => [ 'Hardkernel', 'ODROID-XU3 developer board', DeviceType::DEVBOARD ], + 'ODROID-X2' => [ 'Hardkernel', 'ODROID-X2 developer board', DeviceType::DEVBOARD ], + 'Bay Trail Generic Platform' => [ 'Intel', 'Bay Trail based device', DeviceType::DEVBOARD ], + 'Bayley Bay' => [ 'Intel', 'Bay Trail based device', DeviceType::DEVBOARD ], + 'cedartrail' => [ 'Intel', 'Cedar Trail based device', DeviceType::DEVBOARD ], + 'mfld (dv10|dv20|gi|lw00|pr2|pr3)!' => [ 'Intel', 'Medfield based device', DeviceType::DEVBOARD ], + 'redhookbay' => [ 'Intel', 'Merrifield based device', DeviceType::DEVBOARD ], + 'saltbay' => [ 'Intel', 'Merrifield based device', DeviceType::DEVBOARD ], + 'victoriabay' => [ 'Intel', 'Merrifield based device', DeviceType::DEVBOARD ], + 'Shark Bay Client platform' => [ 'Intel', 'Haswell based device', DeviceType::DEVBOARD ], + 'BP710A' => [ 'Intel', 'Yukka Beach based device', DeviceType::DEVBOARD ], + 'yukkabeach' => [ 'Intel', 'Yukka Beach based device', DeviceType::DEVBOARD ], + 'berlin' => [ 'Marvell', 'Armada based device', DeviceType::DEVBOARD ], + 'berlin bg2!' => [ 'Marvell', 'Armada based device', DeviceType::DEVBOARD ], + 'berlin generic!' => [ 'Marvell', 'Armada based device', DeviceType::DEVBOARD ], + 'bg2 !' => [ 'Marvell', 'Armada based device', DeviceType::DEVBOARD ], + 'bg2ct !' => [ 'Marvell', 'Armada based device', DeviceType::DEVBOARD ], + 'bg2q4k !' => [ 'Marvell', 'Armada based device', DeviceType::DEVBOARD ], + 'bg2qa0v4 !' => [ 'Marvell', 'Armada based device', DeviceType::DEVBOARD ], + 'bg2qv4 !' => [ 'Marvell', 'Armada based device', DeviceType::DEVBOARD ], + 'MStar Amber3' => [ 'MStar', 'Amber3 based device', DeviceType::DEVBOARD ], + 'Konka Amber3' => [ 'MStar', 'Amber3 based device', DeviceType::DEVBOARD ], + 'mt5396!' => [ 'Mediatek', 'MT5396 based device', DeviceType::DEVBOARD ], + 'mt5399!' => [ 'Mediatek', 'MT5399 based device', DeviceType::DEVBOARD ], + 'mt5861!' => [ 'Mediatek', 'MT5861 based device', DeviceType::DEVBOARD ], + 'mt5880!' => [ 'Mediatek', 'MT5880 based device', DeviceType::DEVBOARD ], + 'mt5882!' => [ 'Mediatek', 'MT5882 based device', DeviceType::DEVBOARD ], + 'mt5890!' => [ 'Mediatek', 'MT5890 based device', DeviceType::DEVBOARD ], + 'mt6515!' => [ 'Mediatek', 'MT6515 based device', DeviceType::DEVBOARD ], + 'MTK6515' => [ 'Mediatek', 'MT6515 based device', DeviceType::DEVBOARD ], + 'mt6517!' => [ 'Mediatek', 'MT6517 based device', DeviceType::DEVBOARD ], + 'mt6571!' => [ 'Mediatek', 'MT6571 based device', DeviceType::DEVBOARD ], + 'mt6572!' => [ 'Mediatek', 'MT6572 based device', DeviceType::DEVBOARD ], + 'baoxue' => [ 'Mediatek', 'MT6573 based device', DeviceType::DEVBOARD ], + 'bird75v2' => [ 'Mediatek', 'MT6575 based device', DeviceType::DEVBOARD ], + 'eagle75v1 2' => [ 'Mediatek', 'MT6575 based device', DeviceType::DEVBOARD ], + 'mt6575!' => [ 'Mediatek', 'MT6575 based device', DeviceType::DEVBOARD ], + 'mt6577!' => [ 'Mediatek', 'MT6577 based device', DeviceType::DEVBOARD ], + 'mt6582!' => [ 'Mediatek', 'MT6582 based device', DeviceType::DEVBOARD ], + 'mt6589!' => [ 'Mediatek', 'MT6589 based device', DeviceType::DEVBOARD ], + 'MTK-MT6589' => [ 'Mediatek', 'MT6589 based device', DeviceType::DEVBOARD ], + 'MTK6589!' => [ 'Mediatek', 'MT6589 based device', DeviceType::DEVBOARD ], + 'mt6592!' => [ 'Mediatek', 'MT6592 based device', DeviceType::DEVBOARD ], + 'MTK-MT6592' => [ 'Mediatek', 'MT6592 based device', DeviceType::DEVBOARD ], + 'MTK6592' => [ 'Mediatek', 'MT6592 based device', DeviceType::DEVBOARD ], + 'mt6595!' => [ 'Mediatek', 'MT6595 based device', DeviceType::DEVBOARD ], + 'mt6599!' => [ 'Mediatek', 'MT6599 based device', DeviceType::DEVBOARD ], + 'mt8125!' => [ 'Mediatek', 'MT8125 based device', DeviceType::DEVBOARD ], + 'mt8127!' => [ 'Mediatek', 'MT8127 based device', DeviceType::DEVBOARD ], + 'mt8135!' => [ 'Mediatek', 'MT8135 based device', DeviceType::DEVBOARD ], + 'MTK--8312' => [ 'Mediatek', 'MT8312 based device', DeviceType::DEVBOARD ], + 'mt8377!' => [ 'Mediatek', 'MT8377 based device', DeviceType::DEVBOARD ], + 'mt8389!' => [ 'Mediatek', 'MT8389 based device', DeviceType::DEVBOARD ], + 'mt8580!' => [ 'Mediatek', 'MT8580 based device', DeviceType::DEVBOARD ], + 'mt8658!' => [ 'Mediatek', 'MT8658 based device', DeviceType::DEVBOARD ], + 'MBX DVBT reference board (c03ref)' => [ 'MBX', 'DVBT reference board', DeviceType::DEVBOARD ], + 'MBX Dongle board!' => [ 'MBX', 'Dongle board', DeviceType::DEVBOARD ], + 'MBX reference board!' => [ 'MBX', 'Reference board', DeviceType::DEVBOARD ], + 'NS115' => [ 'Nufront', 'NuSmart 115 based device', DeviceType::DEVBOARD ], + 'NS2816' => [ 'Nufront', 'NuSmart 2816 based device', DeviceType::DEVBOARD ], + 'Ventana' => [ 'Nvidia', 'Tegra Ventana development kit', DeviceType::DEVBOARD ], + 'Cardhu' => [ 'Nvidia', 'Tegra 3 based device', DeviceType::DEVBOARD ], + 'Panda(Board)?!' => [ 'Pandaboard', 'Development Kit', DeviceType::DEVBOARD ], + 'Omap5panda' => [ 'Pandaboard', 'Development Kit', DeviceType::DEVBOARD ], + 'MSM' => [ 'Qualcomm', 'Snapdragon based device', DeviceType::DEVBOARD ], + 'msm(7227|7627)!' => [ 'Qualcomm', 'Snapdragon S1 based device', DeviceType::DEVBOARD ], + 'msm7630!' => [ 'Qualcomm', 'Snapdragon S2 based device', DeviceType::DEVBOARD ], + 'msm8660!' => [ 'Qualcomm', 'Snapdragon S3 based device', DeviceType::DEVBOARD ], + 'msm(8x25|8625|8960)!' => [ 'Qualcomm', 'Snapdragon S4 based device', DeviceType::DEVBOARD ], + 'msm8x30!' => [ 'Qualcomm', 'Snapdragon S4 Plus based device', DeviceType::DEVBOARD ], + 'msm8610!' => [ 'Qualcomm', 'Snapdragon 200 based device', DeviceType::DEVBOARD ], + 'msm8909!' => [ 'Qualcomm', 'Snapdragon 210 based device', DeviceType::DEVBOARD ], + 'msm(8226|8228)!' => [ 'Qualcomm', 'Snapdragon 400 based device', DeviceType::DEVBOARD ], + 'MSM8926!' => [ 'Qualcomm', 'Snapdragon 400 based device', DeviceType::DEVBOARD ], + 'msm8916!' => [ 'Qualcomm', 'Snapdragon 410 based device', DeviceType::DEVBOARD ], + 'msm8952!' => [ 'Qualcomm', 'Snapdragon 615 based device', DeviceType::DEVBOARD ], + 'msm8974!' => [ 'Qualcomm', 'Snapdragon 800 based device', DeviceType::DEVBOARD ], + 'MSM8992!' => [ 'Qualcomm', 'Snapdragon 808 based device', DeviceType::DEVBOARD ], + 'msm8994!' => [ 'Qualcomm', 'Snapdragon 810 based device', DeviceType::DEVBOARD ], + 'rksdk' => [ 'Rockchip', 'based device', DeviceType::DEVBOARD ], + 'rk2808(sdk)?!' => [ 'Rockchip', 'RK2808 based device', DeviceType::DEVBOARD ], + 'rk2818(sdk)?!' => [ 'Rockchip', 'RK2818 based device', DeviceType::DEVBOARD ], + 'Android-for-Rockchip-2818' => [ 'Rockchip', 'RK2818 based device', DeviceType::DEVBOARD ], + 'RK2906' => [ 'Rockchip', 'RK2906 based device', DeviceType::DEVBOARD ], + 'RK2918' => [ 'Rockchip', 'RK2918 based device', DeviceType::DEVBOARD ], + 'rk2926-q8' => [ 'Rockchip', 'RK2926 based device', DeviceType::DEVBOARD ], + 'rk2928sdk' => [ 'Rockchip', 'RK2928 based device', DeviceType::DEVBOARD ], + 'rk29sdk' => [ 'Rockchip', 'RK29 based device', DeviceType::DEVBOARD ], + 'rk30sdk!' => [ 'Rockchip', 'RK30 based device', DeviceType::DEVBOARD ], + 'rk30mtk' => [ 'Rockchip', 'RK30 based device', DeviceType::DEVBOARD ], + 'rk3026' => [ 'Rockchip', 'RK3026 based device', DeviceType::DEVBOARD ], + 'rk3028a' => [ 'Rockchip', 'RK3028 based device', DeviceType::DEVBOARD ], + 'rk3028sdk' => [ 'Rockchip', 'RK3028 based device', DeviceType::DEVBOARD ], + 'rk3036' => [ 'Rockchip', 'RK3036 based device', DeviceType::DEVBOARD ], + 'rk3066' => [ 'Rockchip', 'RK3066 based device', DeviceType::DEVBOARD ], + 'rk31sdk' => [ 'Rockchip', 'RK31 based device', DeviceType::DEVBOARD ], + 'rk31 5931' => [ 'Rockchip', 'RK31 based device', DeviceType::DEVBOARD ], + 'rk31 8089' => [ 'Rockchip', 'RK31 based device', DeviceType::DEVBOARD ], + 'rk31 872xu' => [ 'Rockchip', 'RK31 based device', DeviceType::DEVBOARD ], + 'rk31au' => [ 'Rockchip', 'RK31 based device', DeviceType::DEVBOARD ], + 'rk31rtl' => [ 'Rockchip', 'RK31 based device', DeviceType::DEVBOARD ], + 'rk312x' => [ 'Rockchip', 'RK312X based device', DeviceType::DEVBOARD ], + 'rk3188!' => [ 'Rockchip', 'RK3188 based device', DeviceType::DEVBOARD ], + 'rk3288!' => [ 'Rockchip', 'RK3288 based device', DeviceType::DEVBOARD ], + 'rk3990!' => [ 'Rockchip', 'RK3990 based device', DeviceType::DEVBOARD ], + 's3c6410' => [ 'Samsung', 'S3C6410 based device', DeviceType::DEVBOARD ], + 'smdk6410' => [ 'Samsung', 'S3C6410 based device', DeviceType::DEVBOARD ], + 'SMDKC110' => [ 'Samsung', 'Exynos 3110 based device', DeviceType::DEVBOARD ], + 'SMDKV210' => [ 'Samsung', 'Exynos 4210 based device', DeviceType::DEVBOARD ], + 'S5PV210' => [ 'Samsung', 'Exynos 4210 based device', DeviceType::DEVBOARD ], + 'sec smdkc210' => [ 'Samsung', 'Exynos 4210 based device', DeviceType::DEVBOARD ], + 'sec smdkv210' => [ 'Samsung', 'Exynos 4210 based device', DeviceType::DEVBOARD ], + 'SMDK4x12' => [ 'Samsung', 'Exynos 4212 or 4412 based device', DeviceType::DEVBOARD ], + 'SMDK4412' => [ 'Samsung', 'Exynos 4412 based device', DeviceType::DEVBOARD ], + 'SMDK5250' => [ 'Samsung', 'Exynos 5250 based device', DeviceType::DEVBOARD ], + 'SMDK5410' => [ 'Samsung', 'Exynos 5410 based device', DeviceType::DEVBOARD ], + 'Exynos5410' => [ 'Samsung', 'Exynos 5410 based device', DeviceType::DEVBOARD ], + 'smp86xx' => [ 'Sigma', 'SMP86xx based device', DeviceType::DEVBOARD ], + 'smp8734' => [ 'Sigma', 'SMP8734 based device', DeviceType::DEVBOARD ], + 'smp8756' => [ 'Sigma', 'SMP8756 based device', DeviceType::DEVBOARD ], + 'sv8860' => [ 'Skyviia', 'SV8860 based device', DeviceType::DEVBOARD ], + 'ste l8540!' => [ 'ST Ericsson', 'Novathor L8540 based device', DeviceType::DEVBOARD ], + 'ste u8500' => [ 'ST Ericsson', 'Novathor U8500 based device', DeviceType::DEVBOARD ], + 'ste u9540' => [ 'ST Ericsson', 'Novathor U9540 based device', DeviceType::DEVBOARD ], + 'Telechips M801 Evaluation Board' => [ 'Telechips', 'M801 based device', DeviceType::DEVBOARD ], + 'Telechips TCC8900 Evaluation Board' => [ 'Telechips', 'TCC8900 based device', DeviceType::DEVBOARD ], + 'TCC8920 STB!' => [ 'Telechips', 'TCC8920 based device', DeviceType::DEVBOARD ], + 'TCC893X!' => [ 'Telechips', 'TCC893X based device', DeviceType::DEVBOARD ], + 'TCC8935 HDMI!' => [ 'Telechips', 'TCC8935 based device', DeviceType::DEVBOARD ], + 'TCC8975 STB!' => [ 'Telechips', 'TCC8975 based device', DeviceType::DEVBOARD ], + 'OMAP' => [ 'Texas Instruments', 'OMAP based device', DeviceType::DEVBOARD ], + 'OMAP SS' => [ 'Texas Instruments', 'OMAP based device', DeviceType::DEVBOARD ], + 'LogicPD Zoom2' => [ 'Texas Instruments', 'OMAP based device', DeviceType::DEVBOARD ], + 'omap3evm' => [ 'Texas Instruments', 'OMAP3 based device', DeviceType::DEVBOARD ], + 'OMAP3ETPP' => [ 'Texas Instruments', 'OMAP3 based device', DeviceType::DEVBOARD ], + 'Omap5sevm' => [ 'Texas Instruments', 'OMAP5 based device', DeviceType::DEVBOARD ], + 'AM335XEVM' => [ 'Texas Instruments', 'Sitara AM335 based device', DeviceType::DEVBOARD ], + 'AM335XEVM SK' => [ 'Texas Instruments', 'Sitara AM335 based device', DeviceType::DEVBOARD ], + 'am3517evm' => [ 'Texas Instruments', 'Sitara AM351 based device', DeviceType::DEVBOARD ], + 'AM437XEVM' => [ 'Texas Instruments', 'Sitara AM437 based device', DeviceType::DEVBOARD ], + 'Colibri-T20' => [ 'Toradex', 'Colibri T20', DeviceType::DEVBOARD ], + 'pnx8473 kiryung' => [ 'Trident', 'PNX8473 based device', DeviceType::DEVBOARD ], + + /* Official Google development devices */ + 'Bravo' => [ 'HTC', 'Desire' ], + 'Dream' => [ 'HTC', 'Dream' ], + 'Vogue' => [ 'HTC', 'Touch' ], + 'Vendor Optimus' => [ 'LG', 'Optimus' ], + 'Stingray' => [ 'Motorola', 'XOOM', DeviceType::TABLET ], + 'Wingray' => [ 'Motorola', 'XOOM', DeviceType::TABLET ], + 'Blaze' => [ 'Texas Instruments', 'Blaze Tablet', DeviceType::TABLET ], + 'Blaze Tablet' => [ 'Texas Instruments', 'Blaze Tablet', DeviceType::TABLET ], + 'Google Ion' => [ 'Google', 'Ion' ], + 'Project Tango Tablet Development Kit' => [ 'Google', 'Project Tango' ], + 'Yellowstone' => [ 'Google', 'Project Tango' ], + + /* Nexus Devices (without official model no. */ + 'Passion' => [ 'HTC', 'Nexus One' ], + '(HTC )?Nexus ?One!' => [ 'HTC', 'Nexus One' ], + 'Crespo!' => [ 'Samsung', 'Nexus S' ], + '(Google )?Nexus S!' => [ 'Samsung', 'Nexus S' ], + 'Dooderbutt!' => [ 'Samsung', 'Nexus S' ], + 'LGE-lap crespo' => [ 'Samsung', 'Nexus S' ], + 'Maguro' => [ 'Samsung', 'Galaxy Nexus' ], + 'Toro' => [ 'Samsung', 'Galaxy Nexus' ], + 'Toro-VZW' => [ 'Samsung', 'Galaxy Nexus' ], + '(Google )?Galaxy Nexus!' => [ 'Samsung', 'Galaxy Nexus' ], + 'LGE-lap maguro' => [ 'Samsung', 'Galaxy Nexus' ], + 'LGE-maguro cappuccino' => [ 'Samsung', 'Galaxy Nexus' ], + '(Google )?Nexus ?4!' => [ 'LG', 'Nexus 4' ], + 'Mako' => [ 'LG', 'Nexus 4' ], + 'LGE-lap mako' => [ 'LG', 'Nexus 4' ], + 'Nexus 5X' => [ 'LG', 'Nexus 5X' ], + '(Google )?Nexus ?5!' => [ 'LG', 'Nexus 5' ], + 'HammerHead' => [ 'LG', 'Nexus 5' ], + 'LG-Nexus5' => [ 'LG', 'Nexus 5' ], + 'Nexus 6P' => [ 'Huawei', 'Nexus 6P' ], + 'shamu' => [ 'Motorola', 'Nexus 6' ], + '(Google )?Nexus ?6!' => [ 'Motorola', 'Nexus 6' ], + '(Google )?Nexus ?7 2013!' => [ 'Asus', 'Nexus 7 (2013)', DeviceType::TABLET ], + 'Flo' => [ 'Asus', 'Nexus 7 (2013)', DeviceType::TABLET ], + 'Grouper' => [ 'Asus', 'Nexus 7', DeviceType::TABLET ], + 'Tilapia' => [ 'Asus', 'Nexus 7', DeviceType::TABLET ], + '(Google )?Nexus ?7!' => [ 'Asus', 'Nexus 7', DeviceType::TABLET ], + 'Flounder' => [ 'HTC', 'Nexus 9', DeviceType::TABLET ], + 'Volantis' => [ 'HTC', 'Nexus 9', DeviceType::TABLET ], + 'Volantisg' => [ 'HTC', 'Nexus 9', DeviceType::TABLET ], + '(Google )?Nexus ?9!' => [ 'HTC', 'Nexus 9', DeviceType::TABLET ], + 'manta' => [ 'Samsung', 'Nexus 10', DeviceType::TABLET ], + '(Google )?Nexus ?10!' => [ 'Samsung', 'Nexus 10', DeviceType::TABLET ], + + /* Pixel Devices */ + 'Pixel C' => [ 'Google', 'Pixel C', DeviceType::TABLET ], + + /* Google Edition */ + 'HTC One' => [ 'HTC', 'One (Google Edition)' ], + 'Moto E' => [ 'Motorola', 'Moto E (Google Edition)' ], + 'Moto G' => [ 'Motorola', 'Moto G (Google Edition)' ], + 'Moto G LTE' => [ 'Motorola', 'Moto G (Google Edition)' ], + 'Moto G 2014' => [ 'Motorola', 'Moto G (Google Edition, 2014)' ], + 'Moto G 2014 LTE' => [ 'Motorola', 'Moto G (Google Edition, 2014)' ], + 'Moto G (2014)' => [ 'Motorola', 'Moto G (Google Edition, 2014)' ], + 'Moto X' => [ 'Motorola', 'Moto X (Google Edition)' ], + 'GT-I9505G' => [ 'Samsung', 'Galaxy S4 (Google Edition)' ], + 'Galaxy S4 Google Editon' => [ 'Samsung', 'Galaxy S4 (Google Edition)' ], + 'SM-G900FG' => [ 'Samsung', 'Galaxy S5 (Google Edition)' ], + 'Xperia Z Ultra' => [ 'Sony', 'Xperia Z Ultra (Google Edition)' ], + + /* Google Glass */ + 'Glass 1' => [ 'Google', 'Glass', DeviceType::HEADSET, Flag::GOOGLEGLASS ], + + /* Android Wear */ + 'ZenWatch' => [ 'Asus', 'ZenWatch', DeviceType::WATCH, Flag::ANDROIDWEAR ], + 'ZenWatch 2' => [ 'Asus', 'ZenWatch 2', DeviceType::WATCH, Flag::ANDROIDWEAR ], + 'HUAWEI WATCH' => [ 'Huawei', 'Watch', DeviceType::WATCH, Flag::ANDROIDWEAR ], + 'G Watch' => [ 'LG', 'G Watch', DeviceType::WATCH, Flag::ANDROIDWEAR ], + 'G Watch R' => [ 'LG', 'G Watch R', DeviceType::WATCH, Flag::ANDROIDWEAR ], + 'LG-Watch Urbane' => [ 'LG', 'G Watch Urbane', DeviceType::WATCH, Flag::ANDROIDWEAR ], + 'Moto 360' => [ 'Motorola', 'Moto 360', DeviceType::WATCH, Flag::ANDROIDWEAR ], + 'Gear Live' => [ 'Samsung', 'Gear Live', DeviceType::WATCH, Flag::ANDROIDWEAR ], + 'SmartWatch 3' => [ 'Sony', 'SmartWatch 3', DeviceType::WATCH, Flag::ANDROIDWEAR ], + + /* Android TV */ + 'Nexus Player' => [ 'Asus', 'Nexus Player', DeviceType::TELEVISION, Flag::ANDROIDTV], + 'SVP-DTV15' => [ 'Sony', 'Bravia Android TV (2015)', DeviceType::TELEVISION, Flag::ANDROIDTV], + 'BRAVIA 2015' => [ 'Sony', 'Bravia Android TV (2015)', DeviceType::TELEVISION, Flag::ANDROIDTV], + 'BRAVIA 4K 2015' => [ 'Sony', 'Bravia Android TV (2015)', DeviceType::TELEVISION, Flag::ANDROIDTV ], + 'BRAVIA 4K GB' => [ 'Sony', 'Bravia Android TV (2016)', DeviceType::TELEVISION, Flag::ANDROIDTV ], + 'QV151E' => [ 'Philips', 'Android TV (2015)', DeviceType::TELEVISION, Flag::ANDROIDTV], + 'QM151E' => [ 'Philips', 'Android TV (2015)', DeviceType::TELEVISION, Flag::ANDROIDTV], + 'QM152E' => [ 'Philips', 'Android TV (2015)', DeviceType::TELEVISION, Flag::ANDROIDTV], + 'QM163E' => [ 'Philips', 'Android TV (2016)', DeviceType::TELEVISION, Flag::ANDROIDTV], + 'PH7M EU 5596' => [ 'Philips', 'Android TV (2016)', DeviceType::TELEVISION, Flag::ANDROIDTV], + 'SHIELD Console' => [ 'Nvidia', 'SHIELD Android TV', DeviceType::TELEVISION, Flag::ANDROIDTV], + 'SHIELD Android TV' => [ 'Nvidia', 'SHIELD Android TV', DeviceType::TELEVISION, Flag::ANDROIDTV], + 'SHIELD Andr0id TV' => [ 'Nvidia', 'SHIELD Android TV', DeviceType::TELEVISION, Flag::ANDROIDTV], + + /* Middleware and emulators */ + 'BlueStacks!' => [ 'BlueStacks', 'App Player', DeviceType::DESKTOP ], + 'App Runtime for Chrome' => [ 'Google', 'App Runtime for Chrome', DeviceType::DESKTOP ], + 'youwave custom' => [ 'Youwave', 'Android on PC', DeviceType::DESKTOP ], + 'BlackBerry Runtime for Android Apps' => [ 'RIM', 'BlackBerry (Android Runtime)', DeviceType::MOBILE ], + 'alien jolla bionic' => [ 'Jolla', 'Sailfish (Android Runtime)', DeviceType::MOBILE ], + 'Jolla' => [ 'Jolla', 'Sailfish (Android Runtime)', DeviceType::MOBILE ], + 'alien ubuntu qt' => [ 'Ubuntu', 'Touch (Android Runtime)', DeviceType::MOBILE ], + 'full Android on Microsoft Windows, pad, pc, n*books' => [ 'SocketeQ', 'WindowsAndroid', DeviceType::DESKTOP ], + 'VMware Virtual Platform' => [ 'VMWare', 'Virtual Platform', DeviceType::DESKTOP ], + 'Xamarin Android Player!' => [ 'Xamarin', 'Android Player', DeviceType::EMULATOR ], + + /* TV sticks */ + 'CX-919' => [ null, 'CX-919', DeviceType::TELEVISION ], + 'CX-921' => [ null, 'CX-921', DeviceType::TELEVISION ], + 'CX-921B' => [ null, 'CX-921B', DeviceType::TELEVISION ], + 'CX-929' => [ null, 'CX-929', DeviceType::TELEVISION ], + 'CX-950' => [ null, 'CX-950', DeviceType::TELEVISION ], + 'CX-958' => [ null, 'CX-958', DeviceType::TELEVISION ], + 'VEOLO' => [ 'A.C. Ryan', 'VEOLO Smart Android Hub', DeviceType::TELEVISION ], + 'VEOLO2' => [ 'A.C. Ryan', 'VEOLO2 Smart Android Hub', DeviceType::TELEVISION ], + 'Astone A108' => [ 'Astone', 'A108', DeviceType::TELEVISION ], + 'BenQ JD-130' => [ 'BenQ', 'JD-130', DeviceType::TELEVISION ], + 'BenQ Android TV' => [ 'BenQ', 'JD-130', DeviceType::TELEVISION ], + 'EVOKE HDI Box' => [ 'Evoke', 'HDI TV Box', DeviceType::TELEVISION ], + 'Ezcast' => [ 'Ezcast', 'Dongle', DeviceType::TELEVISION ], + 'JT SmartPC02' => [ 'Joy-IT', 'Smart PC', DeviceType::TELEVISION ], + 'M3 Enjoy TV Box' => [ 'Geniatech', 'Enjoy TV', DeviceType::TELEVISION ], + 'MX Enjoy TV BOX' => [ 'Geniatech', 'Enjoy TV', DeviceType::TELEVISION ], + 'TOUCAN Stick HD' => [ 'iconBit', 'Toucan Stick HD', DeviceType::TELEVISION ], + 'TOUCAN Stick G4' => [ 'iconBit', 'Toucan Stick G4', DeviceType::TELEVISION ], + 'Toucan Stick 4K' => [ 'iconBit', 'Toucan Stick 4K', DeviceType::TELEVISION ], + 'TOUCAN Stick 3D mk2' => [ 'iconBit', 'Toucan Stick 3D', DeviceType::TELEVISION ], + 'NEO-G4' => [ 'Minix', 'Neo G4', DeviceType::TELEVISION ], + 'NEO-G4-108A' => [ 'Minix', 'Neo G4', DeviceType::TELEVISION ], + 'NEO-G4 a' => [ 'Minix', 'Neo G4 a', DeviceType::TELEVISION ], + 'NEO-X5' => [ 'Minix', 'Neo X5', DeviceType::TELEVISION ], + 'NEO X5' => [ 'Minix', 'Neo X5', DeviceType::TELEVISION ], + 'Neo-X5-B' => [ 'Minix', 'Neo X5', DeviceType::TELEVISION ], + 'NEO-X5-116A' => [ 'Minix', 'Neo X5', DeviceType::TELEVISION ], + 'NEO-X5-mini' => [ 'Minix', 'Neo X5 mini', DeviceType::TELEVISION ], + 'NEO X5 mini' => [ 'Minix', 'Neo X5 mini', DeviceType::TELEVISION ], + 'NEO-X6' => [ 'Minix', 'Neo X6', DeviceType::TELEVISION ], + 'NEO-X7-216A' => [ 'Minix', 'Neo X7', DeviceType::TELEVISION ], + 'NEO-X7-mini' => [ 'Minix', 'Neo X7 mini', DeviceType::TELEVISION ], + 'NEO-X8' => [ 'Minix', 'Neo X8', DeviceType::TELEVISION ], + 'NEO-X8-H' => [ 'Minix', 'Neo X8', DeviceType::TELEVISION ], + 'NEO-X8H-PLUS' => [ 'Minix', 'Neo X8+', DeviceType::TELEVISION ], + 'RKM MK602' => [ 'Rikomagic', 'MK602', DeviceType::TELEVISION ], + 'Rikomagic MK802' => [ 'Rikomagic', 'MK802', DeviceType::TELEVISION ], + 'Rikomagic MK802 ?II!' => [ 'Rikomagic', 'MK802 II', DeviceType::TELEVISION ], + 'Rikomagic MK802III' => [ 'Rikomagic', 'MK802 III', DeviceType::TELEVISION ], + 'Rikomagic MK802IIIS' => [ 'Rikomagic', 'MK802 IIIS', DeviceType::TELEVISION ], + 'RKM MK802IIIS' => [ 'Rikomagic', 'MK802 IIIS', DeviceType::TELEVISION ], + 'RKM MK802IV' => [ 'Rikomagic', 'MK802 IV', DeviceType::TELEVISION ], + 'MK808' => [ 'Rikomagic', 'MK808', DeviceType::TELEVISION ], + 'MK808B' => [ 'Rikomagic', 'MK808 B', DeviceType::TELEVISION ], + 'MK809' => [ 'Rikomagic', 'MK809', DeviceType::TELEVISION ], + 'MK809B' => [ 'Rikomagic', 'MK809 B', DeviceType::TELEVISION ], + 'MK809IV' => [ 'Rikomagic', 'MK809 IV', DeviceType::TELEVISION ], + 'MK818B' => [ 'Rikomagic', 'MK818 B', DeviceType::TELEVISION ], + 'RKM MK902' => [ 'Rikomagic', 'MK902', DeviceType::TELEVISION ], + 'RKM MK902II' => [ 'Rikomagic', 'MK902 II', DeviceType::TELEVISION ], + 'MK908' => [ 'Rikomagic', 'MK908', DeviceType::TELEVISION ], + 'MK908II' => [ 'Rikomagic', 'MK908 II', DeviceType::TELEVISION ], + 'GK802' => [ 'Rikomagic', 'GK802', DeviceType::TELEVISION ], + 'XW-I8' => [ 'Sambao', 'XW-I8', DeviceType::TELEVISION ], + 'TCC8920 EVM' => [ 'Telechips', 'TCC8920', DeviceType::TELEVISION ], + 'TCC8925 HDMI DONGLE' => [ 'Telechips', 'TCC8925', DeviceType::TELEVISION ], + 'TCC8930 STB EV' => [ 'Telechips', 'TCC8930', DeviceType::TELEVISION ], + 'TCC8930 STB1' => [ 'Telechips', 'TCC8930', DeviceType::TELEVISION ], + 'TCC8935 HDMI DONGLE' => [ 'Telechips', 'TCC8935', DeviceType::TELEVISION ], + + /* Game consoles */ + 'OUYA( Console)?!' => [ 'OUYA', 'OUYA', [ DeviceType::GAMING, DeviceSubType::CONSOLE ] ], + 'SHIELD' => [ 'Nvidia', 'SHIELD', [ DeviceType::GAMING, DeviceSubType::CONSOLE ] ], + 'SHIELD Tablet' => [ 'Nvidia', 'SHIELD Tablet', [ DeviceType::GAMING, DeviceSubType::PORTABLE ] ], + 'SHIELD Tablet K1' => [ 'Nvidia', 'SHIELD Tablet K1', [ DeviceType::GAMING, DeviceSubType::PORTABLE ] ], + 'SHIELD Tablet II' => [ 'Nvidia', 'SHIELD Tablet II', [ DeviceType::GAMING, DeviceSubType::PORTABLE ] ], + + /* Regular devices */ + 'EL72B' => [ '3Q', 'Qoo! Q-Book EL72B', DeviceType::TABLET ], + + '(AC|BC|LC|MT|RC|QS|VM|TS|OC)[0-9]{4,4}[A-Z]!!' => [ + 'AC0731B' => [ '3Q', 'Qoo! Q-Pad AC0731B', DeviceType::TABLET ], + 'AC1024C' => [ '3Q', 'Qoo! Q-Pad AC1024C', DeviceType::TABLET ], + 'AC7803C' => [ '3Q', 'Qoo! Q-Pad AC7803C', DeviceType::TABLET ], + 'BC9710A' => [ '3Q', 'Qoo! Q-Pad BC9710A', DeviceType::TABLET ], + 'BC9710AM' => [ '3Q', 'Qoo! Q-Pad BC9710A', DeviceType::TABLET ], + 'LC0720C' => [ '3Q', 'Qoo! Q-Pad LC0720C', DeviceType::TABLET ], + 'LC0723B' => [ '3Q', 'Qoo! Q-Pad LC0723B', DeviceType::TABLET ], + 'LC0725B' => [ '3Q', 'Qoo! Q-Pad LC0725B', DeviceType::TABLET ], + 'LC0804B' => [ '3Q', 'Qoo! Q-Pad LC0804B', DeviceType::TABLET ], + 'LC0808B' => [ '3Q', 'Qoo! Q-Pad LC0808B', DeviceType::TABLET ], + 'LC0809B' => [ '3Q', 'Qoo! Q-Pad LC0809B', DeviceType::TABLET ], + 'LC0810C' => [ '3Q', 'Qoo! Q-Pad LC0810C', DeviceType::TABLET ], + 'LC0816C' => [ '3Q', 'Qoo! Q-Pad LC0816C', DeviceType::TABLET ], + 'LC0901D' => [ '3Q', 'Qoo! Q-Pad LC0901D', DeviceType::TABLET ], + 'LC1016C' => [ '3Q', 'Qoo! Q-Pad LC1016C', DeviceType::TABLET ], + 'LC9721C' => [ '3Q', 'Qoo! Q-Pad LC9721C', DeviceType::TABLET ], + 'MT0724B' => [ '3Q', 'Qoo! Q-Pad MT0724B', DeviceType::TABLET ], + 'MT0729B' => [ '3Q', 'Qoo! Q-Pad MT0729B', DeviceType::TABLET ], + 'MT0729D' => [ '3Q', 'Qoo! Q-Pad MT0729D', DeviceType::TABLET ], + 'MT0811B' => [ '3Q', 'Qoo! Q-Pad MT0811B', DeviceType::TABLET ], + 'MT7801C' => [ '3Q', 'Qoo! Q-Pad MT7801C', DeviceType::TABLET ], + 'RC0709B' => [ '3Q', 'Qoo! Q-Pad RC0709B', DeviceType::TABLET ], + 'RC0710B' => [ '3Q', 'Qoo! Q-Pad RC0710B', DeviceType::TABLET ], + 'RC0718C' => [ '3Q', 'Qoo! Q-Pad RC0718C', DeviceType::TABLET ], + 'RC0719H' => [ '3Q', 'Qoo! Q-Pad RC0719H', DeviceType::TABLET ], + 'RC0721B' => [ '3Q', 'Qoo! Q-Pad RC0721B', DeviceType::TABLET ], + 'RC0722C' => [ '3Q', 'Qoo! Q-Pad RC0722C', DeviceType::TABLET ], + 'RC0726B' => [ '3Q', 'Qoo! Q-Pad RC0726B', DeviceType::TABLET ], + 'RC0734H' => [ '3Q', 'Qoo! Q-Pad RC0734H', DeviceType::TABLET ], + 'RC0738C' => [ '3Q', 'Qoo! Q-Pad RC0738C', DeviceType::TABLET ], + 'RC0743H' => [ '3Q', 'Qoo! Q-Pad RC0743H', DeviceType::TABLET ], + 'RC0813C' => [ '3Q', 'Qoo! Q-Pad RC0813C', DeviceType::TABLET ], + 'RC0813CM' => [ '3Q', 'Qoo! Q-Pad RC0813CM', DeviceType::TABLET ], + 'RC0817C' => [ '3Q', 'Qoo! Q-Pad RC0817C', DeviceType::TABLET ], + 'RC1018C' => [ '3Q', 'Qoo! Q-Pad RC1018C', DeviceType::TABLET ], + 'RC1019G' => [ '3Q', 'Qoo! Q-Pad RC1019G', DeviceType::TABLET ], + 'RC1025F' => [ '3Q', 'Qoo! Q-Pad RC1025F', DeviceType::TABLET ], + 'RC1301C' => [ '3Q', 'Qoo! Q-Pad RC1301C', DeviceType::TABLET ], + 'RC7802F' => [ '3Q', 'Qoo! Q-Pad RC7802F', DeviceType::TABLET ], + 'RC9711B' => [ '3Q', 'Qoo! Q-Pad RC9711B', DeviceType::TABLET ], + 'RC9712C' => [ '3Q', 'Qoo! Q-Pad RC9712C', DeviceType::TABLET ], + 'RC9716B' => [ '3Q', 'Qoo! Q-Pad RC9716B', DeviceType::TABLET ], + 'RC9717B' => [ '3Q', 'Qoo! Q-Pad RC9717B', DeviceType::TABLET ], + 'RC9724C' => [ '3Q', 'Qoo! Q-Pad RC9724C', DeviceType::TABLET ], + 'RC9726C' => [ '3Q', 'Qoo! Q-Pad RC9726C', DeviceType::TABLET ], + 'RC9727F' => [ '3Q', 'Qoo! Q-Pad RC9727F', DeviceType::TABLET ], + 'RC9730C' => [ '3Q', 'Qoo! Q-Pad RC9730C', DeviceType::TABLET ], + 'RC9731C' => [ '3Q', 'Qoo! Q-Pad RC9731C', DeviceType::TABLET ], + 'QS0715C' => [ '3Q', 'Qoo! Q-Pad QS0715C', DeviceType::TABLET ], + 'QS0716D' => [ '3Q', 'Qoo! Q-Pad QS0716D', DeviceType::TABLET ], + 'QS0717D' => [ '3Q', 'Qoo! Q-Pad QS0717D', DeviceType::TABLET ], + 'QS0728C' => [ '3Q', 'Qoo! Q-Pad QS0728C', DeviceType::TABLET ], + 'QS0730C' => [ '3Q', 'Qoo! Q-Pad QS0730C', DeviceType::TABLET ], + 'QS0815C' => [ '3Q', 'Qoo! Q-Pad QS0815C', DeviceType::TABLET ], + 'QS9718C' => [ '3Q', 'Qoo! Q-Pad QS9718C', DeviceType::TABLET ], + 'VM1017A' => [ '3Q', 'Qoo! Q-Pad VM1017A', DeviceType::TABLET ], + 'TS0807B' => [ '3Q', 'Qoo! Q-Note TS0807B', DeviceType::TABLET ], + 'TS1003T' => [ '3Q', 'Qoo! Surf Tablet TS1003T', DeviceType::TABLET ], + 'TS1004T' => [ '3Q', 'Qoo! Surf Tablet TS1004T', DeviceType::TABLET ], + 'TS1009B' => [ '3Q', 'Qoo! Surf Tablet TS1009B', DeviceType::TABLET ], + 'TS1013B' => [ '3Q', 'Qoo! Surf Tablet TS1013B', DeviceType::TABLET ], + 'TS9708B' => [ '3Q', 'Qoo! Surf Tablet TS9708B', DeviceType::TABLET ], + 'OC1020A' => [ '3Q', 'Qoo! Surf Tablet OC1020A', DeviceType::TABLET ], + 'QS9715F' => [ '3Q', 'Qoo! Surf Tablet QS9715F', DeviceType::TABLET ], + 'QS9719D' => [ '3Q', 'Qoo! Surf Tablet QS9719D', DeviceType::TABLET ], + 'QS1023H' => [ '3Q', 'Qoo! Surf Tablet QS1023H', DeviceType::TABLET ], + 'VM0711A' => [ '3Q', 'Qoo! Surf Tablet VM0711A', DeviceType::TABLET ], + ], + + 'BioniQ!!' => [ + 'BioniQ 700' => [ 'a-rival', 'BioniQ 700', DeviceType::TABLET ], + 'BioniQ700HX' => [ 'a-rival', 'BioniQ 700 HX', DeviceType::TABLET ], + 'BioniQ 800' => [ 'a-rival', 'BioniQ 800', DeviceType::TABLET ], + 'BioniQ 1001' => [ 'a-rival', 'BioniQ 1001', DeviceType::TABLET ], + 'BioniQ 8008' => [ 'a-rival', 'BioniQ 8008', DeviceType::TABLET ], + ], + + 'RTC-700A' => [ 'Aaeon', 'RTC-700A', DeviceType::TABLET ], + 'aspire1000s' => [ 'Acer', '1000 Series', DeviceType::DESKTOP ], + + 'A[0-9]{3,3}!!' => [ + 'A100' => [ 'Acer', 'Iconia Tab A100', DeviceType::TABLET ], + 'A101' => [ 'Acer', 'Iconia Tab A101', DeviceType::TABLET ], + 'A110' => [ 'Acer', 'Iconia Tab A110', DeviceType::TABLET ], + 'A200' => [ 'Acer', 'Iconia Tab A200', DeviceType::TABLET ], + 'A200 3G' => [ 'Acer', 'Iconia Tab A200', DeviceType::TABLET ], + 'A210' => [ 'Acer', 'Iconia Tab A210', DeviceType::TABLET ], + 'A211' => [ 'Acer', 'Iconia Tab A211', DeviceType::TABLET ], + 'A500' => [ 'Acer', 'Iconia Tab A500', DeviceType::TABLET ], + 'A501' => [ 'Acer', 'Iconia Tab A501', DeviceType::TABLET ], + 'A510' => [ 'Acer', 'Iconia Tab A510', DeviceType::TABLET ], + 'A511' => [ 'Acer', 'Iconia Tab A511', DeviceType::TABLET ], + 'A700' => [ 'Acer', 'Iconia Tab A700', DeviceType::TABLET ], + 'A701' => [ 'Acer', 'Iconia Tab A701', DeviceType::TABLET ], + 'A800' => [ 'Acer', 'Iconia Tab A800', DeviceType::TABLET ], + ], + + 'P2A700' => [ 'Acer', 'Iconia Tab A700', DeviceType::TABLET ], + + 'A1-[0-9]{3,3}!!' => [ + 'A1-713' => [ 'Acer', 'Iconia Tab 7 A1-713', DeviceType::TABLET ], + 'A1-713HD' => [ 'Acer', 'Iconia Tab 7 A1-713 HD', DeviceType::TABLET ], + 'A1-724' => [ 'Acer', 'Iconia TalkTab 7 A1-724', DeviceType::TABLET ], + 'A1-810' => [ 'Acer', 'Iconia A1-810', DeviceType::TABLET ], + 'A1-811' => [ 'Acer', 'Iconia A1-811', DeviceType::TABLET ], + 'A1-812' => [ 'Acer', 'Iconia A1-812', DeviceType::TABLET ], + 'A1-820' => [ 'Acer', 'Iconia A1-820', DeviceType::TABLET ], + 'A1-830' => [ 'Acer', 'Iconia A1-830', DeviceType::TABLET ], + 'A1-840' => [ 'Acer', 'Iconia Tab 8 A1-840', DeviceType::TABLET ], + 'A1-840FHD' => [ 'Acer', 'Iconia Tab 8 A1-840 FHD', DeviceType::TABLET ], + 'A1-841' => [ 'Acer', 'Iconia Tab 8 A1-841', DeviceType::TABLET ], + 'A1-850' => [ 'Acer', 'Iconia One 8 A1-850', DeviceType::TABLET ], + 'A1-860' => [ 'Acer', 'Iconia Tab 8 A1-860', DeviceType::TABLET ], + ], + + 'A3-A[0-9]{2,2}!!' => [ + 'A3-A10' => [ 'Acer', 'Iconia A3-A10', DeviceType::TABLET ], + 'A3-A11' => [ 'Acer', 'Iconia A3-A11', DeviceType::TABLET ], + 'A3-A20' => [ 'Acer', 'Iconia Tab 10 A3-A20', DeviceType::TABLET ], + 'A3-A20FHD' => [ 'Acer', 'Iconia Tab 10 A3-A20 FHD', DeviceType::TABLET ], + 'A3-A30' => [ 'Acer', 'Iconia Tab 10 A3-A30', DeviceType::TABLET ], + ], + + 'B1-[A0-9][0-9]{2,2}!!' => [ + 'B1-A71' => [ 'Acer', 'Iconia B1-A71', DeviceType::TABLET ], + 'B1-710' => [ 'Acer', 'Iconia B1-710', DeviceType::TABLET ], + 'B1-711' => [ 'Acer', 'Iconia B1-711', DeviceType::TABLET ], + 'B1-713' => [ 'Acer', 'Iconia B1-713', DeviceType::TABLET ], + 'B1-720' => [ 'Acer', 'Iconia B1-720', DeviceType::TABLET ], + 'B1-721' => [ 'Acer', 'Iconia B1-721', DeviceType::TABLET ], + 'B1-723' => [ 'Acer', 'Iconia B1-723', DeviceType::TABLET ], + 'B1-730' => [ 'Acer', 'Iconia One 7 B1-730', DeviceType::TABLET ], + 'B1-730HD' => [ 'Acer', 'Iconia One 7 B1-730 HD', DeviceType::TABLET ], + 'B1-750' => [ 'Acer', 'Iconia One 7 B1-750', DeviceType::TABLET ], + 'B1-760' => [ 'Acer', 'Iconia One 7 B1-760', DeviceType::TABLET ], + 'B1-760HD' => [ 'Acer', 'Iconia One 7 B1-760 HD', DeviceType::TABLET ], + 'B1-770' => [ 'Acer', 'Iconia B1-770', DeviceType::TABLET ], + 'B1-810' => [ 'Acer', 'Iconia One 8 B1-810', DeviceType::TABLET ], + 'B1-820' => [ 'Acer', 'Iconia One 8 B1-820', DeviceType::TABLET ], + 'B1-830' => [ 'Acer', 'Iconia One 8 B1-830', DeviceType::TABLET ], + ], + + 'TD070VA1' => [ 'Acer', 'Iconia One 7 TD070VA1', DeviceType::TABLET ], + + 'ICONIA!!' => [ + 'ICONIA Tab W500' => [ 'Acer', 'Iconia W500', DeviceType::TABLET ], + 'ICONIA Tab W500P' => [ 'Acer', 'Iconia W500P', DeviceType::TABLET ], + 'ICONIA Tab W501' => [ 'Acer', 'Iconia W501', DeviceType::TABLET ], + 'ICONIA W700' => [ 'Acer', 'Iconia W700', DeviceType::TABLET ], + ], + + 'GT-810' => [ 'Acer', 'Predator 8', DeviceType::TABLET ], + + 'E[0-9]{2,2}0?!!' => [ + 'E110' => [ 'Acer', 'beTouch E110' ], + 'E120' => [ 'Acer', 'beTouch E120' ], + 'E130' => [ 'Acer', 'beTouch E130' ], + 'E140' => [ 'Acer', 'beTouch E140' ], + 'E210' => [ 'Acer', 'beTouch E210' ], + 'E310' => [ 'Acer', 'Liquid mini' ], + 'E320' => [ 'Acer', 'Liquid Express' ], + 'E330' => [ 'Acer', 'Liquid Glow' ], + 'E350' => [ 'Acer', 'Liquid Gallant' ], + 'E380' => [ 'Acer', 'Liquid E3' ], + 'E400' => [ 'Acer', 'beTouch E400' ], + 'E600' => [ 'Acer', 'Liquid E600' ], + 'E39' => [ 'Acer', 'Liquid E700' ], + ], + + 'I110' => [ 'Acer', 'Liquid C1' ], + + 'S[0-9]{2,2}0?!!' => [ + 'S100' => [ 'Acer', 'Liquid' ], + 'S110' => [ 'Acer', 'Stream' ], + 'S120' => [ 'Acer', 'Liquid mt' ], + 'S300' => [ 'Acer', 'Iconia Smart' ], + 'S500' => [ 'Acer', 'CloudMobile' ], + 'S510' => [ 'Acer', 'Liquid S' ], + 'S520' => [ 'Acer', 'Liquid S2' ], + 'S53' => [ 'Acer', 'Liquid S3' ], + 'S55' => [ 'Acer', 'Liquid Jade' ], + 'S56' => [ 'Acer', 'Liquid Jade S' ], + 'S57' => [ 'Acer', 'Liquid Jade Z' ], + 'S59' => [ 'Acer', 'Liquid X2' ], + ], + + 'V[0-9]{2,2}0!!' => [ + 'V360' => [ 'Acer', 'Liquid E1' ], + 'V370' => [ 'Acer', 'Liquid E2' ], + 'V380' => [ 'Acer', 'Liquid E3' ], + ], + + 'Z[0-9]{3,3}!!' => [ + 'Z110' => [ 'Acer', 'Liquid Z' ], + 'Z120' => [ 'Acer', 'Liquid Z2' ], + 'Z130' => [ 'Acer', 'Liquid Z3' ], + 'Z140' => [ 'Acer', 'Liquid Z4' ], + 'Z150' => [ 'Acer', 'Liquid Z5' ], + 'Z160' => [ 'Acer', 'Liquid Z4' ], + 'Z200' => [ 'Acer', 'Liquid Z200' ], + 'Z205' => [ 'Acer', 'Liquid Z205' ], + 'Z205P' => [ 'Acer', 'Liquid Z205' ], + 'Z220' => [ 'Acer', 'Liquid Z220' ], + 'Z410' => [ 'Acer', 'Liquid Z410' ], + 'Z500' => [ 'Acer', 'Liquid Z500' ], + 'Z520' => [ 'Acer', 'Liquid Z520' ], + ], + + 'Z4' => [ 'Acer', 'Liquid Z4' ], + 'T01' => [ 'Acer', 'Liquid Z330' ], + 'T012' => [ 'Acer', 'Liquid Z330' ], + 'T02' => [ 'Acer', 'Liquid Z530' ], + 'T05' => [ 'Acer', 'Liquid Z530S' ], + 'T03' => [ 'Acer', 'Liquid Z630' ], + 'T04' => [ 'Acer', 'Liquid Z630S' ], + 'TD600' => [ 'Acer', 'beTouch TD600' ], + 'AK330' => [ 'Acer', 'Liquid Gallant Duo' ], + 'AK330s' => [ 'Acer', 'Liquid Gallant Duo' ], + 'AT390' => [ 'Acer', 'Liquid C' ], + 'E1 v360' => [ 'Acer', 'Liquid E1' ], + 'v360 E1' => [ 'Acer', 'Liquid E1' ], + + 'Liquid!!' => [ + 'Liquid' => [ 'Acer', 'Liquid' ], + 'Liquid E' => [ 'Acer', 'Liquid E' ], + 'LIQUID E1' => [ 'Acer', 'Liquid E1 ' ], + 'LIQUID E2' => [ 'Acer', 'Liquid E2 ' ], + 'Liquid MT' => [ 'Acer', 'Liquid mt' ], + 'Liquid Metal' => [ 'Acer', 'Liquid mt' ], + ], + + 'Stream' => [ 'Acer', 'Stream' ], + 'M3-2200' => [ 'Acer', 'M3-2200', DeviceType::TABLET ], + 'MWND1' => [ 'Acer', 'MWND1 Android Dongle', DeviceType::TELEVISION ], + + 'DA2[0-9]{2,2}[A-Z]+!!' => [ + 'DA220HQL' => [ 'Acer', 'Touch and 3D Monitor DA220HQL', DeviceType::MONITOR ], + 'DA221HQL' => [ 'Acer', 'Touch and 3D Monitor DA221HQL', DeviceType::MONITOR ], + 'DA222HQL' => [ 'Acer', 'Touch and 3D Monitor DA222HQL', DeviceType::MONITOR ], + 'DA222HQLA' => [ 'Acer', 'Touch and 3D Monitor DA222HQL', DeviceType::MONITOR ], + 'DA223HQL' => [ 'Acer', 'All-in-One DA223HQL', DeviceType::MONITOR ], + 'DA226HQ' => [ 'Acer', 'All-in-One DA226HQ', DeviceType::MONITOR ], + 'DA241HL' => [ 'Acer', 'All-in-One DA241HL', DeviceType::MONITOR ], + 'DA245HQL' => [ 'Acer', 'Touch and 3D Monitor DA245HQL', DeviceType::MONITOR ], + ], + + 'TA272HUL' => [ 'Acer', 'All-in-One TA272HUL', DeviceType::MONITOR ], + + 'AA3-600' => [ 'Acer', 'Aspire A3', DeviceType::DESKTOP ], + + 'Aspire!!' => [ + 'Aspire A1' => [ 'Acer', 'Aspire A1', DeviceType::DESKTOP ], + 'Aspire ([0-9]{4,4}[A-Z]?)!' => [ 'Acer', 'Aspire $1', DeviceType::DESKTOP ], + 'Aspire ([A-Z][A-Z0-9]-[0-9]{3,3}[A-Z]?)!' => [ 'Acer', 'Aspire $1', DeviceType::DESKTOP ], + 'Aspire ([A-Z][0-9]{4,4}[A-Z]?)!' => [ 'Acer', 'Aspire $1', DeviceType::DESKTOP ], + 'Aspire ([A-Z]{2,2}[0-9]-[0-9]{3,3})!' => [ 'Acer', 'Aspire $1', DeviceType::DESKTOP ], + 'Aspire one' => [ 'Acer', 'Aspire One', DeviceType::DESKTOP ], + 'Aspire one Pro' => [ 'Acer', 'Aspire One Pro', DeviceType::DESKTOP ], + ], + + 'C908' => [ 'Acho', 'C908', DeviceType::TABLET ], + + 'ADVAN Q7A' => [ 'Advan', 'Vandroid Q7A' ], + 'ADVAN E1C+' => [ 'Advan', 'Vandroid E1-C+', DeviceType::TABLET ], + 'ADVAN S3' => [ 'Advan', 'Vandroid S3', DeviceType::TABLET ], + 'ADVAN S3+' => [ 'Advan', 'Vandroid S3+', DeviceType::TABLET ], + 'ADVAN S3A' => [ 'Advan', 'Vandroid S3-A', DeviceType::TABLET ], + 'ADVAN S3C' => [ 'Advan', 'Vandroid S3-C', DeviceType::TABLET ], + 'ADVAN S4' => [ 'Advan', 'Vandroid S4', DeviceType::TABLET ], + 'ADVAN S4+' => [ 'Advan', 'Vandroid S4+', DeviceType::TABLET ], + 'ADVAN S4A' => [ 'Advan', 'Vandroid S4-A', DeviceType::TABLET ], + 'ADVAN S4C' => [ 'Advan', 'Vandroid S4-C', DeviceType::TABLET ], + 'ADVAN S4E' => [ 'Advan', 'Vandroid S4-E', DeviceType::TABLET ], + 'ADVAN S5E' => [ 'Advan', 'Vandroid S5-E', DeviceType::TABLET ], + 'Vandroid S5E' => [ 'Advan', 'Vandroid S5-E', DeviceType::TABLET ], + 'ADVAN S5E Pro' => [ 'Advan', 'Vandroid S5-E Pro', DeviceType::TABLET ], + 'S5-F' => [ 'Advan', 'Vandroid S5-F', DeviceType::TABLET ], + 'ADVAN S5H' => [ 'Advan', 'Vandroid S5-H', DeviceType::TABLET ], + 'ADVAN S5I' => [ 'Advan', 'Vandroid S5-I', DeviceType::TABLET ], + 'Advan S5K' => [ 'Advan', 'Vandroid S5-K', DeviceType::TABLET ], + 'ADVAN S5M' => [ 'Advan', 'Vandroid S5-M', DeviceType::TABLET ], + 'ADVAN S6A' => [ 'Advan', 'Vandroid S6-A', DeviceType::TABLET ], + 'T1-B' => [ 'Advan', 'Vandroid T1-B', DeviceType::TABLET ], + 'T1-D' => [ 'Advan', 'Vandroid T1-D', DeviceType::TABLET ], + 'T1-E' => [ 'Advan', 'Vandroid T1-E', DeviceType::TABLET ], + 'ADVAN T1G' => [ 'Advan', 'Vandroid T1-G', DeviceType::TABLET ], + 'ADVAN T1J' => [ 'Advan', 'Vandroid T1-J', DeviceType::TABLET ], + 'Vandroid T1J' => [ 'Advan', 'Vandroid T1-J', DeviceType::TABLET ], + 'ADVAN T1J+' => [ 'Advan', 'Vandroid T1-J+', DeviceType::TABLET ], + 'T1K Plus' => [ 'Advan', 'Vandroid T1-K Plus', DeviceType::TABLET ], + 'ADVAN T1L' => [ 'Advan', 'Vandroid T1-L', DeviceType::TABLET ], + 'ADVAN T2E' => [ 'Advan', 'Vandroid T2-E', DeviceType::TABLET ], + 'ADVAN T2F' => [ 'Advan', 'Vandroid T2-F', DeviceType::TABLET ], + 'Vandroid T3-A' => [ 'Advan', 'Vandroid T3-A', DeviceType::TABLET ], + 'ADVAN T3E+' => [ 'Advan', 'Vandroid T3-E+', DeviceType::TABLET ], + 'Vandroid T3i' => [ 'Advan', 'Vandroid T3i', DeviceType::TABLET ], + 'ADVAN T5C' => [ 'Advan', 'Vandroid T5-C', DeviceType::TABLET ], + 'Vandroid T' => [ 'Advan', 'Vandroid T', DeviceType::TABLET ], + 'Vega' => [ 'Advent', 'Vega', DeviceType::TABLET ], + 'VegaBean!' => [ 'Advent', 'Vega', DeviceType::TABLET ], + 'Advent Vega' => [ 'Advent', 'Vega', DeviceType::TABLET ], + 'Boost' => [ 'AG Mobile', 'Boost' ], + 'Chacer' => [ 'AG Mobile', 'Chacer' ], + 'AG Chrome Selfie' => [ 'AG Mobile', 'Chrome Selfie' ], + 'AG CHROME ULTRA' => [ 'AG Mobile', 'Chrome Ultra' ], + 'Ghost' => [ 'AG Mobile', 'Ghost' ], + 'Neon' => [ 'AG Mobile', 'Neon' ], + 'Quest' => [ 'AG Mobile', 'Quest' ], + 'Rage' => [ 'AG Mobile', 'Rage' ], + 'Shine' => [ 'AG Mobile', 'Shine' ], + 'Status' => [ 'AG Mobile', 'Status' ], + 'Style' => [ 'AG Mobile', 'Style' ], + 'Swift' => [ 'AG Mobile', 'Swift' ], + 'Swift Plus' => [ 'AG Mobile', 'Swift Plus' ], + 'Ultra' => [ 'AG Mobile', 'Ultra' ], + 'Zenith' => [ 'AG Mobile', 'Zenith' ], + 'Zoom' => [ 'AG Mobile', 'Zoom' ], + 'AG Tab 7 0' => [ 'AG Mobile', 'Tab 7.0', DeviceType::TABLET ], + 'AG Go-Tab Access' => [ 'AG Mobile', 'Go-Tab Access', DeviceType::TABLET ], + 'AG Chrome Go Tab 7.0' => [ 'AG Mobile', 'Go-Tab Chrome', DeviceType::TABLET ], + 'aigoPad' => [ 'aigo', 'aigoPad', DeviceType::TABLET ], + 'aigoPadM60' => [ 'aigo', 'aigoPad M60', DeviceType::TABLET ], + 'AigoPad M60' => [ 'aigo', 'aigoPad M60', DeviceType::TABLET ], + 'aigoPad M80D' => [ 'aigo', 'aigoPad M80', DeviceType::TABLET ], + 'aigoPad M80E' => [ 'aigo', 'aigoPad M80', DeviceType::TABLET ], + 'M801' => [ 'aigo', 'aigoPad M801', DeviceType::TABLET ], + 'N700' => [ 'aigo', 'aigoPad N700', DeviceType::TABLET ], + 'AT102HC' => [ 'Aikun', 'iTouch AT102HC', DeviceType::TABLET ], + 'AT104GS' => [ 'Aikun', 'iTouch AT104GS', DeviceType::TABLET ], + + 'Numy!!' => [ + 'Numy 3G AW1' => [ 'Ainol', 'Numy 3G AW1', DeviceType::TABLET ], + 'Numy 3G AX1' => [ 'Ainol', 'Numy 3G AX1', DeviceType::TABLET ], + 'Numy 3G AX10t' => [ 'Ainol', 'Numy 3G AX10t', DeviceType::TABLET ], + 'Numy 3G AX3' => [ 'Ainol', 'Numy 3G AX3', DeviceType::TABLET ], + 'Numy 3G BW1' => [ 'Ainol', 'Numy 3G BW1', DeviceType::TABLET ], + 'Numy 3G Vegas' => [ 'Ainol', 'Numy 3G Vegas', DeviceType::TABLET ], + 'Numy Note 9' => [ 'Ainol', 'Numy Note 9', DeviceType::TABLET ], + ], + + 'Novo7' => [ 'Ainovo', 'Novo7', DeviceType::TABLET ], + 'Novo7 -?Aurora!' => [ 'Ainovo', 'Novo7 Aurora', DeviceType::TABLET ], + 'novo Aurora' => [ 'Ainovo', 'Novo7 Aurora', DeviceType::TABLET ], + 'Novo 7 Aurora' => [ 'Ainovo', 'Novo7 Aurora', DeviceType::TABLET ], + 'Ainovo Aurora-II' => [ 'Ainovo', 'Novo7 Aurora II', DeviceType::TABLET ], + 'Aurora-II' => [ 'Ainovo', 'Novo7 Aurora II', DeviceType::TABLET ], + 'Novo7 Advanced' => [ 'Ainovo', 'Novo7 Advanced', DeviceType::TABLET ], + 'Novo7Advanced!' => [ 'Ainovo', 'Novo7 Advanced', DeviceType::TABLET ], + 'Novo7 Advanced2' => [ 'Ainovo', 'Novo7 Advanced 2', DeviceType::TABLET ], + 'Novo7 Basic' => [ 'Ainovo', 'Novo7 Basic', DeviceType::TABLET ], + 'NovoCrystal' => [ 'Ainovo', 'Novo7 Crystal', DeviceType::TABLET ], + 'Novo 7 Crystal!' => [ 'Ainovo', 'Novo7 Crystal', DeviceType::TABLET ], + 'Novo7 ELF' => [ 'Ainovo', 'Novo7 Elf', DeviceType::TABLET ], + 'ELF-II' => [ 'Ainovo', 'Novo7 Elf II', DeviceType::TABLET ], + 'Novo7 Fire' => [ 'Ainovo', 'Novo7 Fire', DeviceType::TABLET ], + 'Novo7 Flame' => [ 'Ainovo', 'Novo7 Flame', DeviceType::TABLET ], + 'Ainovo Flame (Nexus 7)' => [ 'Ainovo', 'Novo7 Flame', DeviceType::TABLET ], + 'Novo7 Grace' => [ 'Ainovo', 'Novo7 Grace', DeviceType::TABLET ], + 'Novo7 Legend' => [ 'Ainovo', 'Novo7 Legend', DeviceType::TABLET ], + 'novo7Legend!' => [ 'Ainovo', 'Novo7 Legend', DeviceType::TABLET ], + 'NOVO7 Mars' => [ 'Ainovo', 'Novo7 Mars', DeviceType::TABLET ], + 'Novo7 PALADIN' => [ 'Ainovo', 'Novo7 Paladin', DeviceType::TABLET ], + 'npm702-NOVO7PALADIN' => [ 'Ainovo', 'Novo7 Paladin', DeviceType::TABLET ], + 'Novo7 Rainbow' => [ 'Ainovo', 'Novo7 Rainbow', DeviceType::TABLET ], + 'Novo7 -Rainbow' => [ 'Ainovo', 'Novo7 Rainbow', DeviceType::TABLET ], + 'NOVO7 Tornados' => [ 'Ainovo', 'Novo7 Tornados', DeviceType::TABLET ], + 'Novo7 Venus' => [ 'Ainovo', 'Novo7 Venus', DeviceType::TABLET ], + 'Novo 7 Venus' => [ 'Ainovo', 'Novo7 Venus', DeviceType::TABLET ], + 'Novo7 Venus QuadCore' => [ 'Ainovo', 'Novo7 Venus', DeviceType::TABLET ], + 'Novo 7 Venus QuadCore' => [ 'Ainovo', 'Novo7 Venus', DeviceType::TABLET ], + 'Novo8 Advanced' => [ 'Ainovo', 'Novo8 Advanced', DeviceType::TABLET ], + 'Novo8 Discover Quadcore' => [ 'Ainovo', 'Novo8 Discover', DeviceType::TABLET ], + 'Novo8 Disover Quadcore' => [ 'Ainovo', 'Novo8 Discover', DeviceType::TABLET ], + 'Novo8 Dream QuadCore' => [ 'Ainovo', 'Novo8 Dream', DeviceType::TABLET ], + 'Novo8mini' => [ 'Ainovo', 'Novo8 Mini', DeviceType::TABLET ], + 'novo9-Spark' => [ 'Ainovo', 'Novo9 Spark', DeviceType::TABLET ], + 'NOVO9 Spark II' => [ 'Ainovo', 'Novo9 Spark II', DeviceType::TABLET ], + 'Novo 10 Hero' => [ 'Ainovo', 'Novo10 Hero', DeviceType::TABLET ], + 'Novo10 ?Hero!' => [ 'Ainovo', 'Novo10 Hero', DeviceType::TABLET ], + 'Novo 10 Hero QuadCore' => [ 'Ainovo', 'Novo10 Hero', DeviceType::TABLET ], + 'Novo Captain' => [ 'Ainovo', 'Novo10 Captain', DeviceType::TABLET ], + 'Novo10 captain QuadCore' => [ 'Ainovo', 'Novo10 Captain', DeviceType::TABLET ], + 'AIRIS GN135' => [ 'Airis', 'GN135' ], + 'AIRIS S211' => [ 'Airis', 'S211' ], + 'AIRIS TM51Q' => [ 'Airis', 'TM51Q' ], + 'AIRIS TM54QM' => [ 'Airis', 'TM54QM' ], + 'AIRIS TM55S' => [ 'Airis', 'TM55S' ], + 'AIRIS TM60D' => [ 'Airis', 'TM60D' ], + 'AIRIS TM350' => [ 'Airis', 'TM350' ], + 'TM400' => [ 'Airis', 'TM400' ], + 'AIRIS TM400' => [ 'Airis', 'TM400' ], + 'AIRIS TM475' => [ 'Airis', 'TM475' ], + 'AIRIS TM421M' => [ 'Airis', 'TM421M' ], + 'AIRIS TM500' => [ 'Airis', 'TM500' ], + 'AIRIS OnePAD 725' => [ 'Airis', 'OnePAD 725' ], + 'AIRIS OnePAD700' => [ 'Airis', 'OnePAD 700' ], + 'AIRIS OnePAD 730' => [ 'Airis', 'OnePAD 730' ], + 'OnePAD 785I' => [ 'Airis', 'OnePAD 785I' ], + 'OnePAD 900HD' => [ 'Airis', 'OnePAD 900HD' ], + 'OnePAD 970' => [ 'Airis', 'OnePAD 970' ], + 'AirisOnePad1000' => [ 'Airis', 'OnePAD 1000' ], + 'OnePAD 1100x2' => [ 'Airis', 'OnePAD 1100x2' ], + 'AKAI NEO' => [ 'AKAI', 'Neo' ], + 'AKAI N8800' => [ 'AKAI', 'N8800' ], + 'PHA-3850' => [ 'AKAI', 'PHA-3850' ], + 'PHA-3880' => [ 'AKAI', 'PHA-3880 Glory F1' ], + 'AKAI PHA-4800' => [ 'AKAI', 'PHA-4800 Glory G1' ], + 'PHA-4850' => [ 'AKAI', 'PHA-4850 Glory L1' ], + 'AKAIPHA 5800' => [ 'AKAI', 'PHA-5800' ], + 'PHA-5850' => [ 'AKAI', 'PHA-5850 Glory O1' ], + 'AKAI MIDMA-7002S' => [ 'AKAI', 'MIDMA 7002S', DeviceType::TABLET ], + 'MID1040C' => [ 'AKAI', 'MID1040C', DeviceType::TABLET ], + 'A206G' => [ 'Alcatel', 'A206G' ], + 'A450TL' => [ 'Alcatel', 'One Touch Pixi Charm' ], + 'A460G' => [ 'Alcatel', 'One Touch Pixi Pulsar' ], + 'A463BG' => [ 'Alcatel', 'One Touch Pixi Glitz' ], + 'A480G' => [ 'Alcatel', 'One Touch Pop C1' ], + 'A520L' => [ 'Alcatel', 'One Touch Pop Nova' ], + 'A521L' => [ 'Alcatel', 'One Touch Pop Star 2' ], + 'A554C' => [ 'Alcatel', 'One Touch Juke' ], + 'A556C' => [ 'Alcatel', 'A556C' ], + 'A560G' => [ 'Alcatel', 'A560G' ], + 'A562G' => [ 'Alcatel', 'A562G' ], + 'A564R' => [ 'Alcatel', 'One Touch Pop Icon' ], + 'A564C' => [ 'Alcatel', 'One Touch Pop Icon' ], + 'A621BL' => [ 'Alcatel', 'A621BL' ], + 'A845L' => [ 'Alcatel', 'One Touch Pop Star' ], + 'A846L' => [ 'Alcatel', 'One Touch Pop Icon 2' ], + 'Alcatel A851L' => [ 'Alcatel', 'One Touch Sonic' ], + 'A851L' => [ 'Alcatel', 'One Touch Sonic' ], + 'A995L' => [ 'Alcatel', 'One Touch Pop Mega' ], + 'ONETOUCH Flash Plus' => [ 'Alcatel', 'One Touch Flash Plus' ], + 'one touch 890!' => [ 'Alcatel', 'One Touch 890' ], + 'one touch 891!' => [ 'Alcatel', 'One Touch 891' ], + 'one touch 900!' => [ 'Alcatel', 'One Touch 900' ], + 'one touch 903!' => [ 'Alcatel', 'One Touch 903' ], + 'one touch 906!' => [ 'Alcatel', 'One Touch 906' ], + 'Alcatel one touch 908F' => [ 'Alcatel', 'One Touch 908' ], + 'one touch 908!' => [ 'Alcatel', 'One Touch 908' ], + 'one touch 909!' => [ 'Alcatel', 'One Touch 909' ], + 'USCC ALCATEL one touch 909B' => [ 'Alcatel', 'One Touch 909' ], + 'one touch 910!' => [ 'Alcatel', 'One Touch 910' ], + 'one touch 913!' => [ 'Alcatel', 'One Touch 913' ], + 'one touch 916!' => [ 'Alcatel', 'One Touch 916' ], + 'one touch 918!' => [ 'Alcatel', 'One Touch 918' ], + 'Alcatel one touch 918' => [ 'Alcatel', 'One Touch 918' ], + 'Alcatel ONETOUCH 918' => [ 'Alcatel', 'One Touch 918' ], + 'OT 918' => [ 'Alcatel', 'One Touch 918' ], + 'ALCATEL OT 919' => [ 'Alcatel', 'One Touch 919' ], + 'OT 919' => [ 'Alcatel', 'One Touch 919' ], + 'OT 919 HelloKitty' => [ 'Alcatel', 'One Touch 919 Hello Kitty' ], + 'one touch 922!' => [ 'Alcatel', 'One Touch 922' ], + 'one touch 927!' => [ 'Alcatel', 'One Touch 927' ], + 'one touch 928!' => [ 'Alcatel', 'One Touch 928' ], + 'one touch 930!' => [ 'Alcatel', 'One Touch 930' ], + 'one touch 960!' => [ 'Alcatel', 'One Touch 960' ], + 'one touch 976!' => [ 'Alcatel', 'One Touch 976' ], + 'one touch 978!' => [ 'Alcatel', 'One Touch 978' ], + 'one touch 979 HelloKitty' => [ 'Alcatel', 'One Touch 979 Hello Kitty' ], + 'one touch 979!' => [ 'Alcatel', 'One Touch 979' ], + 'one touch 980!' => [ 'Alcatel', 'One Touch 980' ], + 'one touch 981!' => [ 'Alcatel', 'One Touch 981' ], + 'one touch 983!' => [ 'Alcatel', 'One Touch 983' ], + 'one touch 985!' => [ 'Alcatel', 'One Touch 985' ], + 'one touch 986!' => [ 'Alcatel', 'One Touch 986' ], + 'one touch 988!' => [ 'Alcatel', 'One Touch 988' ], + 'USCC ALCATEL one touch 988' => [ 'Alcatel', 'One Touch 988' ], + 'one touch 990!' => [ 'Alcatel', 'One Touch 990' ], + 'Alcatel one touch 990' => [ 'Alcatel', 'One Touch 990' ], + 'Alcatel one touch 990S' => [ 'Alcatel', 'One Touch 990' ], + 'TCL ONE TOUCH 990' => [ 'Alcatel', 'One Touch 990' ], + 'OT-990C' => [ 'Alcatel', 'One Touch 990' ], + 'OT 990M' => [ 'Alcatel', 'One Touch 990' ], + 'one touch 991!' => [ 'Alcatel', 'One Touch 991' ], + 'one touch 992!' => [ 'Alcatel', 'One Touch 992' ], + 'ONE TOCH 992D' => [ 'Alcatel', 'One Touch 992' ], + 'one touch 993!' => [ 'Alcatel', 'One Touch 993' ], + 'one touch 995!' => [ 'Alcatel', 'One Touch 995' ], + 'OT-995' => [ 'Alcatel', 'One Touch 995' ], + 'one touch 997!' => [ 'Alcatel', 'One Touch 997' ], + 'one touch 998!' => [ 'Alcatel', 'One Touch 998' ], + 'one touch D662' => [ 'Alcatel', 'One Touch D662' ], + 'one touch D668' => [ 'Alcatel', 'One Touch D668' ], + 'one touch D820' => [ 'Alcatel', 'One Touch D820' ], + 'one touch D920' => [ 'Alcatel', 'One Touch D920' ], + 'one touch J320' => [ 'Alcatel', 'One Touch J320' ], + '1216[X]!' => [ 'Alcatel', 'One Touch Pixi 3 (7)' ], + '4003[AJ]!' => [ 'Alcatel', 'One Touch Pixi 3 (4)' ], + 'one ?touch 40(05|10|11)!' => [ 'Alcatel', 'One Touch T\'Pop' ], + 'one ?touch 4007!' => [ 'Alcatel', 'One Touch Pixi' ], + 'one ?touch 4008!' => [ 'Alcatel', 'One Touch Pixi 3 (3.5)' ], + '4008[A]!' => [ 'Alcatel', 'One Touch Pixi 3 (3.5)' ], + 'one ?touch 4009!' => [ 'Alcatel', 'One Touch Pixi 3 (3.5)' ], + '4009[ADEFKMSX]!' => [ 'Alcatel', 'One Touch Pixi 3 (3.5)' ], + 'one ?touch 4013!' => [ 'Alcatel', 'One Touch Pixi 3 (4)' ], + '4013[ADEJKMX]!' => [ 'Alcatel', 'One Touch Pixi 3 (4)' ], + 'one ?touch 4014!' => [ 'Alcatel', 'One Touch Pixi 3 (4)' ], + '4014[AMX]!' => [ 'Alcatel', 'One Touch Pixi 3 (4)' ], + 'one ?touch 40(15|16)!' => [ 'Alcatel', 'One Touch Pop C1' ], + '4015[ANTX]!' => [ 'Alcatel', 'One Touch Pop C1' ], + '4015[D]!' => [ 'Alcatel', 'One Touch Pixi 2' ], + '4016[ADX]!' => [ 'Alcatel', 'One Touch Pop C1' ], + '4017[DEFX]!' => [ 'Alcatel', 'One Touch Pixi 4 (3.5)' ], + '4018[ADEFMX]!' => [ 'Alcatel', 'One Touch Pop D1' ], + 'one ?touch 4024!' => [ 'Alcatel', 'One Touch Pixi First' ], + '4024[DEX]!' => [ 'Alcatel', 'One Touch Pixi First' ], + 'one ?touch 4027!' => [ 'Alcatel', 'One Touch Pixi 3 (4.5)' ], + '4027[ADNX]!' => [ 'Alcatel', 'One Touch Pixi 3 (4.5)' ], + '4028[AEJS]!' => [ 'Alcatel', 'One Touch Pixi 3 (4.5)' ], + 'one ?touch 4029!' => [ 'Alcatel', 'One Touch S\'Pop' ], + 'one ?touch 4030!' => [ 'Alcatel', 'One Touch S\'Pop' ], + 'one ?touch 4031!' => [ 'Alcatel', 'One Touch Flash Mini' ], + 'one ?touch 4032!' => [ 'Alcatel', 'One Touch Pop C2' ], + '4032[ADEX]!' => [ 'Alcatel', 'One Touch Pop C2' ], + 'one ?touch 4033!' => [ 'Alcatel', 'One Touch Pop C3' ], + '4033[AL]!' => [ 'Alcatel', 'One Touch Pop C3' ], + 'ONETOUCH POPC3' => [ 'Alcatel', 'One Touch Pop C3' ], + 'one ?touch 40(35|36|37)!' => [ 'Alcatel', 'One Touch Pop D3' ], + '4035[ADYX]!' => [ 'Alcatel', 'One Touch Pop D3' ], + '4036[E]!' => [ 'Alcatel', 'One Touch Pop D3' ], + '4037[AX]!' => [ 'Alcatel', 'One Touch Pop D3' ], + '4037[T]!' => [ 'Alcatel', 'One Touch Evolve 2' ], + 'one ?touch 5045!' => [ 'Alcatel', 'One Touch Pop 2 (4)' ], + '4045[ADELOX]!' => [ 'Alcatel', 'One Touch Pop 2 (4)' ], + '5015[ADEX]!' => [ 'Alcatel', 'One Touch Pixi 3 (5)' ], + '5016[AJ]!' => [ 'Alcatel', 'One Touch Pixi 3 (5)' ], + '5017[B]!' => [ 'Alcatel', 'One Touch Elevate' ], + '5017[ADEOX]!' => [ 'Alcatel', 'One Touch Pixi 3 (4.5)' ], + 'one ?touch 5020!' => [ 'Alcatel', 'One Touch M\'Pop' ], + 'Alcatel OT M\'pop 5020D' => [ 'Alcatel', 'One Touch M\'Pop' ], + 'M POP 5020A' => [ 'Alcatel', 'One Touch M\'Pop' ], + 'M POP' => [ 'Alcatel', 'One Touch M\'Pop' ], + '5020[A]!' => [ 'Alcatel', 'One Touch M\'Pop' ], + 'one ?touch 5021!' => [ 'Alcatel', 'One Touch Soleil' ], + '5022[DX]!' => [ 'Alcatel', 'One Touch Pop Star' ], + '5025[DEGX]!' => [ 'Alcatel', 'One Touch Pop 3' ], + 'one ?touch 5035!' => [ 'Alcatel', 'One Touch X\'Pop' ], + 'one ?touch 50(36|37)!' => [ 'Alcatel', 'One Touch Pop C5' ], + 'ONETOUCH POPC5' => [ 'Alcatel', 'One Touch Pop C5' ], + 'one ?touch 50(38)!' => [ 'Alcatel', 'One Touch Pop D5' ], + '5038[ADEX]!' => [ 'Alcatel', 'One Touch Pop D5' ], + 'one ?touch 5042!' => [ 'Alcatel', 'One Touch Pop 2 (4.5)' ], + '5042[ADEFGTWXY]!' => [ 'Alcatel', 'One Touch Pop 2 (4.5)' ], + '5045[JX]!' => [ 'Alcatel', 'One Touch Pixi 4 (5.0)' ], + 'one ?touch 5050!' => [ 'Alcatel', 'One Touch Pop S3' ], + '5050[ASYX]!' => [ 'Alcatel', 'One Touch Pop S3' ], + '5054[ADOSTX]!' => [ 'Alcatel', 'One Touch Pixi 3 (5.5)' ], + '5054[NW]!' => [ 'Alcatel', 'One Touch Fierce XL' ], + '5065[ADJWX]!' => [ 'Alcatel', 'One Touch Pixi 3 (5)' ], + '5070[DJX]!' => [ 'Alcatel', 'One Touch Pop Star' ], + 'one ?touch 6010!' => [ 'Alcatel', 'One Touch Star' ], + 'one ?touch 6012!' => [ 'Alcatel', 'One Touch Idol Mini' ], + 'ONE TOUCH IDOL MINI' => [ 'Alcatel', 'One Touch Idol Mini' ], + 'one ?touch 6014!' => [ 'Alcatel', 'One Touch Idol Mini' ], + '6014[DX]!' => [ 'Alcatel', 'One Touch Idol Mini' ], + 'one ?touch 6016!' => [ 'Alcatel', 'One Touch Idol 2 Mini' ], + '6016[ADEX]!' => [ 'Alcatel', 'One Touch Idol 2 Mini' ], + 'one ?touch 6030!' => [ 'Alcatel', 'One Touch Idol' ], + 'one ?touch 6032!' => [ 'Alcatel', 'One Touch Idol α' ], + 'one ?touch 6033!' => [ 'Alcatel', 'One Touch Idol Ultra' ], + 'one ?touch 60(34|35)!' => [ 'Alcatel', 'One Touch Idol S' ], + 'one ?touch 6036!' => [ 'Alcatel', 'One Touch Idol 2 Mini S' ], + '6036[AYX]!' => [ 'Alcatel', 'One Touch Idol 2 Mini S' ], + 'one ?touch 6037!' => [ 'Alcatel', 'One Touch Idol 2 Dual' ], + '6037[BIKY]!' => [ 'Alcatel', 'One Touch Idol 2 Dual' ], + 'one ?touch 6039!' => [ 'Alcatel', 'One Touch Idol 3 (4.7)' ], + '6039[AHJKSY]!' => [ 'Alcatel', 'One Touch Idol 3 (4.7)' ], + 'one ?touch 6040!' => [ 'Alcatel', 'One Touch Idol X' ], + '6042[D]!' => [ 'Alcatel', 'One Touch Flash' ], + 'one ?touch 6043!' => [ 'Alcatel', 'One Touch Idol X+' ], + '6043[AD]!' => [ 'Alcatel', 'One Touch Idol X+' ], + '6044D' => [ 'Alcatel', 'One Touch Pop Up' ], + 'one ?touch 6045!' => [ 'Alcatel', 'One Touch Idol 3 (5.5)' ], + '6045[BFGIKOXY]!' => [ 'Alcatel', 'One Touch Idol 3 (5.5)' ], + 'one ?touch 6050!' => [ 'Alcatel', 'One Touch Idol 2S' ], + '6050[AFWY]!' => [ 'Alcatel', 'One Touch Idol 2S' ], + '6055[BHIKPY]!' => [ 'Alcatel', 'One Touch Idol 4' ], + '6070[K]!' => [ 'Alcatel', 'One Touch Idol 4s' ], + 'one ?touch 7024!' => [ 'Alcatel', 'One Touch Fierce' ], + 'one touch fierce!' => [ 'Alcatel', 'One Touch Fierce' ], + 'one ?touch 70(25|30)!' => [ 'Alcatel', 'One Touch Snap' ], + '7030[L]!' => [ 'Alcatel', 'One Touch Snap' ], + 'one ?touch 70(40|41)!' => [ 'Alcatel', 'One Touch Pop C7' ], + '7040[NR]!' => [ 'Alcatel', 'One Touch Pop C7' ], + '7040[T]!' => [ 'Alcatel', 'One Touch Fierce 2' ], + 'one ?touch 7042!' => [ 'Alcatel', 'One Touch Snap' ], + 'one ?touch 7043!' => [ 'Alcatel', 'One Touch Pop 2 (5)' ], + '7043[AEKY]!' => [ 'Alcatel', 'One Touch Pop 2 (5)' ], + 'one ?touch 7044!' => [ 'Alcatel', 'One Touch Pop 2 (5) Premium' ], + '7044[AXY]!' => [ 'Alcatel', 'One Touch Pop 2 (5) Premium' ], + 'one ?touch 7045!' => [ 'Alcatel', 'One Touch Pop S7' ], + '7045[Y]!' => [ 'Alcatel', 'One Touch Pop S7' ], + '7046[T]!' => [ 'Alcatel', 'One Touch Conquest' ], + 'one ?touch 7047!' => [ 'Alcatel', 'One Touch Pop C9' ], + '7048[ASWX]!' => [ 'Alcatel', 'One Touch Go Play' ], + 'one ?touch 7050!' => [ 'Alcatel', 'One Touch Pop S9' ], + '7050[Y]!' => [ 'Alcatel', 'One Touch Pop S9' ], + '7051[X]!' => [ 'Alcatel', 'One Touch Pop 3 (5)' ], + '7053[D]!' => [ 'Alcatel', 'X1' ], + '7055[AW]!' => [ 'Alcatel', 'One Touch Hero 2C' ], + '7051[X]!' => [ 'Alcatel', 'One Touch Pop 2 (5) Premium' ], + 'one ?touch 8000!' => [ 'Alcatel', 'One Touch Scribe Easy' ], + 'one ?touch 8008!' => [ 'Alcatel', 'One Touch Scribe HD' ], + 'one ?touch 8020!' => [ 'Alcatel', 'One Touch Hero' ], + '8020[D]!' => [ 'Alcatel', 'One Touch Hero' ], + 'one ?touch 8030!' => [ 'Alcatel', 'One Touch Hero 2' ], + '8030[BY]!' => [ 'Alcatel', 'One Touch Hero 2' ], + '9002[AWX]!' => [ 'Alcatel', 'One Touch Pixi 3 (7)' ], + '9003[A]!' => [ 'Alcatel', 'One Touch Pixi 4 (7)' ], + '9006[W]!' => [ 'Alcatel', 'One Touch Pixi 4 (7)' ], + '9007[ATX]!' => [ 'Alcatel', 'One Touch Pixi 3 (7)' ], + '9005[X]!' => [ 'Alcatel', 'One Touch Pixi 3 (8)' ], + '9010[X]!' => [ 'Alcatel', 'One Touch Pixi 3 (10)' ], + '9022[X]!' => [ 'Alcatel', 'One Touch Pixi 3 (8)' ], + 'one ?touch T10!' => [ 'Alcatel', 'One Touch T10', DeviceType::TABLET ], + 'one ?touch T20!' => [ 'Alcatel', 'One Touch T20', DeviceType::TABLET ], + 'one ?touch T60!' => [ 'Alcatel', 'One Touch T60', DeviceType::TABLET ], + 'ONE TOUCH TAB 7' => [ 'Alcatel', 'One Touch Tab 7', DeviceType::TABLET ], + 'ONE TOUCH TAB 7HD' => [ 'Alcatel', 'One Touch Tab 7HD', DeviceType::TABLET ], + 'ONE TOUCH TAB 8HD' => [ 'Alcatel', 'One Touch Tab 8HD', DeviceType::TABLET ], + 'ONE TOUCH EVO7' => [ 'Alcatel', 'One Touch Evo 7', DeviceType::TABLET ], + 'onetouch EVO7' => [ 'Alcatel', 'One Touch Evo 7', DeviceType::TABLET ], + 'ONE TOUCH E710' => [ 'Alcatel', 'One Touch Evo 7 HD', DeviceType::TABLET ], + 'ONE TOUCH EVO 7HD' => [ 'Alcatel', 'One Touch Evo 7 HD', DeviceType::TABLET ], + 'ONE TOUCH EVO7HD' => [ 'Alcatel', 'One Touch Evo 7 HD', DeviceType::TABLET ], + 'ONE TOUCH EVO8HD' => [ 'Alcatel', 'One Touch Evo 8 HD', DeviceType::TABLET ], + 'D820X' => [ 'Alcatel', 'One Touch Hero 8', DeviceType::TABLET ], + 'ONETOUCH POP 7 LTE' => [ 'Alcatel', 'One Touch POP7', DeviceType::TABLET ], + 'ONE ?TOUCH P310(A|X)!' => [ 'Alcatel', 'One Touch POP7', DeviceType::TABLET ], + 'ONE ?TOUCH P320(A|X)!' => [ 'Alcatel', 'One Touch POP8', DeviceType::TABLET ], + 'ONE ?TOUCH P321!' => [ 'Alcatel', 'One Touch POP8', DeviceType::TABLET ], + '9021A' => [ 'Alcatel', 'One Touch POP8', DeviceType::TABLET ], + 'P330X' => [ 'Alcatel', 'One Touch POP7S', DeviceType::TABLET ], + 'P350X' => [ 'Alcatel', 'One Touch POP8S', DeviceType::TABLET ], + 'ONE ?TOUCH POP 8S P350X!' => [ 'Alcatel', 'One Touch POP8S', DeviceType::TABLET ], + 'P360X' => [ 'Alcatel', 'One Touch POP10', DeviceType::TABLET ], + 'ADR3010' => [ 'Alcatel', 'Authority' ], + 'Venture' => [ 'Alcatel', 'Venture' ], + 'Mobile Sosh' => [ 'Alcatel', 'Le mobile Sosh' ], + 'Alcor Access Q913M' => [ 'Alcor', 'Access Q913M', DeviceType::TABLET ], + 'Alcor Zest Q813I' => [ 'Alcor', 'Zest Q813I', DeviceType::TABLET ], + 'Alcor Zest Q813IS' => [ 'Alcor', 'Zest Q813IS', DeviceType::TABLET ], + 'Alcor Zest Q813IX' => [ 'Alcor', 'Zest Q813IX', DeviceType::TABLET ], + 'Alcor Zest Q933R' => [ 'Alcor', 'Zest Q933R', DeviceType::TABLET ], + 'ALLVIEW A4ALL' => [ 'Allview', 'A4 All' ], + 'A5 Easy' => [ 'Allview', 'A5 Easy' ], + 'A5 Easy TM' => [ 'Allview', 'A5 Easy' ], + 'A5 Lite' => [ 'Allview', 'A5 Lite' ], + 'A5 Quad Plus' => [ 'Allview', 'A5 Quad Plus' ], + 'A5 Quad Plus TM' => [ 'Allview', 'A5 Quad Plus' ], + 'A6 Duo' => [ 'Allview', 'A6 Duo' ], + 'A6 Lite' => [ 'Allview', 'A6 Lite' ], + 'ALLVIEW A6 Quad' => [ 'Allview', 'A6 Quad' ], + 'A7 Lite' => [ 'Allview', 'A7 Lite' ], + 'AX3Party' => [ 'Allview', 'AX3 Party' ], + 'AX4Nano plus' => [ 'Allview', 'AX4 Nano Plus' ], + 'C6 Duo' => [ 'Allview', 'C6 Duo' ], + 'C6Quad 4G' => [ 'Allview', 'C6 Quad' ], + 'E2 Jump' => [ 'Allview', 'E2 Jump' ], + 'E3 Living' => [ 'Allview', 'E3 Living' ], + 'E3 Sign' => [ 'Allview', 'E3 Sign' ], + 'E4' => [ 'Allview', 'E4' ], + 'E4 Lite' => [ 'Allview', 'E4 Lite' ], + 'ALLVIEW P1' => [ 'Allview', 'P1 Alldro' ], + 'Allview P2' => [ 'Allview', 'P2 Alldro' ], + 'ALLVIEW P4' => [ 'Allview', 'P4 Alldro' ], + 'ALLVIEW P4i' => [ 'Allview', 'P4 Duo' ], + 'P4i' => [ 'Allview', 'P4 Duo' ], + 'Allview P5' => [ 'Allview', 'P5' ], + 'P5 Energy' => [ 'Allview', 'P5 Energy' ], + 'P5Life' => [ 'Allview', 'P5 Life' ], + 'P5Life TM' => [ 'Allview', 'P5 Life' ], + 'Allview P5-Mini' => [ 'Allview', 'P5 Mini' ], + 'ALLVIEW P5 Quad' => [ 'Allview', 'P5 Quad' ], + 'ALLVIEW P5 Qmax' => [ 'Allview', 'P5 Qmax' ], + 'ALLVIEW P6' => [ 'Allview', 'P6' ], + 'P6 Energy' => [ 'Allview', 'P6 Energy' ], + 'P6 Energy TM' => [ 'Allview', 'P6 Energy' ], + 'P6 Pro' => [ 'Allview', 'P6 Pro' ], + 'P6 Qmax' => [ 'Allview', 'P6 Qmax' ], + 'ALLVIEW P6 Quad' => [ 'Allview', 'P6 Quad' ], + 'P6 Quad' => [ 'Allview', 'P6 Quad' ], + 'P8 Energy' => [ 'Allview', 'P8 Energy' ], + 'P8 Energy mini' => [ 'Allview', 'P8 Energy Mini' ], + 'P8 Energy mini TM' => [ 'Allview', 'P8 Energy Mini' ], + 'ALLVIEW TX1 Quasar' => [ 'Allview', 'TX1 Quasar' ], + 'V1 Viper' => [ 'Allview', 'V1 Viper' ], + 'V1 Viper E' => [ 'Allview', 'V1 Viper E' ], + 'V1 Viper I' => [ 'Allview', 'V1 Viper I' ], + 'V1 Viper I4G' => [ 'Allview', 'V1 Viper I' ], + 'V1 Viper I4G PL' => [ 'Allview', 'V1 Viper I' ], + 'V1 Viper I4G TM' => [ 'Allview', 'V1 Viper I' ], + 'V1 Viper L' => [ 'Allview', 'V1 Viper L' ], + 'V1 ViperS' => [ 'Allview', 'V1 Viper S' ], + 'V1 Viper S4G' => [ 'Allview', 'V1 Viper S' ], + 'V2 Viper' => [ 'Allview', 'V2 Viper' ], + 'V2 Viper I' => [ 'Allview', 'V2 Viper I' ], + 'V2 Viper I TM' => [ 'Allview', 'V2 Viper I' ], + 'V2 Viper X' => [ 'Allview', 'V2 Viper X' ], + 'V2 Viper X plus' => [ 'Allview', 'V2 Viper X Plus' ], + 'Viva C701' => [ 'Allview', 'Viva C701' ], + 'Viva H701' => [ 'Allview', 'Viva H701' ], + 'Viva H701 LTE CZ' => [ 'Allview', 'Viva H701' ], + 'VivaH7LTE' => [ 'Allview', 'Viva H7' ], + 'VivaH8LTE' => [ 'Allview', 'Viva H8' ], + 'H8 Life' => [ 'Allview', 'Viva H8 Life' ], + 'VivaH10LTE' => [ 'Allview', 'Viva H10' ], + 'Viva i7G' => [ 'Allview', 'Viva i7G' ], + 'Viva i10HD' => [ 'Allview', 'Viva i10 HD' ], + 'Viva i701G TM' => [ 'Allview', 'Viva i701G' ], + 'X1 Soul' => [ 'Allview', 'X1 Soul' ], + 'X1 Soul Mini' => [ 'Allview', 'X1 Soul Mini' ], + 'X1 mini Soul' => [ 'Allview', 'X1 Soul Mini' ], + 'X1 Soul Xtreme' => [ 'Allview', 'X1 Soul Xtreme' ], + 'X1 Xtreme Mini' => [ 'Allview', 'X1 Xtreme Mini' ], + 'X2 Soul' => [ 'Allview', 'X2 Soul' ], + 'X2 Soul Lite' => [ 'Allview', 'X2 Soul Lite' ], + 'X2 Soul Lite TM' => [ 'Allview', 'X2 Soul Lite' ], + 'X2 Soul Mini' => [ 'Allview', 'X2 Soul Mini' ], + 'X2 Soul Mini TM' => [ 'Allview', 'X2 Soul Mini' ], + 'X2 Soul PRO' => [ 'Allview', 'X2 Soul Pro' ], + 'X2 Soul Style' => [ 'Allview', 'X2 Soul Style' ], + 'X2 Soul Style TM' => [ 'Allview', 'X2 Soul Style' ], + 'X2 Soul Style Plus' => [ 'Allview', 'X2 Soul Style Plus' ], + 'X2 Soul Xtreme' => [ 'Allview', 'X2 Soul Xtreme' ], + 'X2 Twin' => [ 'Allview', 'X2 Twin' ], + 'X3 Soul' => [ 'Allview', 'X3 Soul' ], + 'X3 Soul mini' => [ 'Allview', 'X3 Soul Mini' ], + + '(Allview|Alldro)!!' => [ + 'Allview AX1 Shine' => [ 'Allview', 'AX1 Shine', DeviceType::TABLET ], + 'AllviewAX2' => [ 'Allview', 'AX2 Frenzy', DeviceType::TABLET ], + 'AllviewAX2Frenzy' => [ 'Allview', 'AX2 Frenzy', DeviceType::TABLET ], + 'ALLVIEW SPEEDI' => [ 'Allview', 'Alldro Speed', DeviceType::TABLET ], + 'AllviewSpeed' => [ 'Allview', 'Alldro Speed', DeviceType::TABLET ], + 'ALLDROSPEED' => [ 'Allview', 'Alldro Speed', DeviceType::TABLET ], + 'AllviewSpeedDuo' => [ 'Allview', 'Alldro Speed Duo', DeviceType::TABLET ], + 'AllviewSpeedEco' => [ 'Allview', 'Alldro Speed Eco', DeviceType::TABLET ], + 'AllviewSpeedSatellite' => [ 'Allview', 'Alldro Speed Satellite', DeviceType::TABLET ], + 'AllviewSpeedSatelite' => [ 'Allview', 'Alldro Speed Satellite', DeviceType::TABLET ], + 'ALLDRO2SPEED' => [ 'Allview', 'Alldro Speed 2', DeviceType::TABLET ], + 'Allview2SpeedDuo' => [ 'Allview', 'Alldro Speed 2 Duo', DeviceType::TABLET ], + 'Allview 2 Speed QUAD' => [ 'Allview', 'Alldro Speed 2 Quad', DeviceType::TABLET ], + 'AllviewSpeed2' => [ 'Allview', 'Alldro Speed 2', DeviceType::TABLET ], + 'AllviewSpeed2+' => [ 'Allview', 'Alldro Speed 2', DeviceType::TABLET ], + 'AllviewSpeed3' => [ 'Allview', 'Alldro Speed 3', DeviceType::TABLET ], + 'AllviewSpeed3G' => [ 'Allview', 'Alldro Speed 3G', DeviceType::TABLET ], + 'AllviewSpeed3HD' => [ 'Allview', 'Alldro Speed 3HD', DeviceType::TABLET ], + 'AllviewSpeed3T' => [ 'Allview', 'Alldro Speed 3T', DeviceType::TABLET ], + 'Alldro3Speed DUO' => [ 'Allview', 'Alldro Speed 3 Duo', DeviceType::TABLET ], + 'Allview3SpeedQuad' => [ 'Allview', 'Alldro Speed 3 Quad', DeviceType::TABLET ], + 'AllviewCity' => [ 'Allview', 'Alldro City', DeviceType::TABLET ], + 'AllviewCityPlus' => [ 'Allview', 'Alldro City Plus', DeviceType::TABLET ], + 'AllviewCityLife' => [ 'Allview', 'Alldro City Life', DeviceType::TABLET ], + 'ALLVIEW VIPER I' => [ 'Allview', 'Viper I', DeviceType::TABLET ], + 'Allview Viva H8' => [ 'Allview', 'Viva H8', DeviceType::TABLET ], + 'ALLVIEW3CONECT' => [ 'Allview', '3 Conect', DeviceType::TABLET ], + ], + + 'A10' => [ 'AllWinner', 'A10', DeviceType::TABLET ], + 'Allwinner A10' => [ 'AllWinner', 'A10', DeviceType::TABLET ], + '97FC' => [ 'AllWinner', 'A10 97FC', DeviceType::TABLET ], + 'A13-?MID!' => [ 'AllWinner', 'A13', DeviceType::TABLET ], + 'SoftwinerEvb' => [ 'AllWinner', 'A13', DeviceType::TABLET ], + 'SoftwinerEvb0308' => [ 'AllWinner', 'A13', DeviceType::TABLET ], + 'SoftwinerEvd' => [ 'AllWinner', 'A13', DeviceType::TABLET ], + 'Softwinerkf026' => [ 'AllWinner', 'A13', DeviceType::TABLET ], + 'Softwinerf721' => [ 'AllWinner', 'F721', DeviceType::TABLET ], + 'Softwinerf761' => [ 'AllWinner', 'F761', DeviceType::TABLET ], + 'Softwinerf761I' => [ 'AllWinner', 'F761', DeviceType::TABLET ], + 'Softwinerf900' => [ 'AllWinner', 'F900', DeviceType::TABLET ], + 'SoftwinerEvbV13' => [ 'AllWinner', 'V13', DeviceType::TABLET ], + 'GT-I7105' => [ 'Alps', 'GT-I7105' ], + 'GT-I9810' => [ 'Alps', 'GT-I9810' ], + 'AT107F' => [ 'Aluratek', 'Cinepad AT107F', DeviceType::TABLET ], + 'AT108F' => [ 'Aluratek', 'Cinepad AT108F', DeviceType::TABLET ], + 'AT197F' => [ 'Aluratek', 'Cinepad AT197F', DeviceType::TABLET ], + 'Amazon Kindle Fire!' => [ 'Amazon', 'Kindle Fire', DeviceType::TABLET ], // 1st generation or unknown variant using unofficial firmware + 'Amazon Otter' => [ 'Amazon', 'Kindle Fire', DeviceType::TABLET ], // "Otter" 1st generation 7" (1024 x 600) + 'Amazon OtterX' => [ 'Amazon', 'Kindle Fire', DeviceType::TABLET ], // "Otter" 1st generation 7" (1024 x 600) + 'Amazon Otter2' => [ 'Amazon', 'Kindle Fire', DeviceType::TABLET ], // "Otter2" 2nd generation 7" (1024 x 600) + 'Amazon Tate' => [ 'Amazon', 'Kindle Fire HD', DeviceType::TABLET ], // "Tate" 2nd generation 7" HD (1280 x 800) + 'Amazon Jem' => [ 'Amazon', 'Kindle Fire HD 8.9"', DeviceType::TABLET ], // "Jem" 2nd generation 8.9" HD (1920 x 1200) + 'soho' => [ 'Amazon', 'Kindle Fire HD (2013)', DeviceType::TABLET ], // "Soho" 3rd generation 7" HD (1280 x 800) + 'thor' => [ 'Amazon', 'Kindle Fire HDX', DeviceType::TABLET ], // "Thor" 3rd generation 7" HDX (1920 x 1200) + 'apollo' => [ 'Amazon', 'Kindle Fire HDX 8.9"', DeviceType::TABLET ], // "Apollo" 3rd generation 8.9" HDX (2560 x 1600) + 'Kindle Fire' => [ 'Amazon', 'Kindle Fire', DeviceType::TABLET, Flag::FIREOS ], // "Otter" 1st generation 7" (1024 x 600) + 'KFOTE?!' => [ 'Amazon', 'Kindle Fire', DeviceType::TABLET, Flag::FIREOS ], // "Otter2" 2nd generation 7" (1024 x 600) + 'KFTT' => [ 'Amazon', 'Kindle Fire HD', DeviceType::TABLET, Flag::FIREOS ], // "Tate" 2nd generation 7" HD (1280 x 800) + 'KFJW(I|A)!' => [ 'Amazon', 'Kindle Fire HD 8.9"', DeviceType::TABLET, Flag::FIREOS ], // "Jem" 2nd generation 8.9" HD (1920 x 1200) + 'KFJMWI' => [ 'Amazon', 'Kindle Fire', DeviceType::TABLET, Flag::FIREOS ], // 3rd generation (1280 x 800) + 'KFSOWI' => [ 'Amazon', 'Kindle Fire HD (2013)', DeviceType::TABLET, Flag::FIREOS ], // "Soho" 3rd generation 7" HD (1280 x 800) + 'KFTHW(I|A)!' => [ 'Amazon', 'Kindle Fire HDX', DeviceType::TABLET, Flag::FIREOS ], // "Thor" 3rd generation 7" HDX (1920 x 1200) + 'KFAPW(I|A)!' => [ 'Amazon', 'Kindle Fire HDX 8.9"', DeviceType::TABLET, Flag::FIREOS ], // "Apollo" 3rd generation 8.9" HDX (2560 x 1600) + 'KFARWI' => [ 'Amazon', 'Fire HD 6', DeviceType::TABLET, Flag::FIREOS ], // 4th generation 6" HD (1280 x 800) + 'KFASWI' => [ 'Amazon', 'Fire HD 7', DeviceType::TABLET, Flag::FIREOS ], // 4th generation 7" HD (1280 x 800) + 'KFSAW(I|A)!' => [ 'Amazon', 'Fire HDX 8.9" (2014)', DeviceType::TABLET, Flag::FIREOS ], // 4th generation 8.9" HDX (2560 x 1600) + 'KFFOWI' => [ 'Amazon', 'Fire', DeviceType::TABLET, Flag::FIREOS ], // 5th generation 7" (1024 x 600) + 'KFMEWI' => [ 'Amazon', 'Fire HD 8', DeviceType::TABLET, Flag::FIREOS ], // 5th generation 8" HD (1280 x 800) + 'KFTBWI' => [ 'Amazon', 'Fire HD 10', DeviceType::TABLET, Flag::FIREOS ], // 5th generation 10" HD (1280 x 800) + 'SD4930UR' => [ 'Amazon', 'Fire Phone', DeviceType::MOBILE, Flag::FIREOS ], + 'AFTB' => [ 'Amazon', 'Fire TV', DeviceType::TELEVISION, Flag::FIREOS ], + 'AFTS' => [ 'Amazon', 'Fire TV (2015)', DeviceType::TELEVISION, Flag::FIREOS ], + 'AFTM' => [ 'Amazon', 'Fire TV stick', DeviceType::TELEVISION, Flag::FIREOS ], + 'AMI-TT2' => [ 'Amicroe', 'TouchTab II', DeviceType::TABLET ], + 'AMI-TT2C' => [ 'Amicroe', 'TouchTab IIC', DeviceType::TABLET ], + 'AMI-TT4' => [ 'Amicroe', 'TouchTab IV', DeviceType::TABLET ], + 'AMI-TTFORCE' => [ 'Amicroe', 'TouchTab Force', DeviceType::TABLET ], + 'AML-MX REF' => [ 'AmLogic', 'MX', DeviceType::TABLET ], + + '(AMO-)?AMOI!!' => [ + 'AMOI 1570W' => [ 'Amoi', '1570W' ], + 'AMOI A860w' => [ 'Amoi', 'A860W' ], + 'AMOI-A862W' => [ 'Amoi', 'A862W' ], + 'AMOI A900T' => [ 'Amoi', 'A900T' ], + 'AMOI A900W' => [ 'Amoi', 'A900W' ], + 'AMOI A918T' => [ 'Amoi', 'A918T' ], + 'AMOI A920' => [ 'Amoi', 'A920' ], + 'AMOI A920T' => [ 'Amoi', 'A920T' ], + 'AMOI A920W' => [ 'Amoi', 'A920W' ], + 'AMOI A928W' => [ 'Amoi', 'A928W' ], + 'AMOI A955T' => [ 'Amoi', 'A955T' ], + 'AMO-AMOI E700C' => [ 'Amoi', 'E700C' ], + 'AMOI E800C' => [ 'Amoi', 'E800C' ], + 'AMOI N79+' => [ 'Amoi', 'N79' ], + 'AMOI N89' => [ 'Amoi', 'N89' ], + 'AMOI N807' => [ 'Amoi', 'N807' ], + 'AMOI N808' => [ 'Amoi', 'N808' ], + 'AMOI N816' => [ 'Amoi', 'N816' ], + 'AMOI N818' => [ 'Amoi', 'N818' ], + 'AMOI N820' => [ 'Amoi', 'N820' ], + 'AMOI N821' => [ 'Amoi', 'N821' ], + 'AMOI[ -]N828!' => [ 'Amoi', 'N828' ], + 'AMOI N850' => [ 'Amoi', 'N850' ], + 'AMOI N890' => [ 'Amoi', 'N890' ], + 'AMOI M8228' => [ 'Amoi', 'M8228' ], + 'AMOI M8448' => [ 'Amoi', 'M8448' ], + 'Amoi Q50H' => [ 'Amoi', 'Q50H', DeviceType::TABLET ], + ], + + 'A862W' => [ 'Amoi', 'A862W' ], + 'AMD120' => [ 'AnyDATA', 'AnyTAB AMD120', DeviceType::TABLET ], + 'mw07' => [ 'AOC', 'Breeze MW07', DeviceType::TABLET ], + 'MW0710' => [ 'AOC', 'Breeze MW0710', DeviceType::TABLET ], + 'MW0711' => [ 'AOC', 'Breeze MW0711', DeviceType::TABLET ], + 'MW0712' => [ 'AOC', 'Breeze MW0712', DeviceType::TABLET ], + 'MW0731' => [ 'AOC', 'Breeze MW0731', DeviceType::TABLET ], + 'MW0731PLUS' => [ 'AOC', 'Breeze MW0731 Plus', DeviceType::TABLET ], + 'MW0733' => [ 'AOC', 'Breeze MW0733', DeviceType::TABLET ], + 'MW0811' => [ 'AOC', 'Breeze MW0811', DeviceType::TABLET ], + 'MW0812' => [ 'AOC', 'Breeze MW0812', DeviceType::TABLET ], + 'MW0812 V2.0' => [ 'AOC', 'Breeze MW0812', DeviceType::TABLET ], + 'MW0821' => [ 'AOC', 'Breeze MW0821', DeviceType::TABLET ], + 'MW0821 V2.0' => [ 'AOC', 'Breeze MW0821', DeviceType::TABLET ], + 'MW0821+' => [ 'AOC', 'Breeze MW0821 Plus', DeviceType::TABLET ], + 'MW0831' => [ 'AOC', 'Breeze MW0831', DeviceType::TABLET ], + 'MW0831Plus' => [ 'AOC', 'Breeze MW0831 Plus', DeviceType::TABLET ], + 'MW0922' => [ 'AOC', 'Breeze MW0922', DeviceType::TABLET ], + 'MW0931' => [ 'AOC', 'Breeze MW0931', DeviceType::TABLET ], + 'AOLE 828' => [ 'Aole', '828' ], + 'AOSON G18' => [ 'Aoson', 'G18', DeviceType::TABLET ], + 'Aoson M11' => [ 'Aoson', 'M11', DeviceType::TABLET ], + 'M19' => [ 'Aoson', 'M19', DeviceType::TABLET ], + 'Aoson M19' => [ 'Aoson', 'M19', DeviceType::TABLET ], + 'aoson m33' => [ 'Aoson', 'M33', DeviceType::TABLET ], + 'aoson M33 3G' => [ 'Aoson', 'M33', DeviceType::TABLET ], + 'AOSON M1016' => [ 'Aoson', 'M1016', DeviceType::TABLET ], + 'Apanda.A60!' => [ 'Apanda', 'A60' ], + 'apanda-A80S' => [ 'Apanda', 'A80' ], + 'apanda-A100' => [ 'Apanda', 'A100' ], + 'apanda-A101' => [ 'Apanda', 'A101' ], + 'Quicki-811' => [ 'Apollo', 'Quicki-811', DeviceType::TABLET ], + 'Aprix D97+' => [ 'Aprix', 'D97+', DeviceType::TABLET ], + 'ARCHM901' => [ 'Archos', 'Arnova M901', DeviceType::TABLET ], + 'AN7CG2' => [ 'Archos', 'Arnova 7c G2', DeviceType::TABLET ], + 'Arnova 7G2' => [ 'Archos', 'Arnova 7 G2', DeviceType::TABLET ], + 'AN7G2' => [ 'Archos', 'Arnova 7 G2', DeviceType::TABLET ], + 'AN7G2DTE' => [ 'Archos', 'Arnova 7 G2', DeviceType::TABLET ], + 'AN7G2I' => [ 'Archos', 'Arnova 7 G2', DeviceType::TABLET ], + 'AN7G3' => [ 'Archos', 'Arnova 7 G3', DeviceType::TABLET ], + 'AN7BG2' => [ 'Archos', 'Arnova 7b G2', DeviceType::TABLET ], + 'AN7BG2DT' => [ 'Archos', 'Arnova 7b G2', DeviceType::TABLET ], + 'AN7BG3' => [ 'Archos', 'Arnova 7b G3', DeviceType::TABLET ], + 'AN7CG3' => [ 'Archos', 'Arnova 7c G3', DeviceType::TABLET ], + 'AN7DG3' => [ 'Archos', 'Arnova 7d G3', DeviceType::TABLET ], + 'AN7DG3B' => [ 'Archos', 'Arnova 7d G3', DeviceType::TABLET ], + 'AN7DG3-CP' => [ 'Archos', 'Arnova Childpad', DeviceType::TABLET ], + 'AN7DG3ST-CP' => [ 'Archos', 'Arnova Childpad', DeviceType::TABLET ], + 'AN7FG3' => [ 'Archos', 'Arnova 7f G3', DeviceType::TABLET ], + 'AN7HG3' => [ 'Archos', 'Arnova 7h G3', DeviceType::TABLET ], + 'AN7IG3' => [ 'Archos', 'Arnova 7i G3', DeviceType::TABLET ], + 'A80KSC!' => [ 'Archos', 'Arnova 8', DeviceType::TABLET ], + 'ARNOVA8G2' => [ 'Archos', 'Arnova 8 G2', DeviceType::TABLET ], + 'AN8G2' => [ 'Archos', 'Arnova 8 G2', DeviceType::TABLET ], + 'AN8G2I' => [ 'Archos', 'Arnova 8 G2', DeviceType::TABLET ], + 'AN8G3' => [ 'Archos', 'Arnova 8 G3', DeviceType::TABLET ], + 'AN8BG2' => [ 'Archos', 'Arnova 8b G2', DeviceType::TABLET ], + 'AN8BG3' => [ 'Archos', 'Arnova 8b G3', DeviceType::TABLET ], + 'AN8CG3' => [ 'Archos', 'Arnova 8c G3', DeviceType::TABLET ], + 'AN9G2' => [ 'Archos', 'Arnova 9 G2', DeviceType::TABLET ], + 'AN9G2I' => [ 'Archos', 'Arnova 9i G2', DeviceType::TABLET ], + 'AN9G3' => [ 'Archos', 'Arnova 9 G3', DeviceType::TABLET ], + 'A101B' => [ 'Archos', 'Arnova 10', DeviceType::TABLET ], + 'Arnova 10G2' => [ 'Archos', 'Arnova 10 G2', DeviceType::TABLET ], + 'A101C' => [ 'Archos', 'Arnova 10 G2', DeviceType::TABLET ], + 'AN10G2' => [ 'Archos', 'Arnova 10 G2', DeviceType::TABLET ], + 'AN10G2-KN' => [ 'Archos', 'Arnova 10 G2', DeviceType::TABLET ], + 'AN10G2-LN' => [ 'Archos', 'Arnova 10 G2', DeviceType::TABLET ], + 'AN10G2I' => [ 'Archos', 'Arnova 10 G2', DeviceType::TABLET ], + 'AN10BG2' => [ 'Archos', 'Arnova 10b G2', DeviceType::TABLET ], + 'AN10BG2DT' => [ 'Archos', 'Arnova 10b G2', DeviceType::TABLET ], + 'AN10BG2I' => [ 'Archos', 'Arnova 10b G2', DeviceType::TABLET ], + 'AN10BG3' => [ 'Archos', 'Arnova 10b G3', DeviceType::TABLET ], + 'AN10BG3DT' => [ 'Archos', 'Arnova 10b G3', DeviceType::TABLET ], + 'AN10CG3' => [ 'Archos', 'Arnova 10c G3', DeviceType::TABLET ], + 'AN10DG3' => [ 'Archos', 'Arnova 10d G3', DeviceType::TABLET ], + 'AN13FP' => [ 'Archos', 'Arnova Familypad', DeviceType::TABLET ], + 'ARNOVA 90G3' => [ 'Archos', 'Arnova 90 G3', DeviceType::TABLET ], + 'ARNOVA 90 G4' => [ 'Archos', 'Arnova 90 G4', DeviceType::TABLET ], + 'ARNOVA 97G4' => [ 'Archos', 'Arnova 97 G4', DeviceType::TABLET ], + 'ARNOVA 101 G4' => [ 'Archos', 'Arnova 101 G4', DeviceType::TABLET ], + 'AN8BG3-LZ' => [ 'Archos', 'Lazer 8.0', DeviceType::TABLET ], + 'A101B2-LZ' => [ 'Archos', 'Lazer 10.1', DeviceType::TABLET ], + 'AN10G2-LZ' => [ 'Archos', 'Lazer 10.1', DeviceType::TABLET ], + 'AN10BG3-LZ' => [ 'Archos', 'Lazer 10.1', DeviceType::TABLET ], + 'AN7DG3C' => [ 'Archos', 'Tabeo', DeviceType::TABLET ], + 'A32' => [ 'Archos', '32', 'media' ], + 'A35DE' => [ 'Archos', '35 Smart Home Phone' ], + 'A43' => [ 'Archos', '43', 'media' ], + 'ARCHOS 50PL' => [ 'Archos', '50PL', 'media' ], + 'ARCHOS 79XE' => [ 'Archos', '79XE', 'media' ], + 'Archos5' => [ 'Archos', '5', 'media' ], + 'A70HB' => [ 'Archos', '7 Home Tablet', DeviceType::TABLET ], // G7 + 'A70BHT' => [ 'Archos', '7 Home Tablet', DeviceType::TABLET ], + 'A70BHT-LZ' => [ 'Archos', '7 Home Tablet', DeviceType::TABLET ], + 'A70BHT-PR' => [ 'Archos', '7 Home Tablet', DeviceType::TABLET ], + 'A70CHT' => [ 'Archos', '7c Home Tablet', DeviceType::TABLET ], + 'A80HF' => [ 'Archos', '8 Home Tablet', DeviceType::TABLET ], + 'A70H' => [ 'Archos', '70 Internet Tablet', DeviceType::TABLET ], // G8 + 'A70S' => [ 'Archos', '70s Internet Tablet', DeviceType::TABLET ], + 'A7EB' => [ 'Archos', '70b eReader', DeviceType::TABLET ], + 'ARCHOS 70it2' => [ 'Archos', '70b Internet Tablet', DeviceType::TABLET ], + 'ARCHOS 70it2G8' => [ 'Archos', '70b Internet Tablet', DeviceType::TABLET ], + 'Archos 80 Internet Tablet' => [ 'Archos', '80 Internet Tablet', DeviceType::TABLET ], + 'A101IT' => [ 'Archos', '101 Internet Tablet', DeviceType::TABLET ], + 'Archos 101 Internet Tablet' => [ 'Archos', '101 Internet Tablet', DeviceType::TABLET ], + 'AC45BHE' => [ 'Archos', '45b Helium' ], + 'AC50BHE' => [ 'Archos', '50b Helium' ], + 'AC50DHE' => [ 'Archos', '50d Helium' ], + + 'Archos!!' => [ + 'ARCHOS 80G9' => [ 'Archos', '80 G9', DeviceType::TABLET ], + 'ARCHOS 101G9' => [ 'Archos', '101 G9', DeviceType::TABLET ], + 'ARCHOS 97XSLG10' => [ 'Archos', '97 XS', DeviceType::TABLET ], + 'ARCHOS 80XSK' => [ 'Archos', '80 XS', DeviceType::TABLET ], + 'ARCHOS 101G10' => [ 'Archos', '101 XS', DeviceType::TABLET ], + 'ARCHOS 101 XS 2' => [ 'Archos', '101 XS 2', DeviceType::TABLET ], + 'Archos 101 XS 2 Moi' => [ 'Archos', '101 XS 2', DeviceType::TABLET ], + 'ARCHOS 101b XS2' => [ 'Archos', '101b XS 2', DeviceType::TABLET ], + 'Archos 70 Carbon' => [ 'Archos', '70 Carbon', DeviceType::TABLET ], + 'ARCHOS 80 Carbon' => [ 'Archos', '80 Carbon', DeviceType::TABLET ], + 'ARCHOS 97 CARBON' => [ 'Archos', '97 Carbon', DeviceType::TABLET ], + 'ARCHOS 70 Cobalt' => [ 'Archos', '70 Cobalt', DeviceType::TABLET ], + 'Archos 70b Cobalt' => [ 'Archos', '70b Cobalt', DeviceType::TABLET ], + 'Archos 70c Cobalt' => [ 'Archos', '70c Cobalt', DeviceType::TABLET ], + 'Archos 79 Cobalt' => [ 'Archos', '79 Cobalt', DeviceType::TABLET ], + 'ARCHOS 80 COBALT' => [ 'Archos', '80 Cobalt', DeviceType::TABLET ], + 'Archos 97 Cobalt' => [ 'Archos', '97 Cobalt', DeviceType::TABLET ], + 'Archos 101 Cobalt' => [ 'Archos', '101 Cobalt', DeviceType::TABLET ], + 'Archos 70 Copper' => [ 'Archos', '70 Copper', DeviceType::TABLET ], + 'Archos 90 Copper' => [ 'Archos', '90 Copper', DeviceType::TABLET ], + 'Archos 90b Copper' => [ 'Archos', '90b Copper', DeviceType::TABLET ], + 'Archos 101 Copper' => [ 'Archos', '101 Copper', DeviceType::TABLET ], + 'Archos 101b Copper' => [ 'Archos', '101b Copper', DeviceType::TABLET ], + 'Archos 50 Diamond' => [ 'Archos', '50 Diamond' ], + 'Archos Diamond S' => [ 'Archos', 'Diamond S' ], + 'Archos Diamond Plus' => [ 'Archos', 'Diamond Plus' ], + 'Archos 40 Helium' => [ 'Archos', '40 Helium' ], + 'Archos 45 Helium 4G' => [ 'Archos', '45 Helium' ], + 'ARCHOS 45b Helium' => [ 'Archos', '45b Helium' ], + 'Archos 50 Helium 4G' => [ 'Archos', '50 Helium' ], + 'Archos 50b Helium 4G' => [ 'Archos', '50b Helium' ], + 'Archos 50c Helium' => [ 'Archos', '50c Helium' ], + 'Archos 50d Helium' => [ 'Archos', '50d Helium' ], + 'Archos 50e Helium' => [ 'Archos', '50e Helium' ], + 'Archos 50 Helium Plus' => [ 'Archos', '50 Helium Plus' ], + 'Archos 55 Helium Plus' => [ 'Archos', '55 Helium Plus' ], + 'Archos 70 Helium' => [ 'Archos', '70 Helium', DeviceType::TABLET ], + 'Archos 80 Helium 4G' => [ 'Archos', '80 Helium', DeviceType::TABLET ], + 'Archos 80b Helium' => [ 'Archos', '80b Helium', DeviceType::TABLET ], + 'Archos 80b Helium v2' => [ 'Archos', '80b Helium', DeviceType::TABLET ], + 'Archos 101 Helium' => [ 'Archos', '101 Helium', DeviceType::TABLET ], + 'ARCHOS 101 Magnus' => [ 'Archos', '101 Magnus', DeviceType::TABLET ], + 'Archos 45 Neon' => [ 'Archos', '45 Neon' ], + 'Archos 50 Neon' => [ 'Archos', '50 Neon' ], + 'ARCHOS 50c Neon' => [ 'Archos', '50c Neon' ], + 'Archos 50b Neon' => [ 'Archos', '50b Neon' ], + 'Archos 70 Neon' => [ 'Archos', '70 Neon', DeviceType::TABLET ], + 'Archos 79 Neon' => [ 'Archos', '79 Neon', DeviceType::TABLET ], + 'Archos 79c Neon' => [ 'Archos', '79c Neon', DeviceType::TABLET ], + 'Archos 90 Neon' => [ 'Archos', '90 Neon', DeviceType::TABLET ], + 'Archos 90b Neon' => [ 'Archos', '90b Neon', DeviceType::TABLET ], + 'Archos 97 Neon' => [ 'Archos', '97 Neon', DeviceType::TABLET ], + 'Archos 101 Neon' => [ 'Archos', '101 Neon', DeviceType::TABLET ], + 'Archos 101b Neon' => [ 'Archos', '101b Neon', DeviceType::TABLET ], + 'Archos 101c Neon' => [ 'Archos', '101c Neon', DeviceType::TABLET ], + 'Archos 101d Neon' => [ 'Archos', '101d Neon', DeviceType::TABLET ], + 'Archos 121 Neon' => [ 'Archos', '121 Neon', DeviceType::TABLET ], + 'Archos 50 Oxygen' => [ 'Archos', '50 Oxygen' ], + 'Archos 50b Oxygen' => [ 'Archos', '50b Oxygen' ], + 'Archos 50c Oxygen' => [ 'Archos', '50c Oxygen' ], + 'Archos 50 Oxygen Plus' => [ 'Archos', '50 Oxygen Plus' ], + 'Archos 101 Oxygen' => [ 'Archos', '101 Oxygen' ], + 'Archos 45 Platinum' => [ 'Archos', '45 Platinum' ], + 'Archos 45c Platinum' => [ 'Archos', '45c Platinum' ], + 'Archos 50 Platinum' => [ 'Archos', '50 Platinum' ], + 'Archos 50b Platinum' => [ 'Archos', '50b Platinum' ], + 'Archos 50c Platinum' => [ 'Archos', '50c Platinum' ], + 'Archos 52 Platinum' => [ 'Archos', '52 Platinum' ], + 'Archos 53 Platinum' => [ 'Archos', '53 Platinum' ], + 'Archos 5.3s Platinum' => [ 'Archos', '53s Platinum' ], + 'Archos 55 Platinum' => [ 'Archos', '55 Platinum' ], + 'Archos 70 Platinum' => [ 'Archos', '70 Platinum', DeviceType::TABLET ], + 'Archos 70 Platinum v3' => [ 'Archos', '70 Platinum', DeviceType::TABLET ], + 'ARCHOS 79 Platinum' => [ 'Archos', '79 Platinum', DeviceType::TABLET ], + 'ARCHOS 80 Platinum' => [ 'Archos', '80 Platinum', DeviceType::TABLET ], + 'ARCHOS 80b PLATINUM' => [ 'Archos', '80b Platinum', DeviceType::TABLET ], + 'Archos 80c Platinum' => [ 'Archos', '80c Platinum', DeviceType::TABLET ], + 'ARCHOS 97 Platinum' => [ 'Archos', '97 Platinum', DeviceType::TABLET ], + 'ARCHOS 97b PLATINUM' => [ 'Archos', '97b Platinum', DeviceType::TABLET ], + 'ARCHOS 101 PLATINUM' => [ 'Archos', '101 Platinum', DeviceType::TABLET ], + 'Archos 101b Platinium' => [ 'Archos', '101b Platinum', DeviceType::TABLET ], + 'Archos 101c Platinum' => [ 'Archos', '101c Platinum', DeviceType::TABLET ], + 'Archos 50 Power' => [ 'Archos', '50 Power' ], + 'Archos 35 Titanium' => [ 'Archos', '35 Titanium' ], + 'Archos 35b Titanium' => [ 'Archos', '35b Titanium' ], + 'Archos 40 Titanium' => [ 'Archos', '40 Titanium' ], + 'Archos 40b Titanium Surround' => [ 'Archos', '40b Titanium' ], + 'Archos 40c Titanium' => [ 'Archos', '40c Titanium' ], + 'ARCHOS 40C TIv2' => [ 'Archos', '40c Titanium' ], + 'ARCHOS 40d Titanium' => [ 'Archos', '40d Titanium' ], + 'Archos 45 Titanium' => [ 'Archos', '45 Titanium' ], + 'Archos 50 Titanium' => [ 'Archos', '50 Titanium' ], + 'Archos 53 Titanium' => [ 'Archos', '53 Titanium' ], + 'Archos 59 Titanium' => [ 'Archos', '59 Titanium' ], + 'ARCHOS 70 Titanium' => [ 'Archos', '70 Titanium', DeviceType::TABLET ], + 'ARCHOS 70b TITANIUM' => [ 'Archos', '70b Titanium', DeviceType::TABLET ], + 'Archos 70c Titanium' => [ 'Archos', '70c Titanium', DeviceType::TABLET ], + 'ARCHOS 80 TITANIUM' => [ 'Archos', '80 Titanium', DeviceType::TABLET ], + 'ARCHOS 97 TITANIUMHD' => [ 'Archos', '97 Titanium', DeviceType::TABLET ], + 'ARCHOS 97B TITANIUM' => [ 'Archos', '97b Titanium', DeviceType::TABLET ], + 'ARCHOS 101 Titanium' => [ 'Archos', '101 Titanium', DeviceType::TABLET ], + 'Archos 59 Xenon' => [ 'Archos', '59 Xenon' ], + 'Archos 62 Xenon' => [ 'Archos', '62 Xenon' ], + 'Archos 64 Xenon' => [ 'Archos', '64 Xenon' ], + 'Archos 70 Xenon' => [ 'Archos', '70 Xenon', DeviceType::TABLET ], + 'Archos 70b Xenon' => [ 'Archos', '70b Xenon', DeviceType::TABLET ], + 'Archos 70c Xenon' => [ 'Archos', '70c Xenon', DeviceType::TABLET ], + 'Archos 79 Xenon' => [ 'Archos', '79 Xenon', DeviceType::TABLET ], + 'Archos 80 Xenon' => [ 'Archos', '80 Xenon', DeviceType::TABLET ], + 'Archos 80b Xenon' => [ 'Archos', '80b Xenon', DeviceType::TABLET ], + 'Archos 96 Xenon' => [ 'Archos', '96 Xenon', DeviceType::TABLET ], + 'ARCHOS 97 XENON' => [ 'Archos', '97 Xenon', DeviceType::TABLET ], + 'Archos 101 Xenon' => [ 'Archos', '101 Xenon', DeviceType::TABLET ], + 'Archos 101 Xenon v2' => [ 'Archos', '101 Xenon', DeviceType::TABLET ], + 'Archos 101b Xenon v2' => [ 'Archos', '101b Xenon', DeviceType::TABLET ], + 'Archos 101c Xenon' => [ 'Archos', '101c Xenon', DeviceType::TABLET ], + 'ARCHOS 101 Xenon Lite' => [ 'Archos', '101 Xenon Lite', DeviceType::TABLET ], + 'ARCHOS 80 CHILDPAD' => [ 'Archos', '80 Childpad', DeviceType::TABLET ], + 'ARCHOS 101 CHILDPAD' => [ 'Archos', '101 Childpad', DeviceType::TABLET ], + 'Archos Chefpad' => [ 'Archos', 'ChefPad', DeviceType::TABLET ], + 'ARCHOS GAMEPAD' => [ 'Archos', 'Gamepad', [ DeviceType::GAMING, DeviceSubType::PORTABLE ] ], + 'ARCHOS GAMEPAD2' => [ 'Archos', 'Gamepad 2', [ DeviceType::GAMING, DeviceSubType::PORTABLE ] ], + 'ARCHOS FAMILYPAD 2' => [ 'Archos', 'Familypad 2', DeviceType::TABLET ], + 'Archos 101 DB' => [ 'Archos', 'ArcBook', DeviceType::TABLET ], + 'Archos Smart Home Tablet' => [ 'Archos', 'Smart Home Tablet', DeviceType::TABLET ], + 'ARCHOS LUDOG10' => [ 'Archos', 'TV Connect', DeviceType::TELEVISION ], + ], + + 'Artes D708' => [ 'Artes', 'D708', DeviceType::TABLET ], + 'Artes D821' => [ 'Artes', 'D821', DeviceType::TABLET ], + 'D9702' => [ 'Artes', 'D9702', DeviceType::TABLET ], + 'Artes i701' => [ 'Artes', 'i701', DeviceType::TABLET ], + 'ARTES I709' => [ 'Artes', 'i709', DeviceType::TABLET ], + 'Artes Q812' => [ 'Artes', 'Q812', DeviceType::TABLET ], + 'AT10H-A10WP' => [ 'Artview', 'AT10H-A10WP', DeviceType::TABLET ], + 'Arya A1+' => [ 'Arya', 'A1 Plus' ], + 'Arya Z2' => [ 'Arya', 'Z2' ], + + 'ASK SP[0-9]{3,3}!!' => [ + 'ASK SP440 3G' => [ 'ASK', 'SP440' ], + 'ASK SP460 HD' => [ 'ASK', 'SP460 HD' ], + 'ASK SP461 3G' => [ 'ASK', 'SP461' ], + 'ASK SP510 HD' => [ 'ASK', 'SP510 HD' ], + 'ASK SP516 IPS' => [ 'ASK', 'SP516' ], + 'ASK SP516+ IPS' => [ 'ASK', 'SP516+' ], + 'ASK SP551 HD' => [ 'ASK', 'SP551 HD' ], + 'ASK SP551+HD' => [ 'ASK', 'SP551+ HD' ], + 'ASK SP554 HD' => [ 'ASK', 'SP554 HD' ], + 'ASK SP581 HD' => [ 'ASK', 'SP581 HD' ], + 'ASK SP583 HD' => [ 'ASK', 'SP583 HD' ], + 'ASK SP584 FHD' => [ 'ASK', 'SP584 FHD' ], + 'ASK SP628 HD' => [ 'ASK', 'SP628 HD' ], + ], + + 'ASTRI' => [ 'ASTRI', 'e-reader', DeviceType::EREADER ], + 'eeepc' => [ 'Asus', 'Eee Pc' ], + 'asus laptop' => [ 'Asus', 'Eee Pc' ], + 'eee 701' => [ 'Asus', 'Eee Pc' ], + 'OMS TTD' => [ 'Asus', 'Eee Pc T10' ], + 'ASUS T20' => [ 'Asus', 'Eee Pc T20' ], + 'ME102A' => [ 'Asus', 'MeMO Pad 10 (ME102A)', DeviceType::TABLET ], + 'ME180A' => [ 'Asus', 'MeMO Pad HD 8 (ME180A)', DeviceType::TABLET ], + 'ME171' => [ 'Asus', 'Eee Pad MeMO (ME171)', DeviceType::TABLET ], + 'ME172V' => [ 'Asus', 'MeMO Pad (ME172V)', DeviceType::TABLET ], + 'ME173X' => [ 'Asus', 'MeMO Pad HD 7 (ME173X)', DeviceType::TABLET ], + 'ME301T' => [ 'Asus', 'MeMO Pad Smart 10 (ME301T)', DeviceType::TABLET ], + 'ME302C' => [ 'Asus', 'MeMO Pad 10 (ME302C)', DeviceType::TABLET ], + 'ME302KL' => [ 'Asus', 'MeMO Pad FHD 10 (ME302KL)', DeviceType::TABLET ], + 'ASUS Pad ME370T' => [ 'Asus', 'Eee Pad MeMO (ME370T)', DeviceType::TABLET ], + 'ME370T' => [ 'Asus', 'Eee Pad MeMO (ME370T)', DeviceType::TABLET ], + 'ME371MG' => [ 'Asus', 'Fonepad (ME371MG)', DeviceType::TABLET ], + 'Asus Fonepad ME371MG 8GB' => [ 'Asus', 'Fonepad (ME371MG)', DeviceType::TABLET ], + 'ME372CG' => [ 'Asus', 'Fonepad 7 (ME372CG)', DeviceType::TABLET ], + 'ME372CL-FF' => [ 'Asus', 'Fonepad 7 (ME372CL)', DeviceType::TABLET ], + 'ME560CG' => [ 'Asus', 'Fonepad Note 6 (ME560CG)', DeviceType::TABLET ], + 'ME581CL' => [ 'Asus', 'MeMO Pad 8 (ME581CL)', DeviceType::TABLET ], + 'Slider SL101' => [ 'Asus', 'Eee Pad Slider', DeviceType::TABLET ], + 'EPAD' => [ 'Asus', 'Eee Pad Transformer', DeviceType::TABLET ], + 'TF101' => [ 'Asus', 'Eee Pad Transformer', DeviceType::TABLET ], + 'TF101-WiMAX' => [ 'Asus', 'Eee Pad Transformer', DeviceType::TABLET ], + 'Transformer' => [ 'Asus', 'Eee Pad Transformer', DeviceType::TABLET ], + 'Transformer TF101(G)?!' => [ 'Asus', 'Eee Pad Transformer', DeviceType::TABLET ], + 'TF201' => [ 'Asus', 'Eee Pad Transformer Prime', DeviceType::TABLET ], + 'tf201t' => [ 'Asus', 'Eee Pad Transformer Prime', DeviceType::TABLET ], + '(Eee Pad )?Transformer Prime TF201!' => [ 'Asus', 'Eee Pad Transformer Prime', DeviceType::TABLET ], + 'Transformer TF201' => [ 'Asus', 'Eee Pad Transformer Prime', DeviceType::TABLET ], + 'Transformer TF201G' => [ 'Asus', 'Eee Pad Transformer Prime', DeviceType::TABLET ], + 'Transformer Prime' => [ 'Asus', 'Eee Pad Transformer Prime', DeviceType::TABLET ], + 'Transformer Prime TF300T' => [ 'Asus', 'Eee Pad Transformer Prime', DeviceType::TABLET ], + 'Transformer 300' => [ 'Asus', 'Transformer Pad 300', DeviceType::TABLET ], + 'Transformer Pad' => [ 'Asus', 'Transformer Pad 300', DeviceType::TABLET ], + '(Transformer )?(Pad )?TF300(T|TG|TL)!' => [ 'Asus', 'Transformer Pad 300', DeviceType::TABLET ], + '(Transformer )?(Pad )?TF502(T)!' => [ 'Asus', 'Transformer Pad 502', DeviceType::TABLET ], + 'Transformer Pad TF600T' => [ 'Asus', 'Transformer Pad 600', DeviceType::TABLET ], + '(Transformer )?(Pad )?TF700(T|K)!' => [ 'Asus', 'Transformer Pad Infinity 700', DeviceType::TABLET ], + 'Transformer (Pad )?Infinity!' => [ 'Asus', 'Transformer Pad Infinity 700', DeviceType::TABLET ], + 'Tablet P1801-T' => [ 'Asus', 'Transformer AiO P1801', DeviceType::TABLET ], + 'Tablet P1802-T' => [ 'Asus', 'Transformer AiO P1802', DeviceType::TABLET ], + 'PadFone' => [ 'Asus', 'PadFone', DeviceType::TABLET ], + 'PadFone 2' => [ 'Asus', 'PadFone 2', DeviceType::TABLET ], + 'PadFone Infinity' => [ 'Asus', 'PadFone Infinity', DeviceType::TABLET ], + 'PadFone Infinity A86' => [ 'Asus', 'PadFone Infinity', DeviceType::TABLET ], + 'PadFone T004' => [ 'Asus', 'PadFone Infinity', DeviceType::TABLET ], + 'PadFone-T004' => [ 'Asus', 'PadFone Infinity', DeviceType::TABLET ], + 'PadFone T008' => [ 'Asus', 'PadFone E', DeviceType::TABLET ], + 'PadFone T00C' => [ 'Asus', 'PadFone mini', DeviceType::TABLET ], + 'PadFone X' => [ 'Asus', 'PadFone X', DeviceType::TABLET ], + 'PadFone X mini' => [ 'Asus', 'PadFone X mini (PF450CL)', DeviceType::TABLET ], + 'ETBW11AA' => [ 'Asus', 'Tough' ], + 'K00C' => [ 'Asus', 'Transformer Pad Infinity', DeviceType::TABLET ], + 'K010' => [ 'Asus', 'Transformer Pad TF103', DeviceType::TABLET ], + 'K010E' => [ 'Asus', 'Transformer Pad TF103', DeviceType::TABLET ], + 'K018' => [ 'Asus', 'Transformer Pad TF103', DeviceType::TABLET ], + 'K014' => [ 'Asus', 'Transformer Pad TF303', DeviceType::TABLET ], + 'K01B' => [ 'Asus', 'Transformer Pad TF303', DeviceType::TABLET ], + 'K00G' => [ 'Asus', 'Fonepad Note 6 (ME560CG)', DeviceType::TABLET ], + 'K00E' => [ 'Asus', 'Fonepad 7 (ME372CG)', DeviceType::TABLET ], + 'K00Y' => [ 'Asus', 'Fonepad 7 (ME372CL)', DeviceType::TABLET ], + 'K00Z' => [ 'Asus', 'Fonepad 7 (ME175CG)', DeviceType::TABLET ], + 'K012' => [ 'Asus', 'Fonepad 7 (FE170CG)', DeviceType::TABLET ], + 'K019' => [ 'Asus', 'Fonepad 7 (FE375CG)', DeviceType::TABLET ], + 'K01F' => [ 'Asus', 'Fonepad 7 (FE171MG)', DeviceType::TABLET ], + 'K01N' => [ 'Asus', 'Fonepad 7 (FE171CG)', DeviceType::TABLET ], + 'K01Q' => [ 'Asus', 'Fonepad 7 (FE375CL)', DeviceType::TABLET ], + 'K016' => [ 'Asus', 'Fonepad 8 (FE380CG)', DeviceType::TABLET ], + 'K01E' => [ 'Asus', 'MeMO Pad (ME103K)', DeviceType::TABLET ], + 'K00X' => [ 'Asus', 'MeMO Pad 7 (ME7530CL)', DeviceType::TABLET ], + 'K00R' => [ 'Asus', 'MeMO Pad 7 (ME572CL)', DeviceType::TABLET ], + 'K007' => [ 'Asus', 'MeMO Pad 7 (ME572C)', DeviceType::TABLET ], + 'K013' => [ 'Asus', 'MeMO Pad 7 (ME176C)', DeviceType::TABLET ], + 'K013C' => [ 'Asus', 'MeMO Pad 7 (ME176C)', DeviceType::TABLET ], + 'K017' => [ 'Asus', 'MeMO Pad 7 (ME170C)', DeviceType::TABLET ], + 'K01A' => [ 'Asus', 'MeMO Pad 7 (ME70C)', DeviceType::TABLET ], + 'MeMO Pad 7' => [ 'Asus', 'MeMo Pad 7 (ME375CL)', DeviceType::TABLET ], + 'K012 2' => [ 'Asus', 'MeMO Pad 7 (FE7010CG)', DeviceType::TABLET ], + 'K01U' => [ 'Asus', 'MeMO Pad 7 (ME171C)', DeviceType::TABLET ], + 'K00S' => [ 'Asus', 'MeMO Pad HD 7 (ME175KG)', DeviceType::TABLET ], + 'K00U' => [ 'Asus', 'MeMO Pad HD 7 (ME173XX)', DeviceType::TABLET ], + 'K011' => [ 'Asus', 'MeMO Pad 8 (ME181C)', DeviceType::TABLET ], + 'AST21' => [ 'Asus', 'MeMO Pad 8 AST21', DeviceType::TABLET, 'carrier' => 'au' ], + 'K015' => [ 'Asus', 'MeMO Pad 8 AST21', DeviceType::TABLET, 'carrier' => 'au' ], + 'K01H' => [ 'Asus', 'MeMO Pad 8 (ME581C)', DeviceType::TABLET ], + 'K00L' => [ 'Asus', 'MeMO Pad HD 8 (ME180A)', DeviceType::TABLET ], + 'K00F' => [ 'Asus', 'MeMO Pad 10 (ME102A)', DeviceType::TABLET ], + 'T00C' => [ 'Asus', 'PadFone mini', DeviceType::TABLET ], + 'T00E' => [ 'Asus', 'PadFone mini (PF400CG)', DeviceType::TABLET ], + 'T00N' => [ 'Asus', 'PadFone S (PF500KL)', DeviceType::TABLET ], + 'T00D' => [ 'Asus', 'PadFone X mini (PF450CL)', DeviceType::TABLET ], + 'T00S' => [ 'Asus', 'PadFone X mini (PF450CL)', DeviceType::TABLET ], + 'T00T' => [ 'Asus', 'PadFone X mini (PF450CL)', DeviceType::TABLET ], + 'T001' => [ 'Asus', 'ZenFone 4 (A400CG)' ], + 'T00I' => [ 'Asus', 'ZenFone 4 (A400CG)' ], + 'T00I-D' => [ 'Asus', 'ZenFone 4 (A400CG)' ], + 'A400CG' => [ 'Asus', 'ZenFone 4 (A400CG)' ], + 'T00F' => [ 'Asus', 'ZenFone 5 (A500CG)' ], + 'T00J' => [ 'Asus', 'ZenFone 5 (A501CG)' ], + 'T00J-D' => [ 'Asus', 'ZenFone 5 (A501CG)' ], + 'T00K' => [ 'Asus', 'ZenFone 5 (A502CG)' ], + 'T00P' => [ 'Asus', 'ZenFone 5 LTE (A500KL)' ], + 'Zenfone 5 LTE' => [ 'Asus', 'ZenFone 5 LTE (A500KL)' ], + 'T00G' => [ 'Asus', 'ZenFone 6 (A600CG)' ], + 'T00Q' => [ 'Asus', 'ZenFone 4 (A450CG)' ], + 'P001' => [ 'Asus', 'ZenPad C 7.0 (Z170MG)', DeviceType::TABLET ], + 'P001 2' => [ 'Asus', 'ZenPad C 7.0 (Z170MG)', DeviceType::TABLET ], + 'P002' => [ 'Asus', 'ZenPad 7.0 (Z370KL)', DeviceType::TABLET ], + 'P01M' => [ 'Asus', 'ZenPad S 8.0 (Z580C)', DeviceType::TABLET ], + 'P01MA' => [ 'Asus', 'ZenPad S 8.0 (Z580CA)', DeviceType::TABLET ], + 'P01T' => [ 'Asus', 'ZenPad 10 (Z300CL)', DeviceType::TABLET ], + 'P01T 1' => [ 'Asus', 'ZenPad 10 (Z300CL)', DeviceType::TABLET ], + 'P01V' => [ 'Asus', 'ZenPad 7.0 (Z370CG)', DeviceType::TABLET ], + 'P01W' => [ 'Asus', 'ZenPad 7.0 (Z370C)', DeviceType::TABLET ], + 'P01Y' => [ 'Asus', 'ZenPad C 7.0 (Z170CG)', DeviceType::TABLET ], + 'P01Z' => [ 'Asus', 'ZenPad C 7.0 (Z170C)', DeviceType::TABLET ], + 'P021' => [ 'Asus', 'ZenPad 10 (Z300CG)', DeviceType::TABLET ], + 'P022' => [ 'Asus', 'ZenPad 8.0 (Z380C)', DeviceType::TABLET ], + 'P023' => [ 'Asus', 'ZenPad 10 (Z300C)', DeviceType::TABLET ], + 'P024' => [ 'Asus', 'ZenPad 8.0 (Z380KL)', DeviceType::TABLET ], + // '' => [ 'Asus', 'ZenPad 10 (Z300CNL)', DeviceType::TABLET ], + 'Z002' => [ 'Asus', 'ZenFone 6 (A601CG)' ], + 'Z007' => [ 'Asus', 'ZenFone C (ZC451CG)' ], + 'ZenFone 2' => [ 'Asus', 'ZenFone 2 (ZE550ML)' ], + 'Z008' => [ 'Asus', 'ZenFone 2 (ZE550ML)' ], + 'Z008D' => [ 'Asus', 'ZenFone 2 (ZE550ML)' ], + 'Z00A' => [ 'Asus', 'ZenFone 2 (ZE551ML)' ], + 'Z00AD' => [ 'Asus', 'ZenFone 2 (ZE551ML)' ], + 'Z00ADA' => [ 'Asus', 'ZenFone 2 (ZE551ML)' ], + 'Z00ADB' => [ 'Asus', 'ZenFone 2 (ZE551ML)' ], + 'Z00D' => [ 'Asus', 'ZenFone 2 (ZE500CL)' ], + 'ZenFone 2E' => [ 'Asus', 'ZenFone 2E' ], + 'Z00ED' => [ 'Asus', 'ZenFone 2 Laser (ZE500KL)' ], + 'Z00EDB' => [ 'Asus', 'ZenFone 2 Laser (ZE500KL)' ], + 'Z00LD' => [ 'Asus', 'ZenFone 2 Laser (ZE550KL)' ], + 'Z00LDC' => [ 'Asus', 'ZenFone 2 Laser (ZE550KL)' ], + 'Z00LDD' => [ 'Asus', 'ZenFone 2 Laser (ZE550KL)' ], + 'Z00MD' => [ 'Asus', 'ZenFone 2 Laser (ZE600KL)' ], + 'Z00RD' => [ 'Asus', 'ZenFone 2 Laser (ZE500KG)' ], + 'Z00TD' => [ 'Asus', 'ZenFone 2 Laser (ZE551KL)' ], + 'Z00TDA' => [ 'Asus', 'ZenFone 2 Laser (ZE551KL)' ], + 'Z00WD' => [ 'Asus', 'ZenFone 2 Laser (ZE550KG)' ], + 'Z011D' => [ 'Asus', 'ZenFone 2 Laser (ZE601KL)' ], + 'Z00UD' => [ 'Asus', 'ZenFone Selfie (ZD551KL)' ], + 'Z00UDA' => [ 'Asus', 'ZenFone Selfie (ZD551KL)' ], + 'Z00UDB' => [ 'Asus', 'ZenFone Selfie (ZD551KL)' ], + 'Z00UDC' => [ 'Asus', 'ZenFone Selfie (ZD551KL)' ], + 'Z00SD' => [ 'Asus', 'ZenFone Go (ZC451TG)' ], + 'Z00VD' => [ 'Asus', 'ZenFone Go (ZC500TG)' ], + // '' => [ 'Asus', 'ZenFone Go TV (ZB551KL)' ], + 'Z00XS' => [ 'Asus', 'ZenFone Zoom (ZX551ML)' ], + 'Z00XSA' => [ 'Asus', 'ZenFone Zoom (ZX551ML)' ], + 'Z00XSB' => [ 'Asus', 'ZenFone Zoom (ZX551ML)' ], + 'Z010D' => [ 'Asus', 'ZenFone Max (ZC550KL)' ], + 'Z010DA' => [ 'Asus', 'ZenFone Max (ZC550KL)' ], + 'Z010DD' => [ 'Asus', 'ZenFone Max (ZC550KL)' ], + 'Z012DA' => [ 'Asus', 'ZenFone 3 (ZE552KL)' ], + // '' => [ 'Asus', 'ZenFone 3 Ultra (ZU680KL)' ], + // '' => [ 'Asus', 'ZenFone 3 Deluxe (ZS570KL)' ], + 'Z00YD' => [ 'Asus', 'Live' ], + 'X002' => [ 'Asus', 'Pegasus' ], + 'X003' => [ 'Asus', 'Pegasus' ], + 'X005' => [ 'Asus', 'Pegasus 2 Plus' ], + 'X550' => [ 'Asus', 'Pegasus 2 Plus' ], + 'TX201LA' => [ 'Asus', 'Transformer Book Trio', DeviceType::TABLET ], + 'TX201LAF' => [ 'Asus', 'Transformer Book Trio', DeviceType::TABLET ], + 'asus google cube' => [ 'Asus', 'Cube with Google TV', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'google cube' => [ 'Asus', 'Cube with Google TV', DeviceType::TELEVISION, Flag::GOOGLETV ], + + 'RTC-700A' => [ 'Asus', 'AAEON RTC-700A', DeviceType::TABLET ], + + 'Qilive!!' => [ + 'Qilive 40' => [ 'Auchan', 'QiLive 4†Smartphone' ], + 'Qilive 45' => [ 'Auchan', 'QiLive 4.5†Smartphone' ], + 'Qilive 50' => [ 'Auchan', 'QiLive 5†Smartphone' ], + 'Qilive 50 QC' => [ 'Auchan', 'QiLive 5†Smartphone' ], + 'Qilive 53' => [ 'Auchan', 'QiLive 5.3†Smartphone' ], + 'Qilive 7' => [ 'Auchan', 'QiLive 7†Dual core tablet', DeviceType::TABLET ], + 'Qilive 70v2' => [ 'Auchan', 'QiLive 7†Dual core tablet', DeviceType::TABLET ], + 'Qilive 79' => [ 'Auchan', 'QiLive 7.9†Dual core tablet', DeviceType::TABLET ], + 'Qilive 97R-2' => [ 'Auchan', 'QiLive 7.9†Quad core tablet', DeviceType::TABLET ], + 'QiLive 8' => [ 'Auchan', 'QiLive 8†Dual core tablet', DeviceType::TABLET ], + 'QiLive 8QC' => [ 'Auchan', 'QiLive 8†Quad core tablet', DeviceType::TABLET ], + 'QiLive 97' => [ 'Auchan', 'QiLive 9.7†Dual core tablet', DeviceType::TABLET ], + 'QiLive 97R' => [ 'Auchan', 'QiLive 9.7R Quad core tablet', DeviceType::TABLET ], + 'QILIVE 101' => [ 'Auchan', 'QiLive 10.1†Dual core tablet', DeviceType::TABLET ], + ], + + 'T-07B' => [ 'AudioSonic', 'T07B', DeviceType::TABLET ], + 'T-800' => [ 'AudioSonic', 'T800', DeviceType::TABLET ], + + 'AUX!!' => [ + 'AUX 909+P' => [ 'AUX', '909+P' ], + 'AUX 910+' => [ 'AUX', '910+' ], + 'AUX 939+' => [ 'AUX', '939+' ], + 'AUX M959P' => [ 'AUX', 'M959P' ], + 'AUX T5100L' => [ 'AUX', 'T5100L' ], + 'AUX V900' => [ 'AUX', 'V900' ], + 'AUX V900P' => [ 'AUX', 'V900P' ], + 'AUX V920' => [ 'AUX', 'V920' ], + 'AUX V920P' => [ 'AUX', 'V920P' ], + 'AUX V926T' => [ 'AUX', 'V926T' ], + 'AUX V950' => [ 'AUX', 'V950' ], + 'AUX V950P' => [ 'AUX', 'V950P' ], + 'AUX V965T' => [ 'AUX', 'V965T' ], + 'AUX W6' => [ 'AUX', 'W6' ], + ], + + 'Numy!!' => [ + 'Avea inTouch 2' => [ 'Avea', 'inTouch 2', DeviceType::TABLET ], + 'Avea inTouch 3' => [ 'Avea', 'inTouch 3', DeviceType::TABLET ], + 'Avea inTouch 3 Large' => [ 'Avea', 'inTouch 3', DeviceType::TABLET ], + 'Avea inTouch 4' => [ 'Avea', 'inTouch 4', DeviceType::TABLET ], + ], + + '(Ilium )?Avvio!!' => [ + 'Avvio 489' => [ 'Avvio', '489' ], + 'Avvio 710' => [ 'Avvio', '710' ], + 'Avvio 735s' => [ 'Avvio', '735' ], + 'Avvio 750' => [ 'Avvio', '750' ], + 'Ilium AVVIO 760' => [ 'Avvio', '760' ], + 'AVVIO 765!' => [ 'Avvio', '765' ], + 'Avvio 768' => [ 'Avvio', '768' ], + 'Avvio 775' => [ 'Avvio', '775' ], + 'Avvio-775s' => [ 'Avvio', '775s' ], + 'Avvio 778' => [ 'Avvio', '778' ], + 'Avvio 780' => [ 'Avvio', '780' ], + 'Avvio 785' => [ 'Avvio', '785' ], + 'Avvio786' => [ 'Avvio', '786' ], + 'Avvio 790' => [ 'Avvio', '790' ], + 'Avvio 790s' => [ 'Avvio', '790s' ], + 'Avvio 792' => [ 'Avvio', '792' ], + 'Avvio 792s' => [ 'Avvio', '792s' ], + 'Avvio 793' => [ 'Avvio', '793' ], + 'Avvio L500 Claro' => [ 'Avvio', 'L500' ], + 'Avvio PAD' => [ 'Avvio', 'Pad', DeviceType::TABLET ], + ], + + '(Axioo[\- ])?PICO!!' => [ + 'PICOphone 2' => [ 'Axioo', 'PICOphone 2' ], + 'PICOphone 4' => [ 'Axioo', 'PICOphone 4' ], + 'Picophone4' => [ 'Axioo', 'PICOphone 4' ], + 'PICOphone4 GDF' => [ 'Axioo', 'PICOphone 4' ], + 'PICOphone4 GDX' => [ 'Axioo', 'PICOphone 4' ], + 'PICOphone M1' => [ 'Axioo', 'PICOphone M1' ], + 'PICOphone M2 (M)' => [ 'Axioo', 'PICOphone M2' ], + 'PICOpad S1(7 3G)' => [ 'Axioo', 'PICOpad S1', DeviceType::TABLET ], + 'PICOpad 7H(7 3G)' => [ 'Axioo', 'PICOpad 7H', DeviceType::TABLET ], + 'PICOpadGCE' => [ 'Axioo', 'PICOpad GCE', DeviceType::TABLET ], + 'Axioo PICOpad GDK' => [ 'Axioo', 'PICOpad GDK', DeviceType::TABLET ], + 'PICOpad GDK' => [ 'Axioo', 'PICOpad GDK', DeviceType::TABLET ], + 'PICOpad GDS' => [ 'Axioo', 'PICOpad GDS', DeviceType::TABLET ], + 'PICOpad GEA' => [ 'Axioo', 'PICOpad GEA', DeviceType::TABLET ], + 'PICOpad GEW' => [ 'Axioo', 'PICOpad GEW', DeviceType::TABLET ], + 'PICOpad GFI' => [ 'Axioo', 'PICOpad GFI', DeviceType::TABLET ], + 'PICOpad GGA' => [ 'Axioo', 'PICOpad GGA', DeviceType::TABLET ], + 'PICOpad GGD' => [ 'Axioo', 'PICOpad GGD', DeviceType::TABLET ], + 'PICOpad GGG' => [ 'Axioo', 'PICOpad GGG', DeviceType::TABLET ], + 'PICOpad GHM' => [ 'Axioo', 'PICOpad GHM', DeviceType::TABLET ], + 'Axioo PICOpad GIM' => [ 'Axioo', 'PICOpad GIM', DeviceType::TABLET ], + 'PICOpad GJE' => [ 'Axioo', 'PICOpad GJE', DeviceType::TABLET ], + 'PICOpad GJT' => [ 'Axioo', 'PICOpad GJT', DeviceType::TABLET ], + 'PICOpad-QGN' => [ 'Axioo', 'PICOpad QGN', DeviceType::TABLET ], + 'Axioo-VIGO350' => [ 'Axioo', 'Vigo 350' ], + 'Axioo-VIGO410' => [ 'Axioo', 'Vigo 410' ], + ], + + '(AXPAD|Axxion)!!' => [ + 'AXPAD 7E01' => [ 'Axtrom', 'Axpad 7" Series-7E01', DeviceType::TABLET ], + 'AXPAD 7E02' => [ 'Axtrom', 'Axpad 7" Series-7E02', DeviceType::TABLET ], + 'AXPAD 7I04' => [ 'Axtrom', 'Axpad 7" Series-7I04', DeviceType::TABLET ], + 'AXPAD 9P01' => [ 'Axtrom', 'Axpad 9" Series-9P01', DeviceType::TABLET ], + 'Axxion ATAB-701' => [ 'Axxion', 'ATAB-701', DeviceType::TABLET ], + 'Axxion ATAB-902' => [ 'Axxion', 'ATAB-902', DeviceType::TABLET ], + ], + + 'A10 MID' => [ 'Azhuo', 'A10 MID', DeviceType::TABLET ], + 'A10MID' => [ 'Azhuo', 'A10 MID', DeviceType::TABLET ], + + 'Azumi!!' => [ + 'Azumi A35S' => [ 'Azumi', 'A35s' ], + 'Azumi A40C' => [ 'Azumi', 'A40c' ], + 'AZUMI A50' => [ 'Azumi', 'A50' ], + 'Azumi A50c' => [ 'Azumi', 'A50c' ], + 'AZUMI A50c+' => [ 'Azumi', 'A50c+' ], + 'Azumi LT50' => [ 'Azumi', 'LT50' ], + 'Azumi KL32' => [ 'Azumi', 'KL32' ], + 'Azumi AT7' => [ 'Azumi', 'AT7', DeviceType::TABLET ], + ], + + '(BDS|BHX|BKO)\-!!' => [ + 'BDS-S100' => [ 'B box', 'B tv BDS-S100', DeviceType::TELEVISION ], + 'BDS-S200' => [ 'B box', 'B tv BDS-S200', DeviceType::TELEVISION ], + 'BHX-S100' => [ 'B box', 'B tv BHX-S100', DeviceType::TELEVISION ], + 'BHX-S100 TV' => [ 'B box', 'B tv BHX-S100', DeviceType::TELEVISION ], + 'BHX-UH200' => [ 'B box', 'B tv UHD BHX-UH200', DeviceType::TELEVISION ], + 'BKO-S200' => [ 'B box', 'B tv BKO-S200', DeviceType::TELEVISION ], + 'BKO-S200 TV' => [ 'B box', 'B tv BKO-S200', DeviceType::TELEVISION ], + ], + + 'Aero A2-110' => [ 'Banghó', 'Aero A2 110', DeviceType::TABLET ], + 'NOOK' => [ 'Barnes & Noble', 'NOOK', DeviceType::EREADER ], + 'Nook ?Color!' => [ 'Barnes & Noble', 'NOOK Color', DeviceType::EREADER ], + '(NOOK )?BNRV(200|300)!' => [ 'Barnes & Noble', 'NOOK Color', DeviceType::EREADER ], + 'Nook ?Tablet!' => [ 'Barnes & Noble', 'NOOK Tablet', DeviceType::EREADER ], + 'NOOK Slate' => [ 'Barnes & Noble', 'NOOK Tablet', DeviceType::EREADER ], + 'Barnes & Noble Nook Tablet' => [ 'Barnes & Noble', 'NOOK Tablet', DeviceType::EREADER ], + '(NOOK )?BNTV250!' => [ 'Barnes & Noble', 'NOOK Tablet', DeviceType::EREADER ], + '(NOOK )?BNRV350!' => [ 'Barnes & Noble', 'NOOK Simple Touch', DeviceType::EREADER ], + '(NOOK )?BNTV(400)!' => [ 'Barnes & Noble', 'NOOK HD Tablet', DeviceType::EREADER ], + '(NOOK )?BNTV(600)!' => [ 'Barnes & Noble', 'NOOK HD+ Tablet', DeviceType::EREADER ], + '(NOOK )?BNTV(800)!' => [ 'Barnes & Noble', 'NOOK BNTV800 Tablet', DeviceType::EREADER ], + 'Barnes & Noble Nook HD' => [ 'Barnes & Noble', 'NOOK HD Tablet', DeviceType::EREADER ], + 'Barnes & Noble Nook HD+' => [ 'Barnes & Noble', 'NOOK HD+ Tablet', DeviceType::EREADER ], + 'Nook HD' => [ 'Barnes & Noble', 'NOOK HD Tablet', DeviceType::EREADER ], + 'BN Nook HD' => [ 'Barnes & Noble', 'NOOK HD Tablet', DeviceType::EREADER ], + 'BN NookHD+' => [ 'Barnes & Noble', 'NOOK HD+ Tablet', DeviceType::EREADER ], + 'Nook HD+' => [ 'Barnes & Noble', 'NOOK HD+ Tablet', DeviceType::EREADER ], + 'HY5001' => [ 'Bedove', 'HY5001' ], + 'BenWee 5100' => [ 'BenWee', '5100' ], + 'ASP-4300W' => [ 'Bauhn', 'ASP-4300W' ], + 'ASP-4500Z' => [ 'Bauhn', 'ASP-4500Z' ], + 'ASP-5000H' => [ 'Bauhn', 'ASP-5000H' ], + 'AT101-014' => [ 'Bauhn', 'AT101-014', DeviceType::TABLET ], + 'AT101T-114' => [ 'Bauhn', 'AT101T-114', DeviceType::TABLET ], + 'WL-101GQC' => [ 'Bauhn', 'WL-101GQC', DeviceType::TABLET ], + 'BEE 9500' => [ 'Bee Mobile', 'Bee 9500' ], + + 'BF[ \-]!!' => [ + 'BF A8' => [ 'Bellefonte', 'A8' ], + 'BF-A10' => [ 'Bellefonte', 'A10' ], + 'BF A11' => [ 'Bellefonte', 'A11' ], + 'BF A12P' => [ 'Bellefonte', 'A12P' ], + 'BF A16' => [ 'Bellefonte', 'A16' ], + 'BF C7' => [ 'Bellefonte', 'C7' ], + 'BF G11' => [ 'Bellefonte', 'G11' ], + 'BF V5T!' => [ 'Bellefonte', 'V5T' ], + ], + + 'BenQ!!' => [ + 'BenQ F5' => [ 'BenQ', 'F5' ], + 'BenQ T3' => [ 'BenQ', 'T3' ], + 'BenQ R71' => [ 'BenQ', 'R71', DeviceType::TABLET ], + ], + + 'BenWee!!' => [ + 'BenWee 550S' => [ 'BenWee', '550S' ], + 'BenWee 5100S' => [ 'BenWee', '5100S' ], + 'BenWee N7' => [ 'BenWee', 'N7' ], + 'BenWee N9' => [ 'BenWee', 'N9' ], + ], + + 'BePhone UN030' => [ 'BePhone', 'UN030' ], + + 'Best ?sonny!!' => [ + 'Best sonny L82' => [ 'Best Sonny', 'L82' ], + 'Best sonny LT986' => [ 'Best Sonny', 'LT986' ], + 'Best sonny T898' => [ 'Best Sonny', 'T898' ], + 'BestsonnyT961' => [ 'Best Sonny', 'T961' ], + 'BestsonnyT962' => [ 'Best Sonny', 'T962' ], + ], + + 'CA907AAC0G' => [ 'Besta', 'CA907AAC0G' ], + + 'BFB!!' => [ + 'BFB S7' => [ 'BFB', 'S7' ], + 'BFB W9000' => [ 'BFB', 'W9000' ], + 'BFB W9900' => [ 'BFB', 'W9900' ], + ], + + 'BF[0-9]{2,2}00!!' => [ + 'BF5200' => [ 'Bifer', 'BF5200' ], + 'BF9100' => [ 'Bifer', 'BF9100' ], + 'BF9200' => [ 'Bifer', 'BF9200' ], + ], + + 'Bird!!' => [ + 'BIRD A11C' => [ 'Bird', 'A11C' ], + 'BIRD E700' => [ 'Bird', 'E700' ], + 'Bird-Doeasy E700' => [ 'Bird', 'Doeasy E700' ], + 'Bird i7' => [ 'Bird', 'I7' ], + 'Bird i8' => [ 'Bird', 'I8' ], + 'Bird i9' => [ 'Bird', 'I9' ], + 'Bird i500' => [ 'Bird', 'I500' ], + 'Bird i580' => [ 'Bird', 'I580' ], + 'Bird i600' => [ 'Bird', 'I600' ], + 'BIRD I720 WIFI 3000' => [ 'Bird', 'I720' ], + 'Bird i900' => [ 'Bird', 'I900' ], + 'Bird L9' => [ 'Bird', 'L9' ], + 'BIRD L108' => [ 'Bird', 'L108' ], + 'Bird LT01' => [ 'Bird', 'LT01' ], + 'Bird LT02' => [ 'Bird', 'LT02' ], + 'BIRD S6' => [ 'Bird', 'S6' ], + 'BIRD T40' => [ 'Bird', 'T40' ], + 'BIRD T900' => [ 'Bird', 'T900' ], + 'Bird T9500' => [ 'Bird', 'T9500' ], + 'Bird T9508' => [ 'Bird', 'T9508' ], + 'BIRD T9600' => [ 'Bird', 'T9600' ], + 'Bird T9608' => [ 'Bird', 'T9608' ], + 'BIRD-V8' => [ 'Bird', 'V8' ], + 'BIRD-W3' => [ 'Bird', 'W3' ], + 'BIRD W5' => [ 'Bird', 'W5' ], + 'Bird W188' => [ 'Bird', 'W188' ], + 'Bird XL100' => [ 'Bird', 'XL100' ], + ], + + 'T9108' => [ 'Bird', 'T9108' ], + 'BB EH7' => [ 'BestBuy', 'EH7', DeviceType::TABLET ], + 'BB EH7LE' => [ 'BestBuy', 'EH7LE', DeviceType::TABLET ], + '(BB )?Q5$!' => [ 'BlackBerry', 'Q5' ], + '(BB )?Q10$!' => [ 'BlackBerry', 'Q10' ], + '(BB )?Z10$!' => [ 'BlackBerry', 'Z10' ], + '(BB )?Z30$!' => [ 'BlackBerry', 'Z30' ], + 'BLACKBERRY P\'9982' => [ 'BlackBerry', 'Porsche Design P\'9982' ], + 'STV100-1' => [ 'BlackBerry', 'PRIV' ], + 'STV100-2' => [ 'BlackBerry', 'PRIV' ], + 'STV100-3' => [ 'BlackBerry', 'PRIV' ], + 'STV100-4' => [ 'BlackBerry', 'PRIV' ], + 'STH100-2' => [ 'BlackBerry', '"Hamburg"' ], + + 'Endeavour!!' => [ + 'Endeavour101' => [ 'Blaupunkt', 'Endeavour 101', DeviceType::TABLET ], + 'Endeavour 101G' => [ 'Blaupunkt', 'Endeavour 101 G', DeviceType::TABLET ], + 'Endeavour 101M' => [ 'Blaupunkt', 'Endeavour 101 M', DeviceType::TABLET ], + 'Endeavour 700BN' => [ 'Blaupunkt', 'Endeavour 700 BN', DeviceType::TABLET ], + 'Endeavour 785' => [ 'Blaupunkt', 'Endeavour 785', DeviceType::TABLET ], + 'Endeavour 800NG' => [ 'Blaupunkt', 'Endeavour 800 NG', DeviceType::TABLET ], + 'Endeavour 1000WS' => [ 'Blaupunkt', 'Endeavour 1000 WS', DeviceType::TABLET ], + 'Endeavour 1000QC' => [ 'Blaupunkt', 'Endeavour 1000 QC', DeviceType::TABLET ], + 'Endeavour 1001' => [ 'Blaupunkt', 'Endeavour 1001', DeviceType::TABLET ], + 'Endeavour 1001 DVB-T' => [ 'Blaupunkt', 'Endeavour 1001 DVB-T', DeviceType::TABLET ], + 'Endeavour 1010' => [ 'Blaupunkt', 'Endeavour 1010', DeviceType::TABLET ], + 'Endeavour 1013' => [ 'Blaupunkt', 'Endeavour 1013', DeviceType::TABLET ], + 'Endeavour 1100' => [ 'Blaupunkt', 'Endeavour 1100', DeviceType::TABLET ], + ], + + '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!' => [ + 'BLU ADVANCE 3.5' => [ 'BLU', 'Advance 3.5' ], + 'BLU ADVANCE 4.0' => [ 'BLU', 'Advance 4.0' ], + 'BLU ADVANCE 4.0 L' => [ 'BLU', 'Advance 4.0 L' ], + 'BLU Advance 5.0' => [ 'BLU', 'Advance 5.0' ], + 'BLU AMOUR' => [ 'BLU', 'Amour' ], + 'BLU DASH' => [ 'BLU', 'Dash' ], + 'DASH JR' => [ 'BLU', 'Dash Jr' ], + 'BLU DASH JR' => [ 'BLU', 'Dash Jr' ], + 'BLU DASH JR SOCIAL' => [ 'BLU', 'Dash Jr Social' ], + 'DASH JR K' => [ 'BLU', 'Dash Jr K' ], + 'DASH JR. 4.0' => [ 'BLU', 'Dash Jr 4.0' ], + 'BLU DASH JR 4.0 K' => [ 'BLU', 'Dash Jr 4.0 K' ], + '(BLU )?DASH 3.2!' => [ 'BLU', 'Dash 3.2' ], + 'Blu Dash3.5' => [ 'BLU', 'Dash 3.5' ], + 'BLU DASH 3.5!' => [ 'BLU', 'Dash 3.5' ], + 'DASH 3.5' => [ 'BLU', 'Dash 3.5' ], + 'DASH 3.5 II' => [ 'BLU', 'Dash 3.5 II' ], + 'BLU DASH 4.0' => [ 'BLU', 'Dash 4.0' ], + 'BLU Dash 4.0 Ce' => [ 'BLU', 'Dash 4.0 CE' ], + 'BLU DASH 4.5' => [ 'BLU', 'Dash 4.5' ], + 'BLU DASH 5.0' => [ 'BLU', 'Dash 5.0' ], + 'DASH 5.0+' => [ 'BLU', 'Dash 5.0+' ], + 'Dash 5.5' => [ 'BLU', 'Dash 5.5' ], + 'BLU DASH5.5' => [ 'BLU', 'Dash 5.5' ], + 'BLU DASH MUSIC 4.0' => [ 'BLU', 'Dash Music 4.0' ], + 'BLU DASH MUSIC 4.5' => [ 'BLU', 'Dash Music 4.5' ], + 'BLU DASH MUSIC II' => [ 'BLU', 'Dash Music II' ], + 'DASH C MUSIC' => [ 'BLU', 'Dash C Music' ], + 'BLU DASH L' => [ 'BLU', 'Dash L' ], + 'BLU DASH M' => [ 'BLU', 'Dash M' ], + 'BLU DASH X' => [ 'BLU', 'Dash X' ], + 'BLU DASH X LTE' => [ 'BLU', 'Dash X' ], + 'DASH X PLUS LTE' => [ 'BLU', 'Dash X Plus' ], + 'BLU ENERGY X PLUS' => [ 'BLU', 'Energy X Plus' ], + 'BLU LIFE 8' => [ 'BLU', 'Life 8' ], + 'BLU LIFE 8 XL' => [ 'BLU', 'Life 8 XL' ], + 'BLU Life One' => [ 'BLU', 'Life One' ], + 'BLU LIFE ONE M' => [ 'BLU', 'Life One M' ], + 'BLU LIFE ONE X' => [ 'BLU', 'Life One X' ], + 'BLU LIFE ONE XL' => [ 'BLU', 'Life One XL' ], + 'LIFE PLAY' => [ 'BLU', 'Life Play' ], + 'LIFE PLAY 2' => [ 'BLU', 'Life Play 2' ], + 'BLU LIFE PLAY S' => [ 'BLU', 'Life Play S' ], + 'LIFE PLAY X' => [ 'BLU', 'Life Play X' ], + 'BLU LIFE PLAY MINI' => [ 'BLU', 'Life Play Mini' ], + 'LIFE PRO' => [ 'BLU', 'Life Pro' ], + 'LIFE PURE' => [ 'BLU', 'Life Pure' ], + 'LIFE PURE MINI' => [ 'BLU', 'Life Pure Mini' ], + 'LIFE PURE XL' => [ 'BLU', 'Life Pure XL' ], + 'BLU Life View' => [ 'BLU', 'Life View' ], + 'BLU LIFE XL' => [ 'BLU', 'Life XL' ], + 'BLU Magic' => [ 'BLU', 'Magic' ], + 'BLU Neo 3.5' => [ 'BLU', 'Neo 3.5' ], + 'Neo 3.5' => [ 'BLU', 'Neo 3.5' ], + 'BLU Quattro 4.5' => [ 'BLU', 'Quattro 4.5' ], + 'BLU Quattro 4.5 HD' => [ 'BLU', 'Quattro 4.5 HD' ], + 'BLU Quattro 5.7HD' => [ 'BLU', 'Quattro 5.7 HD' ], + 'BLU SPORT 4.5' => [ 'BLU', 'Sport 4.5' ], + 'BLU STAR4.0' => [ 'BLU', 'Star 4.0' ], + 'BLU STUDIO 5.0' => [ 'BLU', 'Studio 5.0' ], + 'BLU STUDIO 5.0 C' => [ 'BLU', 'Studio 5.0c' ], + 'BLU STUDIO 5.0 Ce' => [ 'BLU', 'Studio 5.0ce' ], + 'BLU STUDIO 5.0 C HD' => [ 'BLU', 'Studio 5.0c HD' ], + 'STUDIO 5.0e' => [ 'BLU', 'Studio 5.0e' ], + 'STUDIO 5.0K' => [ 'BLU', 'Studio 5.0k' ], + 'Studio 5.0s' => [ 'BLU', 'Studio 5.0s' ], + 'BLU Studio 5.0 S II' => [ 'BLU', 'Studio 5.0s II' ], + 'Studio 5.0 S II' => [ 'BLU', 'Studio 5.0s II' ], + 'Studio-5.0sII' => [ 'BLU', 'Studio 5.0s II' ], + 'Studio-5.0-s-II' => [ 'BLU', 'Studio 5.0s II' ], + 'BLU STUDIO 5.0 II' => [ 'BLU', 'Studio 5.0 II' ], + 'Studio 5.0LTE' => [ 'BLU', 'Studio 5.0 LTE' ], + 'Studio 5.0 HD LTE' => [ 'BLU', 'Studio 5.0 HD LTE' ], + 'BLU Studio 5.3' => [ 'BLU', 'Studio 5.3' ], + 'Studio 5.3s' => [ 'BLU', 'Studio 5.3s' ], + 'BLU STUDIO 5.3 II' => [ 'BLU', 'Studio 5.3 II' ], + 'STUDIO 5.5' => [ 'BLU', 'Studio 5.5' ], + 'BLU STUDIO 5.5 C' => [ 'BLU', 'Studio 5.5c' ], + 'BLU STUDIO 5.5 S' => [ 'BLU', 'Studio 5.5s' ], + 'STUDIO6 0HD' => [ 'BLU', 'Studio 6.0 HD' ], + 'STUDIO6.0HD' => [ 'BLU', 'Studio 6.0 HD' ], + 'BLU STUDIO 6.0 HD' => [ 'BLU', 'Studio 6.0 HD' ], + 'Studio 6.0 LTE' => [ 'BLU', 'Studio 6.0 LTE' ], + 'BLU STUDIO 7.0' => [ 'BLU', 'Studio 7.0' ], + 'STUDIO 7.0 LTE' => [ 'BLU', 'Studio 7.0 LTE' ], + 'BLU STUDIO 7.0 LTE' => [ 'BLU', 'Studio 7.0 LTE' ], + 'BLU STUDIO 7.0 II' => [ 'BLU', 'Studio 7.0 II' ], + 'STUDIO C' => [ 'BLU', 'Studio C' ], + 'BLU STUDIO C' => [ 'BLU', 'Studio C' ], + 'BLU STUDIO C MINI' => [ 'BLU', 'Studio C Mini' ], + 'BLU STUDIO C HD' => [ 'BLU', 'Studio C HD' ], + 'BLU STUDIO C 5+5' => [ 'BLU', 'Studio C 5+5' ], + 'BLU STUDIO C 5+5 LTE' => [ 'BLU', 'Studio C 5+5' ], + 'BLU STUDIO C SUPER CAMERA' => [ 'BLU', 'Studio C Super Camera' ], + 'BLU STUDIO G' => [ 'BLU', 'Studio G' ], + 'BLU STUDIO G PLUS' => [ 'BLU', 'Studio G Plus' ], + 'STUDIO G PLUS' => [ 'BLU', 'Studio G Plus' ], + 'BLU STUDIO X' => [ 'BLU', 'Studio X' ], + 'STUDIO X PLUS' => [ 'BLU', 'Studio X Plus' ], + 'STUDIO XL' => [ 'BLU', 'Studio XL' ], + 'BLU STUDIO XL' => [ 'BLU', 'Studio XL' ], + 'STUDIO ENERGY' => [ 'BLU', 'Studio Energy' ], + 'STUDIO ENERGY 2' => [ 'BLU', 'Studio Energy 2' ], + 'Studio Mini LTE' => [ 'BLU', 'Studio Mini LTE' ], + 'BLU STUDIO ONE PLUS' => [ 'BLU', 'Studio One Plus' ], + 'STUDIO SELFIE' => [ 'BLU', 'Studio Selfie' ], + 'BLU STUDIO SELFIE LTE' => [ 'BLU', 'Studio Selfie LTE' ], + 'BLU Tank4.5' => [ 'BLU', 'Tank 4.5' ], + 'BLU Tigo' => [ 'BLU', 'Tigo' ], + 'BLU Touch Book 7.0 LITE' => [ 'BLU', 'Touch Book 7.0 Lite', DeviceType::TABLET ], + 'BLU P100i' => [ 'BLU', 'Touch Book 7.0 Plus', DeviceType::TABLET ], + '(BLU )?VIVO 4.3!' => [ 'BLU', 'Vivo 4.3' ], + '(BLU )?VIVO 4.65!' => [ 'BLU', 'Vivo 4.65' ], + 'VIVO 4.8 HD' => [ 'BLU', 'Vivo 4.8 HD' ], + 'VIVO IV' => [ 'BLU', 'Vivo IV' ], + 'VIVO AIR' => [ 'BLU', 'Vivo Air' ], + 'BLU VIVO AIR LTE' => [ 'BLU', 'Vivo Air' ], + 'BLU VIVO SELFIE' => [ 'BLU', 'Vivo Selfie' ], + ], + + 'PURE XL' => [ 'BLU', 'Pure XL' ], + 'TOUCHBOOK7.0 3G' => [ 'BLU', 'Touch Book 7.0', DeviceType::TABLET ], + 'BMOBILE DASH 3.5' => [ 'BLU', 'Dash 3.5' ], + 'B3000' => [ 'BlueBo', 'B3000' ], + + '(Bmobile )?AX[0-9]{3,4}!!' => [ + 'AX410' => [ 'Bmobile', 'AX410' ], + 'Bmobile AX512' => [ 'Bmobile', 'AX512' ], + 'AX512' => [ 'Bmobile', 'AX512' ], + 'AX515' => [ 'Bmobile', 'AX515' ], + 'AX520' => [ 'Bmobile', 'AX520' ], + 'AX525' => [ 'Bmobile', 'AX525' ], + 'AX530' => [ 'Bmobile', 'AX530' ], + 'AX535' => [ 'Bmobile', 'AX535' ], + 'AX540' => [ 'Bmobile', 'AX540' ], + 'Bmobile AX540' => [ 'Bmobile', 'AX540' ], + 'AX570' => [ 'Bmobile', 'AX570' ], + 'Bmobile AX570' => [ 'Bmobile', 'AX570' ], + 'AX600' => [ 'Bmobile', 'AX600' ], + 'AX610' => [ 'Bmobile', 'AX610' ], + 'Bmobile AX610' => [ 'Bmobile', 'AX610' ], + 'AX620' => [ 'Bmobile', 'AX620' ], + 'Bmobile AX620' => [ 'Bmobile', 'AX620' ], + 'AX650' => [ 'Bmobile', 'AX650' ], + 'AX660' => [ 'Bmobile', 'AX650' ], + 'Bmobile AX670' => [ 'Bmobile', 'AX670' ], + 'Bmobile AX680' => [ 'Bmobile', 'AX680' ], + 'AX745' => [ 'Bmobile', 'AX745' ], + 'Bmobile AX745' => [ 'Bmobile', 'AX745' ], + 'Bmobile AX810' => [ 'Bmobile', 'AX810' ], + 'AX1020' => [ 'Bmobile', 'AX1020' ], + 'BMOBILE AX1020' => [ 'Bmobile', 'AX1020' ], + 'Bmobile AX1030' => [ 'Bmobile', 'AX1030' ], + 'AX1055' => [ 'Bmobile', 'AX1055' ], + 'BMOBILE AX1060' => [ 'Bmobile', 'AX1060' ], + 'AX1060' => [ 'Bmobile', 'AX1060' ], + ], + + 'AX7OO' => [ 'Bmobile', 'AX700' ], + 'Bmobile T35AC' => [ 'Bmobile', 'T35AC' ], + 'JC-S9220' => [ 'Bmorn', 'Phone One' ], + 'BM999' => [ 'Bmorn', 'BM999', DeviceType::TABLET ], + 'V11' => [ 'Bmorn', 'V11', DeviceType::TABLET ], + 'V99' => [ 'Bmorn', 'V99', DeviceType::TABLET ], + 'BO-FRSP4' => [ 'Bogo', 'Friendly 4DC' ], + 'BO-LFSPBS5' => [ 'Bogo', 'Lifestyle 5BS' ], + 'BOVO S-F16' => [ 'Bovo', 'Walker S-F16' ], + 'S-F16' => [ 'Bovo', 'Walker S-F16' ], + + 'BOWAY!!' => [ + 'BOWAY F3' => [ 'Boway', 'F3' ], + 'BOWAY I3' => [ 'Boway', 'I3' ], + 'BOWAY I5' => [ 'Boway', 'I5' ], + 'BOWAY I9' => [ 'Boway', 'I9' ], + 'BOWAY P1' => [ 'Boway', 'P1' ], + 'BOWAY U1' => [ 'Boway', 'U1' ], + 'BOWAY-BOWAY-U1' => [ 'Boway', 'U1' ], + 'BOWAY U2' => [ 'Boway', 'U2' ], + 'BOWAY-BOWAY-U2' => [ 'Boway', 'U2' ], + 'BOWAY U3' => [ 'Boway', 'U3' ], + 'BOWAY U7' => [ 'Boway', 'U7' ], + 'BOWAY V7' => [ 'Boway', 'V7' ], + 'BOWAY V70' => [ 'Boway', 'V70' ], + 'BOWAY V80' => [ 'Boway', 'V80' ], + ], + + 'BroadSign Xpress!' => [ 'BroadSign', 'Xpress', DeviceType::SIGNAGE ], + 'Broncho M7' => [ 'Broncho', 'M7', DeviceType::TABLET ], + 'CENTURION' => [ 'Brondi', 'CENTURION' ], + 'CENTURION 3' => [ 'Brondi', 'CENTURION 3' ], + 'GLADIATOR' => [ 'Brondi', 'GLADIATOR' ], + 'GLADIATOR-2' => [ 'Brondi', 'GLADIATOR 2' ], + 'GLADIATOR 3' => [ 'Brondi', 'GLADIATOR 3' ], + 'GLADIATOR 4' => [ 'Brondi', 'GLADIATOR 4' ], + 'Glory' => [ 'Brondi', 'GLORY' ], + 'Glory 2' => [ 'Brondi', 'GLORY 2' ], + 'Glory3' => [ 'Brondi', 'GLORY 3' ], + 'GLORY 4' => [ 'Brondi', 'GLORY 4' ], + 'LUXURY' => [ 'Brondi', 'LUXURY' ], + 'LUXURY 3' => [ 'Brondi', 'LUXURY 3' ], + 'LUXURY 4' => [ 'Brondi', 'LUXURY 4' ], + 'LUXURY 5' => [ 'Brondi', 'LUXURY 5' ], + 'SENSUELLE' => [ 'Brondi', 'SENSUELLE' ], + 'VICTORY' => [ 'Brondi', 'VICTORY' ], + 'Victory 2' => [ 'Brondi', 'VICTORY 2' ], + 'Victory 3' => [ 'Brondi', 'VICTORY 3' ], + 'Surfing TAB B 9.7 3G' => [ 'Brondi', 'SURFING TAB B', DeviceType::TABLET ], + 'Surfing Tab C 3G' => [ 'Brondi', 'SURFING TAB C', DeviceType::TABLET ], + + '(BRS-)?BROR!!' => [ + 'BROR G2' => [ 'BROR', 'G2' ], + 'BRS-BROR S3' => [ 'BROR', 'S3' ], + 'BROR S9' => [ 'BROR', 'S9' ], + 'BRS-BROR S9' => [ 'BROR', 'S9' ], + 'BROR T70' => [ 'BROR', 'T70' ], + 'BRS-BROR W58' => [ 'BROR', 'W58' ], + 'BROR W58' => [ 'BROR', 'W58' ], + 'BROR W60' => [ 'BROR', 'W60' ], + 'BROR W60+' => [ 'BROR', 'W60+' ], + 'BROR W65' => [ 'BROR', 'W65' ], + 'BROR W68' => [ 'BROR', 'W68' ], + 'BRS-BROR W70' => [ 'BROR', 'W70' ], + 'BRS-BROR W80' => [ 'BROR', 'W80' ], + ], + + '(bq|Aquaris|Edison|Maxwell)!!' => [ + 'bq Aquaris' => [ 'bq', 'Aquaris' ], + 'bq Aquaris 3.5' => [ 'bq', 'Aquaris 3.5' ], + 'bq Aquaris 4' => [ 'bq', 'Aquaris 4' ], + 'bq Aquaris 5' => [ 'bq', 'Aquaris 5' ], + 'bq Aquaris5' => [ 'bq', 'Aquaris 5' ], + 'BqAquaris5' => [ 'bq', 'Aquaris 5' ], + 'bq Aquaris 5 HD' => [ 'bq', 'Aquaris 5 HD' ], + 'bq Aquaris 5.7' => [ 'bq', 'Aquaris 5.7' ], + 'Aquaris A4.5' => [ 'bq', 'Aquaris A4.5' ], + 'Aquaris E4' => [ 'bq', 'Aquaris E4' ], + 'Aquaris E4.5' => [ 'bq', 'Aquaris E4.5' ], + 'Aquaris E5' => [ 'bq', 'Aquaris E5' ], + 'Aquaris E5 HD' => [ 'bq', 'Aquaris E5 HD' ], + 'Aquaris E5 FHD' => [ 'bq', 'Aquaris E5 FHD' ], + 'Aquaris E6' => [ 'bq', 'Aquaris E6' ], + 'Aquaris E10' => [ 'bq', 'Aquaris E10', DeviceType::TABLET ], + 'Aquaris E10 3G' => [ 'bq', 'Aquaris E10', DeviceType::TABLET ], + 'Aquaris M4.5' => [ 'bq', 'Aquaris M4.5' ], + 'Aquaris M5' => [ 'bq', 'Aquaris M5' ], + 'Aquaris M5.5' => [ 'bq', 'Aquaris M5.5' ], + 'Aquaris M10' => [ 'bq', 'Aquaris M10', DeviceType::TABLET ], + 'Aquaris M10 FHD' => [ 'bq', 'Aquaris M10 FHD', DeviceType::TABLET ], + 'Aquaris X5' => [ 'bq', 'Aquaris X5' ], + 'bq Curie' => [ 'bq', 'Curie', DeviceType::TABLET ], + 'bq Curie 2' => [ 'bq', 'Curie 2', DeviceType::TABLET ], + 'bq Curie 2 3G' => [ 'bq', 'Curie 2', DeviceType::TABLET ], + 'bq Curie 2 Quad Core' => [ 'bq', 'Curie 2', DeviceType::TABLET ], + 'bq Curie 2 Quad Core 3G' => [ 'bq', 'Curie 2', DeviceType::TABLET ], + 'Bq Darwin' => [ 'bq', 'Darwin', DeviceType::TABLET ], + 'bq DaVinci' => [ 'bq', 'DaVinci', DeviceType::TABLET ], + 'bq Elcano' => [ 'bq', 'Elcano', DeviceType::TABLET ], + 'bq Elcano 2 Quad Core' => [ 'bq', 'Elcano 2', DeviceType::TABLET ], + 'bq Edison' => [ 'bq', 'Edison', DeviceType::TABLET ], + 'bq Edison 3G' => [ 'bq', 'Edison', DeviceType::TABLET ], + 'bq Edison 2' => [ 'bq', 'Edison 2', DeviceType::TABLET ], + 'bq Edison 2 3G' => [ 'bq', 'Edison 2', DeviceType::TABLET ], + 'bq Edison 2 Quad Core' => [ 'bq', 'Edison 2', DeviceType::TABLET ], + 'bq Edison 2 Quad Core 3G' => [ 'bq', 'Edison 2', DeviceType::TABLET ], + 'Edison 3' => [ 'bq', 'Edison 3', DeviceType::TABLET ], + 'Edison 3 3G' => [ 'bq', 'Edison 3', DeviceType::TABLET ], + 'Edison 3 mini' => [ 'bq', 'Edison 3 mini', DeviceType::TABLET ], + 'bq Livingstone 2' => [ 'bq', 'Livingstone 2', DeviceType::TABLET ], + 'Maxwell' => [ 'bq', 'Maxwell', DeviceType::TABLET ], + 'Maxwell Lite' => [ 'bq', 'Maxwell Lite', DeviceType::TABLET ], + 'bq Maxwell Plus' => [ 'bq', 'Maxwell Plus', DeviceType::TABLET ], + 'bq Maxwell 2' => [ 'bq', 'Maxwell 2', DeviceType::TABLET ], + 'bq Maxwell 2 Lite' => [ 'bq', 'Maxwell 2 Lite', DeviceType::TABLET ], + 'bq Maxwell 2 Plus' => [ 'bq', 'Maxwell 2 Plus', DeviceType::TABLET ], + 'bq Maxwell 2 Quad Core' => [ 'bq', 'Maxwell 2', DeviceType::TABLET ], + 'bq Pascal 2!' => [ 'bq', 'Pascal 2', DeviceType::TABLET ], + 'bq Verne Plus' => [ 'bq', 'Verne Plus', DeviceType::TABLET ], + 'bq Verne Plus 3G' => [ 'bq', 'Verne Plus', DeviceType::TABLET ], + 'bq Voltaire' => [ 'bq', 'Voltaire', DeviceType::TABLET ], + ], + + 'BUSH!!' => [ + 'Bush 4 Android' => [ 'Bush', '4' ], + 'BUSH 5 Android' => [ 'Bush', '5' ], + 'Bush 5" Android' => [ 'Bush', '5' ], + 'Bush 5" 4G' => [ 'Bush', '5 4G' ], + 'Bush Spira C2 5" Smartphone' => [ 'Bush', '5 4G' ], + 'Bush 5.5" 4G' => [ 'Bush', '5.5 4G' ], + 'Bush Spira D2 5.5" Smartphone' => [ 'Bush', '5.5 4G' ], + 'BUSH 7.0 TABLET' => [ 'Bush', '7.0 Tablet', DeviceType::TABLET ], + 'BUSH 7.85 TABLET' => [ 'Bush', '7.85 Tablet', DeviceType::TABLET ], + 'Bush 8.0 MyTablet' => [ 'Bush', '8.0 MyTablet', DeviceType::TABLET ], + 'BUSH 10.1 TABLET' => [ 'Bush', '10.1 Tablet', DeviceType::TABLET ], + 'Bush 7.0 MyTablet' => [ 'Bush', '7.0 MyTablet', DeviceType::TABLET ], + 'Bush 10.0 MyTablet' => [ 'Bush', '10.0 MyTablet', DeviceType::TABLET ], + 'Bush Mytablet 2' => [ 'Bush', 'MyTablet 2', DeviceType::TABLET ], + ], + + 'CT[0-9]{3,4}!!' => [ + 'CT700' => [ 'Carrefour', 'Touch Tablet CT700', DeviceType::TABLET ], + 'CT701' => [ 'Carrefour', 'Touch Tablet CT701', DeviceType::TABLET ], + 'CT704' => [ 'Carrefour', 'Touch Tablet CT704', DeviceType::TABLET ], + 'CT705' => [ 'Carrefour', 'Touch Tablet CT705', DeviceType::TABLET ], + 'CT705FR' => [ 'Carrefour', 'Touch Tablet CT705', DeviceType::TABLET ], + 'CT710' => [ 'Carrefour', 'Touch Tablet CT710', DeviceType::TABLET ], + 'CT715' => [ 'Carrefour', 'Touch Tablet CT715', DeviceType::TABLET ], + 'CT720' => [ 'Carrefour', 'Touch Tablet CT720', DeviceType::TABLET ], + 'CT726' => [ 'Carrefour', 'Touch Tablet CT726', DeviceType::TABLET ], + 'CT820' => [ 'Carrefour', 'Touch Tablet CT820', DeviceType::TABLET ], + 'CT826' => [ 'Carrefour', 'Touch Tablet CT826', DeviceType::TABLET ], + 'CT1000' => [ 'Carrefour', 'Touch Tablet CT1000', DeviceType::TABLET ], + 'CT1002' => [ 'Carrefour', 'Touch Tablet CT1002', DeviceType::TABLET ], + 'CT1002PLUS' => [ 'Carrefour', 'Touch Tablet CT1002 plus', DeviceType::TABLET ], + 'CT1010' => [ 'Carrefour', 'Touch Tablet CT1010', DeviceType::TABLET ], + 'CT1020W' => [ 'Carrefour', 'Touch Tablet CT1020W', DeviceType::TABLET ], + ], + + 'EM63' => [ 'Carrefour', 'Touch Tablet CT720', DeviceType::TABLET ], + 'A101B-CF' => [ 'Carrefour', 'Touch Tablet CT1001', DeviceType::TABLET ], + 'TVE9603I' => [ 'Carrefour', 'Touch Tablet CT1050', DeviceType::TABLET ], + 'Camangi-Mangrove7' => [ 'Camangi', 'Mangrove 7', DeviceType::TABLET ], + 'WS171' => [ 'Camangi', 'WebStation', DeviceType::TABLET ], + + 'CAPTIVA!!' => [ + 'CAPTIVA PAD 7' => [ 'Captiva', 'Pad 7', DeviceType::TABLET ], + 'CAPTIVA PAD 8' => [ 'Captiva', 'Pad 8', DeviceType::TABLET ], + 'CAPTIVA PAD 8 Pro' => [ 'Captiva', 'Pad 8 Pro', DeviceType::TABLET ], + 'CAPTIVA PAD 8 GPS' => [ 'Captiva', 'Pad 8 GPS', DeviceType::TABLET ], + 'CAPTIVA 9.7 Super FHD' => [ 'Captiva', 'Pad 9.7 Super FHD', DeviceType::TABLET ], + 'CAPTIVA PAD 10' => [ 'Captiva', 'Pad 10.1', DeviceType::TABLET ], + 'CAPTIVA PAD 10.1' => [ 'Captiva', 'Pad 10.1', DeviceType::TABLET ], + 'CAPTIVA 10.1 HD' => [ 'Captiva', 'Pad 10.1 HD', DeviceType::TABLET ], + 'CAPTIVA PAD 10.1 Quad FHD' => [ 'Captiva', 'Pad 10.1 Quad FHD', DeviceType::TABLET ], + 'CAPTIVA PAD 10.1 Quad FHD 3G' => [ 'Captiva', 'Pad 10.1 Quad FHD', DeviceType::TABLET ], + ], + + 'Carpad T5' => [ 'Carpad', 'T5' ], + 'Carpad T61 2g' => [ 'Carpad', 'T61' ], + 'CAL21' => [ 'Casio', 'GzOne Type-L CAL21', 'carrier' => 'au' ], + 'CA201SP' => [ 'Casio', 'GzOne CA-201SP' ], + 'CA-201L' => [ 'Casio', 'GzOne CA-201L' ], + 'IS11CA' => [ 'Casio', 'GzOne Commando IS11CA', 'carrier' => 'au' ], + 'C771' => [ 'Casio', 'GzOne Commando' ], + 'C811 4G' => [ 'Casio', 'GzOne Commando 811' ], + 'VX-100' => [ 'Casio', 'VX-100 EPOS Terminal', DeviceType::POS ], + + 'Casper VIA!!' => [ + 'Casper VIA A3216' => [ 'Casper', 'VIA A3216' ], + 'Casper VIA A6108' => [ 'Casper', 'VIA A6108' ], + 'Casper VIA V4' => [ 'Casper', 'VIA V4' ], + 'Casper VIA V5' => [ 'Casper', 'VIA V5' ], + 'Casper VIA V8' => [ 'Casper', 'VIA V8' ], + ], + + 'B15' => [ 'CAT', 'B15' ], + 'B15Q' => [ 'CAT', 'B15Q' ], + 'S30' => [ 'CAT', 'S30' ], + 'S40' => [ 'CAT', 'S40' ], + 'S50' => [ 'CAT', 'S50' ], + 'S50c' => [ 'CAT', 'S50c' ], + + 'CAT!!' => [ + 'Cat Comet' => [ 'CAT', 'COMET', DeviceType::TABLET ], + 'CAT NOVA' => [ 'CAT', 'NOVA', DeviceType::TABLET ], + 'Cat Tablet Android 4.0.4' => [ 'CAT', 'NOVA', DeviceType::TABLET ], + 'CatNova8' => [ 'CAT', 'NOVA8', DeviceType::TABLET ], + 'Cat Tablet PHOENIX 8J0' => [ 'CAT', 'PHOENIX', DeviceType::TABLET ], + 'Cat Tablet PHOENIX 8.1J0' => [ 'CAT', 'PHOENIX', DeviceType::TABLET ], + 'Cat Tablet Galactica 9[.,]7CA!' => [ 'CAT', 'GALACTICA', DeviceType::TABLET ], + 'Cat Tablet Galactica X 9[.,]7CA!' => [ 'CAT', 'GALACTICA X', DeviceType::TABLET ], + 'Cat Tablet GalacticaX 9.7JA' => [ 'CAT', 'GALACTICA X', DeviceType::TABLET ], + 'Cat Tablet PEGASUS T 8J0' => [ 'CAT', 'PEGASUS', DeviceType::TABLET ], + 'Cat StarGate' => [ 'CAT', 'STARGATE', DeviceType::TABLET ], + 'Cat Tablet CSG 7J0' => [ 'CAT', 'STARGATE', DeviceType::TABLET ], + 'Cat Tablet StarGate 2' => [ 'CAT', 'STARGATE 2', DeviceType::TABLET ], + 'Cat Tablet CSG2 7.1J0' => [ 'CAT', 'STARGATE 2', DeviceType::TABLET ], + ], + + 'SK351' => [ 'CCE', 'Motion.Plus SK351' ], + 'CCE SK352' => [ 'CCE', 'Motion.Plus SK352' ], + + 'Celkon!!' => [ + 'Celkon A8+' => [ 'Celkon', 'A8+' ], + 'CELKON A9 Dual' => [ 'Celkon', 'A9' ], + 'CELKON A9+' => [ 'Celkon', 'A9+' ], + 'Celkon A10' => [ 'Celkon', 'Campus A10' ], + 'Celkon A15' => [ 'Celkon', 'Campus A15' ], + 'Celkon A15K' => [ 'Celkon', 'Campus A15K' ], + 'Celkon A20' => [ 'Celkon', 'Campus A20' ], + 'Celkon A21' => [ 'Celkon', 'A21' ], + 'Celkon A 22' => [ 'Celkon', 'A22' ], + 'Celkon A27' => [ 'Celkon', 'A27' ], + 'Celkon A35K' => [ 'Celkon', 'A35K' ], + 'Celkon A43' => [ 'Celkon', 'A43' ], + 'Celkon A58' => [ 'Celkon', 'A58' ], + 'Celkon A 59' => [ 'Celkon', 'A59' ], + 'Celkon A62' => [ 'Celkon', 'A62' ], + 'Celkon A 63' => [ 'Celkon', 'A63' ], + 'CELKON A64' => [ 'Celkon', 'A64' ], + 'Celkon A66' => [ 'Celkon', 'A66' ], + 'Celkon A67' => [ 'Celkon', 'A67' ], + 'Celkon A75' => [ 'Celkon', 'A75' ], + 'Celkon A 77' => [ 'Celkon', 'A77' ], + 'Celkon A79' => [ 'Celkon', 'A79' ], + 'CELKON A83' => [ 'Celkon', 'A83' ], + 'Celkon A 85' => [ 'Celkon', 'A85' ], + 'Celkon*A86' => [ 'Celkon', 'A86' ], + 'Celkon A88' => [ 'Celkon', 'A88' ], + 'CELKON A 90' => [ 'Celkon', 'A90' ], + 'Celkon*A95*Pro' => [ 'Celkon', 'A95 Pro' ], + 'Celkon A97' => [ 'Celkon', 'A97' ], + 'Celkon A98' => [ 'Celkon', 'A98' ], + 'Celkon A101' => [ 'Celkon', 'A101' ], + 'Celkon A105+' => [ 'Celkon', 'Signature Vista A105+' ], + 'Celkon A107' => [ 'Celkon', 'Signature One A107' ], + 'Celkon A107+' => [ 'Celkon', 'Signature One A107+' ], + 'Celkon A112' => [ 'Celkon', 'Signature Swift A112' ], + 'Celkon A118' => [ 'Celkon', 'Signature HD A118' ], + 'Celkon A119' => [ 'Celkon', 'Signature HD A119' ], + 'Celkon A119Q' => [ 'Celkon', 'Signature HD A119Q' ], + 'Celkon A125' => [ 'Celkon', 'Campus A125' ], + 'Celkon A 200' => [ 'Celkon', 'A200' ], + 'Celkon A200' => [ 'Celkon', 'A200' ], + 'Celkon A 220' => [ 'Celkon', 'A220' ], + 'Celkon A 225' => [ 'Celkon', 'A225' ], + 'Celkon A404' => [ 'Celkon', 'Campus Buddy A404' ], + 'Celkon A500' => [ 'Celkon', 'Signature Two A500' ], + 'Celkon A900' => [ 'Celkon', 'A900' ], + 'Celkon A.R 40' => [ 'Celkon', 'AR40' ], + 'Celkon A.R 45' => [ 'Celkon', 'AR45' ], + 'Celkon A.R 50' => [ 'Celkon', 'AR50' ], + 'Celkon C720' => [ 'Celkon', 'C720', DeviceType::TABLET ], + 'CELKON CT2' => [ 'Celkon', 'CT2', DeviceType::TABLET ], + 'Celkon CT3' => [ 'Celkon', 'CT3', DeviceType::TABLET ], + 'Celkon CT7' => [ 'Celkon', 'CT7', DeviceType::TABLET ], + 'Celkon CT 9' => [ 'Celkon', 'CT9', DeviceType::TABLET ], + 'CELKON CT 888' => [ 'Celkon', 'CT888', DeviceType::TABLET ], + 'Celkon CT 910' => [ 'Celkon', 'CT910', DeviceType::TABLET ], + 'Celkon CT 910+' => [ 'Celkon', 'CT910+', DeviceType::TABLET ], + 'Celkon IQ180' => [ 'Celkon', 'IQ180' ], + 'Celkon S1' => [ 'Celkon', 'S1' ], + 'Celkon Q405' => [ 'Celkon', 'Campus Q405' ], + 'CELKON Q450' => [ 'Celkon', 'Millennia Q450' ], + 'Celkon Q455' => [ 'Celkon', 'Millennium Vogue Q455' ], + 'Celkon Q470' => [ 'Celkon', 'Millennium Elite Q470' ], + 'Celkon Q500' => [ 'Celkon', 'Millennium Ultra Q500' ], + 'Celkon Q550' => [ 'Celkon', 'Millennia Epic Q550' ], + 'Celkon Q3000' => [ 'Celkon', 'Millennia Power Q3000' ], + ], + + 'A89' => [ 'Celkon', 'A89' ], + 'A95' => [ 'Celkon', 'A95' ], + 'A97i' => [ 'Celkon', 'A97i' ], + 'CT-1' => [ 'Celkon', 'CT1', DeviceType::TABLET ], + 'CT910' => [ 'Celkon', 'CT910', DeviceType::TABLET ], + 'W820' => [ 'Cellon', 'HW-W820' ], + + 'ChangHong!!' => [ + 'ChangHong-Z-ME' => [ 'ChangHong', 'Z-me' ], + 'ChanghongA898T' => [ 'ChangHong', 'A898T' ], + 'ChanghongC100' => [ 'ChangHong', 'C100' ], + 'ChanghongC600' => [ 'ChangHong', 'C600' ], + 'ChanghongC770' => [ 'ChangHong', 'C770' ], + 'ChanghongC800' => [ 'ChangHong', 'C800' ], + 'Changhong H5018' => [ 'ChangHong', 'H5018' ], + 'ChangHongV5t' => [ 'ChangHong', 'V5t' ], + 'ChangHong ?V7!' => [ 'ChangHong', 'V7' ], + 'ChonghongV8' => [ 'ChangHong', 'V8' ], + 'ChangHongV11t' => [ 'ChangHong', 'V11t' ], + 'ChangHongW3' => [ 'ChangHong', 'W3' ], + 'ChangHong W3' => [ 'ChangHong', 'W3' ], + 'ChanghongW6' => [ 'ChangHong', 'W6' ], + 'ChanghongW7' => [ 'ChangHong', 'W7' ], + 'ChangHong W8' => [ 'ChangHong', 'W8' ], + 'ChangHong W22' => [ 'ChangHong', 'W22' ], + 'ChangHong ?Z1!' => [ 'ChangHong', 'Z1' ], + 'ChanghongZ3t' => [ 'ChangHong', 'Z3t' ], + 'ChangHongZ9' => [ 'ChangHong', 'Z9' ], + 'changhong TV' => [ 'ChangHong', null ], + ], + + 'CHER!!' => [ + 'CHER A50' => [ 'Cher', 'A50' ], + 'CHER A55w' => [ 'Cher', 'A55w' ], + 'CHER A90' => [ 'Cher', 'A90' ], + 'CHER A91' => [ 'Cher', 'A91' ], + ], + + 'PC1038' => [ 'Cherry', 'Pro-Line 2', DeviceType::TABLET ], + 'Candy TV' => [ 'Cherry Mobile', 'Candy TV' ], + 'Titan TV S320' => [ 'Cherry Mobile', 'Titan TV' ], + 'Flame2' => [ 'Cherry Mobile', 'Flame 2.0' ], + 'Flare S100' => [ 'Cherry Mobile', 'Flare' ], + 'Flare 2.0' => [ 'Cherry Mobile', 'Flare 2.0' ], + 'Flare 2.1' => [ 'Cherry Mobile', 'Flare 2.1' ], + 'Flare2X' => [ 'Cherry Mobile', 'Flare 2X' ], + 'Blaze S180' => [ 'Cherry Mobile', 'Blaze S180' ], + 'Burst S280' => [ 'Cherry Mobile', 'Burst W280' ], + 'Cherry Mobile Burst' => [ 'Cherry Mobile', 'Burst W280' ], + 'Cherry Life' => [ 'Cherry Mobile', 'Life' ], + 'Cherry Razor' => [ 'Cherry Mobile', 'Razor' ], + 'Cherry Mobile Razor' => [ 'Cherry Mobile', 'Razor' ], + 'CHERRY SNAP' => [ 'Cherry Mobile', 'Snap' ], + 'Cherry Sonic' => [ 'Cherry Mobile', 'Sonic' ], + 'Cherry thunder2.0' => [ 'Cherry Mobile', 'Thunder 2.0' ], + 'Thunder S220' => [ 'Cherry Mobile', 'Thunder S220' ], + 'H120' => [ 'Cherry Mobile', 'H120' ], + 'W200' => [ 'Cherry Mobile', 'W200' ], + 'Cherry Mobile Amber W380' => [ 'Cherry Mobile', 'Amber W380' ], + 'Cherry w500' => [ 'Cherry Mobile', 'W500' ], + 'W900' => [ 'Cherry Mobile', 'W900' ], + 'Fusion Bolt' => [ 'Cherry Mobile', 'Fusion Bolt', DeviceType::TABLET ], + + 'LA-!!' => [ + 'LA-E' => [ 'Chili', 'E' ], + 'LA-I' => [ 'Chili', 'I' ], + 'LA-I2' => [ 'Chili', 'I2' ], + 'LA-M1' => [ 'Chili', 'M1' ], + 'LA-M1Y' => [ 'Chili', 'M1Y' ], + 'LA-M2' => [ 'Chili', 'M2' ], + 'LA-Q1' => [ 'Chili', 'Q1' ], + ], + + 'M701C' => [ 'China Tablet', 'M701C', DeviceType::TABLET ], + 'TR720F' => [ 'China Tablet', 'TR720F', DeviceType::TABLET ], + 'ARMM2V' => [ 'chinaleap', 'ARMM2V', DeviceType::TABLET ], + 'ARMM3V' => [ 'chinaleap', 'ARMM3V', DeviceType::TABLET ], + 'V936' => [ 'Chiva', 'V936' ], + + 'CHUWI!!' => [ + 'CHUWI V3' => [ 'Chuwi', 'V3', DeviceType::TABLET ], + 'CHUWI-V8-HD' => [ 'Chuwi', 'V8 HD', DeviceType::TABLET ], + 'CHUWI V9' => [ 'Chuwi', 'V9', DeviceType::TABLET ], + ], + + 'cius' => [ 'Cisco', 'Cius', DeviceType::TABLET ], + 'CIUS-7!' => [ 'Cisco', 'Cius', DeviceType::TABLET ], + + 'CP-DX!!' => [ + 'CP-DX70' => [ 'Cisco', 'DX70', DeviceType::TABLET ], + 'CP-DX80' => [ 'Cisco', 'DX80', DeviceType::TABLET ], + 'CP-DX650' => [ 'Cisco', 'DX650', DeviceType::TABLET ], + ], + + 'Citycall!!' => [ + 'Citycall A1' => [ 'Citycall', 'A1' ], + 'Citycall i310+' => [ 'Citycall', 'i310+' ], + 'Citycall i930+' => [ 'Citycall', 'i930+' ], + ], + + 'Clarion Mirage 2' => [ 'Clarion', 'Mirage 2', DeviceType::CAR ], + + '(Cloudfone|CloudPad|Excite|Thrill)!!' => [ + 'Cloudfone Excite320e' => [ 'Cloudfone', 'Excite 320e' ], + 'Cloudfone Excite320g' => [ 'Cloudfone', 'Excite 320g' ], + 'Cloudfone Excite350e' => [ 'Cloudfone', 'Excite 350e' ], + 'Cloudfone Excite350g' => [ 'Cloudfone', 'Excite 350g' ], + 'Cloudfone Excite 350g' => [ 'Cloudfone', 'Excite 350g' ], + 'Cloudfone Excite 350i' => [ 'Cloudfone', 'Excite 350i' ], + 'Cloudfone Excite 354g' => [ 'Cloudfone', 'Excite 354g' ], + 'Cloudfone Excite 400d' => [ 'Cloudfone', 'Excite 400d' ], + 'Cloudfone Excite 402d' => [ 'Cloudfone', 'Excite 402d' ], + 'Excite 402d' => [ 'Cloudfone', 'Excite 402d' ], + 'Cloudfone Excite 452q' => [ 'Cloudfone', 'Excite 452q' ], + 'Cloudfone Excite 500d' => [ 'Cloudfone', 'Excite 500d' ], + 'Excite 501o' => [ 'Cloudfone', 'Excite 501o' ], + 'Cloudfone Excite 502q' => [ 'Cloudfone', 'Excite 502q' ], + 'Cloudfone GEO 400q+' => [ 'Cloudfone', 'Geo 400q' ], + 'Cloudfone GEO 402q' => [ 'Cloudfone', 'Geo 402q' ], + 'Cloudfone ICE 2Gs' => [ 'Cloudfone', 'Ice 2Gs' ], + 'cloudfone ice 350e!' => [ 'Cloudfone', 'Ice 350e' ], + 'Cloudfone ICE 500e' => [ 'Cloudfone', 'Ice 500e' ], + 'Cloudfone Thrill 400g' => [ 'Cloudfone', 'Thrill 400g' ], + 'Cloudfone Thrill 430d' => [ 'Cloudfone', 'Thrill 430d' ], + 'Cloudfone Thrill 430g' => [ 'Cloudfone', 'Thrill 430g' ], + 'Thrill 430x' => [ 'Cloudfone', 'Thrill 430x' ], + 'Cloudfone Thrill 500g' => [ 'Cloudfone', 'Thrill 500g' ], + 'Thrill 530qx' => [ 'Cloudfone', 'Thrill 530qx' ], + 'CloudPad 700d' => [ 'Cloudfone', 'CloudPad 700d' ], + 'CloudPad 700w' => [ 'Cloudfone', 'CloudPad 700w' ], + 'CloudPad 700TV' => [ 'Cloudfone', 'CloudPad 700tv' ], + 'CloudPad 701tv' => [ 'Cloudfone', 'CloudPad 701tv' ], + 'Cloudpad 705w' => [ 'Cloudfone', 'CloudPad 705w' ], + 'CloudPad 707qw' => [ 'Cloudfone', 'CloudPad 707qw' ], + 'Cloudpad 800d' => [ 'Cloudfone', 'CloudPad 800d' ], + ], + + 'CW[- ]!!' => [ + 'CW V7 SIM' => [ 'Chuwi', 'V7' ], + 'CW V8 Dual' => [ 'Chuwi', 'V8' ], + 'CW-V9 DUAL' => [ 'Chuwi', 'V9' ], + 'CW-V17HD' => [ 'Chuwi', 'V17HD' ], + 'CW-V18' => [ 'Chuwi', 'V18' ], + 'CW V70' => [ 'Chuwi', 'V70' ], + 'CW V80' => [ 'Chuwi', 'V80' ], + 'CW-V88-QUAD' => [ 'Chuwi', 'V88' ], + 'CW-V88S' => [ 'Chuwi', 'V88s' ], + 'CW-V88S-QUAD' => [ 'Chuwi', 'V88s' ], + 'CW-V99' => [ 'Chuwi', 'V99' ], + 'CW-V99-QUAD' => [ 'Chuwi', 'V99' ], + 'CW-VX8-3G' => [ 'Chuwi', 'VX8 3G' ], + ], + + 'V17HD' => [ 'Chuwi', 'V17HD' ], + 'AQUILA 080-1008' => [ 'CMX', 'Aquila 080-1008', DeviceType::TABLET ], + 'AQUILA 097-1006' => [ 'CMX', 'Aquila 097-1006', DeviceType::TABLET ], + 'Clanga 079-1016' => [ 'CMX', 'Clanga 079-1016', DeviceType::TABLET ], + 'Clanga 097-2016' => [ 'CMX', 'Clanga 097-2016', DeviceType::TABLET ], + 'Clanga SE 097-1008' => [ 'CMX', 'Clanga SE 097-1008', DeviceType::TABLET ], + 'RAPAXSE080-0508' => [ 'CMX', 'Rapax SE 080-0508', DeviceType::TABLET ], + + 'CnM!!' => [ + 'CnM TouchPad 7' => [ 'CnM', 'TouchPad 7', DeviceType::TABLET ], + 'CnM-TOUCHPAD 7' => [ 'CnM', 'TouchPad 7', DeviceType::TABLET ], + 'CnM-TOUCHPAD7' => [ 'CnM', 'TouchPad 7', DeviceType::TABLET ], + 'CnM TouchPad 7DC' => [ 'CnM', 'TouchPad 7 DC', DeviceType::TABLET ], + 'CnM-TP-8DC-16-B' => [ 'CnM', 'TouchPad 7 DC', DeviceType::TABLET ], + 'CnM TouchPad 9DC' => [ 'CnM', 'TouchPad 8 DC', DeviceType::TABLET ], + 'CnM TOUCHPAD 9' => [ 'CnM', 'TouchPad 9', DeviceType::TABLET ], + 'CnM-TOUCHPAD9' => [ 'CnM', 'TouchPad 9', DeviceType::TABLET ], + 'Cnm TOUCHPAD 9.7' => [ 'CnM', 'TouchPad 9.7', DeviceType::TABLET ], + 'CnM-TP-10DC-16-B' => [ 'CnM', 'TouchPad 10 DC', DeviceType::TABLET ], + 'CnM TouchPad 10.1DC' => [ 'CnM', 'TouchPad 10.1 DC', DeviceType::TABLET ], + ], + + 'MID[0-9]{4,4}!!' => [ + 'MID1024' => [ 'Coby', 'Kyros MID1024', DeviceType::TABLET ], + 'MID1042' => [ 'Coby', 'Kyros MID1042', DeviceType::TABLET ], + 'MID1045' => [ 'Coby', 'Kyros MID1045', DeviceType::TABLET ], + 'MID1048' => [ 'Coby', 'Kyros MID1048', DeviceType::TABLET ], + 'MID1060' => [ 'Coby', 'Kyros MID1060', DeviceType::TABLET ], + 'MID1065' => [ 'Coby', 'Kyros MID1065', DeviceType::TABLET ], + 'MID1125' => [ 'Coby', 'Kyros MID1125', DeviceType::TABLET ], + 'MID1126' => [ 'Coby', 'Kyros MID1126', DeviceType::TABLET ], + 'MID4331' => [ 'Coby', 'Kyros MID4331', DeviceType::MEDIA ], + 'MID7002' => [ 'Coby', 'Kyros MID7002', DeviceType::TABLET ], + 'MID7005' => [ 'Coby', 'Kyros MID7005', DeviceType::TABLET ], + 'MID7010' => [ 'Coby', 'Kyros MID7010', DeviceType::TABLET ], + 'MID7011' => [ 'Coby', 'Kyros MID7011', DeviceType::TABLET ], + 'MID7012' => [ 'Coby', 'Kyros MID7012', DeviceType::TABLET ], + 'MID7014' => [ 'Coby', 'Kyros MID7014', DeviceType::TABLET ], + 'MID7015!' => [ 'Coby', 'Kyros MID7015', DeviceType::TABLET ], + 'MID7016' => [ 'Coby', 'Kyros MID7016', DeviceType::TABLET ], + 'MID7020' => [ 'Coby', 'Kyros MID7020', DeviceType::TABLET ], + 'MID7022' => [ 'Coby', 'Kyros MID7022', DeviceType::TABLET ], + 'MID7024' => [ 'Coby', 'Kyros MID7024', DeviceType::TABLET ], + 'MID7025' => [ 'Coby', 'Kyros MID7025', DeviceType::TABLET ], + 'MID7032' => [ 'Coby', 'Kyros MID7032', DeviceType::TABLET ], + 'MID7033' => [ 'Coby', 'Kyros MID7033', DeviceType::TABLET ], + 'MID7034' => [ 'Coby', 'Kyros MID7034', DeviceType::TABLET ], + 'MID7035' => [ 'Coby', 'Kyros MID7035', DeviceType::TABLET ], + 'MID7036' => [ 'Coby', 'Kyros MID7036', DeviceType::TABLET ], + 'MID7038' => [ 'Coby', 'Kyros MID7038', DeviceType::TABLET ], + 'MID7042' => [ 'Coby', 'Kyros MID7042', DeviceType::TABLET ], + 'MID7046' => [ 'Coby', 'Kyros MID7046', DeviceType::TABLET ], + 'MID7047' => [ 'Coby', 'Kyros MID7047', DeviceType::TABLET ], + 'MID7048' => [ 'Coby', 'Kyros MID7048', DeviceType::TABLET ], + 'MID7051' => [ 'Coby', 'Kyros MID7051', DeviceType::TABLET ], + 'MID7052' => [ 'Coby', 'Kyros MID7052', DeviceType::TABLET ], + 'MID7055' => [ 'Coby', 'Kyros MID7052', DeviceType::TABLET ], + 'MID7065' => [ 'Coby', 'Kyros MID7065', DeviceType::TABLET ], + 'MID7120' => [ 'Coby', 'Kyros MID7120', DeviceType::TABLET ], + 'MID7125' => [ 'Coby', 'Kyros MID7125', DeviceType::TABLET ], + 'MID7127' => [ 'Coby', 'Kyros MID7127', DeviceType::TABLET ], + 'MID8024' => [ 'Coby', 'Kyros MID8024', DeviceType::TABLET ], + 'MID8042' => [ 'Coby', 'Kyros MID8042', DeviceType::TABLET ], + 'MID8048' => [ 'Coby', 'Kyros MID8048', DeviceType::TABLET ], + 'MID8065' => [ 'Coby', 'Kyros MID8065', DeviceType::TABLET ], + 'MID8120' => [ 'Coby', 'Kyros MID8120', DeviceType::TABLET ], + 'MID8125' => [ 'Coby', 'Kyros MID8125', DeviceType::TABLET ], + 'MID8127' => [ 'Coby', 'Kyros MID8127', DeviceType::TABLET ], + 'MID8128' => [ 'Coby', 'Kyros MID8128', DeviceType::TABLET ], + 'MID9042' => [ 'Coby', 'Kyros MID9042', DeviceType::TABLET ], + 'MID9724' => [ 'Coby', 'Kyros MID9724', DeviceType::TABLET ], + 'MID9740' => [ 'Coby', 'Kyros MID9740', DeviceType::TABLET ], + 'MID9742' => [ 'Coby', 'Kyros MID9742', DeviceType::TABLET ], + 'MID9760' => [ 'Coby', 'Kyros MID9760', DeviceType::TABLET ], + ], + + 'Ultimix!!' => [ + 'Ultimix77' => [ 'Codegen', 'Ultimix 77', DeviceType::TABLET ], + 'Ultimix 88' => [ 'Codegen', 'Ultimix 88', DeviceType::TABLET ], + 'Ultimix99' => [ 'Codegen', 'Ultimix 99', DeviceType::TABLET ], + ], + + 'BLADE LE 70' => [ 'COMMAX', 'BLADE LE 70', DeviceType::TABLET ], + + 'Commodore!!' => [ + 'Commodore IS-7107C' => [ 'Commodore', 'IS-7107C', DeviceType::TABLET ], + 'Commodore IS-7107C' => [ 'Commodore', 'IS-7107C', DeviceType::TABLET ], + ], + + 'Z71' => [ 'Commtiva', 'Z71' ], + 'V-T100' => [ 'Commtiva', 'V-T100' ], + 'FIH-FB0' => [ 'Commtiva', 'HD700'], + 'Commtiva-HD710' => [ 'Commtiva', 'HD710'], + 'Commtiva-N700' => [ 'Commtiva', 'N700'], + 'Connspeed IP71' => [ 'Connspeed', 'IP71' ], + + '(Colorfly|CT[0-9]{3,3})!!' => [ + 'Colorfly CT102 Qise 3' => [ 'Colorfly', 'CT102 Qise 3', DeviceType::TABLET ], + 'CT704 D·Bok' => [ 'Colorfly', 'CT704 D·Bok', DeviceType::TABLET ], + 'CT801 Eyas' => [ 'Colorfly', 'CT801 Eyas', DeviceType::TABLET ], + 'CT801 Q.Ait' => [ 'Colorfly', 'CT801 Q·Ait', DeviceType::TABLET ], + 'Colorfly CT972Q·Vanilla' => [ 'Colorfly', 'CT972 Q·Vanilla', DeviceType::TABLET ], + 'Colorfly CT972Q·Vanilla' => [ 'Colorfly', 'CT972 Q·Vanilla', DeviceType::TABLET ], + 'Colorfly CT972Q·Vanilla' => [ 'Colorfly', 'CT972 Q·Vanilla', DeviceType::TABLET ], + 'CT972 Q.Vanilla 2' => [ 'Colorfly', 'CT972 Q·Vanilla 2', DeviceType::TABLET ], + 'CT974 Ivory 3' => [ 'Colorfly', 'CT974 Ivory 3', DeviceType::TABLET ], + 'Colorfly E708' => [ 'Colorfly', 'E708', DeviceType::TABLET ], + 'Colorfly E708 Q1' => [ 'Colorfly', 'E708 Q1', DeviceType::TABLET ], + 'Colorfly E708 Q1s' => [ 'Colorfly', 'E708 Q1s', DeviceType::TABLET ], + 'Colorfly E708 Q2' => [ 'Colorfly', 'E708 Q2', DeviceType::TABLET ], + 'Colorfly G708' => [ 'Colorfly', 'G708', DeviceType::TABLET ], + 'Colorfly S782 Q1' => [ 'Colorfly', 'S782 Q1', DeviceType::TABLET ], + 'Colorfly U781 Q1' => [ 'Colorfly', 'U781 Q1', DeviceType::TABLET ], + ], + + 'K11' => [ 'Colors', 'K11' ], + + 'Colors!!' => [ + 'Colors K22' => [ 'Colors', 'K22' ], + 'Colors X27' => [ 'Colors', 'Xfactor Wave X27' ], + 'Colors X45' => [ 'Colors', 'X45' ], + 'Colors X115' => [ 'Colors', 'Xfactor Quad II X115' ], + ], + + 'ConCorde!!' => [ + 'ConCorde SmartPhone 4300' => [ 'ConCorde', 'SmartPhone 4300' ], + 'ConCorde SmartPhone5000' => [ 'ConCorde', 'SmartPhone 5000' ], + 'ConCorde Smartphone 5005 NFC' => [ 'ConCorde', 'SmartPhone 5005 NFC' ], + 'ConCorde SmartPhone5700' => [ 'ConCorde', 'SmartPhone 5700' ], + 'ConCorde SmartPhone6500' => [ 'ConCorde', 'SmartPhone 6500' ], + 'ConCorde tab 9.7IPS PLUS' => [ 'ConCorde', 'tab 9.7IPS Plus', DeviceType::TABLET ], + 'ConCorde tab NOVUM' => [ 'ConCorde', 'tab NOVUM', DeviceType::TABLET ], + 'Concorde Tab Omega 3G' => [ 'ConCorde', 'tab OMEGA', DeviceType::TABLET ], + 'ConCorde tab PLAY' => [ 'ConCorde', 'tab PLAY', DeviceType::TABLET ], + 'ConCorde tab Speed' => [ 'ConCorde', 'tab SPEED', DeviceType::TABLET ], + 'ConCorde Tab T10' => [ 'ConCorde', 'tab T10', DeviceType::TABLET ], + ], + + 'Coolgen!!' => [ + 'Coolgen E68+' => [ 'Coolgen', 'E68+' ], + 'Coolgen E69+' => [ 'Coolgen', 'E69+' ], + 'Coolgen E70' => [ 'Coolgen', 'E70' ], + 'Coolgen E70 G' => [ 'Coolgen', 'E70 G' ], + 'Coolgen E71' => [ 'Coolgen', 'E71' ], + 'Coolgen E72 Note 3G' => [ 'Coolgen', 'E72' ], + 'Coolgen E72 Note8' => [ 'Coolgen', 'E72' ], + ], + + 'Coolpad!!' => [ + 'Coolpad A8-531' => [ 'Coolpad', 'A8-531' ], + 'Coolpad D510' => [ 'Coolpad', 'D510' ], + 'Coolpad D530' => [ 'Coolpad', 'D530' ], + 'Coolpad D530TW' => [ 'Coolpad', 'D530' ], + 'Coolpad D539' => [ 'Coolpad', 'D539' ], + 'Coolpad E239' => [ 'Coolpad', 'E239' ], + 'Coolpad E501!' => [ 'Coolpad', 'E501' ], + 'Coolpad E560' => [ 'Coolpad', 'E560' ], + 'Coolpad F101' => [ 'Coolpad', 'F101' ], + 'Coolpad F103' => [ 'Coolpad', 'F103' ], + 'Coolpad N930' => [ 'Coolpad', 'N930' ], + 'Coolpad N950' => [ 'Coolpad', 'N950' ], + 'Coolpad R106' => [ 'Coolpad', 'R106' ], + 'Coolpad S6-NT' => [ 'Coolpad', 'S6-NT' ], + 'Coolpad T1' => [ 'Coolpad', 'T1' ], + 'Coolpad T2-C01' => [ 'Coolpad', 'T2' ], + 'Coolpad V1-C' => [ 'Coolpad', 'Bodun' ], + 'Coolpad W706!' => [ 'Coolpad', 'W706' ], + 'Coolpad W708' => [ 'Coolpad', 'W708' ], + 'Coolpad Y1' => [ 'Coolpad', 'Y1' ], + 'Coolpad Y60!' => [ 'Coolpad', 'Y60' ], + 'Coolpad Y70!' => [ 'Coolpad', 'Y70' ], + 'Coolpad Y71!' => [ 'Coolpad', 'Y71' ], + 'Coolpad Y75!' => [ 'Coolpad', 'Y75' ], + 'Coolpad Y76!' => [ 'Coolpad', 'Y76' ], + 'Coolpad Y80!' => [ 'Coolpad', 'Y80' ], + 'Coolpad Y82!' => [ 'Coolpad', 'Y82' ], + 'Coolpad 3300A' => [ 'Coolpad', '3300A' ], + 'Coolpad 3320A' => [ 'Coolpad', '3320A' ], + 'Coolpad 5010' => [ 'Coolpad', '5010' ], + 'Coolpad 5108' => [ 'Coolpad', '5108' ], + 'Coolpad 5109' => [ 'Coolpad', '5109' ], + 'Coolpad 5110' => [ 'Coolpad', '5110' ], + 'Coolpad 5200' => [ 'Coolpad', '5200' ], + 'Coolpad 5200S' => [ 'Coolpad', '5200S' ], + 'Coolpad 5210!' => [ 'Coolpad', '5210' ], + 'Coolpad 5211' => [ 'Coolpad', '5211' ], + 'Coolpad 5213' => [ 'Coolpad', '5213' ], + 'Coolpad 5216!' => [ 'Coolpad', '5216' ], + 'Coolpad 5217' => [ 'Coolpad', '5217' ], + 'Coolpad 5218!' => [ 'Coolpad', '5218' ], + 'Coolpad 5219' => [ 'Coolpad', '5219' ], + 'Coolpad 5230!' => [ 'Coolpad', '5230' ], + 'Coolpad 5261!' => [ 'Coolpad', '5261' ], + 'Coolpad 5263!' => [ 'Coolpad', '5263' ], + 'Coolpad 5310' => [ 'Coolpad', '5310' ], + 'Coolpad 5311' => [ 'Coolpad', '5311' ], + 'Coolpad 5313' => [ 'Coolpad', '5313' ], + 'Coolpad 5313S' => [ 'Coolpad', '5313S' ], + 'Coolpad 5316' => [ 'Coolpad', '5316' ], + 'Coolpad 5360' => [ 'Coolpad', '5360' ], + 'Coolpad 5820' => [ 'Coolpad', '5820' ], + 'Coolpad 5832' => [ 'Coolpad', '5832' ], + 'Coolpad 5860!' => [ 'Coolpad', '5860' ], + 'Coolpad 5870' => [ 'Coolpad', '5870' ], + 'Coolpad 5872' => [ 'Coolpad', '5872' ], + 'Coolpad 5876' => [ 'Coolpad', '5876' ], + 'Coolpad 5879' => [ 'Coolpad', '5879' ], + 'Coolpad 5879T' => [ 'Coolpad', '5879T' ], + 'Coolpad 5880' => [ 'Coolpad', '5880' ], + 'Coolpad 5890' => [ 'Coolpad', '5890' ], + 'Coolpad 5891!' => [ 'Coolpad', '5891' ], + 'Coolpad 5892!' => [ 'Coolpad', '5892' ], + 'Coolpad 5910' => [ 'Coolpad', '5910' ], + 'Coolpad 5930' => [ 'Coolpad', '5930' ], + 'Coolpad 5950' => [ 'Coolpad', '5950' ], + 'Coolpad 5950T' => [ 'Coolpad', '5950T' ], + 'Coolpad 5951' => [ 'Coolpad', '5951' ], + 'Coolpad 5952' => [ 'Coolpad', '5952' ], + 'Coolpad 5956' => [ 'Coolpad', '5956' ], + 'Coolpad 7005' => [ 'Coolpad', '7005' ], + 'Coolpad 7011' => [ 'Coolpad', '7011' ], + 'Coolpad 7019!' => [ 'Coolpad', '7019' ], + 'Coolpad 7020' => [ 'Coolpad', '7020' ], + 'Coolpad 7060!' => [ 'Coolpad', '7060' ], + 'Coolpad 7061' => [ 'Coolpad', '7061' ], + 'Coolpad 7105' => [ 'Coolpad', '7105' ], + 'Coolpad 7230!' => [ 'Coolpad', '7230' ], + 'Coolpad 7231' => [ 'Coolpad', '7231' ], + 'Coolpad 7232' => [ 'Coolpad', '7232' ], + 'Coolpad 7235' => [ 'Coolpad', '7235' ], + 'Coolpad 7236' => [ 'Coolpad', '7236' ], + 'Coolpad 7251' => [ 'Coolpad', '7251' ], + 'Coolpad 7260!' => [ 'Coolpad', '7260' ], + 'Coolpad 7266' => [ 'Coolpad', '7266' ], + 'Coolpad 7268' => [ 'Coolpad', '7268' ], + 'Coolpad 7269' => [ 'Coolpad', '7269' ], + 'Coolpad 7270' => [ 'Coolpad', '7270' ], + 'Coolpad 7270 W00' => [ 'Coolpad', '7270' ], + 'Coolpad 7275' => [ 'Coolpad', '7275' ], + 'Coolpad 7290' => [ 'Coolpad', '7290' ], + 'Coolpad 7295!' => [ 'Coolpad', '7295' ], + 'Coolpad 7296' => [ 'Coolpad', '7296' ], + 'Coolpad 7296S' => [ 'Coolpad', '7296S' ], + 'Coolpad 7298A' => [ 'Coolpad', '7298A' ], + 'Coolpad 7298D' => [ 'Coolpad', '7298D' ], + 'Coolpad 7320' => [ 'Coolpad', '7320' ], + 'Coolpad 7560U' => [ 'Coolpad', '7560U' ], + 'Coolpad 7620L!' => [ 'Coolpad', '7620L' ], + 'Coolpad 7728' => [ 'Coolpad', '7728' ], + 'Coolpad 8010' => [ 'Coolpad', '8010' ], + 'Coolpad 8012' => [ 'Coolpad', '8012' ], + 'Coolpad 8013' => [ 'Coolpad', '8013' ], + 'Coolpad 8017!' => [ 'Coolpad', '8017' ], + 'Coolpad 8020!' => [ 'Coolpad', '8020' ], + 'Coolpad 8021' => [ 'Coolpad', '8021' ], + 'Coolpad 8022' => [ 'Coolpad', '8022' ], + 'Coolpad 8026' => [ 'Coolpad', '8026' ], + 'Coolpad 8028' => [ 'Coolpad', '8028' ], + 'Coolpad 8029' => [ 'Coolpad', '8029' ], + 'Coolpad 8050' => [ 'Coolpad', '8050' ], + 'Coolpad 8056' => [ 'Coolpad', '8056' ], + 'Coolpad -8056' => [ 'Coolpad', '8056' ], + 'Coolpad 8060' => [ 'Coolpad', '8060' ], + 'Coolpad 8070' => [ 'Coolpad', '8070' ], + 'Coolpad 8070D' => [ 'Coolpad', '8070D' ], + 'Coolpad 8071' => [ 'Coolpad', '8071' ], + 'Coolpad 8076' => [ 'Coolpad', '8076' ], + 'Coolpad -8076!' => [ 'Coolpad', '8076' ], + 'Coolpad 8076D' => [ 'Coolpad', '8076' ], + 'Coolpad 8079' => [ 'Coolpad', '8079' ], + 'Coolpad 8085' => [ 'Coolpad', '8085' ], + 'Coolpad 8085Q' => [ 'Coolpad', '8085' ], + 'Coolpad 8089' => [ 'Coolpad', '8089' ], + 'Coolpad 8105' => [ 'Coolpad', '8105' ], + 'Coolpad 8122' => [ 'Coolpad', '8122' ], + 'Coolpad 8150S' => [ 'Coolpad', '8150' ], + 'Coolpad -?8190!' => [ 'Coolpad', '8190' ], + 'Coolpad 8198T' => [ 'Coolpad', '8198T' ], + 'Coolpad 8295M' => [ 'Coolpad', '8295M' ], + 'Coolpad 8295!' => [ 'Coolpad', '8295' ], + 'Coolpad 8297!' => [ 'Coolpad', 'Dashen F1' ], + 'Coolpad F1 8297W' => [ 'Coolpad', 'Dashen F1' ], + 'Coolpad 8670' => [ 'Coolpad', 'Note 8670' ], + 'Coolpad 8675!' => [ 'Coolpad', 'Dashen F2' ], + 'Coolpad 8676!' => [ 'Coolpad', 'Note 3 8676' ], + 'Coolpad 8690!' => [ 'Coolpad', 'Dashen X7' ], + 'Coolpad 8702' => [ 'Coolpad', '8702' ], + 'Coolpad 8702D' => [ 'Coolpad', '8702D' ], + 'Coolpad 8705' => [ 'Coolpad', '8705' ], + 'Coolpad 8707' => [ 'Coolpad', '8707' ], + 'Coolpad 8713' => [ 'Coolpad', '8713' ], + 'Coolpad 8720L' => [ 'Coolpad', '8720L' ], + 'Coolpad 8720Q' => [ 'Coolpad', '8720Q' ], + 'Coolpad 8729' => [ 'Coolpad', '8729' ], + 'Coolpad 8730L' => [ 'Coolpad', '8730L' ], + 'Coolpad 8732' => [ 'Coolpad', '8732' ], + 'Coolpad 8735' => [ 'Coolpad', '8735' ], + 'Coolpad 8736' => [ 'Coolpad', '8736' ], + 'Coolpad 8750' => [ 'Coolpad', 'Xuan Ying SII 8750' ], + 'Coolpad 8809' => [ 'Coolpad', '8809' ], + 'Coolpad 8810' => [ 'Coolpad', '8810' ], + 'Coolpad 8811' => [ 'Coolpad', '8811' ], + 'Coolpad 8860!' => [ 'Coolpad', '8860' ], + 'Coolpad 8870!' => [ 'Coolpad', '8870' ], + 'Coolpad 8908' => [ 'Coolpad', '8908' ], + 'Coolpad 8920' => [ 'Coolpad', 'Quattro II 8920' ], + 'Coolpad 8970L' => [ 'Coolpad', 'Grand 4 8970' ], + 'Coolpad 8971' => [ 'Coolpad', '8971' ], + 'Coolpad 9070' => [ 'Coolpad', '9070+XO' ], + 'Coolpad 9080W' => [ 'Coolpad', '9080' ], + 'Coolpad 9120' => [ 'Coolpad', '9120' ], + 'Coolpad 9150' => [ 'Coolpad', 'Air 9150' ], + 'Coolpad 9150W' => [ 'Coolpad', 'Air 9150' ], + 'Coolpad 9190L!' => [ 'Coolpad', 'S6 9190' ], + 'Coolpad 9190 T00' => [ 'Coolpad', 'S6 9190' ], + 'Coolpad 9900' => [ 'Coolpad', '9900' ], + 'Coolpad 9960' => [ 'Coolpad', 'Grand HD 9960' ], + 'Coolpad 9970' => [ 'Coolpad', 'Grand 4 9970' ], + 'Coolpad 9976!' => [ 'Coolpad', '9976' ], + 'Coolpad Flo' => [ 'Coolpad', 'Flo' ], + ], + + 'D530' => [ 'Coolpad', 'D530' ], + 'D539' => [ 'Coolpad', 'D539' ], + 'E239' => [ 'Coolpad', 'E239' ], + 'N930' => [ 'Coolpad', 'N930' ], + 'W711' => [ 'Coolpad', 'W711' ], + 'CP3700A' => [ 'Coolpad', '3700A' ], + '5560S' => [ 'Coolpad', '5560S' ], + '5832' => [ 'Coolpad', '5832' ], + '5855' => [ 'Coolpad', '5855' ], + '5860' => [ 'Coolpad', '5860' ], + '5860A' => [ 'Coolpad', '5860A' ], + '5860E' => [ 'Coolpad', 'Quattro 4G 5860E' ], + '5860S' => [ 'Coolpad', '5860S' ], + '5870' => [ 'Coolpad', '5870' ], + '7260' => [ 'Coolpad', '7260' ], + '7266' => [ 'Coolpad', '7266' ], + '8022' => [ 'Coolpad', '8022' ], + '8190Q' => [ 'Coolpad', '8190' ], + '8720' => [ 'Coolpad', '8720' ], + '8720L' => [ 'Coolpad', '8720' ], + '8810' => [ 'Coolpad', '8810' ], + '801ES' => [ 'Coolpad', 'Quattro II 4G' ], + + 'COSHIP F2' => [ 'Coship', 'F2' ], + + 'COWON!!' => [ + 'COWON D3' => [ 'Cowon', 'D3 Plenue', DeviceType::MEDIA ], + 'COWON Z2' => [ 'Cowon', 'Z2 Plenue', DeviceType::MEDIA ], + ], + + 'COZCO C1 Plus' => [ 'Cozco', 'C1 Plus' ], + 'CLP281X' => [ 'Craig', 'CLP281x', DeviceType::TABLET ], + + 'CMP!!' => [ + 'CMP741d' => [ 'Craig', 'CMP741d', DeviceType::TABLET ], + 'CMP741E' => [ 'Craig', 'CMP741e', DeviceType::TABLET ], + 'CMP745E' => [ 'Craig', 'CMP745e', DeviceType::TABLET ], + 'CMP748' => [ 'Craig', 'CMP748', DeviceType::TABLET ], + 'CMP749' => [ 'Craig', 'CMP749', DeviceType::TABLET ], + 'CMP756' => [ 'Craig', 'CMP756', DeviceType::TABLET ], + 'CMP 765' => [ 'Craig', 'CMP765', DeviceType::TABLET ], + ], + + 'Zii!!' => [ + 'ZiiO7' => [ 'Creative', 'ZiiO 7', DeviceType::TABLET ], + 'ZiiLABS ZiiO7' => [ 'Creative', 'ZiiO 7', DeviceType::TABLET ], + 'ZiiLABS ZiiO10' => [ 'Creative', 'ZiiO 10', DeviceType::TABLET ], + 'ZiiLABS ZiiO10 ' => [ 'Creative', 'ZiiO 10', DeviceType::TABLET ], + 'ZiiLABS ZiiO10+' => [ 'Creative', 'ZiiO 10', DeviceType::TABLET ], + 'Zii EGG' => [ 'Creative', 'Zii Egg', DeviceType::MEDIA ], + ], + + 'CTP828BT' => [ 'Cresta', 'CTP828BT', DeviceType::TABLET ], + 'CRESTA.CTP888' => [ 'Cresta', 'CTP888', DeviceType::TABLET ], + + 'Cross!!' => [ + 'CROSS-A1' => [ 'Cross', 'A1' ], + 'Cross A2' => [ 'Cross', 'A2' ], + 'CROSS A5' => [ 'Cross', 'A5' ], + 'CROSS A5B' => [ 'Cross', 'A5B' ], + 'Cross A7*' => [ 'Cross', 'A7' ], + 'CROSS A7#' => [ 'Cross', 'A7' ], + 'Cross Andromeda A7*' => [ 'Cross', 'A7' ], + 'CROSS A7S' => [ 'Cross', 'A7S' ], + 'CROSSA7S' => [ 'Cross', 'A7S' ], + 'CROSS A10' => [ 'Cross', 'A10' ], + 'CROSS A11' => [ 'Cross', 'A11' ], + 'CrossA18' => [ 'Cross', 'A18' ], + 'CROSS-A20G' => [ 'Cross', 'A20G' ], + 'Cross A22' => [ 'Cross', 'A22' ], + 'Cross A25' => [ 'Cross', 'A25' ], + 'CROSS A26' => [ 'Cross', 'A26' ], + 'CROSS A27' => [ 'Cross', 'A27' ], + 'CROSS A28' => [ 'Cross', 'A28' ], + 'CROSS A66' => [ 'Cross', 'A66' ], + 'CROSS A88' => [ 'Cross', 'A88' ], + 'CROSS AT1' => [ 'Cross', 'AT1', DeviceType::TABLET ], + 'CROSS AT1G' => [ 'Cross', 'AT1G', DeviceType::TABLET ], + 'CROSS AT1G*' => [ 'Cross', 'AT1G', DeviceType::TABLET ], + ], + + 'Crosscall!!' => [ + 'Crosscall ELEMENT' => [ 'Crosscall', 'ELEMENT' ], + 'CROSSCALL WILD' => [ 'Crosscall', 'WILD' ], + ], + + 'Novapad!!' => [ + 'Novapad 70 D124 FC' => [ 'Crypto', 'NovaPad 70 D124', DeviceType::TABLET ], + 'Novapad 70 S124 FC' => [ 'Crypto', 'NovaPad 70 S124', DeviceType::TABLET ], + 'NovaPad80C104' => [ 'Crypto', 'NovaPad 80 C104', DeviceType::TABLET ], + 'NovaPad 80 C124' => [ 'Crypto', 'NovaPad 80 C124', DeviceType::TABLET ], + 'Novapad D7000' => [ 'Crypto', 'NovaPad D7000', DeviceType::TABLET ], + 'Novapad D7001' => [ 'Crypto', 'NovaPad D7001', DeviceType::TABLET ], + 'Novapad D7002' => [ 'Crypto', 'NovaPad D7002', DeviceType::TABLET ], + ], + + 'CUBOT!!' => [ + 'CUBOT C7' => [ 'Cubot', 'C7' ], + 'CUBOT C7+' => [ 'Cubot', 'C7+' ], + 'CUBOT C9+' => [ 'Cubot', 'C9+' ], + 'CUBOT C9W' => [ 'Cubot', 'C9W' ], + 'CUBOT C11' => [ 'Cubot', 'C11' ], + 'CUBOT GT72E' => [ 'Cubot', 'GT72E' ], + 'CUBOT GT99' => [ 'Cubot', 'GT99' ], + 'CUBOT ONE' => [ 'Cubot', 'One' ], + 'CUBOT ONE-S' => [ 'Cubot', 'One S' ], + 'CUBOT P7' => [ 'Cubot', 'P7' ], + 'CUBOT P9' => [ 'Cubot', 'P9' ], + 'CUBOT S108' => [ 'Cubot', 'S108' ], + 'CUBOT S222' => [ 'Cubot', 'S222' ], + 'CUBOT X6' => [ 'Cubot', 'X6' ], + ], + + 'S222' => [ 'Cubot', 'S222' ], + 'S308' => [ 'Cubot', 'S308' ], + + '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!' => [ + 'CUBE K8GT' => [ 'Cube', 'K8GT', DeviceType::TABLET ], + 'CUBE K8GT A' => [ 'Cube', 'K8GT A', DeviceType::TABLET ], + 'CUBE K8GT B' => [ 'Cube', 'K8GT B', DeviceType::TABLET ], + 'K8GT C' => [ 'Cube', 'K8GT C', DeviceType::TABLET ], + 'K8GT H' => [ 'Cube', 'K8GT H', DeviceType::TABLET ], + 'CUBE K8GT H' => [ 'Cube', 'K8GT H', DeviceType::TABLET ], + 'K8GT W' => [ 'Cube', 'K8GT W', DeviceType::TABLET ], + 'CUBE U8GT' => [ 'Cube', 'U8GT', DeviceType::TABLET ], + 'CUBE U9GT' => [ 'Cube', 'U9GT', DeviceType::TABLET ], + 'CUBE U9 GT' => [ 'Cube', 'U9GT', DeviceType::TABLET ], + 'U9GT' => [ 'Cube', 'U9GT', DeviceType::TABLET ], + 'U9GT S' => [ 'Cube', 'U9GT S', DeviceType::TABLET ], + 'U9GT-S' => [ 'Cube', 'U9GT S', DeviceType::TABLET ], + 'U9GT S A' => [ 'Cube', 'U9GT SA', DeviceType::TABLET ], + 'U9GTS A' => [ 'Cube', 'U9GT SA', DeviceType::TABLET ], + 'U9GT-SA' => [ 'Cube', 'U9GT SA', DeviceType::TABLET ], + 'U9GT V' => [ 'Cube', 'U9GT V', DeviceType::TABLET ], + 'U9GT V Core 4' => [ 'Cube', 'U9GT V', DeviceType::TABLET ], + 'CUBE U9GT ?2!' => [ 'Cube', 'U9GT2', DeviceType::TABLET ], + 'Cube U9GT-2' => [ 'Cube', 'U9GT2', DeviceType::TABLET ], + 'U9GT2!' => [ 'Cube', 'U9GT2', DeviceType::TABLET ], + 'N90 From moage.com' => [ 'Cube', 'U9GT2', DeviceType::TABLET ], + 'U9GT3' => [ 'Cube', 'U9GT3', DeviceType::TABLET ], + 'U9GT3-S' => [ 'Cube', 'U9GT3 S', DeviceType::TABLET ], + 'U9GT4' => [ 'Cube', 'U9GT4', DeviceType::TABLET ], + 'U10GT A' => [ 'Cube', 'U10GT A', DeviceType::TABLET ], + 'U10GT-A' => [ 'Cube', 'U10GT A', DeviceType::TABLET ], + 'U10GT S' => [ 'Cube', 'U10GT S', DeviceType::TABLET ], + 'U10GT 2' => [ 'Cube', 'U10GT2', DeviceType::TABLET ], + 'CUBE U15GT' => [ 'Cube', 'U15GT', DeviceType::TABLET ], + 'U18GT' => [ 'Cube', 'U18GT', DeviceType::TABLET ], + 'U18GT-H' => [ 'Cube', 'U18GT H', DeviceType::TABLET ], + 'U18GT-S' => [ 'Cube', 'U18GT S', DeviceType::TABLET ], + 'U18GT-W' => [ 'Cube', 'U18GT W', DeviceType::TABLET ], + 'U18GTW' => [ 'Cube', 'U18GT W', DeviceType::TABLET ], + 'U18GT2' => [ 'Cube', 'U18GT2', DeviceType::TABLET ], + 'U19GT-W' => [ 'Cube', 'U19GT W', DeviceType::TABLET ], + 'U21GT' => [ 'Cube', 'U21GT', DeviceType::TABLET ], + 'U20GT' => [ 'Cube', 'U20GT', DeviceType::TABLET ], + 'U20GT WS' => [ 'Cube', 'U20GT WS', DeviceType::TABLET ], + 'U23GT' => [ 'Cube', 'U23GT', DeviceType::TABLET ], + 'U23GT-S' => [ 'Cube', 'U23GT S', DeviceType::TABLET ], + 'U23GTC4' => [ 'Cube', 'U23GT C4', DeviceType::TABLET ], + 'U25GT' => [ 'Cube', 'U25GT', DeviceType::TABLET ], + 'CUBE U25GT' => [ 'Cube', 'U25GT', DeviceType::TABLET ], + 'U25GT PRO' => [ 'Cube', 'U25GT Pro', DeviceType::TABLET ], + 'U25GT-W' => [ 'Cube', 'U25GT W', DeviceType::TABLET ], + 'U25GT-W4' => [ 'Cube', 'U25GT W4', DeviceType::TABLET ], + 'U25GT-BN' => [ 'Cube', 'U25GT BN', DeviceType::TABLET ], + 'U25GT-C4' => [ 'Cube', 'U25GT C4', DeviceType::TABLET ], + 'U25GT-C4W' => [ 'Cube', 'U25GT C4W', DeviceType::TABLET ], + 'U25GT-C4WB' => [ 'Cube', 'U25GT C4WB', DeviceType::TABLET ], + 'U25GT-C4Y' => [ 'Cube', 'U25GT C4Y', DeviceType::TABLET ], + 'U25GT2-H' => [ 'Cube', 'U25GT2 H', DeviceType::TABLET ], + 'U27GT' => [ 'Cube', 'U27GT', DeviceType::TABLET ], + 'U27GT-C8' => [ 'Cube', 'U27GT C8', DeviceType::TABLET ], + 'U27GT-C8P' => [ 'Cube', 'U27GT C8P', DeviceType::TABLET ], + 'U27GT-SD' => [ 'Cube', 'U27GT SD', DeviceType::TABLET ], + 'U28GT' => [ 'Cube', 'U28GT', DeviceType::TABLET ], + 'U30GT' => [ 'Cube', 'U30GT', DeviceType::TABLET ], + 'U30GT C4' => [ 'Cube', 'U30GT C4', DeviceType::TABLET ], + 'U30GT-H' => [ 'Cube', 'U30GT H', DeviceType::TABLET ], + 'U30GT-H By BiscuitTeam' => [ 'Cube', 'U30GT H', DeviceType::TABLET ], + 'U30GT-HS' => [ 'Cube', 'U30GT HS', DeviceType::TABLET ], + 'U30GT-M' => [ 'Cube', 'U30GT M', DeviceType::TABLET ], + 'U30GT-MS' => [ 'Cube', 'U30GT MS', DeviceType::TABLET ], + 'U30GTm2' => [ 'Cube', 'U30GT M2', DeviceType::TABLET ], + 'U30GT MINI' => [ 'Cube', 'U30GT Mini', DeviceType::TABLET ], + 'U30GT-mini' => [ 'Cube', 'U30GT Mini', DeviceType::TABLET ], + 'U30GT-W' => [ 'Cube', 'U30GT W', DeviceType::TABLET ], + 'u30gt2' => [ 'Cube', 'U30GT2', DeviceType::TABLET ], + 'U30GT 2' => [ 'Cube', 'U30GT2', DeviceType::TABLET ], + 'U30GT-2' => [ 'Cube', 'U30GT2', DeviceType::TABLET ], + 'U30GT 2MH' => [ 'Cube', 'U30GT2 MH', DeviceType::TABLET ], + 'U31GT' => [ 'Cube', 'U31GT', DeviceType::TABLET ], + 'U35GT' => [ 'Cube', 'U35GT', DeviceType::TABLET ], + 'U35GT-W' => [ 'Cube', 'U35GT W', DeviceType::TABLET ], + 'U35GT2' => [ 'Cube', 'U35GT2', DeviceType::TABLET ], + 'U39GT' => [ 'Cube', 'U39GT', DeviceType::TABLET ], + 'U39GT-W' => [ 'Cube', 'U39GT W', DeviceType::TABLET ], + 'U39GT-3G' => [ 'Cube', 'U39GT 3G', DeviceType::TABLET ], + 'U51GT' => [ 'Cube', 'U51GT', DeviceType::TABLET ], + 'U51GT-S' => [ 'Cube', 'U51GT S', DeviceType::TABLET ], + 'U51GT-W' => [ 'Cube', 'U51GT W', DeviceType::TABLET ], + 'U51GT C4' => [ 'Cube', 'U51GT C4', DeviceType::TABLET ], + 'U51GT-C4' => [ 'Cube', 'U51GT C4', DeviceType::TABLET ], + 'U51GT-C4B' => [ 'Cube', 'U51GT C4B', DeviceType::TABLET ], + 'U51GT-C4BD' => [ 'Cube', 'U51GT C4BD', DeviceType::TABLET ], + 'U51GT-C8' => [ 'Cube', 'U51GT C8', DeviceType::TABLET ], + 'U51GT-C8P' => [ 'Cube', 'U51GT C8S', DeviceType::TABLET ], + 'U51GT-C8S' => [ 'Cube', 'U51GT C8S', DeviceType::TABLET ], + 'U51GT-4G' => [ 'Cube', 'U51GT 4G', DeviceType::TABLET ], + 'U55GT' => [ 'Cube', 'U55GT', DeviceType::TABLET ], + 'U55GT C8' => [ 'Cube', 'U55GT C8', DeviceType::TABLET ], + 'U55GT S' => [ 'Cube', 'U55GT S', DeviceType::TABLET ], + 'U59GT-C4' => [ 'Cube', 'U59GT C4', DeviceType::TABLET ], + 'U65GT' => [ 'Cube', 'U65GT', DeviceType::TABLET ], + ], + + 'CUBE!!' => [ + 'CUBE Q7PRO' => [ 'Cube', 'Q7 Pro', DeviceType::TABLET ], + 'CUBE Q7PRO J' => [ 'Cube', 'Q7 Pro', DeviceType::TABLET ], + 'CUBE TALK7X' => [ 'Cube', 'Talk 7X', DeviceType::TABLET ], + 'CUBE TALK7X C4' => [ 'Cube', 'Talk 7X C4', DeviceType::TABLET ], + ], + + 'LT[0-9]{4,4}!!' => [ + 'LT7033' => [ 'Curtis', 'Klu LT7033', DeviceType::TABLET ], + 'LT7035-F' => [ 'Curtis', 'Klu LT7035-F', DeviceType::TABLET ], + 'LT7035-J' => [ 'Curtis', 'Klu LT7035-J', DeviceType::TABLET ], + 'LT7035-L' => [ 'Curtis', 'Klu LT7035-L', DeviceType::TABLET ], + 'LT7052' => [ 'Curtis', 'Klu LT7052', DeviceType::TABLET ], + 'LT8088' => [ 'Curtis', 'Klu LT8088', DeviceType::TABLET ], + ], + + 'Cydle M7!' => [ 'Cydle', 'M7 MultiPAD', DeviceType::TABLET ], + 'EVDO1000' => [ 'Cyrus', 'EVDO 1000' ], + 'GloryG1000' => [ 'Cyrus', 'Glory G1000' ], + 'TVPAD Slim K3409' => [ 'Cyrus', 'TVPad Slim K3409', DeviceType::TABLET ], + + 'D2-[0-9]{3,3}!!' => [ + 'D2-711' => [ 'D2pad', 'D2-711', DeviceType::TABLET ], + 'D2-712' => [ 'D2pad', 'D2-712', DeviceType::TABLET ], + 'D2-721' => [ 'D2pad', 'D2-721', DeviceType::TABLET ], + 'D2-721G' => [ 'D2pad', 'D2-721G', DeviceType::TABLET ], + 'D2-727' => [ 'D2pad', 'D2-727', DeviceType::TABLET ], + 'D2-751G' => [ 'D2pad', 'D2-751G', DeviceType::TABLET ], + 'D2-911' => [ 'D2pad', 'D2-911', DeviceType::TABLET ], + 'D2-912' => [ 'D2pad', 'D2-912', DeviceType::TABLET ], + 'D2-927G' => [ 'D2pad', 'D2-927G', DeviceType::TABLET ], + 'D2-961G' => [ 'D2pad', 'D2-961G', DeviceType::TABLET ], + ], + + 'Dakele A380' => [ 'Dakele', 'A380' ], + 'DAKELE MC001' => [ 'Dakele', 'MC001' ], + 'MC002' => [ 'Dakele', 'MC002' ], + + 'Dslide!!' => [ + 'Dslide 700' => [ 'Danew', 'DSlide 700', DeviceType::TABLET ], + 'Dslide 702' => [ 'Danew', 'DSlide 702', DeviceType::TABLET ], + 'Dslide 703R' => [ 'Danew', 'DSlide 703R', DeviceType::TABLET ], + 'Dslide 704' => [ 'Danew', 'DSlide 704', DeviceType::TABLET ], + 'Dslide 706' => [ 'Danew', 'DSlide 706', DeviceType::TABLET ], + 'Dslide 707' => [ 'Danew', 'DSlide 707', DeviceType::TABLET ], + 'Dslide800' => [ 'Danew', 'DSlide 800', DeviceType::TABLET ], + 'Dslide801' => [ 'Danew', 'DSlide 801', DeviceType::TABLET ], + 'Dslide900' => [ 'Danew', 'DSlide 900', DeviceType::TABLET ], + 'Dslide 971' => [ 'Danew', 'DSlide 971', DeviceType::TABLET ], + 'Dslide971DC' => [ 'Danew', 'DSlide 971', DeviceType::TABLET ], + 'DSlide972' => [ 'Danew', 'DSlide 972', DeviceType::TABLET ], + 'DSlide973' => [ 'Danew', 'DSlide 973', DeviceType::TABLET ], + 'Dslide973QC' => [ 'Danew', 'DSlide 973', DeviceType::TABLET ], + 'DSlide 1013' => [ 'Danew', 'DSlide 1013', DeviceType::TABLET ], + ], + + 'Genius!!' => [ + 'Genius TAB GIII' => [ 'Dany', 'Genius Tab G3', DeviceType::TABLET ], + 'GENIUS-G4' => [ 'Dany', 'Genius Tab G4', DeviceType::TABLET ], + 'Genius TAB G4' => [ 'Dany', 'Genius Tab G4', DeviceType::TABLET ], + 'Genius Tab Q4' => [ 'Dany', 'Genius Tab Q4', DeviceType::TABLET ], + ], + + 'EvoPAD!!' => [ + 'EvoPAD A7000' => [ 'Dark', 'EvoPad A7000', DeviceType::TABLET ], + 'EvoPad-R1020' => [ 'Dark', 'EvoPad R1020', DeviceType::TABLET ], + 'EVOPad R8000' => [ 'Dark', 'EvoPad R8000', DeviceType::TABLET ], + 'EVOPad R8020' => [ 'Dark', 'EvoPad R8020', DeviceType::TABLET ], + 'EVOPad R9720' => [ 'Dark', 'EvoPad R9720', DeviceType::TABLET ], + 'EvoPAD R9740' => [ 'Dark', 'EvoPad R9740', DeviceType::TABLET ], + 'EvoPAD-R9722' => [ 'Dark', 'EvoPad R9722', DeviceType::TABLET ], + 'Evopad R9730' => [ 'Dark', 'EvoPad R9730', DeviceType::TABLET ], + ], + + 'HB-100 DASAN' => [ 'Dasan', 'HB-100', DeviceType::TELEVISION ], + 'HB-100 DASAN Networks, Inc.' => [ 'Dasan', 'HB-100', DeviceType::TELEVISION ], + + 'Mini 3iG' => [ 'Dell', 'Aero' ], + 'BizSmartPhone' => [ 'Dell', 'Biz SmartPhone' ], + '001DL' => [ 'Dell', 'STREAK 001DL', DeviceType::TABLET, 'carrier' => 'Softbank' ], + '101DL' => [ 'Dell', 'STREAK PRO 101DL', DeviceType::TABLET, 'carrier' => 'Softbank' ], + 'GS01' => [ 'Dell', 'STREAK PRO GS01', DeviceType::TABLET, 'carrier' => 'EMOBILE' ], + 'streak7' => [ 'Dell', 'Streak 7', DeviceType::TABLET ], + 'CS-1A13' => [ 'Dell', 'Wyse Cloud Connect', DeviceType::TELEVISION ], + + 'Dell!!' => [ + 'Dell Aero' => [ 'Dell', 'Aero' ], + 'Dell Grappa' => [ 'Dell', 'Aero' ], + 'Dell M01M' => [ 'Dell', 'Streak', DeviceType::TABLET ], + 'Dell Mini 5' => [ 'Dell', 'Streak', DeviceType::TABLET ], + 'Dell Streak' => [ 'Dell', 'Streak', DeviceType::TABLET ], + 'Dell V04B' => [ 'Dell', 'Streak Pro', DeviceType::TABLET ], + 'Dell Streak Pro' => [ 'Dell', 'Streak Pro', DeviceType::TABLET ], + 'Dell Streak 7' => [ 'Dell', 'Streak 7', DeviceType::TABLET ], + 'Dell Streak 10 Pro' => [ 'Dell', 'Streak 10 Pro', DeviceType::TABLET ], + 'Dell Venue' => [ 'Dell', 'Venue' ], + ], + + 'Venue!!' => [ + 'venue 7' => [ 'Dell', 'Venue 7', DeviceType::TABLET ], + 'Venue 7 3730' => [ 'Dell', 'Venue 7', DeviceType::TABLET ], + 'Venue 7 3736' => [ 'Dell', 'Venue 7', DeviceType::TABLET ], + 'Venue 7 3740' => [ 'Dell', 'Venue 7', DeviceType::TABLET ], + 'Venue7 3740' => [ 'Dell', 'Venue 7', DeviceType::TABLET ], + 'Venue7 3740 LTE' => [ 'Dell', 'Venue 7', DeviceType::TABLET ], + 'Venue 7 3741' => [ 'Dell', 'Venue 7', DeviceType::TABLET ], + 'Venue 7 HSPA+' => [ 'Dell', 'Venue 7', DeviceType::TABLET ], + 'Venue 7 WWAN' => [ 'Dell', 'Venue 7', DeviceType::TABLET ], + 'Venue 8 HSPA+' => [ 'Dell', 'Venue 8', DeviceType::TABLET ], + 'Venue 8 WiFi' => [ 'Dell', 'Venue 8', DeviceType::TABLET ], + 'Venue 8 3830' => [ 'Dell', 'Venue 8', DeviceType::TABLET ], + 'Venue 8 3840' => [ 'Dell', 'Venue 8', DeviceType::TABLET ], + 'Venue8 3840' => [ 'Dell', 'Venue 8', DeviceType::TABLET ], + 'Venue8 3840 LTE' => [ 'Dell', 'Venue 8', DeviceType::TABLET ], + 'Venue 8 7040' => [ 'Dell', 'Venue 8', DeviceType::TABLET ], + 'Venue 8 7840' => [ 'Dell', 'Venue 8', DeviceType::TABLET ], + 'Venue 8 7840 LTE' => [ 'Dell', 'Venue 8', DeviceType::TABLET ], + 'Venue 10 5050' => [ 'Dell', 'Venue 10', DeviceType::TABLET ], + 'Venue 10 7040' => [ 'Dell', 'Venue 10', DeviceType::TABLET ], + ], + + 'XCD 28' => [ 'Dell', 'XCD28' ], + 'Dell XCD35' => [ 'Dell', 'XCD35' ], + 'XCD35' => [ 'Dell', 'XCD35' ], + 'DEM752HCF' => [ 'Denver', 'TAC-7018', DeviceType::TABLET ], + + '(DENVER-)?TA[CD]-[0-9]{4,5}!!' => [ + 'TAC-7028' => [ 'Denver', 'TAC-7028', DeviceType::TABLET ], + 'TAC-10011' => [ 'Denver', 'TAC-10011', DeviceType::TABLET ], + 'TAC-10031' => [ 'Denver', 'TAC-10031', DeviceType::TABLET ], + 'TAC-10031 MK2' => [ 'Denver', 'TAC-10031', DeviceType::TABLET ], + 'TAC-70031' => [ 'Denver', 'TAC-70031', DeviceType::TABLET ], + 'TAC-70041' => [ 'Denver', 'TAC-70041', DeviceType::TABLET ], + 'TAC-70051' => [ 'Denver', 'TAC-70051', DeviceType::TABLET ], + 'TAC-70061' => [ 'Denver', 'TAC-70061', DeviceType::TABLET ], + 'TAC-70072' => [ 'Denver', 'TAC-70072', DeviceType::TABLET ], + 'TAC-70072kc' => [ 'Denver', 'TAC-70072', DeviceType::TABLET ], + 'TAD-70102G' => [ 'Denver', 'TAC-70102G', DeviceType::TABLET ], + 'TAC-70111' => [ 'Denver', 'TAC-70111', DeviceType::TABLET ], + 'TAC-70111 PO8195' => [ 'Denver', 'TAC-70111', DeviceType::TABLET ], + 'TAC-70111 PO8241' => [ 'Denver', 'TAC-70111', DeviceType::TABLET ], + 'TAC-70111 PO8242' => [ 'Denver', 'TAC-70111', DeviceType::TABLET ], + 'TAC-80011' => [ 'Denver', 'TAC-80011', DeviceType::TABLET ], + 'TAC-90011' => [ 'Denver', 'TAC-90011', DeviceType::TABLET ], + 'TAC-90012' => [ 'Denver', 'TAC-90012', DeviceType::TABLET ], + 'TAC-97032' => [ 'Denver', 'TAC-97032', DeviceType::TABLET ], + 'TAC-97052' => [ 'Denver', 'TAC-97052', DeviceType::TABLET ], + 'TAD-10021' => [ 'Denver', 'TAD-10021', DeviceType::TABLET ], + 'TAD-10023' => [ 'Denver', 'TAD-10023', DeviceType::TABLET ], + 'TAD-10063 MK2 PO8311' => [ 'Denver', 'TAD-10063', DeviceType::TABLET ], + 'DENVER-TAD-10082' => [ 'Denver', 'TAD-10082', DeviceType::TABLET ], + 'TAD-70091' => [ 'Denver', 'TAD-70091', DeviceType::TABLET ], + 'TAD-70092' => [ 'Denver', 'TAD-70092', DeviceType::TABLET ], + 'TAD-70092 BLACK MK2 PO8341' => [ 'Denver', 'TAD-70092', DeviceType::TABLET ], + 'TAD-70111PO8275' => [ 'Denver', 'TAD-70111', DeviceType::TABLET ], + 'TAD-70111 PO8307' => [ 'Denver', 'TAD-70111', DeviceType::TABLET ], + 'TAD-70112PO8197' => [ 'Denver', 'TAD-70112', DeviceType::TABLET ], + 'TAD-70112 PO8292' => [ 'Denver', 'TAD-70112', DeviceType::TABLET ], + 'TAD-70112KC PO8360' => [ 'Denver', 'TAD-70112', DeviceType::TABLET ], + 'TAD-90021' => [ 'Denver', 'TAD-90021', DeviceType::TABLET ], + 'TAD-90022' => [ 'Denver', 'TAD-90022', DeviceType::TABLET ], + 'TAD-97052' => [ 'Denver', 'TAD-97052', DeviceType::TABLET ], + 'TAD-97052mk2' => [ 'Denver', 'TAD-97052', DeviceType::TABLET ], + 'TAD-97072G' => [ 'Denver', 'TAD-97072', DeviceType::TABLET ], + 'TAD-97082!' => [ 'Denver', 'TAD-97082', DeviceType::TABLET ], + ], + + 'deovo V5' => [ 'deovo', 'V5' ], + + 'DESAY!!' => [ + 'DESAY TS808' => [ 'Desay', 'TS808' ], + 'DESAY TS908' => [ 'Desay', 'TS908' ], + 'DESAY TS928' => [ 'Desay', 'TS928' ], + 'DESAY TS1008' => [ 'Desay', 'TS1008' ], + 'DESAY TS1018' => [ 'Desay', 'TS1018' ], + 'DESAY TS1218' => [ 'Desay', 'TS1218' ], + ], + + 'iP977' => [ 'Dex', 'iP977', DeviceType::TABLET ], + + 'Dialog!!' => [ + 'Dialog i35' => [ 'Dialog', 'i35' ], + 'Dialog i43' => [ 'Dialog', 'i43' ], + 'Dialog i43(ICS)' => [ 'Dialog', 'i43' ], + 'Dialog K35' => [ 'Dialog', 'K35' ], + 'Dialog K45' => [ 'Dialog', 'K45' ], + 'Dialog K235' => [ 'Dialog', 'K235' ], + 'Dialog Q143L' => [ 'Dialog', 'Q143L' ], + 'Dialog Q178' => [ 'Dialog', 'Q178' ], + 'Dialog Q243' => [ 'Dialog', 'Q243' ], + ], + + 'DIT[0-9]{4,6}!!' => [ + 'DIT1010' => [ 'Difrnce', 'DIT1010', DeviceType::TABLET ], + 'DIT7000' => [ 'Difrnce', 'DIT7000', DeviceType::TABLET ], + 'DIT7070' => [ 'Difrnce', 'DIT7070', DeviceType::TABLET ], + 'DIT8070' => [ 'Difrnce', 'DIT8070', DeviceType::TABLET ], + 'DIT9720' => [ 'Difrnce', 'DIT9720', DeviceType::TABLET ], + 'DIT101201' => [ 'Difrnce', 'DIT101201', DeviceType::TABLET ], + 'DIT102201' => [ 'Difrnce', 'DIT102201', DeviceType::TABLET ], + 'DIT102202' => [ 'Difrnce', 'DIT102202', DeviceType::TABLET ], + 'DIT701101' => [ 'Difrnce', 'DIT701101', DeviceType::TABLET ], + 'DIT702101' => [ 'Difrnce', 'DIT702101', DeviceType::TABLET ], + 'DIT902101' => [ 'Difrnce', 'DIT902101', DeviceType::TABLET ], + 'DIT902102' => [ 'Difrnce', 'DIT902102', DeviceType::TABLET ], + 'DIT902103' => [ 'Difrnce', 'DIT902103', DeviceType::TABLET ], + ], + + 'NID 7010' => [ 'Difrnce', 'DIT702201', DeviceType::TABLET ], + 'DIGICEL DL800' => [ 'Digicel', 'DL800' ], + + '(Digma )?iD[jmnsx][DQ]?[0-9]*!!' => [ + 'Digma iDj7!' => [ 'Digma', 'iDj7', DeviceType::TABLET ], + 'iDj7n' => [ 'Digma', 'iDj7n', DeviceType::TABLET ], + 'Digma iDm7' => [ 'Digma', 'iDm7', DeviceType::TABLET ], + 'Digma iDn7' => [ 'Digma', 'iDn7', DeviceType::TABLET ], + 'ids7' => [ 'Digma', 'iDs7', DeviceType::TABLET ], + 'ids10' => [ 'Digma', 'iDs10', DeviceType::TABLET ], + 'DIGMA iDs10!' => [ 'Digma', 'iDs10', DeviceType::TABLET ], + 'iDx5' => [ 'Digma', 'iDx5' ], + 'iDx7' => [ 'Digma', 'iDx7', DeviceType::TABLET ], + 'iDx7 Type2 4' => [ 'Digma', 'iDx7', DeviceType::TABLET ], + 'iDx10!' => [ 'Digma', 'iDx10', DeviceType::TABLET ], + 'iDnD7' => [ 'Digma', 'iDnD7', DeviceType::TABLET ], + 'DIGMA IDSD' => [ 'Digma', 'iDsD', DeviceType::TABLET ], + 'DIGMA iDsD7!' => [ 'Digma', 'iDsD7', DeviceType::TABLET ], + 'DIGMA iDsD8!' => [ 'Digma', 'iDsD8', DeviceType::TABLET ], + 'DIGMA iDsD10!' => [ 'Digma', 'iDsD10', DeviceType::TABLET ], + 'iDxD4' => [ 'Digma', 'iDxD4' ], + 'IDXD8' => [ 'Digma', 'iDxD8', DeviceType::TABLET ], + 'iDxD8 3G' => [ 'Digma', 'iDxD8', DeviceType::TABLET ], + 'iDxD7 3G' => [ 'Digma', 'iDxD7', DeviceType::TABLET ], + 'IDXD10' => [ 'Digma', 'iDxD10', DeviceType::TABLET ], + 'iDxD10 3G' => [ 'Digma', 'iDxD10', DeviceType::TABLET ], + 'iDxQ5' => [ 'Digma', 'iDxQ5' ], + ], + + 'DISTAB9000R' => [ 'Disgo', 'Distab 9000R', DeviceType::TABLET ], + 'DishTV Smartvu A2020' => [ 'DishTV', 'SmartVU-mini', DeviceType::TELEVISION ], + + 'DM0[0-9]{2,2}(K|SH)!!' => [ + 'DM009SH' => [ 'Sharp', 'DM009SH', 'carrier' => 'Disney Mobile' ], + 'DM010SH' => [ 'Sharp', 'DM010SH', 'carrier' => 'Disney Mobile' ], + 'DM011SH' => [ 'Sharp', 'DM011SH', 'carrier' => 'Disney Mobile' ], + 'DM012SH' => [ 'Sharp', 'DM012SH', 'carrier' => 'Disney Mobile' ], + 'DM013SH' => [ 'Sharp', 'DM013SH', 'carrier' => 'Disney Mobile' ], + 'DM014SH' => [ 'Sharp', 'DM014SH', 'carrier' => 'Disney Mobile' ], + 'DM015K' => [ 'Kyocera', 'DM015K', 'carrier' => 'Disney Mobile' ], + 'DM016SH' => [ 'Sharp', 'DM016SH', 'carrier' => 'Disney Mobile' ], + ], + + 'DJC Touchtab3' => [ 'DJC', 'Touchtab3', DeviceType::TABLET ], + 'DJC Touchtab4' => [ 'DJC', 'Touchtab4', DeviceType::TABLET ], + 'AirBook TTJ702' => [ 'DNS', 'Airbook TTJ702', DeviceType::TABLET ], + 'DNS Airbook TYT701' => [ 'DNS', 'Airbook TYT701', DeviceType::TABLET ], + + '(DNS )?(Airtab )?(E|M|MA|MF|MW|P|PC|PF)[0-9]{2,4}!!' => [ + 'DNS Airtab E73' => [ 'DNS', 'AirTab E73', DeviceType::TABLET ], + 'AirTab ES70' => [ 'DNS', 'AirTab ES70', DeviceType::TABLET ], + 'AirTab M81g' => [ 'DNS', 'AirTab M81g', DeviceType::TABLET ], + 'AirTab M81w' => [ 'DNS', 'AirTab M81w', DeviceType::TABLET ], + 'M83w' => [ 'DNS', 'AirTab M83w', DeviceType::TABLET ], + 'M84g' => [ 'DNS', 'AirTab M84g', DeviceType::TABLET ], + 'M100qw' => [ 'DNS', 'AirTab M100qw', DeviceType::TABLET ], + 'M101g' => [ 'DNS', 'AirTab M101g', DeviceType::TABLET ], + 'AirTab M104G' => [ 'DNS', 'AirTab M104g', DeviceType::TABLET ], + 'AirTab m971g' => [ 'DNS', 'AirTab M971g', DeviceType::TABLET ], + 'M971w' => [ 'DNS', 'AirTab M971w', DeviceType::TABLET ], + 'M972g' => [ 'DNS', 'AirTab M972g', DeviceType::TABLET ], + 'M972w' => [ 'DNS', 'AirTab M972w', DeviceType::TABLET ], + 'DNS AirTab M974w' => [ 'DNS', 'AirTab M974w', DeviceType::TABLET ], + 'AirTab M975w' => [ 'DNS', 'AirTab M975w', DeviceType::TABLET ], + 'DNS M975W' => [ 'DNS', 'AirTab M975W', DeviceType::TABLET ], + 'AirTab MA7001' => [ 'DNS', 'AirTab MA7001', DeviceType::TABLET ], + 'DNS AirTab MF1011' => [ 'DNS', 'AirTab MF1011', DeviceType::TABLET ], + 'AirTab MW7851' => [ 'DNS', 'AirTab MW7851', DeviceType::TABLET ], + 'AirTab P70qw' => [ 'DNS', 'AirTab P70qw', DeviceType::TABLET ], + 'AirTab P71g' => [ 'DNS', 'AirTab P71g', DeviceType::TABLET ], + 'DNS AirTab P71g' => [ 'DNS', 'AirTab P71g', DeviceType::TABLET ], + 'AirTab P83' => [ 'DNS', 'AirTab P83', DeviceType::TABLET ], + 'DNS AirTab P101w' => [ 'DNS', 'AirTab P101w', DeviceType::TABLET ], + 'AirTab P970g' => [ 'DNS', 'AirTab P970g', DeviceType::TABLET ], + 'AirTab P970w' => [ 'DNS', 'AirTab P970w', DeviceType::TABLET ], + 'AirTab PC9701' => [ 'DNS', 'AirTab PC9701', DeviceType::TABLET ], + 'DNS AirTab PF7001' => [ 'DNS', 'AirTab PF7001', DeviceType::TABLET ], + ], + + 'DNS S!!' => [ + 'DNS S3501' => [ 'DNS', 'S3501' ], + 'DNS s4003' => [ 'DNS', 'S4003' ], + 'DNS S4006' => [ 'DNS', 'S4006' ], + 'DNS S4008' => [ 'DNS', 'S4008' ], + 'DNS S4502' => [ 'DNS', 'S4502' ], + 'DNS S4502M' => [ 'DNS', 'S4502M' ], + 'DNS S4507' => [ 'DNS', 'S4507' ], + 'DNS S4508' => [ 'DNS', 'S4508' ], + 'DNS S4705' => [ 'DNS', 'S4705' ], + 'DNS S5005' => [ 'DNS', 'S5005' ], + 'DNS S5008' => [ 'DNS', 'S5008' ], + 'DNS S5701' => [ 'DNS', 'S5701' ], + ], + + 'DNS4502M' => [ 'DNS', 'S4502M' ], + 'S4503Q' => [ 'DNS', 'S4503Q' ], + 'S4505M' => [ 'DNS', 'S4505M' ], + + 'DPS Dream 7' => [ 'DPS', 'Dream 7', DeviceType::TABLET ], + 'DPS Dream 9' => [ 'DPS', 'Dream 9', DeviceType::TABLET ], + 'domod G20' => [ 'Domod', 'G20' ], + 'Collo DG100' => [ 'Doogee', 'Collo DG100' ], + 'Collo 2 DG120' => [ 'Doogee', 'Collo 2 DG120' ], + 'DOOGEE-TITANS-DG150' => [ 'Doogee', 'Titans DG150' ], + 'VOYAGER DG300' => [ 'Doogee', 'Voyager DG300' ], + 'VOYAGER2 DG310' => [ 'Doogee', 'Voyager 2 DG310' ], + 'MINT-DG330' => [ 'Doogee', 'Mint DG330' ], + 'Discovery DG500' => [ 'Doogee', 'Discovery DG500' ], + 'Discovery2-DG500C' => [ 'Doogee', 'Discovery 2 DG500C' ], + 'TURBO DG2014' => [ 'Doogee', 'Turbo DG2014' ], + + 'DOOV!!' => [ + 'DOOV C1' => [ 'DOOV', 'C1' ], + 'DOOV C7' => [ 'DOOV', 'C7' ], + 'DOOV D2' => [ 'DOOV', 'D2' ], + 'DOOV D3' => [ 'DOOV', 'D3' ], + 'DOOV D5' => [ 'DOOV', 'D5' ], + 'DOOV D7' => [ 'DOOV', 'D7' ], + 'DOOV D8' => [ 'DOOV', 'D8' ], + 'DOOV D9' => [ 'DOOV', 'D9' ], + 'DOOV D10' => [ 'DOOV', 'D10' ], + 'DOOV D30' => [ 'DOOV', 'D30' ], + 'DOOV-DOOV D300' => [ 'DOOV', 'D300' ], + 'DOOV D300' => [ 'DOOV', 'D300' ], + 'DOOV D350' => [ 'DOOV', 'D350' ], + 'DOOV D360' => [ 'DOOV', 'D360' ], + 'DOOV D500' => [ 'DOOV', 'D500' ], + 'DOOV D700' => [ 'DOOV', 'D700' ], + 'DOOV D708' => [ 'DOOV', 'D708' ], + 'DOOV D710' => [ 'DOOV', 'D710' ], + 'DOOV D720' => [ 'DOOV', 'D720' ], + 'DOOV D770' => [ 'DOOV', 'D770' ], + 'DOOV D800' => [ 'DOOV', 'D800' ], + 'DOOV D910T' => [ 'DOOV', 'D910T' ], + 'DOOV D920' => [ 'DOOV', 'D920' ], + 'DOOV L1' => [ 'DOOV', 'L1' ], + 'DOOV L1M' => [ 'DOOV', 'L1M' ], + 'DOOV L3' => [ 'DOOV', 'L3' ], + 'DOOV L5' => [ 'DOOV', 'L5' ], + 'DOOV L5Pro' => [ 'DOOV', 'L5 Pro' ], + 'DOOV S1' => [ 'DOOV', 'S1' ], + 'DOOV S2' => [ 'DOOV', 'S2' ], + 'DOOV S2y' => [ 'DOOV', 'S2y' ], + 'DOOV S3' => [ 'DOOV', 'S3' ], + 'DOOV S5' => [ 'DOOV', 'S5' ], + 'DOOV T20L' => [ 'DOOV', 'T20L' ], + 'DOOV T35' => [ 'DOOV', 'T35' ], + 'DOOV T60' => [ 'DOOV', 'T60' ], + 'DOOV T90' => [ 'DOOV', 'T90' ], + ], + + 'Doro Liberto!!' => [ + 'Doro Liberto 810' => [ 'Doro', 'Liberto 810' ], + 'Doro Liberto 820' => [ 'Doro', 'Liberto 820' ], + 'Doro Liberto 820 Mini' => [ 'Doro', 'Liberto 820 Mini' ], + 'Doro Liberto 822' => [ 'Doro', 'Liberto 822' ], + 'Doro Liberto 825' => [ 'Doro', 'Liberto 825' ], + ], + + 'Doro 8030' => [ 'Doro', 'Liberto 822' ], + 'Doro 824' => [ 'Doro', 'Liberto 824' ], + '825 T-Mobile' => [ 'Doro', 'Liberto 825' ], + 'M975' => [ 'Double Power', 'M975', DeviceType::TABLET ], + 'TD-1010' => [ 'Double Power', 'TD-1010', DeviceType::TABLET ], + 'Tablet-P27' => [ 'DracoTek', 'P27 Tablet', DeviceType::TABLET ], + 'dyno 7.80' => [ 'Dyno', '7.80', DeviceType::TABLET ], + 'dyno 7.85' => [ 'Dyno', '7.85', DeviceType::TABLET ], + 'ACM3066-8' => [ 'MY|eebo', 'Color Tablet', DeviceType::TABLET ], + + '(E-Boda|Eruption|Essential|Supreme|Storm|Revo)!!' => [ + 'Eruption V200' => [ 'E-Boda', 'Eruption V200', DeviceType::TABLET ], + 'E-Boda Essential A150' => [ 'E-Boda', 'Essential A150', DeviceType::TABLET ], + 'Essential A330' => [ 'E-Boda', 'Essential A330', DeviceType::TABLET ], + 'E-Boda IMPRESSPE3D E1' => [ 'E-Boda', 'Impresspeed E1', DeviceType::TABLET ], + 'E-Boda IMPRESSPEED E 250DC' => [ 'E-Boda', 'Impresspeed E250', DeviceType::TABLET ], + 'E-Boda Impresspeed E300' => [ 'E-Boda', 'Impresspeed E300', DeviceType::TABLET ], + 'E-Boda Supreme X80 Dual Core' => [ 'E-Boda', 'Supreme X80', DeviceType::TABLET ], + 'E-Boda Supreme Dual Core X190' => [ 'E-Boda', 'Supreme X190', DeviceType::TABLET ], + 'SUPREME IPS Dual Core X200' => [ 'E-Boda', 'Supreme X200', DeviceType::TABLET ], + 'E-Boda Supreme X400 Quad Core' => [ 'E-Boda', 'Supreme X400', DeviceType::TABLET ], + 'E-Boda Supreme XL200IPS' => [ 'E-Boda', 'Supreme XL200', DeviceType::TABLET ], + 'E-Boda Supreme XL400QC' => [ 'E-Boda', 'Supreme XL400', DeviceType::TABLET ], + 'E-Boda Rainbow V47' => [ 'E-Boda', 'Rainbow V47' ], + 'Revo R80' => [ 'E-Boda', 'Revo R80' ], + 'E-Boda Storm V50' => [ 'E-Boda', 'Storm V50' ], + 'Storm V100' => [ 'E-Boda', 'Storm V100' ], + 'Storm X450' => [ 'E-Boda', 'Storm X450' ], + ], + + 'Etel!!' => [ + 'Etel i3' => [ 'E-tel', 'Curiosity i3' ], + 'Etel i4' => [ 'E-tel', 'Curiosity i4' ], + 'Etel i6' => [ 'E-tel', 'Curiosity i6' ], + 'Etel i8' => [ 'E-tel', 'Curiosity i8' ], + ], + + 'EasyPhone EP5' => [ 'Easypix', 'EasyPhone EP5' ], + 'EasyPad 971' => [ 'Easypix', 'EasyPad 971', DeviceType::TABLET ], + + 'EBEN!!' => [ + 'EBEN A3' => [ 'EBEN', 'A3', DeviceType::TABLET ], + 'EBEN S1' => [ 'EBEN', 'S1', DeviceType::TABLET ], + 'EBEN T6' => [ 'EBEN', 'T6', DeviceType::TABLET ], + 'EBEN T7' => [ 'EBEN', 'T7', DeviceType::TABLET ], + 'EBEN T8' => [ 'EBEN', 'T8', DeviceType::TABLET ], + ], + + 'EBEST!!' => [ + 'EBEST A35' => [ 'EBEST', 'A35' ], + 'EBEST F5' => [ 'EBEST', 'F5' ], + 'EBEST N4' => [ 'EBEST', 'N4' ], + 'EBEST T5' => [ 'EBEST', 'T5' ], + 'EBEST T7' => [ 'EBEST', 'T7' ], + 'EBEST U1' => [ 'EBEST', 'U1' ], + 'EBEST V5' => [ 'EBEST', 'V5' ], + 'EBEST V6' => [ 'EBEST', 'V6' ], + 'EBEST V7' => [ 'EBEST', 'V7' ], + 'EBEST V8' => [ 'EBEST', 'V8' ], + 'EBEST W16A' => [ 'EBEST', 'W16A' ], + 'EBEST W18' => [ 'EBEST', 'W18' ], + 'EBEST W66' => [ 'EBEST', 'W66' ], + 'EBEST W66A' => [ 'EBEST', 'W66A' ], + 'EBEST W70' => [ 'EBEST', 'W70' ], + 'EBEST Z5' => [ 'EBEST', 'Z5' ], + 'EBEST Z7' => [ 'EBEST', 'Z7' ], + ], + + 'TA10CA3' => [ 'ECS', 'TA10CA3', DeviceType::TABLET ], + 'TM105' => [ 'ECS', 'TM105', DeviceType::TABLET ], + 'TM105A' => [ 'ECS', 'TM105A', DeviceType::TABLET ], + 'TR10CS1' => [ 'ECS', 'TR10CS1', DeviceType::TABLET ], + + 'Elephone!!' => [ + 'Elephone G2' => [ 'Elephone', 'G2' ], + 'Elephone G4' => [ 'Elephone', 'G4' ], + 'Elephone G5' => [ 'Elephone', 'G5' ], + 'Elephone G6' => [ 'Elephone', 'G6' ], + 'Elephone G7' => [ 'Elephone', 'G7' ], + 'Elephone G9' => [ 'Elephone', 'G9' ], + 'Elephone P8 Pro' => [ 'Elephone', 'P8 Pro' ], + 'Elephone-P10C' => [ 'Elephone', 'P10C' ], + 'Elephone-P2000' => [ 'Elephone', 'P2000' ], + 'Elephone P2000' => [ 'Elephone', 'P2000' ], + 'Elephone-P2000C' => [ 'Elephone', 'P2000C' ], + 'Elephone P3000!' => [ 'Elephone', 'P3000' ], + 'Elephone P5000!' => [ 'Elephone', 'P5000' ], + 'Elephone P6000!' => [ 'Elephone', 'P6000' ], + 'Elephone P7000' => [ 'Elephone', 'P7000' ], + 'Elephone P8000!' => [ 'Elephone', 'P8000' ], + 'Elephone S2' => [ 'Elephone', 'S2' ], + 'Elephone S2 Plus' => [ 'Elephone', 'S2 Plus' ], + ], + + 'D709' => [ 'Empire Electronix', 'Tablet D709', DeviceType::TABLET ], + 'C8660' => [ 'Enspire', 'C8660' ], + 'edgejr' => [ 'EnTourage', 'Pocket eDGe', DeviceType::TABLET ], + 'l97D' => [ 'EPad', 'l97D', DeviceType::TABLET ], + 'A1001T' => [ 'Elijah', 'A1001T', DeviceType::TABLET ], + 'ELIYA S1' => [ 'Eliya', 'S1' ], + + 'epade!!' => [ + 'epade A3' => [ 'epade', 'A3' ], + 'epade A7' => [ 'epade', 'A7' ], + 'epade A45' => [ 'epade', 'A45' ], + 'epade A300' => [ 'epade', 'A300' ], + 'epade A360S' => [ 'epade', 'A360S' ], + 'epade A718' => [ 'epade', 'A718' ], + 'epade N01' => [ 'epade', 'N01' ], + 'epade Q3' => [ 'epade', 'Q3' ], + 'epade S300' => [ 'epade', 'S300' ], + 'EPADE S3' => [ 'epade', 'S3' ], + 'epade S5' => [ 'epade', 'S5' ], + 'epade S7' => [ 'epade', 'S7' ], + 'epade V05' => [ 'epade', 'V05' ], + ], + + 'equiso.smart.tv.pro' => [ 'Equiso', 'SmartTV', DeviceType::TELEVISION ], + + 'ST7001' => [ 'Essentiel B', 'Black Diamond' ], + 'ST8000' => [ 'Essentiel B', 'Smart\'Tab 8000', DeviceType::TABLET ], + 'ST9001' => [ 'Essentiel B', 'Smart\'Tab 9001', DeviceType::TABLET ], + + 'eSTAR!!' => [ + 'eSTAR BEAUTY HD Quad core' => [ 'eSTAR', 'Beauty HD', DeviceType::TABLET ], + 'eSTAR CRYSTAL' => [ 'eSTAR', 'Crystal', DeviceType::TABLET ], + 'eSTAR Easy' => [ 'eSTAR', 'Easy', DeviceType::TABLET ], + 'eSTAR GO!' => [ 'eSTAR', 'Go!', DeviceType::TABLET ], + 'eSTAR GRAND' => [ 'eSTAR', 'Grand', DeviceType::TABLET ], + 'eSTAR GRAND HD' => [ 'eSTAR', 'Grand HD', DeviceType::TABLET ], + 'eSTAR GRAND HD Quad 3G' => [ 'eSTAR', 'Grand HD 3G', DeviceType::TABLET ], + 'eSTAR GRAND HD Intel Quad core 3G' => [ 'eSTAR', 'Grand HD 3G', DeviceType::TABLET ], + 'eSTAR Gemini' => [ 'eSTAR', 'Gemini', DeviceType::TABLET ], + 'eSTAR MINI' => [ 'eSTAR', 'Mini', DeviceType::TABLET ], + 'eSTAR MINI 3G' => [ 'eSTAR', 'Mini 3G', DeviceType::TABLET ], + 'eSTAR Zoom Quad' => [ 'eSTAR', 'Zoom', DeviceType::TABLET ], + 'eSTAR ZOOM HD Duo' => [ 'eSTAR', 'Zoom HD', DeviceType::TABLET ], + 'eSTAR Zoom HD Quad' => [ 'eSTAR', 'Zoom HD', DeviceType::TABLET ], + ], + + 'MID1018' => [ 'eSTAR', 'MID1018', DeviceType::TABLET ], + 'MID1028' => [ 'eSTAR', 'MID1028', DeviceType::TABLET ], + 'M4301' => [ 'Eston', 'MID M4301', 'media' ], + 'EVERPAD SC-710' => [ 'Everest', 'Everpad SC-710', DeviceType::TABLET ], + + 'Ever!!' => [ + 'EverClassic' => [ 'Evertek', 'EverClassic' ], + 'EverFancy D40' => [ 'Evertek', 'EverFancy D40' ], + 'EverGlory' => [ 'Evertek', 'EverGlory' ], + 'EverMagic' => [ 'Evertek', 'EverMagic' ], + 'EverMellow D45' => [ 'Evertek', 'EverMellow D45' ], + 'EverMellow D50' => [ 'Evertek', 'EverMellow D50' ], + 'EverMiracle' => [ 'Evertek', 'EverMiracle' ], + 'EverMiracle mini' => [ 'Evertek', 'EverMiracle Mini' ], + 'EverMiracle Nano' => [ 'Evertek', 'EverMiracle Nano' ], + 'EverShine' => [ 'Evertek', 'EverShine' ], + 'EverTrendy' => [ 'Evertek', 'EverTrendy' ], + ], + + 'E70[0-9]{2,2}H[DG]!!' => [ + 'E7020HD' => [ 'Evertek', 'Everpad E7020HD', DeviceType::TABLET ], + 'E7050HD' => [ 'Evertek', 'Everpad E7050HD', DeviceType::TABLET ], + ], + + 'E80[0-9]{2,2}H[DG]!!' => [ + 'E8050HG' => [ 'Evertek', 'Everpad E8050HG', DeviceType::TABLET ], + 'E8051HD' => [ 'Evertek', 'Everpad E8051HD', DeviceType::TABLET ], + ], + + 'P10AN' => [ 'Exper', 'Easypad P10AN', DeviceType::TABLET ], + + '(Explay|X-tremer|ActiveD|Informer|Surfer)!!' => [ + 'Explay A320' => [ 'Explay', 'A320' ], + 'Explay Advance' => [ 'Explay', 'Advance' ], + 'Explay Dream' => [ 'Explay', 'Dream' ], + 'Explay Fresh' => [ 'Explay', 'Fresh' ], + 'Explay Indigo' => [ 'Explay', 'Indigo' ], + 'Explay Infinity' => [ 'Explay', 'Infinity' ], + 'Explay A350' => [ 'Explay', 'Star' ], + 'Explay Star' => [ 'Explay', 'Star' ], + 'Explay Vega' => [ 'Explay', 'Vega' ], + 'X-tremer' => [ 'Explay', 'X-tremer' ], + 'Explay X-tremer' => [ 'Explay', 'X-tremer' ], + 'ActiveD 7.4 3G' => [ 'Explay', 'ActiveD 7.4 3G', DeviceType::TABLET ], + 'Explay Informer 701' => [ 'Explay', 'Informer 701', DeviceType::TABLET ], + 'Informer 701' => [ 'Explay', 'Informer 701', DeviceType::TABLET ], + 'Explay Informer 702' => [ 'Explay', 'Informer 702', DeviceType::TABLET ], + 'Informer-702' => [ 'Explay', 'Informer 702', DeviceType::TABLET ], + 'Explay Informer 703' => [ 'Explay', 'Informer 703', DeviceType::TABLET ], + 'Informer 703' => [ 'Explay', 'Informer 703', DeviceType::TABLET ], + 'Informer 704' => [ 'Explay', 'Informer 704', DeviceType::TABLET ], + 'Informer 705' => [ 'Explay', 'Informer 705', DeviceType::TABLET ], + 'Explay Informer 705' => [ 'Explay', 'Informer 705', DeviceType::TABLET ], + 'Informer-801' => [ 'Explay', 'Informer 801', DeviceType::TABLET ], + 'Explay Informer 801' => [ 'Explay', 'Informer 801', DeviceType::TABLET ], + 'Explay Informer 804' => [ 'Explay', 'Informer 804', DeviceType::TABLET ], + 'informer 901' => [ 'Explay', 'Informer 901', DeviceType::TABLET ], + 'informer 920' => [ 'Explay', 'Informer 920', DeviceType::TABLET ], + 'informer 921' => [ 'Explay', 'Informer 921', DeviceType::TABLET ], + 'Explay Surfer 7.02' => [ 'Explay', 'Surfer 7.02', DeviceType::TABLET ], + 'Surfer7.03' => [ 'Explay', 'Surfer 7.03', DeviceType::TABLET ], + 'Surfer 7.04' => [ 'Explay', 'Surfer 7.04', DeviceType::TABLET ], + 'Surfer 7.31 3G' => [ 'Explay', 'Surfer 7.31 3G', DeviceType::TABLET ], + 'Surfer 7.32 3G' => [ 'Explay', 'Surfer 7.32 3G', DeviceType::TABLET ], + 'Surfer 7.34' => [ 'Explay', 'Surfer 7.34', DeviceType::TABLET ], + 'Explay surfer 8.01' => [ 'Explay', 'Surfer 8.01', DeviceType::TABLET ], + 'Surfer 8 02' => [ 'Explay', 'Surfer 8.02', DeviceType::TABLET ], + 'Surfer 8.02' => [ 'Explay', 'Surfer 8.02', DeviceType::TABLET ], + 'Surfer 8.31 3G' => [ 'Explay', 'Surfer 8.31 3G', DeviceType::TABLET ], + 'Surfer 10.11' => [ 'Explay', 'Surfer 10.11', DeviceType::TABLET ], + ], + + 'Smart!!' => [ + 'Smart402' => [ 'Fareastone', 'Smart 402' ], + 'Smart 403' => [ 'Fareastone', 'Smart 403' ], + 'Smart501' => [ 'Fareastone', 'Smart 501' ], + 'Smart 502' => [ 'Fareastone', 'Smart 502' ], + 'Smart503' => [ 'Fareastone', 'Smart 503' ], + 'Smart 505' => [ 'Fareastone', 'Smart 505' ], + 'Smart 701' => [ 'Fareastone', 'Smart 701', DeviceType::TABLET ], + ], + + 'FP1' => [ 'Fairphone', '1' ], + 'FP1U' => [ 'Fairphone', '1' ], + 'FP2' => [ 'Fairphone', '2' ], + + 'FDT!!' => [ + 'FDT C838' => [ 'FDT', 'C838' ], + 'FDT E5' => [ 'FDT', 'E5' ], + 'FDT E6' => [ 'FDT', 'E6' ], + 'FDT E829' => [ 'FDT', 'E829' ], + 'FDT E969' => [ 'FDT', 'E969' ], + 'FDT G18' => [ 'FDT', 'G18' ], + 'FDT G505' => [ 'FDT', 'G505' ], + ], + + 'GT-[HN][0-9]{4,4}!!' => [ + 'GT-H9001' => [ 'Feiteng', 'GT-H9001' ], + 'GT-H9500' => [ 'Feiteng', 'GT-H9500' ], + 'GT-N9300' => [ 'Feiteng', 'GT-N9300' ], + ], + + 'GT-9000' => [ 'Feiteng', 'H5W' ], + '9300' => [ 'Feiteng', 'GT-N9300' ], + + 'iOCEAN!!' => [ + 'iOCEAN X7' => [ 'FHD', 'iOCEAN X7' ], + 'iOCEAN X7 HD' => [ 'FHD', 'iOCEAN X7 HD' ], + 'iOCEAN X7S' => [ 'FHD', 'iOCEAN X7S' ], + 'iOCEAN X7T' => [ 'FHD', 'iOCEAN X7T' ], + 'iOCEAN X8' => [ 'FHD', 'iOCEAN X8' ], + ], + + 'FIH-!!' => [ + 'FIH-F0X' => [ 'FIH', 'F0X' ], + 'FIH-FBO' => [ 'FIH', 'FBO' ], + 'FIH-FD1' => [ 'FIH', 'FD1' ], + 'FIH-VKY' => [ 'FIH', 'VKY' ], + ], + + 'Vibo-A688' => [ 'FIH', 'Vibo A688' ], + + 'XT[0-9]{3,3}!!' => [ + 'XT712' => [ 'Flipkart', 'Digiflip Pro XT712', DeviceType::TABLET ], + 'XT801' => [ 'Flipkart', 'Digiflip Pro XT801', DeviceType::TABLET ], + 'XT811' => [ 'Flipkart', 'Digiflip Pro XT811', DeviceType::TABLET ], + ], + + 'Fly F[0-9]{2,3}!!' => [ + 'Fly F40' => [ 'Fly', 'F40' ], + 'FLY F45s' => [ 'Fly', 'F45s' ], + 'FLY F50s' => [ 'Fly', 'F50s' ], + 'Fly F350' => [ 'Fly', 'F350' ], + ], + + 'F50Q' => [ 'Fly', 'F50Q' ], + 'FS403' => [ 'Fly', 'FS403 Cumulus 1' ], + 'Fly Phoenix 2' => [ 'Fly', 'IQ4410i Phoenix 2' ], + 'Fly Ego Art 2' => [ 'Fly', 'IQ455 Ego Art 2' ], + + '(Fly )?IQ ?[0-9]{3,4}!!' => [ + '(Fly )?IQ4413!' => [ 'Fly', 'IQ4413 Evo Chic 3' ], + '(Fly )?IQ4417!' => [ 'Fly', 'IQ4417 Quad Era Energy 3' ], + '(Fly )?IQ4516!' => [ 'Fly', 'IQ4516 Tornado Slim' ], + '(Fly )?IQ230!' => [ 'Fly', 'IQ230 Compact' ], + '(Fly )?IQ235!' => [ 'Fly', 'IQ235 Uno' ], + '(Fly )?IQ236!' => [ 'Fly', 'IQ236 Victory' ], + '(Fly )?IQ237!' => [ 'Fly', 'IQ237 Dynamic' ], + '(Fly )?IQ238!' => [ 'Fly', 'IQ238 Jazz' ], + '(Fly )?IQ239!' => [ 'Fly', 'IQ239 Era Nano 2' ], + '(Fly )?IQ240!' => [ 'Fly', 'IQ240 Whizz' ], + '(Fly )?IQ245!' => [ 'Fly', 'IQ245 Wizard' ], + '(Fly )?IQ245 Plus!' => [ 'Fly', 'IQ245 Wizard Plus' ], + '(Fly )?IQ246!' => [ 'Fly', 'IQ246 Power' ], + '(Fly )?IQ250!' => [ 'Fly', 'IQ250 Swift' ], + '(Fly )?IQ255!' => [ 'Fly', 'IQ255 Pride' ], + '(Fly )?IQ256!' => [ 'Fly', 'IQ256 Vogue' ], + '(Fly )?IQ260!' => [ 'Fly', 'IQ260 BlackBird' ], + '(Fly )?IQ270!' => [ 'Fly', 'IQ270 Firebird' ], + '(Fly )?IQ275!' => [ 'Fly', 'IQ275 Marathon' ], + '(Fly )?IQ280!' => [ 'Fly', 'IQ280 Tech' ], + '(Fly )?IQ285!' => [ 'Fly', 'IQ285 Turbo' ], + '(Fly )?IQ310!' => [ 'Fly', 'IQ310 Panorama', DeviceType::TABLET ], + '(Fly )?IQ320!' => [ 'Fly', 'IQ320', DeviceType::TABLET ], + '(Fly )?IQ430!' => [ 'Fly', 'IQ430 Evoke' ], + 'IQ 430' => [ 'Fly', 'IQ430 Evoke' ], + '(Fly )?IQ431!' => [ 'Fly', 'IQ431 Glory' ], + '(Fly )?IQ432!' => [ 'Fly', 'IQ432 Era Nano 1' ], + '(Fly )?IQ434!' => [ 'Fly', 'IQ434 Era Nano 5' ], + '(Fly )?IQ436!' => [ 'Fly', 'IQ434 Era Nano 9' ], + '(Fly )?IQ440!' => [ 'Fly', 'IQ440 Energie' ], + '(Fly )?IQ441!' => [ 'Fly', 'IQ441 Radiance' ], + '(Fly )?IQ442!' => [ 'Fly', 'IQ442 Miracle' ], + '(Fly )?IQ443!' => [ 'Fly', 'IQ443 Trend' ], + '(Fly )?IQ444!' => [ 'Fly', 'IQ444 Diamond' ], + '(Fly )?IQ445!' => [ 'Fly', 'IQ445 Genius' ], + '(Fly )?IQ446!' => [ 'Fly', 'IQ446 Magic' ], + 'IQ 446' => [ 'Fly', 'IQ446 Magic' ], + '(Fly )?IQ447!' => [ 'Fly', 'IQ447 Era Life 1' ], + '(Fly )?IQ448!' => [ 'Fly', 'IQ448 Chic' ], + '(Fly )?IQ449!' => [ 'Fly', 'IQ449 Pronto' ], + '(Fly )?IQ450!' => [ 'Fly', 'IQ450 Horizon' ], + '(Fly )?IQ451!' => [ 'Fly', 'IQ451 Vista' ], + 'IQ 451' => [ 'Fly', 'IQ451 Vista' ], + '(Fly )?IQ452!' => [ 'Fly', 'IQ452 Ego Vision 1' ], + '(Fly )?IQ453!' => [ 'Fly', 'IQ453 Luminor' ], + '(Fly )?IQ454!' => [ 'Fly', 'IQ454 Evo Tech 1' ], + '(Fly )?IQ455!' => [ 'Fly', 'IQ455 Ego Art 2' ], + 'IQ456' => [ 'Fly', 'IQ456 Era Life 2' ], + '(Fly )?IQ458!' => [ 'Fly', 'IQ458 Evo Tech 2' ], + '(Fly )?IQ459!' => [ 'Fly', 'IQ459 Evo Chic 2' ], + 'IQ4601' => [ 'Fly', 'IQ4601 Era Style 2' ], + 'IQ4602 Quad' => [ 'Fly', 'IQ4602 Thunder' ], + ], + + 'Flylife!!' => [ + 'Flylife Connect 7 3G' => [ 'Fly', 'Flylife Connect 7 3G', DeviceType::TABLET ], + 'Flylife Connect 7 3G 2' => [ 'Fly', 'Flylife Connect 7 3G 2', DeviceType::TABLET ], + 'Flylife Connect 7.85 3G 2' => [ 'Fly', 'Flylife Connect 7.85 3G 2', DeviceType::TABLET ], + 'Flylife Connect 7.85 3G Slim' => [ 'Fly', 'Flylife Connect 7.85 3G Slim', DeviceType::TABLET ], + 'Flylife Connect 10.1 3G' => [ 'Fly', 'Flylife Connect 10.1 3G', DeviceType::TABLET ], + 'Flylife Web 7' => [ 'Fly', 'Flylife Web 7', DeviceType::TABLET ], + 'Flylife Web 7.85 Slim' => [ 'Fly', 'Flylife Web 7.85 Slim', DeviceType::TABLET ], + ], + + 'Fly Flylife Web 7.85 Slim' => [ 'Fly', 'Flylife Web 7.85 Slim', DeviceType::TABLET ], + 'F600' => [ 'Flying', 'F600' ], + 'BC1003' => [ 'Flytouch', 'BC1003', DeviceType::TABLET ], + + '(tablet )?fnac!!' => [ + 'fnac 3.5' => [ 'Fnac', 'Smartphone 3.5' ], + 'fnac 4' => [ 'Fnac', 'Smartphone 4' ], + 'fnac 4.5' => [ 'Fnac', 'Smartphone 4.5' ], + 'fnac 5' => [ 'Fnac', 'Smartphone 5' ], + 'fnac 5 HD' => [ 'Fnac', 'Smartphone 5 HD' ], + 'fnac 5.7' => [ 'Fnac', 'Smartphone 5.7' ], + 'tablet Fnac 7' => [ 'Fnac', 'Tablet 7', DeviceType::TABLET ], + 'tablet Fnac 8' => [ 'Fnac', 'Tablet 8', DeviceType::TABLET ], + 'fnac 8 3G v2' => [ 'Fnac', 'Tablet 8 3G v2', DeviceType::TABLET ], + 'tablet Fnac 10' => [ 'Fnac', 'Tablet 10', DeviceType::TABLET ], + 'tablet Fnac 10 3G' => [ 'Fnac', 'Tablet 10 3G', DeviceType::TABLET ], + 'fnac 10 v2' => [ 'Fnac', 'Tablet 10 v2', DeviceType::TABLET ], + 'fnac 3.0 8' => [ 'Fnac', 'Tablet 3.0 8', DeviceType::TABLET ], + 'fnac 3.0 10 Plus' => [ 'Fnac', 'Tablet 3.0 10', DeviceType::TABLET ], + ], + + 'ifive!!' => [ + 'ifive 2' => [ 'FNF', 'iFive 2', DeviceType::TABLET ], + 'ifive2S' => [ 'FNF', 'iFive 2S', DeviceType::TABLET ], + 'ifive3' => [ 'FNF', 'iFive 3', DeviceType::TABLET ], + 'ifive MX' => [ 'FNF', 'iFive MX', DeviceType::TABLET ], + 'ifive X' => [ 'FNF', 'iFive X', DeviceType::TABLET ], + 'ifiveX2' => [ 'FNF', 'iFive X2', DeviceType::TABLET ], + 'ifive X2' => [ 'FNF', 'iFive X2', DeviceType::TABLET ], + 'ifiveX3' => [ 'FNF', 'iFive X3', DeviceType::TABLET ], + 'ifive MINI 2' => [ 'FNF', 'iFive Mini 2', DeviceType::TABLET ], + 'IfiveMini3' => [ 'FNF', 'iFive Mini 3', DeviceType::TABLET ], + 'ifive mini 3GS' => [ 'FNF', 'iFive Mini 3GS', DeviceType::TABLET ], + 'IfiveMini4' => [ 'FNF', 'iFive Mini 4', DeviceType::TABLET ], + ], + + 'Freelander I20' => [ 'Freelander', 'i20' ], + 'PD10-DYD' => [ 'Freelander', 'PD10', DeviceType::TABLET ], + + 'SXZ-PD!!' => [ + 'SXZ-PD10' => [ 'Freelander', 'PD10', DeviceType::TABLET ], + 'SXZ-PDX0-01' => [ 'Freelander', 'PD20', DeviceType::TABLET ], + 'SXZ-PDX0-03' => [ 'Freelander', 'PD90', DeviceType::TABLET ], + 'SXZ-PDX-03' => [ 'Freelander', 'PD90', DeviceType::TABLET ], + ], + + 'NABI!!' => [ + 'NABI-A' => [ 'Fuhu', 'nabi Kids tablet', DeviceType::TABLET ], + 'NABIJR-NV5A' => [ 'Fuhu', 'nabi Jr.', DeviceType::TABLET ], + 'NABIJR-NV5B' => [ 'Fuhu', 'nabi Jr.', DeviceType::TABLET ], + 'NABI2-NV3D' => [ 'Fuhu', 'nabi 2', DeviceType::TABLET ], + 'NABI2-NV7A' => [ 'Fuhu', 'nabi 2', DeviceType::TABLET ], + 'NABI2-NV7A-D' => [ 'Fuhu', 'nabi 2', DeviceType::TABLET ], + 'NABI2-NV7A-IE' => [ 'Fuhu', 'nabi 2', DeviceType::TABLET ], + 'NABI2-NV7A-UK' => [ 'Fuhu', 'nabi 2', DeviceType::TABLET ], + 'NABI2-NV7A-3D' => [ 'Fuhu', 'nabi 2', DeviceType::TABLET ], + 'NABIXD-NV10A' => [ 'Fuhu', 'nabi XD', DeviceType::TABLET ], + 'NABIXD-NV10B' => [ 'Fuhu', 'nabi XD', DeviceType::TABLET ], + 'NABIXD-NV10C' => [ 'Fuhu', 'nabi XD', DeviceType::TABLET ], + ], + + '[0-9]0[0-9]F!!' => [ + '101F' => [ 'Fujitsu', 'ARROWS A 101F', 'carrier' => 'Softbank' ], + '201F' => [ 'Fujitsu', 'ARROWS A 201F', 'carrier' => 'Softbank' ], + '202F' => [ 'Fujitsu', 'ARROWS A 202F', 'carrier' => 'Softbank' ], + '301F' => [ 'Fujitsu', 'ARROWS A 301F', 'carrier' => 'Softbank' ], + ], + + 'ISW?[0-9]{2,2}F!!' => [ + 'ISW11F' => [ 'Fujitsu', 'ARROWS Z ISW11F', 'carrier' => 'au' ], + 'ISW13F' => [ 'Fujitsu', 'ARROWS Z ISW13F', 'carrier' => 'au' ], + 'IS12F' => [ 'Fujitsu', 'ARROWS ES IS12F', 'carrier' => 'au' ], + ], + + 'F-[0-9]{2,2}[A-Z]!!' => [ + 'F-01D' => [ 'Fujitsu', 'ARROWS Tab LTE F-01D', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + 'F-01F' => [ 'Fujitsu', 'ARROWS NX F-01F', 'carrier' => 'DoCoMo' ], + 'F-01H' => [ 'Fujitsu', 'arrows Fit F-01H', 'carrier' => 'DoCoMo' ], + 'F-02E' => [ 'Fujitsu', 'ARROWS X F-02E', 'carrier' => 'DoCoMo' ], + 'F-02F' => [ 'Fujitsu', 'ARROWS Tab F-02F', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + 'F-02G' => [ 'Fujitsu', 'ARROWS NX F-02G', 'carrier' => 'DoCoMo' ], + 'F-02H' => [ 'Fujitsu', 'arrows NX F-02H', 'carrier' => 'DoCoMo' ], + 'F-03D' => [ 'Fujitsu', 'ARROWS Kiss F-03D', 'carrier' => 'DoCoMo' ], + 'F-03E' => [ 'Fujitsu', 'ARROWS Kiss with JILL STUART F-03E', 'carrier' => 'DoCoMo' ], + 'F-03F' => [ 'Fujitsu', 'F-03F', 'carrier' => 'Disney Mobile' ], + 'F-03G' => [ 'Fujitsu', 'ARROWS Tab F-03G', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + 'F-03H' => [ 'Fujitsu', 'arrows SV F-03H', 'carrier' => 'DoCoMo' ], + 'F-04E' => [ 'Fujitsu', 'ARROWS V F-04E', 'carrier' => 'DoCoMo' ], + 'F-04F' => [ 'Fujitsu', 'Business Smartphone F-04F', 'carrier' => 'DoCoMo' ], + 'F-04G' => [ 'Fujitsu', 'ARROWS NX F-04G', 'carrier' => 'DoCoMo' ], + 'F-05D' => [ 'Fujitsu', 'ARROWS X LTE F-05D', 'carrier' => 'DoCoMo' ], + 'F-05E' => [ 'Fujitsu', 'ARROWS Tab F-05E', 'carrier' => 'DoCoMo' ], + 'F-05F' => [ 'Fujitsu', 'ARROWS NX F-05F', 'carrier' => 'DoCoMo' ], + 'F-05G' => [ 'Fujitsu', 'ARROWS F-05G', 'carrier' => 'DoCoMo' ], + 'F-06E' => [ 'Fujitsu', 'ARROWS NX F-06E', 'carrier' => 'DoCoMo' ], + 'F-06F' => [ 'Fujitsu', 'Easy Smartphone 3 F-06F', 'carrier' => 'DoCoMo' ], + 'F-07D' => [ 'Fujitsu', 'ARROWS μ F-07D', 'carrier' => 'DoCoMo' ], + 'F-07E' => [ 'Fujitsu', 'F-07E', 'carrier' => 'Disney Mobile' ], + 'F-08D' => [ 'Fujitsu', 'F-08D', 'carrier' => 'Disney Mobile' ], + 'F-08E' => [ 'Fujitsu', 'Easy Smartphone 2 F-08E', 'carrier' => 'DoCoMo' ], + 'F-09D' => [ 'Fujitsu', 'ANTEPRIMA F-09D', 'carrier' => 'DoCoMo' ], + 'F-09E' => [ 'Fujitsu', 'Easy Smartphone Premium F-09E', 'carrier' => 'DoCoMo' ], + 'F-10D' => [ 'Fujitsu', 'ARROWS X F-10D', 'carrier' => 'DoCoMo' ], + 'F-11D' => [ 'Fujitsu', 'ARROWS Me F-11D', 'carrier' => 'DoCoMo' ], + 'F-12C' => [ 'Fujitsu', 'GLOBE-TROTTER F-12C', 'carrier' => 'DoCoMo' ], + 'F-12D' => [ 'Fujitsu', 'Easy Smartphone F-12D', 'carrier' => 'DoCoMo' ], + ], + + 'f12[a-z]{3,3}!!' => [ + 'f12arc' => [ 'Fujitsu', 'F12arc' ], + 'f12bob' => [ 'Fujitsu', 'F12bob' ], + ], + + 'FJ[LT][0-9]{2,2}!!' => [ + 'FJL21' => [ 'Fujitsu', 'ARROWS ef FJL21', 'carrier' => 'au' ], + 'FJL22' => [ 'Fujitsu', 'ARROWS Z FJL22', 'carrier' => 'au' ], + 'FJT21' => [ 'Fujitsu', 'ARROWS Tab FJT21', DeviceType::TABLET, 'carrier' => 'au' ], + ], + + 'SZJ-JS101' => [ 'Fujitsu', 'SZJ-JS101' ], + + 'FHMD001' => [ 'Fujitsu', 'FHMD001', DeviceType::HEADSET ], + + 'F-074' => [ 'Fujitsu', 'ARROWS μ F-07D', 'carrier' => 'DoCoMo' ], + 'FJJB091' => [ 'Fujitsu', 'ARROWS μ F-07D', 'carrier' => 'DoCoMo' ], + 'EM01F' => [ 'Fujitsu', 'ARROWS S EM01F', 'carrier' => 'EMOBILE' ], + 'M01' => [ 'Fujitsu', 'ARROWS M01' ], + 'M02' => [ 'Fujitsu', 'ARROWS M02' ], + 'RM02' => [ 'Fujitsu', 'ARROWS M02' ], + 'M305' => [ 'Fujitsu', 'ARROWS M305' ], + 'M01T' => [ 'Fujitsu', 'ARROWS Tab M01T', DeviceType::TABLET ], + 'M555' => [ 'Fujitsu', 'ARROWS Tab M555', DeviceType::TABLET ], + 'FAR7' => [ 'Fujitsu', 'ARROWS Tab FAR70A', DeviceType::TABLET ], + 'FAR70B' => [ 'Fujitsu', 'ARROWS Tab FAR70B', DeviceType::TABLET ], + 'FARTM933KZ' => [ 'Fujitsu', 'ARROWS Tab M504', DeviceType::TABLET ], + + 'M350' => [ 'Fujitsu', 'Stylistic M350', DeviceType::TABLET ], + 'M532' => [ 'Fujitsu', 'Stylistic M532', DeviceType::TABLET ], + 'M363' => [ 'Fujitsu', 'Stylistic M363', DeviceType::TABLET ], + 'M702' => [ 'Fujitsu', 'Stylistic M702', DeviceType::TABLET ], + 'MH350' => [ 'Fujitsu', 'Stylistic MH350', DeviceType::TABLET ], + 'S01' => [ 'Fujitsu', 'Stylistic S01', DeviceType::TABLET ], + + 'Patio100' => [ 'Fujitsu', 'Patio100', DeviceType::POS ], + 'Patio100 3G' => [ 'Fujitsu', 'Patio100', DeviceType::POS ], + + 'F&U ETB!!' => [ + 'F&U ETB7506' => [ 'F&U', 'ETB7506', DeviceType::TABLET ], + 'F&U ETB7818' => [ 'F&U', 'ETB7818', DeviceType::TABLET ], + 'F&U ETB9543' => [ 'F&U', 'ETB9543', DeviceType::TABLET ], + 'F&U ETB9544' => [ 'F&U', 'ETB9544', DeviceType::TABLET ], + 'F&U ETB1063' => [ 'F&U', 'ETB1063', DeviceType::TABLET ], + 'F&U ETB1065' => [ 'F&U', 'ETB1065', DeviceType::TABLET ], + ], + + 'Asus A10' => [ 'Garmin-Asus', 'Nuvifone A10' ], + 'Monterra' => [ 'Garmin', 'Monterra', DeviceType::GPS ], + + 'Garmin!!' => [ + 'Garminfone' => [ 'Garmin-Asus', 'Garminfone' ], + 'Garmin-Asus A10' => [ 'Garmin-Asus', 'Nuvifone A10' ], + 'Garmin-Asus A50' => [ 'Garmin-Asus', 'Nuvifone A50' ], + ], + + 'nuvi!!' => [ + 'nuvi 3590' => [ 'Garmin', 'Nuvi 3590', DeviceType::GPS ], + 'nuvi 3592' => [ 'Garmin', 'Nuvi 3592', DeviceType::GPS ], + 'nuvi 3595' => [ 'Garmin', 'Nuvi 3595', DeviceType::GPS ], + 'nuvifone A50' => [ 'Garmin-Asus', 'Nuvifone A50' ], + ], + + 'G1-715' => [ 'Gateway', 'G1-715', DeviceType::TABLET ], + 'G1-725' => [ 'Gateway', 'G1-725', DeviceType::TABLET ], + 'N3-2200' => [ 'Gateway', 'N3-2200', DeviceType::TABLET ], + 'TPA60W' => [ 'Gateway', 'TPA60W', DeviceType::TABLET ], + + '(GP-|Geeksphone)!!' => [ + 'GP-KEON' => [ 'Geeksphone', 'Keon'], + 'GP-PEAK' => [ 'Geeksphone', 'Peak'], + 'Geeksphone ZERO' => [ 'Geeksphone', 'ZERO'], + 'Geeksphone ONE' => [ 'Geeksphone', 'ONE'], + ], + + 'Gemei!!' => [ + 'Gemei G2' => [ 'Gemei', 'G2', DeviceType::TABLET ], + 'Gemei G3' => [ 'Gemei', 'G3', DeviceType::TABLET ], + 'gemei G6' => [ 'Gemei', 'G6', DeviceType::TABLET ], + 'Gemei G9' => [ 'Gemei', 'G9', DeviceType::TABLET ], + 'gemei G9T' => [ 'Gemei', 'G9T', DeviceType::TABLET ], + ], + + 'GEM[0-9]{4,4}!!' => [ + 'GEM7008' => [ 'Gemini', 'JoyTab GEM7008', DeviceType::TABLET ], + 'GEM7020' => [ 'Gemini', 'JoyTab GEM7020', DeviceType::TABLET ], + 'GEM7032G-rev2' => [ 'Gemini', 'JoyTab GEM7032', DeviceType::TABLET ], + 'GEM10313BK' => [ 'Gemini', 'JoyTab GEM10313', DeviceType::TABLET ], + 'GEM10313S' => [ 'Gemini', 'JoyTab GEM10313', DeviceType::TABLET ], + ], + + 'GP-431' => [ 'Genesis', 'GP-431' ], + + 'GT-[0-9]{4,4}!!' => [ + 'GT-7200' => [ 'Genesis', 'Tab GT-7200', DeviceType::TABLET ], + 'GT-7204' => [ 'Genesis', 'Tab GT-7204', DeviceType::TABLET ], + 'GT-7204R' => [ 'Genesis', 'Tab GT-7204R', DeviceType::TABLET ], + 'GT-7240' => [ 'Genesis', 'Tab GT-7240', DeviceType::TABLET ], + 'GT-7240R' => [ 'Genesis', 'Tab GT-7240R', DeviceType::TABLET ], + 'GT-7245' => [ 'Genesis', 'Tab GT-7245', DeviceType::TABLET ], + 'GT-7326' => [ 'Genesis', 'Tab GT-7326', DeviceType::TABLET ], + ], + + 'GP-720' => [ 'Genius', 'GP-720', DeviceType::TABLET ], + + 'G9' => [ 'GFive', 'G9' ], + + 'GFIVE!!' => [ + 'GFIVE A5' => [ 'GFive', 'A5' ], + 'GFIVE A800' => [ 'GFive', 'A800' ], + 'GFIVE Aurora(A79)' => [ 'GFive', 'Aurora' ], + 'GFIVE A68' => [ 'GFive', 'Beam' ], + 'GFIVE Blade (F500)' => [ 'GFive', 'Blade' ], + 'GFIVE Bravo' => [ 'GFive', 'Bravo' ], + 'GFIVE Bravo(G95)' => [ 'GFive', 'Bravo' ], + 'GFIVE A77' => [ 'GFive', 'Bravo' ], + 'GFIVE A57' => [ 'GFive', 'Fanse' ], + 'GFIVE Glory' => [ 'GFive', 'Glory' ], + 'GFIVE Glory(A86)' => [ 'GFive', 'Glory' ], + 'GFIVE A86' => [ 'GFive', 'Glory' ], + 'GFIVE Glory Bee(E670)' => [ 'GFive', 'Glory Bee' ], + 'GFIVE Prado' => [ 'GFive', 'Prado' ], + 'GFIVE President A97' => [ 'GFive', 'President' ], + 'GFIVE president(G6)' => [ 'GFive', 'President' ], + 'GFIVE President(G7)' => [ 'GFive', 'President' ], + 'GFIVE President(G9)' => [ 'GFive', 'President' ], + 'GFIVE G9' => [ 'GFive', 'President' ], + 'GFIVE.G9' => [ 'GFive', 'President' ], + 'GFIVE President G10 Fashion' => [ 'GFive', 'President' ], + 'GFIVE Spark(A1)' => [ 'GFive', 'Spark' ], + 'GFIVE GPad701' => [ 'GFive', 'GPad 701', DeviceType::TABLET ], + ], + + 'GHIA!!' => [ + 'GHIA 20218P' => [ 'Ghia', 'Any 20218P', DeviceType::TABLET ], + 'GHIA 27154P' => [ 'Ghia', 'Any 27154P', DeviceType::TABLET ], + 'GHIA V2.0 27158N' => [ 'Ghia', 'Any 27158N', DeviceType::TABLET ], + 'GHIA 27214P' => [ 'Ghia', 'Any 27214P', DeviceType::TABLET ], + 'GHIA 27258B' => [ 'Ghia', 'Any 27258B', DeviceType::TABLET ], + 'GHIA 27258N' => [ 'Ghia', 'Any 27258N', DeviceType::TABLET ], + 'GHIA V2.0 27258N' => [ 'Ghia', 'Any 27258N', DeviceType::TABLET ], + 'GHIA 29214P' => [ 'Ghia', 'Any 29214P', DeviceType::TABLET ], + ], + + '(Gsmart|Gigabyte|Rio)!!' => [ + 'GSmart Aku A1' => [ 'Gigabyte', 'GSmart Aku A1' ], + 'GSmart Alto A2' => [ 'Gigabyte', 'GSmart Alto A2' ], + 'GSmart Arty A3' => [ 'Gigabyte', 'GSmart Arty A3' ], + 'GSmart Akta A4' => [ 'Gigabyte', 'GSmart Akta A4' ], + 'GSmart Essence 4' => [ 'Gigabyte', 'GSmart Essence 4' ], + 'GSmart-G1305' => [ 'Gigabyte', 'GSmart G1305' ], + 'GSmart G1310' => [ 'Gigabyte', 'GSmart G1310' ], + 'GSmart G1315!' => [ 'Gigabyte', 'GSmart G1315' ], + 'GSmart G1317!' => [ 'Gigabyte', 'GSmart G1317' ], + 'GSmart G1342' => [ 'Gigabyte', 'GSmart G1342' ], + 'GSmart G1345' => [ 'Gigabyte', 'GSmart G1345' ], + 'GSmart G1355' => [ 'Gigabyte', 'GSmart G1355' ], + 'GSmart G1362' => [ 'Gigabyte', 'GSmart G1362' ], + 'GSmart GS202!' => [ 'Gigabyte', 'GSmart GS202' ], + 'GSmart Guru G1' => [ 'Gigabyte', 'GSmart Guru G1' ], + 'GSmart Maya M1' => [ 'Gigabyte', 'GSmart Maya M1' ], + 'GSmart Maya M1v2' => [ 'Gigabyte', 'GSmart Maya M1 v2' ], + 'GSmart Maya M1 v2' => [ 'Gigabyte', 'GSmart Maya M1 v2' ], + 'GSmart Mika M2' => [ 'Gigabyte', 'GSmart Mika M2' ], + 'GSmart Mika M3' => [ 'Gigabyte', 'GSmart Mika M3' ], + 'GSmart Rio R1' => [ 'Gigabyte', 'GSmart Rio R1' ], + 'GIGABYTE GSmart Rio R1' => [ 'Gigabyte', 'GSmart Rio R1' ], + 'Gigabyte RIO R1' => [ 'Gigabyte', 'GSmart Rio R1' ], + 'Rio R1' => [ 'Gigabyte', 'GSmart Rio R1' ], + 'GSmart Roma R2' => [ 'Gigabyte', 'GSmart Roma R2' ], + 'GSmart Rey R3' => [ 'Gigabyte', 'GSmart Rey R3' ], + 'GSmart Saga S3' => [ 'Gigabyte', 'GSmart Saga S3' ], + 'GSmart Sierra S1' => [ 'Gigabyte', 'GSmart Sierra S1' ], + 'GSmart Tuku T2' => [ 'Gigabyte', 'GSmart Tuku T2' ], + 'GSmart T4' => [ 'Gigabyte', 'GSmart T4' ], + 'Gigabyte TB100' => [ 'Gigabyte', 'TB100', DeviceType::TABLET ], + ], + + 'Gigaset!!' => [ + 'Gigaset QV830' => [ 'Gigaset', 'QV830', DeviceType::TABLET ], + 'Gigaset QV831' => [ 'Gigaset', 'QV831', DeviceType::TABLET ], + 'Gigaset QV1030' => [ 'Gigaset', 'QV1030', DeviceType::TABLET ], + ], + + '80-1' => [ 'Gigaset', 'Maxwell 10', DeviceType::DECT ], + 'SL930' => [ 'Gigaset', 'SL930', DeviceType::DECT ], + + '(GIO-)?(GiONEE[- ])?A9$!' => [ 'Gionee', 'A9' ], + '(GIO-)?(GiONEE[- ])?C500!' => [ 'Gionee', 'C500' ], + '(GIO-)?(GiONEE[- ])?C600!' => [ 'Gionee', 'C600' ], + '(GIO-)?(GiONEE[- ])?C610!' => [ 'Gionee', 'C610' ], + '(GIO-)?(GiONEE[- ])?C620!' => [ 'Gionee', 'C620' ], + '(GIO-)?(GiONEE[- ])?C700!' => [ 'Gionee', 'C700' ], + '(GIO-)?(GiONEE[- ])?C800!' => [ 'Gionee', 'C800' ], + '(GIO-)?(GiONEE[- ])?Dream D1!' => [ 'Gionee', 'Dream D1' ], + '(GIO-)?(GiONEE[- ])?E3T!' => [ 'Gionee', 'E3T' ], + '(GIO-)?(GiONEE[- ])?E3$!' => [ 'Gionee', 'E3' ], + '(GIO-)?(GiONEE[- ])?E5$!' => [ 'Gionee', 'E5' ], + '(GIO-)?(GiONEE[- ])?E6mini!' => [ 'Gionee', 'E6 mini' ], + '(GIO-)?(GiONEE[- ])?E6$!' => [ 'Gionee', 'E6' ], + '(GIO-)?(GiONEE[- ])?E6T$!' => [ 'Gionee', 'E6T' ], + '(GIO-)?(GiONEE[- ])?E7$!' => [ 'Gionee', 'E7' ], + '(GIO-)?(GiONEE[- ])?F103!' => [ 'Gionee', 'F103' ], + '(GIO-)?(GiONEE[- ])?F301!' => [ 'Gionee', 'F301' ], + '(GIO-)?(GiONEE[- ])?GN5001!' => [ 'Gionee', 'GN5001' ], + '(GIO-)?(GiONEE[- ])?GN5002!' => [ 'Gionee', 'GN5002' ], + '(GIO-)?(GiONEE[- ])?GN8001!' => [ 'Gionee', 'GN8001' ], + '(GIO-)?(GiONEE[- ])?GN9000!' => [ 'Gionee', 'GN9000' ], + '(GIO-)?(GiONEE[- ])?GN9001!' => [ 'Gionee', 'GN9001' ], + '(GIO-)?(GiONEE[- ])?GN9002!' => [ 'Gionee', 'GN9002' ], + '(GIO-)?(GiONEE[- ])?GN9004!' => [ 'Gionee', 'GN9004' ], + '(GIO-)?(GiONEE[- ])?GN9005!' => [ 'Gionee', 'GN9005' ], + '(GIO-)?(GiONEE[- ])?GN9006!' => [ 'Gionee', 'GN9006' ], + '(GIO-)?(GiONEE[- ])?GN9007!' => [ 'Gionee', 'GN9007' ], + '(GIO-)?(GiONEE[- ])?GN9008!' => [ 'Gionee', 'GN9008' ], + '(GIO-)?(GiONEE[- ])?GN9010!' => [ 'Gionee', 'GN9010' ], + '(GIO-)?(GiONEE[- ])?GN100T!' => [ 'Gionee', 'GN100T' ], + '(GIO-)?(GiONEE[- ])?GN100!' => [ 'Gionee', 'GN100' ], + '(GIO-)?(GiONEE[- ])?GN105!' => [ 'Gionee', 'GN105' ], + '(GIO-)?(GiONEE[- ])?GN106!' => [ 'Gionee', 'GN106' ], + '(GIO-)?(GiONEE[- ])?GN107!' => [ 'Gionee', 'GN107' ], + '(GIO-)?(GiONEE[- ])?GN108!' => [ 'Gionee', 'GN108' ], + '(GIO-)?(GiONEE[- ])?GN109!' => [ 'Gionee', 'GN109' ], + '(GIO-)?(GiONEE[- ])?GN135!' => [ 'Gionee', 'GN135' ], + '(GIO-)?(GiONEE[- ])?GN136!' => [ 'Gionee', 'GN136' ], + '(GIO-)?(GiONEE[- ])?GN137!' => [ 'Gionee', 'GN137' ], + '(GIO-)?(GiONEE[- ])?GN139!' => [ 'Gionee', 'GN139' ], + '(GIO-)?(GiONEE[- ])?GN150!' => [ 'Gionee', 'GN150' ], + '(GIO-)?(GiONEE[- ])?GN151!' => [ 'Gionee', 'GN151' ], + '(GIO-)?(GiONEE[- ])?GN152!' => [ 'Gionee', 'GN152' ], + '(GIO-)?(GiONEE[- ])?GN160T!' => [ 'Gionee', 'GN160T' ], + '(GIO-)?(GiONEE[- ])?GN160!' => [ 'Gionee', 'GN160' ], + '(GIO-)?(GiONEE[- ])?GN168T!' => [ 'Gionee', 'GN168T' ], + '(GIO-)?(GiONEE[- ])?GN170!' => [ 'Gionee', 'GN170' ], + '(GIO-)?(GiONEE[- ])?GN180!' => [ 'Gionee', 'GN180' ], + '(GIO-)?(GiONEE[- ])?GN181!' => [ 'Gionee', 'GN181' ], + '(GIO-)?(GiONEE[- ])?GN200!' => [ 'Gionee', 'GN200' ], + '(GIO-)?(GiONEE[- ])?GN205!' => [ 'Gionee', 'GN205' ], + '(GIO-)?(GiONEE[- ])?GN210!' => [ 'Gionee', 'GN210' ], + '(GIO-)?(GiONEE[- ])?GN305!' => [ 'Gionee', 'GN305' ], + '(GIO-)?(GiONEE[- ])?GN320!' => [ 'Gionee', 'GN320' ], + '(GIO-)?(GiONEE[- ])?GN360!' => [ 'Gionee', 'GN360' ], + '(GIO-)?(GiONEE[- ])?GN380!' => [ 'Gionee', 'GN380' ], + '(GIO-)?(GiONEE[- ])?GN600!' => [ 'Gionee', 'GN600' ], + '(GIO-)?(GiONEE[- ])?GN700T!' => [ 'Gionee', 'GN700T' ], + '(GIO-)?(GiONEE[- ])?GN700W!' => [ 'Gionee', 'GN700W' ], + '(GIO-)?(GiONEE[- ])?GN705T!' => [ 'Gionee', 'GN705T' ], + '(GIO-)?(GiONEE[- ])?GN705W!' => [ 'Gionee', 'GN705W' ], + '(GIO-)?(GiONEE[- ])?GN706L!' => [ 'Gionee', 'GN706L' ], + '(GIO-)?(GiONEE[- ])?GN708T!' => [ 'Gionee', 'GN708T' ], + 'GN 708T' => [ 'Gionee', 'GN708T' ], + '(GIO-)?(GiONEE[- ])?GN708W!' => [ 'Gionee', 'GN708W' ], + 'GPLUS GN708W' => [ 'Gionee', 'GN708W' ], + '(GIO-)?(GiONEE[- ])?GN787!' => [ 'Gionee', 'GN787' ], + '(GIO-)?(GiONEE[- ])?GN800!' => [ 'Gionee', 'GN800' ], + '(GIO-)?(GiONEE[- ])?GN810!' => [ 'Gionee', 'GN810' ], + '(GIO-)?(GiONEE[- ])?GN818T!' => [ 'Gionee', 'GN818T' ], + '(GIO-)?(GiONEE[- ])?GN858!' => [ 'Gionee', 'GN858' ], + '(GIO-)?(GiONEE[- ])?GN868!' => [ 'Gionee', 'GN868' ], + '(GIO-)?(GiONEE[- ])?GN878!' => [ 'Gionee', 'GN878' ], + 'Gionee M1' => [ 'Gionee', 'M1' ], + 'Gionee M2' => [ 'Gionee', 'M2' ], + 'Gionee M3S' => [ 'Gionee', 'M3S' ], + 'Gionee M5' => [ 'Gionee', 'M5' ], + 'GPLUS N809' => [ 'Gionee', 'N809' ], + '(GIO-)?(GiONEE[- ])?S101!' => [ 'Gionee', 'S101' ], + 'GiONEE TD500' => [ 'Gionee', 'TD500' ], + '(GIO-)?(GiONEE[- ])?V182!' => [ 'Gionee', 'V182' ], + '(GIO-)?(GiONEE[- ])?V185!' => [ 'Gionee', 'V185' ], + '(GIO-)?(GiONEE[- ])?V188!' => [ 'Gionee', 'V188' ], + '(GIO-)?(GiONEE[- ])?W800!' => [ 'Gionee', 'W800' ], + '(GIO-)?(GiONEE[- ])?X817!' => [ 'Gionee', 'X817' ], + '(GIO-)?(GiONEE[- ])?Ctrl V1!' => [ 'Gionee', 'CTRL V1' ], + '(GIO-)?(GiONEE[- ])?Ctrl V2!' => [ 'Gionee', 'CTRL V2' ], + '(GIO-)?(GiONEE[- ])?Ctrl V3!' => [ 'Gionee', 'CTRL V3' ], + '(GIO-)?(GiONEE[- ])?Ctrl V4!' => [ 'Gionee', 'CTRL V4' ], + '(GIO-)?(GiONEE[- ])?Ctrl V5!' => [ 'Gionee', 'CTRL V5' ], + '(GIO-)?(GiONEE[- ])?Pioneer P1!' => [ 'Gionee', 'Pioneer P1' ], + '(GIO-)?(GiONEE[- ])?Pioneer P2!' => [ 'Gionee', 'Pioneer P2' ], + '(GIO-)?(GiONEE[- ])?Pioneer P3!' => [ 'Gionee', 'Pioneer P3' ], + '(GIO-)?(GiONEE[- ])?Pioneer P4!' => [ 'Gionee', 'Pioneer P4' ], + 'Gionee P3' => [ 'Gionee', 'Pioneer P3' ], + 'Gionee P4' => [ 'Gionee', 'Pioneer P4' ], + 'GiONEE S7' => [ 'Gionee', 'Elife S7' ], + '(GIO-)?(GiONEE[- ])?Gpad G1!' => [ 'Gionee', 'GPAD G1', DeviceType::TABLET ], + '(GIO-)?(GiONEE[- ])?Gpad G2!' => [ 'Gionee', 'GPAD G2', DeviceType::TABLET ], + '(GIO-)?(GiONEE[- ])?Gpad G3!' => [ 'Gionee', 'GPAD G3', DeviceType::TABLET ], + 'GL-900' => [ 'GlobusGPS', 'GL-900', DeviceType::GPS ], + + 'GLX!!' => [ + 'GLX Jet' => [ 'GLX', 'Jet', DeviceType::TABLET ], + 'GLX Luster a' => [ 'GLX', 'Luster', DeviceType::TABLET ], + 'GLX SpiderI' => [ 'GLX', 'Spider', DeviceType::TABLET ], + ], + + 'GOCL!!' => [ + 'GOCLEVER ANDROID BOX 500' => [ 'Goclever', 'Android Box 500', ], + 'GOCLEVER' => [ 'Goclever', 'TAB', DeviceType::TABLET ], + 'GOCLEVER TAB A73' => [ 'Goclever', 'TAB A73', DeviceType::TABLET ], + 'GOCLEVER TAB A93' => [ 'Goclever', 'TAB A93', DeviceType::TABLET ], + 'GOCLEVER TAB A93.2' => [ 'Goclever', 'TAB A93', DeviceType::TABLET ], + 'GOCLEVER TAB A101' => [ 'Goclever', 'TAB A101', DeviceType::TABLET ], + 'GOCLEVER TAB A103' => [ 'Goclever', 'TAB A103', DeviceType::TABLET ], + 'GOCLEVER A103' => [ 'Goclever', 'TAB A103', DeviceType::TABLET ], + 'GOCLEVER TAB A104!' => [ 'Goclever', 'TAB A104', DeviceType::TABLET ], + 'GOCLEVER TAB A971' => [ 'Goclever', 'TAB A971', DeviceType::TABLET ], + 'GOCLEVER TAB A972BK' => [ 'Goclever', 'TAB A972', DeviceType::TABLET ], + 'GOCLEVER TAB I71' => [ 'Goclever', 'TAB I71', DeviceType::TABLET ], + 'GOCLEVER TAB M703G' => [ 'Goclever', 'TAB M703G', DeviceType::TABLET ], + 'GOCLEVER TAB M713G' => [ 'Goclever', 'TAB M713G', DeviceType::TABLET ], + 'GOCLEVER TAB M723G' => [ 'Goclever', 'TAB M723G', DeviceType::TABLET ], + 'GOCLEVER TAB M813G' => [ 'Goclever', 'TAB M813G', DeviceType::TABLET ], + 'GOCLEVER TAB R70' => [ 'Goclever', 'TAB R70', DeviceType::TABLET ], + 'GOCLEVER TAB R76.1' => [ 'Goclever', 'TAB R76', DeviceType::TABLET ], + 'GOCLEVER TAB R104' => [ 'Goclever', 'TAB R104', DeviceType::TABLET ], + 'GOCLEVER TAB R106' => [ 'Goclever', 'TAB R106', DeviceType::TABLET ], + 'GOCLEVER TAB T75' => [ 'Goclever', 'TAB T75', DeviceType::TABLET ], + 'GOCLEVER TAB T76' => [ 'Goclever', 'TAB T76', DeviceType::TABLET ], + 'GOCLEVER TAB 9300' => [ 'Goclever', 'TAB 9300', DeviceType::TABLET ], + 'GOCLM7000KD' => [ 'Goclever', 'Terra 70', DeviceType::TABLET ], + 'GOCLEVER HYBRID' => [ 'Goclever', 'Hybrid', DeviceType::TABLET ], + 'GOCLEVER NETBOOK I102' => [ 'Goclever', 'Netbook I102' ], + 'GOCLEVER NETBOOK R103' => [ 'Goclever', 'Netbook R103' ], + ], + + 'ARIES 101' => [ 'Goclever', 'ARIES 101', DeviceType::TABLET ], + 'ARIES 785' => [ 'Goclever', 'ARIES 785', DeviceType::TABLET ], + 'INSIGNIA 5' => [ 'Goclever', 'INSIGNIA 5' ], + 'INSIGNIA 5X' => [ 'Goclever', 'INSIGNIA 5X' ], + 'QUANTUM 4' => [ 'Goclever', 'QUANTUM 4' ], + 'QUANTUM 700m' => [ 'Goclever', 'QUANTUM 700M' ], + 'QUANTUM 1010N' => [ 'Goclever', 'QUANTUM 1010N' ], + + 'GO Live!!' => [ + 'GO Live S1' => [ 'GoLive', 'S1' ], + 'GO Live Dual Core' => [ 'GoLive', 'Dual Core' ], + ], + + 'GOOPHONE!!' => [ + 'GOOPHONE i5C' => [ 'Goophone', 'i5C' ], + 'GOOPHONE i5S' => [ 'Goophone', 'i5S' ], + 'Goophone i9' => [ 'Goophone', 'i9' ], + 'GOOPHONE M3+' => [ 'Goophone', 'M3+' ], + 'GooPhone S5 Pro' => [ 'Goophone', 'S5 Pro' ], + 'GOOPHONE X1' => [ 'Goophone', 'X1' ], + 'GOOPHONE X7' => [ 'Goophone', 'X7' ], + ], + + 'CHONG!!' => [ + 'GHONG T618' => [ 'Guohong', 'T618' ], + 'GHONGV10' => [ 'Guohong', 'V10' ], + 'GHONGV12' => [ 'Guohong', 'V12' ], + 'GHONG W100' => [ 'Guohong', 'W100' ], + ], + + 'M758A' => [ 'Gpad', 'M758A', DeviceType::TABLET ], + + 'GO !!' => [ + 'GO M1' => [ 'GreenOrange', 'M1' ], + 'GO M2' => [ 'GreenOrange', 'M2' ], + 'GO M2S' => [ 'GreenOrange', 'M2S' ], + 'GO M3' => [ 'GreenOrange', 'M3' ], + 'GO N1' => [ 'GreenOrange', 'N1' ], + 'GO N1-Y' => [ 'GreenOrange', 'N1-Y' ], + 'GO N1S' => [ 'GreenOrange', 'N1S' ], + 'GO N2' => [ 'GreenOrange', 'N2' ], + 'GO NX' => [ 'GreenOrange', 'NX' ], + 'GO S2' => [ 'GreenOrange', 'S2' ], + ], + + 'GR-TB!!' => [ + 'GR-TB7' => [ 'Grundig', 'Style Tab GR-TB7', DeviceType::TABLET ], + 'GR-TB10S' => [ 'Grundig', 'Style Tab GR-TB10S', DeviceType::TABLET ], + ], + + 'GVON 898' => [ 'Gvon', 'Aero 898' ], + + '(Haier[- ])?H[ETW]- ?[A-Z][0-9]!!' => [ + '(Haier[- ])?HE-E80!' => [ 'Haier', 'E80' ], + '(Haier[- ])?HE-E617!' => [ 'Haier', 'E617' ], + '(Haier[- ])?HE-E700!' => [ 'Haier', 'E700' ], + '(Haier[- ])?HE-E760!' => [ 'Haier', 'E760' ], + '(Haier[- ])?HT-I600!' => [ 'Haier', 'I600' ], + '(Haier[- ])?HT-I617!' => [ 'Haier', 'I617' ], + '(Haier[- ])?HT-I619!' => [ 'Haier', 'I619' ], + '(Haier[- ])?HT-I710!' => [ 'Haier', 'I710' ], + '(Haier[- ])?HT-I736!' => [ 'Haier', 'I736' ], + '(Haier[- ])?HT-I756!' => [ 'Haier', 'I756' ], + '(Haier[- ])?HT-I816!' => [ 'Haier', 'I816' ], + '(Haier[- ])?HT-I860!' => [ 'Haier', 'I860' ], + '(Haier[- ])?HT-I928!' => [ 'Haier', 'I928' ], + '(Haier[- ])?HW-N66W!' => [ 'Haier', 'N66W' ], + '(Haier[- ])?HW-N86W!' => [ 'Haier', 'N86W' ], + '(Haier[- ])?(HW-)?N88W!' => [ 'Haier', 'N88W' ], + '(Haier[- ])?HW-N620E!' => [ 'Haier', 'N620E' ], + '(Haier[- ])?HW-N800!' => [ 'Haier', 'N800' ], + '(Haier[- ])?(HW-)?W716!' => [ 'Haier', 'W716' ], + '(Haier[- ])?(HW-)?W718!' => [ 'Haier', 'W718' ], + '(Haier[- ])?HW-W820!' => [ 'Haier', 'W820' ], + '(Haier[- ])?HW-W850!' => [ 'Haier', 'W850' ], + '(Haier[- ])?HW-W860!' => [ 'Haier', 'W860' ], + '(Haier[- ])?HW-W910!' => [ 'Haier', 'W910' ], + ], + + 'Haier-W700' => [ 'Haier', 'W700' ], + 'W757' => [ 'Haier', 'W757' ], + 'Haier-SY0880' => [ 'Haier', 'SY0880' ], + '(LE[0-9]{2,2}[BMU][0-9]{4,4}[A-Z]+)!' => [ 'Haier', '$1', DeviceType::TELEVISION ], + + 'Zio P2' => [ 'Haier', 'Zio P2' ], + + 'PAD[0-9]{3,3}!!' => [ + 'PAD511' => [ 'Haier', 'Pad 511', DeviceType::TABLET ], + 'PAD711' => [ 'Haier', 'Pad 711', DeviceType::TABLET ], + 'PAD722' => [ 'Haier', 'Pad 722', DeviceType::TABLET ], + 'PAD821' => [ 'Haier', 'Pad 821', DeviceType::TABLET ], + 'PAD822' => [ 'Haier', 'Pad 822', DeviceType::TABLET ], + ], + + 'I9220' => [ 'Haipai', 'I9220' ], + 'GT-i9377' => [ 'Haipai', 'I9377' ], + 'X710d' => [ 'Haipai', 'X710D' ], + 'X720D' => [ 'Haipai', 'X720D' ], + + 'SN[0-9]!!' => [ + 'SN10T1' => [ 'HANNspree', 'HANNSpad SN10T1', DeviceType::TABLET ], + 'SN10T2' => [ 'HANNspree', 'HANNSpad SN10T2', DeviceType::TABLET ], + 'SN14T71' => [ 'HANNspree', 'HANNSpad SN14T71', DeviceType::TABLET ], + 'SN97T41W' => [ 'HANNspree', 'HANNSpad SN97T41W', DeviceType::TABLET ], + 'SN1AT71W(B)' => [ 'HANNspree', 'HANNSpad SN1AT71WB', DeviceType::TABLET ], + ], + + 'HannsComb' => [ 'HANNspree', 'HANNSpad', DeviceType::TABLET ], + 'Hannspadd' => [ 'HANNspree', 'HANNSpad', DeviceType::TABLET ], + + '(EVAS )?EVERCOSS[- ]A!!' => [ + 'EVERCOSS A5' => [ 'Harga', 'EVERCOSS A5' ], + 'EVERCOSS A5A*' => [ 'Harga', 'EVERCOSS A5A' ], + 'EVERCOSS A5C' => [ 'Harga', 'EVERCOSS A5C' ], + 'EVERCOSS A5K' => [ 'Harga', 'EVERCOSS A5K' ], + 'EVERCOSS A5P*' => [ 'Harga', 'EVERCOSS A5P' ], + 'EVERCOSS A5V' => [ 'Harga', 'EVERCOSS A5V' ], + 'EVERCOSS A5Z' => [ 'Harga', 'EVERCOSS A5Z' ], + 'EVERCOSS A7A' => [ 'Harga', 'EVERCOSS A7A' ], + 'EVERCOSS A7A*' => [ 'Harga', 'EVERCOSS A7A' ], + 'EVERCOSS A7B' => [ 'Harga', 'EVERCOSS A7B' ], + 'EVERCOSS A7F' => [ 'Harga', 'EVERCOSS A7F' ], + 'EVERCOSS A7K' => [ 'Harga', 'EVERCOSS A7K' ], + 'EVERCOSS A7L' => [ 'Harga', 'EVERCOSS A7L' ], + 'EVERCOSS A7N' => [ 'Harga', 'EVERCOSS A7N' ], + 'EVERCOSS A7R' => [ 'Harga', 'EVERCOSS A7R' ], + 'EVERCOSS A7S' => [ 'Harga', 'EVERCOSS A7S' ], + 'EVAS evercoss-a7s' => [ 'Harga', 'EVERCOSS A7S' ], + 'EVERCOSS A7T' => [ 'Harga', 'EVERCOSS A7T' ], + 'EVERCOSS A7T*' => [ 'Harga', 'EVERCOSS A7T' ], + 'EVERCOSS A7V' => [ 'Harga', 'EVERCOSS A7V' ], + 'EVERCOSS A7V+' => [ 'Harga', 'EVERCOSS A7V' ], + 'EVERCOSS A7Z' => [ 'Harga', 'EVERCOSS A7Z' ], + 'EVERCOSS A28A' => [ 'Harga', 'EVERCOSS A28A' ], + 'EVERCOSS A28M' => [ 'Harga', 'EVERCOSS A28M' ], + 'EVERCOSS A65' => [ 'Harga', 'EVERCOSS A65' ], + 'Evercoss A66A' => [ 'Harga', 'EVERCOSS A66A' ], + 'EVERCOSS A66S' => [ 'Harga', 'EVERCOSS A66S' ], + 'EVERCOSS A66V' => [ 'Harga', 'EVERCOSS A66V' ], + 'EVERCOSS A74A' => [ 'Harga', 'EVERCOSS A74A' ], + 'EVERCOSS A74C' => [ 'Harga', 'EVERCOSS A74C' ], + 'EVERCOSS A74D' => [ 'Harga', 'EVERCOSS A74D' ], + 'EVERCOSS-A75L' => [ 'Harga', 'EVERCOSS A75L' ], + 'EVERCOSS A75W' => [ 'Harga', 'EVERCOSS A75W' ], + 'EVERCOSS A80A' => [ 'Harga', 'EVERCOSS A80A' ], + 'EVERCOSS A200' => [ 'Harga', 'EVERCOSS A200' ], + 'EVERCOSS AT1A' => [ 'Harga', 'EVERCOSS AT1A', DeviceType::TABLET ], + 'EVERCOSS AT1A*' => [ 'Harga', 'EVERCOSS AT1A', DeviceType::TABLET ], + 'EVERCOSS AT1G' => [ 'Harga', 'EVERCOSS AT1G', DeviceType::TABLET ], + 'EVERCOSS AT8D' => [ 'Harga', 'EVERCOSS AT8D', DeviceType::TABLET ], + ], + + 'AT1A*' => [ 'Harga', 'EVERCOSS AT1A', DeviceType::TABLET ], + 'AT1C' => [ 'Harga', 'EVERCOSS AT1C', DeviceType::TABLET ], + 'AT1C*' => [ 'Harga', 'EVERCOSS AT1C', DeviceType::TABLET ], + 'AT1D' => [ 'Harga', 'EVERCOSS AT1D', DeviceType::TABLET ], + 'AT1G*' => [ 'Harga', 'EVERCOSS AT1G', DeviceType::TABLET ], + + 'MITO!!' => [ + 'MITO A10' => [ 'Harga', 'MITO A10' ], + 'MITO A15' => [ 'Harga', 'MITO A15' ], + 'MITO A18' => [ 'Harga', 'MITO A18' ], + 'MITO A30' => [ 'Harga', 'MITO A30' ], + 'MITO A38' => [ 'Harga', 'MITO A38' ], + 'MITO A50' => [ 'Harga', 'MITO A50' ], + 'MITO A55' => [ 'Harga', 'MITO A55' ], + 'MITO A60' => [ 'Harga', 'MITO A60' ], + 'MITO A68' => [ 'Harga', 'MITO A68' ], + 'MITO 68' => [ 'Harga', 'MITO A68' ], + 'MITO A72' => [ 'Harga', 'MITO A72' ], + 'MITO A75' => [ 'Harga', 'MITO A75' ], + 'MITO A77' => [ 'Harga', 'MITO A77' ], + 'MITO A78' => [ 'Harga', 'MITO A78' ], + 'MITO A80' => [ 'Harga', 'MITO A80' ], + 'MITO A95' => [ 'Harga', 'MITO A95' ], + 'MITO A99' => [ 'Harga', 'MITO A99' ], + 'MITO A100' => [ 'Harga', 'MITO A100' ], + 'MITO A120' => [ 'Harga', 'MITO A120' ], + 'MITO A180' => [ 'Harga', 'MITO A180' ], + 'MITO A200' => [ 'Harga', 'MITO A200' ], + 'MITO A210' => [ 'Harga', 'MITO A210' ], + 'MITO A220' => [ 'Harga', 'MITO A220' ], + 'MITO A222' => [ 'Harga', 'MITO A222' ], + 'MITO A250' => [ 'Harga', 'MITO A250' ], + 'MITO A260' => [ 'Harga', 'MITO A260' ], + 'MITO A300' => [ 'Harga', 'MITO A300' ], + 'MITO A310' => [ 'Harga', 'MITO A310' ], + 'MITO A313' => [ 'Harga', 'MITO A313' ], + 'MITO A322' => [ 'Harga', 'MITO A322' ], + 'MITO A330' => [ 'Harga', 'MITO A330' ], + 'MITO A350' => [ 'Harga', 'MITO A350' ], + 'MITO A355' => [ 'Harga', 'MITO A355' ], + 'MITO A360' => [ 'Harga', 'MITO A360' ], + 'MITO A363' => [ 'Harga', 'MITO A363' ], + 'MITO A390' => [ 'Harga', 'MITO A390' ], + 'MITO A660' => [ 'Harga', 'MITO A660' ], + 'MITO A700' => [ 'Harga', 'MITO A700' ], + 'MITO A750' => [ 'Harga', 'MITO A750' ], + 'MITO A780' => [ 'Harga', 'MITO A780' ], + 'MITOA800' => [ 'Harga', 'MITO A800' ], + 'MITO A810' => [ 'Harga', 'MITO A810' ], + 'MITO A850' => [ 'Harga', 'MITO A850' ], + 'MITO T10' => [ 'Harga', 'MITO T10', DeviceType::TABLET ], + 'MITO T77' => [ 'Harga', 'MITO T77', DeviceType::TABLET ], + 'MITO T80' => [ 'Harga', 'MITO T80', DeviceType::TABLET ], + 'MITO T81' => [ 'Harga', 'MITO T81', DeviceType::TABLET ], + 'MITO T100' => [ 'Harga', 'MITO T100', DeviceType::TABLET ], + 'MITO t300' => [ 'Harga', 'MITO T300', DeviceType::TABLET ], + 'MITO T330' => [ 'Harga', 'MITO T330', DeviceType::TABLET ], + 'MITO t510' => [ 'Harga', 'MITO T510', DeviceType::TABLET ], + 'MITO t550' => [ 'Harga', 'MITO T550', DeviceType::TABLET ], + 'MITO T660' => [ 'Harga', 'MITO T660', DeviceType::TABLET ], + 'MITO T777' => [ 'Harga', 'MITO T777', DeviceType::TABLET ], + 'MITO T888' => [ 'Harga', 'MITO T888', DeviceType::TABLET ], + 'MITO T979' => [ 'Harga', 'MITO T979', DeviceType::TABLET ], + ], + + 'Snexian!!' => [ + 'Snexian Mi320' => [ 'Harga', 'Nexian Chronos Mi320' ], + 'Snexian Mi430' => [ 'Harga', 'Nexian Xtreme2 Mi430' ], + ], + + 'Mi438S' => [ 'Harga', 'Nexian Journey One Mi438' ], + 'U1' => [ 'HCL', 'ME U1', DeviceType::TABLET ], + 'X1' => [ 'HCL', 'ME X1', DeviceType::TABLET ], + 'Y2' => [ 'HCL', 'ME Y2', DeviceType::TABLET ], + 'Connect-2G-2.0' => [ 'HCL', 'ME Connect 2G 2.0', DeviceType::TABLET ], + 'H701' => [ 'Hedy', 'H701' ], + + 'HEDY!!' => [ + 'HEDY H701' => [ 'Hedy', 'H701' ], + 'HEDY H712' => [ 'Hedy', 'H712' ], + 'HEDY H770' => [ 'Hedy', 'H770' ], + 'HEDY S801' => [ 'Hedy', 'S801' ], + 'HEDY S803' => [ 'Hedy', 'S803' ], + 'HEDY T700' => [ 'Hedy', 'T700' ], + ], + + '9300+' => [ 'Hero', '9300+' ], + 'H2000+' => [ 'Hero', 'H2000+' ], + 'H7100' => [ 'Hero', 'H7100' ], + 'H7500+' => [ 'Hero', 'H7500+' ], + 'HERO H7500+' => [ 'Hero', 'H7500+' ], + 'H9500' => [ 'Hero', 'H9500' ], + 'MID Ser(ai|ia)ls!' => [ 'Herotab', 'C8', DeviceType::TABLET ], + + '(Highscreen|Alpha|Bay|Cosmo|Explosion|Power|Prime|Zera)!!' => [ + 'Alpha Ice' => [ 'Highscreen', 'Alpha Ice' ], + 'Alpha GT' => [ 'Highscreen', 'Alpha GT' ], + 'Alpha GTR' => [ 'Highscreen', 'Alpha GTR' ], + 'HIGHSCREEN GTR' => [ 'Highscreen', 'Alpha GTR' ], + 'Alpha GTX' => [ 'Highscreen', 'Alpha GTX' ], + 'Alpha R' => [ 'Highscreen', 'Alpha R' ], + 'Alpha Rage' => [ 'Highscreen', 'Alpha Rage' ], + 'Bay' => [ 'Highscreen', 'Bay' ], + 'HighScreen Boost' => [ 'Highscreen', 'Boost' ], + 'Cosmo' => [ 'Highscreen', 'Cosmo', DeviceType::TABLET ], + 'COSMO DUO' => [ 'Highscreen', 'Cosmo Duo', DeviceType::TABLET ], + 'Explosion' => [ 'Highscreen', 'Explosion' ], + 'HIGHSCREEN Jet Duo' => [ 'Highscreen', 'Jet Duo', DeviceType::TABLET ], + 'PowerFive' => [ 'Highscreen', 'Power Five' ], + 'PowerFour' => [ 'Highscreen', 'Power Four' ], + 'Power Ice' => [ 'Highscreen', 'Power Ice' ], + 'Power Rage' => [ 'Highscreen', 'Power Rage' ], + 'Prime L' => [ 'Highscreen', 'Prime L' ], + 'Highscreen Spark' => [ 'Highscreen', 'Spark' ], + 'ZeraF' => [ 'Highscreen', 'Zera F' ], + 'Zera F' => [ 'Highscreen', 'Zera F' ], + 'Zera f rev.S' => [ 'Highscreen', 'Zera F' ], + 'Zera S' => [ 'Highscreen', 'Zera S' ], + 'Zera S Rev.S' => [ 'Highscreen', 'Zera S' ], + 'Zera-S-Power' => [ 'Highscreen', 'Zera S Power' ], + ], + + 'HLV-T!!' => [ + 'HLV-T701' => [ 'Hi-Level', 'HLV-T701', DeviceType::TABLET ], + 'HLV-T702' => [ 'Hi-Level', 'HLV-T702', DeviceType::TABLET ], + 'HLV-T704' => [ 'Hi-Level', 'HLV-T704', DeviceType::TABLET ], + 'HLV-T707' => [ 'Hi-Level', 'HLV-T707', DeviceType::TABLET ], + 'HLV-T1001W' => [ 'Hi-Level', 'HLV-T1001W', DeviceType::TABLET ], + 'HLV-T1002W' => [ 'Hi-Level', 'HLV-T1002W', DeviceType::TABLET ], + 'HLV-T9701' => [ 'Hi-Level', 'HLV-T9701', DeviceType::TABLET ], + 'HLV-TN75' => [ 'Hi-Level', 'HLV-TN75', DeviceType::TABLET ], + ], + + 'HIKe!!' => [ + 'HIKe 716' => [ 'HIKe', 'Q1' ], + 'HIKe 818' => [ 'HIKe', 'Pandora 2' ], + 'HIKe 828' => [ 'HIKe', 'X1' ], + 'HIKe 828A' => [ 'HIKe', 'X1' ], + 'HIKe 848' => [ 'HIKe', 'X2' ], + 'HIKe 868' => [ 'HIKe', 'Z1' ], + ], + + 'HILIVE H7' => [ 'Hilive', 'H7' ], + + 'HS-[0-9]{1,2}DTB!!' => [ + 'HS-7DTB4!' => [ 'Hipstreet', 'Titan 7"', DeviceType::TABLET ], + 'HS-7DTB25!' => [ 'Hipstreet', 'Titan 2 7"', DeviceType::TABLET ], + 'HS-7DTB26!' => [ 'Hipstreet', 'Titan+ 7"', DeviceType::TABLET ], + 'HS-7DTB27!' => [ 'Hipstreet', 'Titan+ 7"', DeviceType::TABLET ], + 'HS-7DTB29!' => [ 'Hipstreet', 'Astro 7"', DeviceType::TABLET ], + 'HS-7DTB39!' => [ 'Hipstreet', 'Titan 2 7"', DeviceType::TABLET ], + 'HS-7DTB5!' => [ 'Hipstreet', 'Nova 7"', DeviceType::TABLET ], + 'HS-7DTB6!' => [ 'Hipstreet', 'Aurora 7"', DeviceType::TABLET ], + 'HS-785TB2!' => [ 'Hipstreet', 'Hyperion 7"', DeviceType::TABLET ], + 'HS-785TB3!' => [ 'Hipstreet', 'i8', DeviceType::TABLET ], + 'HS-8DTB!' => [ 'Hipstreet', 'Flash 8"', DeviceType::TABLET ], + 'HS-9DTB4!' => [ 'Hipstreet', 'Flare 9"', DeviceType::TABLET ], + 'HS-9DTB7!' => [ 'Hipstreet', 'Flare 2 9"', DeviceType::TABLET ], + 'HS-9DTB37!' => [ 'Hipstreet', 'Flare 3 9"', DeviceType::TABLET ], + 'HS-10DTB2!' => [ 'Hipstreet', 'Equinox 10"', DeviceType::TABLET ], + 'HS-10DTB4!' => [ 'Hipstreet', 'Equinox 4 10"', DeviceType::TABLET ], + 'HS-10DTB5!' => [ 'Hipstreet', 'Spectrum 10"', DeviceType::TABLET ], + 'HS-10DTB8!' => [ 'Hipstreet', 'Equinox 3 10"', DeviceType::TABLET ], + 'HS-10DTB12!' => [ 'Hipstreet', 'Phoenix 10"', DeviceType::TABLET ], + ], + + 'HS-[EFHITUX][0-9]!!' => [ + 'HS-X1' => [ 'Hisense', 'X1' ], + 'HS-X5T' => [ 'Hisense', 'X5T' ], + 'HS-X6C' => [ 'Hisense', 'X6C' ], + 'HS-X8C' => [ 'Hisense', 'X8C' ], + 'HS-X8T' => [ 'Hisense', 'X8T' ], + 'HS-U8' => [ 'Hisense', 'U8' ], + 'HS-U9' => [ 'Hisense', 'U9' ], + 'HS-U98' => [ 'Hisense', 'U98' ], + 'HS-U609' => [ 'Hisense', 'U609' ], + 'HS-U800' => [ 'Hisense', 'U800' ], + 'HS-U820' => [ 'Hisense', 'U820' ], + 'HS-U850' => [ 'Hisense', 'U850' ], + 'HS-U860' => [ 'Hisense', 'U860' ], + 'HS-U909' => [ 'Hisense', 'U909' ], + 'HS-U909B' => [ 'Hisense', 'U909B' ], + 'HS-U912' => [ 'Hisense', 'U912' ], + 'HS-U912C' => [ 'Hisense', 'U912C' ], + 'HS-U930' => [ 'Hisense', 'U930' ], + 'HS-U936' => [ 'Hisense', 'U936' ], + 'HS-U939' => [ 'Hisense', 'U939' ], + 'HS-U950' => [ 'Hisense', 'U950' ], + 'HS-U958' => [ 'Hisense', 'U958' ], + 'HS-U960Q' => [ 'Hisense', 'U960' ], + 'HS-U966' => [ 'Hisense', 'U966' ], + 'HS-U970' => [ 'Hisense', 'U970' ], + 'HS-U971' => [ 'Hisense', 'U971' ], + 'HS-U978' => [ 'Hisense', 'U978' ], + 'HS-U980' => [ 'Hisense', 'U980' ], + 'HS-U988' => [ 'Hisense', 'U988' ], + 'HS-T9' => [ 'Hisense', 'T9' ], + 'HS-T92' => [ 'Hisense', 'T92' ], + 'HS-T96' => [ 'Hisense', 'T96' ], + 'HS-T818' => [ 'Hisense', 'T818' ], + 'HS-T820' => [ 'Hisense', 'T820' ], + 'HS-T830' => [ 'Hisense', 'T830' ], + 'HS-T909' => [ 'Hisense', 'T909' ], + 'HS-T912' => [ 'Hisense', 'T912' ], + 'HS-T928' => [ 'Hisense', 'T928' ], + 'HS-T930' => [ 'Hisense', 'T930' ], + 'HS-T950' => [ 'Hisense', 'T950' ], + 'HS-T958' => [ 'Hisense', 'T958' ], + 'HS-T959' => [ 'Hisense', 'T959' ], + 'HS-T959S1' => [ 'Hisense', 'T959' ], + 'HS-T967' => [ 'Hisense', 'T967' ], + 'HS-T968' => [ 'Hisense', 'T968' ], + 'HS-T970' => [ 'Hisense', 'T970' ], + 'HS-T978' => [ 'Hisense', 'T978' ], + 'HS-I630T' => [ 'Hisense', 'I630T' ], + 'HS-H800T' => [ 'Hisense', 'H800T' ], + 'HS-F1' => [ 'Hisense', 'F1' ], + 'HS-F5180' => [ 'Hisense', 'F5180' ], + 'HS-E86' => [ 'Hisense', 'E86' ], + 'HS-E200T' => [ 'Hisense', 'E200T' ], + 'HS-E260T' => [ 'Hisense', 'E260T' ], + 'HS-E600M' => [ 'Hisense', 'E600M' ], + 'HS-E620M' => [ 'Hisense', 'E620M' ], + 'HS-E820' => [ 'Hisense', 'E820' ], + 'HS-E830' => [ 'Hisense', 'E830' ], + 'HS-E860' => [ 'Hisense', 'E860' ], + 'HS-E909' => [ 'Hisense', 'E909' ], + 'HS-E910' => [ 'Hisense', 'E910' ], + 'HS-E912!' => [ 'Hisense', 'E912' ], + 'HS-E913' => [ 'Hisense', 'E913' ], + 'HS-E917' => [ 'Hisense', 'E917' ], + 'HS-E920' => [ 'Hisense', 'E920' ], + 'HS-E926' => [ 'Hisense', 'E926' ], + 'HS-E930' => [ 'Hisense', 'E930' ], + 'HS-E936' => [ 'Hisense', 'E936' ], + 'HS-E956' => [ 'Hisense', 'E956' ], + 'HS-E956Q' => [ 'Hisense', 'E956' ], + 'HS-E968' => [ 'Hisense', 'E968' ], + ], + + 'HS-E[GT][0-9]{3,3}!!' => [ + 'HS-EG870' => [ 'Hisense', 'EG870' ], + 'HS-EG900' => [ 'Hisense', 'EG900' ], + 'HS-EG901' => [ 'Hisense', 'EG901' ], + 'HS-EG902' => [ 'Hisense', 'EG902' ], + 'HS-EG906' => [ 'Hisense', 'EG906' ], + 'HS-EG909' => [ 'Hisense', 'EG909' ], + 'HS-EG916' => [ 'Hisense', 'EG916' ], + 'HS-EG929' => [ 'Hisense', 'EG929' ], + 'HS-EG936D' => [ 'Hisense', 'EG936' ], + 'HS-EG939' => [ 'Hisense', 'EG939' ], + 'HS-EG950' => [ 'Hisense', 'EG950' ], + 'HS-EG958' => [ 'Hisense', 'EG958' ], + 'HS-EG966' => [ 'Hisense', 'EG966' ], + 'HS-EG970' => [ 'Hisense', 'EG970' ], + 'HS-EG971' => [ 'Hisense', 'EG971' ], + 'HS-EG978' => [ 'Hisense', 'EG978' ], + 'HS-EG980' => [ 'Hisense', 'EG980' ], + 'HS-EG981' => [ 'Hisense', 'EG981' ], + 'HS-ET919' => [ 'Hisense', 'ET919' ], + ], + + '(HS-)?Hisense!!' => [ + 'Hisense-U8' => [ 'Hisense', 'U8' ], + 'Hisense U980' => [ 'Hisense', 'U980' ], + 'Hisense T92' => [ 'Hisense', 'T92' ], + 'Hisense I639T' => [ 'Hisense', 'I639T' ], + 'Hisense I639M' => [ 'Hisense', 'I639M' ], + 'Hisense-E360M' => [ 'Hisense', 'E360M' ], + 'Hisense E602M' => [ 'Hisense', 'E602M' ], + 'Hisense HS-E910' => [ 'Hisense', 'E910' ], + 'Hisense EG909' => [ 'Hisense', 'EG909' ], + 'HS-Hisense F20T' => [ 'Hisense', 'F20T' ], + 'HS-Hisense I632T' => [ 'Hisense', 'I632T' ], + 'HS-Hisense I635T' => [ 'Hisense', 'I635T' ], + 'HS-Hisense I639T' => [ 'Hisense', 'I639T' ], + 'HS-Hisense E602T' => [ 'Hisense', 'E602T' ], + 'HS-Hisense E621T' => [ 'Hisense', 'E621T' ], + 'HS-Hisense E625T' => [ 'Hisense', 'E625T' ], + ], + + 'T92' => [ 'Hisense', 'T92' ], + 'E860' => [ 'Hisense', 'E860' ], + 'EG98' => [ 'Hisense', 'EG98' ], + 'EG680' => [ 'Hisense', 'EG680' ], + + 'AD683G' => [ 'Hisense', 'EG909' ], + 'EG968B' => [ 'Hisense', 'EG968B' ], + 'E170BS' => [ 'Hisense', 'E170BS', DeviceType::TABLET ], + 'Hisense AD686G' => [ 'Hisense', 'AD686G' ], + 'E270BSA' => [ 'Hisense', 'Sero 7 Lite', DeviceType::TABLET ], + 'M470BSA' => [ 'Hisense', 'Sero 7 Pro', DeviceType::TABLET ], + 'M470BSE' => [ 'Hisense', 'Sero 7 Pro', DeviceType::TABLET ], + 'E2281' => [ 'Hisense', 'Sero 8', DeviceType::TABLET ], + 'xt880b' => [ 'Hisense', 'XT880', DeviceType::TELEVISION ], + 'GX1210V TV' => [ 'Hisense', 'GX1210', DeviceType::TELEVISION ], + + '(Hisense )?(LED[0-9]{2,2}(G|K|L|EC|XT)[0-9]{2,3})!' + => [ 'Hisense', '$2', DeviceType::TELEVISION ], + + 'Hisense Google TV TV' => [ 'Hisense', 'Pulse', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'hisense gx1200v' => [ 'Hisense', 'Pulse', DeviceType::TELEVISION, Flag::GOOGLETV ], + + '(Amaze|Hitech)!!' => [ + 'Amaze HT-808' => [ 'Hi-Tech', 'Amaze HT-808' ], + 'AMAZE S200' => [ 'Hi-Tech', 'Amaze S200' ], + 'Hitech Amaze S200 3G' => [ 'Hi-Tech', 'Amaze S200' ], + 'AMAZE S250' => [ 'Hi-Tech', 'Amaze S250' ], + 'Amaze S400' => [ 'Hi-Tech', 'Amaze S400' ], + 'Amaze S405' => [ 'Hi-Tech', 'Amaze S405' ], + 'Hitech S450' => [ 'Hi-Tech', 'Amaze S450' ], + 'Amaze S500' => [ 'Hi-Tech', 'Amaze S500' ], + ], + + 'HITO HT-3' => [ 'Hito', 'HT-3' ], + 'HKPHONE H8-3G' => [ 'HKPhone', 'H8 3G' ], + 'D7800AD' => [ 'Honeywell', 'D7800AD' ], + 'Dolphin 70e Black' => [ 'Honeywell', 'Dolphin 70e' ], + 'D75E' => [ 'Honeywell', 'Dolphin 75e' ], + 'CT50' => [ 'Honeywell', 'Dolphin CT50' ], + 'CN51 [NQ]!' => [ 'Honeywell', 'Intermec CN51' ], + + 'HOSIN!!' => [ + 'HOSIN A608' => [ 'Hosin', 'A608' ], + 'HOSIN T70(OPEN)' => [ 'Hosin', 'T70' ], + 'HOSIN T70' => [ 'Hosin', 'T70' ], + 'HOSIN T80' => [ 'Hosin', 'T80' ], + 'HOSIN U2' => [ 'Hosin', 'U2' ], + 'HOSIN U3' => [ 'Hosin', 'U3' ], + 'Hosin U7' => [ 'Hosin', 'U7' ], + 'HOSIN V60' => [ 'Hosin', 'V60' ], + 'HOSIN V70' => [ 'Hosin', 'V70' ], + 'HOSIN V708T' => [ 'Hosin', 'V708T' ], + ], + + '(HP|Slate)!!' => [ + 'HP 7' => [ 'HP', '7', DeviceType::TABLET ], + 'HP 7.1' => [ 'HP', '7.1', DeviceType::TABLET ], + 'HP 7 G2' => [ 'HP', '7 G2', DeviceType::TABLET ], + 'HP 7 Plus' => [ 'HP', '7 Plus', DeviceType::TABLET ], + 'HP 7 Plus G2' => [ 'HP', '7 Plus G2', DeviceType::TABLET ], + 'HP 8' => [ 'HP', '8', DeviceType::TABLET ], + 'HP 8 G2' => [ 'HP', '8 G2', DeviceType::TABLET ], + 'HP 10' => [ 'HP', '10', DeviceType::TABLET ], + 'HP 10 Tablet' => [ 'HP', '10', DeviceType::TABLET ], + 'HP 10 G2 Tablet' => [ 'HP', '10 G2', DeviceType::TABLET ], + 'HP 10 Plus' => [ 'HP', '10 Plus', DeviceType::TABLET ], + 'HP Slate 6 Voice Tab' => [ 'HP', 'Slate 6 Voice Tab', DeviceType::TABLET ], + 'HP Slate 6 VoiceTab Plus' => [ 'HP', 'Slate 6 Voice Tab Plus', DeviceType::TABLET ], + 'HP Slate 6 Voice Tab II' => [ 'HP', 'Slate 6 Voice Tab II', DeviceType::TABLET ], + 'HP Slate 7' => [ 'HP', 'Slate 7', DeviceType::TABLET ], + 'HP Slate 7 Beats Special Edition' => [ 'HP', 'Slate 7', DeviceType::TABLET ], + 'HP Slate7 Beats Special Edition' => [ 'HP', 'Slate 7', DeviceType::TABLET ], + 'HP Slate 7 Plus' => [ 'HP', 'Slate 7 Plus', DeviceType::TABLET ], + 'HP Slate 7 HD' => [ 'HP', 'Slate 7 HD', DeviceType::TABLET ], + 'HP Slate7 Extreme' => [ 'HP', 'Slate 7 Extreme', DeviceType::TABLET ], + 'HP Slate 7 Voice Tab' => [ 'HP', 'Slate 7 Voice Tab', DeviceType::TABLET ], + 'HP 7 VoiceTab' => [ 'HP', 'Slate 7 Voice Tab', DeviceType::TABLET ], + 'HP Slate 7 VoiceTab Ultra' => [ 'HP', 'Slate 7 Voice Tab Ultra', DeviceType::TABLET ], + 'HP Slate 8 Plus' => [ 'HP', 'Slate 8 Plus', DeviceType::TABLET ], + 'HP Slate 8 Pro' => [ 'HP', 'Slate 8 Pro', DeviceType::TABLET ], + 'HP Slate 10 HD' => [ 'HP', 'Slate 10 HD', DeviceType::TABLET ], + 'Slate 10 HD' => [ 'HP', 'Slate 10 HD', DeviceType::TABLET ], + 'HP Slate 10 Plus' => [ 'HP', 'Slate 10 Plus', DeviceType::TABLET ], + 'HP Slate 17' => [ 'HP', 'Slate 17', DeviceType::TABLET ], + 'Slate 21' => [ 'HP', 'Slate 21', DeviceType::TABLET ], + 'Slate 21 Pro' => [ 'HP', 'Slate 21 Pro', DeviceType::TABLET ], + 'HP SlateBook 10 x2 PC' => [ 'HP', 'SlateBook 10 x2', DeviceType::TABLET ], + 'HP SlateBook 14 PC' => [ 'HP', 'SlateBook 14 HD', DeviceType::TABLET ], + 'HP Pro Slate 8' => [ 'HP', 'Pro Slate 8', DeviceType::TABLET ], + 'HP Pro Slate 10 EE G1' => [ 'HP', 'Pro Slate 10', DeviceType::TABLET ], + 'HP Pro Slate 12' => [ 'HP', 'Pro Slate 12', DeviceType::TABLET ], + ], + + 'HP!!' => [ + 'HP Compaq ([0-9]{4,4}[a-z])!' => [ 'HP', 'Compaq $1', DeviceType::DESKTOP ], + 'HP Compaq ([a-z]{2,2}[0-9]{4,4})!' => [ 'HP', 'Compaq $1', DeviceType::DESKTOP ], + 'HP Elite ([0-9]{4,4})!' => [ 'HP', 'Elite $1', DeviceType::DESKTOP ], + 'HP EliteBook ([0-9]{4,4}[a-z])!' => [ 'HP', 'EliteBook $1', DeviceType::DESKTOP ], + 'HP EliteBook Revolve ([0-9]{3,3})!' => [ 'HP', 'EliteBook Revolve $1', DeviceType::DESKTOP ], + 'HP ENVY (.*) Notebook PC!' => [ 'HP', 'ENVY $1', DeviceType::DESKTOP ], + 'HP ENVY Sleekbook (.*) PC!' => [ 'HP', 'ENVY Sleekbook $1', DeviceType::DESKTOP ], + 'HP (G[0-9]{2,4}) Notebook PC!' => [ 'HP', '$1', DeviceType::DESKTOP ], + 'HP Mini!' => [ 'HP', 'Mini', DeviceType::DESKTOP ], + 'HP Pavilion ([0-9]+)!' => [ 'HP', 'Pavilion $1', DeviceType::DESKTOP ], + 'HP Pavilion ([a-z]{1,2} ?[0-9]+)!' => [ 'HP', 'Pavilion $1', DeviceType::DESKTOP ], + 'HP ProBook ([0-9]{4,4}[a-z])!' => [ 'HP', 'ProBook $1', DeviceType::DESKTOP ], + 'HP ProBook ([0-9]{3,3} G[0-9])!' => [ 'HP', 'ProBook $1', DeviceType::DESKTOP ], + 'HP Spectre ((?:[0-9]+ )?x2)!' => [ 'HP', 'Spectre $1', DeviceType::DESKTOP ], + 'HP Split ((?:[0-9]+ )?x2)!' => [ 'HP', 'Split $1', DeviceType::DESKTOP ], + ], + + 'HP-TouchPad' => [ 'HP', 'TouchPad', DeviceType::TABLET ], + '(HP )?Touchpad!' => [ 'HP', 'TouchPad', DeviceType::TABLET ], + '(cm|aokp) tenderloin!' => [ 'HP', 'TouchPad', DeviceType::TABLET ], + + 'HTC!!' => [ + 'HTC (Amaze|Ruby)!' => [ 'HTC', 'Amaze 4G' ], + 'HTC (Aria|Gratia|Liberty)!' => [ 'HTC', 'Aria' ], + 'HTC A63(66|80)!' => [ 'HTC', 'Aria' ], + 'HTC Bee' => [ 'HTC', 'Bee' ], + 'HTC ?ChaCha!' => [ 'HTC', 'ChaCha' ], + 'HTC A810e' => [ 'HTC', 'ChaCha' ], + 'HTC Status' => [ 'HTC', 'ChaCha' ], + 'HTC PH06130' => [ 'HTC', 'ChaCha' ], + 'HTC A9188!' => [ 'HTC', 'Cullinan' ], + 'HTC Desire 200' => [ 'HTC', 'Desire 200' ], + 'HTC Desire 210 dual sim' => [ 'HTC', 'Desire 210' ], + 'HTC Desire 300' => [ 'HTC', 'Desire 300' ], + 'HTC 0P6A1' => [ 'HTC', 'Desire 300' ], + 'HTC 301e' => [ 'HTC', 'Desire 300' ], + 'HTC D310(n|w)!' => [ 'HTC', 'Desire 310' ], + 'HTC Desire 310' => [ 'HTC', 'Desire 310' ], + 'HTC Desire 310 dual sim' => [ 'HTC', 'Desire 310' ], + 'HTC 0PF11' => [ 'HTC', 'Desire 310' ], + 'HTC 0PF110' => [ 'HTC', 'Desire 310' ], + 'HTC 0PF120' => [ 'HTC', 'Desire 310' ], + 'HTC V1' => [ 'HTC', 'Desire 310' ], + 'HTC D316d' => [ 'HTC', 'Desire 316' ], + 'HTC Desire 320' => [ 'HTC', 'Desire 320' ], + 'htc v01' => [ 'HTC', 'Desire 320' ], + 'HTC Desire 326G dual sim' => [ 'HTC', 'Desire 326G' ], + 'HTC 2PNT1' => [ 'HTC', 'Desire 326G' ], + 'HTC Desire 400 dual sim' => [ 'HTC', 'Desire 400' ], + 'HTC Desire 500' => [ 'HTC', 'Desire 500' ], + 'HTC Desire 500 dual sim' => [ 'HTC', 'Desire 500' ], + 'HTC 5060' => [ 'HTC', 'Desire 500' ], + 'HTC 0P3Z11' => [ 'HTC', 'Desire 500' ], + 'HTC 0PFJ50' => [ 'HTC', 'Desire 500' ], + 'HTC Desire 501' => [ 'HTC', 'Desire 501' ], + 'HTC Desire 501 dual sim' => [ 'HTC', 'Desire 501' ], + 'HTC 603h' => [ 'HTC', 'Desire 501' ], + 'HTC PO091' => [ 'HTC', 'Desire 501' ], + 'HTC Desire 510' => [ 'HTC', 'Desire 510' ], + 'HTC 0PCV2' => [ 'HTC', 'Desire 510' ], + 'HTC 0PCV20' => [ 'HTC', 'Desire 510' ], + 'HTC 0PCV220' => [ 'HTC', 'Desire 510' ], + 'HTC Desire 512' => [ 'HTC', 'Desire 512' ], + 'HTC D516(d|t|w)!' => [ 'HTC', 'Desire 516' ], + 'HTC Desire 516 dual sim' => [ 'HTC', 'Desire 516' ], + 'HTC C2' => [ 'HTC', 'Desire 516' ], + 'HTC V2' => [ 'HTC', 'Desire 516' ], + 'HTC Desire 520' => [ 'HTC', 'Desire 520' ], + 'HTC 0PGQ1' => [ 'HTC', 'Desire 520' ], + 'HTC Desire 526' => [ 'HTC', 'Desire 526' ], + 'HTCD100LVW' => [ 'HTC', 'Desire 526' ], + 'HTC D100LVW' => [ 'HTC', 'Desire 526' ], + 'HTC D100LVWPP' => [ 'HTC', 'Desire 526' ], + 'HTC 0PM31' => [ 'HTC', 'Desire 526' ], + 'HTC 0PM1100' => [ 'HTC', 'Desire 526G' ], + 'HTC Desire 526G' => [ 'HTC', 'Desire 526G' ], + 'HTC Desire 526G dual sim' => [ 'HTC', 'Desire 526G' ], + 'HTC D526(h)!' => [ 'HTC', 'Desire 526G+' ], + 'HTC Desire 526GPLUS dual sim' => [ 'HTC', 'Desire 526G+' ], + 'HTC 0PL41!' => [ 'HTC', 'Desire 526G+' ], + 'HTC 0PL42!' => [ 'HTC', 'Desire 526G+' ], + 'HTC Desire 530' => [ 'HTC', 'Desire 530' ], + 'HTC Desire 600' => [ 'HTC', 'Desire 600' ], + 'HTC Desire 600 dual sim' => [ 'HTC', 'Desire 600' ], + 'HTC PO491' => [ 'HTC', 'Desire 600' ], + 'HTC PO49120' => [ 'HTC', 'Desire 600' ], + 'HTC Desire 600c dual sim' => [ 'HTC', 'Desire 600c' ], + 'HTC 609d' => [ 'HTC', 'Desire 600c' ], + 'HTC Desire 601' => [ 'HTC', 'Desire 601' ], + 'HTC Desire 601 dual sim' => [ 'HTC', 'Desire 601' ], + 'HTC ?0P4E!' => [ 'HTC', 'Desire 601' ], + 'HTC 606w' => [ 'HTC', 'Desire 606w' ], + 'HTC 608' => [ 'HTC', 'Desire 608' ], + 'HTC 608t' => [ 'HTC', 'Desire 608t' ], + 'HTC Desire 610' => [ 'HTC', 'Desire 610' ], + 'HTC D610' => [ 'HTC', 'Desire 610' ], + 'HTC D610t' => [ 'HTC', 'Desire 610' ], + 'HTC D610x' => [ 'HTC', 'Desire 610' ], + 'HTC 0P9O110' => [ 'HTC', 'Desire 610' ], + 'HTC 0P9O2' => [ 'HTC', 'Desire 610' ], + 'HTC331ZLVW' => [ 'HTC', 'Desire 610' ], + 'htc a3qhdul' => [ 'HTC', 'Desire 610' ], + 'HTC Desire 612' => [ 'HTC', 'Desire 612' ], + 'HTC331ZLVWPP' => [ 'HTC', 'Desire 612' ], + 'HTC 0P9O30' => [ 'HTC', 'Desire 612' ], + 'HTC Desire 616 dual sim' => [ 'HTC', 'Desire 616' ], + 'HTC D616w!' => [ 'HTC', 'Desire 616' ], + 'HTC V3' => [ 'HTC', 'Desire 616' ], + 'HTC 619d!' => [ 'HTC', 'Desire 619d' ], + 'HTC D620(h|u)!' => [ 'HTC', 'Desire 620' ], + 'HTC Desire 620' => [ 'HTC', 'Desire 620' ], + 'HTC 0PE64!' => [ 'HTC', 'Desire 620' ], + 'HTC Desire 620G' => [ 'HTC', 'Desire 620G' ], + 'HTC Desire 620G dual sim' => [ 'HTC', 'Desire 620G' ], + 'HTC 0PE65' => [ 'HTC', 'Desire 620G' ], + 'HTC Desire 625' => [ 'HTC', 'Desire 625' ], + 'HTC D626(d|q|t|w|x)!' => [ 'HTC', 'Desire 626' ], + 'HTC Desire 626' => [ 'HTC', 'Desire 626' ], + 'HTC Desire 626 dual sim' => [ 'HTC', 'Desire 626' ], + 'HTC 0PKX2' => [ 'HTC', 'Desire 626' ], + 'HTC D630x' => [ 'HTC', 'Desire 626' ], + 'HTC D200LVW' => [ 'HTC', 'Desire 626' ], + 'HTC D200LVWPP' => [ 'HTC', 'Desire 626' ], + 'HTC Desire 626G dual sim' => [ 'HTC', 'Desire 626G' ], + 'HTC D626(ph)!' => [ 'HTC', 'Desire 626G' ], + 'HTC Desire 626GPLUS dual sim' => [ 'HTC', 'Desire 626G+' ], + 'HTC 0PM11' => [ 'HTC', 'Desire 626G+' ], + 'HTC Desire 626s' => [ 'HTC', 'Desire 626s' ], + 'HTC 0PM91' => [ 'HTC', 'Desire 626s' ], + 'HTC 0PM912!' => [ 'HTC', 'Desire 626s' ], + 'HTC 0PM92' => [ 'HTC', 'Desire 626s' ], + 'HTC Desire 700 dual sim' => [ 'HTC', 'Desire 700' ], + 'HTC 709d' => [ 'HTC', 'Desire 709d' ], + 'HTC Desire 728 dual sim' => [ 'HTC', 'Desire 728' ], + 'HTC D728(w|x)!' => [ 'HTC', 'Desire 728' ], + 'HTC Desire 728G dual sim' => [ 'HTC', 'Desire 728G' ], + 'HTC 2PQ83' => [ 'HTC', 'Desire 728G' ], + 'HTC D816' => [ 'HTC', 'Desire 816' ], + 'HTC D816(d|t|v|w|x)!' => [ 'HTC', 'Desire 816' ], + 'HTC D816(h)!' => [ 'HTC', 'Desire 816G' ], + 'HTC Desire 816' => [ 'HTC', 'Desire 816' ], + 'HTC Desire 816 dual sim' => [ 'HTC', 'Desire 816' ], + 'htc a5ul' => [ 'HTC', 'Desire 816' ], + 'HTC 0P9C2' => [ 'HTC', 'Desire 816' ], + 'HTC 0P9C8' => [ 'HTC', 'Desire 816' ], + 'HTC D816e' => [ 'HTC', 'Desire 816' ], + 'HTC Desire 816G' => [ 'HTC', 'Desire 816G' ], + 'HTC Desire 816G dual sim' => [ 'HTC', 'Desire 816G' ], + 'HTC D820(pi|ts|us)!' => [ 'HTC', 'Desire 820G' ], + 'HTC Desire 820G dual sim' => [ 'HTC', 'Desire 820G' ], + 'HTC Desire 820G PLUS dual sim' => [ 'HTC', 'Desire 820G+' ], + 'HTC D820(f|mt|mu|t|u|x)!' => [ 'HTC', 'Desire 820' ], + 'HTC Desire 820' => [ 'HTC', 'Desire 820' ], + 'HTC Desire 820 dual sim' => [ 'HTC', 'Desire 820' ], + 'HTC 0PFJ4' => [ 'HTC', 'Desire 820' ], + 'HTC Desire 820q dual sim' => [ 'HTC', 'Desire 820q' ], + 'HTC Desire 820s dual sim' => [ 'HTC', 'Desire 820s' ], + 'HTC D820(ys)!' => [ 'HTC', 'Desire 820s' ], + 'HTC Desire 826' => [ 'HTC', 'Desire 826' ], + 'HTC Desire 826 dual sim' => [ 'HTC', 'Desire 826' ], + 'HTC D826(d|t|w|y)!' => [ 'HTC', 'Desire 826' ], + 'HTC D828(w|x)!' => [ 'HTC', 'Desire 828' ], + 'HTC Desire 828 dual sim' => [ 'HTC', 'Desire 828' ], + 'HTC 2PRE2' => [ 'HTC', 'Desire 828' ], + 'HTC 5088' => [ 'HTC', 'Desire 5088' ], + 'HTC 6160' => [ 'HTC', 'Desire 6160' ], + 'HTC 7060' => [ 'HTC', 'Desire 7060' ], + 'HTC ?7088!' => [ 'HTC', 'Desire 7088' ], + 'HTC 8060' => [ 'HTC', 'Desire 8060' ], + 'HTC Desire C' => [ 'HTC', 'Desire C' ], + 'HTC Desire C N' => [ 'HTC', 'Desire C' ], + 'HTC H1000C' => [ 'HTC', 'Desire C' ], + 'HTC A320e' => [ 'HTC', 'Desire C' ], + 'HTC Desire ?HD!' => [ 'HTC', 'Desire HD' ], + 'HTC A91(91|92)!' => [ 'HTC', 'Desire HD' ], + 'HTC 0PFH1!' => [ 'HTC', 'Desire Eye' ], + 'HTC 0PFH2!' => [ 'HTC', 'Desire Eye' ], + 'HTC Desire EYE' => [ 'HTC', 'Desire Eye' ], + 'HTC M910x' => [ 'HTC', 'Desire Eye' ], + 'HTC Desire L dual sim' => [ 'HTC', 'Desire L' ], + 'HTC PM6014' => [ 'HTC', 'Desire L' ], + 'HTC Desire P' => [ 'HTC', 'Desire P' ], + 'HTC Desire Q' => [ 'HTC', 'Desire Q' ], + 'HTC ?Desire ?S( |$)!' => [ 'HTC', 'Desire S' ], + 'HTC S510(b|e)!' => [ 'HTC', 'Desire S' ], + 'HTC Passion S510e' => [ 'HTC', 'Desire S' ], + 'HTC Desire Saga' => [ 'HTC', 'Desire S' ], + 'HTC Saga' => [ 'HTC', 'Desire S' ], + 'HTC DesireSV' => [ 'HTC', 'Desire SV' ], + 'HTC Desire SV' => [ 'HTC', 'Desire SV' ], + 'HTC DesireU' => [ 'HTC', 'Desire U' ], + 'HTC Desire U' => [ 'HTC', 'Desire U' ], + 'HTC Desire U dual sim' => [ 'HTC', 'Desire U' ], + 'HTC T327w' => [ 'HTC', 'Desire U' ], + 'HTC Desire V' => [ 'HTC', 'Desire V' ], + 'HTC T328w' => [ 'HTC', 'Desire V' ], + 'HTC PROMIN U' => [ 'HTC', 'Desire V' ], + 'HTC PRO DS' => [ 'HTC', 'Desire V' ], + 'HTC Desire VC' => [ 'HTC', 'Desire VC' ], + 'HTC Desire VC T328d' => [ 'HTC', 'Desire VC' ], + 'HTC T328d' => [ 'HTC', 'Desire VC' ], + 'HTC PRO DD' => [ 'HTC', 'Desire VC' ], + 'HTC Desire VT' => [ 'HTC', 'Desire VT' ], + 'HTC T328t' => [ 'HTC', 'Desire VT' ], + 'HTC Desire XC!' => [ 'HTC', 'Desire XC' ], + 'HTC Desire XS!' => [ 'HTC', 'Desire XS' ], + 'HTC Desire ?X!' => [ 'HTC', 'Desire X' ], + 'HTC T329w' => [ 'HTC', 'Desire X' ], + 'HTC POO U' => [ 'HTC', 'Desire X' ], + 'HTC Desire ?Z!' => [ 'HTC', 'Desire Z' ], + 'HTC A72(71|72|75)!' => [ 'HTC', 'Desire Z' ], + 'HTC ?Vision!' => [ 'HTC', 'Desire Z' ], + 'HTC T329d' => [ 'HTC', 'T329d' ], + 'HTC ?Desire!' => [ 'HTC', 'Desire' ], + 'HTC Bravo' => [ 'HTC', 'Desire' ], + 'HTC Bravo C' => [ 'HTC', 'Desire' ], + 'HTC eris' => [ 'HTC', 'Desire' ], + 'HTC A81(81|83)!' => [ 'HTC', 'Desire' ], + 'HTC ?X06HTII!' => [ 'HTC', 'Desire X06HTII', 'carrier' => 'Softbank' ], + 'HTC ?X06HT!' => [ 'HTC', 'Desire X06HT', 'carrier' => 'Softbank' ], + 'HTC Desire CDMA' => [ 'HTC', 'Desire' ], + 'HTC PLS7373ADR' => [ 'HTC', 'Detail' ], + 'HTC 603e' => [ 'HTC', 'E1' ], + 'HTC Evo' => [ 'HTC', 'EVO 3D' ], + 'HTC ?EVO ?3D!' => [ 'HTC', 'EVO 3D' ], + 'HTC X51(5a|5c|5d|5m)!' => [ 'HTC', 'EVO 3D' ], + 'HTC Shooter' => [ 'HTC', 'EVO 3D' ], + 'htc shooteru' => [ 'HTC', 'EVO 3D' ], + 'HTC ?EVO ?V ?4G!' => [ 'HTC', 'EVO 3D' ], + 'HTC EVO 4G\+!' => [ 'HTC', 'EVO 4G+' ], + 'HTC X515e!' => [ 'HTC', 'EVO 4G+' ], + 'HTC ?EVO ?4G!' => [ 'HTC', 'EVO 4G' ], + 'HTC jewel' => [ 'HTC', 'EVO 4G' ], + 'HTC EVO LTE' => [ 'HTC', 'EVO 4G' ], + 'HTC EVO G20 T9399 For Sprint' => [ 'HTC', 'EVO 4G' ], + 'HTC ?(EVO ?)?Design ?4G!' => [ 'HTC', 'EVO Design 4G' ], + 'HTC EVO Design C715e!' => [ 'HTC', 'EVO Design 4G' ], + 'HTC C715c' => [ 'HTC', 'EVO Design 4G' ], + 'HTC Acquire' => [ 'HTC', 'EVO Design 4G' ], + 'HTC Kingdom' => [ 'HTC', 'EVO Design 4G' ], + 'HTC EVO Shift!' => [ 'HTC', 'EVO Shift' ], + 'HTC EVO View 4G' => [ 'HTC', 'EVO View 4G' ], + 'HTC ?Explorer!' => [ 'HTC', 'Explorer' ], + 'HTC A31(0b|0e)!' => [ 'HTC', 'Explorer' ], + 'HTC Pico Incredible HD' => [ 'HTC', 'Explorer' ], + 'HTC first' => [ 'HTC', 'First' ], + 'HTC PM33100' => [ 'HTC', 'First' ], + 'HTC Flyer!' => [ 'HTC', 'Flyer', DeviceType::TABLET ], + 'HTC P51(0e|2|5e)!' => [ 'HTC', 'Flyer', DeviceType::TABLET ], + 'HTC HD' => [ 'HTC', 'HD' ], + 'HTC HD2!' => [ 'HTC', 'HD2' ], + 'HTC T8585' => [ 'HTC', 'HD2' ], + 'HTC HD7!' => [ 'HTC', 'HD7' ], + 'HTC T92(98|99)!' => [ 'HTC', 'HD7' ], + 'HTC HD7S!' => [ 'HTC', 'HD7s' ], + 'HTC T(93|98)99!' => [ 'HTC', 'HD7s' ], + 'HTC HD Mini' => [ 'HTC', 'HD mini' ], + 'HTC HERO200' => [ 'HTC', 'Hero 200' ], /* Sprint */ + 'HTC Hero ?S!' => [ 'HTC', 'Hero S' ], /* US Cellular */ + 'HTC Hero!' => [ 'HTC', 'Hero' ], + 'HTC IMAGIO' => [ 'HTC', 'Imagio' ], + 'HTC Incredible' => [ 'HTC', 'Incredible' ], + 'HTC Incredible CDMA' => [ 'HTC', 'Incredible' ], + 'HTC Incredible T9199 for Vodafone' => [ 'HTC', 'Incredible' ], + 'HTC Incredible E S715e' => [ 'HTC', 'Incredible E' ], + 'HTC Incredible ?S!' => [ 'HTC', 'Incredible S' ], + 'HTC ?Vivo!' => [ 'HTC', 'Incredible S' ], + 'HTC S710e!' => [ 'HTC', 'Incredible S' ], + 'HTC S710d' => [ 'HTC', 'Incredible S' ], + 'HTC Incredible 2' => [ 'HTC', 'Incredible S' ], + 'HTC Innovation' => [ 'HTC', 'Innovation' ], + 'HTC (HD7 )?Inspire!' => [ 'HTC', 'Inspire 4G' ], + 'HTC J Z321e' => [ 'HTC', 'J' ], + 'HTC X920e' => [ 'HTC', 'J Butterfly' ], + 'HTC Butterfly' => [ 'HTC', 'J Butterfly' ], + 'HTC J Butterfly' => [ 'HTC', 'J Butterfly' ], + 'HTC Butterfly J' => [ 'HTC', 'J Butterfly' ], + 'HTC DLX WLJ' => [ 'HTC', 'J Butterfly' ], + 'HTC DLX WL' => [ 'HTC', 'J Butterfly' ], + 'HTC DLX U' => [ 'HTC', 'J Butterfly' ], + 'HTC DLXUB1' => [ 'HTC', 'J Butterfly' ], + 'HTC J One' => [ 'HTC', 'J One' ], + 'HTC Butterfly s' => [ 'HTC', 'Butterfly S' ], + 'HTC Butterfly s 901s' => [ 'HTC', 'Butterfly S' ], + 'HTC PO68' => [ 'HTC', 'Butterfly S' ], + 'HTC 9060' => [ 'HTC', 'Butterfly S' ], + 'HTC 9088' => [ 'HTC', 'Butterfly S' ], + 'HTC 901e' => [ 'HTC', 'Butterfly S' ], + 'HTC 909d' => [ 'HTC', 'Butterfly S' ], + 'HTC 919d' => [ 'HTC', 'Butterfly S' ], + 'HTC B810x' => [ 'HTC', 'Butterfly 2' ], + 'HTC Butterfly 2' => [ 'HTC', 'Butterfly 2' ], + 'HTC B830x' => [ 'HTC', 'Butterfly 3' ], + 'HTC P715!' => [ 'HTC', 'Jetstream', DeviceType::TABLET ], + 'HTC PG09410' => [ 'HTC', 'Jetstream', DeviceType::TABLET ], + 'HTC Legend!' => [ 'HTC', 'Legend' ], + 'HTC Magic!' => [ 'HTC', 'Magic' ], + 'HTC Sapphire' => [ 'HTC', 'Magic' ], + 'HTC Merge' => [ 'HTC', 'Merge' ], + 'HTC Lexikon' => [ 'HTC', 'Merge' ], + 'HTC One SC' => [ 'HTC', 'One SC' ], + 'HTC One SC T528d' => [ 'HTC', 'One SC' ], + 'HTC T528d' => [ 'HTC', 'One SC' ], + 'HTC T528t' => [ 'HTC', 'One ST' ], + 'HTC T528w' => [ 'HTC', 'One SU' ], + 'HTC One Su' => [ 'HTC', 'One SU' ], + 'HTC One ?SV!' => [ 'HTC', 'One SV' ], + 'HTC C525c' => [ 'HTC', 'One SV' ], + 'HTC C525u' => [ 'HTC', 'One SV' ], + 'HTC H3000C' => [ 'HTC', 'One SV' ], + 'HTC K2!' => [ 'HTC', 'One SV' ], + 'HTC One S' => [ 'HTC', 'One S' ], + 'HTC One S !' => [ 'HTC', 'One S' ], + 'HTC Ville!' => [ 'HTC', 'One S' ], + 'HTC Z(52|56)0e!' => [ 'HTC', 'One S' ], + 'HTC One VX' => [ 'HTC', 'One VX' ], + 'htc totem' => [ 'HTC', 'One VX' ], + 'HTC PM36100' => [ 'HTC', 'One VX' ], + 'HTC One V' => [ 'HTC', 'One V' ], + 'HTC T120C' => [ 'HTC', 'One V' ], + 'HTC T320e' => [ 'HTC', 'One V' ], + 'HTC H2000C' => [ 'HTC', 'One V' ], + 'HTC X720d' => [ 'HTC', 'One XC' ], + 'HTC ?One ?XL+!' => [ 'HTC', 'One XL+' ], + 'HTC ?One ?XL!' => [ 'HTC', 'One XL' ], + 'htc evita' => [ 'HTC', 'One XL' ], + 'HTC S720t!' => [ 'HTC', 'One XT' ], + 'HTC One X+' => [ 'HTC', 'One X+' ], + 'HTC OneXplus!' => [ 'HTC', 'One X+' ], + 'HTC PM63100' => [ 'HTC', 'One X+' ], + 'HTC ?One ?X!' => [ 'HTC', 'One X' ], + 'HTC Endeavour!' => [ 'HTC', 'One X' ], + 'HTC S720e' => [ 'HTC', 'One X' ], + 'HTC One X S720e' => [ 'HTC', 'One X' ], + 'HTC One X with Beats Audio' => [ 'HTC', 'One X' ], + 'HTC M7' => [ 'HTC', 'One' ], + 'HTC 801e' => [ 'HTC', 'One' ], + 'HTC 801s' => [ 'HTC', 'One' ], + 'HTC ?802d!' => [ 'HTC', 'One' ], + 'HTC ?802t!' => [ 'HTC', 'One' ], + 'HTC 802w' => [ 'HTC', 'One' ], + 'HTC PN071' => [ 'HTC', 'One' ], + 'HTC PN072' => [ 'HTC', 'One' ], + 'HTC PN0711' => [ 'HTC', 'One' ], + 'HTC PN07120' => [ 'HTC', 'One' ], + 'HTC PN07310' => [ 'HTC', 'One' ], + 'HTC HTC6500LVW' => [ 'HTC', 'One' ], + 'HTC6500LVW' => [ 'HTC', 'One' ], + 'HTC6500LVW 4G' => [ 'HTC', 'One' ], + 'HTC6445LVW 4G' => [ 'HTC', 'One' ], + 'HTC One 801e' => [ 'HTC', 'One' ], + 'HTC One 801s' => [ 'HTC', 'One' ], + 'HTC one 802d' => [ 'HTC', 'One' ], + 'HTC One dual' => [ 'HTC', 'One' ], + 'HTC One dual 802d' => [ 'HTC', 'One' ], + 'HTC One dual sim' => [ 'HTC', 'One' ], + 'HTCONE' => [ 'HTC', 'One' ], + 'HTC6515LVW' => [ 'HTC', 'One Remix' ], + 'HTC 601e' => [ 'HTC', 'One Mini' ], + 'HTC PO581' => [ 'HTC', 'One Mini' ], + 'HTC PO582' => [ 'HTC', 'One Mini' ], + 'HTC PO58220' => [ 'HTC', 'One Mini' ], + 'HTC One mini' => [ 'HTC', 'One Mini' ], + 'HTC One mini 601e' => [ 'HTC', 'One Mini' ], + 'HTC 809d' => [ 'HTC', 'One Max' ], + 'HTC 8060' => [ 'HTC', 'One Max' ], + 'HTC 8088' => [ 'HTC', 'One Max' ], + 'HTC 8160' => [ 'HTC', 'One Max' ], + 'HTC ?0P3P[0-9]!' => [ 'HTC', 'One Max' ], + 'HTC6600LVW' => [ 'HTC', 'One Max' ], + 'HTC6600LVW 4G' => [ 'HTC', 'One Max' ], + 'HTC One max' => [ 'HTC', 'One Max' ], + 'HTC One max dual' => [ 'HTC', 'One Max' ], + 'HTC One A9' => [ 'HTC', 'One (A9)' ], + 'HTC A9(u|w)!' => [ 'HTC', 'One (A9)' ], + 'HTC 2PQ910' => [ 'HTC', 'One (A9)' ], + 'HTC 2PQ912!' => [ 'HTC', 'One (A9)' ], + 'HTC One E9 dual sim' => [ 'HTC', 'One (E9)' ], + 'HTC 0PL31' => [ 'HTC', 'One (E9)' ], + 'HTC One E9PLUS dual sim' => [ 'HTC', 'One (E9 Plus)' ], + 'HTC One E9s dual sim' => [ 'HTC', 'One (E9s)' ], + 'HTC D826sw' => [ 'HTC', 'One (E9s)' ], + 'HTC E9sx' => [ 'HTC', 'One (E9s)' ], + 'HTC One M9' => [ 'HTC', 'One (M9)' ], + 'HTC One M9s' => [ 'HTC', 'One (M9)' ], + 'HTC 0PJA1!' => [ 'HTC', 'One (M9)' ], + 'HTC 0PJA2!' => [ 'HTC', 'One (M9)' ], + 'HTC6535LRA' => [ 'HTC', 'One (M9)' ], + 'HTC6535LVW' => [ 'HTC', 'One (M9)' ], + 'HTC M9(e|pt|px|u|w)!' => [ 'HTC', 'One (M9)' ], + 'HTC One M9PLUS' => [ 'HTC', 'One (M9 Plus)' ], + 'HTC One M9PLUS Prime Camera Edition' => [ 'HTC', 'One (M9 Plus)' ], + 'HTC M9pw' => [ 'HTC', 'One (M9 Plus)' ], + 'HTC 0PK71' => [ 'HTC', 'One (M9 Plus)' ], + 'HTC 0PK72' => [ 'HTC', 'One (M9 Plus)' ], + 'HTC X9u' => [ 'HTC', 'One (X9)' ], + 'HTC M9et' => [ 'HTC', 'One ME' ], + 'HTC M9ew' => [ 'HTC', 'One ME' ], + 'htc hima ace ml dtul' => [ 'HTC', 'One ME' ], + 'HTC One ME dual sim' => [ 'HTC', 'One ME' ], + 'HTC 0PLA1' => [ 'HTC', 'One ME' ], + 'HTC One M8' => [ 'HTC', 'One (M8)' ], + 'HTC One M8 dual sim' => [ 'HTC', 'One (M8)' ], + 'HTC One(M8)' => [ 'HTC', 'One (M8)' ], + 'htc m8' => [ 'HTC', 'One (M8)' ], + 'HTC M8(d|dug|e|si|t|w|x)!' => [ 'HTC', 'One (M8)' ], + 'HTC6525LVW' => [ 'HTC', 'One (M8)' ], + 'HTC One M8 Eye' => [ 'HTC', 'One (M8 Eye)' ], + 'HTC M8(et|Et|Ew)!' => [ 'HTC', 'One (M8 Eye)' ], + 'HTC 0P6B!' => [ 'HTC', 'One (M8 Eye)' ], + 'HTC One M8s' => [ 'HTC', 'One (M8s)' ], + 'HTC 0PKV1' => [ 'HTC', 'One (M8s)' ], + 'HTC One E8' => [ 'HTC', 'One (E8)' ], + 'HTC One E8 dual sim' => [ 'HTC', 'One (E8)' ], + 'HTC M8S(d|s|t|w|x|y)!' => [ 'HTC', 'One (E8)' ], + 'htc mecwhl' => [ 'HTC', 'One (E8)' ], + 'HTC 0PAJ4' => [ 'HTC', 'One (E8)' ], + 'HTC E9(pw|pt|t|w|x)!' => [ 'HTC', 'One (E9)' ], + 'HTC One E9s dual sim' => [ 'HTC', 'One (E9)' ], + 'HTC 0P8B2!' => [ 'HTC', 'One Mini 2' ], + 'HTC M8MINx' => [ 'HTC', 'One Mini 2' ], + 'HTC One mini 2' => [ 'HTC', 'One Mini 2' ], + 'htc memul' => [ 'HTC', 'One Mini 2' ], + 'HTC M10u' => [ 'HTC', '10' ], // a.k.a. HTC One (M10) + 'HTC Raider!' => [ 'HTC', 'Raider 4G' ], + 'HTC Holiday' => [ 'HTC', 'Raider 4G' ], + 'HTC X710(a|e|s)!' => [ 'HTC', 'Raider 4G' ], + 'HTC PH39100!' => [ 'HTC', 'Raider 4G' ], + 'HTCRaider' => [ 'HTC', 'Raider 4G' ], + 'HTC Rezound' => [ 'HTC', 'Rezound' ], + 'HTC Rhyme!' => [ 'HTC', 'Rhyme' ], + 'HTC Bliss!' => [ 'HTC', 'Rhyme' ], + 'HTC S510b' => [ 'HTC', 'Rhyme' ], + 'HTC Salsa!' => [ 'HTC', 'Salsa' ], + 'HTC C510e' => [ 'HTC', 'Salsa' ], + 'HTC Sensation.*XE!' => [ 'HTC', 'Sensation XE' ], + 'HTC .*Z715(a|e)!' => [ 'HTC', 'Sensation XE' ], + 'HTC Sensation.*XL!' => [ 'HTC', 'Sensation XL' ], + 'HTC Runnymede' => [ 'HTC', 'Sensation XL' ], + 'HTC .*X315(b|e)!' => [ 'HTC', 'Sensation XL' ], + 'HTC G21!' => [ 'HTC', 'Sensation XL' ], + 'HTC ?Sensation!' => [ 'HTC', 'Sensation' ], + 'HTC Pyramid!' => [ 'HTC', 'Sensation' ], + 'HTC .*Z710(a|e|t)?!' => [ 'HTC', 'Sensation' ], + 'HTC G14!' => [ 'HTC', 'Sensation' ], + 'HTC Tattoo!' => [ 'HTC', 'Tattoo' ], + 'HTC Click' => [ 'HTC', 'Tattoo' ], + 'HTC A3288' => [ 'HTC', 'Tattoo' ], + 'HTC A9188' => [ 'HTC', 'Tianxi' ], + 'HTC X310e' => [ 'HTC', 'Titan' ], + 'HTC ETERNITY' => [ 'HTC', 'Titan' ], + 'HTC Polaris' => [ 'HTC', 'Touch Cruise' ], + 'HTC TOUCH DUAL' => [ 'HTC', 'Touch Dual' ], + 'HTC DiamondII EX' => [ 'HTC', 'Touch Diamond II' ], + 'HTC T7373' => [ 'HTC', 'Touch Pro II' ], + 'HTC Touch Pro' => [ 'HTC', 'Touch Pro' ], + 'HTC ThunderBolt( 4G)?!' => [ 'HTC', 'ThunderBolt'], + 'HTC Mecha' => [ 'HTC', 'ThunderBolt'], + 'HTC Kaiser' => [ 'HTC', 'TyTN II'], + 'HTC Velocity!' => [ 'HTC', 'Velocity 4G'], + 'HTCVelocity 4G' => [ 'HTC', 'Velocity 4G'], + 'HTC Vivid' => [ 'HTC', 'Vivid'], + 'HTC ?Wildfire ?S!' => [ 'HTC', 'Wildfire S' ], + 'HTC .*A510(a|b|c|e)!' => [ 'HTC', 'Wildfire S' ], + 'HTC ?PG762!' => [ 'HTC', 'Wildfire S' ], + 'HTC Wildfire!' => [ 'HTC', 'Wildfire' ], + 'HTC Buzz!' => [ 'HTC', 'Wildfire' ], + 'HTC .*A33(33|35|66|80)!' => [ 'HTC', 'Wildfire' ], + 'HTC A3360' => [ 'HTC', 'Wildfire' ], + 'HTC A6390' => [ 'HTC', 'A6390' ], + 'HTC A8180' => [ 'HTC', 'A8180' ], + 'HTC S610d' => [ 'HTC', 'S610d' ], + 'HTC S715e' => [ 'HTC', 'S715e' ], + 'HTC T327d' => [ 'HTC', 'T327d' ], + 'HTC T327t' => [ 'HTC', 'T327t' ], + 'HTC T329t' => [ 'HTC', 'T329t' ], + 'HTC Z510d' => [ 'HTC', 'Z510d' ], + 'HTC PO681' => [ 'HTC', 'Droid DNA 2' ], + 'HTC PO682' => [ 'HTC', 'Butterfly S' ], + 'HTC GOF U' => [ 'HTC', 'Desire C' ], + 'HTC VLE U' => [ 'HTC', 'One S' ], + 'HTC VLE#U' => [ 'HTC', 'One S' ], + 'HTC VIE U' => [ 'HTC', 'One S' ], + 'HTC K2 UL' => [ 'HTC', 'One SV' ], + 'HTC Droid DNA' => [ 'HTC', 'Droid DNA' ], + 'HTC6435LRA' => [ 'HTC', 'Droid DNA' ], + 'HTC6435LVW!' => [ 'HTC', 'Droid DNA' ], + 'HTC Droid Incredible' => [ 'HTC', 'Droid Incredible' ], + 'HTC IncredibleC' => [ 'HTC', 'Droid Incredible' ], + 'HTC Droid Incredible 2' => [ 'HTC', 'Droid Incredible 2' ], + 'HTC EVA UTL' => [ 'HTC', 'One X' ], + 'HTC EVA UL' => [ 'HTC', 'One X' ], + 'HTC ENR U' => [ 'HTC', 'One X' ], + 'HTC EVARE UL' => [ 'HTC', 'One X+' ], + 'HTC ENRC2B' => [ 'HTC', 'One X+' ], + 'HTC 9089' => [ 'HTC', '9089' ], // COS + 'HTC ?909d!' => [ 'HTC', '909d' ], // COS + ], + + 'DLX' => [ 'HTC', 'Droid DNA' ], + 'DLXU' => [ 'HTC', 'Butterfly' ], + 'ENR U' => [ 'HTC', 'One X' ], + + 'Amaze 4G' => [ 'HTC', 'Amaze 4G' ], + 'Liberty' => [ 'HTC', 'Aria' ], + 'Butterfly S' => [ 'HTC', 'Butterfly S' ], + 'Desire 816' => [ 'HTC', 'Desire 816' ], + 'Desire ?HD!' => [ 'HTC', 'Desire HD' ], + 'Inspire HD' => [ 'HTC', 'Desire HD' ], + 'Desire L by HTC' => [ 'HTC', 'Desire L' ], + 'Desire ?S!' => [ 'HTC', 'Desire S' ], + 'Desire X' => [ 'HTC', 'Desire X' ], + 'Desire Z' => [ 'HTC', 'Desire Z' ], + 'Desire!' => [ 'HTC', 'Desire' ], + 'Dream' => [ 'HTC', 'Dream' ], + 'GinDream/GinMagic' => [ 'HTC', 'Dream' ], + 'SiRF Dream' => [ 'HTC', 'Dream' ], + 'Eris' => [ 'HTC', 'Droid Eris' ], + 'Droid Incredible' => [ 'HTC', 'Droid Incredible' ], + 'Incredible' => [ 'HTC', 'Droid Incredible' ], /* Verizon */ + 'Incredible 2' => [ 'HTC', 'Droid Incredible 2' ], /* Verizon */ + 'EVO' => [ 'HTC', 'EVO' ], + 'Evo HD2' => [ 'HTC', 'EVO HD' ], + 'EVO ?3D!' => [ 'HTC', 'EVO 3D' ], + 'EVO 4G' => [ 'HTC', 'EVO 4G' ], + 'Evo V 4G' => [ 'HTC', 'EVO V 4G' ], + 'Explorer A310e' => [ 'HTC', 'Explorer' ], + 'Flyer' => [ 'HTC', 'Flyer', DeviceType::TABLET ], + 'photon' => [ 'HTC', 'HD mini' ], + 'HD2' => [ 'HTC', 'HD2' ], + 'NexusHD2' => [ 'HTC', 'HD2' ], + 'Nexus HD2' => [ 'HTC', 'HD2' ], + 'HD2 LEO' => [ 'HTC', 'HD2' ], + 'HD7 Pro' => [ 'HTC', 'HD7 Pro' ], + 'Hero' => [ 'HTC', 'Hero' ], + 'HERO CDMA' => [ 'HTC', 'Hero' ], + 'HERO200' => [ 'HTC', 'Hero 200' ], + 'Incredible ?S!' => [ 'HTC', 'Incredible S' ], + 'Incredible ?2!' => [ 'HTC', 'Incredible 2' ], + 'Incredible 4G LTE' => [ 'HTC', 'Incredible' ], + 'Inspire 4G' => [ 'HTC', 'Inspire 4G' ], + 'Legend' => [ 'HTC', 'Legend' ], + 'Docomo HT-03A' => [ 'HTC', 'Magic HT-03A', 'carrier' => 'DoCoMo' ], + 'One S' => [ 'HTC', 'One S' ], + 'One X' => [ 'HTC', 'One X' ], + 'One X+' => [ 'HTC', 'One X+' ], + 'One XL' => [ 'HTC', 'One XL' ], + 'One V' => [ 'HTC', 'One V' ], + 'One' => [ 'HTC', 'One' ], + 'One M7' => [ 'HTC', 'One' ], + 'EndeavorU' => [ 'HTC', 'One X' ], + '2PQ93' => [ 'HTC', 'One (A9)' ], + 'one m8' => [ 'HTC', 'One (M8)' ], + 'Rezound' => [ 'HTC', 'Rezound' ], + 'MIUI.us Sensation 4G' => [ 'HTC', 'Sensation 4G' ], + 'SensationXE!' => [ 'HTC', 'Sensation XE' ], + 'SensationXL!' => [ 'HTC', 'Sensation XL' ], + 'Sensation XL with Beats Audio' => [ 'HTC', 'Sensation XL' ], + 'Sensation!' => [ 'HTC', 'Sensation' ], + 'Pyramid' => [ 'HTC', 'Sensation' ], + 'Touch Pro 2' => [ 'HTC', 'Touch Pro II' ], + 'TripNiCE Pyramid' => [ 'HTC', 'Sensation' ], + 'VitMod ExtraLite 1.6.5.fullodex for HTC HD7 Pro' => [ 'HTC', 'HD7 Pro' ], + 'Vivid 4G' => [ 'HTC', 'Vivid 4G' ], + 'Wildfire S!' => [ 'HTC', 'Wildfire S' ], + 'Wildfire!' => [ 'HTC', 'Wildfire' ], + 'Click' => [ 'HTC', 'Tattoo' ], + + 'Sprint!!' => [ + 'Sprint APX515CKT' => [ 'HTC', 'EVO 3D' ], + 'Sprint APA9292KT' => [ 'HTC', 'EVO 4G' ], + 'Sprint APA7373KT' => [ 'HTC', 'EVO Shift 4G' ], + 'Sprint APC715CKT' => [ 'HTC', 'EVO Design 4G' ], + 'Sprint ATP515CKIT' => [ 'HTC', 'EVO View 4G', DeviceType::TABLET ], + ], + + '710C' => [ 'HTC', 'Desire 816' ], + '801a' => [ 'HTC', 'One' ], + '801s' => [ 'HTC', 'One' ], + '802w' => [ 'HTC', 'One' ], + '831C' => [ 'HTC', 'One (M8)' ], + '909d' => [ 'HTC', '909d' ], // COS + '9088' => [ 'HTC', '9088' ], // COS + + 'A320a' => [ 'HTC', 'Desire C' ], + 'A3380' => [ 'HTC', 'Wildfire' ], + 'A6277' => [ 'HTC', 'Hero' ], + 'a7272' => [ 'HTC', 'Desire Z' ], + 'A7272+(HTC DesireZ)' => [ 'HTC', 'Desire Z' ], + 'C525c' => [ 'HTC', 'One SV' ], + 'D816(d|t|v|w|x)!' => [ 'HTC', 'Desire 816' ], + 'D820mt' => [ 'HTC', 'Desire 820 Mini' ], + 'S710d' => [ 'HTC', 'Droid Incredible 2' ], + 'S710D' => [ 'HTC', 'Droid Incredible 2' ], + 'T320a' => [ 'HTC', 'One V' ], + 'X325a' => [ 'HTC', 'One X' ], + 'X515d' => [ 'HTC', 'EVO 3D' ], + 'X515e' => [ 'HTC', 'EVO 4G+' ], + 'X525a' => [ 'HTC', 'One X+' ], + 'X710E' => [ 'HTC', 'Raider 4G' ], + 'X920e' => [ 'HTC', 'J Butterfly' ], + 'Z520m' => [ 'HTC', 'One S' ], + 'Z710' => [ 'HTC', 'Sensation' ], + 'Z710e' => [ 'HTC', 'Sensation' ], + 'Z715e' => [ 'HTC', 'Sensation XE' ], + 'T9199h' => [ 'HTC', 'T9199h' ], + + '(HTC|PCD|USCC)?ADR[0-9]{4,4}!!' => [ + 'ADR6200' => [ 'HTC', 'Droid Eris' ], + 'ADR6225' => [ 'HTC', 'Wildfire 6225' ], + 'HTCADR6290US' => [ 'HTC', 'One V' ], + 'ADR6300' => [ 'HTC', 'Droid Incredible' ], + 'ADR6325!' => [ 'HTC', 'Merge' ], + 'ADR6330VW' => [ 'HTC', 'Rhyme' ], + 'ADR6350' => [ 'HTC', 'Droid Incredible 2' ], + 'ADR6400L!' => [ 'HTC', 'Thunderbolt 4G' ], + 'ADR6410LRA!' => [ 'HTC', 'Droid Incredible 4G' ], + 'ADR6410LVW!' => [ 'HTC', 'Droid Incredible 4G' ], + 'ADR6410OM' => [ 'HTC', 'Droid Incredible 4G' ], + 'ADR6425LVW!' => [ 'HTC', 'Rezound' ], + 'pcdadr6350' => [ 'HTC', 'Droid Incredible 2' ], + 'USCCADR6275US!' => [ 'HTC', 'Desire' ], + 'USCCADR6285US!' => [ 'HTC', 'Hero S' ], + 'USCCADR6325US!' => [ 'HTC', 'Merge' ], + 'USCCADR6230US!' => [ 'HTC', 'Wildfire S' ], + ], + + 'ERIS ADR6200' => [ 'HTC', 'Droid Eris' ], + 'ATP515CKIT' => [ 'HTC', 'EVO View 4G' ], + 'Coquettish Red' => [ 'HTC', 'Rezound' ], + 'PB99400' => [ 'HTC', 'Desire' ], + 'PC36100!' => [ 'HTC', 'EVO 4G' ], + 'PG06100' => [ 'HTC', 'EVO Shift 4G' ], + 'PG41200' => [ 'HTC', 'EVO View 4G', DeviceType::TABLET ], + 'PG86100!' => [ 'HTC', 'EVO 3D' ], + 'PH44100' => [ 'HTC', 'EVO Design 4G' ], + 'PJ83100' => [ 'HTC', 'One X' ], + 'PJ35100' => [ 'HTC', 'One VX' ], + 'PM36100' => [ 'HTC', 'One VX' ], + 'PM63100' => [ 'HTC', 'One X+' ], + '0PCV1' => [ 'HTC', 'Desire 510' ], + '0PM92' => [ 'HTC', 'Desire 626s' ], + '0PJA1!' => [ 'HTC', 'One (M9)' ], + '0PJA2!' => [ 'HTC', 'One (M9)' ], + '0PKV1' => [ 'HTC', 'One (M8s)' ], + '0PAJ5' => [ 'HTC', 'One (E8)' ], + 'M7CDTU' => [ 'HTC', 'One' ], + + '[SX0][0-9]{2,2}HT!!' => [ + 'S31HT' => [ 'HTC', 'Aria S31HT', 'carrier' => 'EMOBILE' ], + 'X06HT' => [ 'HTC', 'Desire X06HT', 'carrier' => 'Softbank' ], + '001HT' => [ 'HTC', 'Desire HD 001HT', 'carrier' => 'Softbank' ], + ], + + 'ISW[0-9]{2,2}HT!!' => [ + 'ISW11HT!' => [ 'HTC', 'EVO WiMAX ISW11HT', 'carrier' => 'au' ], + 'ISW12HT!' => [ 'HTC', 'EVO 3D ISW12HT', 'carrier' => 'au' ], + 'ISW13HT!' => [ 'HTC', 'J ISW13HT', 'carrier' => 'au' ], + ], + + '(HTC )?HT[LV][0-9]{2,2}!!' => [ + 'HTL21!' => [ 'HTC', 'J Butterfly HTL21', 'carrier' => 'au' ], + 'HTL22' => [ 'HTC', 'J One HTL22', 'carrier' => 'au' ], + 'HTC HTL22' => [ 'HTC', 'J One HTL22', 'carrier' => 'au' ], + 'HTL23!' => [ 'HTC', 'J Butterfly HTL23', 'carrier' => 'au' ], + 'HTV31!' => [ 'HTC', 'J Butterfly HTV31', 'carrier' => 'au' ], + 'HTV32!' => [ 'HTC', '10 HTV32', 'carrier' => 'au' ], + ], + + 'GT-T9500' => [ 'HTM', 'GT-T9500' ], + 'SM-H900A' => [ 'HTM', 'SM-H900A' ], + + 'Huawei MediaPad' => [ 'Huawei', 'MediaPad', DeviceType::TABLET ], + 'Huawei OsiMood MediaPad' => [ 'Huawei', 'MediaPad', DeviceType::TABLET ], + 'HUAWEI MediaPad M1 8.0' => [ 'Huawei', 'MediaPad M1', DeviceType::TABLET ], + 'Huawei MediaPad T1 7.0 3G' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'Huawei MediaPad T1 8.0 4G' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'Huawei MediaPad T1 10 4G' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + + 'MediaPad!!' => [ + 'MediaPad' => [ 'Huawei', 'MediaPad', DeviceType::TABLET ], + 'MediaPad 7 FHD' => [ 'Huawei', 'MediaPad 7', DeviceType::TABLET ], + 'MediaPad 7 Classic' => [ 'Huawei', 'MediaPad 7 Classic', DeviceType::TABLET ], + 'MediaPad 7 Lite' => [ 'Huawei', 'MediaPad 7 Lite', DeviceType::TABLET ], + 'MediaPad 7 Lite+' => [ 'Huawei', 'MediaPad 7 Lite+', DeviceType::TABLET ], + 'MediaPad 7 Lite II' => [ 'Huawei', 'MediaPad 7 Lite II', DeviceType::TABLET ], + 'MediaPad 7 Vivid' => [ 'Huawei', 'MediaPad 7 Vivid', DeviceType::TABLET ], + 'MediaPad 7 Vogue' => [ 'Huawei', 'MediaPad 7 Vogue', DeviceType::TABLET ], + 'MediaPad 7 Voguevivi' => [ 'Huawei', 'MediaPad 7 Vogue', DeviceType::TABLET ], + 'MediaPad 7 Youth' => [ 'Huawei', 'MediaPad 7 Youth', DeviceType::TABLET ], + 'MediaPad 7 Youth2' => [ 'Huawei', 'MediaPad 7 Youth 2', DeviceType::TABLET ], + 'MediaPad 7 Youth 2' => [ 'Huawei', 'MediaPad 7 Youth 2', DeviceType::TABLET ], + 'MediaPad 8 Vogue' => [ 'Huawei', 'MediaPad 8 Vogue', DeviceType::TABLET ], + 'MediaPad 10 FHD' => [ 'Huawei', 'MediaPad 10', DeviceType::TABLET ], + 'MediaPad 10 LINK' => [ 'Huawei', 'MediaPad 10 Link', DeviceType::TABLET ], + 'MediaPad 10 Link+' => [ 'Huawei', 'MediaPad 10 Link', DeviceType::TABLET ], + 'MediaPad M1 8.0' => [ 'Huawei', 'MediaPad M1', DeviceType::TABLET ], + 'MediaPad M1 8.0 (LTE)' => [ 'Huawei', 'MediaPad M1', DeviceType::TABLET ], + 'MediaPad M1 8.0 (WIFI)' => [ 'Huawei', 'MediaPad M1', DeviceType::TABLET ], + 'MediaPad T1 8.0' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'MediaPad T1 8.0 LTE' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'MediaPad T1 8.0 Pro' => [ 'Huawei', 'MediaPad T1 Pro', DeviceType::TABLET ], + 'MediaPad X1 7.0' => [ 'Huawei', 'MediaPad X1', DeviceType::TABLET ], + 'MediaPad X1' => [ 'Huawei', 'MediaPad X1', DeviceType::TABLET ], + 'MediaPad 7D' => [ 'Huawei', 'MediaPad X1', DeviceType::TABLET ], + 'MediaPad X1 S 7.0' => [ 'Huawei', 'MediaPad X1 S', DeviceType::TABLET ], + ], + + '(Huawei )?[MSTX](1|2|7|8|10)\-[A-Z0-9][0-9]{2,2}!!' => [ + 'Huawei S7-312u' => [ 'Huawei', 'MediaPad', DeviceType::TABLET ], + 'S7-721u' => [ 'Huawei', 'MediaPad 7 Youth 2', DeviceType::TABLET ], + 'S10-232L' => [ 'Huawei', 'MediaPad 10 Link', DeviceType::TABLET ], + 'S8-303L' => [ 'Huawei', 'MediaPad M1', DeviceType::TABLET ], + 'S8-303LT' => [ 'Huawei', 'MediaPad M1', DeviceType::TABLET ], + 'S8-306L' => [ 'Huawei', 'MediaPad M1', DeviceType::TABLET ], + 'HUAWEI M2-A01L' => [ 'Huawei', 'MediaPad M2', DeviceType::TABLET ], + 'HUAWEI M2-A01W' => [ 'Huawei', 'MediaPad M2', DeviceType::TABLET ], + 'HUAWEI M2-801L' => [ 'Huawei', 'MediaPad M2', DeviceType::TABLET ], + 'HUAWEI M2-801W' => [ 'Huawei', 'MediaPad M2', DeviceType::TABLET ], + 'Huawei M2-802L' => [ 'Huawei', 'MediaPad M2', DeviceType::TABLET ], + 'HUAWEI M2-803L' => [ 'Huawei', 'MediaPad M2', DeviceType::TABLET ], + 'S8-701u' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'T1-A21L' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'T1-A21w' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'T1-A22L' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'T1-A23L' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'T1-701u' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'T1-701ua' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'T1-701w' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'T1-821w' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'T1-821L' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'T1-823L' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'S8-701w' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'S8-821w' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + ], + + 'T1 7.0' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + 'X1 7.0' => [ 'Huawei', 'MediaPad X1', DeviceType::TABLET ], + '7D-501u' => [ 'Huawei', 'MediaPad X1', DeviceType::TABLET ], + + '(HUAWEI )?(CRR|MATE|MT1|MT2|MT7|M200|NXT|Z100)!!' => [ + '(HW-|HUAWEI )?MT1-(T00|U06)!' => [ 'Huawei', 'Ascend Mate' ], + '(HW-|HUAWEI )?MATE-U06' => [ 'Huawei', 'Ascend Mate' ], + '(HW-|HUAWEI )?MT2-?(C00|L01|L02|L03|L05)!' => [ 'Huawei', 'Ascend Mate 2' ], + '(HW-|HUAWEI )?MT7-(L09|J1|CL00|TL00|TL10|UL00)!' => [ 'Huawei', 'Ascend Mate 7' ], + '(HW-|HUAWEI )?Z100-(L09|TL00)!' => [ 'Huawei', 'Ascend Mate 7' ], + '(HW-|HUAWEI )?NXT-(AL10|CL00|DL00|L09|L29|TL00|UL00|UL10)!' => [ 'Huawei', 'Mate 8' ], + '(HW-|HUAWEI )?M200-(UL00)!' => [ 'Huawei', 'Mate 8' ], + '(HW-|HUAWEI )?CRR-(L09|CL00|CL20|TL00|UL00|UL20)!' => [ 'Huawei', 'Mate S' ], + ], + + '(HW-|HUAWEI )?(TIT|TAG)!!' => [ + '(HW-|HUAWEI )?TIT-(AL00|CL00|CL10|L01|TL00|U02)!' => [ 'Huawei', 'Enjoy 5' ], + '(HW-|HUAWEI )?TAG-(AL00|CL00|TL00)!' => [ 'Huawei', 'Enjoy 5S' ], + ], + + '(HW-|HUAWEI |HONOR )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|NEM|NMO|PE|PLK|SCL|KNT|CAM)!!' => [ + 'H30 U10' => [ 'Huawei', 'Honor 3C' ], + '(HW-|HUAWEI )?HN3-(U00|U01)!' => [ 'Huawei', 'Honor 3' ], + '(HW-|HUAWEI |HONOR )?H30[- ](C00|L01|L02|T00|T10|U10)!' => [ 'Huawei', 'Honor 3C' ], + '(HW-|HUAWEI )?HOL-(T00|U10|U19)!' => [ 'Huawei', 'Honor 3C' ], + '(HW-|HUAWEI )?CHM-(CL00|TL00H|TL00|U01|UL00)!' => [ 'Huawei', 'Honor Play 4C' ], + '(HW-|HUAWEI )?SCL-(L01|L02|L03|L04|L21|L32|L001|L004|AL00|CL00|TL00|TL00H|U31)!' => [ 'Huawei', 'Honor 4A' ], + '(HW-|HUAWEI )?CHE-(TL00|TL00H)!' => [ 'Huawei', 'Honor 4X' ], + '(HW-|HUAWEI )?Che1-(L04|CL10|CL20)!' => [ 'Huawei', 'Honor 4X' ], + '(HW-|HUAWEI )?Che2-(L11|L12|L23|TL00|UL00)!' => [ 'Huawei', 'Honor 4X' ], + '(HW-|HUAWEI )?NEM-(L22|TL00H)!' => [ 'Huawei', 'Honor 5C' ], + '(HW-|HUAWEI )?NMO-(L23)!' => [ 'Huawei', 'Honor 5C' ], + '(HW-|HUAWEI )?KIW-(AL10|CL00|L21|L22|L24|UL00|TL00|TL00H)!' => [ 'Huawei', 'Honor 5X' ], + '(HW-|HUAWEI )?H60-(J1|L01|L02|L03|L04|L11|L12|L21)!' => [ 'Huawei', 'Honor 6' ], + '(HW-|HUAWEI )?PE-(CL00|TL00|TL10|TL20|UL00)!' => [ 'Huawei', 'Honor 6 Plus' ], + '(HW-|HUAWEI )?PLK-(L01|AL10|CL00|UL00|TL00|TL01H)!' => [ 'Huawei', 'Honor 7' ], + '(HW-|HUAWEI )?ATH-(AL00|CL00|TL00|TL00H|UL00)!' => [ 'Huawei', 'Honor 7i' ], + '(HW-|HUAWEI )?ATH-(UL01|UL06)!' => [ 'Huawei', 'Honor ShotX' ], + '(HW-|HUAWEI )?KNT-(AL10)!' => [ 'Huawei', 'Honor V8' ], + // '(HW-|HUAWEI )?CAM-(L03|AL00|CL00|TL00)!' => [ 'Huawei', 'Honor' ], + ], + + '(HW-|HUAWEI )?(CHC|KII)!!' => [ + '(HW-|HUAWEI )?CHC-(U01|U03|U23)!' => [ 'Huawei', 'G Play Mini' ], + '(HW-|HUAWEI )?KII-(L03|L05|L21|L22|L23)!' => [ 'Huawei', 'GR5' ], + ], + + '(HW-|HUAWEI )?(ALE|D2|EVA|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia|VIE|VNS)!!' => [ + 'HUAWEI D2' => [ 'Huawei', 'Ascend D2' ], + '(HW-|HUAWEI )?D2-(0082|2010|5000|6070|6114)!' => [ 'Huawei', 'Ascend D2' ], + '(HW-|HUAWEI )?G6-(C00|L11|L22|L33|T00|U00|U10|U34|U251)!' => [ 'Huawei', 'Ascend G6' ], + '(HW-|HUAWEI )?G7-(L01|L02|L03|L11|TL00|UL20)!' => [ 'Huawei', 'Ascend G7' ], + 'HUAWEI G7' => [ 'Huawei', 'Ascend G7' ], + '(HW-|HUAWEI )?RIO-(L01|L02|L03|AL00|UL00|CL00|TL00)!' => [ 'Huawei', 'Ascend G8' ], + '(HW-|HUAWEI )?SC-(CL00|UL10)!' => [ 'Huawei', 'Ascend GX1' ], + '(HW-|HUAWEI )?P2-(0000|6011|6070)!' => [ 'Huawei', 'Ascend P2' ], + '(HW-|HUAWEI )?P6-(C00|U00|U06|T00|T00V|VIP)!' => [ 'Huawei', 'Ascend P6' ], + '(HW-|HUAWEI )?P6 ?S-U06!' => [ 'Huawei', 'Ascend P6' ], + '(HW-|HUAWEI )?Sophia-(L07|L10)!' => [ 'Huawei', 'Ascend P7' ], + '(HW-|HUAWEI )?P7-(L00|L05|L07|L09|L10|L11|L12)!' => [ 'Huawei', 'Ascend P7' ], + '(HW-|HUAWEI )?M100-(CL00|L09|TL00|UL00)!' => [ 'Huawei', 'P8' ], + '(HW-|HUAWEI )?GRA-(CL00|CL10|L09|TL00|UL00|UL10)!' => [ 'Huawei', 'P8' ], + '(HW-|HUAWEI )?ALE-?(L02|L04|L21|L23|CL00|TL00|UL00)!' => [ 'Huawei', 'P8 Lite' ], + '(HW-|HUAWEI )?EVA-?(AL00|AL10|DL00)!' => [ 'Huawei', 'P9' ], + '(HW-|HUAWEI )?VNS-?(L21|L53)!' => [ 'Huawei', 'P9 Lite' ], + '(HW-|HUAWEI )?VIE-?(AL00|L29)!' => [ 'Huawei', 'P9 Plus' ], + ], + + 'Huawei P7 mini' => [ 'Huawei', 'Ascend P7 mini' ], + 'Huawei P8max' => [ 'Huawei', 'P8 max' ], + + 'G[0-9]{3,3}!!' => [ + 'G350-U151' => [ 'Huawei', 'Ascend G350' ], + 'G521-(L076|L176)!' => [ 'Huawei', 'Ascend G521' ], + 'G526-(L11|L22|L33)!' => [ 'Huawei', 'Ascend G526' ], + 'G527-(U081)!' => [ 'Huawei', 'Ascend G527' ], + 'G535-(L11)!' => [ 'Huawei', 'Ascend G535' ], + 'G610[ -](T00|T11|U00)!' => [ 'Huawei', 'Ascend G610' ], + 'G615-U10' => [ 'Huawei', 'Ascend G615' ], + 'G616-T00' => [ 'Huawei', 'Ascend G616' ], + 'G618' => [ 'Huawei', 'Ascend G618' ], + 'G620-L75' => [ 'Huawei', 'Ascend G620' ], + 'G620S-(L01|L02|L03|UL00)!' => [ 'Huawei', 'Ascend G620S' ], + 'G621-(TL00|TL00M)!' => [ 'Huawei', 'Ascend G621' ], + 'G629-(UL00)!' => [ 'Huawei', 'Ascend G629' ], + 'G630-(U00|U10|U20|U251)!' => [ 'Huawei', 'Ascend G630' ], + 'G735-(L03|L12|L23)!' => [ 'Huawei', 'Ascend G735' ], + 'G740-L00' => [ 'Huawei', 'Ascend G740' ], + 'G750-(T00|T01)!' => [ 'Huawei', 'Ascend G750' ], + 'G760-(L01|TL00)!' => [ 'Huawei', 'Ascend G760' ], + ], + + 'Y[0-9]{3,3}!!' => [ + 'Y220-(U00|U05|U10|U17)!' => [ 'Huawei', 'Ascend Y220' ], + 'Y220T' => [ 'Huawei', 'Ascend Y220' ], + 'Y320-(U01|U10)!' => [ 'Huawei', 'Ascend Y320' ], + 'Y325-T00' => [ 'Huawei', 'Ascend Y325' ], + 'Y330-U11' => [ 'Huawei', 'Ascend Y330' ], + 'Y340-U081' => [ 'Huawei', 'Ascend Y340' ], + 'Y511' => [ 'Huawei', 'Ascend Y511' ], + 'Y511-(T00|U00)!' => [ 'Huawei', 'Ascend Y511' ], + 'Y536A1' => [ 'Huawei', 'Ascend Y536' ], + 'Y540-U01' => [ 'Huawei', 'Ascend Y540' ], + 'Y541-U02' => [ 'Huawei', 'Ascend Y541' ], + 'Y550-(L02|L03)!' => [ 'Huawei', 'Ascend Y550' ], + 'Y560-L01' => [ 'Huawei', 'Ascend Y560' ], + 'Y600-U00' => [ 'Huawei', 'Ascend Y600' ], + 'Y618-T00' => [ 'Huawei', 'Ascend Y618' ], + 'Y635-(L01|L02|L03|L21|L22)!' => [ 'Huawei', 'Ascend Y635' ], + ], + + 'HUAWEI LUA-(L03|U23)!' => [ 'Huawei', 'Y3 II' ], + 'HUAWEI CUN-(L03|U29)!' => [ 'Huawei', 'Y5 II' ], + 'HUAWEI SCC-U21' => [ 'Huawei', 'Y6' ], + + '(Huawei|Ascend|HW-)!!' => [ + 'Huawei A199' => [ 'Huawei', 'A199' ], + 'Huawei B199' => [ 'Huawei', 'B199' ], + 'Huawei C199' => [ 'Huawei', 'C199' ], + 'HUAWEI C199s' => [ 'Huawei', 'C199s' ], + 'Huawei C8500!' => [ 'Huawei', 'C8500' ], + 'HUAWEI C8550!' => [ 'Huawei', 'C8550' ], + 'Huawei C8600' => [ 'Huawei', 'C8600' ], + 'HW-C8600!' => [ 'Huawei', 'C8600' ], + 'Huawei C8650!' => [ 'Huawei', 'C8650' ], + 'Huawei C8655' => [ 'Huawei', 'Ascend Y201C' ], + 'Huawei C8800' => [ 'Huawei', 'IDEOS X5' ], + 'Huawei C8810!' => [ 'Huawei', 'Ascend G300' ], + 'Huawei C8812!' => [ 'Huawei', 'Ascend C8812' ], + 'Ascend C8812' => [ 'Huawei', 'Ascend C8812' ], + 'Huawei C8813!' => [ 'Huawei', 'Ascend C8813' ], + 'Ascend c8813' => [ 'Huawei', 'Ascend C8813' ], + 'Ascend C8813Q' => [ 'Huawei', 'Ascend C8813' ], + 'Huawei C8815!' => [ 'Huawei', 'Ascend C8815' ], + 'Huawei C8816!' => [ 'Huawei', 'Ascend C8816' ], + 'Huawei C8817!' => [ 'Huawei', 'C8817' ], + 'HW-C8817D!' => [ 'Huawei', 'C8817' ], + 'HUAWEI C8818!' => [ 'Huawei', 'C8818' ], + 'Huawei C8825D' => [ 'Huawei', 'Ascend G330C' ], + 'Huawei C8826D' => [ 'Huawei', 'Ascend G500C' ], + 'Huawei C8850' => [ 'Huawei', 'C8850' ], + 'Huawei C8860E' => [ 'Huawei', 'Honor' ], + 'Huawei C8950D' => [ 'Huawei', 'Honor+' ], + 'Huawei G7500' => [ 'Huawei', 'G7500' ], + 'Huawei CM990' => [ 'Huawei', 'Evolución 3' ], + 'Huawei Evolucion 3' => [ 'Huawei', 'Evolución 3' ], + 'Huawei H866C' => [ 'Huawei', 'H866C' ], + 'Huawei H867G' => [ 'Huawei', 'H867G' ], + 'Huawei H868C' => [ 'Huawei', 'Glory' ], + 'Huawei H870C' => [ 'Huawei', 'H870C' ], + 'Huawei H871G' => [ 'Huawei', 'Magna' ], + 'Huawei H881C' => [ 'Huawei', 'Ascend Plus' ], + 'HUAWEI H891L' => [ 'Huawei', 'Pronto' ], + 'HUAWEI H892L' => [ 'Huawei', 'Honor 4X' ], + 'Huawei M835' => [ 'Huawei', 'M835' ], + 'Huawei M860' => [ 'Huawei', 'Ascend' ], + 'Huawei M866' => [ 'Huawei', 'Ascend Y' ], + 'Huawei M868' => [ 'Huawei', 'M868' ], + 'HUAWEI M881' => [ 'Huawei', 'Asura' ], + 'Huawei M920' => [ 'Huawei', 'M920' ], + 'Huawei M921' => [ 'Huawei', 'M921' ], + 'Huawei M931' => [ 'Huawei', 'M931' ], + 'Ascend Mate 2' => [ 'Huawei', 'Ascend Mate 2' ], + 'Huawei S8520' => [ 'Huawei', 'S8520' ], + 'Huawei S8600' => [ 'Huawei', 'S8600' ], + 'Huawei T8100' => [ 'Huawei', 'T8100' ], + 'Huawei T8300' => [ 'Huawei', 'T8300' ], + 'Huawei ?T8500!' => [ 'Huawei', 'T8500' ], + 'Huawei T8600' => [ 'Huawei', 'T8600' ], + 'Huawei T8620' => [ 'Huawei', 'Ascend Y200T' ], + 'Huawei T8808D' => [ 'Huawei', 'Ascend G306T' ], + 'Huawei T8828' => [ 'Huawei', 'Ascend G305T' ], + 'Huawei T8830' => [ 'Huawei', 'Ascend G309T' ], + 'Huawei T8830 ?Pro!' => [ 'Huawei', 'Ascend G309T Pro' ], + 'Huawei T8833' => [ 'Huawei', 'Ascend Y300' ], + 'Huawei T8950!' => [ 'Huawei', 'Honor+' ], + 'Huawei T8951!' => [ 'Huawei', 'Ascend G510' ], + 'Huawei T9200' => [ 'Huawei', 'Ascend P1' ], + 'Huawei U8110' => [ 'Huawei', 'U8110' ], + 'Huawei U8160' => [ 'Huawei', 'U8160' ], + 'Huawei U8220' => [ 'Huawei', 'U8220' ], + 'Huawei ?U8300!' => [ 'Huawei', 'U8300' ], + 'Huawei ?U8500!' => [ 'Huawei', 'IDEOS X2' ], + 'Huawei ?U8520!' => [ 'Huawei', 'U8520 Duplex' ], + 'Huawei U8600' => [ 'Huawei', 'U8600' ], + 'Huawei ?U8650!' => [ 'Huawei', 'Sonic' ], + 'Huawei U8651' => [ 'Huawei', 'Prism' ], + 'Huawei U8652' => [ 'Huawei', 'Sonic' ], + 'Huawei U8661' => [ 'Huawei', 'Sonic+' ], + 'Huawei U8665' => [ 'Huawei', 'Fusion 2' ], + 'Huawei U8666!' => [ 'Huawei', 'Ascend Y201' ], + 'Huawei U8681' => [ 'Huawei', 'Ascend G312' ], + 'Huawei U8687' => [ 'Huawei', 'Chronos' ], + 'Huawei U8800!' => [ 'Huawei', 'IDEOS X5' ], + 'Huawei U8815!' => [ 'Huawei', 'Ascend G300' ], + 'Huawei U8818' => [ 'Huawei', 'Ascend G300' ], + 'Huawei U8825D' => [ 'Huawei', 'Ascend G330D' ], + 'Huawei U8825-1' => [ 'Huawei', 'Ascend G330' ], + 'HUAWEI G330-0100' => [ 'Huawei', 'Ascend G330' ], + 'Huawei u8833' => [ 'Huawei', 'Ascend Y300' ], + 'Huawei u8836d' => [ 'Huawei', 'Ascend G500' ], + 'Huawei U8850' => [ 'Huawei', 'Vision' ], + 'Huawei U8860' => [ 'Huawei', 'Honor' ], + 'Huawei Honor' => [ 'Huawei', 'Honor' ], + 'Huawei U8950!' => [ 'Huawei', 'Ascend G600' ], + 'HUAWEI U8951!' => [ 'Huawei', 'Ascend G510' ], + 'Huawei ?U9000!' => [ 'Huawei', 'Ascend X' ], + 'HUAWEI HONOR 2' => [ 'Huawei', 'Honor 2' ], + 'Huawei U9508' => [ 'Huawei', 'Honor 2' ], + 'Huawei ?U9508!' => [ 'Huawei', 'Honor 2 Quad-core' ], + 'Ascend D1' => [ 'Huawei', 'Ascend D1' ], + 'Huawei U9510!' => [ 'Huawei', 'Ascend D quad' ], + 'Huawei EDGE' => [ 'Huawei', 'Ascend P6' ], + 'Huawei Ascend P6' => [ 'Huawei', 'Ascend P6' ], + 'Ascend P7' => [ 'Huawei', 'Ascend P7' ], + 'Huawei Ideos X1' => [ 'Huawei', 'IDEOS X1' ], + 'Huawei IDEOS U8500' => [ 'Huawei', 'IDEOS X2' ], + 'Huawei IDEOS U8650' => [ 'Huawei', 'Sonic' ], + 'Huawei IDEOS X3' => [ 'Huawei', 'IDEOS X3' ], + 'Huawei Ideos X5!' => [ 'Huawei', 'IDEOS X5' ], + 'Huawei X6' => [ 'Huawei', 'IDEOS X6' ], + 'Huawei IDEOS Y 200' => [ 'Huawei', 'IDEOS Y200' ], + 'Huawei SONIC' => [ 'Huawei', 'Sonic' ], + 'Huawei 8100-9' => [ 'Huawei', 'U8100' ], + 'Huawei UM840' => [ 'Huawei', 'UM840' ], + 'Huawei Ascend G 300' => [ 'Huawei', 'Ascend G300' ], + 'Huawei G300' => [ 'Huawei', 'Ascend G300' ], + 'Ascend G300' => [ 'Huawei', 'Ascend G300' ], + 'Ascend G301' => [ 'Huawei', 'Ascend G301' ], + 'Ascend G330' => [ 'Huawei', 'Ascend G330' ], + 'Huawei Ascend G 330' => [ 'Huawei', 'Ascend G330' ], + 'Huawei G350!' => [ 'Huawei', 'Ascend G350' ], + 'Huawei G506!' => [ 'Huawei', 'Ascend G506' ], + 'Huawei ?G510!' => [ 'Huawei', 'Ascend G510' ], + 'Ascend G510c' => [ 'Huawei', 'Ascend G510c' ], + 'Huawei Ascend G510' => [ 'Huawei', 'Ascend G510' ], + 'Ascend G510' => [ 'Huawei', 'Ascend G510' ], + 'Huawei G520!' => [ 'Huawei', 'Ascend G520' ], + 'HUAWEI G521!' => [ 'Huawei', 'Ascend G521' ], + 'Huawei G525!' => [ 'Huawei', 'Ascend G525' ], + 'HUAWEI Ascend G525' => [ 'Huawei', 'Ascend G525' ], + 'Huawei G535!' => [ 'Huawei', 'Ascend G535' ], + 'Ascend G600' => [ 'Huawei', 'Ascend G600' ], + 'Huawei G606!' => [ 'Huawei', 'Ascend G606' ], + 'Huawei G610!' => [ 'Huawei', 'Ascend G610' ], + 'Huawei G615!' => [ 'Huawei', 'Ascend G615' ], + 'HUAWEI G616!' => [ 'Huawei', 'Ascend G616' ], + 'Huawei G620!' => [ 'Huawei', 'Ascend G620' ], + 'Huawei G621!' => [ 'Huawei', 'Ascend G621' ], + 'Huawei G628!' => [ 'Huawei', 'Ascend G628' ], + 'Huawei G629!' => [ 'Huawei', 'Ascend G629' ], + 'Huawei G630!' => [ 'Huawei', 'Ascend G630' ], + 'HUAWEI G660!' => [ 'Huawei', 'Ascend G660' ], + 'Huawei G700!' => [ 'Huawei', 'Ascend G700' ], + 'Huawei G701!' => [ 'Huawei', 'Ascend G701' ], + 'Huawei ?G716!' => [ 'Huawei', 'Ascend G716' ], + 'Huawei G718!' => [ 'Huawei', 'Ascend G718' ], + 'Huawei G730!' => [ 'Huawei', 'Ascend G730' ], + 'Huawei G750!' => [ 'Huawei', 'Ascend G750' ], + 'Huawei G760-(L01|L071)!' => [ 'Huawei', 'Ascend G760' ], + 'Huawei G760S-(UL00)!' => [ 'Huawei', 'Ascend G760' ], + 'Huawei Ascend Y 210' => [ 'Huawei', 'Ascend Y210' ], + 'Huawei Ascend Y 210D' => [ 'Huawei', 'Ascend Y210' ], + 'Huawei Asend Y 210D' => [ 'Huawei', 'Ascend Y210' ], + 'Huawei Y210!' => [ 'Huawei', 'Ascend Y210' ], + 'Ascend Y201PRO' => [ 'Huawei', 'Ascend Y210 Pro' ], + 'Huawei Y ?220T!' => [ 'Huawei', 'Ascend Y220' ], + 'Huawei Y-220T' => [ 'Huawei', 'Ascend Y220' ], + 'Huawei Y220-(T10)!' => [ 'Huawei', 'Ascend Y220' ], + 'HUAWEI Y221-(U03|U12|U22|U33|U43|U53)!' => [ 'Huawei', 'Ascend Y221' ], + 'Huawei ?Y300!' => [ 'Huawei', 'Ascend Y300' ], + 'Ascend Y300' => [ 'Huawei', 'Ascend Y300' ], + 'Huawei Ascend Y300' => [ 'Huawei', 'Ascend Y300' ], + 'Huawei Y301!' => [ 'Huawei', 'Ascend Y301' ], + 'Huawei Y310!' => [ 'Huawei', 'Ascend Y310' ], + 'Huawei Y320!' => [ 'Huawei', 'Ascend Y320' ], + 'Huawei Y321!' => [ 'Huawei', 'Ascend Y321' ], + 'Huawei Y325!' => [ 'Huawei', 'Ascend Y325' ], + 'Huawei Y330!' => [ 'Huawei', 'Ascend Y330' ], + 'HUAWEI Y336!' => [ 'Huawei', 'Ascend Y336' ], + 'HUAWEI Y360!' => [ 'Huawei', 'Ascend Y360' ], + 'Huawei Y500!' => [ 'Huawei', 'Ascend Y500' ], + 'Huawei Y511!' => [ 'Huawei', 'Ascend Y511' ], + 'Huawei Y516!' => [ 'Huawei', 'Ascend Y516' ], + 'Huawei Y518!' => [ 'Huawei', 'Ascend Y518' ], + 'HUAWEI Y520!' => [ 'Huawei', 'Ascend Y520' ], + 'Huawei Y523!' => [ 'Huawei', 'Ascend Y523' ], + 'Huawei Y530!' => [ 'Huawei', 'Ascend Y530' ], + 'HUAWEI Y535!' => [ 'Huawei', 'Ascend Y535' ], + 'HUAWEI Y536A1' => [ 'AT&T', 'Tribute' ], + 'HUAWEI Y536!' => [ 'Huawei', 'Ascend Y536' ], + 'HUAWEI Y540-(U01)!' => [ 'Huawei', 'Ascend Y540' ], + 'HUAWEI Y541!' => [ 'Huawei', 'Ascend Y541' ], + 'HUAWEI Y550' => [ 'Huawei', 'Ascend Y550' ], + 'HUAWEI Y550-(L01|L02|L03)!' => [ 'Huawei', 'Ascend Y550' ], + 'HUAWEI Y560-(CL00|L01|L02|L03|L23|U02|U03|U12|U23)!' => [ 'Huawei', 'Ascend Y560' ], + 'Huawei Y600-(U00|U20|U40|U151|U351)!' => [ 'Huawei', 'Ascend Y600' ], + 'HUAWEI Y600D-C00' => [ 'Huawei', 'Ascend Y600D' ], + 'HUAWEI Y610-U00' => [ 'Huawei', 'Ascend Y610' ], + 'HUAWEI Y618-T00' => [ 'Huawei', 'Ascend Y618' ], + 'HUAWEI Y625-(U13|U21|U32|U43|U51)!' => [ 'Huawei', 'Ascend Y625' ], + 'HUAWEI Y635!' => [ 'Huawei', 'Ascend Y635' ], + 'Huawei Ascend' => [ 'Huawei', 'Ascend' ], + 'Huawei Ascend X' => [ 'Huawei', 'Ascend X' ], + ], + + 'M650' => [ 'Huawei', 'Express' ], + 'M660' => [ 'Huawei', 'Ascend Q' ], + 'unknown M200-L09' => [ 'Huawei', 'Mate 8' ], + 'Honor3c2G-T' => [ 'Huawei', 'Honor 3C' ], + 'HUAWEI Honor 3c w' => [ 'Huawei', 'Honor 3C' ], + 'Orange HUAWEI GRA-L09' => [ 'Huawei', 'Ascend P8' ], + 'FUSIONideos' => [ 'Huawei', 'IDEOS' ], + 'Gnappo Ideos' => [ 'Huawei', 'IDEOS' ], + 'hwu8812D' => [ 'Huawei', 'Ascend G302D' ], + + 'IDEOS!!' => [ + 'Ideos' => [ 'Huawei', 'IDEOS' ], + 'IDEOS X1' => [ 'Huawei', 'IDEOS X1' ], + 'IDEOS X5' => [ 'Huawei', 'IDEOS X5' ], + 'IDEOS X5 PRO' => [ 'Huawei', 'IDEOS X5 Pro' ], + 'IDEOS S7!' => [ 'Huawei', 'IDEOS S7', DeviceType::TABLET ], + ], + + 'Huawei S7' => [ 'Huawei', 'IDEOS S7', DeviceType::TABLET ], + 'SONIC' => [ 'Huawei', 'Sonic' ], + 'Lucky Ultra Sonic U8650' => [ 'Huawei', 'Sonic' ], + 'MTC Android' => [ 'Huawei', 'U8110' ], + + '[0-9AS][0-9]{2,2}HW!!' => [ + 'A01HW' => [ 'Huawei', 'A01HW', DeviceType::TABLET, 'carrier' => 'EMOBILE' ], + 'S31HW' => [ 'Huawei', 'Pocket WiFi S S31HW', 'carrier' => 'EMOBILE' ], + 'S41HW' => [ 'Huawei', 'Pocket WiFi S II S41HW', 'carrier' => 'EMOBILE' ], + 'S42HW' => [ 'Huawei', 'smart bar S42HW', 'carrier' => 'EMOBILE' ], + '007HW' => [ 'Huawei', 'Vision 007HW', 'carrier' => 'Softbank' ], + '201HW' => [ 'Huawei', 'STREAM 201HW', 'carrier' => 'Softbank' ], + '204HW' => [ 'Huawei', '204HW', 'carrier' => 'Softbank' ], + '301HW' => [ 'Huawei', 'Pocket WiFi 301HW', 'carrier' => 'Softbank' ], + '302HW' => [ 'Huawei', 'STREAM S 302HW', 'carrier' => 'Y! Mobile' ], + '402HW' => [ 'Huawei', 'MediaPad 10 Link+ 402HW', DeviceType::TABLET, 'carrier' => 'Softbank' ], + '403HW' => [ 'Huawei', 'MediaPad M1 8.0 403HW', DeviceType::TABLET, 'carrier' => 'Y! Mobile' ], + '503HW' => [ 'Huawei', 'LUMIERE 503HW', 'carrier' => 'Y! Mobile' ], + ], + + 'CM980' => [ 'Huawei', 'Evolution II' ], + 'CM990' => [ 'Huawei', 'Evolución 3' ], + 'UM840' => [ 'Huawei', 'Evolution' ], + 'M310' => [ 'Huawei', 'MediaQ M310', DeviceType::TELEVISION ], + 'M860' => [ 'Huawei', 'Ascend' ], + 'M865' => [ 'Huawei', 'Ascend II' ], + 'M886' => [ 'Huawei', 'Glory' ], + 'S8600' => [ 'Huawei', 'S8600' ], + + 'C8[0-9]{3,3}!!' => [ + 'C8150' => [ 'Huawei', 'IDEOS' ], + 'C8500!' => [ 'Huawei', 'C8500' ], + 'C8600' => [ 'Huawei', 'C8600' ], + 'C8650!' => [ 'Huawei', 'C8650' ], + 'C8800' => [ 'Huawei', 'C8800' ], + 'C8810' => [ 'Huawei', 'Ascend G300C' ], + 'C8812!' => [ 'Huawei', 'Ascend C8812' ], + 'C8815!' => [ 'Huawei', 'Ascend C8815' ], + 'C8860!' => [ 'Huawei', 'Honor' ], + ], + + 'T8[0-9]{3,3}!!' => [ + 'T8620' => [ 'Huawei', 'Ascend Y200T' ], + 'T8808!' => [ 'Huawei', 'Ascend G306T' ], + 'T8830!' => [ 'Huawei', 'Ascend G309T' ], + ], + + 'T9[0-9]{3,3}!!' => [ + 'T9200' => [ 'Huawei', 'Ascend P1' ], + 'T9510E' => [ 'Huawei', 'Ascend D1 Quad XL' ], + ], + + 'U8[0-9]{3,3}!!' => [ + 'U8100' => [ 'Huawei', 'U8100' ], + 'U8110' => [ 'Huawei', 'U8110' ], + 'U8120' => [ 'Huawei', 'U8120' ], + 'U8180' => [ 'Huawei', 'IDEOS X1' ], + 'U8300' => [ 'Huawei', 'U8300' ], + 'U8350' => [ 'Huawei', 'Boulder' ], + 'U8150' => [ 'Huawei', 'IDEOS' ], + 'U8160' => [ 'Huawei', 'U8160' ], + 'U8180' => [ 'Huawei', 'IDEOS X1' ], + 'U8185' => [ 'Huawei', 'Ascend Y100' ], + 'U8186' => [ 'Huawei', 'Ascend Y101' ], + 'U8230' => [ 'Huawei', 'U8230' ], + 'U8500' => [ 'Huawei', 'IDEOS X2' ], + 'U8500 HiQQ' => [ 'Huawei', 'U8500 HiQQ Edition' ], + 'U8510!' => [ 'Huawei', 'IDEOS X3' ], + 'U8520' => [ 'Huawei', 'U8520 Duplex' ], + 'U8600' => [ 'Huawei', 'U8600' ], + 'U8650!' => [ 'Huawei', 'Sonic' ], + 'U8651!' => [ 'Huawei', 'Talon U8651' ], + 'U8652!' => [ 'Huawei', 'Fusion U8652' ], + 'U8655!' => [ 'Huawei', 'Ascend Y200' ], + 'U8660' => [ 'Huawei', 'Sonic' ], + 'U8665' => [ 'Huawei', 'Fusion 2' ], + 'U8666!' => [ 'Huawei', 'Ascend Y201' ], + 'U8667' => [ 'Huawei', 'U8667' ], + 'U8800 ?Pro!' => [ 'Huawei', 'IDEOS X5 Pro' ], + 'U8800!' => [ 'Huawei', 'IDEOS X5' ], + 'U8812' => [ 'Huawei', 'Ascend G302D' ], + 'U8812D' => [ 'Huawei', 'Ascend G302D' ], + 'U8815N' => [ 'Huawei', 'Ascend G300' ], + 'U8815-51' => [ 'Huawei', 'Ascend G300' ], + 'U8815' => [ 'Huawei', 'Ascend G300' ], + 'U8816' => [ 'Huawei', 'Ascend G301' ], + 'U8818' => [ 'Huawei', 'Ascend G300' ], + 'U8820' => [ 'Huawei', 'Titan' ], + 'U8832D' => [ 'Huawei', 'Ascend G500' ], + 'U8836D' => [ 'Huawei', 'Ascend G500' ], + 'U8850' => [ 'Huawei', 'Vision' ], + 'U8860!' => [ 'Huawei', 'Honor' ], + ], + + 'U9[0-9]{3,3}!!' => [ + 'U9000' => [ 'Huawei', 'Ascend X' ], + 'U9200!' => [ 'Huawei', 'Ascend P1' ], + 'U9202!' => [ 'Huawei', 'Ascend P1' ], + 'U9500' => [ 'Huawei', 'Ascend D1' ], + 'U9500E' => [ 'Huawei', 'Ascend D1 XL' ], + 'U9501L' => [ 'Huawei', 'Ascend D LTE' ], + 'U9508' => [ 'Huawei', 'Honor 2' ], + 'U9510!' => [ 'Huawei', 'Ascend D quad' ], + ], + + 'Comet' => [ 'Huawei', 'Comet' ], + 'Joy' => [ 'Huawei', 'Joy' ], + 'DroniX-0.5' => [ 'Huawei', 'U8180' ], + 'TSP21' => [ 'Huawei', 'U8110' ], + + 'GS02' => [ 'Huawei', 'GS02', 'carrier' => 'EMOBILE' ], + 'GS03' => [ 'Huawei', 'GS03', 'carrier' => 'EMOBILE' ], + 'GL07S' => [ 'Huawei', 'STREAM X GL07S', 'carrier' => 'EMOBILE' ], + 'HW-01E' => [ 'Huawei', 'Ascend HW-01E', 'carrier' => 'DoCoMo' ], + 'HW-03E' => [ 'Huawei', 'Ascend D2 HW-03E', 'carrier' => 'DoCoMo' ], + 'H866C' => [ 'Huawei', 'Ascend Y H866C' ], + 'H882L' => [ 'Huawei', 'Ascend Y301-A' ], + + 'USCCADR[0-9]{4,4}!!' => [ + 'USCCADR3305' => [ 'Huawei', 'Ascend II' ], + 'USCCADR3310' => [ 'Huawei', 'Ascend II' ], + ], + + 'HYUNDAI!!' => [ + 'HYUNDAI H6' => [ 'Hyundai', 'Storm H6' ], + 'HYUNDAI H6 B' => [ 'Hyundai', 'Storm H6' ], + 'HYUNDAI H8' => [ 'Hyundai', 'H8' ], + 'HYUNDAI H8Q' => [ 'Hyundai', 'H8Q' ], + 'HYUNDAI H9' => [ 'Hyundai', 'H9' ], + 'HYUNDAI H10' => [ 'Hyundai', 'H10' ], + 'HYUNDAI H11' => [ 'Hyundai', 'H11' ], + 'Hyundai HT-10G' => [ 'Hyundai', 'HT-10G', DeviceType::TABLET ], + 'HYUNDAI Q5' => [ 'Hyundai', 'Q5' ], + 'HYUNDAI Q5X' => [ 'Hyundai', 'Q5X' ], + 'HYUNDAI T7' => [ 'Hyundai', 'T7', DeviceType::TABLET ], + 'HYUNDAI T7S' => [ 'Hyundai', 'T7s', DeviceType::TABLET ], + 'HYUNDAI T10' => [ 'Hyundai', 'T10', DeviceType::TABLET ], + 'HYUNDAI T31' => [ 'Hyundai', 'T31', DeviceType::TABLET ], + 'HYUNDAI X7' => [ 'Hyundai', 'X7' ], + 'HYUNDAI X900' => [ 'Hyundai', 'X900', DeviceType::TABLET ], + ], + + 'Ultra Charm' => [ 'Hyundai', 'Ultra Charm' ], + 'Ultra Energy Lite' => [ 'Hyundai', 'Ultra Energy Lite' ], + 'Ultra Energy Plus' => [ 'Hyundai', 'Ultra Energy Plus' ], + 'Ultra Latitude' => [ 'Hyundai', 'Ultra Latitude' ], + 'Ultra Style' => [ 'Hyundai', 'Ultra Style' ], + 'A7 HD' => [ 'Hyundai', 'A7 HD', DeviceType::TABLET ], + 'MW1031' => [ 'Hyundai', 'MW1031', DeviceType::TABLET ], + 'Elektra L' => [ 'i-Joy', 'Elektra L' ], + 'Elektra XL' => [ 'i-Joy', 'Elektra XL' ], + 'i-Joy i-Call' => [ 'i-Joy', 'i-Call' ], + 'i-Call 300' => [ 'i-Joy', 'i-Call 300' ], + 'i-Call 300v2' => [ 'i-Joy', 'i-Call 300' ], + 'i-Call 504' => [ 'i-Joy', 'i-Call 504' ], + 'DEOX' => [ 'i-Joy', 'Deox', DeviceType::TABLET ], + 'Neon7' => [ 'i-Joy', 'Neon7', DeviceType::TABLET ], + 'Neon9' => [ 'i-Joy', 'Neon9', DeviceType::TABLET ], + 'Planet II v2' => [ 'i-Joy', 'Planet II', DeviceType::TABLET ], + 'Sygnus' => [ 'i-Joy', 'Sygnus', DeviceType::TABLET ], + + '(NMP|MBR|XDK|XDS|XMP)\-!!' => [ + 'NMP-302w' => [ 'IAdea', 'MBR-1100', DeviceType::SIGNAGE ], + 'MBR-1100' => [ 'IAdea', 'MBR-1100', DeviceType::SIGNAGE ], + 'XDK-1160' => [ 'IAdea', 'XDK-1160', DeviceType::SIGNAGE ], + 'XDK-1560' => [ 'IAdea', 'XDK-1560', DeviceType::SIGNAGE ], + 'XDS-0548' => [ 'IAdea', 'XDS-0548', DeviceType::SIGNAGE ], + 'XDS-1078' => [ 'IAdea', 'XDS-1078', DeviceType::SIGNAGE ], + 'XDS-2370' => [ 'IAdea', 'XDS-2370', DeviceType::SIGNAGE ], + 'XMP-6200' => [ 'IAdea', 'XMP-6200', DeviceType::SIGNAGE ], + 'XMP-6400' => [ 'IAdea', 'XMP-6400', DeviceType::SIGNAGE ], + 'XMP-7300' => [ 'IAdea', 'XMP-7300', DeviceType::SIGNAGE ], + ], + + '(iBall )?Andi!!' => [ + 'Andi3n' => [ 'iBall', 'Andi 3n' ], + 'iBall Andi3e' => [ 'iBall', 'Andi 3e' ], + 'iBall Andi3.5' => [ 'iBall', 'Andi 3.5' ], + 'Andi 3.5i' => [ 'iBall', 'Andi 3.5i' ], + 'Andi3.5r' => [ 'iBall', 'Andi 3.5r' ], + 'iBall Andi3.5 Classique' => [ 'iBall', 'Andi 3.5 Classique' ], + 'Andi3.5KKe' => [ 'iBall', 'Andi 3.5KKe' ], + 'Andi 3.5KKe+' => [ 'iBall', 'Andi 3.5KKe+' ], + 'iBall Andi 3.5KKe Genius' => [ 'iBall', 'Andi 3.5KKe Genius' ], + 'Andi3.5KKe Glory' => [ 'iBall', 'Andi 3.5KKe Glory' ], + 'Andi3.5KKe Super' => [ 'iBall', 'Andi 3.5KKe Super' ], + 'iBall Andi 3.5KKe Winner' => [ 'iBall', 'Andi 3.5KKe Winner' ], + 'iBall Andi 4 IPS TIGER 1GB' => [ 'iBall', 'Andi 4 IPS Tiger' ], + 'Andi 4 IPS Tiger' => [ 'iBall', 'Andi 4 IPS Tiger' ], + 'iBall Andi4-B2' => [ 'iBall', 'Andi 4B2' ], + 'iball Andi4di' => [ 'iBall', 'Andi 4Di' ], + 'iBall Andi 4di+' => [ 'iBall', 'Andi 4Di' ], + 'Andi4F Waves' => [ 'iBall', 'Andi 4F Waves' ], + 'iBall Andi4P IPS GEM' => [ 'iBall', 'Andi 4P Gem' ], + 'iBall Andi4P IPS Velvet' => [ 'iBall', 'Andi 4P Velvet' ], + 'Andi4U Frisbee' => [ 'iBall', 'Andi 4U Frisbee' ], + 'iBall Andi4.3J' => [ 'iBall', 'Andi 4.3J' ], + 'iBall Andi4.3J+' => [ 'iBall', 'Andi 4.3J' ], + 'iBall Andi4.5d quadro' => [ 'iBall', 'Andi 4.5d Quadro' ], + 'iBALL Andi4.5h' => [ 'iBall', 'Andi 4.5h' ], + 'Andi4.5h' => [ 'iBall', 'Andi 4.5h' ], + 'Andi4.5M Enigma' => [ 'iBall', 'Andi 4.5m Enigma' ], + 'Andi 4.5P Glitter' => [ 'iBall', 'Andi 4.5p Glitter' ], + 'iBall Andi4.5q' => [ 'iBall', 'Andi 4.5q' ], + 'Andi 4.5z' => [ 'iBall', 'Andi 4.5z' ], + 'iBall Andi4.5 Ripple 3G' => [ 'iBall', 'Andi 4.5 Ripple' ], + 'iBall Andi4.5 Ripple' => [ 'iBall', 'Andi 4.5 Ripple' ], + 'Andi5 Stallion' => [ 'iBall', 'Andi 5 Stallion' ], + 'Andi5h quadro' => [ 'iBall', 'Andi 5h Quadro' ], + 'Andi5K Panther' => [ 'iBall', 'Andi 5K Panther' ], + 'Andi5K Sparkle' => [ 'iBall', 'Andi 5K Sparkle' ], + 'iBall Andi5L' => [ 'iBall', 'Andi 5L' ], + 'Andi5Li' => [ 'iBall', 'Andi 5Li' ], + 'iBall Andi5T Cobalt2' => [ 'iBall', 'Andi 5T Cobalt 2' ], + 'iBall Andi 5T Cobalt2' => [ 'iBall', 'Andi 5T Cobalt 2' ], + 'iBall Andi5-E7' => [ 'iBall', 'Andi 5-E7' ], + 'iBall Andi5-M8' => [ 'iBall', 'Andi 5-M8' ], + 'Andi5.5 N2' => [ 'iBall', 'Andi 5.5 N2' ], + 'Andi107' => [ 'iBall', 'Andi 107' ], + 'Andi Avonte5' => [ 'iBall', 'Andi Avonte 5' ], + ], + + 'iBall!!' => [ + 'iBall Slide i5715' => [ 'iBall', 'Slide i5715', DeviceType::TABLET ], + 'iBall i6012' => [ 'iBall', 'Slide i6012', DeviceType::TABLET ], + 'iBall Slide i6030' => [ 'iBall', 'Slide i6030', DeviceType::TABLET ], + 'iBall Slide 6309i' => [ 'iBall', 'Slide i6309', DeviceType::TABLET ], + 'iBall Slide 6318i' => [ 'iBall', 'Slide i6318', DeviceType::TABLET ], + 'iBall Slide i6516' => [ 'iBall', 'Slide i6516', DeviceType::TABLET ], + 'iBall Slide i7011' => [ 'iBall', 'Slide i7011', DeviceType::TABLET ], + 'iBall Slide i7119' => [ 'iBall', 'Slide i7119', DeviceType::TABLET ], + 'iBall Slide i9702' => [ 'iBall', 'Slide i9702', DeviceType::TABLET ], + 'iBall Slide 3G7271' => [ 'iBall', 'Slide 3G 7271', DeviceType::TABLET ], + 'iBall Slide 3G 7307' => [ 'iBall', 'Slide 3G 7307', DeviceType::TABLET ], + 'IBall 3G 7316' => [ 'iBall', 'Slide 3G 7316', DeviceType::TABLET ], + 'iBall Slide 3G 7316' => [ 'iBall', 'Slide 3G 7316', DeviceType::TABLET ], + 'iBall Slide 3G 7334' => [ 'iBall', 'Slide 3G 7334', DeviceType::TABLET ], + 'iBall Slide 3G Q1035' => [ 'iBall', 'Slide 3G Q1035', DeviceType::TABLET ], + ], + + '3G7334i' => [ 'iBall', 'Slide 3G 7334', DeviceType::TABLET ], + + '(Aura|iberry|AUXUS)!!' => [ + 'Aura A1' => [ 'iBerry', 'Auxus Aura A1', DeviceType::TABLET ], + 'AUXUS AX01' => [ 'iBerry', 'Auxus AX01', DeviceType::TABLET ], + 'iberry AUXUS AX02' => [ 'iBerry', 'Auxus AX02', DeviceType::TABLET ], + 'AUXUS CoreX2 3G' => [ 'iBerry', 'Auxus CoreX2', DeviceType::TABLET ], + 'AUXUS CoreX4 3G' => [ 'iBerry', 'Auxus CoreX4', DeviceType::TABLET ], + 'AUXUS Nuclea N1' => [ 'iBerry', 'Auxus Nuclea N1' ], + 'AUXUS Nuclea N2' => [ 'iBerry', 'Auxus Nuclea N2' ], + ], + + '(NetTab|NT-)!!' => [ + 'NetTab iconBIT' => [ 'IconBit', 'NetTab', DeviceType::TABLET ], + 'NetTAB Matrix' => [ 'IconBit', 'NetTab Matrix', DeviceType::TABLET ], + 'NT-0704M' => [ 'IconBit', 'NetTab Matrix Ultra', DeviceType::TABLET ], + 'NT-0705M' => [ 'IconBit', 'NetTab Matrix Quad', DeviceType::TABLET ], + 'NetTAB MATRIX HD' => [ 'IconBit', 'NetTab Matrix HD', DeviceType::TABLET ], + 'NT-0708M' => [ 'IconBit', 'NetTab Matrix HD', DeviceType::TABLET ], + 'NT-0709M' => [ 'IconBit', 'NetTab Matrix DX', DeviceType::TABLET ], + 'NT-0711M' => [ 'IconBit', 'NetTab Matrix DX', DeviceType::TABLET ], + 'NetTAB Pocket' => [ 'IconBit', 'NetTab Pocket', DeviceType::TABLET ], + 'NetTAB PRIDE' => [ 'IconBit', 'NetTab Pride', DeviceType::TABLET ], + 'NetTAB RUNE' => [ 'IconBit', 'NetTab Rune', DeviceType::TABLET ], + 'NT-0801C' => [ 'IconBit', 'NetTab Skat RX', DeviceType::TABLET ], + 'NT-0806C' => [ 'IconBit', 'NetTab Skat LE', DeviceType::TABLET ], + 'NetTAB SKY' => [ 'IconBit', 'NetTab Sky', DeviceType::TABLET ], + 'NT-0701S' => [ 'IconBit', 'NetTab Sky Net', DeviceType::TABLET ], + 'NetTAB SKY II' => [ 'IconBit', 'NetTab Sky II', DeviceType::TABLET ], + 'NetTAB Space 3G' => [ 'IconBit', 'NetTab Space', DeviceType::TABLET ], + 'NetTAB SPACE II' => [ 'IconBit', 'NetTab Space II', DeviceType::TABLET ], + 'NetTAB SPACE II Plus' => [ 'IconBit', 'NetTab Space II Plus', DeviceType::TABLET ], + 'NetTAB SPACE III' => [ 'IconBit', 'NetTab Space III', DeviceType::TABLET ], + 'NT-0901S' => [ 'IconBit', 'NetTab Space Quad HD', DeviceType::TABLET ], + 'NT-0902S' => [ 'IconBit', 'NetTab Space Quad RX', DeviceType::TABLET ], + 'NetTAB THOR' => [ 'IconBit', 'NetTab Thor', DeviceType::TABLET ], + 'NetTAB THOR V4.10' => [ 'IconBit', 'NetTab Thor', DeviceType::TABLET ], + 'NT-0907T' => [ 'IconBit', 'NetTab Thor ZX', DeviceType::TABLET ], + 'NT-0909T' => [ 'IconBit', 'NetTab Thor IZ', DeviceType::TABLET ], + 'NetTAB THOR mini' => [ 'IconBit', 'NetTab Thor Mini', DeviceType::TABLET ], + 'NetTAB THOR-LE' => [ 'IconBit', 'NetTab Thor LE', DeviceType::TABLET ], + 'NT-1001T' => [ 'IconBit', 'NetTab Thor LE', DeviceType::TABLET ], + 'NT-1002T' => [ 'IconBit', 'NetTab Thor LE', DeviceType::TABLET ], + 'NT-1004T' => [ 'IconBit', 'NetTab Thor Quad FHD', DeviceType::TABLET ], + 'NT-1005T' => [ 'IconBit', 'NetTab Thor Quad', DeviceType::TABLET ], + 'NT-1006T' => [ 'IconBit', 'NetTab Thor Quad MX', DeviceType::TABLET ], + 'NT-1008T' => [ 'IconBit', 'NetTab Thor 3GTS', DeviceType::TABLET ], + 'NT-1009T' => [ 'IconBit', 'NetTab Thor Quad II', DeviceType::TABLET ], + 'NT-1010T' => [ 'IconBit', 'NetTab Thor LE', DeviceType::TABLET ], + 'NT-1011T' => [ 'IconBit', 'NetTab Thor LE', DeviceType::TABLET ], + 'NT-1020T' => [ 'IconBit', 'NetTab Thor LX', DeviceType::TABLET ], + 'NT-1021T' => [ 'IconBit', 'NetTab Thor LX', DeviceType::TABLET ], + 'NT-1501C' => [ 'IconBit', 'NetTab Callisto 100', DeviceType::WATCH ], + 'NT-3506M' => [ 'IconBit', 'NetTab Mercury Quad FHD' ], + 'NT-3507M' => [ 'IconBit', 'NetTab Mercury Quad' ], + 'NT-3509M' => [ 'IconBit', 'NetTab Mercury Q4' ], + 'NT-3510M' => [ 'IconBit', 'NetTab Mercury Q5' ], + 'NT-3513M!' => [ 'IconBit', 'NetTab Mercury LX' ], + 'NT-3601P!' => [ 'IconBit', 'NetTab Pocket' ], + 'NT-3602M' => [ 'IconBit', 'NetTab Mercury Q7' ], + 'NT-3701S' => [ 'IconBit', 'NetTab Sky 3G Duo', DeviceType::TABLET ], + 'NT-3702M' => [ 'IconBit', 'NetTab Matrix 3G Duo', DeviceType::TABLET ], + 'NT-3702S' => [ 'IconBit', 'NetTab Sky HD 3G', DeviceType::TABLET ], + 'NT-3710S' => [ 'IconBit', 'NetTab Sky 3G Plus', DeviceType::TABLET ], + 'NT-3801P' => [ 'IconBit', 'NetTab Parus 3G Duo', DeviceType::TABLET ], + 'NT-3803C' => [ 'IconBit', 'NetTab Skat 3G', DeviceType::TABLET ], + 'NT-3805C' => [ 'IconBit', 'NetTab Skat 3G Quad', DeviceType::TABLET ], + 'NT-3902S' => [ 'IconBit', 'NetTab Space 3G Duo', DeviceType::TABLET ], + ], + + 'IconBit NetTab Thor Mini' => [ 'IconBit', 'NetTab Thor Mini', DeviceType::TABLET ], + 'D70W' => [ 'Icoo', 'D70W', DeviceType::TABLET ], + 'D80' => [ 'Icoo', 'D80', DeviceType::TABLET ], + 'AURUS III' => [ 'Idea', 'Aurus III' ], + + 'CT720G' => [ 'IdeaUSA', 'CT720G', DeviceType::TABLET ], + 'CT720HD' => [ 'IdeaUSA', 'CT720HD', DeviceType::TABLET ], + 'CT920' => [ 'IdeaUSA', 'CT920', DeviceType::TABLET ], + 'CT1006' => [ 'IdeaUSA', 'CT1006', DeviceType::TABLET ], + + 'INFOBAR!!' => [ + 'INFOBAR A01' => [ 'iida', 'INFOBAR A01', 'carrier' => 'au' ], // by Sharp + 'INFOBAR A01-2' => [ 'iida', 'INFOBAR A01', 'carrier' => 'au' ], // by Sharp + 'INFOBAR C01' => [ 'iida', 'INFOBAR C01', 'carrier' => 'au' ], // by Sharp + ], + + 'HTX21' => [ 'iida', 'INFOBAR A02', 'carrier' => 'au' ], // by HTC + 'KYV33' => [ 'iida', 'INFOBAR A03', 'carrier' => 'au' ], // by Kyocera + + + 'IMO!!' => [ + 'IMO Discovery II' => [ 'IMO', 'Discovery II' ], + 'IMO Discovery 2' => [ 'IMO', 'Discovery II' ], + 'IMO Q8' => [ 'IMO', 'Q8 Clarity' ], + 'IMO S67' => [ 'IMO', 'Blast S67' ], + 'IMO S68' => [ 'IMO', 'Snow S68' ], + 'IMO S70' => [ 'IMO', 'Miracle 2 S70' ], + 'IMO S78' => [ 'IMO', 'Glory S78' ], + 'IMO S78 NEW STYLE' => [ 'IMO', 'Glory S78' ], + 'IMO S79' => [ 'IMO', 'Explorer S79' ], + 'IMO S79 EXPLORER' => [ 'IMO', 'Explorer S79' ], + 'IMO S79 MIUI' => [ 'IMO', 'Explorer S79' ], + 'IMO S87' => [ 'IMO', 'Raptor S87' ], + 'Imo Raptor S87' => [ 'IMO', 'Raptor S87' ], + 'IMO S88' => [ 'IMO', 'Discovery S88' ], + 'IMO S89' => [ 'IMO', 'Miracle S89' ], + 'IMO S90' => [ 'IMO', 'Buzz S90' ], + 'IMO S98' => [ 'IMO', 'Champion S98' ], + 'IMO S99' => [ 'IMO', 'Ocean S99' ], + 'IMO S900' => [ 'IMO', 'Groovy S900' ], + 'IMO X2' => [ 'IMO', 'Normandy X2' ], + 'IMO X2 NORMANDY' => [ 'IMO', 'Normandy X2' ], + 'IMO TAB' => [ 'IMO', 'Tab', DeviceType::TABLET ], + 'IMO X5' => [ 'IMO', 'Tab X5 Mars', DeviceType::TABLET ], + 'IMO TAB X9' => [ 'IMO', 'Tab X9 Claire', DeviceType::TABLET ], + 'IMO Y-ONE' => [ 'IMO', 'Tab Y-One', DeviceType::TABLET ], + 'IMO Y5' => [ 'IMO', 'Tab Y3', DeviceType::TABLET ], + 'IMO Y5' => [ 'IMO', 'Tab Y5 i-Play', DeviceType::TABLET ], + 'IMO Z-ONE' => [ 'IMO', 'Tab Z-One', DeviceType::TABLET ], + 'IMO Z6' => [ 'IMO', 'Tab Z6 Avengers', DeviceType::TABLET ], + 'IMO Z7' => [ 'IMO', 'Tab Z7 Orion', DeviceType::TABLET ], + 'IMO Z8' => [ 'IMO', 'Tab Z8 Spin', DeviceType::TABLET ], + 'IMO Z9' => [ 'IMO', 'Tab Z9 Ice', DeviceType::TABLET ], + 'IMO Z10' => [ 'IMO', 'Tab Z10 Fortune', DeviceType::TABLET ], + ], + + 'S88 DISCOVERY' => [ 'IMO', 'Discovery S88' ], + + 'Im(Smart|PAD)!!' => [ + 'ImSmart 1.40' => [ 'Impression', 'ImSMART 1.40' ], + 'ImPAD 0114' => [ 'Impression', 'ImPAD 0114', DeviceType::TABLET ], + 'ImPAD 0413' => [ 'Impression', 'ImPAD 0413', DeviceType::TABLET ], + 'ImPAD1001' => [ 'Impression', 'ImPAD 1001', DeviceType::TABLET ], + 'ImPAD1311' => [ 'Impression', 'ImPAD 1311', DeviceType::TABLET ], + 'ImPAD 1412' => [ 'Impression', 'ImPAD 1412', DeviceType::TABLET ], + 'ImPAD 1412 rev2' => [ 'Impression', 'ImPAD 1412', DeviceType::TABLET ], + 'ImPAD 2113' => [ 'Impression', 'ImPAD 2113', DeviceType::TABLET ], + 'ImPAD 2413' => [ 'Impression', 'ImPAD 2413', DeviceType::TABLET ], + 'ImPAD 3113' => [ 'Impression', 'ImPAD 3113', DeviceType::TABLET ], + 'ImPAD 3412' => [ 'Impression', 'ImPAD 3412', DeviceType::TABLET ], + 'ImPAD 4213' => [ 'Impression', 'ImPAD 4213', DeviceType::TABLET ], + 'ImPAD 4313' => [ 'Impression', 'ImPAD 4313', DeviceType::TABLET ], + 'ImPAD 6213M' => [ 'Impression', 'ImPAD 6213M', DeviceType::TABLET ], + 'ImPAD6213M v2' => [ 'Impression', 'ImPAD 6213M', DeviceType::TABLET ], + 'ImPAD 6413' => [ 'Impression', 'ImPAD 6413', DeviceType::TABLET ], + 'ImPAD 8213' => [ 'Impression', 'ImPAD 8213', DeviceType::TABLET ], + 'ImPAD 8901' => [ 'Impression', 'ImPAD 8901', DeviceType::TABLET ], + 'ImPAD 9702' => [ 'Impression', 'ImPAD 9702', DeviceType::TABLET ], + 'ImPAD9704' => [ 'Impression', 'ImPAD 9704', DeviceType::TABLET ], + 'ImPAD 9707' => [ 'Impression', 'ImPAD 9707', DeviceType::TABLET ], + ], + + 'TX85' => [ 'iMuz', 'TX85', DeviceType::TABLET ], + 'i3000' => [ 'iNew', 'i3000' ], + 'i6000' => [ 'iNew', 'i6000' ], + + 'Infinix!!' => [ + 'Infinix BUZZ' => [ 'Infinix', 'Buzz X260' ], + 'Infinix X351' => [ 'Infinix', 'Surf Smart X351' ], + 'Infinix X352' => [ 'Infinix', 'Surf Smart 2 X352' ], + 'Infinix X400' => [ 'Infinix', 'Race X400' ], + 'Infinix X401' => [ 'Infinix', 'Race Lite X401' ], + 'Infinix X402' => [ 'Infinix', 'Diamond X402' ], + 'Infinix X405' => [ 'Infinix', 'Surf Viva X405' ], + 'Infinix X450' => [ 'Infinix', 'Race Bolt X450' ], + 'Infinix X451' => [ 'Infinix', 'Race Bolt Q X451' ], + 'Infinix X452' => [ 'Infinix', 'Surf Goal X452' ], + 'Infinix X454' => [ 'Infinix', 'Race Bolt 2 X454' ], + 'Infinix X455' => [ 'Infinix', 'Race Bolt 3 X455' ], + 'Infinix X500' => [ 'Infinix', 'Race Eagle X500' ], + 'Infinix X501' => [ 'Infinix', 'Race Jet X501' ], + 'Infinix X502' => [ 'Infinix', 'Alpha Marvel X502' ], + 'Infinix X503' => [ 'Infinix', 'Surf Bravo X503' ], + 'Infinix X505' => [ 'Infinix', 'Race Jet X505' ], + 'Infinix X506' => [ 'Infinix', 'Zero X506' ], + 'Infinix X507' => [ 'Infinix', 'Hot X507' ], + 'Infinix X509' => [ 'Infinix', 'Zero 2 X509' ], + 'Infinix X510' => [ 'Infinix', 'Hot 2 X510' ], + 'Infinix X530' => [ 'Infinix', 'Race Max Q X530' ], + 'Infinix-X551' => [ 'Infinix', 'Hot Note X551' ], + 'Infinix-X552' => [ 'Infinix', 'Zero 3 X552' ], + 'Infinix X570' => [ 'Infinix', 'Alpha X570' ], + 'INFINIX-X600' => [ 'Infinix', 'Note 2 X600' ], + 'Infinix X800' => [ 'Infinix', 'Joypad 8 X800', DeviceType::TABLET ], + 'Infinix X801' => [ 'Infinix', 'Joypad 8S X801', DeviceType::TABLET ], + 'Infinix X1000' => [ 'Infinix', 'Joypad 10 X1000', DeviceType::TABLET ], + ], + + 'IN[0-9]{3,3}!!' => [ + 'IN260' => [ 'InFocus', 'IN260' ], + 'IN330' => [ 'InFocus', 'IN330' ], + 'IN335' => [ 'InFocus', 'IN335' ], + 'IN610' => [ 'InFocus', 'IN610' ], + 'IN810' => [ 'InFocus', 'IN810' ], + 'IN815' => [ 'InFocus', 'IN815' ], + ], + + 'M210' => [ 'InFocus', 'M210' ], + 'M370i' => [ 'InFocus', 'M370' ], + + 'Infocus!!' => [ + 'InFocus M2' => [ 'InFocus', 'M2' ], + 'InFocus M2 3G' => [ 'InFocus', 'M2' ], + 'InFocus M2PLUS' => [ 'InFocus', 'M2 Plus' ], + 'InFocus M260' => [ 'InFocus', 'M260' ], + 'InFocus M310' => [ 'InFocus', 'M310' ], + 'InFocus M320!' => [ 'InFocus', 'M320' ], + 'InFocus M330!' => [ 'InFocus', 'M330' ], + 'InFocus M350!' => [ 'InFocus', 'M350' ], + 'InFocus M415' => [ 'InFocus', 'M415' ], + 'InFocus M425' => [ 'InFocus', 'M425' ], + 'InFocus M430' => [ 'InFocus', 'M430' ], + 'InFocus M510!' => [ 'InFocus', 'M510' ], + 'InFocus M511!' => [ 'InFocus', 'M511' ], + 'InFocus M512!' => [ 'InFocus', 'M512' ], + 'InFocus M530' => [ 'InFocus', 'M530' ], + 'InFocus M535' => [ 'InFocus', 'M535' ], + 'InFocus M550!' => [ 'InFocus', 'M550' ], + 'InFocus M560' => [ 'InFocus', 'M560' ], + 'InFocus M680' => [ 'InFocus', 'M680' ], + 'InFocus M808!' => [ 'InFocus', 'M808' ], + 'InFocus M810!' => [ 'InFocus', 'M810' ], + 'InFocus M812!' => [ 'InFocus', 'M812' ], + ], + + 'M009F' => [ 'Infotmic', 'M009F' ], + 'Dk1031' => [ 'Infotmic', 'Flytouch 3', DeviceType::TABLET ], + 'INHON PAPILIO G1' => [ 'Inhon', 'Papilio G1' ], + 'intki E86' => [ 'intki', 'E86' ], + + 'Innos!!' => [ + 'Innos D5C' => [ 'Innos', 'D5C' ], + 'innos D9' => [ 'Innos', 'D9' ], + 'innos D9C' => [ 'Innos', 'D9C' ], + 'innos i5' => [ 'Innos', 'i5' ], + 'innos i6' => [ 'Innos', 'i6' ], + 'INNOS I6 (DNS S4503)' => [ 'Innos', 'i6' ], + 'innos i6C' => [ 'Innos', 'i6C' ], + 'Innos i6cp' => [ 'Innos', 'i6CP' ], + ], + + 'NS-14T002' => [ 'Insignia', 'Flex 8', DeviceType::TABLET ], + + '(AZ|BT)[0-9]{3,3}!!' => [ + 'AZ210A' => [ 'Intel', 'AZ210A' ], + 'AZ210B' => [ 'Intel', 'AZ210B' ], + 'AZ510' => [ 'Intel', 'AZ510' ], + 'BT210' => [ 'Intel', 'BT210' ], + 'BT230' => [ 'Intel', 'BT230' ], + 'BT510' => [ 'Intel', 'BT510' ], + ], + + 'greenridge' => [ 'Intel', 'Green Ridge', DeviceType::TABLET ], + + '(Intex )?Aqua!!' => [ + 'Aqua 3G' => [ 'Intex', 'Aqua 3G' ], + 'Aqua 3G+' => [ 'Intex', 'Aqua 3G+' ], + 'Aqua 3G mini' => [ 'Intex', 'Aqua 3G mini' ], + 'Aqua 3G Pro' => [ 'Intex', 'Aqua 3G Pro' ], + 'Aqua 3G Strong' => [ 'Intex', 'Aqua 3G Strong' ], + 'Aqua 4G+' => [ 'Intex', 'Aqua 4G+' ], + 'Intex Aqua 3X' => [ 'Intex', 'Aqua 3X' ], + 'AQUA 4X' => [ 'Intex', 'Aqua 4X' ], + 'Intex Aqua 3.2' => [ 'Intex', 'Aqua 3.2' ], + 'AQUA 4.0' => [ 'Intex', 'Aqua 4.0' ], + 'Intex Aqua 4.5E' => [ 'Intex', 'Aqua 4.5E' ], + 'AQUA 5.0' => [ 'Intex', 'Aqua 5.0' ], + 'Aqua.Active' => [ 'Intex', 'Aqua Active' ], + 'Aqua Curve' => [ 'Intex', 'Aqua Curve' ], + 'Aqua Curve mini' => [ 'Intex', 'Aqua Curve Mini' ], + 'Intex Aqua Desire HD' => [ 'Intex', 'Aqua Desire HD' ], + 'Aqua flash' => [ 'Intex', 'Aqua Flash' ], + 'Aqua Glory' => [ 'Intex', 'Aqua Glory' ], + 'Aqua Glow' => [ 'Intex', 'Aqua Glow' ], + 'Aqua HD' => [ 'Intex', 'Aqua HD' ], + 'Intex Aqua Marvel' => [ 'Intex', 'Aqua Marvel' ], + 'Aqua LifeIII' => [ 'Intex', 'Aqua Life III' ], + 'AQUA OCTA' => [ 'Intex', 'Aqua Octa' ], + 'Aqua Power' => [ 'Intex', 'Aqua Power' ], + 'Aqua Power+' => [ 'Intex', 'Aqua Power+' ], + 'Aqua Power HD' => [ 'Intex', 'Aqua Power HD' ], + 'Aqua Power II' => [ 'Intex', 'Aqua Power II' ], + 'Aqua QWERTY' => [ 'Intex', 'Aqua Qwerty' ], + 'Aqua S' => [ 'Intex', 'Aqua S' ], + 'Aqua Sx' => [ 'Intex', 'Aqua Sx' ], + 'Aqua Slice II' => [ 'Intex', 'Aqua Slice II' ], + 'Aqua Speed' => [ 'Intex', 'Aqua Speed' ], + 'Aqua Speed HD' => [ 'Intex', 'Aqua Speed HD' ], + 'Aqua Star' => [ 'Intex', 'Aqua Star' ], + 'Aqua Star L' => [ 'Intex', 'Aqua Star L' ], + 'Aqua Star II' => [ 'Intex', 'Aqua Star II' ], + 'Aqua Star II 16GB' => [ 'Intex', 'Aqua Star II' ], + 'Aqua Star II HD' => [ 'Intex', 'Aqua Star II HD' ], + 'Aqua Star 5.0' => [ 'Intex', 'Aqua Star 5.0' ], + 'Aqua Star HD' => [ 'Intex', 'Aqua Star HD' ], + 'Aqua Star Power' => [ 'Intex', 'Aqua Star Power' ], + 'Aqua Style' => [ 'Intex', 'Aqua Style' ], + 'Aqua Style 4.0' => [ 'Intex', 'Aqua Style 4.0' ], + 'Aqua Style Mini' => [ 'Intex', 'Aqua Style Mini' ], + 'Aqua Style Pro' => [ 'Intex', 'Aqua Style Pro' ], + 'Intex Aqua Superb' => [ 'Intex', 'Aqua Superb' ], + 'Intex Aqua Swadesh' => [ 'Intex', 'Aqua Swadesh' ], + 'Aqua Trend' => [ 'Intex', 'Aqua Trend' ], + 'Aqua Trendy' => [ 'Intex', 'Aqua Trendy' ], + 'Aqua Wonder' => [ 'Intex', 'Aqua Wonder' ], + 'Aqua Wonder Quad Core' => [ 'Intex', 'Aqua Wonder' ], + 'Aqua Xtreme' => [ 'Intex', 'Aqua Xtreme' ], + 'Aqua Young' => [ 'Intex', 'Aqua Young' ], + 'Aqua i2' => [ 'Intex', 'Aqua i2' ], + 'Intex Aqua I3' => [ 'Intex', 'Aqua i3' ], + 'Aqua i-4+' => [ 'Intex', 'Aqua i4' ], + 'Aqua I-5' => [ 'Intex', 'Aqua i5' ], + 'Aqua I5' => [ 'Intex', 'Aqua i5' ], + 'Aqua i5 HD' => [ 'Intex', 'Aqua i5 HD' ], + 'Aqua i5 mini' => [ 'Intex', 'Aqua i5 mini' ], + 'Aqua I5 Octa' => [ 'Intex', 'Aqua i5 Octa' ], + 'Aqua i6' => [ 'Intex', 'Aqua i6' ], + 'Aqua i7' => [ 'Intex', 'Aqua i7' ], + 'Aqua I14' => [ 'Intex', 'Aqua i14' ], + 'Aqua i15' => [ 'Intex', 'Aqua i15' ], + 'Aqua N2' => [ 'Intex', 'Aqua N2' ], + 'Aqua N7' => [ 'Intex', 'Aqua N7' ], + 'Aqua N8' => [ 'Intex', 'Aqua N8' ], + 'Aqua N15' => [ 'Intex', 'Aqua N15' ], + 'Aqua Q1+' => [ 'Intex', 'Aqua Q1' ], + 'Aqua Q3' => [ 'Intex', 'Aqua Q3' ], + 'Aqua Q5' => [ 'Intex', 'Aqua Q5' ], + 'Aqua Q7' => [ 'Intex', 'Aqua Q7' ], + 'Aqua Q7 Pro' => [ 'Intex', 'Aqua Q7 Pro' ], + 'Aqua R3' => [ 'Intex', 'Aqua R3' ], + 'Aqua R3+' => [ 'Intex', 'Aqua R3' ], + 'Aqua T2' => [ 'Intex', 'Aqua T2' ], + 'Aqua T3' => [ 'Intex', 'Aqua T3' ], + 'Aqua T4' => [ 'Intex', 'Aqua T4' ], + 'Aqua V+' => [ 'Intex', 'Aqua V+' ], + 'Aqua V3G' => [ 'Intex', 'Aqua V3G' ], + 'Aqua V5' => [ 'Intex', 'Aqua V5' ], + 'Aqua Y2' => [ 'Intex', 'Aqua Y2' ], + 'Aqua Y2 1GB' => [ 'Intex', 'Aqua Y2' ], + 'Aqua Y2+' => [ 'Intex', 'Aqua Y2+' ], + 'Aqua Y2 Pro' => [ 'Intex', 'Aqua Y2 Pro' ], + 'Aqua Y2 Power' => [ 'Intex', 'Aqua Y2 Power' ], + 'Aqua Y3' => [ 'Intex', 'Aqua Y3' ], + 'Aqua Y4' => [ 'Intex', 'Aqua Y3' ], + ], + + '(Intex )?Cloud!!' => [ + 'Intex Cloud X+' => [ 'Intex', 'Cloud X' ], + 'INTEX CLOUD X1' => [ 'Intex', 'Cloud X1' ], + 'Cloud X2' => [ 'Intex', 'Cloud X2' ], + 'Cloud X3' => [ 'Intex', 'Cloud X3' ], + 'Intex Cloud X4' => [ 'Intex', 'Cloud X4' ], + 'Cloud X5' => [ 'Intex', 'Cloud X5' ], + 'INTEX Cloud X11' => [ 'Intex', 'Cloud X11' ], + 'Cloud X12' => [ 'Intex', 'Cloud X12' ], + 'Intex Cloud Y1' => [ 'Intex', 'Cloud Y1' ], + 'Cloud Y2' => [ 'Intex', 'Cloud Y2' ], + 'Cloud Y3' => [ 'Intex', 'Cloud Y3' ], + 'INTEX Cloud Y4' => [ 'Intex', 'Cloud Y4' ], + 'INTEX Cloud Y4+' => [ 'Intex', 'Cloud Y4+' ], + 'Cloud Y5' => [ 'Intex', 'Cloud Y5' ], + 'Intex Cloud Y7' => [ 'Intex', 'Cloud Y7' ], + 'Intex Cloud Y11' => [ 'Intex', 'Cloud Y11' ], + 'Intex Cloud y12' => [ 'Intex', 'Cloud Y12' ], + 'Cloud Y13 Plus' => [ 'Intex', 'Cloud Y13 Plus' ], + 'Cloud Y17+' => [ 'Intex', 'Cloud Y17 Plus' ], + 'Cloud Z5' => [ 'Intex', 'Cloud Z5' ], + ], + + 'INTEX IRIS-II' => [ 'Intex', 'Iris 2', DeviceType::TABLET ], + 'INQ Cloud Touch' => [ 'INQ', 'Cloud Touch' ], + 'INQ Mayfair (EU)' => [ 'INQ', 'Mayfair' ], + 'A19S' => [ 'ISA', 'A19S' ], + 'NS-13T001' => [ 'Insignia', 'Flex Tablet', DeviceType::TABLET ], + 'IPRO i5S' => [ 'IPRO', 'i5S' ], + 'TX18' => [ 'Irbis', 'TX18', DeviceType::TABLET ], + 'ILT-MX100' => [ 'iRiver', 'Tab', DeviceType::TABLET ], + + '(iNote|itel)!!' => [ + 'iNote beyond' => [ 'iTel', 'iNote beyond' ], + 'iNote mini' => [ 'iTel', 'iNote mini' ], + 'itel IT1351' => [ 'iTel', 'IT1351' ], + 'itel IT1351E' => [ 'iTel', 'IT1351E' ], + 'itel it1400' => [ 'iTel', 'IT1400' ], + 'itel it1500' => [ 'iTel', 'IT1500' ], + ], + + 'IVIO!!' => [ + 'IVIO-DG20' => [ 'Ivio', 'DG20' ], + 'IVIO DE38' => [ 'Ivio', 'DE38' ], + ], + + 'iwoo i900' => [ 'iwoo', 'i900' ], + + '(JIAYU|JY-)!!' => [ + 'JIAYU F1' => [ 'Jiayu', 'F1' ], + 'JY-F1' => [ 'Jiayu', 'F1' ], + 'JY-F2' => [ 'Jiayu', 'F2' ], + 'JY-G1' => [ 'Jiayu', 'G1' ], + 'JY-G2' => [ 'Jiayu', 'G2' ], + 'JY-G2 DualCore(Standard)' => [ 'Jiayu', 'G2' ], + 'JY-G2 Plus' => [ 'Jiayu', 'G2 Plus' ], + 'JY-G2 64' => [ 'Jiayu', 'G2' ], + 'JY G2F' => [ 'Jiayu', 'G2F' ], + 'JY-G2F' => [ 'Jiayu', 'G2F' ], + 'JY-G2H' => [ 'Jiayu', 'G2H' ], + 'JY-G2L' => [ 'Jiayu', 'G2L' ], + 'JY-G2LS' => [ 'Jiayu', 'G2LS' ], + 'Jiayu G2' => [ 'Jiayu', 'G2' ], + 'Jiayu G2H' => [ 'Jiayu', 'G2H' ], + 'Jiayu G2L' => [ 'Jiayu', 'G2L' ], + 'Jiayu G2s' => [ 'Jiayu', 'G2 Plus' ], + 'JY-G3' => [ 'Jiayu', 'G3' ], + 'Jiayu G3' => [ 'Jiayu', 'G3' ], + 'JIAYU-G3' => [ 'Jiayu', 'G3' ], + 'JY-G3C' => [ 'Jiayu', 'G3C' ], + 'JY-G3N!' => [ 'Jiayu', 'G3N' ], + 'JYG3N' => [ 'Jiayu', 'G3N' ], + 'JY-G3S' => [ 'Jiayu', 'G3S' ], + 'JIAYU G3S' => [ 'Jiayu', 'G3S' ], + 'JIAYU.G3S' => [ 'Jiayu', 'G3S' ], + 'JY-G4' => [ 'Jiayu', 'G4' ], + 'JY-G4\G5' => [ 'Jiayu', 'G4' ], + 'JY-G4 G5' => [ 'Jiayu', 'G4' ], + 'JY-G4C' => [ 'Jiayu', 'G4C' ], + 'JY G4C' => [ 'Jiayu', 'G4C' ], + 'Jiayu G4S' => [ 'Jiayu', 'G4S' ], + 'JY-G4S' => [ 'Jiayu', 'G4S' ], + 'JIAYU-G4S' => [ 'Jiayu', 'G4S' ], + 'JY-G4T' => [ 'Jiayu', 'G4T' ], + 'JY-G5' => [ 'Jiayu', 'G5' ], + 'Jiayu G5S' => [ 'Jiayu', 'G5S' ], + 'JY-G5S' => [ 'Jiayu', 'G5S' ], + 'JY-G5S+' => [ 'Jiayu', 'G5S+' ], + 'JY-G6' => [ 'Jiayu', 'G6' ], + 'JY-S1' => [ 'Jiayu', 'S1' ], + 'JY-S2' => [ 'Jiayu', 'S2' ], + 'JY-S3' => [ 'Jiayu', 'S3' ], + 'JY-S3S' => [ 'Jiayu', 'S3S' ], + ], + + 'G2S' => [ 'Jiayu', 'G2 Plus' ], + 'JT-Smart PC01' => [ 'Joy-IT', 'JT-Smart PC-01' ], + 'JJ5S+' => [ 'Jugate', 'JJ5S+' ], + + 'JC-A[0-9]{3,3}!!' => [ + 'JC-A107' => [ 'JuiCell', 'JC-A107' ], + 'JC-A109' => [ 'JuiCell', 'JC-A109' ], + ], + + 'JXD!!' => [ + 'JXD S601WIFI' => [ 'JXD', 'S601 WIFI', 'media' ], + 'JXD V5200' => [ 'JXD', 'V5200', 'media' ], + 'JXD P200' => [ 'JXD', 'P200', DeviceType::TABLET ], + 'JXD P300' => [ 'JXD', 'P300', DeviceType::TABLET ], + 'JXD-P1000!' => [ 'JXD', 'P1000', DeviceType::TABLET ], + 'JXD-S80' => [ 'JXD', 'S80', DeviceType::TABLET ], + 'JXD-S6600!' => [ 'JXD', 'S6600', DeviceType::TABLET ], + 'JXD S7600' => [ 'JXD', 'S7600', DeviceType::TABLET ], + 'JXD-S8000' => [ 'JXD', 'S8000', DeviceType::TABLET ], + 'JXD-S9000' => [ 'JXD', 'S9000', DeviceType::TABLET ], + 'JXD-S9100' => [ 'JXD', 'S9100', DeviceType::TABLET ], + ], + + 'A2' => [ 'KakaTech', 'A2' ], + + 'Karbonn!!' => [ + 'Karbonn A1' => [ 'Karbonn', 'A1' ], + 'Karbonn A1 Plus Champ' => [ 'Karbonn', 'A1' ], + 'Karbonn A1 1 Plus Champ' => [ 'Karbonn', 'A1' ], + 'Karbonn A1*' => [ 'Karbonn', 'A1' ], + 'Karbonn A1+ Duple' => [ 'Karbonn', 'A1+' ], + 'Karbonn A1+ Super' => [ 'Karbonn', 'A1+' ], + 'Karbonn A2' => [ 'Karbonn', 'A2' ], + 'Karbonn A2+' => [ 'Karbonn', 'A2+' ], + 'Karbonn A4' => [ 'Karbonn', 'A4' ], + 'Karbonn A5' => [ 'Karbonn', 'A5' ], + 'Karbonn A5i' => [ 'Karbonn', 'A5i' ], + 'Karbonn A5s' => [ 'Karbonn', 'A5s' ], + 'Karbonn A6' => [ 'Karbonn', 'A6' ], + 'Karbonn A6+' => [ 'Karbonn', 'A6+' ], + 'Karbonn A7*' => [ 'Karbonn', 'A7' ], + 'Karbonn A8' => [ 'Karbonn', 'A8' ], + 'Karbonn A9' => [ 'Karbonn', 'A9' ], + 'Karbonn A9*' => [ 'Karbonn', 'A9' ], + 'Karbonn A9s' => [ 'Karbonn', 'A9s' ], + 'Karbonn A9+' => [ 'Karbonn', 'A9+' ], + 'Karbonn A10' => [ 'Karbonn', 'A10' ], + 'Karbonn A11*' => [ 'Karbonn', 'A11' ], + 'Karbonn A12' => [ 'Karbonn', 'A12' ], + 'Karbonn A12*' => [ 'Karbonn', 'A12' ], + 'Karbonn A12+' => [ 'Karbonn', 'A12+' ], + 'Karbonn A14' => [ 'Karbonn', 'A14' ], + 'Karbonn A18' => [ 'Karbonn', 'A18' ], + 'Karbonn A18+' => [ 'Karbonn', 'A18+' ], + 'Karbonn A19' => [ 'Karbonn', 'A19' ], + 'Karbonn A20' => [ 'Karbonn', 'A20' ], + 'Karbonn A21!' => [ 'Karbonn', 'A21' ], + 'Karbonn A25' => [ 'Karbonn', 'A25' ], + 'Karbonn A25+' => [ 'Karbonn', 'A25+' ], + 'Karbonn A26' => [ 'Karbonn', 'A26' ], + 'KarbonnA26' => [ 'Karbonn', 'A26' ], + 'Karbonn A27+' => [ 'Karbonn', 'A27' ], + 'Karbonn A30' => [ 'Karbonn', 'A30' ], + 'Karbonn A35' => [ 'Karbonn', 'A35' ], + 'Karbonn A40' => [ 'Karbonn', 'A40' ], + 'Karbonn A50' => [ 'Karbonn', 'A50' ], + 'Karbonn A51 Lite' => [ 'Karbonn', 'A51 Lite' ], + 'Karbonn A52+' => [ 'Karbonn', 'A52+' ], + 'Karbonn A66' => [ 'Karbonn', 'A66' ], + 'Karbonn A91' => [ 'Karbonn', 'A91' ], + 'Karbonn A92Plus' => [ 'Karbonn', 'A92 Plus' ], + 'Karbonn A93' => [ 'Karbonn', 'A93' ], + 'Karbonn A108' => [ 'Karbonn', 'A108' ], + 'Karbonn A119' => [ 'Karbonn', 'A119' ], + 'Karbonn A240' => [ 'Karbonn', 'A240' ], + 'Karbonn E8222' => [ 'Karbonn', 'E8222' ], + 'Karbonn ST52' => [ 'Karbonn', 'ST52', DeviceType::TABLET ], + 'Karbonn ST72' => [ 'Karbonn', 'ST72', DeviceType::TABLET ], + ], + + 'TA-FONE!!' => [ + 'TA-FONE A34' => [ 'Karbonn', 'Ta-Fone A34' ], + 'TA-FONE A34 HD' => [ 'Karbonn', 'Ta-Fone A34 HD' ], + 'TA-FONE A37' => [ 'Karbonn', 'Ta-Fone A37' ], + 'TA-FONE A37 HD' => [ 'Karbonn', 'Ta-Fone A37 HD' ], + 'TA-FONE A39 HD' => [ 'Karbonn', 'Ta-Fone A39 HD' ], + ], + + '(Karbonn|Titanium)!!' => [ + 'Karbonn Titanium Hexa' => [ 'Karbonn', 'Titanium Hexa' ], + 'Titanium Octane' => [ 'Karbonn', 'Titanium Octane' ], + 'Titanium Octane Plus' => [ 'Karbonn', 'Titanium Octane Plus' ], + 'Titanium S1' => [ 'Karbonn', 'Titanium S1' ], + 'Titanium S1 Plus' => [ 'Karbonn', 'Titanium S1 Plus' ], + 'Karbonn Titanium S1 Plus' => [ 'Karbonn', 'Titanium S1 Plus' ], + 'Karbonn S2' => [ 'Karbonn', 'Titanium S2' ], + 'Karbonn Titanium S3' => [ 'Karbonn', 'Titanium S3' ], + 'Titanium S2 Plus' => [ 'Karbonn', 'Titanium S2 Plus' ], + 'Karbonn Titanium S4' => [ 'Karbonn', 'Titanium S4' ], + 'Karbonn Titanium S4 Plus' => [ 'Karbonn', 'Titanium S4 Plus' ], + 'Titanium S5' => [ 'Karbonn', 'Titanium S5' ], + 'karbonn Titanium S5' => [ 'Karbonn', 'Titanium S5' ], + 'Karbonn S5i' => [ 'Karbonn', 'Titanium S5i' ], + 'Karbonn Titanium S5 Plus' => [ 'Karbonn', 'Titanium S5 Plus' ], + 'Karbonn Titanium S5+' => [ 'Karbonn', 'Titanium S5 Plus' ], + 'Titanium S5+!' => [ 'Karbonn', 'Titanium S5 Plus' ], + 'Titanium S5 Ultra' => [ 'Karbonn', 'Titanium S5 Ultra' ], + 'Karbonn Titanium S6' => [ 'Karbonn', 'Titanium S6' ], + 'Karbonn Titanium S9' => [ 'Karbonn', 'Titanium S9' ], + 'Titanium S10' => [ 'Karbonn', 'Titanium S10' ], + 'Titanium S15' => [ 'Karbonn', 'Titanium S15' ], + 'Titanium S19' => [ 'Karbonn', 'Titanium S19' ], + 'Karbonn TITANIUM S20' => [ 'Karbonn', 'Titanium S20' ], + 'Titanium S22' => [ 'Karbonn', 'Titanium S22' ], + 'Karbonn Titanium S25' => [ 'Karbonn', 'Titanium S25' ], + 'Titanium S35' => [ 'Karbonn', 'Titanium S35' ], + 'Titanium S99' => [ 'Karbonn', 'Titanium S99' ], + 'Karbonn Titanium S99' => [ 'Karbonn', 'Titanium S99' ], + 'Titanium S200 HD' => [ 'Karbonn', 'Titanium S200 HD' ], + 'Titanium S201' => [ 'Karbonn', 'Titanium Dazzle S201' ], + 'Titanium S202' => [ 'Karbonn', 'Titanium Dazzle2 S202' ], + 'Titanium S203' => [ 'Karbonn', 'Titanium High 2 S203' ], + 'Titanium S204' => [ 'Karbonn', 'Titanium Dazzle3 S204' ], + 'TITANIUM S205 2GB' => [ 'Karbonn', 'Titanium S205' ], + 'Karbonn Titanium X' => [ 'Karbonn', 'Titanium X' ], + ], + + 'A7*' => [ 'Karbonn', 'A7' ], + 'A7+' => [ 'Karbonn', 'A7+' ], + 'A11' => [ 'Karbonn', 'A11' ], + 'A21' => [ 'Karbonn', 'A21' ], + 'A55i' => [ 'Karbonn', 'Smart A55i' ], + 'A111' => [ 'Karbonn', 'A111' ], + 'Sparkle V' => [ 'Karbonn', 'Sparkle V' ], + 'ST10' => [ 'Karbonn', 'Smart Tab 10 Cosmic', DeviceType::TABLET ], + 'SmartTab1' => [ 'Karbonn', 'Smart Tab 1', DeviceType::TABLET ], + 'KB901' => [ 'Kaser', 'KB901', DeviceType::TABLET ], + + '(KAZAM|Thunder|Tornado|Trooper)!!' => [ + 'KAZAM TV 45' => [ 'KAZAM', 'TV 45' ], + 'KAZAM Thunder 345' => [ 'KAZAM', 'Thunder 345' ], + 'KAZAM Thunder 345 LTE' => [ 'KAZAM', 'Thunder 345' ], + 'KAZAM Thunder 345L' => [ 'KAZAM', 'Thunder 345L' ], + 'Thunder 347' => [ 'KAZAM', 'Thunder 347' ], + 'KAZAM Thunder 350L' => [ 'KAZAM', 'Thunder 350L' ], + 'KAZAM Thunder 550' => [ 'KAZAM', 'Thunder 550' ], + 'KAZAM Thunder 550L' => [ 'KAZAM', 'Thunder 550L' ], + 'KAZAM Thunder Q45' => [ 'KAZAM', 'Thunder Q4.5' ], + 'KAZAM THUNDER2 45L' => [ 'KAZAM', 'Thunder 2 4.5L' ], + 'KAZAM Thunder2 50' => [ 'KAZAM', 'Thunder 2 5.0' ], + 'Thunder3 45 LTE' => [ 'KAZAM', 'Thunder 3 4.5' ], + 'Tornado 348' => [ 'KAZAM', 'Tornado 348' ], + 'KAZAM Tornado 350' => [ 'KAZAM', 'Tornado 350' ], + 'KAZAM Tornado 455L' => [ 'KAZAM', 'Tornado 455L' ], + 'KAZAM Tornado2 50' => [ 'KAZAM', 'Tornado 2 5.0' ], + 'KAZAM Trooper 440L' => [ 'KAZAM', 'Trooper 440L' ], + 'KAZAM Trooper 445L' => [ 'KAZAM', 'Trooper 445L' ], + 'KAZAM Trooper 450' => [ 'KAZAM', 'Trooper 450' ], + 'KAZAM Trooper 450L' => [ 'KAZAM', 'Trooper 450L' ], + 'KAZAM Trooper 451' => [ 'KAZAM', 'Trooper 451' ], + 'KAZAM Trooper 455' => [ 'KAZAM', 'Trooper 455' ], + 'KAZAM Trooper 540' => [ 'KAZAM', 'Trooper 540' ], + 'KAZAM Trooper 550' => [ 'KAZAM', 'Trooper 550' ], + 'KAZAM Trooper 550L' => [ 'KAZAM', 'Trooper 550L' ], + 'KAZAM Trooper 551' => [ 'KAZAM', 'Trooper 551' ], + 'KAZAM Trooper 555' => [ 'KAZAM', 'Trooper 555' ], + 'Trooper X35' => [ 'KAZAM', 'Trooper X3.5' ], + 'Trooper X40' => [ 'KAZAM', 'Trooper X4.0' ], + 'KAZAM Trooper X45' => [ 'KAZAM', 'Trooper X4.5' ], + 'KAZAM Trooper X50' => [ 'KAZAM', 'Trooper X5.0' ], + 'Trooper X55' => [ 'KAZAM', 'Trooper X5.5' ], + 'KAZAM Trooper2 40' => [ 'KAZAM', 'Trooper 2 4.0' ], + 'Trooper2 45' => [ 'KAZAM', 'Trooper 2 4.5' ], + 'KAZAM Trooper2 50' => [ 'KAZAM', 'Trooper 2 5.0' ], + 'Kazam Trooper2 60' => [ 'KAZAM', 'Trooper 2 6.0' ], + ], + + 'MT791' => [ 'Keen High', 'MT791' ], + + 'KENEKSI' => [ + 'KENEKSI FIRE' => [ 'KENEKSI', 'Fire' ], + 'KENEKSI-Fire' => [ 'KENEKSI', 'Fire' ], + 'KENEKSI-Norma' => [ 'KENEKSI', 'Norma' ], + 'KENEKSI-SIGMA' => [ 'KENEKSI', 'Sigma' ], + 'KENEKSI-ZETA' => [ 'KENEKSI', 'Zeta' ], + ], + + 'Pro 10 dual core' => [ 'Kiano', 'Pro 10 Dual', DeviceType::TABLET ], + 'KIOTO 793' => [ 'KIOTO', '793' ], + 'D91' => [ 'KK', 'D91', DeviceType::TABLET ], + 'K080' => [ 'Kobo', 'K080', DeviceType::EREADER ], + 'Vox' => [ 'Kobo', 'Vox', DeviceType::EREADER ], + 'M1050S' => [ 'KOCASO', 'M1050S', DeviceType::TABLET ], + 'SX9701W' => [ 'KOCASO', 'SX9701W', DeviceType::TABLET ], + + '(KATBL|Agora)!!' => [ + 'KATBL07AND' => [ 'Kogan', 'Agora' ], + 'KATBL10A16DA' => [ 'Kogan', 'Agora' ], + 'KATBL10A16E' => [ 'Kogan', 'Agora' ], + 'KATBL10AND' => [ 'Kogan', 'Agora' ], + 'Agora 4G' => [ 'Kogan', 'Agora 4G' ], + 'Agora HD+' => [ 'Kogan', 'Agora HD+' ], + 'Agora Quad Core' => [ 'Kogan', 'Agora Quad Core' ], + ], + + 'KOMU!!' => [ + 'Komu Color' => [ 'Komu', 'Color' ], + 'KOMU ENERGY' => [ 'Komu', 'Energy' ], + 'KOMU-MINI' => [ 'Komu', 'Mini' ], + ], + + 'V1' => [ 'Konka', 'KOMI V1' ], + + 'KONKA!!' => [ + 'KONKA V615' => [ 'Konka', 'V615' ], + 'KONKA-V915' => [ 'Konka', 'V915' ], + 'KONKA V923' => [ 'Konka', 'V923' ], + 'KONKA V926' => [ 'Konka', 'V926' ], + 'KONKA V927' => [ 'Konka', 'V927' ], + 'KONKA V931' => [ 'Konka', 'V931' ], + 'KONKA V980' => [ 'Konka', 'V980' ], + 'KONKA V983' => [ 'Konka', 'V983' ], + 'konka W970' => [ 'Konka', 'W970' ], + 'konka W976' => [ 'Konka', 'W976' ], + ], + + 'K3' => [ 'Konka', 'K3' ], + 'W990' => [ 'Konka', 'W990' ], + 'A106' => [ 'koobee', 'A160' ], + 'koobee-T550' => [ 'koobee', 'T550' ], + + 'Koobe!!' => [ + 'Koobe S7 Easy tablet' => [ 'Koobe', 'S7 Easy tablet', DeviceType::TABLET ], + 'Koobe X8 Slim Quadrum tablet' => [ 'Koobe', 'X8 Slim Quadrum tablet', DeviceType::TABLET ], + ], + + 'KORIDY H15' => [ 'Koridy', 'H15' ], + 'KORIDY H16' => [ 'Koridy', 'H16' ], + + 'KPT!!' => [ + 'KPT A5' => [ 'KPT', 'A5' ], + 'KPT A6' => [ 'KPT', 'A6' ], + 'KPT A9' => [ 'KPT', 'A9' ], + 'KPT A9PLUS' => [ 'KPT', 'A9+' ], + 'KPT A11PLUS' => [ 'KPT', 'A11+' ], + 'KPT A58T' => [ 'KPT', 'A58T' ], + 'KPT A81PLUS' => [ 'KPT', 'A81+' ], + 'KPT A88' => [ 'KPT', 'A88' ], + ], + + '(EV|KM)-[ES][0-9]{3,3}!!' => [ + 'EV-S100' => [ 'Kttech', 'Take EV-S100' ], + 'KM-E100' => [ 'Kttech', 'Take LTE KM-E100' ], + 'KM-S120' => [ 'Kttech', 'Take 2 KM-S120' ], + 'KM-S200' => [ 'Kttech', 'Take Janus KM-S200' ], + 'KM-S220' => [ 'Kttech', 'Take Tachy KM-S220' ], + 'KM-S220H' => [ 'Kttech', 'Take Tachy KM-S220' ], + 'KM-S300' => [ 'Kttech', 'Take HD KM-S300' ], + 'KM-S330' => [ 'Kttech', 'Take Fit KM-S330' ], + ], + + 'Kurio!!' => [ + 'KurioPhone' => [ 'Kurio', 'Phone' ], + 'Kurio4S' => [ 'Kurio', '4S' ], + 'Kurio7' => [ 'Kurio', '7', DeviceType::TABLET ], + 'Kurio7S' => [ 'Kurio', '7S', DeviceType::TABLET ], + 'Kurio-LTE' => [ 'Kurio', '7X', DeviceType::TABLET ], + 'Kurio10S' => [ 'Kurio', '10S', DeviceType::TABLET ], + 'Kurio-Lite' => [ 'Kurio', 'Lite', DeviceType::TABLET ], + ], + + 'Kyobo mirasol eReader' => [ 'Kyobo', 'eReader', DeviceType::EREADER ], + 'ISW11K' => [ 'Kyocera', 'DIGNO ISW11K', 'carrier' => 'au' ], + + 'KYL[0-9]{2,2}!!' => [ + 'KYL21' => [ 'Kyocera', 'DIGNO S KYL21', 'carrier' => 'au' ], + 'KYL22' => [ 'Kyocera', 'DIGNO M KYL22', 'carrier' => 'au' ], + ], + + 'KC-01' => [ 'Kyocera', 'KC-01' ], + 'KC-S301AE' => [ 'Kyocera', 'S301' ], + 'KC-S701' => [ 'Kyocera', 'TORQUE' ], + 'KCP01K' => [ 'Kyocera', 'LUCE' ], + 'SKT01' => [ 'Kyocera', 'TORQUE SKT01' ], + + 'WX04K' => [ 'Kyocera', 'DIGNO Dual WX04K', 'carrier' => 'Willcom' ], + 'WX06K' => [ 'Kyocera', 'HONEY BEE WX06K', 'carrier' => 'Willcom' ], + 'WX10K' => [ 'Kyocera', 'DIGNO Dual 2 WX10K', 'carrier' => 'Willcom' ], + 'JC-KSP8000' => [ 'Kyocera', 'Echo' ], + 'KSP8000' => [ 'Kyocera', 'Echo' ], + 'Event' => [ 'Kyocera', 'Event' ], + 'Rise' => [ 'Kyocera', 'Rise' ], + 'Torque' => [ 'Kyocera', 'Torque' ], + 'Zio' => [ 'Kyocera', 'Zio' ], + 'E6782' => [ 'Kyocera', 'Brigadier' ], + 'Hydro' => [ 'Kyocera', 'Hydro' ], + 'Hydro PLUS' => [ 'Kyocera', 'Hydro PLUS' ], + + '(USCC-|KYOCERA-)?E[0-9]{4,4}!!' => [ + 'KYOCERA-E6560' => [ 'Kyocera', 'DuraForce' ], + 'E6560C' => [ 'Kyocera', 'DuraForce' ], + 'E6560L' => [ 'Kyocera', 'DuraForce' ], + 'E6560T' => [ 'Kyocera', 'DuraForce' ], + 'E6715' => [ 'Kyocera', 'Torque XT' ], + 'KYOCERA-E6715' => [ 'Kyocera', 'Torque XT' ], + 'USCC-E6762' => [ 'Kyocera', 'DuraForce' ], + 'KYOCERA-E6762' => [ 'Kyocera', 'DuraForce' ], + 'E6782L' => [ 'Kyocera', 'DuraScout' ], + 'KYOCERA-E6790' => [ 'Kyocera', 'DuraForce XD' ], + ], + + '(USCC-|KYOCERA-)?C[0-9]{4,4}!!' => [ + 'C51(20|21)!' => [ 'Kyocera', 'Milano' ], + 'C5155' => [ 'Kyocera', 'Rise' ], + 'C5170' => [ 'Kyocera', 'Hydro' ], + 'C5215' => [ 'Kyocera', 'Hydro EDGE' ], + 'C5216' => [ 'Kyocera', 'Hydro EDGE' ], + 'C6522' => [ 'Kyocera', 'Hydro XTRM' ], + 'C6522N' => [ 'Kyocera', 'Hydro XTRM' ], + 'USCC-C6721' => [ 'Kyocera', 'Hydro XTRM' ], + 'C6530' => [ 'Kyocera', 'Hydro LIFE' ], + 'C6530N' => [ 'Kyocera', 'Hydro LIFE' ], + 'C6725' => [ 'Kyocera', 'Hydro VIBE' ], + 'C6730' => [ 'Kyocera', 'Hydro ICON' ], + 'C6740' => [ 'Kyocera', 'Hydro WAVE' ], + 'C6740N' => [ 'Kyocera', 'Hydro WAVE' ], + 'C6742' => [ 'Kyocera', 'Hydro VIEW' ], + 'KYOCERA-C6742' => [ 'Kyocera', 'Hydro VIEW' ], + 'KYOCERA-C6745' => [ 'Kyocera', 'Hydro AIR' ], + 'C6750' => [ 'Kyocera', 'Hydro Elite' ], + ], + + 'M9300' => [ 'Kyocera', 'Echo' ], + + 'KY[FLTYV][0-9]{2,2}!!' => [ + 'KYF31' => [ 'Kyocera', 'GRATINA KYF31', 'carrier' => 'au' ], + 'KYL23' => [ 'Kyocera', 'miraie KYL23', 'carrier' => 'au' ], + 'KYY21' => [ 'Kyocera', 'URBANO L01', 'carrier' => 'au' ], + 'KYY22' => [ 'Kyocera', 'URBANO L02', 'carrier' => 'au' ], + 'KYY23' => [ 'Kyocera', 'URBANO L03', 'carrier' => 'au' ], + 'KYY24' => [ 'Kyocera', 'TORQUE G01', 'carrier' => 'au' ], + 'KYV31' => [ 'Kyocera', 'URBANO V01', 'carrier' => 'au' ], + 'KYV32' => [ 'Kyocera', 'BASIO KYV32', 'carrier' => 'au' ], + 'KYV34' => [ 'Kyocera', 'URBANO V02', 'carrier' => 'au' ], + 'KYV35' => [ 'Kyocera', 'TORQUE G02', 'carrier' => 'au' ], + 'KYV36' => [ 'Kyocera', 'DIGNO rafre', 'carrier' => 'au' ], + 'KYV37' => [ 'Kyocera', 'Qua phone', 'carrier' => 'au' ], + 'KYT31' => [ 'Kyocera', 'Qua tab', DeviceType::TABLET, 'carrier' => 'au' ], + ], + + 'URBANO PROGRESSO' => [ 'Kyocera', 'URBANO PROGRESSO', 'carrier' => 'au' ], + + '[0-9]0[0-9]KC?!!' => [ + '101K' => [ 'Kyocera', 'HONEY BEE 101K', 'carrier' => 'Softbank' ], + '201K' => [ 'Kyocera', 'HONEY BEE 201K', 'carrier' => 'Softbank' ], + '202K' => [ 'Kyocera', 'DIGNO R 202K', 'carrier' => 'Softbank' ], + '302KC' => [ 'Kyocera', 'DIGNO T 302KC', 'carrier' => 'EMOBILE' ], + '404KC' => [ 'Kyocera', 'DIGNO C 404KC', 'carrier' => 'Y! Mobile' ], + '503KC' => [ 'Kyocera', 'DIGNO E 503KC', 'carrier' => 'Y! Mobile' ], + ], + + 'K-?Touch!!' => [ + 'K-touch A9' => [ 'K-Touch', 'A9' ], + 'K-touch A10 Pro' => [ 'K-Touch', 'A10 Pro' ], + 'Ktouch A11' => [ 'K-Touch', 'A11' ], + 'K-touch A11plus' => [ 'K-Touch', 'A11+' ], + 'Ktouch A15' => [ 'K-Touch', 'A15' ], + 'K-Touch C666t' => [ 'K-Touch', 'C666' ], + 'K-Touch C960t' => [ 'K-Touch', 'C960' ], + 'K-Touch C966e' => [ 'K-Touch', 'C966' ], + 'K-Touch C980t' => [ 'K-Touch', 'C980' ], + 'K-Touch C986t' => [ 'K-Touch', 'C986' ], + 'K-Touch C986t+' => [ 'K-Touch', 'C986' ], + 'K-Touch C988t' => [ 'K-Touch', 'C988' ], + 'K-Touch C990' => [ 'K-Touch', 'C990' ], + 'K-Touch E7' => [ 'K-Touch', 'E7' ], + 'K-Touch E79' => [ 'K-Touch', 'E79' ], + 'K-Touch E70' => [ 'K-Touch', 'E70' ], + 'K-Touch E80' => [ 'K-Touch', 'E80' ], + 'K-Touch E88' => [ 'K-Touch', 'E88' ], + 'K-Touch E616' => [ 'K-Touch', 'E616' ], + 'K Touch E616' => [ 'K-Touch', 'E616' ], + 'K-Touch E619' => [ 'K-Touch', 'E619' ], + 'K-Touch E619+' => [ 'K-Touch', 'E619+' ], + 'K-Touch E621' => [ 'K-Touch', 'E621' ], + 'K-Touch E656' => [ 'K-Touch', 'E656' ], + 'K-Touch E688' => [ 'K-Touch', 'E688' ], + 'K-Touch E780' => [ 'K-Touch', 'E780' ], + 'K-Touch E800' => [ 'K-Touch', 'E800' ], + 'K-Touch E806' => [ 'K-Touch', 'E806' ], + 'K-Touch L820' => [ 'K-Touch', 'L820' ], + 'K-Touch Q4' => [ 'K-Touch', 'Q4' ], + 'K-Touch S2' => [ 'K-Touch', 'S2' ], + 'K-Touch S5' => [ 'K-Touch', 'S5' ], + 'K-Touch S5 Beiaigeqian' => [ 'K-Touch', 'S5' ], + 'K-Touch S5t' => [ 'K-Touch', 'S5t' ], + 'K-Touch Titan S100' => [ 'K-Touch', 'Titan S100' ], + 'K-Touch S757!' => [ 'K-Touch', 'S757' ], + 'K-Touch S787' => [ 'K-Touch', 'S787' ], + 'K-Touch T6' => [ 'K-Touch', 'T6' ], + 'K-Touch T60' => [ 'K-Touch', 'T60' ], + 'K-Touch T85+' => [ 'K-Touch', 'T85' ], + 'K-Touch T90' => [ 'K-Touch', 'T90' ], + 'K-Touch T91' => [ 'K-Touch', 'T91' ], + 'K-Touch T93' => [ 'K-Touch', 'T93' ], + 'K-Touch T96' => [ 'K-Touch', 'T96' ], + 'K-TouchT580' => [ 'K-Touch', 'T580' ], + 'K-Touch T619' => [ 'K-Touch', 'T619' ], + 'K-Touch T-619' => [ 'K-Touch', 'T619' ], + 'K-Touch T619+' => [ 'K-Touch', 'T619+' ], + 'K-Touch T621' => [ 'K-Touch', 'T621' ], + 'K-Touch T660' => [ 'K-Touch', 'T660' ], + 'K-Touch T760' => [ 'K-Touch', 'T760' ], + 'K-Touch T780' => [ 'K-Touch', 'T780' ], + 'K-Touch T780+' => [ 'K-Touch', 'T780+' ], + 'K-Touch T789' => [ 'K-Touch', 'T789' ], + 'K-Touch T800' => [ 'K-Touch', 'T800' ], + 'K-touch U2' => [ 'K-Touch', 'U2' ], + 'K-Touch U6' => [ 'K-Touch', 'U6' ], + 'K-Touch U7' => [ 'K-Touch', 'U7' ], + 'K-Touch U8' => [ 'K-Touch', 'U8' ], + 'K-Touch U9' => [ 'K-Touch', 'U9' ], + 'K-Touch U10' => [ 'K-Touch', 'U10' ], + 'K-Touch U81t' => [ 'K-Touch', 'U81t' ], + 'K-Touch U83t' => [ 'K-Touch', 'U83t' ], + 'K-Touch U86' => [ 'K-Touch', 'U86 Kiss' ], + 'K-Touch Kiss' => [ 'K-Touch', 'U86 Kiss' ], + 'K-Touch U90' => [ 'K-Touch', 'U90' ], + 'K-Touch V5' => [ 'K-Touch', 'V5' ], + 'KTouch v8' => [ 'K-Touch', 'V8' ], + 'K-Touch V8' => [ 'K-Touch', 'V8' ], + 'KTouch v9' => [ 'K-Touch', 'V9' ], + 'K-Touch V9' => [ 'K-Touch', 'V9' ], + 'K-Touch W68' => [ 'K-Touch', 'W68' ], + 'K-Touch W70' => [ 'K-Touch', 'W70' ], + 'K-Touch W88' => [ 'K-Touch', 'W88' ], + 'K-Touch W610' => [ 'K-Touch', 'W610' ], + 'K-TOUCH W610D' => [ 'K-Touch', 'W610D' ], + 'K-Touch W619!' => [ 'K-Touch', 'W619' ], + 'K-Touch W621' => [ 'K-Touch', 'W621' ], + 'K-Touch W650!' => [ 'K-Touch', 'W650' ], + 'K-Touch W655' => [ 'K-Touch', 'W655' ], + 'K-Touch W656' => [ 'K-Touch', 'W656' ], + 'K-Touch W658' => [ 'K-Touch', 'W658' ], + 'K-Touch W688' => [ 'K-Touch', 'W688' ], + 'K-Touch W700' => [ 'K-Touch', 'W700' ], + 'Ktouch w700' => [ 'K-Touch', 'W700' ], + 'K-Touch W700+' => [ 'K-Touch', 'W700+' ], + 'K-Touch W710' => [ 'K-Touch', 'W710' ], + 'K-Touch W719' => [ 'K-Touch', 'W719' ], + 'K-Touch W760' => [ 'K-Touch', 'W760' ], + 'K-Touch W780' => [ 'K-Touch', 'W780' ], + 'K-Touch W806!' => [ 'K-Touch', 'W806' ], + 'K-Touch W808' => [ 'K-Touch', 'W808' ], + 'K-Touch Kis 1' => [ 'K-Touch', 'Kis 1' ], + 'K-Touch Kis 2' => [ 'K-Touch', 'Kis 2' ], + 'K-Touch Tou ch 1' => [ 'K-Touch', 'Tou ch 1' ], + 'K-Touch Tou ch 2' => [ 'K-Touch', 'Tou ch 2' ], + 'K-Touch Tou ch2' => [ 'K-Touch', 'Tou ch 2' ], + 'K-Touch Tou ch 2c' => [ 'K-Touch', 'Tou ch 2 c' ], + 'K-Touch Tou ch 3' => [ 'K-Touch', 'Tou ch 3' ], + 'K-Touch Tou ch3' => [ 'K-Touch', 'Tou ch 3' ], + 'K-Touch Tou ch3c' => [ 'K-Touch', 'Tou ch 3 c' ], + 'K-Touch Tou ch3es' => [ 'K-Touch', 'Tou ch 3 es' ], + 'K-Touch Tou ch 5' => [ 'K-Touch', 'Tou ch 5' ], + ], + + 'Nibiru H1' => [ 'K-Touch', 'Niburu Mars One H1' ], + 'E650' => [ 'K-Touch', 'E650' ], + 'E780' => [ 'K-Touch', 'E780' ], + 'E800' => [ 'K-Touch', 'E800' ], + 'E815' => [ 'K-Touch', 'E815' ], + 'W606' => [ 'K-Touch', 'W606' ], + 'W619' => [ 'K-Touch', 'W619' ], + 'W686' => [ 'K-Touch', 'W686' ], + 'W700' => [ 'K-Touch', 'W700' ], + 'W732' => [ 'K-Touch', 'W732' ], + 'W800' => [ 'K-Touch', 'W800' ], + 'W806' => [ 'K-Touch', 'W806' ], + 'W808' => [ 'K-Touch', 'W808' ], + 'W810' => [ 'K-Touch', 'W810' ], + 'W880' => [ 'K-Touch', 'W880' ], + + '(Lanix )?(Ilium|llium)!!' => [ + 'ILIUM L400' => [ 'Lanix', 'Ilium L400' ], + 'Ilium L820' => [ 'Lanix', 'Ilium L820' ], + 'ILIUM L900' => [ 'Lanix', 'Ilium L900' ], + 'ILIUM L950' => [ 'Lanix', 'Ilium L950' ], + 'ILIUM L1000' => [ 'Lanix', 'Ilium L1000' ], + 'ILIUM L1100' => [ 'Lanix', 'Ilium L1100' ], + 'Ilium L1200' => [ 'Lanix', 'Ilium L1200' ], + 'Ilium LT500' => [ 'Lanix', 'Ilium LT500' ], + 'Ilium S100' => [ 'Lanix', 'Ilium S100' ], + 'Ilium S105' => [ 'Lanix', 'Ilium S105' ], + 'ILIUM S106' => [ 'Lanix', 'Ilium S106' ], + 'Lanix Ilium S115' => [ 'Lanix', 'Ilium S115' ], + 'Ilium S115' => [ 'Lanix', 'Ilium S115' ], + 'LANIX ILIUM S120' => [ 'Lanix', 'Ilium S120' ], + 'ILIUM S120' => [ 'Lanix', 'Ilium S120' ], + 'LANIX S120-U151' => [ 'Lanix', 'Ilium S120' ], + 'ILIUM S130' => [ 'Lanix', 'Ilium S130' ], + 'Ilium S200' => [ 'Lanix', 'Ilium S200' ], + 'Lanix Ilium S210' => [ 'Lanix', 'Ilium S210' ], + 'ILIUM S215' => [ 'Lanix', 'Ilium S215' ], + 'LANIX ILIUM S220' => [ 'Lanix', 'Ilium S220' ], + 'Lanix Ilium S400' => [ 'Lanix', 'Ilium S400' ], + 'Ilium S400' => [ 'Lanix', 'Ilium S400' ], + 'Lanix ILIUM S410' => [ 'Lanix', 'Ilium S410' ], + 'Lanix Ilium S500' => [ 'Lanix', 'Ilium S500' ], + 'ILIUM S520' => [ 'Lanix', 'Ilium S520' ], + 'ILIUM S600' => [ 'Lanix', 'Ilium S600' ], + 'ILIUM S670' => [ 'Lanix', 'Ilium S670' ], + 'LANIX ILIUM S700' => [ 'Lanix', 'Ilium S700' ], + 'ILIUM S700' => [ 'Lanix', 'Ilium S700' ], + 'ILIUM X100' => [ 'Lanix', 'Ilium X100' ], + 'ILIUM X110' => [ 'Lanix', 'Ilium X110' ], + 'Ilium X200' => [ 'Lanix', 'Ilium X200' ], + 'ILIUM X400' => [ 'Lanix', 'Ilium X400' ], + 'Ilium X500B' => [ 'Lanix', 'Ilium X500B' ], + 'iliumPAD' => [ 'Lanix', 'Ilium Pad', DeviceType::TABLET ], + 'ilium Pad E8' => [ 'Lanix', 'Ilium Pad E8', DeviceType::TABLET ], + 'ilium Pad E10' => [ 'Lanix', 'Ilium Pad E10', DeviceType::TABLET ], + 'ILIUM PAD E10Si' => [ 'Lanix', 'Ilium Pad E10 Si', DeviceType::TABLET ], + 'llium Pad L8' => [ 'Lanix', 'Ilium Pad L8', DeviceType::TABLET ], + ], + + 'Lark!!' => [ + 'Lark Evolution X2 7' => [ 'Lark', 'Evolution X2 7', DeviceType::TABLET ], + 'Lark Evolution X2 7 3G-GPS' => [ 'Lark', 'Evolution X2 7', DeviceType::TABLET ], + 'Lark FreeMe X2 7' => [ 'Lark', 'FreeMe X2 7', DeviceType::TABLET ], + 'Lark FreeMe X2 7 ver.2' => [ 'Lark', 'FreeMe X2 7', DeviceType::TABLET ], + ], + + 'Flair P8' => [ 'Lava', 'Flair P8' ], + + 'Iris!!' => [ + 'Iris78W' => [ 'Lava', 'Iris 78w' ], + 'iris 250' => [ 'Lava', 'Iris 250' ], + 'iris310s' => [ 'Lava', 'Iris 310s' ], + 'Iris 349' => [ 'Lava', 'Iris 349' ], + 'Iris 349+' => [ 'Lava', 'Iris 349+' ], + 'Iris349i' => [ 'Lava', 'Iris 349i' ], + 'Iris349s' => [ 'Lava', 'Iris 349s' ], + 'Iris 350' => [ 'Lava', 'Iris 350' ], + 'iris 350m' => [ 'Lava', 'Iris 350M' ], + 'iris 352Flair' => [ 'Lava', 'Iris 352 Flair' ], + 'iris 352E' => [ 'Lava', 'Iris 352e' ], + 'iris353' => [ 'Lava', 'Iris 353' ], + 'iris354' => [ 'Lava', 'Iris 354' ], + 'iris 354' => [ 'Lava', 'Iris 354' ], + 'iris354e' => [ 'Lava', 'Iris 354e' ], + 'IRIS355' => [ 'Lava', 'Iris 355' ], + 'iris356' => [ 'Lava', 'Iris 356' ], + 'Iris 300' => [ 'Lava', 'Iris 300' ], + 'iris 360m' => [ 'Lava', 'Iris 360M' ], + 'iris400c' => [ 'Lava', 'Iris 400 Colour' ], + 'iris 400s' => [ 'Lava', 'Iris 400s' ], + 'iris 401e' => [ 'Lava', 'Iris 401e' ], + 'IRIS402' => [ 'Lava', 'Iris 402' ], + 'iris402+' => [ 'Lava', 'Iris 402' ], + 'iris 402e' => [ 'Lava', 'Iris 402e' ], + 'iris402e' => [ 'Lava', 'Iris 402e' ], + 'iris402P' => [ 'Lava', 'Iris 402P' ], + 'iris 404Flair' => [ 'Lava', 'Iris 404 Flair' ], + 'iris404e' => [ 'Lava', 'Iris 404e' ], + 'iris405' => [ 'Lava', 'Iris 405' ], + 'iris405+' => [ 'Lava', 'Iris 405+' ], + 'iris 406Q' => [ 'Lava', 'Iris 406Q' ], + 'iris 408e' => [ 'Lava', 'Iris 408e' ], + 'iris 412' => [ 'Lava', '3G 412' ], + 'Iris 415' => [ 'Lava', '3G 415' ], + 'iris450' => [ 'Lava', 'Iris 450' ], + 'iris 450P' => [ 'Lava', 'Iris 450P' ], + 'iris454' => [ 'Lava', '3G 454' ], + 'IRIS 455' => [ 'Lava', 'Iris 455' ], + 'iris456' => [ 'Lava', 'Iris 456' ], + 'iris458Q' => [ 'Lava', 'Iris 458Q' ], + 'iris500' => [ 'Lava', 'Iris 500' ], + 'iris 500' => [ 'Lava', 'Iris 500' ], + 'IRIS 501' => [ 'Lava', 'Iris 501' ], + 'iris502' => [ 'Lava', 'Iris 502' ], + 'iris503' => [ 'Lava', 'Iris 503' ], + 'iris503e' => [ 'Lava', 'Iris 503e' ], + 'iris504Q' => [ 'Lava', 'Iris 504Q' ], + 'iris505' => [ 'Lava', 'Iris 505' ], + 'iris506Q' => [ 'Lava', 'Iris 506Q' ], + 'iris700' => [ 'Lava', 'Iris 700' ], + 'iris708' => [ 'Lava', 'Iris 708' ], + 'iris fuel10' => [ 'Lava', 'Iris fuel10' ], + 'iris Fuel50' => [ 'Lava', 'Iris fuel50' ], + 'iris Fuel60' => [ 'Lava', 'Iris fuel60' ], + 'Iris Fuel F1' => [ 'Lava', 'Iris Fuel F1' ], + 'iris pro 20' => [ 'Lava', 'Iris Pro 20' ], + 'iris pro 30' => [ 'Lava', 'Iris Pro 30' ], + 'iris SELFIE50' => [ 'Lava', 'Iris selfie 50' ], + 'iris X1' => [ 'Lava', 'Iris X1' ], + 'iris X5' => [ 'Lava', 'Iris X5' ], + 'irisX8' => [ 'Lava', 'Iris X8' ], + ], + + '504Q' => [ 'Lava', 'Iris 504Q' ], + '504Q+' => [ 'Lava', 'Iris 504Q+' ], + '504QP' => [ 'Lava', 'Iris 504QP' ], + 'Alfa L' => [ 'Lava', 'Iris Alfa L' ], + 'N320' => [ 'Lava', 'Iris N320' ], + 'X1 Grand' => [ 'Lava', 'Iris X1 Grand' ], + 'X9' => [ 'Lava', 'Iris X9' ], + 'LAVA iris 351' => [ 'Lava', 'Iris 351' ], + 'LAVA iRIS 504q' => [ 'Lava', 'Iris 504Q' ], + 'LAVA S12' => [ 'Lava', 'S12' ], + + '(XOLO )?[ABQX][0-9]{3,4}!!' => [ + 'A500L' => [ 'Lava', 'XOLO A500L' ], + 'A500s' => [ 'Lava', 'XOLO A500s' ], + 'A500S IPS' => [ 'Lava', 'XOLO A500s' ], + 'A500s Lite' => [ 'Lava', 'XOLO A500s Lite' ], + 'XOLO A700' => [ 'Lava', 'XOLO A700' ], + 'XOLO A800' => [ 'Lava', 'XOLO A800' ], + 'XOLO A1000' => [ 'Lava', 'XOLO A1000' ], + 'XOLO B700' => [ 'Lava', 'XOLO B700' ], + 'Q500' => [ 'Lava', 'XOLO Q500' ], + 'Q500s IPS' => [ 'Lava', 'XOLO Q500s IPS' ], + 'Q510s' => [ 'Lava', 'XOLO Q510s' ], + 'Q600' => [ 'Lava', 'XOLO Q600' ], + 'Q600s' => [ 'Lava', 'XOLO Q600s' ], + 'Q610s' => [ 'Lava', 'XOLO Q610s' ], + 'Q700' => [ 'Lava', 'XOLO Q700' ], + 'XOLO Q700' => [ 'Lava', 'XOLO Q700' ], + 'XOLO Q700i' => [ 'Lava', 'XOLO Q700i' ], + 'Q700i' => [ 'Lava', 'XOLO Q700i' ], + 'Q700S' => [ 'Lava', 'XOLO Q700s' ], + 'Q700S Plus' => [ 'Lava', 'XOLO Q700s Plus' ], + 'Q710' => [ 'Lava', 'XOLO Q710' ], + 'Q800' => [ 'Lava', 'XOLO Q800' ], + 'XOLO Q800' => [ 'Lava', 'XOLO Q800' ], + 'Q800X' => [ 'Lava', 'XOLO Q800 X-Edition' ], + 'Q900' => [ 'Lava', 'XOLO Q900' ], + 'Q900S' => [ 'Lava', 'XOLO Q900s' ], + 'Q900T' => [ 'Lava', 'XOLO Q900T' ], + 'Q1000' => [ 'Lava', 'XOLO Q1000' ], + 'Xolo Q1000' => [ 'Lava', 'XOLO Q1000' ], + 'Q1000 Opus' => [ 'Lava', 'XOLO Q1000 Opus' ], + 'XOLO Q1000 Opus2!' => [ 'Lava', 'XOLO Q1000 Opus 2' ], + 'Q1000S' => [ 'Lava', 'XOLO Q1000s' ], + 'Q1000s Plus' => [ 'Lava', 'XOLO Q1000s Plus' ], + 'Q1010' => [ 'Lava', 'XOLO Q1010' ], + 'Q1010i' => [ 'Lava', 'XOLO Q1010i' ], + 'Q1011' => [ 'Lava', 'XOLO Q1011' ], + 'Q1100' => [ 'Lava', 'XOLO Q1100' ], + 'Q1200' => [ 'Lava', 'XOLO Q1200' ], + 'Q2000' => [ 'Lava', 'XOLO Q2000' ], + 'Q2000L' => [ 'Lava', 'XOLO Q2000L' ], + 'Q2100' => [ 'Lava', 'XOLO Q2100' ], + 'Q2500' => [ 'Lava', 'XOLO Q2500' ], + 'Q3000' => [ 'Lava', 'XOLO Q3000' ], + 'Xolo X500' => [ 'Lava', 'XOLO X500' ], + 'X900' => [ 'Lava', 'XOLO X900' ], + 'Xolo X900' => [ 'Lava', 'XOLO X900' ], + 'XOLO X910' => [ 'Lava', 'XOLO X910' ], + 'XOLO X1000' => [ 'Lava', 'XOLO X1000' ], + ], + + 'BLACK' => [ 'Lava', 'XOLO Black' ], + '8x-1000' => [ 'Lava', 'XOLO Hive 8x-1000' ], + 'Omega 5.0' => [ 'Lava', 'XOLO Omega 5.0' ], + 'Omega 5.5' => [ 'Lava', 'XOLO Omega 5.5' ], + 'XOLO One' => [ 'Lava', 'XOLO One' ], + 'XOLO Play' => [ 'Lava', 'XOLO Play' ], + 'XOLO T1000' => [ 'Lava', 'XOLO Play' ], + 'Play 6X-1000' => [ 'Lava', 'XOLO Play 6X 1000' ], + 'Play8X-1100' => [ 'Lava', 'XOLO Play 8X 1100' ], + 'Xolo QC800' => [ 'Lava', 'XOLO Tab', DeviceType::TABLET ], + 'R30GT' => [ 'Lavios', 'Revo R30GT', DeviceType::TABLET ], + + 'leepoo!!' => [ + 'leepoo i500' => [ 'Leepoo', 'i500' ], + 'leepoo i580' => [ 'Leepoo', 'i580' ], + 'leepoo i600' => [ 'Leepoo', 'i600' ], + 'leepoo i800' => [ 'Leepoo', 'i800' ], + ], + + 'P5' => [ 'Lemon', 'P5' ], + 'LEMON P7' => [ 'Lemon', 'P7' ], + 'P105' => [ 'Lemon', 'P105' ], + + 'Lenco!!' => [ + 'Lenco CARTAB-920' => [ 'Lenco', 'CarTab 920', DeviceType::TABLET ], + 'Lenco CARTAB-925' => [ 'Lenco', 'CarTab 925', DeviceType::TABLET ], + 'Lenco CoolTab-70' => [ 'Lenco', 'CoolTab 70', DeviceType::TABLET ], + 'Lenco CoolTAB-72' => [ 'Lenco', 'CoolTab 72', DeviceType::TABLET ], + 'Lenco CoolTab-80' => [ 'Lenco', 'CoolTab 80', DeviceType::TABLET ], + 'Lenco KidzTab-70' => [ 'Lenco', 'KidzTab 70', DeviceType::TABLET ], + 'Lenco KidzTab-520' => [ 'Lenco', 'KidzTab 520', DeviceType::TABLET ], + 'Lenco TAB-704' => [ 'Lenco', 'TAB 704', DeviceType::TABLET ], + 'Lenco TAB-712' => [ 'Lenco', 'TAB 712', DeviceType::TABLET ], + 'Lenco TAB-813' => [ 'Lenco', 'TAB 813', DeviceType::TABLET ], + 'Lenco TAB-832' => [ 'Lenco', 'TAB 832', DeviceType::TABLET ], + 'Lenco TAB-900' => [ 'Lenco', 'TAB 900', DeviceType::TABLET ], + 'Lenco TAB-925' => [ 'Lenco', 'TAB 925', DeviceType::TABLET ], + 'Lenco TAB-1014' => [ 'Lenco', 'TAB 1014', DeviceType::TABLET ], + 'Lenco TAB-1020' => [ 'Lenco', 'TAB 1020', DeviceType::TABLET ], + 'Lenco TAB-1022' => [ 'Lenco', 'TAB 1022', DeviceType::TABLET ], + 'Lenco TAB-1030' => [ 'Lenco', 'TAB 1030', DeviceType::TABLET ], + 'Lenco TAB-9720' => [ 'Lenco', 'TAB 9720', DeviceType::TABLET ], + ], + + 'LENCM900HZ' => [ 'Lenco', 'TAB 811', DeviceType::TABLET ], + 'TAB1011' => [ 'Lenco', 'TAB 1011', DeviceType::TABLET ], + 'TAB-1030' => [ 'Lenco', 'TAB 1030', DeviceType::TABLET ], + 'ThinkPad( Tablet)?!' => [ 'Lenovo', 'ThinkPad Tablet', DeviceType::TABLET ], + 'IdeaPad A1' => [ 'Lenovo', 'IdeaPad A1', DeviceType::TABLET ], + 'Lenovo A1-32AB0' => [ 'Lenovo', 'IdeaPad A1', DeviceType::TABLET ], + 'Lenovo A1-32AJ0' => [ 'Lenovo', 'IdeaPad A1', DeviceType::TABLET ], + 'IdeaPadA10' => [ 'Lenovo', 'IdeaPad A10', DeviceType::TABLET ], + 'K1' => [ 'Lenovo', 'IdeaPad K1', DeviceType::TABLET ], + 'Ideapad K1!' => [ 'Lenovo', 'IdeaPad K1', DeviceType::TABLET ], + 'Ideapad S10-3T' => [ 'Lenovo', 'IdeaPad S10-3T', DeviceType::TABLET ], + 'Lenovo IdeaPad Yoga 11S' => [ 'Lenovo', 'IdeaPad Yoga 11S', DeviceType::TABLET ], + 'Lenovo IdeaPad Yoga 13' => [ 'Lenovo', 'IdeaPad Yoga 13', DeviceType::TABLET ], + + '(Lenovo ?)?(IdeaTab ?)?[AB][0-9]{4,4}!!' => [ + 'Lenovo A1000L-F' => [ 'Lenovo', 'IdeaTab A1000', DeviceType::TABLET ], + 'IdeaTab ?A1000(-F|-G|-T)!' => [ 'Lenovo', 'IdeaTab A1000', DeviceType::TABLET ], + 'IdeaTab ?A1000(L-F)!' => [ 'Lenovo', 'IdeaTab A1000', DeviceType::TABLET ], + 'IdeaTab ?A1010(-T)!' => [ 'Lenovo', 'IdeaTab A1010', DeviceType::TABLET ], + 'IdeaTab ?A1020(-T)!' => [ 'Lenovo', 'IdeaTab A1020', DeviceType::TABLET ], + 'IdeaTab ?A1107!' => [ 'Lenovo', 'IdeaTab A1107', DeviceType::TABLET ], + 'Lenovo A2010-a' => [ 'Lenovo', 'IdeaTab A2010', DeviceType::TABLET ], + 'Lenovo A2010l36' => [ 'Lenovo', 'IdeaTab A2010', DeviceType::TABLET ], + 'Lenovo A2105' => [ 'Lenovo', 'IdeaTab A2105', DeviceType::TABLET ], + 'Lenovo A2107' => [ 'Lenovo', 'IdeaTab A2107', DeviceType::TABLET ], + 'IdeaTab ?A2107(A-F|A-H)!' => [ 'Lenovo', 'IdeaTab A2107', DeviceType::TABLET ], + 'A2107A-H' => [ 'Lenovo', 'IdeaTab A2107', DeviceType::TABLET ], + 'IdeaTab ?A2109(A)!' => [ 'Lenovo', 'IdeaTab A2109', DeviceType::TABLET ], + 'A2109A' => [ 'Lenovo', 'IdeaTab A2109', DeviceType::TABLET ], + 'IdeaTab ?A2207(A-H)!' => [ 'Lenovo', 'IdeaTab A2207', DeviceType::TABLET ], + 'IdeaTab ?A3000-(F|H)!' => [ 'Lenovo', 'IdeaTab A3000', DeviceType::TABLET ], + 'Lenovo A3000-H!' => [ 'Lenovo', 'IdeaTab A3000', DeviceType::TABLET ], + 'LENOVO IdeaTab A3000-H' => [ 'Lenovo', 'IdeaTab A3000', DeviceType::TABLET ], + 'Lenovo ?A3300(-H|-HV|-GV|-T)!' => [ 'Lenovo', 'IdeaTab A3300', DeviceType::TABLET ], + 'Lenovo A3500(-F|-FL|-H|-HV)!' => [ 'Lenovo', 'IdeaTab A3500', DeviceType::TABLET ], + 'IdeaTab ?A5000-E!' => [ 'Lenovo', 'IdeaTab A5000', DeviceType::TABLET ], + 'Lenovo A5500(-F|-HV|-H|HV)?!' => [ 'Lenovo', 'IdeaTab A5500', DeviceType::TABLET ], + 'Lenovo A7600(-F|-HV|-H|H)!' => [ 'Lenovo', 'IdeaTab A7600', DeviceType::TABLET ], + 'Lenovo B6000(-F|-H)!' => [ 'Lenovo', 'B6000 Yoga Tablet 8', DeviceType::TABLET ], + 'Lenovo B8000(-F|-H)!' => [ 'Lenovo', 'B8000 Yoga Tablet 10', DeviceType::TABLET ], + 'Lenovo B8080(-F|-H|-HV)!' => [ 'Lenovo', 'B8080 Yoga Tablet 10', DeviceType::TABLET ], + ], + + 'YOGA Tablet!!' => [ + 'YOGA Tablet 2-830F' => [ 'Lenovo', 'Yoga Tablet 2 830F', DeviceType::TABLET ], + 'YOGA Tablet 2-830L' => [ 'Lenovo', 'Yoga Tablet 2 830L', DeviceType::TABLET ], + 'YOGA Tablet 2-830LC' => [ 'Lenovo', 'Yoga Tablet 2 830LC', DeviceType::TABLET ], + 'YOGA Tablet 2-1050F' => [ 'Lenovo', 'Yoga Tablet 2 1050F', DeviceType::TABLET ], + 'YOGA Tablet 2-1050L' => [ 'Lenovo', 'Yoga Tablet 2 1050L', DeviceType::TABLET ], + 'YOGA Tablet 2-1050LC' => [ 'Lenovo', 'Yoga Tablet 2 1050LC', DeviceType::TABLET ], + 'YOGA Tablet 2 Pro-1380F' => [ 'Lenovo', 'Yoga Tablet 2 Pro 1380F', DeviceType::TABLET ], + 'YOGA Tablet 2 Pro-1380L' => [ 'Lenovo', 'Yoga Tablet 2 Pro 1380L', DeviceType::TABLET ], + ], + + 'Lenovo YT3-X90L' => [ 'Lenovo', 'Yoga Tablet 3 Pro', DeviceType::TABLET ], + + '(Lenovo )?(Tab ?)?(2 ?)?[AS](7|8|10)!!' => [ + 'Lenovo A7' => [ 'Lenovo', 'Tab A7', DeviceType::TABLET ], + 'Lenovo A7-60HC' => [ 'Lenovo', 'Tab A7', DeviceType::TABLET ], + 'Lenovo A10-70LC' => [ 'Lenovo', 'Tab A10', DeviceType::TABLET ], + 'Lenovo 2 A7-30(F|HC|TC)!' => [ 'Lenovo', 'Tab 2 A7', DeviceType::TABLET ], + 'Tab2A7-(10|20)!' => [ 'Lenovo', 'Tab 2 A7', DeviceType::TABLET ], + 'Lenovo TAB 2 A7-30(D|F|H|DC|GC|HC)!' => [ 'Lenovo', 'Tab 2 A7', DeviceType::TABLET ], + 'Lenovo 2 A8-50(F|L|LC)!' => [ 'Lenovo', 'Tab 2 A8', DeviceType::TABLET ], + 'Lenovo TAB 2 A8-50(F|L|LC)!' => [ 'Lenovo', 'Tab 2 A8', DeviceType::TABLET ], + 'Lenovo TAB 2 A10-70(F|L)!' => [ 'Lenovo', 'Tab 2 A10', DeviceType::TABLET ], + 'Lenovo TAB S8-50(F|L|LC)!' => [ 'Lenovo', 'Tab S8', DeviceType::TABLET ], + 'Lenovo S8-50LC' => [ 'Lenovo', 'Tab S8', DeviceType::TABLET ], + ], + + '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!' => [ + 'IdeaTab ?K2110A-(F)!' => [ 'Lenovo', 'IdeaTab K2110', DeviceType::TABLET ], + 'S2005A-H' => [ 'Lenovo', 'IdeaTab S2005', DeviceType::TABLET ], + 'lenovo S2005' => [ 'Lenovo', 'IdeaTab S2005', DeviceType::TABLET ], + 'IdeaTab ?S2007A-(D|F|H)!' => [ 'Lenovo', 'IdeaTab S2007', DeviceType::TABLET ], + 'IdeaTab ?S2010A-(D|F|H)!' => [ 'Lenovo', 'IdeaTab S2010', DeviceType::TABLET ], + 'IdeaTab ?S2109A-(F)!' => [ 'Lenovo', 'IdeaTab S2109', DeviceType::TABLET ], + 'IdeaTab ?S2110(AF|AH)!' => [ 'Lenovo', 'IdeaTab S2110', DeviceType::TABLET ], + 'IdeaTab ?A2207A-(F)!' => [ 'Lenovo', 'IdeaTab S2207', DeviceType::TABLET ], + 'Lenovo S5000' => [ 'Lenovo', 'IdeaTab S5000', DeviceType::TABLET ], + 'Lenovo S5000-(F|H)!' => [ 'Lenovo', 'IdeaTab S5000', DeviceType::TABLET ], + 'IdeaTab ?S6000L?-(F|H)!' => [ 'Lenovo', 'IdeaTab S6000', DeviceType::TABLET ], + 'Lenovo S6000-H' => [ 'Lenovo', 'IdeaTab S6000', DeviceType::TABLET ], + 'Lenovo S6000L-(F|H)!' => [ 'Lenovo', 'IdeaTab S6000', DeviceType::TABLET ], + 'LENOVO IdeaTab S6000-H' => [ 'Lenovo', 'IdeaTab S6000', DeviceType::TABLET ], + 'IdeaTab ?V2007(A|A-D-I)!' => [ 'Lenovo', 'IdeaTab V2007', DeviceType::TABLET ], + 'IdeaTab ?V2010(A)!' => [ 'Lenovo', 'IdeaTab V2010', DeviceType::TABLET ], + ], + + 'Lenovo Pad A4' => [ 'Lenovo', 'Pad A4', DeviceType::TABLET ], + + 'Lenovo' => [ 'Lenovo', 'LePad', DeviceType::TABLET ], + 'A1 07' => [ 'Lenovo', 'LePad', DeviceType::TABLET ], + 'lepad 001b' => [ 'Lenovo', 'LePad', DeviceType::TABLET ], + 'lepad 001n' => [ 'Lenovo', 'LePad', DeviceType::TABLET ], + + '(Lenovo |Lephone )?3GC101!' => [ 'Lenovo', 'LePhone 3GC101' ], + '(Lenovo |Lephone )?3GW100!' => [ 'Lenovo', 'LePhone 3GW100' ], + '(Lenovo |Lephone )?3GW101!' => [ 'Lenovo', 'LePhone 3GW101' ], + '(Lenovo )?S1[- ]37AH0!' => [ 'Lenovo', 'LePhone S1' ], + '(Lenovo )?S2[- ]38A(H0|T0)!' => [ 'Lenovo', 'LePhone S2' ], + + 'Lenovo!!' => [ + 'Lenovo A1000' => [ 'Lenovo', 'A1000' ], + 'Lenovo A1600-d' => [ 'Lenovo', 'A1600' ], + 'Lenovo A1900' => [ 'Lenovo', 'A1900' ], + 'Lenovo A2580' => [ 'Lenovo', 'A2580' ], + 'Lenovo A2800-d' => [ 'Lenovo', 'A2800' ], + 'Lenovo A2860!' => [ 'Lenovo', 'A2860' ], + 'Lenovo A3500' => [ 'Lenovo', 'A3500' ], + 'Lenovo A5000!' => [ 'Lenovo', 'A5000' ], + 'Lenovo A6000!' => [ 'Lenovo', 'A6000' ], + 'Lenovo A7000!' => [ 'Lenovo', 'A7000' ], + 'Lenovo A116!' => [ 'Lenovo', 'A116' ], + 'Lenovo A208!' => [ 'Lenovo', 'A208' ], + 'Lenovo A218!' => [ 'Lenovo', 'A218' ], + 'Lenovo A228t' => [ 'Lenovo', 'A228t' ], + 'Lenovo A238!' => [ 'Lenovo', 'A238' ], + 'Lenovo A269!' => [ 'Lenovo', 'A269' ], + 'Lenovo A278!' => [ 'Lenovo', 'A278' ], + 'Lenovo ?A288!' => [ 'Lenovo', 'A288' ], + 'Lenovo ?A298!' => [ 'Lenovo', 'A298' ], + 'Lenovo A300!' => [ 'Lenovo', 'A300' ], + 'Lenovo A305!' => [ 'Lenovo', 'A305' ], + 'Lenovo A308!' => [ 'Lenovo', 'A308' ], + 'Lenovo A316!' => [ 'Lenovo', 'A316' ], + 'Lenovo A318!' => [ 'Lenovo', 'A318' ], + 'Lenovo A319!' => [ 'Lenovo', 'A319' ], + 'Lenovo A320!' => [ 'Lenovo', 'A320' ], + 'Lenovo A326!' => [ 'Lenovo', 'A326' ], + 'Lenovo A328!' => [ 'Lenovo', 'A328' ], + 'Lenovo A330!' => [ 'Lenovo', 'A330' ], + 'Lenovo A338!' => [ 'Lenovo', 'A338' ], + 'Lenovo A355!' => [ 'Lenovo', 'A355' ], + 'Lenovo A356!' => [ 'Lenovo', 'A356' ], + 'Lenovo A358!' => [ 'Lenovo', 'A358' ], + 'Lenovo A360!' => [ 'Lenovo', 'A360' ], + 'Lenovo A365!' => [ 'Lenovo', 'A365' ], + 'Lenovo A366!' => [ 'Lenovo', 'A366' ], + 'Lenovo A368!' => [ 'Lenovo', 'A368' ], + 'Lenovo A369!' => [ 'Lenovo', 'A369' ], + 'Lenovo A370!' => [ 'Lenovo', 'A370' ], + 'Lenovo A370!' => [ 'Lenovo', 'A370' ], + 'Lenovo A375!' => [ 'Lenovo', 'A375' ], + 'Lenovo A376!' => [ 'Lenovo', 'A376' ], + 'Lenovo A378!' => [ 'Lenovo', 'A378' ], + 'Lenovo A380!' => [ 'Lenovo', 'A380' ], + 'Lenovo A385!' => [ 'Lenovo', 'A385' ], + 'Lenovo A388!' => [ 'Lenovo', 'A388' ], + 'Lenovo A390!' => [ 'Lenovo', 'A390' ], + 'Lenovo A395!' => [ 'Lenovo', 'A395' ], + 'Lenovo A396!' => [ 'Lenovo', 'A396' ], + 'Lenovo A398!' => [ 'Lenovo', 'A398' ], + 'Lenovo A399' => [ 'Lenovo', 'A399' ], + 'Lenovo A500!' => [ 'Lenovo', 'A505' ], + 'Lenovo A505!' => [ 'Lenovo', 'A500' ], + 'Lenovo A516!' => [ 'Lenovo', 'A516' ], + 'Lenovo A520!' => [ 'Lenovo', 'A520' ], + 'Lenovo A526!' => [ 'Lenovo', 'A526' ], + 'Lenovo A529!' => [ 'Lenovo', 'A529' ], + 'Lenovo A530!' => [ 'Lenovo', 'A530' ], + 'Lenovo A536!' => [ 'Lenovo', 'A536' ], + 'Lenovo A560!' => [ 'Lenovo', 'A560' ], + 'Lenovo A580!' => [ 'Lenovo', 'A580' ], + 'Lenovo A586!' => [ 'Lenovo', 'A586' ], + 'Lenovo ?A588!' => [ 'Lenovo', 'A588' ], + 'Lenovo A590!' => [ 'Lenovo', 'A590' ], + 'Lenovo A600!' => [ 'Lenovo', 'A600' ], + 'Lenovo A606!' => [ 'Lenovo', 'A606' ], + 'Lenovo A616!' => [ 'Lenovo', 'A616' ], + 'Lenovo A628!' => [ 'Lenovo', 'A628' ], + 'Lenovo A630!' => [ 'Lenovo', 'A630' ], + 'Lenovo A656!' => [ 'Lenovo', 'A656' ], + 'Lenovo A658!' => [ 'Lenovo', 'A658' ], + 'Lenovo A660!' => [ 'Lenovo', 'A660' ], + 'Lenovo A668!' => [ 'Lenovo', 'A668' ], + 'Lenovo A670!' => [ 'Lenovo', 'A670' ], + 'Lenovo A678!' => [ 'Lenovo', 'A678' ], + 'Lenovo A680!' => [ 'Lenovo', 'A680' ], + 'Lenovo A690!' => [ 'Lenovo', 'A690' ], + 'Lenovo A698!' => [ 'Lenovo', 'A698' ], + 'Lenovo A700!' => [ 'Lenovo', 'A700' ], + 'Lenovo A706!' => [ 'Lenovo', 'A706' ], + 'Lenovo A708!' => [ 'Lenovo', 'A708' ], + 'Lenovo A710!' => [ 'Lenovo', 'A710' ], + 'Lenovo A718!' => [ 'Lenovo', 'A718' ], + 'Lenovo A720!' => [ 'Lenovo', 'A720' ], + 'Lenovo A750!' => [ 'Lenovo', 'A750' ], + 'Lenovo A760!' => [ 'Lenovo', 'A760' ], + 'Lenovo A765!' => [ 'Lenovo', 'A765' ], + 'Lenovo A766!' => [ 'Lenovo', 'A766' ], + 'Lenovo A768t' => [ 'Lenovo', 'A768t' ], + 'Lenovo A770!' => [ 'Lenovo', 'A770' ], + 'Lenovo A780!' => [ 'Lenovo', 'A780' ], + 'Lenovo A785!' => [ 'Lenovo', 'A785' ], + 'Lenovo A788!' => [ 'Lenovo', 'A788' ], + 'Lenovo A789!' => [ 'Lenovo', 'A789' ], + 'Lenovo A790!' => [ 'Lenovo', 'A790' ], + 'Lenovo A798!' => [ 'Lenovo', 'A798' ], + 'Lenovo A800!' => [ 'Lenovo', 'A800' ], + 'Lenovo A805!' => [ 'Lenovo', 'A805' ], + 'Lenovo A806!' => [ 'Lenovo', 'A806' ], + 'Lenovo A808!' => [ 'Lenovo', 'A808' ], + 'Lenovo A816!' => [ 'Lenovo', 'A816' ], + 'Lenovo ?A820!' => [ 'Lenovo', 'A820' ], + 'lenovo-A820t' => [ 'Lenovo', 'A820' ], + 'Lenovo A828!' => [ 'Lenovo', 'A828' ], + 'Lenovo A830!' => [ 'Lenovo', 'A830' ], + 'Lenovo A850!' => [ 'Lenovo', 'A850' ], + 'Lenovo A858!' => [ 'Lenovo', 'A858' ], + 'Lenovo A859!' => [ 'Lenovo', 'A859' ], + 'Lenovo A860!' => [ 'Lenovo', 'A860' ], + 'Lenovo A880!' => [ 'Lenovo', 'A880' ], + 'Lenovo A889!' => [ 'Lenovo', 'A889' ], + 'Lenovo A890!' => [ 'Lenovo', 'A890' ], + 'Lenovo A916!' => [ 'Lenovo', 'A916' ], + 'Lenovo A936!' => [ 'Lenovo', 'A936' ], + 'Lenovo A938!' => [ 'Lenovo', 'A938' ], + 'Lenovo A998!' => [ 'Lenovo', 'A998' ], + 'Lenovo A60+?!' => [ 'Lenovo', 'A60' ], + 'Lenovo A65!' => [ 'Lenovo', 'A65' ], + 'Lenovo A66!' => [ 'Lenovo', 'A66' ], + 'Lenovo A68!' => [ 'Lenovo', 'A68' ], + 'Lenovo K800' => [ 'Lenovo', 'K800' ], + 'Lenovo K860!' => [ 'Lenovo', 'K860' ], + 'Lenovo K900!' => [ 'Lenovo', 'K900' ], + 'Lenovo K910!' => [ 'Lenovo', 'K910' ], + 'Lenovo K920!' => [ 'Lenovo', 'K920' ], + 'Lenovo K80M' => [ 'Lenovo', 'K80' ], + 'Lenovo K2' => [ 'Lenovo', 'K2' ], + 'Lenovo k30' => [ 'Lenovo', 'K3' ], + 'Lenovo K30-T' => [ 'Lenovo', 'K3' ], + 'Lenovo K30-TM' => [ 'Lenovo', 'K3' ], + 'Lenovo K30-W' => [ 'Lenovo', 'K3' ], + 'Lenovo K31-t3' => [ 'Lenovo', 'K3' ], + 'Lenovo K3' => [ 'Lenovo', 'K3' ], + 'Lenovo K50a40' => [ 'Lenovo', 'K3 Note' ], + 'Lenovo K50-t3s' => [ 'Lenovo', 'K3 Note' ], + 'Lenovo K50-T5' => [ 'Lenovo', 'K3 Note' ], + 'Lenovo K6' => [ 'Lenovo', 'K6' ], + 'Lenovo N300' => [ 'Lenovo', 'N300', DeviceType::DESKTOP ], + 'Lenovo N308' => [ 'Lenovo', 'N308', DeviceType::DESKTOP ], + 'Lenovo N908' => [ 'Lenovo', 'N908' ], + 'Lenovo O3' => [ 'Lenovo', 'O3' ], + 'Lenovo P70' => [ 'Lenovo', 'P70' ], + 'Lenovo P70-A' => [ 'Lenovo', 'P70' ], + 'Lenovo P70-t' => [ 'Lenovo', 'P70' ], + 'Lenovo P90' => [ 'Lenovo', 'P90' ], + 'Lenovo P700!' => [ 'Lenovo', 'P700' ], + 'Lenovo P770!' => [ 'Lenovo', 'P770' ], + 'Lenovo-P770' => [ 'Lenovo', 'P770' ], + 'Lenovo P780!' => [ 'Lenovo', 'P780' ], + 'Lenovo P786!' => [ 'Lenovo', 'P786' ], + 'Lenovo S60-a' => [ 'Lenovo', 'S60' ], + 'Lenovo S60-t' => [ 'Lenovo', 'S60' ], + 'Lenovo S60-w' => [ 'Lenovo', 'S60' ], + 'Lenovo S90-A' => [ 'Lenovo', 'S90' ], + 'Lenovo S90-e' => [ 'Lenovo', 'S90' ], + 'Lenovo S90-L' => [ 'Lenovo', 'S90' ], + 'Lenovo S90-t' => [ 'Lenovo', 'S90' ], + 'Lenovo S90-u' => [ 'Lenovo', 'S90' ], + 'Lenovo S560' => [ 'Lenovo', 'S560' ], + 'Lenovo S580' => [ 'Lenovo', 'S580' ], + 'Lenovo S650' => [ 'Lenovo', 'S650' ], + 'Lenovo S658t' => [ 'Lenovo', 'S658' ], + 'Lenovo S660' => [ 'Lenovo', 'S660' ], + 'Lenovo S668t' => [ 'Lenovo', 'S668' ], + 'Lenovo S680' => [ 'Lenovo', 'S680' ], + 'Lenovo S686' => [ 'Lenovo', 'S686' ], + 'Lenovo S696' => [ 'Lenovo', 'S696' ], + 'Lenovo S720!' => [ 'Lenovo', 'S720' ], + 'Lenovo S750' => [ 'Lenovo', 'S750' ], + 'Lenovo S760' => [ 'Lenovo', 'S760' ], + 'Lenovo S790' => [ 'Lenovo', 'S790' ], + 'Lenovo S810!' => [ 'Lenovo', 'S810' ], + 'Lenovo S820!' => [ 'Lenovo', 'S820' ], + 'Lenovo S850!' => [ 'Lenovo', 'S850' ], + 'Lenovo S856!' => [ 'Lenovo', 'S856' ], + 'Lenovo S858!' => [ 'Lenovo', 'S858' ], + 'Lenovo S860!' => [ 'Lenovo', 'S860' ], + 'Lenovo S868t' => [ 'Lenovo', 'S868' ], + 'Lenovo S870e' => [ 'Lenovo', 'S870' ], + 'Lenovo S880!' => [ 'Lenovo', 'S880' ], + 'Lenovo S890' => [ 'Lenovo', 'S890' ], + 'Lenovo S898!' => [ 'Lenovo', 'S898' ], + 'Lenovo ?S899!' => [ 'Lenovo', 'S899' ], + 'lenovo S900i' => [ 'Lenovo', 'S900' ], + 'Lenovo ?S920!' => [ 'Lenovo', 'S920' ], + 'Lenovo S930' => [ 'Lenovo', 'S930' ], + 'Lenovo S938!' => [ 'Lenovo', 'S938' ], + 'Lenovo S939' => [ 'Lenovo', 'S939' ], + 'Lenovo S950' => [ 'Lenovo', 'S950' ], + 'Lenovo S960' => [ 'Lenovo', 'S960' ], + 'Lenovo S968!' => [ 'Lenovo', 'S968' ], + 'Lenovo W100' => [ 'Lenovo', 'W100' ], + 'Lenovo X2-(AP|CU|EU|TO|TR)!' => [ 'Lenovo', 'Vibe X2' ], + 'Lenovo Z90!' => [ 'Lenovo', 'Vibe Shot' ], + 'Lenovo PB1-750M' => [ 'Lenovo', 'Phab' ], + 'Lenovo PB1-770(M|N|P)!' => [ 'Lenovo', 'Phab Plus' ], + 'Lenovo X910' => [ 'Lenovo', 'X910' ], + ], + + 'A750' => [ 'Lenovo', 'A750' ], + 'A30t' => [ 'Lenovo', 'A30' ], + 'OPPOLenovo A60' => [ 'Lenovo', 'A60' ], + 'P700i' => [ 'Lenovo', 'P700i' ], + 'S658t' => [ 'Lenovo', 'S658' ], + 'S720i' => [ 'Lenovo', 'S720' ], + 'S880' => [ 'Lenovo', 'S880' ], + + 'idea ?tv!!' => [ + 'ideatv A21' => [ 'Lenovo', 'IDEA TV', DeviceType::TELEVISION ], + 'ideatv K72' => [ 'Lenovo', 'IDEA TV', DeviceType::TELEVISION ], + 'ideatv K82' => [ 'Lenovo', 'IDEA TV', DeviceType::TELEVISION ], + 'ideatv K91' => [ 'Lenovo', 'IDEA TV', DeviceType::TELEVISION ], + 'IDEA TV T100' => [ 'Lenovo', 'IDEA TV', DeviceType::TELEVISION ], + 'IDEA TV K91' => [ 'Lenovo', 'IDEA TV', DeviceType::TELEVISION ], + 'ideatv S9' => [ 'Lenovo', 'IDEA TV', DeviceType::TELEVISION ], + 'ideatv S31' => [ 'Lenovo', 'IDEA TV', DeviceType::TELEVISION ], + 'ideatv S51' => [ 'Lenovo', 'IDEA TV', DeviceType::TELEVISION ], + 'ideatv S52' => [ 'Lenovo', 'IDEA TV', DeviceType::TELEVISION ], + 'ideatv S61' => [ 'Lenovo', 'IDEA TV', DeviceType::TELEVISION ], + ], + + 'LenovoTV 40S9' => [ 'Lenovo', 'TV 40S9', DeviceType::TELEVISION ], + 'LenovoTV 50S52' => [ 'Lenovo', 'TV 50S52', DeviceType::TELEVISION ], + '501LV' => [ 'Lenovo', 'Tab2 501LV', 'carrier' => 'Softbank' ], + + 'ZUK Z1' => [ 'Lenovo', 'ZUK Z1' ], + 'ZUK Z2' => [ 'Lenovo', 'ZUK Z2' ], + + '(BLF-)?lephone!!' => [ + 'lephone 1800' => [ 'Lephone', '1800' ], + 'BLF-lephone 1900' => [ 'Lephone', '1900' ], + 'lephone 2800' => [ 'Lephone', '2800' ], + 'lephone 2900' => [ 'Lephone', '2900' ], + 'lephone T708' => [ 'Lephone', 'T708' ], + 'Lephone TD506' => [ 'Lephone', 'TD506' ], + 'Lephone TD8208' => [ 'Lephone', 'TD8208' ], + ], + + 'TD506' => [ 'Lephone', 'TD506' ], + + 'MFC[0-9]!!' => [ + 'MFC190BBFR' => [ 'Lexibook', 'Barbie Tablet', DeviceType::TABLET ], + 'MFC150DEX' => [ 'Lexibook', 'First Tablet', DeviceType::TABLET ], + 'MFC195FUDE' => [ 'Lexibook', 'Furby Tablet', DeviceType::TABLET ], + 'MFC195FUFR' => [ 'Lexibook', 'Furby Tablet', DeviceType::TABLET ], + 'MFC140FR1' => [ 'Lexibook', 'LapTab', DeviceType::TABLET ], + 'MFC141FR' => [ 'Lexibook', 'LapTab 2', DeviceType::TABLET ], + 'MFC162DE' => [ 'Lexibook', 'Power Tablet', DeviceType::TABLET ], + 'MFC162FR' => [ 'Lexibook', 'Power Tablet', DeviceType::TABLET ], + 'MFC180FR' => [ 'Lexibook', 'Tablet Advanced', DeviceType::TABLET ], + 'MFC181FR' => [ 'Lexibook', 'Tablet Advanced 2', DeviceType::TABLET ], + 'MFC195DCFR' => [ 'Lexibook', 'Tablet Disney Cars HD', DeviceType::TABLET ], + 'MFC195DPFR' => [ 'Lexibook', 'Tablet Disney Princesse HD', DeviceType::TABLET ], + 'MFC250FR' => [ 'Lexibook', 'Tablet Junior', DeviceType::TABLET ], + 'MFC280FR' => [ 'Lexibook', 'Tablet Junior 2', DeviceType::TABLET ], + 'MFC280DE' => [ 'Lexibook', 'Tablet Junior 2', DeviceType::TABLET ], + 'MFC270DE' => [ 'Lexibook', 'Tablet Junior Power Touch', DeviceType::TABLET ], + 'MFC270EN 09' => [ 'Lexibook', 'Tablet Junior Power Touch', DeviceType::TABLET ], + 'MFC270FR' => [ 'Lexibook', 'Tablet Junior Power Touch', DeviceType::TABLET ], + 'mfc142fr' => [ 'Lexibook', 'Tablet Kids', DeviceType::TABLET ], + 'MFC155EN 09' => [ 'Lexibook', 'Tablet Master', DeviceType::TABLET ], + 'MFC155ES' => [ 'Lexibook', 'Tablet Master', DeviceType::TABLET ], + 'MFC155FR' => [ 'Lexibook', 'Tablet Master', DeviceType::TABLET ], + 'MFC157FR' => [ 'Lexibook', 'Tablet Master 2', DeviceType::TABLET ], + 'MFC157CZ' => [ 'Lexibook', 'Tablet Master 2', DeviceType::TABLET ], + 'MFC163FR' => [ 'Lexibook', 'Tablet Master 3', DeviceType::TABLET ], + 'MFC156FR' => [ 'Lexibook', 'Tablet One', DeviceType::TABLET ], + 'MFC170FR' => [ 'Lexibook', 'Tablet Ultra', DeviceType::TABLET ], + 'MFC175FR' => [ 'Lexibook', 'Tablet Ultra', DeviceType::TABLET ], + 'MFC375FR' => [ 'Lexibook', 'Tablet Ultra 2', DeviceType::TABLET ], + 'mfc500fr' => [ 'Lexibook', 'Tablet XL', DeviceType::TABLET ], + 'MFC045FR' => [ 'Lexibook', 'TabTab', DeviceType::TABLET ], + ], + + 'Le Pan TC802A' => [ 'Le Pan', 'Mini', DeviceType::TABLET ], + 'TC970' => [ 'Le Pan', 'TC970', DeviceType::TABLET ], + 'TC970 (Wi-Fi)' => [ 'Le Pan', 'TC970', DeviceType::TABLET ], + 'Le Pan TC1010' => [ 'Le Pan', 'TC1010', DeviceType::TABLET ], + 'Le Pan TC1020' => [ 'Le Pan', 'TC1020', DeviceType::TABLET ], + 'LePanII' => [ 'Le Pan', 'II', DeviceType::TABLET ], + 'TC975' => [ 'Le Pan', 'III', DeviceType::TABLET ], + 'Le Pan S' => [ 'Le Pan', 'S', DeviceType::TABLET ], + 'LG-AN160' => [ 'LG', 'Fluid' ], + + 'LG-?AS[0-9]{3,3}!!' => [ + 'LGAS323' => [ 'LG', 'L70' ], + 'LG-AS323' => [ 'LG', 'L70' ], + 'LG-AS680' => [ 'LG', 'Optimus 2' ], + 'LG-AS695' => [ 'LG', 'Optimus Plus' ], + 'LG-AS730' => [ 'LG', 'Optimus Select' ], + 'LG-AS750' => [ 'LG', 'L70' ], + 'LG-AS780' => [ 'LG', 'Optimus F7' ], + 'LG-AS811' => [ 'LG', 'G4' ], + 'LG-AS840' => [ 'LG', 'Optimus Tag' ], + 'LG-AS855' => [ 'LG', 'Ignite' ], + 'LG-AS870' => [ 'LG', 'Optimus F5' ], + 'LG-AS876' => [ 'LG', 'L70' ], + 'LG-AS9(85|90)!' => [ 'LG', 'G3' ], + 'LGAS991' => [ 'LG', 'G4' ], + + 'LG-AS9(91)!' => [ 'LG', 'G4' ], + 'LGAS995' => [ 'LG', 'G Flex 2' ], + ], + + 'LG-?C[0-9]{3,3}!!' => [ + 'LG-C520' => [ 'LG', 'C520' ], + 'LG-C5(50|55)!' => [ 'LG', 'Optimus Chat' ], + 'LGC660!' => [ 'LG', 'Optimus Pro' ], + 'LG-C660!' => [ 'LG', 'Optimus Pro' ], + 'LG-C710!' => [ 'LG', 'Aloha' ], + 'LG-C729' => [ 'LG', 'DoublePlay' ], + 'LG-C800G' => [ 'LG', 'Eclypse' ], + ], + + 'LG-CX670' => [ 'LG', 'Optimus One' ], + + 'LG-?D[0-9]{3,3}!!' => [ + 'LG-D1(00|05|07)!' => [ 'LG', 'L20' ], + 'LG-D1(20|23|25|27)!' => [ 'LG', 'L30 Sporty' ], + 'LG-D1(50|57)!' => [ 'LG', 'L35' ], + 'LG-D1(60|65|70|75|80)!' => [ 'LG', 'L40' ], + 'LG-D2(13|21|27)!' => [ 'LG', 'L50 Sporty' ], + 'LG-D2(80|85)!' => [ 'LG', 'L65' ], + 'LG-D2(90|95)!' => [ 'LG', 'L Fino' ], + 'LG-D3(15|17)!' => [ 'LG', 'F70' ], + 'LG-D3(20|21|25|29|30)!' => [ 'LG', 'L70' ], + 'LGD321' => [ 'LG', 'L70' ], + 'LG-D3(30|31|35)!' => [ 'LG', 'L Bello' ], + 'LG-D3(32)!' => [ 'LG', 'L80+' ], + 'LG-D3(37)!' => [ 'LG', 'L Prime' ], + 'LG-D340!' => [ 'LG', 'L70 Tri' ], + 'LG-D3(70|73|75|80|85)!' => [ 'LG', 'L80' ], + 'LG-D3(90|92|93)!' => [ 'LG', 'F60' ], + 'LG-D4(00|05|10|15)!' => [ 'LG', 'L90' ], + 'LG-D486!' => [ 'LG', 'Wine Smart' ], + 'LGD500' => [ 'LG', 'Optimus F6' ], + 'LG-D5(00|05)!' => [ 'LG', 'Optimus F6' ], + 'LG-D520!' => [ 'LG', 'Optimus F3Q' ], + 'LG-D605!' => [ 'LG', 'Optimus L9 II' ], + 'LG-D6(10|18|20|25)!' => [ 'LG', 'G2 mini' ], + 'LGD618' => [ 'LG', 'G2 mini' ], + 'LG-D6(31)!' => [ 'LG', 'G3 Vista' ], + 'LG-D6(80|81|82|83|84)!' => [ 'LG', 'G Pro Lite' ], + 'LG-D6(85|86)!' => [ 'LG', 'G Pro Lite Dual' ], + 'LG-D6(90|93)!' => [ 'LG', 'G3 Stylus' ], + 'LG-D700!' => [ 'LG', 'Optimus L9' ], + 'LG-D722J!' => [ 'LG', 'G3 Beat' ], + 'LG-D7(22|24)!' => [ 'LG', 'G3 S' ], + 'LG-D7(23)!' => [ 'LG', 'G3 mini' ], + 'LG-D7(25|26|27)!' => [ 'LG', 'G3 Vigor' ], + 'LG-D7(28|29)!' => [ 'LG', 'G3 Beat' ], + 'LG-D8(00|01|02|03|05|06)!' => [ 'LG', 'G2' ], + 'LG-D8(20|21)!' => [ 'LG', 'Nexus 5' ], + 'LG-D8(30|37|38)!' => [ 'LG', 'G Pro 2' ], + 'LG-D8(50|51|52|55|56|58|59)!' => [ 'LG', 'G3' ], + 'LG-D8(57)!' => [ 'LG', 'Titan' ], + 'LG-D9(50|51|55|56|58|59)!' => [ 'LG', 'G Flex' ], + ], + + 'LG-DS1203' => [ 'LG', 'G2' ], + + 'LG-?E[0-9]{3,3}!!' => [ + 'LG-E400!' => [ 'LG', 'Optimus L3' ], + 'LG-E405!' => [ 'LG', 'Optimus L3 Dual' ], + 'LG-E4(10|11)!' => [ 'LG', 'Optimus L1 II' ], + 'LG-E4(15|20)!' => [ 'LG', 'Optimus L1 II Dual' ], + 'LG-E4(25|30|31)!' => [ 'LG', 'Optimus L3 II' ], + 'LG-E435!' => [ 'LG', 'Optimus L3 II Dual' ], + 'LG-E440!' => [ 'LG', 'Optimus L4 II' ], + 'LG-E445!' => [ 'LG', 'Optimus L4 II Dual' ], + 'LG-E4(50|51|60)!' => [ 'LG', 'Optimus L5 II' ], + 'LG-E455!' => [ 'LG', 'Optimus L5 II Dual' ], + 'LG-E465!' => [ 'LG', 'Optimus L4 II' ], + 'LG-E467!' => [ 'LG', 'Optimus L4 II Dual' ], + 'LG-E470!' => [ 'LG', 'Optimus L4 II Triple' ], + 'LG-E475!' => [ 'LG', 'Optimus L1 II Tri' ], + 'LG-E510!' => [ 'LG', 'Optimus Hub' ], + 'LG-E6(10|12|17)!' => [ 'LG', 'Optimus L5' ], + 'LGE610' => [ 'LG', 'Optimus L5' ], + 'LG-E6(14|15)!' => [ 'LG', 'Optimus L5 Dual' ], + 'LGE615F' => [ 'LG', 'Optimus L5 Dual' ], + 'LG-E720!' => [ 'LG', 'Optimus Chic' ], + 'LG-E730!' => [ 'LG', 'Optimus Sol' ], + 'LG-E805!' => [ 'LG', 'Optimus G2' ], + 'LG-E940!' => [ 'LG', 'Optimus G Pro' ], + 'LG-E960!' => [ 'LG', 'Nexus 4' ], + 'LG-E9(70|71|73|75|76|77|78|87)!' => [ 'LG', 'Optimus G' ], + 'LG-E9(80|81|85|86|88|89)!' => [ 'LG', 'Optimus G Pro' ], + ], + + 'LG-F[0-9]{3,3}!!' => [ + 'LG-F100!' => [ 'LG', 'Optimus Vu' ], + 'LG-F120!' => [ 'LG', 'Optimus LTE Tag' ], + 'LG-F160!' => [ 'LG', 'Optimus LTE II' ], + 'LG-F180!' => [ 'LG', 'Optimus G' ], + 'LG-F200!' => [ 'LG', 'Optimus Vu II' ], + 'LG-F220!' => [ 'LG', 'Optimus GK' ], + 'LG-F240!' => [ 'LG', 'Optimus G Pro' ], + 'LG-F260!' => [ 'LG', 'Optimus LTE III' ], + 'LG-F300!' => [ 'LG', 'Vu 3' ], + 'LG-F310!' => [ 'LG', 'GX' ], + 'LG-F320!' => [ 'LG', 'G2' ], + 'LG-F340!' => [ 'LG', 'G Flex' ], + 'LG-F350!' => [ 'LG', 'G Pro 2' ], + 'LG-F370!' => [ 'LG', 'F70' ], + 'LG-F390!' => [ 'LG', 'G2 mini' ], + 'LG-F400!' => [ 'LG', 'G3' ], + 'LG-F410!' => [ 'LG', 'G3 A' ], + 'LG-F430!' => [ 'LG', 'Gx2' ], + 'LG-F440!' => [ 'LG', 'ice cream smart' ], + 'LG-F460!' => [ 'LG', 'G3 Cat.6' ], + 'LG-F470!' => [ 'LG', 'G3 Beat' ], + 'LG-F480!' => [ 'LG', 'Wine Smart' ], + 'LG-F490!' => [ 'LG', 'G3 Screen' ], + 'LG-F500!' => [ 'LG', 'G4' ], + 'LG-F510!' => [ 'LG', 'G Flex 2' ], + 'LG-F520!' => [ 'LG', 'AKA' ], + 'LG-F540!' => [ 'LG', 'Volt' ], + 'LG-F560!' => [ 'LG', 'G Stylo' ], + 'LG-F570!' => [ 'LG', 'band Play' ], + 'LG-F580!' => [ 'LG', 'Gentle' ], + 'LG-F600!' => [ 'LG', 'V10' ], + 'LG-F610!' => [ 'LG', 'Wine Smart Jazz' ], + 'LG-F620!' => [ 'LG', 'Class' ], + 'LG-F640!' => [ 'LG', 'Volt S' ], + 'LG-F670!' => [ 'LG', 'K10' ], + 'LG-F700!' => [ 'LG', 'G5' ], + ], + + 'LG-GT540!' => [ 'LG', 'Optimus' ], + 'LG-GW620!' => [ 'LG', 'GW620 Eve' ], + + 'LG-H[0-9]{3,3}!!' => [ + 'LG-H2(20|21|22)!' => [ 'LG', 'Joy' ], + 'LG-H3(20|24|26)!' => [ 'LG', 'Leon' ], + 'LG-H3(40|42|45)!' => [ 'LG', 'Leon' ], + 'LG-H3(43)!' => [ 'LG', 'Risio' ], + 'LG-H410!' => [ 'LG', 'Wine Smart' ], + 'LG-H4(20|40|41)!' => [ 'LG', 'Spirit' ], + 'LG-H4(22|42)!' => [ 'LG', 'Volt' ], + 'LG-H4(43|45)!' => [ 'LG', 'Escape2' ], + 'LG-H5(00|02|20)!' => [ 'LG', 'Magna' ], + 'LG-H5(22)!' => [ 'LG', 'Prime Plus' ], + 'LG-H5(25)!' => [ 'LG', 'G4c' ], + 'LG-H5(40|42)!' => [ 'LG', 'G4 Stylus' ], + 'LG-H6(30|31|34|35|36)!' => [ 'LG', 'G Stylo' ], + 'LG-H650!' => [ 'LG', 'Zero' ], + 'LG-H7(31)!' => [ 'LG', 'G4 Vigor' ], + 'LG-H7(34|35|36)!' => [ 'LG', 'G4s' ], + 'LG-H7(40)!' => [ 'LG', 'G Vista 2' ], + 'LG-H7(78|79|88)!' => [ 'LG', 'AKA' ], + 'LG-H8(10|11|12|15|18|19)!' => [ 'LG', 'G4' ], + 'LG-H8(20|30|31|50|60)!' => [ 'LG', 'G5' ], + 'LG-H8(40|48)!' => [ 'LG', 'G5 SE' ], + 'LG-H9(50|55|59)!' => [ 'LG', 'G Flex 2' ], + 'LG-H9(00|01|60|61|62|68)!' => [ 'LG', 'V10' ], + ], + + 'LG-K[0-9]{3,3}!!' => [ + 'LG-K1(20|21|30)!' => [ 'LG', 'K4' ], + 'LG-K3(30|32|)!' => [ 'LG', 'K7' ], + 'LG-K4(10|20|30)!' => [ 'LG', 'K10' ], + 'LG-K5(00)!' => [ 'LG', 'X Screen' ], + 'LG-K5(20)!' => [ 'LG', 'Stylus 2' ], + 'LG-K5(35)!' => [ 'LG', 'Stylus 2 Plus' ], + ], + + 'LG-KH5200' => [ 'LG', 'Andro-1' ], + 'LG-KS1024' => [ 'LG', 'KS1024' ], + + 'LG-KU[0-9]{4,4}!!' => [ + 'LG-KU3700' => [ 'LG', 'Optimus One' ], + 'LG-KU5400!' => [ 'LG', 'PRADA 3.0' ], + 'LG-KU5900' => [ 'LG', 'Optimus Black' ], + 'LG-KU6900' => [ 'LG', 'Optimus Pad', DeviceType::TABLET ], + 'LG-KU8800' => [ 'LG', 'Optimus EX' ], + ], + + 'LG-?L[0-9]{2,3}[A-Z]!!' => [ + 'LG-L01F' => [ 'LG', 'G2' ], + 'LGL15G!' => [ 'LG', 'Sunrise' ], + 'LG-L15G' => [ 'LG', 'Sunrise' ], + 'LGL16C!' => [ 'LG', 'Lucky' ], + 'LGL17AG' => [ 'LG', 'Classic' ], + 'LGL21G!' => [ 'LG', 'Destiny' ], + 'LGL22C!' => [ 'LG', 'Power' ], + 'LGL25L' => [ 'LG', 'Optimus Quest' ], + 'LG-L25L' => [ 'LG', 'Optimus Quest' ], + 'LG-L30L' => [ 'LG', 'F70' ], + 'LGL31L!' => [ 'LG', 'Access' ], + 'LG-L31L' => [ 'LG', 'Access' ], + 'LGL33L!' => [ 'LG', 'Sunset' ], + 'LGL34C!' => [ 'LG', 'Optimus Fuel' ], + 'LG-L34C' => [ 'LG', 'Optimus Fuel' ], + 'LGL35G!' => [ 'LG', 'Optimus Logic' ], + 'LG-L38C!' => [ 'LG', 'Optimus Dynamic' ], + 'LGL38C!' => [ 'LG', 'Optimus Dynamic' ], + 'LGL39C!' => [ 'LG', 'Optimus Dynamic II' ], + 'LG-L40G' => [ 'LG', 'Optimus Extreme' ], + 'LGL41C!' => [ 'LG', 'Ultimate 2' ], + 'LG-L41C' => [ 'LG', 'Ultimate 2' ], + 'LG-L42G' => [ 'LG', 'L70' ], + 'LGL43AL!' => [ 'LG', 'K4' ], + 'LGL45C!' => [ 'LG', 'Optimus Net' ], + 'LGL55C!' => [ 'LG', 'Optimus Q' ], + 'LGL61AL!' => [ 'LG', 'K10' ], + 'LGL75C!' => [ 'LG', 'Optimus Zip' ], + 'LGL85C!' => [ 'LG', 'Optimus Black' ], + 'LGL86C!' => [ 'LG', 'Optimus Showtime' ], + 'LG-L95G!' => [ 'LG', 'L95G' ], + 'LGL96G' => [ 'LG', 'Ultimate' ], + 'LG-L160L' => [ 'LG', 'L160L' ], // Unknown + 'LGL996L!' => [ 'LG', 'G2' ], + ], + + 'LG-LG[0-9]{3,3}!!' => [ + 'LG-LG730' => [ 'LG', 'Venice' ], + 'LG-LG855' => [ 'LG', 'Marquee' ], + 'LG-LG870' => [ 'LG', 'Optimus F7' ], + ], + + 'LGLK430' => [ 'LG', 'G Pad F 7.0', DeviceType::TABLET ], + + 'LG-?LS[0-9]{3,3}!!' => [ + 'LG-LS620' => [ 'LG', 'Realm' ], + 'LGLS620' => [ 'LG', 'Realm' ], + 'LG-LS660' => [ 'LG', 'Tribute' ], + 'LGLS660' => [ 'LG', 'Tribute' ], + 'LGLS665' => [ 'LG', 'Tribute 2' ], + 'LG-LS670' => [ 'LG', 'Optimus S' ], + 'LGLS675' => [ 'LG', 'M1' ], + 'LG-LS685' => [ 'LG', 'Optimus Net' ], + 'LG-LS696' => [ 'LG', 'Elite' ], + 'LG-LS700' => [ 'LG', 'Optimus Slider' ], + 'LG-LS720' => [ 'LG', 'Optimus F3' ], + 'LGLS740' => [ 'LG', 'Volt' ], + 'LG-LS740' => [ 'LG', 'Volt' ], + 'LGLS751' => [ 'LG', 'Volt 2' ], + 'LGLS770' => [ 'LG', 'G Stylo' ], + 'LG-LS840' => [ 'LG', 'Viper' ], + 'LG-LS855' => [ 'LG', 'Marquee' ], + 'LG-LS860' => [ 'LG', 'Mach' ], + 'LGLS885' => [ 'LG', 'G3 Vigor' ], + 'LG-LS885' => [ 'LG', 'G3 Vigor' ], + 'LG-LS970' => [ 'LG', 'Optimus G' ], + 'LG-LS980' => [ 'LG', 'G2' ], + 'LGLS990' => [ 'LG', 'G3' ], + 'LG-LS990' => [ 'LG', 'G3' ], + 'LGLS991' => [ 'LG', 'G4' ], + 'LG-LS991' => [ 'LG', 'G4' ], + 'LGLS992' => [ 'LG', 'G5' ], + 'LG-LS995' => [ 'LG', 'G Flex' ], + 'LGLS996' => [ 'LG', 'G Flex 2' ], + 'LG-LS996' => [ 'LG', 'G Flex 2' ], + ], + + 'LG-LU[0-9]{4,4}!!' => [ + 'LG-LU3000' => [ 'LG', 'Optimus Mach' ], + 'LG-LU3100' => [ 'LG', 'Optimus Chic' ], + 'LG-LU3700' => [ 'LG', 'Optimus One' ], + 'LG-LU5400' => [ 'LG', 'PRADA 3.0' ], + 'LG-LU6200' => [ 'LG', 'Optimus LTE' ], + 'LG-LU6500' => [ 'LG', 'Optimus Q2' ], + 'LG-LU6800' => [ 'LG', 'Optimus Big' ], + 'LG-LU6900' => [ 'LG', 'Optimus Pad', DeviceType::TABLET ], + 'LG-LU8300' => [ 'LG', 'Optimus Pad LTE', DeviceType::TABLET ], + ], + + 'LG-LW690' => [ 'LG', 'Optimus C' ], + 'LG-LW770' => [ 'LG', 'Regard' ], + + 'LG-?MS[0-9]{3,3}!!' => [ + 'LGMS323' => [ 'LG', 'L70' ], + 'LG-MS323' => [ 'LG', 'L70' ], + 'LGMS330' => [ 'LG', 'M1' ], + 'LGMS345' => [ 'LG', 'Leon' ], + 'LGMS395' => [ 'LG', 'F60' ], + 'LG-MS415' => [ 'LG', 'L90' ], + 'LGMS500' => [ 'LG', 'Optimus F6' ], + 'LG-MS500' => [ 'LG', 'Optimus F6' ], + 'LGMS631' => [ 'LG', 'G Stylo' ], + 'LG-MS659' => [ 'LG', 'Optimus F3' ], + 'LGMS659' => [ 'LG', 'Optimus F3' ], + 'LG-MS690' => [ 'LG', 'Optimus M' ], + 'LGMS769' => [ 'LG', 'Optimus L9' ], + 'LG-MS770' => [ 'LG', 'Motion 4G' ], + 'LGMS770' => [ 'LG', 'Motion 4G' ], + 'LG-MS790' => [ 'LG', 'Optimus F3' ], + 'LG-MS840' => [ 'LG', 'Connect 4G' ], + 'LG-MS870' => [ 'LG', 'Spirit 4G' ], + 'LG-MS910' => [ 'LG', 'Esteem' ], + 'LG-MS695' => [ 'LG', 'Optimus M+' ], + ], + + 'LG-P[0-9]{3,3}!!' => [ + 'LG-P350!' => [ 'LG', 'Optimus Me' ], + 'LG-P355' => [ 'LG', 'P355' ], + 'LG-P490!' => [ 'LG', 'P490' ], // Unknown + 'LG-P5(00|03|04)!' => [ 'LG', 'Optimus One' ], + 'LG-P505!' => [ 'LG', 'Phoenix' ], + 'LG-P506' => [ 'LG', 'Thrive' ], + 'LG-P509' => [ 'LG', 'Optimus T' ], + 'LG-P6(55|59)!' => [ 'LG', 'Optimus F3' ], + 'LG-P6(90|92|99)!' => [ 'LG', 'Optimus Net' ], + 'LG-P693!' => [ 'LG', 'P693' ], + 'LG-P698!' => [ 'LG', 'Optimus Net Dual' ], + 'LG-P7(00|05|08)!' => [ 'LG', 'Optimus L7' ], + 'LG-P7(10|12|13|14)!' => [ 'LG', 'Optimus L7 II' ], + 'LG-P7(15|16)!' => [ 'LG', 'Optimus L7 II Dual' ], + 'LG-P720!' => [ 'LG', 'Optimus Chic' ], + 'LG-P725' => [ 'LG', 'Optimus 3D Max' ], + 'LG-P7(60|65|68|69|78)!' => [ 'LG', 'Optimus L9' ], + 'LG-P860' => [ 'LG', 'P860' ], + 'LG-P870!' => [ 'LG', 'Escape' ], + 'LG-P875!' => [ 'LG', 'Optimus F5' ], + 'LG-P880!' => [ 'LG', 'Optimus 4X HD' ], + 'LG-P895!' => [ 'LG', 'Optimus Vu' ], + 'LG-P920!' => [ 'LG', 'Optimus 3D' ], + 'LG-P9(25|29)!' => [ 'LG', 'Thrill' ], + 'LG-P930!' => [ 'LG', 'Nitro HD' ], + 'LG-P9(35|36)!' => [ 'LG', 'Optimus LTE' ], + 'LG-P940!' => [ 'LG', 'PRADA 3.0' ], + 'LG-P970!' => [ 'LG', 'Optimus Black' ], + 'LG-P990!' => [ 'LG', 'Optimus 2X Speed' ], + 'LG-P993' => [ 'LG', 'Optimus 2X' ], + ], + + 'LG-SU[0-9]{3,3}!!' => [ + 'LG-SU370' => [ 'LG', 'Optimus One' ], + 'LG-SU540' => [ 'LG', 'PRADA 3.0' ], + 'LG-SU640' => [ 'LG', 'Optimus LTE' ], + 'LG-SU660' => [ 'LG', 'Optimus 2X' ], + 'LG-SU760' => [ 'LG', 'Optimus 3D' ], + 'LG-SU870' => [ 'LG', 'Optimus 3D Cube' ], + 'LG-SU880' => [ 'LG', 'Optimus EX' ], + ], + + 'LG-SU-760' => [ 'LG', 'Optimus 3D' ], + 'LGUK410' => [ 'LG', 'G Pad 7.0', DeviceType::TABLET ], + 'LGUK932' => [ 'LG', 'G Pad II 10.1', DeviceType::TABLET ], + 'LG-UN350' => [ 'LG', 'UN350' ], + + 'LG-?US[0-9]{3,3}!!' => [ + 'LGUS550' => [ 'LG', 'Logos' ], + 'LG-US670' => [ 'LG', 'Optimus U' ], + 'LG-US730' => [ 'LG', 'Splendor' ], + 'LG-US780' => [ 'LG', 'Optimus F7' ], + 'LGUS990!' => [ 'LG', 'G3' ], + 'LG-US990' => [ 'LG', 'G3' ], + 'LGUS991!' => [ 'LG', 'G4' ], + 'LGUS995!' => [ 'LG', 'G Flex 2' ], + ], + + 'LG-V[0-9]{3,3}!!' => [ + 'LG-V4(00|10|11)!' => [ 'LG', 'G Pad 7.0', DeviceType::TABLET ], + 'LG-V4(80|90)!' => [ 'LG', 'G Pad 8.0', DeviceType::TABLET ], + 'LG-V4(95|96|97|99)!' => [ 'LG', 'G Pad F 8.0', DeviceType::TABLET ], + 'LG-V498!' => [ 'LG', 'G Pad II 8.0', DeviceType::TABLET ], + 'LG-V5(00|07)!' => [ 'LG', 'G Pad 8.3', DeviceType::TABLET ], + 'LG-V510!' => [ 'LG', 'G Pad 8.3 (Google Edition)', DeviceType::TABLET ], + 'LG-V525!' => [ 'LG', 'G Pad III 8.0', DeviceType::TABLET ], + 'LG-V607L' => [ 'LG', 'G Pad II 8.0', DeviceType::TABLET ], + 'LG-V700!' => [ 'LG', 'G Pad 10.1', DeviceType::TABLET ], + 'LG-V9(00|01)!' => [ 'LG', 'Optimus Pad', DeviceType::TABLET ], + 'LG-V9(05|09)!' => [ 'LG', 'Optimus G-Slate', DeviceType::TABLET ], + 'LG-V930' => [ 'LG', 'G Pad X 10.1', DeviceType::TABLET ], + 'LG-V9(35|40)!' => [ 'LG', 'G Pad II 10.1', DeviceType::TABLET ], + ], + + 'LG-VK[0-9]{3,3}!!' => [ + 'LG-VK410' => [ 'LG', 'G Pad 7.0', DeviceType::TABLET ], + 'LG-VK700' => [ 'LG', 'G Pad 10.1', DeviceType::TABLET ], + 'LG-VK810' => [ 'LG', 'G Pad 8.3', DeviceType::TABLET ], + 'LG-VK815' => [ 'LG', 'G Pad X 8.3', DeviceType::TABLET ], + ], + + 'LG-VN[0-9]{3,3}!!' => [ + 'LG-VN170' => [ 'LG', 'VN-170' ], // Unknown + 'LG-VN280' => [ 'LG', 'Extravert 2' ], + 'LG-VN360' => [ 'LG', 'Exalt' ], + ], + + 'LG-VM[0-9]{3,3}!!' => [ + 'LG-VM670' => [ 'LG', 'Optimus V' ], + 'LG-VM696' => [ 'LG', 'Optimus Elite' ], + 'LG-VM701' => [ 'LG', 'Optimus Slider' ], + 'LG-VM720' => [ 'LG', 'Optimus F5' ], + ], + + 'LG-VS[0-9]{3,3}!!' => [ + 'LG-VS410!' => [ 'LG', 'Optimus Zone' ], + 'LG-VS415!' => [ 'LG', 'Optimus Zone 2' ], // aka L40 + 'LG-VS450!' => [ 'LG', 'Optimus Exceed 2' ], // aka L70 + 'LG-VS660' => [ 'LG', 'Vortex' ], + 'LG-VS700!' => [ 'LG', 'Enlighten' ], + 'LG-VS740' => [ 'LG', 'Ally' ], + 'LG-VS810' => [ 'LG', 'Transpyre' ], + 'LG-VS840' => [ 'LG', 'Lucid' ], + 'LG-VS870' => [ 'LG', 'Lucid 2' ], + 'LG-VS876' => [ 'LG', 'Lucid 3' ], // aka F90 + 'LG-VS880' => [ 'LG', 'G3 Vista' ], + 'LG-VS890' => [ 'LG', 'Enact' ], + 'LG-VS910' => [ 'LG', 'Revolution' ], + 'LG-VS930' => [ 'LG', 'Spectrum II' ], + 'LG-VS950' => [ 'LG', 'Intuition' ], + 'LG-VS980!' => [ 'LG', 'G2' ], + 'LG-VS985' => [ 'LG', 'G3' ], + 'LG-VS999' => [ 'LG', 'G4' ], + ], + + 'LG-X[0-9]{3,3}!!' => [ + 'LG-X130!' => [ 'LG', 'L40' ], + 'LG-X132' => [ 'LG', 'L45' ], + 'LG-X1(35|40|45|47)!' => [ 'LG', 'L60' ], + 'LG-X137' => [ 'LG', 'L60i' ], + 'LG-X150' => [ 'LG', 'Bello 2' ], + 'LG-X1(55|60|65)!' => [ 'LG', 'Max' ], + 'LG-X1(70)!' => [ 'LG', 'Prime 2' ], + 'LG-X180!' => [ 'LG', 'Zone' ], + 'LG-X190' => [ 'LG', 'Ray' ], + 'LG-X210' => [ 'LG', 'K7' ], + 'LG-X220' => [ 'LG', 'K5' ], + ], + + 'lge-F160!' => [ 'LG', 'Optimus LTE II' ], + 'LGE-E988!' => [ 'LG', 'Optimus G Pro' ], + 'lgp-970' => [ 'LG', 'Optimus Black' ], + 'AS740' => [ 'LG', 'Axis' ], + 'AS870 4G' => [ 'LG', 'Optimus F5' ], + 'AS985' => [ 'LG', 'G3' ], + 'E900' => [ 'LG', 'Optimus 7' ], + 'GT540' => [ 'LG', 'Optimus' ], + 'GT540f' => [ 'LG', 'Optimus' ], + 'GW620' => [ 'LG', 'Eve' ], + 'KU9500' => [ 'LG', 'Optimus Z' ], + + 'LG[LSTV][0-9]{2,2}!!' => [ + 'LGL21' => [ 'LG', 'Optimus G LGL21', 'carrier' => 'au' ], + 'LGL22' => [ 'LG', 'isai LGL22', 'carrier' => 'au' ], + 'LGL23' => [ 'LG', 'G Flex LGL23', 'carrier' => 'au' ], + 'LGL24' => [ 'LG', 'isai FL LGL24', 'carrier' => 'au' ], + 'LGS01' => [ 'LG', 'Wine Smart LGS01', 'carrier' => 'J:COM' ], + 'LGV31' => [ 'LG', 'isai VL LGV31', 'carrier' => 'au' ], + 'LGV32' => [ 'LG', 'isai vivid LGV32', 'carrier' => 'au' ], + 'LGV33' => [ 'LG', 'Qua phone PX LGV33', 'carrier' => 'au' ], + 'LGT31' => [ 'LG', 'Qua tab PX LGT31', 'carrier' => 'au' ], + ], + + 'LU2300' => [ 'LG', 'Optimus Q' ], + 'LS670' => [ 'LG', 'Optimus S' ], + 'LS740' => [ 'LG', 'F90' ], // aka Volt + 'MS840 4G' => [ 'LG', 'Connect 4G' ], + 'P940' => [ 'LG', 'PRADA 3.0' ], + 'P990' => [ 'LG', 'Optimus 2X Speed' ], + + 'USCC-(LG)?US!!' => [ + 'USCC-US730' => [ 'LG', 'Splendor' ], + 'USCC-US760' => [ 'LG', 'Genesis' ], + 'USCC-US780' => [ 'LG', 'Optimus F7' ], + 'USCC-US855' => [ 'LG', 'Optimus Black' ], + 'USCC-LGUS990' => [ 'LG', 'G3' ], + ], + + 'VK410' => [ 'LG', 'G Pad 7.0', DeviceType::TABLET ], + 'VK700' => [ 'LG', 'G Pad 10.1', DeviceType::TABLET ], + 'VK810 4G' => [ 'LG', 'G Pad 8.3', DeviceType::TABLET ], + 'VK815' => [ 'LG', 'G Pad X 8.3', DeviceType::TABLET ], + 'VM670' => [ 'LG', 'Optimus V' ], + + 'VS[0-9]{3,3}!!' => [ + 'VS415PP' => [ 'LG', 'Optimus Zone 2' ], + 'VS425PP' => [ 'LG', 'Optimus Zone 3' ], + 'VS810PP' => [ 'LG', 'Transpyre' ], + 'VS820' => [ 'LG', 'Lancet' ], + 'VS840PP' => [ 'LG', 'Optimus Exceed' ], + 'VS840 4G' => [ 'LG', 'Lucid' ], + 'VS870 4G' => [ 'LG', 'Escape' ], + 'VS876' => [ 'LG', 'Lucid 3' ], // aka F90 + 'VS880' => [ 'LG', 'G3 Vista' ], + 'VS880PP' => [ 'LG', 'G3 Vista' ], + 'VS890 4G' => [ 'LG', 'Enact' ], + 'VS900-4G' => [ 'LG', 'Enlighten' ], + 'VS910 4G' => [ 'LG', 'Revolution 4G' ], + 'VS920 4G' => [ 'LG', 'Spectrum' ], + 'VS930 4G' => [ 'LG', 'Spectrum 2' ], + 'VS950 4G' => [ 'LG', 'Intuition' ], + 'VS980 4G' => [ 'LG', 'G2' ], + 'VS985 4G' => [ 'LG', 'G3' ], + 'VS986' => [ 'LG', 'G4' ], + 'VS990' => [ 'LG', 'V10' ], + ], + + 'L-0[0-9][A-Z]!!' => [ + 'L-01D' => [ 'LG', 'Optimus LTE L-01D', 'carrier' => 'DoCoMo' ], + 'L-01E' => [ 'LG', 'Optimus G L-01E', 'carrier' => 'DoCoMo' ], + 'L-01F' => [ 'LG', 'G2 L-01F', 'carrier' => 'DoCoMo' ], + 'L-02D' => [ 'LG', 'PRADA phone L-02D', 'carrier' => 'DoCoMo' ], + 'L-02E' => [ 'LG', 'Optimus LIFE L-02E', 'carrier' => 'DoCoMo' ], + 'L-02F' => [ 'LG', 'WiFi STATION L-02F', 'carrier' => 'DoCoMo' ], + 'L-04C' => [ 'LG', 'Optimus chat L-04C', 'carrier' => 'DoCoMo' ], + 'L-04E' => [ 'LG', 'Optimus G Pro L-04E', 'carrier' => 'DoCoMo' ], + 'L-05D' => [ 'LG', 'Optimus it L-05D', 'carrier' => 'DoCoMo' ], + 'L-05E' => [ 'LG', 'Optimus it L-05E', 'carrier' => 'DoCoMo' ], + 'L-06C' => [ 'LG', 'Optimus Pad L-06C', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + 'L-06D' => [ 'LG', 'Optimus Vu L-06D', 'carrier' => 'DoCoMo' ], + 'L-06DJOJO' => [ 'LG', 'JOJO L-06D', 'carrier' => 'DoCoMo' ], + 'L-07C' => [ 'LG', 'Optimus bright L-07C', 'carrier' => 'DoCoMo' ], + ], + + '[0-9]0[0-9]LG!!' => [ + '401LG' => [ 'LG', '401LG', 'carrier' => 'Softbank' ], // Unknown + '402LG' => [ 'LG', 'Spray 402LG', 'carrier' => 'Y! Mobile' ], + ], + + 'LG!!' => [ + 'LG-Eve' => [ 'LG', 'Eve' ], + 'LG-G2' => [ 'LG', 'G2' ], + 'LG-G3' => [ 'LG', 'G3' ], + 'LG-G3 D855' => [ 'LG', 'G3' ], + 'LG-Optimus One P500' => [ 'LG', 'Optimus One' ], + 'LG-Optimus 2X' => [ 'LG', 'Optimus 2X' ], + 'LG-GT540 Optimus' => [ 'LG', 'Optimus' ], + 'LG-Optimus' => [ 'LG', 'Optimus' ], + 'LG-Optimus Black' => [ 'LG', 'Optimus Black' ], + 'LG-OptimusG' => [ 'LG', 'Optimus G' ], + 'LG-Optimus G' => [ 'LG', 'Optimus G' ], + 'LG-gee' => [ 'LG', 'Optimus G' ], + 'LG-Optimus G Pro' => [ 'LG', 'Optimus G Pro' ], + 'LG-G PRO' => [ 'LG', 'Optimus G Pro' ], + 'LG-Optimus GK' => [ 'LG', 'Optimus GK' ], + 'LG-Optimus L3!' => [ 'LG', 'Optimus L3' ], + 'LG-Optimus LTE2' => [ 'LG', 'Optimus LTE2' ], + 'LG-Optimus Net' => [ 'LG', 'Optimus Net' ], + 'LG-Optimus One' => [ 'LG', 'Optimus One' ], + 'LG-Optimus V' => [ 'LG', 'Optimus V' ], + 'LG-OPTIMUS-L5!' => [ 'LG', 'Optimus L7' ], + 'LG-optimus L7' => [ 'LG', 'Optimus L7' ], + 'LG-Swift L9' => [ 'LG', 'Optimus L9' ], + 'LG-OPTIMUS HD LTE' => [ 'LG', 'Optimus HD' ], + 'LG-OPTIMUS LTE HD' => [ 'LG', 'Optimus HD' ], + 'LG-Optimus Pad L-06C' => [ 'LG', 'Optimus Pad', DeviceType::TABLET ], + 'LG-vortex' => [ 'LG', 'Vortex' ], + ], + + 'Ally' => [ 'LG', 'Ally' ], + + 'Optimus!!' => [ + 'Optimus' => [ 'LG', 'Optimus' ], + 'OptimusBlack' => [ 'LG', 'Optimus Black' ], + 'Optimus G' => [ 'LG', 'Optimus G' ], + 'Optimus G Pro' => [ 'LG', 'Optimus G Pro' ], + 'Optimus Me' => [ 'LG', 'Optimus Me' ], + 'optimus me p350' => [ 'LG', 'Optimus Me' ], + 'Optimus Net' => [ 'LG', 'Optimus Net' ], + 'Optimus One' => [ 'LG', 'Optimus One' ], + 'Optimus Pro' => [ 'LG', 'Optimus Pro' ], + 'Optimus 2X' => [ 'LG', 'Optimus 2X' ], + 'Optimus 2x' => [ 'LG', 'Optimus 2X' ], + 'Optimus 4X HD' => [ 'LG', 'Optimus 4X HD' ], + 'OptimusX4HD' => [ 'LG', 'Optimus 4X HD' ], + 'Optimus4XHD' => [ 'LG', 'Optimus 4X HD' ], + 'Optimusx4' => [ 'LG', 'Optimus X4' ], + ], + + 'IS11LG' => [ 'LG', 'Optimus X IS11LG', 'carrier' => 'au' ], + 'Vortex' => [ 'LG', 'Vortex' ], + 'LDK-ICK v1.4' => [ 'LG', 'Esteem' ], + 'Prada 3.0' => [ 'LG', 'PRADA 3.0' ], + + 'LG-Google TV!!' => [ + 'LG-Google TV' => [ 'LG', 'Android TV', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'LG-Google TV TV' => [ 'LG', 'Android TV', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'LG-Google TV G3' => [ 'LG', 'Android TV', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'LG-Google TV G3 KR' => [ 'LG', 'Android TV', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'LG-Google TV G3 TV' => [ 'LG', 'Android TV', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'LG-Google TV G3 KR TV' => [ 'LG', 'Android TV', DeviceType::TELEVISION, Flag::GOOGLETV ], + ], + + 'LG-ANDROID MINI BOX' => [ 'LG', 'Android Mini-Box', DeviceType::TELEVISION ], + 'SH940C-LN' => [ 'LG', 'Smartbox HD', DeviceType::TELEVISION ], + 'SH940C-LN TV' => [ 'LG', 'Smartbox HD', DeviceType::TELEVISION ], + 'LAP250U' => [ 'LG', 'U+ tv G', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'LAP255U' => [ 'LG', 'U+ tv G', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'TI320-DU' => [ 'LG', 'U+ tv G', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'TI320-DU TV' => [ 'LG', 'U+ tv G', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'ST940I-UP' => [ 'LG', 'U+ tv G 4K', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'WA-U420D' => [ 'LG', 'U+ tvLINK', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'SFR-G8800' => [ 'LG', 'SFR-G8800', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'SFR-G8800 TV' => [ 'LG', 'SFR-G8800', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'E731' => [ 'Logicom', 'E731', DeviceType::TABLET ], + 'E812' => [ 'Logicom', 'E812', DeviceType::TABLET ], + 'E912' => [ 'Logicom', 'E912', DeviceType::TABLET ], + 'E1031' => [ 'Logicom', 'E1031', DeviceType::TABLET ], + 'TAB950' => [ 'Logicom', 'TAB950', DeviceType::TABLET ], + 'TAB1062' => [ 'Logicom', 'TAB1062', DeviceType::TABLET ], + 'aTab9.7 IPS' => [ 'M-Tech', 'aTab 9.7', DeviceType::TABLET ], + 'CRONO 22' => [ 'Majestic', 'Chrono 22' ], + 'TAB192' => [ 'Majestic', 'TAB-192', DeviceType::TABLET ], + + 'Malata!!' => [ + 'MALATA I5' => [ 'Malata', 'I5' ], + 'MALATA I8' => [ 'Malata', 'I8' ], + 'MALATA I10' => [ 'Malata', 'I10' ], + 'MALATA I50' => [ 'Malata', 'I50' ], + 'MALATA I60' => [ 'Malata', 'I60' ], + 'MALATA TD60' => [ 'Malata', 'TD60' ], + 'MALATA TD95' => [ 'Malata', 'TD95' ], + 'MALATA S501' => [ 'Malata', 'S501' ], + 'Malata SMBA1002' => [ 'Malata', 'Tablet SMB-A1002', DeviceType::TABLET ], + 'Malata SMBA9701' => [ 'Malata', 'Tablet SMB-A9701', DeviceType::TABLET ], + ], + + 'T6' => [ 'Malata', 'Zpad T6', DeviceType::TABLET ], + + 'MID[0-9]!!' => [ + 'MID05V2' => [ 'Manta', 'Power Tab', DeviceType::TABLET ], + 'MID06N' => [ 'Manta', 'Power Tab X', DeviceType::TABLET ], + 'MID701' => [ 'Manta', 'Power Tab Basic', DeviceType::TABLET ], + 'MID704' => [ 'Manta', 'Power Tab 7', DeviceType::TABLET ], + 'MID705' => [ 'Manta', 'Power Tab', DeviceType::TABLET ], + 'MID706A' => [ 'Manta', 'Duo Power 7', DeviceType::TABLET ], + 'MID801' => [ 'Manta', 'Duo Power 8 HD', DeviceType::TABLET ], + 'MID802' => [ 'Manta', 'Duo Power 8 HD', DeviceType::TABLET ], + 'MID9701' => [ 'Manta', 'Duo Power 9.7', DeviceType::TABLET ], + 'MID9702' => [ 'Manta', 'Duo Power 9.7 HD', DeviceType::TABLET ], + 'MID1001' => [ 'Manta', 'Power Tab 10.1 HD', DeviceType::TABLET ], + ], + + 'Masstel!!' => [ + 'Masstel M11' => [ 'Masstel', 'M11' ], + 'Masstel-M11' => [ 'Masstel', 'M11' ], + 'Masstel M15' => [ 'Masstel', 'M15' ], + 'Masstel M25' => [ 'Masstel', 'M25' ], + 'Masstel M120' => [ 'Masstel', 'M120' ], + 'Masstel M250' => [ 'Masstel', 'M250' ], + 'Masstel M320' => [ 'Masstel', 'M320' ], + 'Masstel Tab 700' => [ 'Masstel', 'Tab 700', DeviceType::TABLET ], + 'Masstel Tab 720' => [ 'Masstel', 'Tab 720', DeviceType::TABLET ], + 'Masstel Tab 720i' => [ 'Masstel', 'Tab 720i', DeviceType::TABLET ], + 'Masstel Tab 740' => [ 'Masstel', 'Tab 740', DeviceType::TABLET ], + 'Masstel Tab 750' => [ 'Masstel', 'Tab 750', DeviceType::TABLET ], + 'Masstel Tab 840' => [ 'Masstel', 'Tab 840', DeviceType::TABLET ], + 'Masstel Tab 850' => [ 'Masstel', 'Tab 850', DeviceType::TABLET ], + ], + + 'MASTONE!!' => [ + 'MASTONE G3' => [ 'Mastone', 'G3' ], + 'MASTONE G4' => [ 'Mastone', 'G4' ], + 'MASTONE G9' => [ 'Mastone', 'G9' ], + 'MASTONE G13' => [ 'Mastone', 'G13' ], + 'MASTONE G15' => [ 'Mastone', 'G15' ], + 'MASTONE W16' => [ 'Mastone', 'W16' ], + ], + + 'M-270' => [ 'Maylong', 'M-270', DeviceType::TABLET ], + 'T-200' => [ 'Maylong', 'T-200', DeviceType::TABLET ], + 'M70' => [ 'Maxsun', 'M70', DeviceType::TABLET ], + + 'Maxtron!!' => [ + 'Maxtron AMOR â…¡' => [ 'Maxtron', 'Amor 2' ], + 'Maxtron Diamond' => [ 'Maxtron', 'Diamond' ], + 'Maxtron Venus' => [ 'Maxtron', 'Venus' ], + 'Maxtron T1' => [ 'Maxtron', 'T1', DeviceType::TABLET ], + ], + + 'M785' => [ 'Mecer', 'Xpress Smartlife M785', DeviceType::TABLET ], + '800P31C' => [ 'Mecer', 'Xpress Smartlife 800P31C', DeviceType::TABLET ], + 'X1010' => [ 'Mecer', 'X1010', DeviceType::TABLET ], + + 'M\-PP!!' => [ + 'M-PPxG400' => [ 'Mediacom', 'PhonePad Duo G400' ], + 'M-PPAG500' => [ 'Mediacom', 'PhonePad Duo G500' ], + 'M-PPBG500' => [ 'Mediacom', 'PhonePad Duo G500' ], + 'M-PPCG500' => [ 'Mediacom', 'PhonePad Duo G500' ], + 'M-PPxG501' => [ 'Mediacom', 'PhonePad Duo G501' ], + 'M-PP2G530' => [ 'Mediacom', 'PhonePad Duo G530' ], + 'M-PPAG550' => [ 'Mediacom', 'PhonePad Duo G550' ], + 'M-PPG700' => [ 'Mediacom', 'PhonePad Duo G700' ], + 'M-PPG702' => [ 'Mediacom', 'PhonePad Duo G702' ], + 'M-PPxS470' => [ 'Mediacom', 'PhonePad Duo S470' ], + 'M-PP2S500' => [ 'Mediacom', 'PhonePad Duo S500' ], + 'M-PP2S500B' => [ 'Mediacom', 'PhonePad Duo S500' ], + 'M-PP2S500C' => [ 'Mediacom', 'PhonePad Duo S500' ], + 'M-PPxS501' => [ 'Mediacom', 'PhonePad Duo S501' ], + 'M-PPxS531' => [ 'Mediacom', 'PhonePad Duo S531' ], + 'M-PP2S550' => [ 'Mediacom', 'PhonePad Duo S550' ], + 'M-PPxS551U' => [ 'Mediacom', 'PhonePad Duo S551' ], + 'M-PP2S650' => [ 'Mediacom', 'PhonePad Duo S650' ], + 'M-PP2S650C' => [ 'Mediacom', 'PhonePad Duo S650' ], + 'M-PPAX470U' => [ 'Mediacom', 'PhonePad Duo X470' ], + 'M PPAX510U' => [ 'Mediacom', 'PhonePad Duo X510' ], + 'M-PPxX520U' => [ 'Mediacom', 'PhonePad Duo X520' ], + ], + + 'M\-MP!!' => [ + 'M-MP5303G' => [ 'Mediacom', 'SmartPad Mini Mobile', DeviceType::TABLET ], + 'M-MP705I' => [ 'Mediacom', 'SmartPad 705i', DeviceType::TABLET ], + 'M-MP706I' => [ 'Mediacom', 'SmartPad 706i', DeviceType::TABLET ], + 'M-MP707i' => [ 'Mediacom', 'SmartPad 707i', DeviceType::TABLET ], + 'M-MP711i' => [ 'Mediacom', 'SmartPad 711i', DeviceType::TABLET ], + 'M-MP715I' => [ 'Mediacom', 'SmartPad 715i', DeviceType::TABLET ], + 'M-MP720I' => [ 'Mediacom', 'SmartPad 720i', DeviceType::TABLET ], + 'M-MP722I' => [ 'Mediacom', 'SmartPad 722i', DeviceType::TABLET ], + 'M-MP815I' => [ 'Mediacom', 'SmartPad 815i', DeviceType::TABLET ], + 'M-MP855i' => [ 'Mediacom', 'SmartPad 855i', DeviceType::TABLET ], + 'M-MP860S2' => [ 'Mediacom', 'SmartPad 860 S2', DeviceType::TABLET ], + 'M-MP85S23G' => [ 'Mediacom', 'SmartPad 875 S2', DeviceType::TABLET ], + 'M-MP875S2' => [ 'Mediacom', 'SmartPad 875 S2', DeviceType::TABLET ], + 'M-MP917I' => [ 'Mediacom', 'SmartPad 917i', DeviceType::TABLET ], + 'M-MP927I' => [ 'Mediacom', 'SmartPad 927i', DeviceType::TABLET ], + 'M-MP940M' => [ 'Mediacom', 'SmartPad 940', DeviceType::TABLET ], + 'M-MP1010i' => [ 'Mediacom', 'SmartPad 1010i', DeviceType::TABLET ], + 'M-MP102S2B' => [ 'Mediacom', 'SmartPad 102 S2', DeviceType::TABLET ], + 'M-MP102S2W' => [ 'Mediacom', 'SmartPad 102 S2', DeviceType::TABLET ], + 'M-MP1040S2' => [ 'Mediacom', 'SmartPad 10.1 S2', DeviceType::TABLET ], + 'M-MP10S4' => [ 'Mediacom', 'SmartPad 10.1 S4', DeviceType::TABLET ], + 'M-MP12S4' => [ 'Mediacom', 'SmartPad 10.1 S4', DeviceType::TABLET ], + 'M-MP1040M' => [ 'Mediacom', 'SmartPad 10.1 HD S4', DeviceType::TABLET ], + 'M-MP1040MC' => [ 'Mediacom', 'SmartPad 10.1 HD S4', DeviceType::TABLET ], + 'M-MP710GO' => [ 'Mediacom', 'SmartPad 7.0 Go', DeviceType::TABLET ], + 'M-MP720GO' => [ 'Mediacom', 'SmartPad 7.0 Go', DeviceType::TABLET ], + 'M-MP726GOx' => [ 'Mediacom', 'SmartPad 7.0 Go', DeviceType::TABLET ], + 'M-MP740GOx' => [ 'Mediacom', 'SmartPad 7.0 Go', DeviceType::TABLET ], + 'M-MP720M' => [ 'Mediacom', 'SmartPad 7.0 Mobile', DeviceType::TABLET ], + 'M-MP721M' => [ 'Mediacom', 'SmartPad 7.0 Mobile', DeviceType::TABLET ], + 'M-MP722M' => [ 'Mediacom', 'SmartPad 7.0 Mobile', DeviceType::TABLET ], + 'M-MP75S23G' => [ 'Mediacom', 'SmartPad 7.0 S2', DeviceType::TABLET ], + 'M-MP7S2A3G' => [ 'Mediacom', 'SmartPad 7.0 S2', DeviceType::TABLET ], + 'M-MP7S2B3G' => [ 'Mediacom', 'SmartPad 7.0 S2', DeviceType::TABLET ], + 'M-MP7S2D3G' => [ 'Mediacom', 'SmartPad 7.0 S2', DeviceType::TABLET ], + 'M-MP7S2K3G' => [ 'Mediacom', 'SmartPad 7.0 S2', DeviceType::TABLET ], + 'M-MP7S4A3G' => [ 'Mediacom', 'SmartPad 7.0 S4', DeviceType::TABLET ], + 'M-MP840M' => [ 'Mediacom', 'SmartPad 8.0 Mobile', DeviceType::TABLET ], + 'M-MP842M' => [ 'Mediacom', 'SmartPad 8.0 Mobile', DeviceType::TABLET ], + 'M-MP876S2' => [ 'Mediacom', 'SmartPad 8.0 S2', DeviceType::TABLET ], + 'M-MP8S23G' => [ 'Mediacom', 'SmartPad 8.0 S2', DeviceType::TABLET ], + 'M-MP8S2A3G' => [ 'Mediacom', 'SmartPad 8.0 S2', DeviceType::TABLET ], + 'M-MP8S2B3G' => [ 'Mediacom', 'SmartPad 8.0 S2', DeviceType::TABLET ], + 'M-MP82S4' => [ 'Mediacom', 'SmartPad 8.0 S4', DeviceType::TABLET ], + 'M-MP84S4' => [ 'Mediacom', 'SmartPad 8.0 S4', DeviceType::TABLET ], + 'M-MP8S4A3G' => [ 'Mediacom', 'SmartPad 8.0 S4', DeviceType::TABLET ], + 'M-MP8S4B3G' => [ 'Mediacom', 'SmartPad 8.0 S4', DeviceType::TABLET ], + 'M-MP8PA3G' => [ 'Mediacom', 'SmartPad 8.0 HD Pro', DeviceType::TABLET ], + 'M-MP9S4A3G' => [ 'Mediacom', 'SmartPad 9.7 S4', DeviceType::TABLET ], + 'M-MP980S4' => [ 'Mediacom', 'SmartPad 9.7 HD S4', DeviceType::TABLET ], + 'M-MP99S4' => [ 'Mediacom', 'SmartPad 9.7 HD S4', DeviceType::TABLET ], + 'M-MP101S2' => [ 'Mediacom', 'SmartPad 10.1 S2', DeviceType::TABLET ], + 'M-MP1041S2' => [ 'Mediacom', 'SmartPad 10.1 S2', DeviceType::TABLET ], + 'M-MP1051S2' => [ 'Mediacom', 'SmartPad 10.1 S2', DeviceType::TABLET ], + 'M-MP1S2A3G' => [ 'Mediacom', 'SmartPad 10.1 S2', DeviceType::TABLET ], + 'M-MP1S4A3G' => [ 'Mediacom', 'SmartPad 10.1 S4', DeviceType::TABLET ], + 'M-MP1S4B3G' => [ 'Mediacom', 'SmartPad 10.1 S4', DeviceType::TABLET ], + 'M-MP10PA' => [ 'Mediacom', 'SmartPad 10.1 HD Pro', DeviceType::TABLET ], + 'M-MP10PA3G' => [ 'Mediacom', 'SmartPad 10.1 HD Pro', DeviceType::TABLET ], + 'M-MPI7A3G' => [ 'Mediacom', 'SmartPad i7', DeviceType::TABLET ], + ], + + 'M\-IPRO!!' => [ + 'M-IPRO110B' => [ 'Mediacom', 'SmartPad 8.0 HD iPro110', DeviceType::TABLET ], + 'M-IPRO800B' => [ 'Mediacom', 'SmartPad 8.0 HD iPro800', DeviceType::TABLET ], + 'M-IPRO810B' => [ 'Mediacom', 'SmartPad 8.0 HD iPro810', DeviceType::TABLET ], + 'M-IPRO810W' => [ 'Mediacom', 'SmartPad 8.0 HD iPro810', DeviceType::TABLET ], + ], + + 'MP[0-9]{3,3}C!!' => [ + 'MP705C' => [ 'Mediacom', 'SmartPad 705c', DeviceType::TABLET ], + 'MP810C' => [ 'Mediacom', 'SmartPad 810c', DeviceType::TABLET ], + 'MP907C' => [ 'Mediacom', 'SmartPad 907c', DeviceType::TABLET ], + ], + + 'STM[0-9]{3,3}H!!' => [ + 'STM712HCZ' => [ 'Mediacom', 'SmartPad 712c', DeviceType::TABLET ], + 'STM722HC' => [ 'Mediacom', 'SmartPad 722c', DeviceType::TABLET ], + 'STM722HCZ' => [ 'Mediacom', 'SmartPad 722c', DeviceType::TABLET ], + 'STM803HC' => [ 'Mediacom', 'SmartPad 810c', DeviceType::TABLET ], + ], + + 'SmartPad!!' => [ + 'SmartPad7503G' => [ 'Mediacom', 'SmartPad 750', DeviceType::TABLET ], + 'SmartPad810c' => [ 'Mediacom', 'SmartPad 810c', DeviceType::TABLET ], + 'SmartPad 852i' => [ 'Mediacom', 'SmartPad 825i', DeviceType::TABLET ], + 'SmartPad870' => [ 'Mediacom', 'SmartPad 870 S2', DeviceType::TABLET ], + 'Smartpad 910i aka Teclast A10T' => [ 'Mediacom', 'SmartPad 910i', DeviceType::TABLET ], + 'SmartPad 95s23G' => [ 'Mediacom', 'SmartPad 950 S2', DeviceType::TABLET ], + 'SmartPad970s2' => [ 'Mediacom', 'SmartPad 970 S2', DeviceType::TABLET ], + 'SmartPad970s23G' => [ 'Mediacom', 'SmartPad 970 S2', DeviceType::TABLET ], + 'SmartPad1010i' => [ 'Mediacom', 'SmartPad 1010i', DeviceType::TABLET ], + 'SmartPad 85S23G' => [ 'Mediacom', 'SmartPad 8.0 S2', DeviceType::TABLET ], + ], + + 'Mediacom 810C' => [ 'Mediacom', 'SmartPad 810c', DeviceType::TABLET ], + 'Xteam Smartpad 810c' => [ 'Mediacom', 'SmartPad 810c', DeviceType::TABLET ], + 'Xteam 4.8 Smartpad 810c' => [ 'Mediacom', 'SmartPad 810c', DeviceType::TABLET ], + '932i' => [ 'Mediacom', 'SmartPad 932i', DeviceType::TABLET ], + + 'MT70[0-9]{2,2}!!' => [ + 'MT7000' => [ 'Mediadroid', 'MASTER-MID GPS', DeviceType::TABLET ], + 'MT7001' => [ 'Mediadroid', 'ENGAGE HQ PRO', DeviceType::TELEVISION ], + 'MT7002' => [ 'Mediadroid', 'ENGAGE HQ', DeviceType::TELEVISION ], + 'MT7003' => [ 'Mediadroid', 'IMPERIUS' ], + 'MT7004' => [ 'Mediadroid', 'CASSIUS', DeviceType::TABLET ], + 'MT7005' => [ 'Mediadroid', 'IMPERIUS AERO' ], + 'MT7005' => [ 'Mediadroid', 'IMPERIUS 4.3 HQ' ], + 'MT7007' => [ 'Mediadroid', 'IMPERIUS II' ], + 'MT7008' => [ 'Mediadroid', 'IMPERIUS N3XT' ], + 'MT7009' => [ 'Mediadroid', 'IMPERIUS SEVEN 3G', DeviceType::TABLET ], + 'MT7010' => [ 'Mediadroid', 'IMPERIUS TAB 10 LT', DeviceType::TABLET ], + 'MT7011' => [ 'Mediadroid', 'IMPERIUS TAB 10', DeviceType::TABLET ], + 'MT7012' => [ 'Mediadroid', 'IMPERIUS TAB 10 3G', DeviceType::TABLET ], + 'MT7013' => [ 'Mediadroid', 'IMPERIUS EN3RGY' ], + 'MT7014' => [ 'Mediadroid', 'IMPERIUS AERO SLIM' ], + 'MT7015' => [ 'Mediadroid', 'IMPERIUS MINI' ], + 'MT7017' => [ 'Mediadroid', 'IMPERIUS ALPHA' ], + ], + + 'MTK6516' => [ 'Mediatek', 'MTK6516' ], + + '(MEDION|(MD )?LIFETAB)!!' => [ + 'MEDION Smartphone LIFE E3501' => [ 'Medion', 'Life E3501' ], + 'MEDION E4001' => [ 'Medion', 'E4001' ], + 'MEDION E4002' => [ 'Medion', 'E4002' ], + 'MEDION E4005' => [ 'Medion', 'E4005' ], + 'MEDION E4502' => [ 'Medion', 'E4502' ], + 'MEDION E4503' => [ 'Medion', 'E4503' ], + 'MEDION E4506' => [ 'Medion', 'E4506' ], + 'LIFETAB E7310' => [ 'Medion', 'Lifetab E7310', DeviceType::TABLET ], + 'LIFETAB E7312' => [ 'Medion', 'Lifetab E7312', DeviceType::TABLET ], + 'LIFETAB E7313' => [ 'Medion', 'Lifetab E7313', DeviceType::TABLET ], + 'LIFETAB E7316' => [ 'Medion', 'Lifetab E7316', DeviceType::TABLET ], + 'LIFETAB E723X' => [ 'Medion', 'Lifetab E723X', DeviceType::TABLET ], + 'LIFETAB E732X' => [ 'Medion', 'Lifetab E732X', DeviceType::TABLET ], + 'LIFETAB E733X' => [ 'Medion', 'Lifetab E733X', DeviceType::TABLET ], + 'LIFETAB E10310' => [ 'Medion', 'Lifetab E10310', DeviceType::TABLET ], + 'LIFETAB E10312' => [ 'Medion', 'Lifetab E10312', DeviceType::TABLET ], + 'LIFETAB E10316' => [ 'Medion', 'Lifetab E10316', DeviceType::TABLET ], + 'LIFETAB E10320' => [ 'Medion', 'Lifetab E10320', DeviceType::TABLET ], + 'LIFETAB P733X' => [ 'Medion', 'Lifetab P733X', DeviceType::TABLET ], + 'LIFETAB P831X' => [ 'Medion', 'Lifetab P831X', DeviceType::TABLET ], + 'LIFETAB P831X.2' => [ 'Medion', 'Lifetab P831X', DeviceType::TABLET ], + 'LIFETAB P891X' => [ 'Medion', 'Lifetab P891X', DeviceType::TABLET ], + 'LIFETAB P1034X' => [ 'Medion', 'Lifetab P1034X', DeviceType::TABLET ], + 'LIFETAB S7316' => [ 'Medion', 'Lifetab S7316', DeviceType::TABLET ], + 'LIFETAB S732X' => [ 'Medion', 'Lifetab S732X', DeviceType::TABLET ], + 'LIFETAB S785X' => [ 'Medion', 'Lifetab S785X', DeviceType::TABLET ], + 'LIFETAB S786X' => [ 'Medion', 'Lifetab S786X', DeviceType::TABLET ], + 'LIFETAB S831X' => [ 'Medion', 'Lifetab S831X', DeviceType::TABLET ], + 'LIFETAB S9512' => [ 'Medion', 'Lifetab S9512', DeviceType::TABLET ], + 'LIFETAB S9714' => [ 'Medion', 'Lifetab S9714', DeviceType::TABLET ], + 'LIFETAB S1033X' => [ 'Medion', 'Lifetab S1033X', DeviceType::TABLET ], + 'LIFETAB S1034X' => [ 'Medion', 'Lifetab S1034X', DeviceType::TABLET ], + 'LIFETAB S1036X' => [ 'Medion', 'Lifetab S1036X', DeviceType::TABLET ], + 'MEDION LIFE P4012' => [ 'Medion', 'Life P4012' ], + 'MEDION P4013' => [ 'Medion', 'Life P4013' ], + 'MEDION-P4013' => [ 'Medion', 'Life P4013' ], + 'MEDION LIFE P4310' => [ 'Medion', 'Life P4310' ], + 'MEDION P5001' => [ 'Medion', 'Life P5001' ], + 'MEDION X4701' => [ 'Medion', 'X4701' ], + 'MEDION X5004' => [ 'Medion', 'X5004' ], + 'MEDION X5020' => [ 'Medion', 'X5020' ], + 'LIFETAB P9514' => [ 'Medion', 'Lifetab P9514', DeviceType::TABLET ], + 'MD LIFETAB P9516' => [ 'Medion', 'Lifetab P9516', DeviceType::TABLET ], + ], + + 'MEEG!!' => [ + 'MEEG 101' => [ 'MEEG', '101' ], + 'MEEG 101M' => [ 'MEEG', '101M' ], + 'MEEG 105' => [ 'MEEG', '105' ], + 'MEEG 105S' => [ 'MEEG', '105S' ], + 'MEEG 106' => [ 'MEEG', '106' ], + 'MEEG 201' => [ 'MEEG', '201' ], + 'MEEG 210R' => [ 'MEEG', '210R' ], + ], + + 'meizu m1note' => [ 'Meizu', 'M1 Note' ], + 'm1 note' => [ 'Meizu', 'M1 Note' ], + 'm2 note' => [ 'Meizu', 'M2 Note' ], + 'MZ-m2 note' => [ 'Meizu', 'M2 Note' ], + 'M571C' => [ 'Meizu', 'M2 Note' ], + 'MZ-M571C' => [ 'Meizu', 'M2 Note' ], + 'M578C' => [ 'Meizu', 'M2' ], + 'M8' => [ 'Meizu', 'M8' ], + 'M9' => [ 'Meizu', 'M9' ], + 'M9-unlocked' => [ 'Meizu', 'M9' ], + 'MEIZU M9' => [ 'Meizu', 'M9' ], + 'MEIZU MX' => [ 'Meizu', 'MX' ], + 'M030' => [ 'Meizu', 'MX M030' ], + 'M031' => [ 'Meizu', 'MX M031' ], + 'M032' => [ 'Meizu', 'MX M032' ], + 'MX2' => [ 'Meizu', 'MX2' ], + 'M040' => [ 'Meizu', 'MX2 M040' ], + 'M045' => [ 'Meizu', 'MX2 M045' ], + 'M351' => [ 'Meizu', 'MX3 M351' ], + 'M353' => [ 'Meizu', 'MX3 M353' ], + 'M355' => [ 'Meizu', 'MX3 M355' ], + 'M356' => [ 'Meizu', 'MX3 M356' ], + 'MX4' => [ 'Meizu', 'MX4' ], + 'MZ-MX4' => [ 'Meizu', 'MX4' ], + 'MX4 Pro' => [ 'Meizu', 'MX4 Pro' ], + + '(MEO )?Smart A!!' => [ + 'meo smart a12' => [ 'MEO', 'Smart A12' ], + 'MEO SMART A16' => [ 'MEO', 'Smart A16' ], + 'MEO Smart A40' => [ 'MEO', 'Smart A40' ], + 'Smart A65' => [ 'MEO', 'Smart A65' ], + 'Smart A66' => [ 'MEO', 'Smart A66' ], + 'MEO Smart A68' => [ 'MEO', 'Smart A68' ], + 'meo smart a70' => [ 'MEO', 'Smart A70' ], + 'MEO Smart A75' => [ 'MEO', 'Smart A75' ], + 'MEO A75' => [ 'MEO', 'Smart A75' ], + 'MEO Smart A80' => [ 'MEO', 'Smart A80' ], + ], + + 'MEU AN!!' => [ + 'MEU AN400' => [ 'MEU', 'AN400' ], + 'MEU AN500' => [ 'MEU', 'AN500' ], + ], + + 'Slidepad!!' => [ + 'Slidepad' => [ 'Memup', 'Slidepad', DeviceType::TABLET ], + 'SlidePad 104' => [ 'Memup', 'Slidepad 104', DeviceType::TABLET ], + 'SlidePad 108' => [ 'Memup', 'Slidepad 108', DeviceType::TABLET ], + 'SlidePad704CE' => [ 'Memup', 'Slidepad 704CE', DeviceType::TABLET ], + '704DC' => [ 'Memup', 'Slidepad 704DC', DeviceType::TABLET ], + 'SlidePad 816P' => [ 'Memup', 'Slidepad 816P', DeviceType::TABLET ], + 'SlidePad Elite 9708' => [ 'Memup', 'Slidepad Elite 9708', DeviceType::TABLET ], + 'SlidePad Kids' => [ 'Memup', 'Slidepad Kids', DeviceType::TABLET ], + 'SlidePad NG 116DC' => [ 'Memup', 'Slidepad NG 116DC', DeviceType::TABLET ], + 'SlidePad NG 704DC' => [ 'Memup', 'Slidepad NG 704DC', DeviceType::TABLET ], + ], + + 'SPNG9716DC' => [ 'Memup', 'Slidepad NG 9716DC', DeviceType::TABLET ], + 'Mi-A402' => [ 'Mi-fone', 'FAB 4.0' ], + + 'Micromax!!' => [ + 'Micromax A24' => [ 'Micromax', 'A24 Bolt' ], + 'Micromax A25' => [ 'Micromax', 'A25 Smarty' ], + 'Micromax A26' => [ 'Micromax', 'A26 Bolt' ], + 'Micromax A27' => [ 'Micromax', 'A27 Bolt' ], + 'Micromax A28' => [ 'Micromax', 'A28 Bolt' ], + 'Micromax A30' => [ 'Micromax', 'A30 Smarty' ], + 'Micromax A34' => [ 'Micromax', 'A34' ], + 'Micromax A35' => [ 'Micromax', 'A35 Bolt' ], + 'Micromax A36' => [ 'Micromax', 'A36 Bolt' ], + 'Micromax A37' => [ 'Micromax', 'A37 Bolt' ], + 'Micromax A37B' => [ 'Micromax', 'A37B Bolt' ], + 'Micromax A40' => [ 'Micromax', 'A40 Bolt' ], + 'Micromax A44' => [ 'Micromax', 'A44 Punk' ], + 'Micromax A46' => [ 'Micromax', 'A46 Bolt' ], + 'Micromax A47' => [ 'Micromax', 'A47 Bolt' ], + 'Micromax A50' => [ 'Micromax', 'A50 Ninja' ], + 'Micromax A51' => [ 'Micromax', 'A51 Bolt' ], + 'Micromax A52' => [ 'Micromax', 'A52 Aisha' ], + 'Micromax-Xzoom A52' => [ 'Micromax', 'A52 Aisha' ], + 'Micromax A54' => [ 'Micromax', 'A54 Ninja' ], + 'Micromax A56' => [ 'Micromax', 'A56 Ninja 2' ], + 'Micromax A57' => [ 'Micromax', 'A57 Ninja 3' ], + 'Micromax A58' => [ 'Micromax', 'A58 Bolt' ], + 'Micromax A59' => [ 'Micromax', 'A59 Bolt' ], + 'Micromax A60' => [ 'Micromax', 'A60 Andro' ], + 'Micromax A61' => [ 'Micromax', 'A61 Bolt' ], + 'Micromax A62' => [ 'Micromax', 'A62 Bolt' ], + 'Micromax A63' => [ 'Micromax', 'A63 Canvas Fun' ], + 'Micromax A65' => [ 'Micromax', 'A65 Smarty' ], + 'Micromax A66' => [ 'Micromax', 'A66 Bolt' ], + 'Micromax A67' => [ 'Micromax', 'A67 Bolt' ], + 'Micromax A68' => [ 'Micromax', 'A68 Smarty' ], + 'Micromax A69' => [ 'Micromax', 'A69 Bolt' ], + 'Micromax A70' => [ 'Micromax', 'A70 Andro' ], + 'Micromax A71' => [ 'Micromax', 'A71 Bolt' ], + 'Micromax A72' => [ 'Micromax', 'A72 Canvas Viva' ], + 'Micromax A73' => [ 'Micromax', 'A73 Buzz' ], + 'Micromax A74' => [ 'Micromax', 'A74 Canvas Fun' ], + 'Micromax A75' => [ 'Micromax', 'A75 Lite' ], + 'Micromax A76' => [ 'Micromax', 'A76 Canvas Fun' ], + 'Micromax A77' => [ 'Micromax', 'A77 Canvas Juice' ], + 'Micromax A78' => [ 'Micromax', 'A78 Gossip' ], + 'Micromax A79' => [ 'Micromax', 'A79 Bolt' ], + 'Micromax A80' => [ 'Micromax', 'A80 Infinity' ], + 'Micromax A82' => [ 'Micromax', 'A82 Bolt' ], + 'Micromax A84' => [ 'Micromax', 'A84' ], + 'Micromax A85' => [ 'Micromax', 'A85' ], + 'Micromax A86' => [ 'Micromax', 'A86 Bling 3' ], + 'Micromax A87!' => [ 'Micromax', 'A87 Ninja 4' ], + 'Micromax A88' => [ 'Micromax', 'A88 Canvas Music' ], + 'Micromax A89' => [ 'Micromax', 'A89 Ninja' ], + 'Micromax A90!' => [ 'Micromax', 'A90 Pixel' ], + 'Micromax A91' => [ 'Micromax', 'A91 Ninja' ], + 'Micromax A92' => [ 'Micromax', 'A92 Canvas Lite' ], + 'Micromax A93' => [ 'Micromax', 'A93 Canvas Elanza' ], + 'Micromax A94' => [ 'Micromax', 'A94 Canvas Mad' ], + 'Micromax A96' => [ 'Micromax', 'A96 Canvas Power' ], + 'Micromax A99' => [ 'Micromax', 'A99 Canvas Xpress' ], + 'Micromax A064' => [ 'Micromax', 'A064 Bolt' ], + 'Micromax A065' => [ 'Micromax', 'A065 Bolt' ], + 'Micromax A066' => [ 'Micromax', 'A066 Bolt' ], + 'Micromax A067' => [ 'Micromax', 'A067 Bolt' ], + 'Micromax A068' => [ 'Micromax', 'A068 Bolt' ], + 'Micromax A069' => [ 'Micromax', 'A069 Bolt' ], + 'Micromax A075' => [ 'Micromax', 'A075 Bolt' ], + 'Micromax A082' => [ 'Micromax', 'A082 Bolt' ], + 'Micromax A089' => [ 'Micromax', 'A089 Bolt' ], + 'Micromax A091' => [ 'Micromax', 'A091 Canvas Engage' ], + 'Micromax A092' => [ 'Micromax', 'A092 Canvas Unite' ], + 'Micromax A093' => [ 'Micromax', 'A093 Canvas Fire' ], + 'Micromax A096' => [ 'Micromax', 'A096 Canvas Fire 3' ], + 'Micromax A100' => [ 'Micromax', 'A100 Canvas' ], + 'Micromax A101' => [ 'Micromax', 'A101' ], + 'Micromax A102' => [ 'Micromax', 'A102 Canvas Doodle 3' ], + 'Micromax A104' => [ 'Micromax', 'A104 Canvas Fire' ], + 'Micromax A105' => [ 'Micromax', 'A105 Canvas Entice' ], + 'Micromax A106' => [ 'Micromax', 'A106 Unite 2' ], + 'Micromax A107' => [ 'Micromax', 'A107 Canvas Fire 4' ], + 'Micromax A108' => [ 'Micromax', 'A108 Canvas L' ], + 'Micromax A109' => [ 'Micromax', 'A109 Canvas XL2' ], + 'Micromax A110' => [ 'Micromax', 'A110 Canvas 2' ], + 'Micromax Canvas 2' => [ 'Micromax', 'A110 Canvas 2' ], + 'Micromax A110 (Canvas 2)' => [ 'Micromax', 'A110 Canvas 2' ], + 'Micromax A110Q' => [ 'Micromax', 'A110Q Canvas 2 Plus' ], + 'Micromax A111!' => [ 'Micromax', 'A111 Canvas Doodle' ], + 'Micromax A114' => [ 'Micromax', 'A114 Canvas 2.2' ], + 'Micromax A114R' => [ 'Micromax', 'A114R Canvas Beat' ], + 'Micromax A115' => [ 'Micromax', 'A115 Canvas 3D' ], + 'Micromax A116' => [ 'Micromax', 'A116 Canvas HD' ], + 'Micromax A116i' => [ 'Micromax', 'A116i Canvas HD' ], + 'Micromax A117' => [ 'Micromax', 'A117 Canvas Magnus' ], + 'Micromax A118R' => [ 'Micromax', 'A118 Canvas Tube' ], + 'Micromax A119' => [ 'Micromax', 'A119 Canvas XL' ], + 'Micromax A120' => [ 'Micromax', 'A120 Canvas 2 Colors' ], + 'Micromax A121' => [ 'Micromax', 'A120 Canvas Elanza 2' ], + 'Micromax A177' => [ 'Micromax', 'A177 Canvas Juice' ], + 'Micromax A190' => [ 'Micromax', 'A190 Canvas HD Plus' ], + 'Micromax A200' => [ 'Micromax', 'A200 Canvas Turbo Mini' ], + 'Micromax A210' => [ 'Micromax', 'A210 Canvas 4' ], + 'Micromax A240' => [ 'Micromax', 'A240 Canvas Doodle 2' ], + 'Micromax A250' => [ 'Micromax', 'A250 Canvas Turbo' ], + 'Micromax A255' => [ 'Micromax', 'A255 Canvas Selfie' ], + 'Micromax A290' => [ 'Micromax', 'A290 Canvas Knight Cameo' ], + 'Micromax A300' => [ 'Micromax', 'A300 Canvas Gold' ], + 'Micromax A310' => [ 'Micromax', 'A310 Canvas Nitro' ], + 'Micromax A311' => [ 'Micromax', 'A311 Canvas Nitro' ], + 'Micromax A315' => [ 'Micromax', 'A315 Canvas 4 Plus' ], + 'Micromax A316' => [ 'Micromax', 'A316 Canvas Hue 2' ], + 'Micromax A350' => [ 'Micromax', 'A350 Canvas Knight' ], + 'Micromax AD3520' => [ 'Micromax', 'AD3520 Bolt' ], + 'Micromax AE90' => [ 'Micromax', 'AE90 Canvas Duet' ], + 'Micromax AD4500' => [ 'Micromax', 'AQ4500 Bolt' ], + 'Micromax AQ4501' => [ 'Micromax', 'AQ4501 Canvas A1' ], + 'Micromax AQ4502' => [ 'Micromax', 'AQ4502 Canvas A1' ], + 'Micromax AQ5000' => [ 'Micromax', 'AQ5000 Canvas Hue' ], + 'Micromax AQ5001' => [ 'Micromax', 'AQ5001 Canvas Juice 2' ], + 'Micromax D200' => [ 'Micromax', 'D200 Bolt' ], + 'Micromax D303' => [ 'Micromax', 'D303 Bolt' ], + 'Micromax D321' => [ 'Micromax', 'D321 Bolt' ], + 'Micromax E311' => [ 'Micromax', 'E311 Canvas Nitro 2' ], + 'Micromax E313' => [ 'Micromax', 'E313 Canvas Express 2' ], + 'Micromax E352' => [ 'Micromax', 'E352 Canvas Nitro 3' ], + 'Micromax E353' => [ 'Micromax', 'E353 Canvas Mega' ], + 'Micromax E455' => [ 'Micromax', 'E355 Canvas Nitro 4G' ], + 'Micromax E471' => [ 'Micromax', 'E471 Canvas Knight 2' ], + 'Micromax E481' => [ 'Micromax', 'E481 Canvas 5' ], + 'Micromax EG111' => [ 'Micromax', 'EG111 Canvas Duet 2' ], + 'Micromax F666' => [ 'Micromax', 'F666' ], + 'Micromax P250(Funbook)' => [ 'Micromax', 'Funbook Alpha P250', DeviceType::TABLET ], + 'Micromax P255' => [ 'Micromax', 'Funbook P255', DeviceType::TABLET ], + 'Micromax P275' => [ 'Micromax', 'Funbook Infinity P275', DeviceType::TABLET ], + 'Micromax P280' => [ 'Micromax', 'Funbook P280', DeviceType::TABLET ], + 'Micromax P290' => [ 'Micromax', 'Canvas Tab P290', DeviceType::TABLET ], + 'Micromax P350' => [ 'Micromax', 'Funbook P350', DeviceType::TABLET ], + 'Micromax P360' => [ 'Micromax', 'Funbook Talk P360', DeviceType::TABLET ], + 'Micromax P362' => [ 'Micromax', 'Funbook Talk P362', DeviceType::TABLET ], + 'Micromax P365' => [ 'Micromax', 'Funbook P365', DeviceType::TABLET ], + 'Micromax P410' => [ 'Micromax', 'Funbook Mini P410', DeviceType::TABLET ], + 'Micromax P410i' => [ 'Micromax', 'Funbook Mini P410i', DeviceType::TABLET ], + 'Micromax P470' => [ 'Micromax', 'Canvas Tab P470', DeviceType::TABLET ], + 'MicromaxP480' => [ 'Micromax', 'Canvas Tab P480', DeviceType::TABLET ], + 'Micromax P500(Funbook)' => [ 'Micromax', 'Funbook Pro P500', DeviceType::TABLET ], + 'Micromax P560' => [ 'Micromax', 'Funbook 3G P560', DeviceType::TABLET ], + 'Micromax P580' => [ 'Micromax', 'Funbook Ultra HD P580', DeviceType::TABLET ], + 'Micromax P600' => [ 'Micromax', 'Funbook 3G P600', DeviceType::TABLET ], + 'Micromax P650' => [ 'Micromax', 'Canvas Tab P650', DeviceType::TABLET ], + 'Micromax P666' => [ 'Micromax', 'Canvas Tab P666', DeviceType::TABLET ], + 'MicromaxP680' => [ 'Micromax', 'Canvas Tab P680', DeviceType::TABLET ], + 'Micromax P690' => [ 'Micromax', 'Canvas Tab P690', DeviceType::TABLET ], + 'Micromax Q324' => [ 'Micromax', 'Q324 Bolt' ], + 'Micromax Q325' => [ 'Micromax', 'Q325 Bolt' ], + 'Micromax Q331' => [ 'Micromax', 'Q331 Bolt' ], + 'Micromax Q333' => [ 'Micromax', 'Q333 Bolt' ], + 'Micromax Q334' => [ 'Micromax', 'Q334 Canvas Spark 2' ], + 'Micromax Q335' => [ 'Micromax', 'Q335 Bolt' ], + 'Micromax Q336' => [ 'Micromax', 'Q336 Bolt' ], + 'Micromax Q338' => [ 'Micromax', 'Q338 Bolt' ], + 'Micromax Q340' => [ 'Micromax', 'Q340 Canvas Selfie 2' ], + 'Micromax Q345' => [ 'Micromax', 'Q345 Canvas Selfie Lens' ], + 'Micromax Q348' => [ 'Micromax', 'Q340 Canvas Selfie 3' ], + 'Micromax Q355' => [ 'Micromax', 'Q355 Canvas Play' ], + 'Micromax Q370' => [ 'Micromax', 'Q370 Canvas Pep' ], + 'Micromax Q371' => [ 'Micromax', 'Q371 Canvas Pep' ], + 'Micromax Q372' => [ 'Micromax', 'Q372 Unite 3' ], + 'Micromax Q375' => [ 'Micromax', 'Q375 Canvas Pep' ], + 'Micromax Q379' => [ 'Micromax', 'Q379 Unite 3' ], + 'Micromax Q380' => [ 'Micromax', 'Q380 Canvas Spark' ], + 'Micromax Q391' => [ 'Micromax', 'Q391 Canvas Doodle 4' ], + 'Micromax Q392' => [ 'Micromax', 'Q392 Canvas Juice 3' ], + 'Micromax Q394' => [ 'Micromax', 'Q394 Canvas Juice 3+' ], + 'Micromax Q395' => [ 'Micromax', 'Q395 Canvas Amaze' ], + 'Micromax Q400' => [ 'Micromax', 'Q400 Canvas Blaze' ], + 'Micromax Q411' => [ 'Micromax', 'Q411 Canvas Fire' ], + 'Micromax Q412' => [ 'Micromax', 'Q412 Canvas Play' ], + 'Micromax Q416' => [ 'Micromax', 'Q416 Canvas Pace' ], + 'Micromax Q417' => [ 'Micromax', 'Q417 Canvas Mega' ], + 'Micromax Q450' => [ 'Micromax', 'Q450 Sliver 5' ], + 'Micromax Q469' => [ 'Micromax', 'Q469 Canvas Play' ], + 'Micromax Q491' => [ 'Micromax', 'Q491 Canvas Doodle 4' ], + 'Micromax S300' => [ 'Micromax', 'S300 Bolt' ], + 'Micromax S301' => [ 'Micromax', 'S301 Bolt' ], + 'Micromax S302' => [ 'Micromax', 'S302 Bolt' ], + ], + + 'A13' => [ 'Micromax', 'A13' ], + 'A45' => [ 'Micromax', 'A45 Punk' ], + 'A47' => [ 'Micromax', 'A47 Bolt' ], + 'A52' => [ 'Micromax', 'A52 Aisha' ], + 'A87' => [ 'Micromax', 'A87 Ninja 4' ], + 'A90S' => [ 'Micromax', 'A90S Pixel' ], + 'A110Q' => [ 'Micromax', 'A110Q Canvas 2 Plus' ], + 'A110Q Canvas 2 Plus' => [ 'Micromax', 'A110Q Canvas 2 Plus' ], + 'A110Q Canvas 2+' => [ 'Micromax', 'A110Q Canvas 2 Plus' ], + 'YU5050' => [ 'Micromax', 'Yutopia' ], + 'P300(Funbook)' => [ 'Micromax', 'Funbook P300', DeviceType::TABLET ], + 'P701' => [ 'Micromax', 'Canvas Tab P701', DeviceType::TABLET ], + + 'MLLED!!' => [ + 'MLLED M1B' => [ 'MLLED', 'M1B' ], + 'MLLED M2+' => [ 'MLLED', 'M2+' ], + 'MLLED M3 MINI' => [ 'MLLED', 'M3 MINI' ], + 'MLLED M7S' => [ 'MLLED', 'M7S' ], + 'MLLED M8' => [ 'MLLED', 'M8' ], + 'MLLED M8S' => [ 'MLLED', 'M8S' ], + 'MLLED X3S' => [ 'MLLED', 'X3S' ], + ], + + 'Mio!!' => [ + 'MioCARE A105' => [ 'Mitac', 'MioCARE A105' ], + 'MioCare 6119' => [ 'Mitac', 'MioCARE 6119' ], + 'MioPad 6' => [ 'Mitac', 'MioPad 6', DeviceType::TABLET ], + ], + + 'MIZ Z2' => [ 'Miz', 'Z2' ], + + 'iQ(Talk|Tab)!!' => [ + 'iQTalk Crystal' => [ 'MLS', 'iQTalk Crystal' ], + 'iQTalk Crystal Max' => [ 'MLS', 'iQTalk Crystal Max' ], + 'iQTalk King' => [ 'MLS', 'iQTalk King' ], + 'iQTab' => [ 'MLS', 'iQTab', DeviceType::TABLET ], + 'iQTab 3G' => [ 'MLS', 'iQTab 3G', DeviceType::TABLET ], + 'iQTab Astro 3G' => [ 'MLS', 'iQTab Astro 3G', DeviceType::TABLET ], + ], + + 'Nova!!' => [ + 'Nova A' => [ 'Mobell', 'Nova A' ], + 'Nova E' => [ 'Mobell', 'Nova E' ], + 'Nova F' => [ 'Mobell', 'Nova F' ], + ], + + 'Mobiistar!!' => [ + 'mobiistar PRIME 558' => [ 'Mobiistar', 'Prime 558' ], + 'Mobiistar S01' => [ 'Mobiistar', 'Touch S01' ], + 'Mobiistar Touch S01' => [ 'Mobiistar', 'Touch S01' ], + 'Mobiistar Touch S02i' => [ 'Mobiistar', 'Touch S02i' ], + 'Mobiistar Touch S03' => [ 'Mobiistar', 'Touch S03' ], + 'Mobiistar Touch S05' => [ 'Mobiistar', 'Touch S05' ], + 'Mobiistar Touch S06' => [ 'Mobiistar', 'Touch S06' ], + 'Mobiistar Touch S07' => [ 'Mobiistar', 'Touch S07' ], + 'Mobiistar Touch S08' => [ 'Mobiistar', 'Touch S08' ], + 'Mobiistar Touch S30' => [ 'Mobiistar', 'Touch S30' ], + 'mobiistar touch S31' => [ 'Mobiistar', 'Touch S31' ], + 'mobiistar touch BEAN 402' => [ 'Mobiistar', 'Touch Bean 402' ], + 'mobiistar touch BEAN 402c' => [ 'Mobiistar', 'Touch Bean 402C' ], + 'mobiistar touch Bean 402s' => [ 'Mobiistar', 'Touch Bean 402S' ], + 'mobiistar touch BEAN 402m' => [ 'Mobiistar', 'Touch Bean 402M' ], + 'Mobiistar Touch Bean 452' => [ 'Mobiistar', 'Touch Bean 452' ], + 'Mobiistar Touch JellyBean 452' => [ 'Mobiistar', 'Touch Bean 452' ], + 'Mobiistar Touch Jelly Bean 452' => [ 'Mobiistar', 'Touch Bean 452' ], + 'mobiistar touch BEAN 452T' => [ 'Mobiistar', 'Touch Bean 452T' ], + 'Mobiistar Bean 452T' => [ 'Mobiistar', 'Touch Bean 452T' ], + 'mobiistar touch BEAN 454' => [ 'Mobiistar', 'Touch Bean 454' ], + 'Mobiistar Touch Kem 350' => [ 'Mobiistar', 'Touch Kem 350' ], + 'Mobiistar Touch Kem 351' => [ 'Mobiistar', 'Touch Kem 351' ], + 'Mobiistar Touch Kem 402' => [ 'Mobiistar', 'Touch Kem 402' ], + 'Mobiistar Touch Kem 432' => [ 'Mobiistar', 'Touch Kem 432' ], + 'Mobiistar Touch Kem 452' => [ 'Mobiistar', 'Touch Kem 452' ], + 'Mobiistar Touch KEM 452 HDMI' => [ 'Mobiistar', 'Touch Kem 452' ], + 'Mobiistar touch KEM 462' => [ 'Mobiistar', 'Touch Kem 462' ], + 'Mobiistar Touch Lai 502' => [ 'Mobiistar', 'Touch Lai 502' ], + 'mobiistar touch LAI 504' => [ 'Mobiistar', 'Touch Lai 504' ], + 'mobiistar LAI 504m' => [ 'Mobiistar', 'Touch Lai 504M' ], + 'mobiistar touch LAI 504Q' => [ 'Mobiistar', 'Touch Lai 504Q' ], + 'mobiistar touch LAI 512' => [ 'Mobiistar', 'Touch Lai 512' ], + ], + + 'BEAN 454' => [ 'Mobiistar', 'Touch Bean 454' ], + 'MBS BEAN 454' => [ 'Mobiistar', 'Touch Bean 454' ], + 'edenTAB ET-701' => [ 'Mobile In Style', 'Eden TAB ET-701', DeviceType::TABLET ], + + 'Cynus!!' => [ + 'Cynus E1' => [ 'Mobistel', 'Cynus E1' ], + 'Cynus F3' => [ 'Mobistel', 'Cynus F3' ], + 'Cynus F4' => [ 'Mobistel', 'Cynus F4' ], + 'Cynus F5' => [ 'Mobistel', 'Cynus F5' ], + 'Cynus F6' => [ 'Mobistel', 'Cynus F6' ], + 'Cynus F8' => [ 'Mobistel', 'Cynus F8' ], + 'Cynus T1' => [ 'Mobistel', 'Cynus T1' ], + 'Cynus T2' => [ 'Mobistel', 'Cynus T2' ], + 'Cynus T5' => [ 'Mobistel', 'Cynus T5' ], + 'Cynus T6' => [ 'Mobistel', 'Cynus T6' ], + 'Cynus T7' => [ 'Mobistel', 'Cynus T7' ], + 'Cynus T8' => [ 'Mobistel', 'Cynus T8' ], + ], + + 'MOCHE SMART A16' => [ 'Moche', 'Smart A16' ], + + '(MODECOM )?FreeTAB!!' => [ + 'FreeTAB 7.5 IPS X4 3G+' => [ 'Modecom', 'FreeTAB 7.5 IPS X4', DeviceType::TABLET ], + 'FreeTAB 10.1 Silver' => [ 'Modecom', 'FreeTAB 10.1 Silver', DeviceType::TABLET ], + 'FreeTAB 1001' => [ 'Modecom', 'FreeTAB 1001', DeviceType::TABLET ], + 'MODECOM FreeTab 1002 IPS X2' => [ 'Modecom', 'FreeTAB 1002 IPS X2', DeviceType::TABLET ], + 'FreeTAB 1003' => [ 'Modecom', 'FreeTAB 1003', DeviceType::TABLET ], + 'FreeTAB1003' => [ 'Modecom', 'FreeTAB 1003', DeviceType::TABLET ], + 'FreeTAB 1014 IPS X4+' => [ 'Modecom', 'FreeTAB 1014 IPS X4', DeviceType::TABLET ], + 'FreeTAB 1014 IPS X4 3G+' => [ 'Modecom', 'FreeTAB 1014 IPS X4', DeviceType::TABLET ], + 'MODECOM FreeTAB 2096+ X2 4GB' => [ 'Modecom', 'FreeTAB 2096 X2', DeviceType::TABLET ], + 'FreeTAB 7001 HD IC' => [ 'Modecom', 'FreeTAB 7001 HD IC', DeviceType::TABLET ], + 'FreeTAB 7003 HD+ X2 3G+' => [ 'Modecom', 'FreeTAB 7003 HD+ X2', DeviceType::TABLET ], + 'FreeTAB 7800 IPS IC' => [ 'Modecom', 'FreeTAB 7800 IPS IC', DeviceType::TABLET ], + 'FreeTAB 8001 IPS X2 3G+' => [ 'Modecom', 'FreeTAB 8001 IPS X2', DeviceType::TABLET ], + 'MODECOM FreeTAB 8001 IPS X23G' => [ 'Modecom', 'FreeTAB 8001 IPS X2', DeviceType::TABLET ], + 'FreeTAB 8014 IPS X4' => [ 'Modecom', 'FreeTAB 8014 IPS X4', DeviceType::TABLET ], + 'FreeTAB 9000 IPS IC' => [ 'Modecom', 'FreeTAB 9000 IPS IC', DeviceType::TABLET ], + 'FreeTAB 9000 IPS ICG' => [ 'Modecom', 'FreeTAB 9000 IPS ICG', DeviceType::TABLET ], + 'FreeTAB 9000 IPS ICG 3G' => [ 'Modecom', 'FreeTAB 9000 IPS ICG', DeviceType::TABLET ], + 'FreeTAB 9701' => [ 'Modecom', 'FreeTAB 9701', DeviceType::TABLET ], + 'FreeTAB 9701 HD X1' => [ 'Modecom', 'FreeTAB 9701 HD X1', DeviceType::TABLET ], + 'FreeTAB 9701 IPS' => [ 'Modecom', 'FreeTAB 9701 IPS', DeviceType::TABLET ], + 'FreeTAB 9702 HD X2' => [ 'Modecom', 'FreeTAB 9702 HD X2', DeviceType::TABLET ], + 'FreeTAB 9702 HD X4' => [ 'Modecom', 'FreeTAB 9702 HD X4', DeviceType::TABLET ], + 'MODECOM FreeTAB 9702 IPS X2' => [ 'Modecom', 'FreeTAB 9702 IPS X2', DeviceType::TABLET ], + 'FreeTAB 9704 IPS2 X4' => [ 'Modecom', 'FreeTAB 9704 IPS2 X4', DeviceType::TABLET ], + ], + + 'MOGU!!' => [ + 'MOGU-M0' => [ 'Mogu', 'M0' ], + 'MOGU M2' => [ 'Mogu', 'M2' ], + 'MOGU M2 ROM' => [ 'Mogu', 'M2' ], + 'MOGU-M2' => [ 'Mogu', 'M2' ], + ], + + 'moii!!' => [ + 'moii-E502' => [ 'moii', 'E502' ], + 'moii E505' => [ 'moii', 'E505' ], + 'moii E598' => [ 'moii', 'E598' ], + 'Moii E801' => [ 'moii', 'E801' ], + 'moii E893' => [ 'moii', 'E893' ], + 'Moii E990' => [ 'moii', 'E990' ], + 'moii E996' => [ 'moii', 'E996' ], + ], + + 'AT735' => [ 'Moinstone', 'AT735', DeviceType::TABLET ], + 'MORAL N01' => [ 'Moral', 'N01' ], + 'i1' => [ 'Motorola', 'i1' ], + 'A853' => [ 'Motorola', 'Milestone' ], + 'A953' => [ 'Motorola', 'Milestone 2' ], + 'A955' => [ 'Motorola', 'Droid 2' ], + 'A1680' => [ 'Motorola', 'MOTO A1680' ], + 'F100' => [ 'Motorola', 'MOTOACTV', DeviceType::WATCH ], + + 'MB[0-9]{3,3}!!' => [ + 'MB200' => [ 'Motorola', 'CLIQ' ], + 'MB300' => [ 'Motorola', 'BACKFLIP' ], + 'MB501' => [ 'Motorola', 'CLIQ XT' ], + 'MB502' => [ 'Motorola', 'CHARM' ], + 'MB508' => [ 'Motorola', 'FLIPSIDE' ], + 'MB511' => [ 'Motorola', 'FLIPOUT' ], + 'MB520' => [ 'Motorola', 'BRAVO' ], + 'MB525!' => [ 'Motorola', 'DEFY' ], + 'MB526!' => [ 'Motorola', 'DEFY+' ], + 'MB610' => [ 'Motorola', 'CLIQ 2' ], + 'MB611' => [ 'Motorola', 'CLIQ 2' ], + 'MB612' => [ 'Motorola', 'XPRT' ], + 'MB626' => [ 'Motorola', 'MB632' ], + 'MB632' => [ 'Motorola', 'PRO+' ], + 'MB810' => [ 'Motorola', 'Droid X' ], + 'MB853' => [ 'Motorola', 'Electrify' ], + 'MB855' => [ 'Motorola', 'PHOTON 4G' ], + 'MB8(60|61)!' => [ 'Motorola', 'ATRIX' ], + 'MB865' => [ 'Motorola', 'ATRIX 2' ], + 'MB870' => [ 'Motorola', 'Droid X2' ], + 'MB886' => [ 'Motorola', 'DINARA' ], + ], + + 'ME[0-9]{3,3}!!' => [ + 'ME501' => [ 'Motorola', 'CLIQ XT' ], + 'ME502' => [ 'Motorola', 'CHARM' ], + 'ME511' => [ 'Motorola', 'FLIPOUT' ], + 'ME525!' => [ 'Motorola', 'MOTO ME525' ], + 'ME526!' => [ 'Motorola', 'DEFY+' ], + 'ME600' => [ 'Motorola', 'BACKFLIP' ], + 'ME611' => [ 'Motorola', 'CLIQ 2' ], + 'ME632' => [ 'Motorola', 'PRO+' ], + 'ME722' => [ 'Motorola', 'Milestone 2' ], + 'ME811' => [ 'Motorola', 'Droid X' ], + 'ME860' => [ 'Motorola', 'ATRIX' ], + 'ME863' => [ 'Motorola', 'Milestone 3' ], + 'ME865' => [ 'Motorola', 'ATRIX 2' ], + ], + + 'MT[0-9]{3,3}!!' => [ + 'MT620!' => [ 'Motorola', 'MOTO MT620' ], + 'MT680' => [ 'Motorola', 'MOTOLUXE MT680' ], + 'MT716' => [ 'Motorola', 'MOTO MT716' ], + 'MT788' => [ 'Motorola', 'RAZR i' ], + 'MT810' => [ 'Motorola', 'MOTO MT810' ], + 'MT870' => [ 'Motorola', 'MOTO MT870' ], + 'MT887' => [ 'Motorola', 'RAZR V' ], + 'MT917' => [ 'Motorola', 'MT917' ], + ], + + 'MZ[0-9]{3,3}!!' => [ + 'MZ505' => [ 'Motorola', 'XOOM Family Edition', DeviceType::TABLET ], + 'MZ600' => [ 'Motorola', 'XOOM 4G LTE', DeviceType::TABLET ], + 'MZ601' => [ 'Motorola', 'XOOM 3G', DeviceType::TABLET ], + 'MZ602' => [ 'Motorola', 'XOOM 4G LTE', DeviceType::TABLET ], + 'MZ603' => [ 'Motorola', 'XOOM 3G', DeviceType::TABLET ], + 'MZ604' => [ 'Motorola', 'XOOM WiFi', DeviceType::TABLET ], + 'MZ605' => [ 'Motorola', 'XOOM 3G', DeviceType::TABLET ], + 'MZ606' => [ 'Motorola', 'XOOM WiFi', DeviceType::TABLET ], + 'MZ607' => [ 'Motorola', 'XOOM 2 WiFi Media Edition', DeviceType::TABLET ], + 'MZ608' => [ 'Motorola', 'XOOM 2 3G Media Edition', DeviceType::TABLET ], + 'MZ609!' => [ 'Motorola', 'Droid XYBOARD 8.2', DeviceType::TABLET ], + 'MZ615' => [ 'Motorola', 'XOOM 2 WiFi', DeviceType::TABLET ], + 'MZ616' => [ 'Motorola', 'XOOM 2 3G', DeviceType::TABLET ], + 'MZ617!' => [ 'Motorola', 'Droid XYBOARD 10.1', DeviceType::TABLET ], + ], + + 'WX[0-9]{3,3}!!' => [ + 'WX435' => [ 'Motorola', 'TRIUMPH WX435' ], + 'WX442' => [ 'Motorola', 'CITRUS WX442' ], + 'WX445' => [ 'Motorola', 'CITRUS WX445' ], + ], + + 'XT[0-9]{3,4}!!' => [ + 'XT300' => [ 'Motorola', 'SPICE' ], + 'XT301' => [ 'Motorola', 'MOTO XT301' ], + 'XT303' => [ 'Motorola', 'MOTOSMART XT303' ], + 'XT305' => [ 'Motorola', 'MOTOSMART XT305' ], + 'XT311' => [ 'Motorola', 'FIRE' ], + 'XT316' => [ 'Motorola', 'MOTO XT316' ], + 'XT317' => [ 'Motorola', 'SPICE Key' ], + 'XT319' => [ 'Motorola', 'MOTO XT319' ], + 'XT3(20|21)!' => [ 'Motorola', 'DEFY Mini' ], + 'XT389' => [ 'Motorola', 'MOTOSMART XT389' ], + 'XT390' => [ 'Motorola', 'MOTOSMART XT390' ], + 'XT500' => [ 'Motorola', 'MOTO XT500' ], + 'xt-500' => [ 'Motorola', 'MOTO XT500' ], + 'XT502' => [ 'Motorola', 'QUENCH XT5' ], + 'XT5(30|31)!' => [ 'Motorola', 'FIRE XT' ], + 'XT532' => [ 'Motorola', 'MOTO XT532' ], + 'XT535' => [ 'Motorola', 'DEFY' ], + 'XT536' => [ 'Motorola', 'DEFY Diana' ], + 'XT5(50|53)!' => [ 'Motorola', 'MOTOSMART MIX' ], + 'XT5(55|56|57)!' => [ 'Motorola', 'DEFY XT' ], + 'XT560' => [ 'Motorola', 'DEFY Pro' ], + 'XT603' => [ 'Motorola', 'ADMIRAL' ], + 'XT605' => [ 'Motorola', 'Master XT605' ], + 'XT610' => [ 'Motorola', 'Droid Pro' ], + 'Pro XT610' => [ 'Motorola', 'Droid Pro' ], + 'XT611' => [ 'Motorola', 'MOTOSMART Flip' ], + 'XT615' => [ 'Motorola', 'MOTO XT615' ], + 'XT621' => [ 'Motorola', 'Primus XT621' ], + 'XT623' => [ 'Motorola', 'Kairos XT623' ], + 'XT626' => [ 'Motorola', 'MOTO XT626' ], + 'XT627' => [ 'Motorola', 'Kairos XT627' ], + 'XT681' => [ 'Motorola', 'MOTO XT681' ], + 'XT682' => [ 'Motorola', 'ATRIX TV' ], + 'XT685' => [ 'Motorola', 'MOTO XT685' ], + 'XT687' => [ 'Motorola', 'ATRIX TV' ], + 'XT701' => [ 'Motorola', 'XT701' ], + 'XT702!' => [ 'Motorola', 'MOTO XT702' ], + 'XT711' => [ 'Motorola', 'MOTO XT711' ], + 'XT720' => [ 'Motorola', 'Milestone' ], + 'XT760' => [ 'Motorola', 'MOTO XT760' ], + 'XT788' => [ 'Motorola', 'XT788' ], + 'XT875' => [ 'Motorola', 'Droid Bionic' ], + 'XT800W' => [ 'Motorola', 'MOTO Glam' ], + 'XT800!' => [ 'Motorola', 'MOTO XT800' ], + 'XT806' => [ 'Motorola', 'MOTO XT806' ], + 'XT8(60|83)!' => [ 'Motorola', 'Milestone 3' ], + 'XT862' => [ 'Motorola', 'Droid 3' ], + 'XT865' => [ 'Motorola', 'Droid Bionic' ], + 'XT881' => [ 'Motorola', 'Electrify 2' ], + 'XT882' => [ 'Motorola', 'MOTO XT882' ], + 'XT8(85|86|89)!' => [ 'Motorola', 'RAZR V' ], + 'XT890' => [ 'Motorola', 'RAZR i' ], + 'XT894!' => [ 'Motorola', 'Droid 4' ], + 'XT897!' => [ 'Motorola', 'PHOTON Q' ], + 'XT901' => [ 'Motorola', 'Electrify M' ], + 'XT905' => [ 'Motorola', 'RAZR M' ], + 'XT907' => [ 'Motorola', 'Droid RAZR M' ], + 'XT908' => [ 'Motorola', 'RAZR MAXX' ], + 'XT910!' => [ 'Motorola', 'RAZR' ], + 'XT912!' => [ 'Motorola', 'Droid RAZR' ], + 'XT9(14|15|16|18)!' => [ 'Motorola', 'Droid RAZR D1' ], + 'XT9(19|20)!' => [ 'Motorola', 'Droid RAZR D3' ], + 'XT9(23|25|26)!' => [ 'Motorola', 'Droid RAZR HD' ], + 'XT928' => [ 'Motorola', 'XT928' ], + 'XT939G' => [ 'Motorola', 'Moto G' ], + 'XT10(19|21|22|23|25)!' => [ 'Motorola', 'Moto E' ], + 'XT1030!' => [ 'Motorola', 'Droid Mini' ], + 'XT10(08|28|31|32|33|34|35|39|40|42|45)!' => [ 'Motorola', 'Moto G' ], + 'XT10(02|03)!' => [ 'Motorola', 'Moto G Ferrari' ], + 'XT10(49|50|52|53|55|56|58|60)!' => [ 'Motorola', 'Moto X' ], + 'XT10(63|64|68|69|72|77|78|79)!' => [ 'Motorola', 'Moto G (2014)' ], + 'XT1080!' => [ 'Motorola', 'Droid Ultra' ], + 'XT10(85|92|93|94|95|96|97|98)!' => [ 'Motorola', 'Moto X (2014)' ], + 'XT11(00|03)!' => [ 'Motorola', 'Nexus 6' ], + 'XT1115!' => [ 'Motorola', 'Moto X Pro' ], + 'XT1225' => [ 'Motorola', 'Moto Maxx' ], + 'XT12(50|54)!' => [ 'Motorola', 'Droid Turbo' ], + 'XT15(14|21|23|24|26|27|28)!' => [ 'Motorola', 'Moto E (2015)' ], + 'XT15(40|41|42|43|44|48|50)!' => [ 'Motorola', 'Moto G (2015)' ], + 'XT15(62|63|64)!' => [ 'Motorola', 'Moto X Play' ], + 'XT1565' => [ 'Motorola', 'Droid MAXX 2' ], + 'XT15(70|72)!' => [ 'Motorola', 'Moto X Style' ], + 'XT1575' => [ 'Motorola', 'Moto X Pure Edition' ], + 'XT1578' => [ 'Motorola', '"Clark"' ], + 'XT15(80|81)!' => [ 'Motorola', 'Moto X Force' ], + 'XT1585' => [ 'Motorola', 'Droid Turbo 2' ], + 'XT16(06|09)!' => [ 'Motorola', 'Moto G4 Play' ], + 'XT1625' => [ 'Motorola', 'Moto G4' ], + 'XT1644' => [ 'Motorola', 'Moto G4 Plus' ], + 'XT1650' => [ 'Motorola', 'Moto X4' ], + 'XT17(00|06)!' => [ 'Motorola', 'Moto E (2016)' ], + ], + + 'Atrix 2' => [ 'Motorola', 'ATRIX 2' ], + 'Atrix 2 WeifanZ' => [ 'Motorola', 'ATRIX 2' ], + 'Atrix 4G' => [ 'Motorola', 'ATRIX 4G' ], + 'Atrix 4G ME860' => [ 'Motorola', 'ATRIX 4G' ], + 'Atrix 4G MB860' => [ 'Motorola', 'ATRIX 4G' ], + 'Atrix HD' => [ 'Motorola', 'ATRIX HD' ], + 'AtrixHD' => [ 'Motorola', 'ATRIX HD' ], + 'Backflip' => [ 'Motorola', 'BACKFLIP' ], + 'CLIQ' => [ 'Motorola', 'CLIQ' ], + 'CLIQ XT' => [ 'Motorola', 'CLIQ XT' ], + 'CLIQ2' => [ 'Motorola', 'CLIQ 2' ], + 'Corvair' => [ 'Motorola', 'Corvair', DeviceType::TABLET ], + 'DEFY' => [ 'Motorola', 'DEFY' ], + 'Defy(\\+| Plus)!' => [ 'Motorola', 'DEFY+' ], + 'DEDY+' => [ 'Motorola', 'DEFY+' ], + 'Dext' => [ 'Motorola', 'Dext' ], + 'Droid' => [ 'Motorola', 'Droid' ], + 'Moto Droid' => [ 'Motorola', 'Droid' ], + 'Sholes' => [ 'Motorola', 'Droid' ], + 'DROID' => [ 'Motorola', 'Droid' ], + 'DROID ?2!' => [ 'Motorola', 'Droid 2' ], + 'DROID ?3!' => [ 'Motorola', 'Droid 3' ], + 'DROID ?4!' => [ 'Motorola', 'Droid 4' ], + 'DroidPro' => [ 'Motorola', 'Droid Pro' ], + 'DROID Pro' => [ 'Motorola', 'Droid Pro' ], + 'Motorola Pro XT610' => [ 'Motorola', 'Droid Pro' ], + 'DROID HD' => [ 'Motorola', 'Droid HD' ], + 'DROID BIONIC!' => [ 'Motorola', 'Droid Bionic' ], + 'DROID RAZR HD!' => [ 'Motorola', 'Droid RAZR HD' ], + 'DROID ?RAZR!' => [ 'Motorola', 'Droid RAZR' ], + 'DROID SPYDER' => [ 'Motorola', 'Droid RAZR' ], + 'DROID ?X2!' => [ 'Motorola', 'Droid X2' ], + 'DROID ?X!' => [ 'Motorola', 'Droid X' ], + 'Devour' => [ 'Motorola', 'Droid Devour' ], + 'calgary' => [ 'Motorola', 'Droid Devour' ], + 'Electrify' => [ 'Motorola', 'Electrify' ], + 'Milestone XT711' => [ 'Motorola', 'Milestone' ], + 'Milestone XT720' => [ 'Motorola', 'Milestone' ], + 'Milestone' => [ 'Motorola', 'Milestone' ], + 'A853 Milestone' => [ 'Motorola', 'Milestone' ], + 'Milestone X' => [ 'Motorola', 'Milestone X' ], + 'Milestone X2' => [ 'Motorola', 'Milestone X2' ], + 'Milestone MAXX' => [ 'Motorola', 'Milestone MAXX' ], + 'Motorola Milestone MAXX' => [ 'Motorola', 'Milestone MAXX' ], + 'MILESTONE3' => [ 'Motorola', 'Milestone 3' ], + 'Backflip Me600' => [ 'Motorola', 'BACKFLIP' ], + 'Motorola Backflip Me600' => [ 'Motorola', 'BACKFLIP' ], + 'Moto ME860' => [ 'Motorola', 'ATRIX' ], + '(Moto)?E2$!' => [ 'Motorola', 'Moto E (2015)' ], + '(Moto)?E2\(4G-LTE\)$!' => [ 'Motorola', 'Moto E (2015)' ], + '(Moto)?G3$!' => [ 'Motorola', 'Moto G (2015)' ], + '(Moto)?G3-TE$!' => [ 'Motorola', 'Moto G (2015)' ], + 'MOTOROLA MOTOG' => [ 'Motorola', 'Moto G' ], + 'roiX' => [ 'Motorola', 'Droid X' ], + 'Moto Backflip' => [ 'Motorola', 'BACKFLIP' ], + 'RAZR' => [ 'Motorola', 'RAZR' ], + 'RAZR HD' => [ 'Motorola', 'RAZR HD' ], + 'RAZR M' => [ 'Motorola', 'RAZR M' ], + 'RAZR MAXX' => [ 'Motorola', 'RAZR MAXX' ], + 'Triumph' => [ 'Motorola', 'TRIUMPH' ], + 'Opus One' => [ 'Motorola', 'i1' ], + 'Photon' => [ 'Motorola', 'PHOTON' ], + 'Photon 4G' => [ 'Motorola', 'PHOTON 4G' ], + 'Photon Q' => [ 'Motorola', 'PHOTON Q' ], + 'Photon Q LTE' => [ 'Motorola', 'PHOTON Q' ], + 'XOOM' => [ 'Motorola', 'XOOM', DeviceType::TABLET ], + 'MOTOROLA XOOM MZ606' => [ 'Motorola', 'XOOM', DeviceType::TABLET ], + 'XOOM 2!' => [ 'Motorola', 'XOOM 2', DeviceType::TABLET ], + 'XOOM MZ606' => [ 'Motorola', 'XOOM WiFi', DeviceType::TABLET ], + 'Xoom Wifi' => [ 'Motorola', 'XOOM WiFi', DeviceType::TABLET ], + 'Xoom LTE' => [ 'Motorola', 'XOOM 4G LTE', DeviceType::TABLET ], + 'Xoom 3G' => [ 'Motorola', 'XOOM 3G', DeviceType::TABLET ], + '201M' => [ 'Motorola', 'RAZR M 201M', 'carrier' => 'Softbank' ], + 'ISW11M' => [ 'Motorola', 'PHOTON ISW11M', 'carrier' => 'au' ], + 'IS12M' => [ 'Motorola', 'RAZR IS12M', 'carrier' => 'au' ], + 'MOTOROLA RAZR' => [ 'Motorola', 'RAZR' ], + 'MOTWX435KT' => [ 'Motorola', 'TRIUMPH' ], + 'X3-Ice MIUI XT720 Memorila Classics' => [ 'Motorola', 'Milestone' ], + 'ET1' => [ 'Motorola', 'ET1 Enterprise Tablet', DeviceType::TABLET ], /* Products of Motorola Solutions */ + 'MC32N0' => [ 'Motorola', 'MC32 Mobile Computer', DeviceType::POS ], + 'MC40N0' => [ 'Motorola', 'MC40 Mobile Computer', DeviceType::POS ], + 'MC67NA' => [ 'Motorola', 'MC67 Mobile Computer', DeviceType::POS ], + 'TC55' => [ 'Motorola', 'TC55 Touch Computer' ], + 'TC55CH' => [ 'Motorola', 'TC55 Touch Computer' ], + 'TC70' => [ 'Motorola', 'TC70 Touch Computer' ], + 'TC75' => [ 'Motorola', 'TC75 Touch Computer' ], + 'PH350' => [ 'Mpman', 'PH350' ], + 'PH520' => [ 'Mpman', 'PH520' ], + 'MID7C' => [ 'Mpman', 'MID7C', DeviceType::TABLET ], + 'MID43C' => [ 'Mpman', 'MID43C', DeviceType::TABLET ], + 'MID74C' => [ 'Mpman', 'MID74C', DeviceType::TABLET ], + 'MID77C' => [ 'Mpman', 'MID77C', DeviceType::TABLET ], + 'MID82C' => [ 'Mpman', 'MID82C', DeviceType::TABLET ], + 'MID84C' => [ 'Mpman', 'MID84C', DeviceType::TABLET ], + 'MID102C' => [ 'Mpman', 'MID102C', DeviceType::TABLET ], + 'MID103C' => [ 'Mpman', 'MID103C', DeviceType::TABLET ], + 'MID104C' => [ 'Mpman', 'MID104C', DeviceType::TABLET ], + 'MID114C' => [ 'Mpman', 'MID114C', DeviceType::TABLET ], + 'MP717' => [ 'Mpman', 'MP717', DeviceType::TABLET ], + 'MP843' => [ 'Mpman', 'MP843', DeviceType::TABLET ], + 'MP888' => [ 'Mpman', 'MP888', DeviceType::TABLET ], + 'MP959' => [ 'Mpman', 'MP959', DeviceType::TABLET ], + 'MP969' => [ 'Mpman', 'MP969', DeviceType::TABLET ], + 'MP1010' => [ 'Mpman', 'MP1010', DeviceType::TABLET ], + 'MP7007' => [ 'Mpman', 'MP7007', DeviceType::TABLET ], + 'MPDC100 BT' => [ 'Mpman', 'MPDC100 BT', DeviceType::TABLET ], + 'MPDC110 BT IPS' => [ 'Mpman', 'MPDC110 BT', DeviceType::TABLET ], + 'MPDC112 BT IPS' => [ 'Mpman', 'MPDC112 BT', DeviceType::TABLET ], + 'MPDC8 BT' => [ 'Mpman', 'MPDC8 BT', DeviceType::TABLET ], + 'MPDC88 BT IPS' => [ 'Mpman', 'MPDC88 BT', DeviceType::TABLET ], + 'MPDC706' => [ 'Mpman', 'MPDC706', DeviceType::TABLET ], + 'MPDC903' => [ 'Mpman', 'MPDC903', DeviceType::TABLET ], + 'MPQC704 HD' => [ 'Mpman', 'MPQC704 HD', DeviceType::TABLET ], + 'MPQC784 IPS' => [ 'Mpman', 'MPQC784', DeviceType::TABLET ], + 'MPQC804HD' => [ 'Mpman', 'MPQC804 HD', DeviceType::TABLET ], + 'MPQC1010' => [ 'Mpman', 'MPQC1010', DeviceType::TABLET ], + 'Primo76' => [ 'MSI', 'Primo 76', DeviceType::TABLET ], + 'Primo 91' => [ 'MSI', 'Primo 91', DeviceType::TABLET ], + 'Enjoy 71' => [ 'MSI', 'Enjoy 71', DeviceType::TABLET ], + 'Enjoy 7 Plus' => [ 'MSI', 'WindPad Enjoy 7 Plus', DeviceType::TABLET ], + 'MTS-SP100' => [ 'MTS', 'Lifewire SP 100' ], + 'MTS-SP101' => [ 'MTS', 'Mtag 3.1 SP 101' ], + 'Multilaser Diamond' => [ 'Multilaser', 'Diamond', DeviceType::TABLET ], + 'Multilaser Orion' => [ 'Multilaser', 'Orion' ], + 'Multilaser Oxy' => [ 'Multilaser', 'Oxy', DeviceType::TABLET ], + 'Multilaser Titanium' => [ 'Multilaser', 'Titanium' ], + 'NB036' => [ 'Multilaser', 'Vibe NB036', DeviceType::TABLET ], + + 'M4(TEL)? SS[0-9]{3,4}!!' => [ + 'M4TEL SS550' => [ 'M4Tel', 'Genius' ], + 'M4TEL SS880' => [ 'M4Tel', 'Mirage' ], + 'M4TEL SS990' => [ 'M4Tel', 'E-Motion' ], + 'M4 SS1050' => [ 'M4Tel', 'SS1050' ], + 'M4 SS1060' => [ 'M4Tel', 'M4Live' ], + 'M4 SS1070' => [ 'M4Tel', 'Sense' ], + 'M4 SS1080' => [ 'M4Tel', 'Max One' ], + 'M4 SS1090' => [ 'M4Tel', 'Max Ultra' ], + 'M4 SS4040' => [ 'M4Tel', 'SS4040' ], + 'M4 SS4041' => [ 'M4Tel', 'SS4041' ], + 'M4 SS4045' => [ 'M4Tel', 'SS4045' ], + ], + + 'MyPhone A818g Duo' => [ 'MyPhone', 'A818g Duo' ], + 'MyPhone A818 Slim Duo' => [ 'MyPhone', 'A818 Slim Duo' ], + 'MyPhone A848 Duo' => [ 'MyPhone', 'A848 Duo' ], + 'MyPhone A848i Duo' => [ 'MyPhone', 'A848i Duo' ], + 'MyPhone A848g Duo' => [ 'MyPhone', 'A848g Duo' ], + 'A878 Duo' => [ 'MyPhone', 'A878 Duo' ], + 'MyPhone A888' => [ 'MyPhone', 'A888 Duo' ], + 'MyPhone A888 Duo' => [ 'MyPhone', 'A888 Duo' ], + 'My|Phone A888 Duo' => [ 'MyPhone', 'A888 Duo' ], + 'A898 Duo' => [ 'MyPhone', 'A898 Duo' ], + 'MyPhone A919 Duo' => [ 'MyPhone', 'A919 Duo' ], + 'MyPhone A919 3D Duo' => [ 'MyPhone', 'A919 3D Duo' ], + 'MyPhone A919i' => [ 'MyPhone', 'A919i' ], + 'MyPhone A919i Duo' => [ 'MyPhone', 'A919i Duo' ], + 'MyPhone Agua Cyclone' => [ 'MyPhone', 'Agua Cyclone' ], + 'MyPhone Agua Hail' => [ 'MyPhone', 'Agua Hail' ], + 'MyPhone Agua Iceberg' => [ 'MyPhone', 'Agua Iceberg' ], + 'MyPhone Agua Iceberg Mini' => [ 'MyPhone', 'Agua Iceberg Mini' ], + 'MyPhone Agua Iceberg Slim' => [ 'MyPhone', 'Agua Iceberg Slim' ], + 'MyPhone Agua Infinity' => [ 'MyPhone', 'Agua Infinity' ], + 'MyPhone Agua Ocean Lite' => [ 'MyPhone', 'Agua Ocean Lite' ], + 'MyPhone Agua Ocean Mini' => [ 'MyPhone', 'Agua Ocean Mini' ], + 'MyPhone Agua Ocean Pro' => [ 'MyPhone', 'Agua Ocean Pro' ], + 'MyPhone Agua Rain 2G' => [ 'MyPhone', 'Agua Rain' ], + 'MyPhone Agua Rain 3G' => [ 'MyPhone', 'Agua Rain' ], + 'MyPhone Agua Rio' => [ 'MyPhone', 'Agua Rio' ], + 'MyPhone Agua Rio Fun' => [ 'MyPhone', 'Agua Rio Fun' ], + 'MyPhone Agua Rio Lite' => [ 'MyPhone', 'Agua Rio Lite' ], + 'MyPhone Agua Storm' => [ 'MyPhone', 'Agua Storm' ], + 'MyPhone Agua Vortex' => [ 'MyPhone', 'Agua Vortex' ], + 'myPhone C Smart' => [ 'MyPhone', 'C Smart' ], + 'myPhone Cube' => [ 'MyPhone', 'Cube' ], + 'myPhone Cube 16GB' => [ 'MyPhone', 'Cube' ], + 'myPhone Duosmart' => [ 'MyPhone', 'Duosmart' ], + 'myPhone FUN 2' => [ 'MyPhone', 'Fun 2' ], + 'myPhone Funky' => [ 'MyPhone', 'Funky' ], + 'myPhone Hammer' => [ 'MyPhone', 'Hammer' ], + 'myPhone INFINITY 3G' => [ 'MyPhone', 'Infinity' ], + 'myPhone NEXT' => [ 'MyPhone', 'NEXT' ], + 'myPhone NEXTS' => [ 'MyPhone', 'NEXT S' ], + 'myPhone NEXT S' => [ 'MyPhone', 'NEXT S' ], + 'myPhone Smart' => [ 'MyPhone', 'Smart' ], + 'myPhone S-line' => [ 'MyPhone', 'S-line' ], + 'MyPhone Rio Craze' => [ 'MyPhone', 'Rio Craze' ], + 'MyPhone Rio Grande' => [ 'MyPhone', 'Rio Grande' ], + 'MyPhone Rio Junior TV' => [ 'MyPhone', 'Rio Junior TV' ], + 'MyPhone Rio 2 Fun' => [ 'MyPhone', 'Rio 2 Fun' ], + 'MyPhone UNO' => [ 'MyPhone', 'Uno' ], + 'MyPhone Xperia Rain 3G' => [ 'MyPhone', 'Xperia Rain' ], + 'MyPad 2' => [ 'MyPhone', 'MyPad 2', DeviceType::TABLET ], + 'MyPad 750HD' => [ 'MyPhone', 'MyPad 750 HD', DeviceType::TABLET ], + 'MyPad 1000 HD' => [ 'MyPhone', 'MyPad 1000 HD', DeviceType::TABLET ], + + 'MY ?SAGA!!' => [ + 'MySAGA C1' => [ 'Mysaga', 'C1' ], + 'MY SAGA C2' => [ 'Mysaga', 'C2' ], + 'MY SAGA C3' => [ 'Mysaga', 'C3' ], + 'MYSAGA M1' => [ 'Mysaga', 'M1' ], + ], + + 'M\.T\.T\.!!' => [ + 'M.T.T. SmartFun' => [ 'M.T.T.', 'Smart Fun' ], + 'M.T.T.SmartMax' => [ 'M.T.T.', 'Smart Max' ], + 'M.T.T. Smart Multimedia' => [ 'M.T.T.', 'Smart Multimedia' ], + 'M.T.T. Tablet' => [ 'M.T.T.', 'Tablet', DeviceType::TABLET ], + ], + + 'Newman K1' => [ 'Newman', 'K1' ], + 'NewmanK1' => [ 'Newman', 'K1' ], + 'Newman K2' => [ 'Newman', 'K2' ], + 'N1' => [ 'Newman', 'N1' ], + 'Newman N1' => [ 'Newman', 'N1' ], + 'Newman N2!' => [ 'Newman', 'N2' ], + 'Newman-N2!' => [ 'Newman', 'N2' ], + 'Newpad' => [ 'Newsmy', 'Newpad', DeviceType::TABLET ], + 'Newpad-K97' => [ 'Newsmy', 'Newpad K97', DeviceType::TABLET ], + 'Newpad-NP900' => [ 'Newsmy', 'Newpad NP900', DeviceType::TABLET ], + 'P7' => [ 'Newsmy', 'Newpad P7', DeviceType::TABLET ], + 'Newpad P9' => [ 'Newsmy', 'Newpad P9', DeviceType::TABLET ], + 'Newpad P72' => [ 'Newsmy', 'Newpad P72', DeviceType::TABLET ], + 'Newsmy P72' => [ 'Newsmy', 'Newpad P72', DeviceType::TABLET ], + 'Newsmy P72-C' => [ 'Newsmy', 'Newpad P72', DeviceType::TABLET ], + 'Newsmy T3' => [ 'Newsmy', 'Newpad T3', DeviceType::TABLET ], + 'Newsmy T7II' => [ 'Newsmy', 'Newpad T7 II', DeviceType::TABLET ], + 'M-PAD N8' => [ 'Newsmy', 'M-pad N8', DeviceType::TABLET ], + + 'LTB-HS' => [ 'NEC', 'LifeTouch B' ], + 'LT-TLA' => [ 'NEC', 'LifeTouch L' ], + 'NEC-STR' => [ 'NEC', 'LifeTouch L' ], + 'LT-NA7' => [ 'NEC', 'LifeTouch Note' ], + 'LT-NA7F' => [ 'NEC', 'LifeTouch Note' ], + + 'D000-0000(13|18|19)-[0-9]{3,3}!' => [ 'NEC', 'LifeTouch B' ], + 'D000-0000(01|07)-[A-Z][0-9]{2,2}!' => [ 'NEC', 'LifeTouch S' ], + 'D000-000002-[W0][0-9]{2,2}!' => [ 'NEC', 'LifeTouch W' ], + 'D000-0000(10|11)-N!' => [ 'NEC', 'LifeTouch Note' ], + + 'D000 000043' => [ 'NEC', 'NS8368', DeviceType::TELEVISION ], + + 'N-0[0-9][A-Z]!!' => [ + 'N-01D' => [ 'NEC', 'MEDIAS PP N-01D', 'carrier' => 'DoCoMo' ], + 'N-02E' => [ 'NEC', 'MEDIAS U N-02E', 'carrier' => 'DoCoMo' ], + 'N-03E' => [ 'NEC', 'N-03E', 'carrier' => 'Disney Mobile' ], + 'N-04C' => [ 'NEC', 'MEDIAS N-04C', 'carrier' => 'DoCoMo' ], + 'N-04D' => [ 'NEC', 'MEDIAS LTE N-04D', 'carrier' => 'DoCoMo' ], + 'N-04E' => [ 'NEC', 'MEDIAS X N-04E', 'carrier' => 'DoCoMo' ], + 'N-05D' => [ 'NEC', 'MEDIAS ES N-05D', 'carrier' => 'DoCoMo' ], + 'N-05E' => [ 'NEC', 'MEDIAS W N-05E', 'carrier' => 'DoCoMo' ], + 'N-06C' => [ 'NEC', 'MEDIAS WP N-06C', 'carrier' => 'DoCoMo' ], + 'N-06D' => [ 'NEC', 'MEDIAS Tab N-06D', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + 'N-06E' => [ 'NEC', 'MEDIAS X N-06E', 'carrier' => 'DoCoMo' ], + 'N-07D' => [ 'NEC', 'MEDIAS X N-07D', 'carrier' => 'DoCoMo' ], + 'N-08D' => [ 'NEC', 'MEDIAS Tab UL N-08D', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + ], + + 'NEC-0912' => [ 'NEC', 'MEDIAS U N-02E', 'carrier' => 'DoCoMo' ], + 'IS11N' => [ 'NEC', 'MEDIAS BR IS11N', 'carrier' => 'au' ], + '101N' => [ 'NEC', 'MEDIAS CH 101N', 'carrier' => 'Softbank' ], + 'NEC-101S' => [ 'NEC', 'MEDIAS 101S' ], + 'NECTEL-101S' => [ 'NEC', 'MEDIAS 101S' ], + 'NEC-101T' => [ 'NEC', 'MEDIAS 101T' ], + '101T' => [ 'NEC', 'MEDIAS 101T' ], + 'NEC-101TH' => [ 'NEC', 'MEDIAS 101TH' ], + 'NEC-102' => [ 'NEC', 'MEDIAS 102' ], + 'NE-103T' => [ 'NEC', 'MEDIAS U 103T' ], + 'NEC909e' => [ 'NEC', 'MEDIAS 909e' ], + 'NE-202' => [ 'NEC', 'MEDIAS', 'carrier' => 'Biglobe' ], + 'NE-201A1A' => [ 'NEC', 'Terrain' ], + 'NEC-NE-201A1A' => [ 'NEC', 'Terrain' ], + 'NEC-NEC-NE-201A1A' => [ 'NEC', 'Terrain' ], + + 'LaVieTab!!' => [ + 'LaVieTab PC-TE508S1' => [ 'NEC', 'LaVie Tab E TE508', DeviceType::TABLET ], + 'LaVieTab PC-TE510N1B' => [ 'NEC', 'LaVie Tab E TE510', DeviceType::TABLET ], + 'LaVieTab PC-TE510S1' => [ 'NEC', 'LaVie Tab E TE510', DeviceType::TABLET ], + 'LaVieTab TE510S1' => [ 'NEC', 'LaVie Tab E TE510', DeviceType::TABLET ], + 'LaVieTab PC-TS507N1S' => [ 'NEC', 'LaVie Tab S TS507', DeviceType::TABLET ], + ], + + 'PC-TE307N1W' => [ 'NEC', 'LaVie Tab E TE307', DeviceType::TABLET ], + 'NEC PC-TE508S1' => [ 'NEC', 'LaVie Tab E TE508', DeviceType::TABLET ], + 'PC-TE508BAW' => [ 'NEC', 'LaVie Tab E TE508', DeviceType::TABLET ], + 'PC-TS508T1W' => [ 'NEC', 'LaVie Tab S TS508', DeviceType::TABLET ], + 'PC-TS708T1W' => [ 'NEC', 'LaVie Tab S TS708', DeviceType::TABLET ], + + 'N8730-411' => [ 'NEC', 'AGT10', DeviceType::TABLET ], + 'N8730-41101' => [ 'NEC', 'AGT10', DeviceType::TABLET ], + 'N8730-41102' => [ 'NEC', 'AGT10', DeviceType::TABLET ], + + 'OPS-DRD Digital Signage Player' => [ 'NEC', 'OPS-DRD Digital Signage Player', DeviceType::SIGNAGE ], + + 'neken!!' => [ + 'neken N5' => [ 'Neken', 'N5' ], + 'neken N6' => [ 'Neken', 'N6' ], + 'neken NX' => [ 'Neken', 'NX' ], + ], + + 'GTV100' => [ 'NETGEAR', 'NeoTV Prime', DeviceType::TELEVISION, Flag::GOOGLETV ], + + 'NEO!!' => [ + 'NEO N01' => [ 'NEO', 'N01' ], + 'NEO N002' => [ 'NEO', 'N002' ], + 'NEO N002i' => [ 'NEO', 'N002i' ], + ], + + '(Nexian )?NX-A[0-9]{3,3}!!' => [ + 'NX-A712' => [ 'Nexian', 'Explorer' ], + 'Nexian NX-A890' => [ 'Nexian', 'Journey' ], + 'NX-A890' => [ 'Nexian', 'Journey' ], + 'NX-A891' => [ 'Nexian', 'Ultra Journey' ], + 'NX-A895' => [ 'Nexian', 'Cosmo Journey' ], + 'NX-A899' => [ 'Nexian', 'Xtreme' ], + ], + + 'Nextbook Premium 7' => [ 'Nextbook', 'Premium 7', DeviceType::EREADER ], + 'M726HC' => [ 'Nextbook', 'Premium 7', DeviceType::EREADER ], + 'Next7C12!' => [ 'Nextbook', 'Premium 7', DeviceType::EREADER ], + 'Next7D12!' => [ 'Nextbook', 'Premium 7', DeviceType::EREADER ], + 'Next7P12!' => [ 'Nextbook', 'Premium 7', DeviceType::EREADER ], + 'Next7Q12!' => [ 'Nextbook', 'Premium 7', DeviceType::EREADER ], + 'Next7P' => [ 'Nextbook', 'Premium 7', DeviceType::EREADER ], + 'Next7S' => [ 'Nextbook', 'Premium 7', DeviceType::EREADER ], + 'NXM726' => [ 'Nextbook', 'Premium 7', DeviceType::EREADER ], + 'NXM726HN' => [ 'Nextbook', 'Premium 7', DeviceType::EREADER ], + 'NXM726HN C030' => [ 'Nextbook', 'Premium 7', DeviceType::EREADER ], + 'NXM726HN HASTINGS' => [ 'Nextbook', 'Premium 7', DeviceType::EREADER ], + 'NXM727KC!' => [ 'Nextbook', 'Premium 7', DeviceType::EREADER ], + 'Nextbook Premium 7 SE' => [ 'Nextbook', 'Premium 7 SE', DeviceType::EREADER ], + 'NEXT8P' => [ 'Nextbook', 'Premium 8', DeviceType::EREADER ], + 'Next8P11' => [ 'Nextbook', 'Premium 8', DeviceType::EREADER ], + 'Next8P12' => [ 'Nextbook', 'Premium 8', DeviceType::EREADER ], + 'NXM803HC' => [ 'Nextbook', 'Premium 8', DeviceType::EREADER ], + 'NXM803HD' => [ 'Nextbook', 'Premium 8', DeviceType::EREADER ], + 'NX868QW8G' => [ 'Nextbook', 'Premium 8', DeviceType::EREADER ], + 'DATAM803HC' => [ 'Nextbook', 'Premium 8', DeviceType::EREADER ], + 'DATAM805HC' => [ 'Nextbook', 'Premium 8 SE', DeviceType::EREADER ], + 'NXM805ND' => [ 'Nextbook', 'Premium 8 SE', DeviceType::EREADER ], + 'NXM805ND EN' => [ 'Nextbook', 'Premium 8 SE', DeviceType::EREADER ], + 'DATAM819HD!' => [ 'Nextbook', 'Premium 8', DeviceType::EREADER ], + 'Next9P' => [ 'Nextbook', 'Premium 9', DeviceType::EREADER ], + 'NXM908HC' => [ 'Nextbook', 'Premium 9', DeviceType::EREADER ], + 'Next10P12' => [ 'Nextbook', 'Premium 10', DeviceType::EREADER ], + 'NEXT' => [ 'Nextbook', 'Next', DeviceType::EREADER ], + 'NXM703U' => [ 'Nextbook', 'Next 2', DeviceType::EREADER ], + 'NXM901' => [ 'Nextbook', 'Next 3', DeviceType::EREADER], + 'NXM736' => [ 'Nextbook', 'Next 6', DeviceType::EREADER], + 'NX700QC' => [ 'Nextbook', '7', DeviceType::TABLET], + 'NX785QC8G' => [ 'Nextbook', '8', DeviceType::TABLET], + 'NXM900MC' => [ 'Nextbook', '8 HD', DeviceType::TABLET], + 'NGM Black Hole' => [ 'NGM', 'Black Hole' ], + 'Dynamic Fun' => [ 'NGM', 'Dynamic Fun' ], + 'Dynamic Jump' => [ 'NGM', 'Dynamic Jump' ], + 'Dynamic Maxi' => [ 'NGM', 'Dynamic Maxi' ], + 'Dynamic Milo' => [ 'NGM', 'Dynamic Milo' ], + 'Dynamic Racing 2' => [ 'NGM', 'Dynamic Racing 2' ], + 'NGM Dynamic Racing 2' => [ 'NGM', 'Dynamic Racing 2' ], + 'NGM Dynamic Racing 3' => [ 'NGM', 'Dynamic Racing 3' ], + 'Dynamic Raging Go' => [ 'NGM', 'Dynamic Racing Go' ], + 'Dynamic Shake' => [ 'NGM', 'Dynamic Shake' ], + 'NGM Dynamic Star' => [ 'NGM', 'Dynamic Star' ], + 'Stylo' => [ 'NGM', 'Dynamic Stylo' ], + 'NGM Dynamic Stylo' => [ 'NGM', 'Dynamic Stylo' ], + 'Dynamic Wide' => [ 'NGM', 'Dynamic Wide' ], + 'Dynamic Wing' => [ 'NGM', 'Dynamic Wing' ], + 'Forward Active' => [ 'NGM', 'Forward Active' ], + 'Forward Art' => [ 'NGM', 'Forward Art' ], + 'Forward Escape' => [ 'NGM', 'Forward Escape' ], + 'Forward Endurance' => [ 'NGM', 'Forward Endurance' ], + 'ForwardEndurance' => [ 'NGM', 'Forward Endurance' ], + 'FORWARD EVOLVE' => [ 'NGM', 'Forward Evolve' ], + 'Forward Infinity' => [ 'NGM', 'Forward Infinity' ], + 'NGM Forward Infinity' => [ 'NGM', 'Forward Infinity' ], + 'Forward Next' => [ 'NGM', 'Forward Next' ], + 'Now' => [ 'NGM', 'Forward Now' ], + 'Forward Prime' => [ 'NGM', 'Forward Prime' ], + 'Forward Racing 3' => [ 'NGM', 'Forward Racing 3' ], + 'Dynamic Racing 3' => [ 'NGM', 'Forward Racing 3' ], + 'NGM Forward Racing HD' => [ 'NGM', 'Forward Racing HD' ], + 'Forward Ruby' => [ 'NGM', 'Forward Ruby' ], + 'ForwardRuby' => [ 'NGM', 'Forward Ruby' ], + 'Forward Shake' => [ 'NGM', 'Forward Shake' ], + 'ForwardXtreme' => [ 'NGM', 'Forward Xtreme' ], + 'Forward Young' => [ 'NGM', 'Forward Young' ], + 'NGM Forward Young' => [ 'NGM', 'Forward Young' ], + 'ForwardZero' => [ 'NGM', 'Forward Zero' ], + 'Forward 5 5' => [ 'NGM', 'Forward 5.5' ], + 'Forward 5.5' => [ 'NGM', 'Forward 5.5' ], + 'NGM Harley' => [ 'NGM', 'Harley Davidson' ], + 'Infinity' => [ 'NGM', 'Infinity' ], + 'Life' => [ 'NGM', 'Life' ], + 'NGM Orion' => [ 'NGM', 'Orion' ], + 'NGM Spirit' => [ 'NGM', 'Spirit' ], + 'NGM Time' => [ 'NGM', 'Time' ], + 'NGM Vanity Smart' => [ 'NGM', 'Vanity Smart' ], + 'NGM Action' => [ 'NGM', 'WeMove Action' ], + 'NGM Legend' => [ 'NGM', 'WeMove Legend' ], + 'NGM-Legend/Legend' => [ 'NGM', 'WeMove Legend' ], + 'NGM Legend2' => [ 'NGM', 'WeMove Legend 2' ], + 'NGM LegendXL' => [ 'NGM', 'WeMove Legend XL' ], + 'NGM Miracle' => [ 'NGM', 'WeMove Miracle' ], + 'NGM P0laris' => [ 'NGM', 'WeMove Polaris' ], + 'NGM Wilco' => [ 'NGM', 'WeMove Wilco' ], + 'NGM WINN' => [ 'NGM', 'Winn' ], + 'COOLPIX S800c' => [ 'Nikon', 'Coolpix S800c', DeviceType::CAMERA ], + 'COOLPIX S810c' => [ 'Nikon', 'Coolpix S810c', DeviceType::CAMERA ], + 'i5300' => [ 'Ninetology', 'Palette' ], + 'i5350' => [ 'Ninetology', 'Pearl Mini' ], + 'nine i7400' => [ 'Ninetology', 'Black Pearl' ], + 'I 7520' => [ 'Ninetology', 'Stealth' ], + 'i8400' => [ 'Ninetology', 'U9 P1' ], + 'i8450' => [ 'Ninetology', 'U9 Q1' ], + 'i9400' => [ 'Ninetology', 'Black Pearl II' ], + 'i9430' => [ 'Ninetology', 'Insight' ], + 'i9480' => [ 'Ninetology', 'U9 X1' ], + 'i9500' => [ 'Ninetology', 'Stealth II' ], + 'i9570' => [ 'Ninetology', 'U9 Z1' ], + 'NO1 S6' => [ 'No.1', 'S6' ], + + 'NOAIN!!' => [ + 'NOAIN A700' => [ 'Noain', 'A700' ], + 'NOAIN A900' => [ 'Noain', 'A900' ], + 'NOAIN A900S' => [ 'Noain', 'A900S' ], + 'NOAIN A903' => [ 'Noain', 'A903' ], + 'NOAIN A918' => [ 'Noain', 'A918' ], + ], + + 'NBX-T7013N' => [ 'Noblex', 'T7013N', DeviceType::TABLET ], + 'NBX-T7023N' => [ 'Noblex', 'T7023N', DeviceType::TABLET ], + 'Nokia N9' => [ 'Nokia', 'N9' ], + 'Nokia N900' => [ 'Nokia', 'N900' ], + 'Nokia X' => [ 'Nokia', 'X', DeviceType::MOBILE, Flag::NOKIAX ], + 'Nokia X Dual SIM' => [ 'Nokia', 'X', DeviceType::MOBILE, Flag::NOKIAX ], + 'RM-980' => [ 'Nokia', 'X', DeviceType::MOBILE, Flag::NOKIAX ], + 'Nokia X+' => [ 'Nokia', 'X+', DeviceType::MOBILE, Flag::NOKIAX ], + 'Nokia Xplus' => [ 'Nokia', 'X+', DeviceType::MOBILE, Flag::NOKIAX ], + 'Nokia XL 4G' => [ 'Nokia', 'XL', DeviceType::MOBILE, Flag::NOKIAX ], + 'Nokia XL' => [ 'Nokia', 'XL', DeviceType::MOBILE, Flag::NOKIAX ], + 'Nokia XL Dual SIM' => [ 'Nokia', 'XL', DeviceType::MOBILE, Flag::NOKIAX ], + 'RM-1061' => [ 'Nokia', 'XL', DeviceType::MOBILE, Flag::NOKIAX ], + 'Nokia X2' => [ 'Nokia', 'X2', DeviceType::MOBILE, Flag::NOKIAX ], + 'NokiaX2DS' => [ 'Nokia', 'X2', DeviceType::MOBILE, Flag::NOKIAX ], + 'Lumia800' => [ 'Nokia', 'Lumia 800' ], + 'Lumia 900' => [ 'Nokia', 'Lumia 900' ], + 'Notion Ink ADAM' => [ 'Notion Ink', 'ADAM', DeviceType::TABLET ], + 'Adam' => [ 'Notion Ink', 'ADAM', DeviceType::TABLET ], + 'AND1' => [ 'NUgen', 'AND1' ], + 'Zaffire 785' => [ 'Nuqleo', 'Zaffire 785', DeviceType::TABLET ], + 'Zaffire 970' => [ 'Nuqleo', 'Zaffire 970', DeviceType::TABLET ], + 'P4D Sirius' => [ 'Nvsbl', 'P4D SIRIUS', DeviceType::TABLET ], + + 'Tegra!!' => [ + 'Tegra Note 7' => [ 'Nvidia', 'Tegra Note 7', DeviceType::TABLET ], + 'Tegra Note 8' => [ 'Nvidia', 'Tegra Note 8', DeviceType::TABLET ], + 'TegraNote-Premium' => [ 'Nvidia', 'Tegra Note Premium', DeviceType::TABLET ], + 'TegraNote-P1640' => [ 'Nvidia', 'Tegra Note P1640', DeviceType::TABLET ], + ], + + 'NYX!!' => [ + 'NYX FLY' => [ 'NYX Mobile', 'Fly' ], + 'NYX FLY II' => [ 'NYX Mobile', 'Fly II' ], + 'NYX NOBA II' => [ 'NYX Mobile', 'Noba II' ], + 'NYX ZEUZ HD' => [ 'NYX Mobile', 'Zeuz HD' ], + ], + + 'O\+!!' => [ + 'O+8.1Android' => [ 'O+', '8.1' ], + 'O+ 8.12 Android' => [ 'O+', '8.12' ], + 'O+ 8.15 Android' => [ 'O+', '8.15' ], + 'O+ 8.16 Android' => [ 'O+', '8.16' ], + 'O+ 8.31z Android' => [ 'O+', '8.31' ], + 'O+ 8.33 Android' => [ 'O+', '8.33' ], + 'O+ 8.36z Android' => [ 'O+', '8.36' ], + 'O+ 8.37' => [ 'O+', '8.37' ], + 'O+ 8.37 Android' => [ 'O+', '8.37' ], + 'O+ 8.38 Android' => [ 'O+', '8.38' ], + 'O+ 8.5 Android' => [ 'O+', '8.5' ], + 'O+ 8.52 Android' => [ 'O+', '8.52' ], + 'O+ 8.6 Android' => [ 'O+', '8.6' ], + 'O+ 8.7 Android' => [ 'O+', '8.7' ], + 'O+ 8.75 Android' => [ 'O+', '8.75' ], + 'O+ 8.9 Android' => [ 'O+', '8.9' ], + 'O+ 8.91 Android' => [ 'O+', '8.91' ], + 'O+ 8.92 Android' => [ 'O+', '8.92' ], + 'O+ 8.93 Android' => [ 'O+', '8.93' ], + 'O+ 9.76' => [ 'O+', '9.76' ], + 'O+ 360' => [ 'O+', '360' ], + 'O+ 360 HD' => [ 'O+', '360 HD' ], + 'O+ 360 HD 2.0' => [ 'O+', '360 HD' ], + 'O+ 360 ALPHA PLUS' => [ 'O+', '360 Alpha Plus' ], + 'O+ 360 Alpha Plus 2.0' => [ 'O+', '360 Alpha Plus' ], + 'O+ AIR' => [ 'O+', 'Air' ], + 'O+ FAB 3G' => [ 'O+', 'Fab' ], + 'O+FAB COLOR' => [ 'O+', 'Fab Color' ], + 'O+ FAB ELITE' => [ 'O+', 'Fab Elite' ], + 'O+ Grande' => [ 'O+', 'Grande' ], + 'O+ Ultra' => [ 'O+', 'Ultra' ], + 'O+ TABLET' => [ 'O+', 'Tablet', DeviceType::TABLET ], + ], + + 'EFM710A' => [ 'Oblio', 'Mint 7x', DeviceType::TABLET ], + 'ODYS-Chrono' => [ 'Odys', 'Chrono', DeviceType::TABLET ], + 'ODYS-EVO' => [ 'Odys', 'Evo', DeviceType::TABLET ], + 'Loox' => [ 'Odys', 'Loox', DeviceType::TABLET ], + 'Odys-Loox' => [ 'Odys', 'Loox', DeviceType::TABLET ], + 'ADM816KC' => [ 'Odys', 'Neo S8 Plus', DeviceType::TABLET ], + 'ADM816HC' => [ 'Odys', 'Neo X', DeviceType::TABLET ], + 'ADM712HC' => [ 'Odys', 'Neo X7', DeviceType::TABLET ], + 'ODYS-NOON' => [ 'Odys', 'Noon', DeviceType::TABLET ], + 'PEDI' => [ 'Odys', 'Pedi', DeviceType::TABLET ], + 'PRIME PLUS 3G' => [ 'Odys', 'Prime Plus', DeviceType::TABLET ], + 'ODYS-Q' => [ 'Odys', 'Q', DeviceType::TABLET ], + 'ODYS Space' => [ 'Odys', 'Space', DeviceType::TABLET ], + 'ODYS Space TKI BRR233v7' => [ 'Odys', 'Space', DeviceType::TABLET ], + 'ODYS Space TKI BRR233v9' => [ 'Odys', 'Space', DeviceType::TABLET ], + 'ADM8000KP A' => [ 'Odys', 'Titan', DeviceType::TABLET ], + 'ADM8000KP B' => [ 'Odys', 'Titan', DeviceType::TABLET ], + 'UNO X8' => [ 'Odys', 'Uno X8', DeviceType::TABLET ], + 'UNO X10' => [ 'Odys', 'Uno X10', DeviceType::TABLET ], + 'XELIO' => [ 'Odys', 'Xelio', DeviceType::TABLET ], + 'XELIO7PHONETAB' => [ 'Odys', 'Xelio 7 Phone Tab', DeviceType::TABLET ], + 'Xelio 7 pro' => [ 'Odys', 'Xelio 7 Pro', DeviceType::TABLET ], + 'XELIO7PRO' => [ 'Odys', 'Xelio 7 Pro', DeviceType::TABLET ], + 'XELIO10 QUAD' => [ 'Odys', 'Xelio 10', DeviceType::TABLET ], + 'XELIO10EXTREME' => [ 'Odys', 'Xelio 10 Extreme', DeviceType::TABLET ], + 'Xelio 10 Pro' => [ 'Odys', 'Xelio 10 Pro', DeviceType::TABLET ], + 'Xelio10Pro' => [ 'Odys', 'Xelio 10 Pro', DeviceType::TABLET ], + 'ODYS-Xpress' => [ 'Odys', 'Xpress', DeviceType::TABLET ], + 'XPRESS PRO' => [ 'Odys', 'Xpress Pro', DeviceType::TABLET ], + 'ODYS Xtreme' => [ 'Odys', 'Xtreme', DeviceType::TABLET ], + 'Olivetti Olipad 100' => [ 'Olivetti', 'Olipad 100', DeviceType::TABLET ], + 'OP110' => [ 'Olivetti', 'Olipad 110', DeviceType::TABLET ], + 'Graphos A10' => [ 'Olivetti', 'Olipad Graphos A10', DeviceType::TABLET ], + 'A0001' => [ 'OnePlus', 'One' ], + 'One A0001' => [ 'OnePlus', 'One' ], + 'OnePlus One' => [ 'OnePlus', 'One' ], + 'OnePlus One A0001' => [ 'OnePlus', 'One' ], + 'A1001' => [ 'OnePlus', 'One' ], + 'A0002' => [ 'OnePlus', '2' ], + 'ONE A2001' => [ 'OnePlus', '2' ], + 'ONE A2003' => [ 'OnePlus', '2' ], + 'ONE A2005' => [ 'OnePlus', '2' ], + 'OnePlus2' => [ 'OnePlus', '2' ], + 'ONE E1000' => [ 'OnePlus', 'X' ], + 'ONE E1001' => [ 'OnePlus', 'X' ], + 'ONE E1003' => [ 'OnePlus', 'X' ], + 'ONE E1005' => [ 'OnePlus', 'X' ], + 'ONDA MID' => [ 'Onda', 'MID', DeviceType::TABLET ], + 'ONDA A9 Core4' => [ 'Onda', 'A9 Quad Core', DeviceType::TABLET ], + 'ONDA VI10' => [ 'Onda', 'VI10', DeviceType::TABLET ], + 'V701s Core4' => [ 'Onda', 'V701s Quad Core', DeviceType::TABLET ], + 'V711s Core4' => [ 'Onda', 'V711s Quad Core', DeviceType::TABLET ], + 'V712 Core4' => [ 'Onda', 'V712 Quad Core', DeviceType::TABLET ], + 'V719 3G' => [ 'Onda', 'V719 3G', DeviceType::TABLET ], + 'V801 Core4' => [ 'Onda', 'V801 Quad Core', DeviceType::TABLET ], + 'V801s Core4' => [ 'Onda', 'V801s Quad Core', DeviceType::TABLET ], + 'V811 Core4' => [ 'Onda', 'V811 Quad Core', DeviceType::TABLET ], + 'Onda V812' => [ 'Onda', 'V812', DeviceType::TABLET ], + 'V812 Core4' => [ 'Onda', 'V812 Quad Core', DeviceType::TABLET ], + 'V813 Core4' => [ 'Onda', 'V813 Quad Core', DeviceType::TABLET ], + 'V813s Core4' => [ 'Onda', 'V813s Quad Core', DeviceType::TABLET ], + 'V818' => [ 'Onda', 'V818', DeviceType::TABLET ], + 'V818mini' => [ 'Onda', 'V818 Mini', DeviceType::TABLET ], + 'V819mini' => [ 'Onda', 'V819 Mini', DeviceType::TABLET ], + 'V819 3G' => [ 'Onda', 'V819 3G', DeviceType::TABLET ], + 'V819i' => [ 'Onda', 'V819i', DeviceType::TABLET ], + 'V971 Core4' => [ 'Onda', 'V971 Quad Core', DeviceType::TABLET ], + 'V971s Core4' => [ 'Onda', 'V971s Quad Core', DeviceType::TABLET ], + 'V972 Core4' => [ 'Onda', 'V972 Quad Core', DeviceType::TABLET ], + 'V973 Core4' => [ 'Onda', 'V973 Quad Core', DeviceType::TABLET ], + 'V975 Core4' => [ 'Onda', 'V975 Quad Core', DeviceType::TABLET ], + 'V975i' => [ 'Onda', 'V975i Quad Core', DeviceType::TABLET ], + 'V975m' => [ 'Onda', 'V975m', DeviceType::TABLET ], + 'V975m Core4' => [ 'Onda', 'V975m Quad Core', DeviceType::TABLET ], + 'ONDA v975m' => [ 'Onda', 'V975m Quad Core', DeviceType::TABLET ], + 'V975s Core4' => [ 'Onda', 'V975s Quad Core', DeviceType::TABLET ], + 'ONDA V989' => [ 'Onda', 'V989', DeviceType::TABLET ], + 'ONDA V989 Core8' => [ 'Onda', 'V989 Octo Core', DeviceType::TABLET ], + 'VX580A' => [ 'Onda', 'VX580A', DeviceType::TABLET ], + 'VX580W' => [ 'Onda', 'VX580W', DeviceType::TABLET ], + 'VX610A' => [ 'Onda', 'VX610A', DeviceType::TABLET ], + 'TQ150' => [ 'Onda', 'TQ150' ], + 'TT101' => [ 'Onda', 'TT101', DeviceType::TABLET ], + 'DP-X1' => [ 'Onkyo', 'DP-X1', DeviceType::MEDIA ], + 'N2T' => [ 'ONN', 'N2T', DeviceType::TABLET ], + 'Renesas!' => [ 'Opad', 'Renesas', DeviceType::TABLET ], + 'A31' => [ 'Oppo', 'A31' ], + 'OB-OPPO A31c' => [ 'Oppo', 'A31c' ], + 'OPPO A800' => [ 'Oppo', 'A800' ], + 'Find 5' => [ 'Oppo', 'Find 5' ], + 'X903' => [ 'Oppo', 'Find Me X903' ], + 'X905' => [ 'Oppo', 'Find 3 X905' ], + 'OPPOX905' => [ 'Oppo', 'Find 3 X905' ], + 'X906' => [ 'Oppo', 'Finder X906' ], + 'X907' => [ 'Oppo', 'Finder X907' ], + 'OPPOX907' => [ 'Oppo', 'Finder X907' ], + 'OPPO Find5' => [ 'Oppo', 'Find 5 X909' ], + 'OPPOX909' => [ 'Oppo', 'Find 5 X909' ], + 'OPPO X909' => [ 'Oppo', 'Find 5 X909' ], + 'X909' => [ 'Oppo', 'Find 5 X909' ], + 'X909T' => [ 'Oppo', 'Find 5 X909T' ], + 'X9000' => [ 'Oppo', 'Find 7a X9000' ], + 'X9006' => [ 'Oppo', 'Find 7a X9006' ], + 'X9007' => [ 'Oppo', 'Find 7a X9007' ], + 'X9015' => [ 'Oppo', 'Find X9015' ], + 'OPPOX9015' => [ 'Oppo', 'Find X9015' ], + 'X9017' => [ 'Oppo', 'Finder X9017' ], + 'OPPOX9017' => [ 'Oppo', 'Finder X9017' ], + 'FIND7' => [ 'Oppo', 'Find 7 X9070' ], + 'OPPO find7' => [ 'Oppo', 'Find 7 X9070' ], + 'X9070' => [ 'Oppo', 'Find 7 X9070' ], + 'X9076' => [ 'Oppo', 'Find 7 X9076' ], + 'X9077' => [ 'Oppo', 'Find 7 X9077' ], + 'OPPOR601' => [ 'Oppo', 'Real R601' ], + 'R801' => [ 'Oppo', 'Real R801' ], + 'OPPOR801' => [ 'Oppo', 'Real R801' ], + 'R801T' => [ 'Oppo', 'Real R801T' ], + 'OPPOR803' => [ 'Oppo', 'Real R803' ], + 'R803' => [ 'Oppo', 'Real R803' ], + 'R805' => [ 'Oppo', 'Real R805' ], + 'OPPOR805' => [ 'Oppo', 'Real R805' ], + 'R807' => [ 'Oppo', 'Real R807' ], + 'OPPOR807' => [ 'Oppo', 'Real R807' ], + 'R809T' => [ 'Oppo', 'R809T' ], + 'R811' => [ 'Oppo', 'R811' ], + 'OPPO R811' => [ 'Oppo', 'R811' ], + 'R813T' => [ 'Oppo', 'R813T' ], + 'OPPO R813T' => [ 'Oppo', 'R813T' ], + 'OPPO R815' => [ 'Oppo', 'Find Clover R815' ], + 'R815' => [ 'Oppo', 'Find Clover R815' ], + 'R815T' => [ 'Oppo', 'Find Clover R815T' ], + 'R815W' => [ 'Oppo', 'Real R815W' ], + 'OPPOR817' => [ 'Oppo', 'Real R817' ], + 'R817' => [ 'Oppo', 'Real R817' ], + 'R817T' => [ 'Oppo', 'Real R817T' ], + 'R819' => [ 'Oppo', 'R819' ], + 'Oppo R819' => [ 'Oppo', 'R819' ], + 'R819T!' => [ 'Oppo', 'Real R819T' ], + 'OPPO R821' => [ 'Oppo', 'Find Muse R821' ], + 'R821' => [ 'Oppo', 'Find Muse R821' ], + 'R821T' => [ 'Oppo', 'Find Muse R821T' ], + 'R823T' => [ 'Oppo', 'R823T' ], + 'R827' => [ 'Oppo', 'Find 5 mini R827' ], + 'R827T' => [ 'Oppo', 'Find 5 mini R827T' ], + 'R829' => [ 'Oppo', 'R1 R829' ], + 'R829T' => [ 'Oppo', 'R1 R829T' ], + 'R830' => [ 'Oppo', 'Neo R830' ], + 'R830S' => [ 'Oppo', 'Neo R830S' ], + 'OPPO R831' => [ 'Oppo', 'Neo R831' ], + 'Oppo R831 Limited Edition' => [ 'Oppo', 'Neo R831' ], + 'R831K' => [ 'Oppo', 'Real 20 R831K' ], + 'R831L' => [ 'Oppo', 'Neo 5 R831L' ], + 'R831T' => [ 'Oppo', 'Neo R831T' ], + 'R831S' => [ 'Oppo', 'R831S' ], + 'R831' => [ 'Oppo', 'Neo R831' ], + 'R833T' => [ 'Oppo', 'R833T' ], + 'R850' => [ 'Oppo', 'R850' ], + 'R883T' => [ 'Oppo', 'R883T' ], + 'R1001' => [ 'Oppo', 'Joy R1001' ], + 'OPPO R1001' => [ 'Oppo', 'Joy R1001' ], + 'R1011' => [ 'Oppo', 'Joy Plus R1011' ], + 'R2001' => [ 'Oppo', 'Yoyo R2001' ], + 'R2010' => [ 'Oppo', 'R2010' ], + 'R2017' => [ 'Oppo', 'R2017' ], + 'R6006' => [ 'Oppo', 'Find 7 mini R6006' ], + 'R6007' => [ 'Oppo', 'R6007' ], + 'R7005' => [ 'Oppo', 'R3 R7005' ], + 'R7007' => [ 'Oppo', 'R3 R7007' ], + 'R8000' => [ 'Oppo', 'R1S R8000' ], + 'R8001' => [ 'Oppo', 'R1K R8001' ], + 'R8006' => [ 'Oppo', 'R1L R8006' ], + 'R8007' => [ 'Oppo', 'R1S R8007' ], + 'OPPOR8015' => [ 'Oppo', 'Find Guitar R8015' ], + 'R8015' => [ 'Oppo', 'Find Guitar R8015' ], + 'R8106' => [ 'Oppo', 'R5 R8106' ], + 'R8107' => [ 'Oppo', 'R5 R8107' ], + 'R8109' => [ 'Oppo', 'R8109' ], + 'R8111' => [ 'Oppo', 'Find Melody R8111' ], + 'OPPOR8111' => [ 'Oppo', 'Find Melody R8111' ], + 'R8113' => [ 'Oppo', 'Find Piano R8113' ], + 'R8200' => [ 'Oppo', 'R1c R8200' ], + 'R8201' => [ 'Oppo', 'R1x R8201' ], + 'R8205' => [ 'Oppo', 'R1c R8205' ], + 'R8206' => [ 'Oppo', 'R1x R8206' ], + 'R8207' => [ 'Oppo', 'R1c R8207' ], + 'OPPOT29' => [ 'Oppo', 'T29' ], + '(OPPO-?)?T703!' => [ 'Oppo', 'T703' ], + 'OPPOU701' => [ 'Oppo', 'Ulike U701' ], + 'U701' => [ 'Oppo', 'Ulike U701' ], + 'U701T' => [ 'Oppo', 'U701T' ], + 'U702' => [ 'Oppo', 'U702' ], + 'U705' => [ 'Oppo', 'U705' ], + 'U705T' => [ 'Oppo', 'Ulike 2 U705T' ], + 'U705W' => [ 'Oppo', 'Ulike 2 U705W' ], + 'U707' => [ 'Oppo', 'Find Way S U707' ], + 'U707T' => [ 'Oppo', 'Find Way S U707T' ], + 'U708' => [ 'Oppo', 'U2S U708' ], + 'U7011' => [ 'Oppo', 'Find Gemini U7011' ], + 'OPPOU7011' => [ 'Oppo', 'Find Gemini U7011' ], + 'OPPOU7015' => [ 'Oppo', 'Find Way U7015' ], + 'U7015' => [ 'Oppo', 'Find Way U7015' ], + 'OPPO N1' => [ 'Oppo', 'N1' ], + 'N51(10|11|16|17)!' => [ 'Oppo', 'N1 mini' ], + 'N52(06|07|09)!' => [ 'Oppo', 'N3' ], + 'OPPO R7' => [ 'Oppo', 'R7' ], + 'OPPO R7s' => [ 'Oppo', 'R7s' ], + 'OPPO R7 Plus' => [ 'Oppo', 'R7 Plus' ], + 'A31c' => [ 'Oppo', 'A31c' ], + 'W8' => [ 'Oppo', 'W8' ], + '1105' => [ 'Oppo', '1105' ], + '1107' => [ 'Oppo', '1107' ], + 'OB-OPPO 3005' => [ 'Oppo', '3005' ], + + 'OPSSON!!' => [ + 'OPSSON D1' => [ 'Opsson', 'D1' ], + 'OPSSON D1s' => [ 'Opsson', 'D1s' ], + 'OPSSON S1' => [ 'Opsson', 'S1' ], + 'OPSSON S7' => [ 'Opsson', 'S7' ], + 'OPSSON X5' => [ 'Opsson', 'X5' ], + 'OPSSON IDO 5000' => [ 'Opsson', 'IDO 5000' ], + 'OPSSON IDO5300' => [ 'Opsson', 'IDO 5300' ], + 'OPSSON IDO 5311' => [ 'Opsson', 'IDO 5311' ], + 'OPSSON IDO 5322' => [ 'Opsson', 'IDO 5322' ], + 'OPSSON IDO5355' => [ 'Opsson', 'IDO 5355' ], + 'OPSSON iMO850' => [ 'Opsson', 'IMO 850' ], + 'OPSSON iMO1000' => [ 'Opsson', 'IMO 1000' ], + 'OPSSON IVO6600' => [ 'Opsson', 'IVO 6600' ], + 'OPSSON IVO6622' => [ 'Opsson', 'IVO 6622' ], + 'OPSSON IVO6633' => [ 'Opsson', 'IVO 6633' ], + 'OPSSON IVO6655' => [ 'Opsson', 'IVO 6655' ], + 'OPSSON IVO6666' => [ 'Opsson', 'IVO 6666' ], + 'OPSSON IVO 6677' => [ 'Opsson', 'IVO 6677' ], + 'OPSSON IVO 8800' => [ 'Opsson', 'IVO 8800' ], + ], + + 'OP0118-12' => [ 'Oregon Scientific', 'Meep!', DeviceType::TABLET ], + + '(OV-|Overmax|Vertis)!!' => [ + 'OV-TB-07B' => [ 'Overmax', 'TB-07B', DeviceType::TABLET ], + 'OV-TB-08 II' => [ 'Overmax', 'TB-08 II', DeviceType::TABLET ], + 'OV-TB-O9C' => [ 'Overmax', 'TB-09C', DeviceType::TABLET ], + 'OV-BaseCore10' => [ 'Overmax', 'BaseCore 10', DeviceType::TABLET ], + 'OV-BaseoneII' => [ 'Overmax', 'BaseOne II', DeviceType::TABLET ], + 'OV-BasicTab' => [ 'Overmax', 'BasicTab', DeviceType::TABLET ], + 'OV-DualDriveMax2' => [ 'Overmax', 'DualDrive Max II', DeviceType::TABLET ], + 'OV-Newbase2' => [ 'Overmax', 'NewBase 2', DeviceType::TABLET ], + 'OV-Quattor10' => [ 'Overmax', 'Quatttor 10', DeviceType::TABLET ], + 'OV-Quattor 10+' => [ 'Overmax', 'Quatttor 10+', DeviceType::TABLET ], + 'OV-Solution 7II' => [ 'Overmax', 'Solution 7 II', DeviceType::TABLET ], + 'OV-Solution 10II' => [ 'Overmax', 'Solution 10 II', DeviceType::TABLET ], + 'OV-SteelCore7' => [ 'Overmax', 'SteelCore 7', DeviceType::TABLET ], + 'OV-STEELCORE 10+ (Z)' => [ 'Overmax', 'SteelCore 10+', DeviceType::TABLET ], + 'OV-SteelCore10+II' => [ 'Overmax', 'SteelCore 10+ II', DeviceType::TABLET ], + 'OV-Steelcore10III' => [ 'Overmax', 'SteelCore 10 III', DeviceType::TABLET ], + 'OV-Steelcore 10III(Z)' => [ 'Overmax', 'SteelCore 10 III', DeviceType::TABLET ], + 'Overmax Vertis' => [ 'Overmax', 'Vertis 01' ], + 'Overmax Vertis 01' => [ 'Overmax', 'Vertis 01' ], + 'OV-Vertis-01' => [ 'Overmax', 'Vertis 01' ], + 'OV-Vertis-02' => [ 'Overmax', 'Vertis 02' ], + 'Vertis Expi' => [ 'Overmax', 'Vertis Expi' ], + 'Vertis Famy' => [ 'Overmax', 'Vertis Famy' ], + ], + + 'Oysters Pacific 800' => [ 'Oysters', 'Pacific 800' ], + 'Oysters T3 3G' => [ 'Oysters', 'T3' ], + 'Oysters T7B 3G' => [ 'Oysters', 'T7B' ], + 'Oysters T7X 3G' => [ 'Oysters', 'T7X' ], + 'OYSTERS T14N 3G' => [ 'Oysters', 'T14N' ], + 'Oysters T37' => [ 'Oysters', 'T37' ], + 'Oysters T72H 3G' => [ 'Oysters', 'T72' ], + 'Oysters T72HRi 3G' => [ 'Oysters', 'T72' ], + 'OYSTERS T80 3G' => [ 'Oysters', 'T80' ], + 'Liberty Tab G100' => [ 'Packard Bell', 'Liberty Tab G100', DeviceType::TABLET ], + 'G100W' => [ 'Packard Bell', 'Liberty Tab G100', DeviceType::TABLET ], + + 'P-0[0-9][A-Z]!!' => [ + 'P-01D' => [ 'Panasonic', 'P-01D', 'carrier' => 'DoCoMo' ], + 'P-02D' => [ 'Panasonic', 'LUMIX Phone P-02D', 'carrier' => 'DoCoMo' ], + 'P-02E' => [ 'Panasonic', 'ELUGA X P-02E', 'carrier' => 'DoCoMo' ], + 'P-03E' => [ 'Panasonic', 'ELUGA P P-03E', 'carrier' => 'DoCoMo' ], + 'P-04D' => [ 'Panasonic', 'P-04D', 'carrier' => 'DoCoMo' ], + 'P-05D' => [ 'Panasonic', 'P-05D', 'carrier' => 'Disney Mobile' ], + 'P-06D' => [ 'Panasonic', 'ELUGA V P-06D', 'carrier' => 'DoCoMo' ], + 'P-07C' => [ 'Panasonic', 'P-07C', 'carrier' => 'DoCoMo' ], + 'P-07D' => [ 'Panasonic', 'ELUGA power P-07D', 'carrier' => 'DoCoMo' ], + 'P-08D' => [ 'Panasonic', 'ELUGA Live P-08D', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + ], + + '003P' => [ 'Panasonic', 'Sweety 003P', 'carrier' => 'Softbank' ], + '101P' => [ 'Panasonic', 'LUMIX Phone 101P', 'carrier' => 'Softbank' ], + '102P' => [ 'Panasonic', 'ELUGA dL1 102P', 'carrier' => 'Softbank' ], + + 'DMC-CM1' => [ 'Panasonic', 'Lumix DMC-CM1', DeviceType::CAMERA ], + 'dL1' => [ 'Panasonic', 'Eluga dL1' ], + 'EB-4063-X' => [ 'Panasonic', 'Eluga X' ], + + 'Panasonic!!' => [ + 'Panasonic dL1' => [ 'Panasonic', 'Eluga dL1' ], + 'Panasonic ELUGA A' => [ 'Panasonic', 'Eluga A' ], + 'Panasonic ELUGA A2' => [ 'Panasonic', 'Eluga A2' ], + 'Panasonic ELUGA I' => [ 'Panasonic', 'Eluga I' ], + 'Panasonic ELUGA L 4G' => [ 'Panasonic', 'Eluga L' ], + 'Panasonic ELUGA L2' => [ 'Panasonic', 'Eluga L2' ], + 'Panasonic ELUGA S' => [ 'Panasonic', 'Eluga S' ], + 'Panasonic ELUGA S Mini' => [ 'Panasonic', 'Eluga S Mini' ], + 'Panasonic ELUGA U' => [ 'Panasonic', 'Eluga U' ], + 'Panasonic ELUGA U2' => [ 'Panasonic', 'Eluga U2' ], + 'Panasonic ELUGA Icon' => [ 'Panasonic', 'Eluga Icon' ], + 'Panasonic ELUGA Mark' => [ 'Panasonic', 'Eluga Mark' ], + 'Panasonic ELUGA Switch' => [ 'Panasonic', 'Eluga Switch' ], + 'Panasonic ELUGA Z' => [ 'Panasonic', 'Eluga Z' ], + 'Panasonic P11' => [ 'Panasonic', 'P11' ], + 'Panasonic P31' => [ 'Panasonic', 'P31' ], + 'Panasonic P41' => [ 'Panasonic', 'P41' ], + 'Panasonic P41HD' => [ 'Panasonic', 'P41 HD' ], + 'Panasonic P51' => [ 'Panasonic', 'P51' ], + 'Panasonic P55' => [ 'Panasonic', 'P55' ], + 'Panasonic P55 Novo' => [ 'Panasonic', 'P55 Novo' ], + 'Panasonic P61' => [ 'Panasonic', 'P61' ], + 'PanasonicP81' => [ 'Panasonic', 'P81' ], + 'Panasonic P81' => [ 'Panasonic', 'P81' ], + 'Panasonic T9' => [ 'Panasonic', 'T9' ], + 'Panasonic T11' => [ 'Panasonic', 'T11' ], + 'Panasonic T21' => [ 'Panasonic', 'T21' ], + 'Panasonic T31' => [ 'Panasonic', 'T31' ], + 'Panasonic T33' => [ 'Panasonic', 'T33' ], + 'Panasonic T40' => [ 'Panasonic', 'T40' ], + 'Panasonic T41' => [ 'Panasonic', 'T41' ], + 'Panasonic T45 4G' => [ 'Panasonic', 'T45' ], + 'Panasonic KX-PRXA10' => [ 'Panasonic', 'KX-PRXA10', DeviceType::DECT ], + 'Panasonic KX-PRXA15' => [ 'Panasonic', 'KX-PRXA15', DeviceType::DECT ], + 'Panasonic SV-ME970' => [ 'Panasonic', 'Viera SV-ME970', DeviceType::TABLET ], + 'Panasonic SV-ME1000' => [ 'Panasonic', 'Viera SV-ME1000', DeviceType::TABLET ], + 'Panasonic SV-MV100' => [ 'Panasonic', 'SV-MV100', DeviceType::MEDIA ], + 'Panasonic UN-MT300' => [ 'Panasonic', 'UN-MT300', DeviceType::MEDIA ], + 'Panasonic UN-W700' => [ 'Panasonic', 'Multimedia System UN-W700', DeviceType::MEDIA ], + 'Panasonic UT-PB1' => [ 'Panasonic', 'Raboo UT-PB1', DeviceType::EREADER ], + ], + + 'ELUGA I2' => [ 'Panasonic', 'Eluga I2' ], + 'ELUGA Turbo' => [ 'Panasonic', 'Eluga Turbo' ], + + 'JT-H580VT' => [ 'Panasonic', 'BizPad 7', DeviceType::TABLET ], + 'JT-H581VT' => [ 'Panasonic', 'BizPad 10', DeviceType::TABLET ], + 'JT-B1' => [ 'Panasonic', 'Toughpad JT-B1', DeviceType::TABLET ], + 'FZ-A1(A|B)!' => [ 'Panasonic', 'Toughpad FZ-A1', DeviceType::TABLET ], + 'FZ-B2(B|D)!' => [ 'Panasonic', 'Toughpad FZ-B1', DeviceType::TABLET ], + 'FZ-N1' => [ 'Panasonic', 'Toughpad FZ-N1' ], + 'FZ-X1' => [ 'Panasonic', 'Toughpad FZ-X1' ], + + 'Altus 18' => [ 'Panasonic', 'Altus 18', DeviceType::INFLIGHT ], + 'Altus 24' => [ 'Panasonic', 'Altus 24', DeviceType::INFLIGHT ], + 'Elite' => [ 'Panasonic', 'Elite', DeviceType::INFLIGHT ], + 'Elite 11' => [ 'Panasonic', 'Elite', DeviceType::INFLIGHT ], + 'Eco9 v1' => [ 'Panasonic', 'Eco 9', DeviceType::INFLIGHT ], + 'Eco9 v2' => [ 'Panasonic', 'Eco 9', DeviceType::INFLIGHT ], + 'Eco11 v2' => [ 'Panasonic', 'Eco 11', DeviceType::INFLIGHT ], + 'Smart Monitor 17' => [ 'Panasonic', 'Smart Monitor 17', DeviceType::INFLIGHT ], + + '(48|50|55)AX600C!' => [ 'Panasonic', 'Viera AX600C', DeviceType::TELEVISION ], + 'AX600C' => [ 'Panasonic', 'Viera AX600C', DeviceType::TELEVISION ], + 'AS650C' => [ 'Panasonic', 'Viera AS650C', DeviceType::TELEVISION ], + + 'VW RCBKK1' => [ 'Panasonic', 'Boukenkun Reciever VW-RCBKK1', DeviceType::TELEVISION ], + 'SMARTTVBOX' => [ 'Panasonic', 'SmartTVBox', DeviceType::TELEVISION ], + + 'pandigital9hr' => [ 'Pandigital', '9HR', DeviceType::TABLET ], + 'pandigital9hr2' => [ 'Pandigital', '9HR2', DeviceType::TABLET ], + 'pandigitalopc1' => [ 'Pandigital', 'OPC1', DeviceType::TABLET ], + 'pandigitalopp1' => [ 'Pandigital', 'OPP1', DeviceType::TABLET ], + 'pandigitalp1hr' => [ 'Pandigital', 'p1hr', DeviceType::TABLET ], + + '(SKY )?IM[- ][A-Z][0-9]{3,3}!!' => [ + 'SKY IM-A600S' => [ 'Pantech', 'SIRIUS α' ], + 'IM-A600!' => [ 'Pantech', 'SIRIUS α' ], + 'SKY IM-A630K' => [ 'Pantech', 'Izar' ], + 'IM-A630!' => [ 'Pantech', 'Izar' ], + 'SKY IM-A650S' => [ 'Pantech', 'Vega' ], + 'IM-A650!' => [ 'Pantech', 'Vega' ], + 'IM-A690!' => [ 'Pantech', 'Mirach' ], + 'IM[- ]A7(10|20)!' => [ 'Pantech', 'VegaXpress' ], + 'IM-A725!' => [ 'Pantech', 'Vega X+' ], + 'IM-A730!' => [ 'Pantech', 'Vega S' ], + 'IM-A7(40|50)!' => [ 'Pantech', 'Mirach A' ], + 'IM-A7(60|70|75|80)!' => [ 'Pantech', 'Vega Racer' ], + 'IM-A800!' => [ 'Pantech', 'Vega LTE' ], + 'IM-A810!' => [ 'Pantech', 'Vega LTE M' ], + 'IM-A820!' => [ 'Pantech', 'Vega LTE EX' ], + 'IM-A830!' => [ 'Pantech', 'Vega Racer 2' ], + 'IM-A840!' => [ 'Pantech', 'Vega S5' ], + 'IM-A850!' => [ 'Pantech', 'Vega R3' ], + 'IM-A860!' => [ 'Pantech', 'Vega NËš 6' ], + 'IM-A870!' => [ 'Pantech', 'Vega Iron' ], + 'IM-A880!' => [ 'Pantech', 'Vega LTE-A' ], + 'IM-A890!' => [ 'Pantech', 'Vega Secret Note' ], + 'IM-A900!' => [ 'Pantech', 'Vega Secret Up' ], + 'IM-A910!' => [ 'Pantech', 'Vega Iron 2' ], + 'IM-A920!' => [ 'Pantech', 'IM-A920' ], + 'IM-A930!' => [ 'Pantech', 'IM-A930' ], + 'IM-T100K' => [ 'Pantech', 'Vega NËš 5', DeviceType::TABLET ], + ], + + 'VEGA NO.6' => [ 'Pantech', 'Vega NËš 6' ], + 'PLANET' => [ 'Pantech', 'Pocket' ], + 'ADR8995!' => [ 'Pantech', 'Breakout' ], + 'ADR910L' => [ 'Pantech', 'Marauder' ], + 'ADR910L 4G' => [ 'Pantech', 'Marauder' ], + 'ADR930L' => [ 'Pantech', 'Perception' ], + 'ADR930L 4G' => [ 'Pantech', 'Perception' ], + + 'PantechP!!' => [ + 'PantechP4100!' => [ 'Pantech', 'Element', DeviceType::TABLET ], + 'PantechP7050!' => [ 'Pantech', 'P7050' ], + 'PantechP8000!' => [ 'Pantech', 'Crossover' ], + 'PantechP8010!' => [ 'Pantech', 'Flex' ], + 'PantechP9060!' => [ 'Pantech', 'Pocket' ], + 'PantechP9070!' => [ 'Pantech', 'Burst' ], + 'PantechP9090!' => [ 'Pantech', 'Magnus' ], + ], + + 'IS06' => [ 'Pantech', 'SIRIUS α IS06', 'carrier' => 'au' ], + 'PTL21' => [ 'Pantech', 'Vega PTL21', 'carrier' => 'au' ], + 'IS11PT' => [ 'Pantech', 'Mirach IS11PT', 'carrier' => 'au' ], + 'EIS01PT' => [ 'Pantech', 'EIS01PT', 'carrier' => 'au' ], + + 'FC6100' => [ 'Parrot', 'FC6100', DeviceType::CAR ], + 'chagall' => [ 'Pegatron', 'Chagall', DeviceType::TABLET ], + 'PAT712W' => [ 'Perfeo', '712 W', DeviceType::TABLET ], + '7500IPS' => [ 'Perfeo', '7500 IPS', DeviceType::TABLET ], + 'PATG7506HD' => [ 'Perfeo', '7506 HD', DeviceType::TABLET ], + 'X7G' => [ 'Pearl', 'Touchlet X7G', DeviceType::TABLET ], + 'Touchlet X10.dual' => [ 'Pearl', 'Touchlet X10.dual', DeviceType::TABLET ], + 'PP4MT-7' => [ 'Pendo', 'Pendopad 4', DeviceType::TABLET ], + 'PP4MT-9' => [ 'Pendo', 'Pendopad 4', DeviceType::TABLET ], + 'PNDPP4MT9G2' => [ 'Pendo', 'Pendopad 4', DeviceType::TABLET ], + 'PNDPP44QC7' => [ 'Pendo', 'Pendopad 7', DeviceType::TABLET ], + 'PNDPP48GP' => [ 'Pendo', 'Pendopad 8', DeviceType::TABLET ], + 'PNDPP4MT9G3' => [ 'Pendo', 'Pendopad 9.7', DeviceType::TABLET ], + 'PNDPP410GP' => [ 'Pendo', 'Pendopad 10.1', DeviceType::TABLET ], + + 'Penta!!' => [ + 'Penta IS701C' => [ 'Penta', 'T-Pad IS701C', DeviceType::TABLET ], + 'Penta IS703C' => [ 'Penta', 'T-Pad IS703C', DeviceType::TABLET ], + 'Penta WS702C' => [ 'Penta', 'T-Pad WS702C', DeviceType::TABLET ], + 'Penta WS707C' => [ 'Penta', 'T-Pad WS707C', DeviceType::TABLET ], + 'Penta WS802C' => [ 'Penta', 'T-Pad WS802C', DeviceType::TABLET ], + 'Penta WS907Q' => [ 'Penta', 'T-Pad WS907Q', DeviceType::TABLET ], + 'Penta PS650' => [ 'Penta', 'PS650', DeviceType::TABLET ], + ], + + 'IS703C' => [ 'Penta', 'T-Pad IS703C', DeviceType::TABLET ], + 'IS801C' => [ 'Penta', 'T-Pad IS801C', DeviceType::TABLET ], + + 'Pentagram!!' => [ + 'Pentagram Ego' => [ 'Pentagram', 'Ego' ], + 'PENTAGRAM EON PRIX' => [ 'Pentagram', 'Eon PRIX', DeviceType::TABLET ], + 'Pentagram Monster' => [ 'Pentagram', 'Monster' ], + 'PENTAGRAM TAB 7.3' => [ 'Pentagram', 'Tab 7.3', DeviceType::TABLET ], + 'PENTAGRAM TAB 7.5' => [ 'Pentagram', 'Tab 7.5', DeviceType::TABLET ], + 'PentagramTAB7.6' => [ 'Pentagram', 'Tab 7.6', DeviceType::TABLET ], + 'PENTAGRAM TAB Quadra 9.7' => [ 'Pentagram', 'Quadra 9.7', DeviceType::TABLET ], + ], + + 'PHICOMM!!' => [ + 'PHICOMM CLUE L' => [ 'Phicomm', 'Clue L' ], + 'PHICOMM ENERGY M' => [ 'Phicomm', 'Energy M' ], + 'PHICOMM CLUE C230' => [ 'Phicomm', 'C230' ], + 'PHICOMM C230v' => [ 'Phicomm', 'C230v' ], + 'Phicomm C230w' => [ 'Phicomm', 'C230w' ], + 'PHICOMM-E561Lv' => [ 'Phicomm', 'E561Lv' ], + 'PHICOMM E653' => [ 'Phicomm', 'E653' ], + 'PHICOMM i360' => [ 'Phicomm', 'i360' ], + 'PHICOMM i370' => [ 'Phicomm', 'i370' ], + 'PHICOMM i508' => [ 'Phicomm', 'i508' ], + 'PHICOMM i600' => [ 'Phicomm', 'i600' ], + 'PHICOMM-i700v' => [ 'Phicomm', 'i700v' ], + 'PHICOMM i800' => [ 'Phicomm', 'i800' ], + 'PHICOMM i803' => [ 'Phicomm', 'i803' ], + 'PHICOMM i803wa' => [ 'Phicomm', 'i803wa' ], + 'PHICOMM i813' => [ 'Phicomm', 'i813' ], + 'PHICOMM X100w' => [ 'Phicomm', 'X100w' ], + 'PHICOMM X100wEU' => [ 'Phicomm', 'X100w' ], + 'PHICOMM X130v' => [ 'Phicomm', 'X130v' ], + 'PHICOMM X130va' => [ 'Phicomm', 'X130va' ], + 'PHICOMM X130wEU' => [ 'Phicomm', 'X130W' ], + ], + + 'FWS[0-9]{3,3}!!' => [ + 'FWS610' => [ 'Phicomm', 'FWS610' ], + 'FWS610 EU' => [ 'Phicomm', 'FWS610' ], + 'FWS710' => [ 'Phicomm', 'FWS710' ], + 'FWS710EU' => [ 'Phicomm', 'FWS710' ], + 'FWS710a' => [ 'Phicomm', 'FWS710' ], + 'FWS810' => [ 'Phicomm', 'FWS810' ], + ], + + 'i803w' => [ 'Phicomm', 'i803w' ], + 'Philips I908' => [ 'Philips', 'I908' ], + 'Philips I928' => [ 'Philips', 'I928' ], + 'Philips S301' => [ 'Philips', 'S301' ], + 'Philips S308' => [ 'Philips', 'S308' ], + 'Philips S316T' => [ 'Philips', 'S316T' ], + 'Philips S337' => [ 'Philips', 'S337' ], + 'Philips S358' => [ 'Philips', 'S358' ], + 'Philips S388!' => [ 'Philips', 'S388' ], + 'Philips S398' => [ 'Philips', 'S398' ], + 'Philips S616' => [ 'Philips', 'S616' ], + 'Philips T3500' => [ 'Philips', 'T3500' ], + 'Philips T3566' => [ 'Philips', 'T3566' ], + + 'Philips V377' => [ 'Philips', 'Xenium V377' ], + 'Philips V387' => [ 'Philips', 'Xenium V387' ], + + 'Philips W336' => [ 'Philips', 'W336' ], + 'W337' => [ 'Philips', 'W337' ], + 'Philips W536' => [ 'Philips', 'W536' ], + 'Philips W626' => [ 'Philips', 'W626' ], + 'W626' => [ 'Philips', 'W626' ], + 'Philips W632' => [ 'Philips', 'W632' ], + 'Philips W635' => [ 'Philips', 'W635' ], + 'Philips W737' => [ 'Philips', 'W737' ], + 'Philips W832' => [ 'Philips', 'W832' ], + 'Philips W3500' => [ 'Philips', 'W3500' ], + 'Philips W3509' => [ 'Philips', 'W3509' ], + 'Philips W3550' => [ 'Philips', 'W3550' ], + 'Philips W3568' => [ 'Philips', 'W3568' ], + 'W3620' => [ 'Philips', 'W3620' ], + 'W5510' => [ 'Philips', 'W5510' ], + 'W6350' => [ 'Philips', 'W6350' ], + 'Philips W6350' => [ 'Philips', 'W6350' ], + 'PhilipsW6350' => [ 'Philips', 'W6350' ], + 'W6360' => [ 'Philips', 'W6360' ], + 'W6500' => [ 'Philips', 'W6500' ], + 'Philips W6610' => [ 'Philips', 'W6610' ], + 'W6620' => [ 'Philips', 'W6620' ], + 'Philips W6618' => [ 'Philips', 'W6618' ], + 'Philips W7555' => [ 'Philips', 'W7555' ], + 'Philips-W7555' => [ 'Philips', 'W7555' ], + 'Philips-W8500' => [ 'Philips', 'W8500' ], + 'Philips W8510' => [ 'Philips', 'W8510' ], + 'Philips W8555' => [ 'Philips', 'W8555' ], + 'Philips W8560' => [ 'Philips', 'W8560' ], + + 'SA3CNT' => [ 'Philips', 'GoGear', DeviceType::MEDIA ], + 'Philips GoGear Connect' => [ 'Philips', 'GoGear Connect', DeviceType::MEDIA ], + + 'PI2000' => [ 'Philips', 'PI2000', DeviceType::TABLET ], + 'PI2010' => [ 'Philips', 'PI2010', DeviceType::TABLET ], + 'PI2011' => [ 'Philips', 'PI2011', DeviceType::TABLET ], + 'PI3100' => [ 'Philips', 'PI3100', DeviceType::TABLET ], + 'PI3100-93' => [ 'Philips', 'PI3100', DeviceType::TABLET ], + 'PI3100Z3 93' => [ 'Philips', 'PI3100', DeviceType::TABLET ], + 'PI3105' => [ 'Philips', 'PI3105', DeviceType::TABLET ], + 'PI3106' => [ 'Philips', 'PI3106', DeviceType::TABLET ], + 'PI3110' => [ 'Philips', 'PI3110', DeviceType::TABLET ], + 'PI3205G' => [ 'Philips', 'PI3205', DeviceType::TABLET ], + 'PI3210G' => [ 'Philips', 'PI3210', DeviceType::TABLET ], + 'PI3900' => [ 'Philips', 'PI3900', DeviceType::TABLET ], + 'PI3900-93' => [ 'Philips', 'PI3900', DeviceType::TABLET ], + 'PI3910' => [ 'Philips', 'PI3910', DeviceType::TABLET ], + 'PI4010G' => [ 'Philips', 'PI4010', DeviceType::TABLET ], + 'Philips PI5000' => [ 'Philips', 'PI5000', DeviceType::TABLET ], + 'PI7000' => [ 'Philips', 'PI7000', DeviceType::TABLET ], + 'PI7100 93' => [ 'Philips', 'PI7100', DeviceType::TABLET ], + + '[0-9]{2,2}PFH6[0-9]{3,3}!' => [ 'Philips', '6000 Series', DeviceType::TELEVISION ], + 'AND1E' => [ 'Philips', 'Android TV (2014)', DeviceType::TELEVISION ], + 'AND1E TV' => [ 'Philips', 'Android TV (2014)', DeviceType::TELEVISION ], + 'HMP8100 ATV 93' => [ 'Philips', 'Smart TV Box', DeviceType::TELEVISION ], + 'HMP8100 ATV INT' => [ 'Philips', 'Smart TV Box', DeviceType::TELEVISION ], + + 'G2SMNT' => [ 'Philips', 'Smart All-in-One', DeviceType::MONITOR ], + 'G3SMNTS22' => [ 'Philips', 'Smart All-in-One', DeviceType::MONITOR ], + 'G3SMNTS23' => [ 'Philips', 'Smart All-in-One', DeviceType::MONITOR ], + + 'BIP-6000' => [ 'Pidion', 'BIP-6000' ], + + 'XDP-100R' => [ 'Pioneer', 'XDP-100R', DeviceType::MEDIA ], + + '(PNR-)?Pioneer!!' => [ + 'Pioneer E80w' => [ 'Pioneer', 'E80w' ], + 'Pioneer E81c' => [ 'Pioneer', 'E81c' ], + 'PNR-Pioneer E81c' => [ 'Pioneer', 'E81c' ], + 'Pioneer P81' => [ 'Pioneer', 'P81' ], + 'Pioneer S90w' => [ 'Pioneer', 'S90w' ], + ], + + 'E60w' => [ 'Pioneer', 'E60w' ], + + 'M6' => [ 'PiPO', 'M6', DeviceType::TABLET ], + 'M8 pro' => [ 'PiPO', 'M8 Pro', DeviceType::TABLET ], + 'M9 pro' => [ 'PiPO', 'M9 Pro', DeviceType::TABLET ], + + 'PIRANHA!!' => [ + 'PIRANHA BUSINESS TAB 7"' => [ 'Piranha', 'Business Tab 7.0', DeviceType::TABLET ], + 'PIRANHA BUSINESS TAB 10.1' => [ 'Piranha', 'Business Tab 10.1', DeviceType::TABLET ], + 'PIRANHA BUSINESS TAB 10.1 ZEUS WHITE' => [ 'Piranha', 'Business Tab 10.1', DeviceType::TABLET ], + 'PIRANHA BUSINESS II TAB 9.0' => [ 'Piranha', 'Business II Tab 9.0', DeviceType::TABLET ], + 'PIRANHA BUSINESS II TAB 9"' => [ 'Piranha', 'Business II Tab 9.0', DeviceType::TABLET ], + 'PIRANHA BUSINESS III TAB 10.1 ZEUS WHITE' => [ 'Piranha', 'Business III Tab 10.1', DeviceType::TABLET ], + 'PIRANHA BUSINESS III TAB 10.1' => [ 'Piranha', 'Business III Tab 10.1', DeviceType::TABLET ], + 'PIRANHA Pro II Tab 7.0' => [ 'Piranha', 'Pro II Tab 7.0', DeviceType::TABLET ], + 'PIRANHA Ultra Tab 7.0' => [ 'Piranha', 'Ultra Tab 7.0', DeviceType::TABLET ], + 'PIRANHA Ultra Tab Zeus White 10.1' => [ 'Piranha', 'Ultra Tab 10.1', DeviceType::TABLET ], + 'PIRANHA ULTRA TAB 10.1"' => [ 'Piranha', 'Ultra Tab 10.1', DeviceType::TABLET ], + 'PIRANHA ULTRA II TAB 7' => [ 'Piranha', 'Ultra II Tab 7.0', DeviceType::TABLET ], + 'PIRANHA Ultra II TAB 9.0' => [ 'Piranha', 'Ultra II Tab 9.0', DeviceType::TABLET ], + ], + + 'PGM 398' => [ 'Pixcom', 'PGM 398' ], + 'Playboy PB-S3' => [ 'Playboy', 'Note 5' ], + + '(PLOYER-)?MOMO!!' => [ + 'PLOYER-MOMO' => [ 'Ployer', 'MOMO', DeviceType::TABLET ], + 'MOMO' => [ 'Ployer', 'MOMO', DeviceType::TABLET ], + 'momo-mini' => [ 'Ployer', 'MOMO Mini', DeviceType::TABLET ], + 'MOMO7' => [ 'Ployer', 'MOMO7', DeviceType::TABLET ], + 'MOMO7star' => [ 'Ployer', 'MOMO7 Star', DeviceType::TABLET ], + 'MOMO7 Talent' => [ 'Ployer', 'MOMO7 Talent', DeviceType::TABLET ], + 'MOMO8' => [ 'Ployer', 'MOMO8', DeviceType::TABLET ], + 'MOMO8A' => [ 'Ployer', 'MOMO8 A', DeviceType::TABLET ], + 'MOMO8 bird' => [ 'Ployer', 'MOMO8 Bird', DeviceType::TABLET ], + 'MOMO8 Star!' => [ 'Ployer', 'MOMO8 Star', DeviceType::TABLET ], + 'MOMO8 Xing!' => [ 'Ployer', 'MOMO8 Xing', DeviceType::TABLET ], + 'MOMO9' => [ 'Ployer', 'MOMO9', DeviceType::TABLET ], + 'MOMO93G' => [ 'Ployer', 'MOMO9 3G', DeviceType::TABLET ], + 'MOMO9 3G' => [ 'Ployer', 'MOMO9 3G', DeviceType::TABLET ], + 'MOMO9-V P706' => [ 'Ployer', 'MOMO9 V', DeviceType::TABLET ], + 'MOMO9 STAR' => [ 'Ployer', 'MOMO9 Star', DeviceType::TABLET ], + 'MOMO9star' => [ 'Ployer', 'MOMO9 Star', DeviceType::TABLET ], + 'MOMO9 plus III' => [ 'Ployer', 'MOMO9 Plus III', DeviceType::TABLET ], + 'MOMO9-3' => [ 'Ployer', 'MOMO9 III', DeviceType::TABLET ], + 'MOMO9-3S' => [ 'Ployer', 'MOMO9 III', DeviceType::TABLET ], + 'MOMO9 Plus-3' => [ 'Ployer', 'MOMO9 III', DeviceType::TABLET ], + 'MOMO9 3GQ' => [ 'Ployer', 'MOMO9 3GQ', DeviceType::TABLET ], + 'MOMO11' => [ 'Ployer', 'MOMO11', DeviceType::TABLET ], + 'MOMO11 III' => [ 'Ployer', 'MOMO11 III', DeviceType::TABLET ], + 'MOMO11-3' => [ 'Ployer', 'MOMO11 III', DeviceType::TABLET ], + 'MOMO11 bird' => [ 'Ployer', 'MOMO11 Bird', DeviceType::TABLET ], + 'MOMO11bird3' => [ 'Ployer', 'MOMO11 Bird 3', DeviceType::TABLET ], + 'MOMO11 bird3' => [ 'Ployer', 'MOMO11 Bird 3', DeviceType::TABLET ], + 'MOMO11Master' => [ 'Ployer', 'MOMO11 Master', DeviceType::TABLET ], + 'MOMO11Speed' => [ 'Ployer', 'MOMO11 Speed', DeviceType::TABLET ], + 'MOMO11speed3' => [ 'Ployer', 'MOMO11 Speed 3', DeviceType::TABLET ], + 'MOMO12' => [ 'Ployer', 'MOMO12', DeviceType::TABLET ], + 'MOMO15' => [ 'Ployer', 'MOMO15', DeviceType::TABLET ], + 'MOMO19' => [ 'Ployer', 'MOMO19', DeviceType::TABLET ], + 'MOMO19HD' => [ 'Ployer', 'MOMO19 HD', DeviceType::TABLET ], + 'MOMO20' => [ 'Ployer', 'MOMO20', DeviceType::TABLET ], + 'MOMO20-AU' => [ 'Ployer', 'MOMO20', DeviceType::TABLET ], + 'MOMO20S' => [ 'Ployer', 'MOMO20', DeviceType::TABLET ], + ], + + 'PocketBook A7' => [ 'PocketBook', 'A7', DeviceType::TABLET ], + 'PocketBook A10' => [ 'PocketBook', 'A10', DeviceType::TABLET ], + 'PocketBook A10 3G' => [ 'PocketBook', 'A10 3G', DeviceType::TABLET ], + 'Obreey SURFpad' => [ 'PocketBook', 'SURFpad', DeviceType::TABLET ], + 'PocketBook SURFpad2' => [ 'PocketBook', 'SURFpad 2', DeviceType::TABLET ], + 'PocketBook SURFpad 3 (7,85")' => [ 'PocketBook', 'SURFpad 3', DeviceType::TABLET ], + 'PocketBook SURFpad 4 S' => [ 'PocketBook', 'SURFpad 4 S', DeviceType::TABLET ], + 'PocketBook SURFpad 4 M' => [ 'PocketBook', 'SURFpad 4 M', DeviceType::TABLET ], + 'PocketBook SURFpad 4 L' => [ 'PocketBook', 'SURFpad 4 L', DeviceType::TABLET ], + 'MOB-5045' => [ 'Point Of View', 'Mobii Phone 5045' ], + 'Mobii 7' => [ 'Point Of View', 'Mobii 7', DeviceType::TABLET ], + 'POV-Mobii-7' => [ 'Point Of View', 'Mobii 7', DeviceType::TABLET ], + 'POV Mobii 7' => [ 'Point Of View', 'Mobii 7', DeviceType::TABLET ], + 'POV TAB-P506!' => [ 'Point Of View', 'Mobii 506', DeviceType::TABLET ], + 'POV TAB-P517!' => [ 'Point Of View', 'Mobii 517', DeviceType::TABLET ], + 'POV TAB-P527!' => [ 'Point Of View', 'Mobii 527', DeviceType::TABLET ], + 'POV TAB-P629!' => [ 'Point Of View', 'Mobii 629', DeviceType::TABLET ], + 'POV TAB-P701!' => [ 'Point Of View', 'Mobii 701', DeviceType::TABLET ], + 'POV TAB-P703!' => [ 'Point Of View', 'Mobii 703', DeviceType::TABLET ], + 'POV TAB-P720!' => [ 'Point Of View', 'Mobii 720', DeviceType::TABLET ], + 'POV TAB-P721A!' => [ 'Point Of View', 'Mobii 721A', DeviceType::TABLET ], + 'POV TAB-P721!' => [ 'Point Of View', 'Mobii 721', DeviceType::TABLET ], + 'POV TAB-P722C!' => [ 'Point Of View', 'Mobii 722C', DeviceType::TABLET ], + 'POV TAB-P731N!' => [ 'Point Of View', 'Mobii 731N', DeviceType::TABLET ], + 'POV TAB-P825!' => [ 'Point Of View', 'Mobii 825', DeviceType::TABLET ], + 'POV TAB-P925!' => [ 'Point Of View', 'Mobii 925', DeviceType::TABLET ], + 'POV TAB-PR945!' => [ 'Point Of View', 'Mobii 945 HD+', DeviceType::TABLET ], + 'POV TAB-P1025!' => [ 'Point Of View', 'Mobii 1025', DeviceType::TABLET ], + 'POV TAB-P1030!' => [ 'Point Of View', 'Mobii 1030', DeviceType::TABLET ], + 'POV TAB-PI1045!' => [ 'Point Of View', 'Mobii 1045', DeviceType::TABLET ], + 'POV TAB-P1325!' => [ 'Point Of View', 'Mobii 1325', DeviceType::TABLET ], + 'PlayTabPro' => [ 'Point Of View', 'PlayTabPro', DeviceType::TABLET ], + '(POV )?TAB-PLAYTABPRO!' => [ 'Point Of View', 'PlayTabPro', DeviceType::TABLET ], + '(POV )?TAB-PROTAB25!' => [ 'Point Of View', 'ProTab 25', DeviceType::TABLET ], + '(POV )?TAB-PROTAB26!' => [ 'Point Of View', 'ProTab 26', DeviceType::TABLET ], + 'POV TAB-PROTAB27' => [ 'Point Of View', 'ProTab 27', DeviceType::TABLET ], + '(POV )?TAB-PROTAB30!' => [ 'Point Of View', 'ProTab 30', DeviceType::TABLET ], + 'TAB-PROTAB2-IPS9' => [ 'Point Of View', 'ProTab2', DeviceType::TABLET ], + 'TAB-PROTAB2-IPS-3G' => [ 'Point Of View', 'ProTab2', DeviceType::TABLET ], + 'TAB-PROTAB2-IPS-16' => [ 'Point Of View', 'ProTab2', DeviceType::TABLET ], + 'TAB-PROTAB2.4' => [ 'Point Of View', 'ProTab2 4', DeviceType::TABLET ], + 'TAB-PROTAB2XL' => [ 'Point Of View', 'ProTab2 XL', DeviceType::TABLET ], + 'TAB-PROTAB2.4XL' => [ 'Point Of View', 'ProTab2 XL 4', DeviceType::TABLET ], + 'PROTAB2XXL' => [ 'Point Of View', 'ProTab2 XXL', DeviceType::TABLET ], + 'TAB-PROTAB2XXL' => [ 'Point Of View', 'ProTab2 XXL', DeviceType::TABLET ], + 'TAB-PROTAB2XXL(4)' => [ 'Point Of View', 'ProTab2 XXL', DeviceType::TABLET ], + '(POV )?TAB-PROTAB2XXL(4)!' => [ 'Point Of View', 'ProTab2 XXL', DeviceType::TABLET ], + '(POV )?TAB NAVI7 3G M!' => [ 'Point Of View', 'Onyx 507', DeviceType::TABLET ], + 'POV_TAB-NAVI7-3G-M' => [ 'Point Of View', 'Onyx 507', DeviceType::TABLET ], + 'POV TAB-P547(v1.0)' => [ 'Point Of View', 'Onyx 547', DeviceType::TABLET ], + 'POV TV-HDMI-200BT' => [ 'Point Of View', 'Smart TV', DeviceType::TELEVISION ], + 'POV TV-HDMI-200BT(V2.0)' => [ 'Point Of View', 'Smart TV', DeviceType::TELEVISION ], + 'POV TV-HDMI-210' => [ 'Point Of View', 'Smart TV', DeviceType::TELEVISION ], + 'POV TV-HDMI-KB-01' => [ 'Point Of View', 'Smart TV', DeviceType::TELEVISION ], + 'POV TV-SMARTTV-500' => [ 'Point Of View', 'Smart TV', DeviceType::TELEVISION ], + + 'MID[C012]!!' => [ + 'MIDC409' => [ 'Polaroid', 'Diamond III 9', DeviceType::TABLET ], + 'MIDC410' => [ 'Polaroid', 'Diamond 10.1', DeviceType::TABLET ], + 'MID2407' => [ 'Polaroid', 'Infinite 7', DeviceType::TABLET ], + 'MID1014' => [ 'Polaroid', 'Pearl 10.1', DeviceType::TABLET ], + 'MID1047' => [ 'Polaroid', 'Platinum 10.1', DeviceType::TABLET ], + 'MIDC407' => [ 'Polaroid', 'Rainbow 7', DeviceType::TABLET ], + 'MID0714' => [ 'Polaroid', 'MID0714', DeviceType::TABLET ], + 'MID0714PCE01' => [ 'Polaroid', 'MID0714', DeviceType::TABLET ], + 'MID0714PGE02.133' => [ 'Polaroid', 'MID0714', DeviceType::TABLET ], + 'MIDC010PR001' => [ 'Polaroid', 'MIDC010', DeviceType::TABLET ], + 'MIDC110' => [ 'Polaroid', 'MIDC110', DeviceType::TABLET ], + 'MIDC124' => [ 'Polaroid', 'MIDC124', DeviceType::TABLET ], + 'MIDC127' => [ 'Polaroid', 'MIDC127', DeviceType::TABLET ], + 'MIDC128' => [ 'Polaroid', 'MIDC128', DeviceType::TABLET ], + 'MIDC408' => [ 'Polaroid', 'MIDC408', DeviceType::TABLET ], + 'MIDC408PR002' => [ 'Polaroid', 'MIDC408', DeviceType::TABLET ], + 'MIDC410PR' => [ 'Polaroid', 'MIDC410', DeviceType::TABLET ], + 'MIDC430' => [ 'Polaroid', 'MIDC430', DeviceType::TABLET ], + 'MIDC497' => [ 'Polaroid', 'MIDC497', DeviceType::TABLET ], + 'MIDC700PR001' => [ 'Polaroid', 'MIDC700', DeviceType::TABLET ], + 'MIDC800PR001' => [ 'Polaroid', 'MIDC800', DeviceType::TABLET ], + 'MIDC801' => [ 'Polaroid', 'MIDC801', DeviceType::TABLET ], + 'MIDC802' => [ 'Polaroid', 'MIDC802', DeviceType::TABLET ], + 'MIDC901' => [ 'Polaroid', 'MIDC901', DeviceType::TABLET ], + 'MIDC970' => [ 'Polaroid', 'MIDC970', DeviceType::TABLET ], + 'MIDCD10' => [ 'Polaroid', 'MIDCD10', DeviceType::TABLET ], + 'MIDCD97' => [ 'Polaroid', 'MIDCD97', DeviceType::TABLET ], + ], + + 'PMID!!' => [ + 'PMID70C' => [ 'Polaroid', 'PMID 70c', DeviceType::TABLET ], + 'PMID70DC' => [ 'Polaroid', 'PMID 70dc', DeviceType::TABLET ], + 'PMID71C' => [ 'Polaroid', 'PMID 71c', DeviceType::TABLET ], + 'PMID80C' => [ 'Polaroid', 'PMID 80c', DeviceType::TABLET ], + 'PMID700' => [ 'Polaroid', 'PMID 700', DeviceType::TABLET ], + 'PMID700BF' => [ 'Polaroid', 'PMID 700bf', DeviceType::TABLET ], + 'PMID701C' => [ 'Polaroid', 'PMID 701c', DeviceType::TABLET ], + 'PMID701DC' => [ 'Polaroid', 'PMID 701dc', DeviceType::TABLET ], + 'PMID702DC' => [ 'Polaroid', 'PMID 702dc', DeviceType::TABLET ], + 'PMID703C' => [ 'Polaroid', 'PMID 703c', DeviceType::TABLET ], + 'PMID703DC' => [ 'Polaroid', 'PMID 703dc', DeviceType::TABLET ], + 'PMID703GK' => [ 'Polaroid', 'PMID 703gk', DeviceType::TABLET ], + 'PMID704G' => [ 'Polaroid', 'PMID 704g', DeviceType::TABLET ], + 'PMID704GK' => [ 'Polaroid', 'PMID 704gk', DeviceType::TABLET ], + 'PMID705' => [ 'Polaroid', 'PMID 705', DeviceType::TABLET ], + 'PMID705X' => [ 'Polaroid', 'PMID 705x', DeviceType::TABLET ], + 'PMID706' => [ 'Polaroid', 'PMID 706', DeviceType::TABLET ], + 'PMID720' => [ 'Polaroid', 'PMID 720', DeviceType::TABLET ], + 'PMID800' => [ 'Polaroid', 'PMID 800', DeviceType::TABLET ], + 'PMID901' => [ 'Polaroid', 'PMID 901', DeviceType::TABLET ], + 'PMID920' => [ 'Polaroid', 'PMID 920', DeviceType::TABLET ], + 'PMID-973G' => [ 'Polaroid', 'PMID 973g', DeviceType::TABLET ], + 'PMID1000B' => [ 'Polaroid', 'PMID 1000b', DeviceType::TABLET ], + 'PMID1000B V2' => [ 'Polaroid', 'PMID 1000b', DeviceType::TABLET ], + 'PMID-1000DC' => [ 'Polaroid', 'PMID 1000dc', DeviceType::TABLET ], + 'PMID1000!' => [ 'Polaroid', 'PMID 1000', DeviceType::TABLET ], + 'PMID4311' => [ 'Polaroid', 'PMID 4311', DeviceType::TABLET ], + 'PMID4312' => [ 'Polaroid', 'PMID 4312', DeviceType::TABLET ], + ], + + 'PSPT350' => [ 'Polaroid', 'PSPT350' ], + 'Polaroid PSPT401' => [ 'Polaroid', 'Turbo 401' ], + 'Polaroid PSPC505' => [ 'Polaroid', 'Cosmo 505' ], + 'Polaroid P4005A' => [ 'Polaroid', 'P4005A' ], + + 'PROV!!' => [ + 'PROV350' => [ 'Polaroid', 'PROV350' ], + 'PROV400' => [ 'Polaroid', 'PROV400' ], + ], + + 'PRO!!' => [ + 'PRO400B' => [ 'Polaroid', 'PRO400B' ], + 'PRO450B' => [ 'Polaroid', 'PRO450B' ], + 'PRO4006' => [ 'Polaroid', 'PRO4006' ], + 'PRO4611PR201' => [ 'Polaroid', 'PRO4611' ], + 'PRO5701' => [ 'Polaroid', 'PRO5701' ], + 'PRO7111' => [ 'Polaroid', 'PRO7111' ], + ], + + 'POLY ?PAD!!' => [ + 'POLY PAD 8208HD' => [ 'Polypad', '8208 HD', DeviceType::TABLET ], + 'POLY PAD 8216HD' => [ 'Polypad', '8216 HD', DeviceType::TABLET ], + 'POLY PAD 9708HD' => [ 'Polypad', '9708 HD', DeviceType::TABLET ], + 'POLY PAD 9716HD' => [ 'Polypad', '9716 HD', DeviceType::TABLET ], + 'Polypad C508' => [ 'Polypad', 'C508', DeviceType::TABLET ], + ], + + 'POLYTRON!!' => [ + 'POLYTRON R1500' => [ 'Polytron', 'R1500 Rocket Q-Five' ], + 'POLYTRON R2452' => [ 'Polytron', 'R2452 Rocket S1' ], + 'POLYTRON R2506' => [ 'Polytron', 'R2506 Rocket T4' ], + 'POLYTRON R3450' => [ 'Polytron', 'R3450 Rocket Jetz' ], + 'POLYTRON R3500' => [ 'Polytron', 'R3500 Jetz 5.0' ], + 'POLYTRON S2350' => [ 'Polytron', 'S2350 Rocket' ], + 'POLYTRON T7800' => [ 'Polytron', 'T7800 Cosmica' ], + 'Polytron W1320' => [ 'Polytron', 'W1320' ], + 'POLYTRON W1400' => [ 'Polytron', 'W1400 Rocket Jetz 4.0' ], + 'POLYTRON W2430' => [ 'Polytron', 'W2430 Wizard Twins' ], + 'POLYTRON W2500' => [ 'Polytron', 'W2500 Wizard Twins' ], + 'POLYTRON W3430' => [ 'Polytron', 'W3430 Wizard Crystal' ], + 'POLYTRON W6450' => [ 'Polytron', 'W6450 Rocket Star' ], + 'POLYTRON W7430' => [ 'Polytron', 'W7430 Wizard Quadra Mini' ], + 'POLYTRON W7450' => [ 'Polytron', 'W7450 Wizard Quadra' ], + 'POLYTRON W7451' => [ 'Polytron', 'W7451 Quadra S' ], + 'POLYTRON W7452' => [ 'Polytron', 'W7452 Quadra S2' ], + 'POLYTRON W7531' => [ 'Polytron', 'W7531 Wizard Quadra V' ], + 'POLYTRON W7550 LITE' => [ 'Polytron', 'W7550 Rocket Quadra Lite' ], + 'POLYTRON W8470' => [ 'Polytron', 'W8470 Wizard Quadra HD' ], + ], + + 'POMP!!' => [ + 'POMP C6' => [ 'POMP', 'C6' ], + 'POMP P8' => [ 'POMP', 'P8' ], + 'POMP W88' => [ 'POMP', 'W88' ], + 'POMP-W88A' => [ 'POMP', 'W88A' ], + 'POMP-W88S' => [ 'POMP', 'W88S' ], + 'POMP W89' => [ 'POMP', 'W89' ], + 'POMP-W89' => [ 'POMP', 'W89' ], + 'POMP W99' => [ 'POMP', 'W99' ], + 'POMP W99A' => [ 'POMP', 'W99A' ], + ], + + 'ACT2000' => [ 'Poptronix', 'ACT2000', DeviceType::TABLET ], + + 'Air!!' => [ + 'Air 7.85 3G' => [ 'Roverpad', 'Air 7.85 3G', DeviceType::TABLET ], + 'Air 10.1 3G' => [ 'Roverpad', 'Air 10.1 3G', DeviceType::TABLET ], + 'Air S70' => [ 'Roverpad', 'Air S70', DeviceType::TABLET ], + ], + + 'PMP[0-9]{4,4}!!' => [ + 'PMP3007C' => [ 'Prestigio', 'Multipad Rider 7.0', DeviceType::TABLET ], + 'PMP3007C3G' => [ 'Prestigio', 'Multipad Rider 7.0 3G', DeviceType::TABLET ], + 'PMP3074B' => [ 'Prestigio', 'Multipad 3074', DeviceType::TABLET ], + 'PMP3074BRU' => [ 'Prestigio', 'Multipad 3074', DeviceType::TABLET ], + 'PMP3084B' => [ 'Prestigio', 'Multipad 3084', DeviceType::TABLET ], + 'PMP3084BA' => [ 'Prestigio', 'Multipad 3084', DeviceType::TABLET ], + 'PMP3084BPL' => [ 'Prestigio', 'Multipad 3084', DeviceType::TABLET ], + 'PMP3084BRU' => [ 'Prestigio', 'Multipad 3084', DeviceType::TABLET ], + 'PMP3170B' => [ 'Prestigio', 'Multipad 3170 Pro', DeviceType::TABLET ], + 'PMP3170BEN' => [ 'Prestigio', 'Multipad 3170 Pro', DeviceType::TABLET ], + 'PMP3270B' => [ 'Prestigio', 'Multipad 3270 Prime', DeviceType::TABLET ], + 'PMP3370B' => [ 'Prestigio', 'Multipad 3370', DeviceType::TABLET ], + 'PMP3384B' => [ 'Prestigio', 'Multipad 3384', DeviceType::TABLET ], + 'PMP3384BRU' => [ 'Prestigio', 'Multipad 3384', DeviceType::TABLET ], + 'PMP3470B' => [ 'Prestigio', 'Multipad 3470 Prime+', DeviceType::TABLET ], + 'PMP3570C' => [ 'Prestigio', 'Multipad 7.0 Ultra+', DeviceType::TABLET ], + 'PMP3670B' => [ 'Prestigio', 'Multipad 3670 Ultra+', DeviceType::TABLET ], + 'PMP3670B-WH' => [ 'Prestigio', 'Multipad 3670 Ultra+', DeviceType::TABLET ], + 'PMP3770B' => [ 'Prestigio', 'Multipad 3770', DeviceType::TABLET ], + 'PMP3970B' => [ 'Prestigio', 'Multipad 3970 Duo', DeviceType::TABLET ], + 'PMP5080B' => [ 'Prestigio', 'Multipad 5080', DeviceType::TABLET ], + 'PMP5080BRU' => [ 'Prestigio', 'Multipad 5080', DeviceType::TABLET ], + 'PMP5080CPRO' => [ 'Prestigio', 'Multipad 5080 Pro', DeviceType::TABLET ], + 'PMP5097CPRO' => [ 'Prestigio', 'Multipad 5097 Pro', DeviceType::TABLET ], + 'PMP5101C QUAD' => [ 'Prestigio', 'Multipad 4 Quantum 10.1', DeviceType::TABLET ], + 'PMP5101C3G QUAD' => [ 'Prestigio', 'Multipad 4 Quantum 10.1 3G', DeviceType::TABLET ], + 'PMP5101D QUAD' => [ 'Prestigio', 'Multipad 4 Quantum 10.1', DeviceType::TABLET ], + 'PMP5101D3G QUAD' => [ 'Prestigio', 'Multipad 4 Quantum 10.1 3G', DeviceType::TABLET ], + 'PMP5197DULTRA' => [ 'Prestigio', 'Multipad 5197 Ultra', DeviceType::TABLET ], + 'PMP5297C QUAD' => [ 'Prestigio', 'Multipad 4 Quantum 9.7', DeviceType::TABLET ], + 'PMP5570C' => [ 'Prestigio', 'Multipad 5570 Pro', DeviceType::TABLET ], + 'PMP5580C' => [ 'Prestigio', 'Multipad 5580 Prime', DeviceType::TABLET ], + 'PMP5588C' => [ 'Prestigio', 'Multipad 8.0 HD', DeviceType::TABLET ], + 'PMP5597D' => [ 'Prestigio', 'Multipad 5597 Ultra Duo', DeviceType::TABLET ], + 'PMP5670C DUO' => [ 'Prestigio', 'Multipad 2 Pro Duo 7.0', DeviceType::TABLET ], + 'PMP5770D' => [ 'Prestigio', 'Multipad 5770 Pro', DeviceType::TABLET ], + 'PMP5785C3G QUAD' => [ 'Prestigio', 'Multipad 4 Quantum 7.85 3G', DeviceType::TABLET ], + 'PMP7100D3G QUAD' => [ 'Prestigio', 'Multipad 7100', DeviceType::TABLET ], + 'PMP7280D3G QUAD' => [ 'Prestigio', 'Multipad 7280', DeviceType::TABLET ], + 'PMP7480D3G QUAD' => [ 'Prestigio', 'Multipad 7480', DeviceType::TABLET ], + 'PMP7880D3G' => [ 'Prestigio', 'Multipad 7880', DeviceType::TABLET ], + 'PMP5780D' => [ 'Prestigio', 'Multipad 2 Prime Duo 8.0', DeviceType::TABLET ], + 'PMP5785C QUAD' => [ 'Prestigio', 'Multipad 4 Quantum 7.85', DeviceType::TABLET ], + 'PMP5870C' => [ 'Prestigio', 'Multipad 7.0 Ultra Duo', DeviceType::TABLET ], + 'PMP5880D' => [ 'Prestigio', 'Multipad 8.0 Ultra Duo', DeviceType::TABLET ], + 'PMP7070C3G' => [ 'Prestigio', 'Multipad 4 Diamond 7.0 3G', DeviceType::TABLET ], + 'PMP7074B3G' => [ 'Prestigio', 'Multipad 7074', DeviceType::TABLET ], + 'PMP7074B3GRU' => [ 'Prestigio', 'Multipad 7074', DeviceType::TABLET ], + 'PMP7079D QUAD' => [ 'Prestigio', 'Multipad 4 Diamond 7.85', DeviceType::TABLET ], + 'PMP7079D3G QUAD' => [ 'Prestigio', 'Multipad 4 Diamond 7.85 3G', DeviceType::TABLET ], + 'PMP7079E3G QUAD' => [ 'Prestigio', 'Multipad 4 Diamond 7.85 3G', DeviceType::TABLET ], + 'PMP7100D' => [ 'Prestigio', 'Multipad 4 10.1 Ultimate', DeviceType::TABLET ], + 'PMP7100D3G' => [ 'Prestigio', 'Multipad 4 10.1 Ultimate 3G', DeviceType::TABLET ], + 'PMP7100D3G QUAD' => [ 'Prestigio', 'Multipad 4 10.1 Ultimate 3G', DeviceType::TABLET ], + 'PMP7110D3G' => [ 'Prestigio', 'Multipad 4 Diamond 10.1 3G', DeviceType::TABLET ], + 'PMP7170B3G' => [ 'Prestigio', 'Multipad 7.0 Prime 3G', DeviceType::TABLET ], + 'PMP7170B3GCE' => [ 'Prestigio', 'Multipad 7.0 Prime 3G', DeviceType::TABLET ], + 'PMP7170B3G DUO' => [ 'Prestigio', 'Multipad 7.0 Prime Duo 3G', DeviceType::TABLET ], + 'PMP7280C' => [ 'Prestigio', 'Multipad 2 Ultra Duo 8.0', DeviceType::TABLET ], + 'PMP7280C3G' => [ 'Prestigio', 'Multipad 2 Ultra Duo 8.0 3G', DeviceType::TABLET ], + 'PMP7280C3G DUO' => [ 'Prestigio', 'Multipad 2 Ultra Duo 8.0 3G', DeviceType::TABLET ], + 'PMP7280C3G QUAD' => [ 'Prestigio', 'Multipad 4 Ultra Quad 8.0 3G', DeviceType::TABLET ], + 'PMP7380D3G' => [ 'Prestigio', 'Multipad 2 Pro Duo 8.0 3G', DeviceType::TABLET ], + 'PMP7380D3G QUAD' => [ 'Prestigio', 'Multipad 2 Pro Quad 8.0 3G', DeviceType::TABLET ], + ], + + 'PMT[0-9]{4,4}!!' => [ + 'PMT3008 WI C' => [ 'Prestigio', 'Multipad Wize 3008', DeviceType::TABLET ], + 'PMT3009 Wi C' => [ 'Prestigio', 'Multipad Wize 3009', DeviceType::TABLET ], + 'PMT3011 3G' => [ 'Prestigio', 'Multipad Wize 3011', DeviceType::TABLET ], + 'PMT3017 WI' => [ 'Prestigio', 'Multipad Wize 3017', DeviceType::TABLET ], + 'PMT3018 WI' => [ 'Prestigio', 'Multipad Wize 3018', DeviceType::TABLET ], + 'PMT3021 3G' => [ 'Prestigio', 'Multipad Wize 3021', DeviceType::TABLET ], + 'PMT3031 3G' => [ 'Prestigio', 'Multipad Wize 3031', DeviceType::TABLET ], + 'PMT3037 3G' => [ 'Prestigio', 'Multipad Wize 3037', DeviceType::TABLET ], + 'PMT3038 3G' => [ 'Prestigio', 'Multipad Wize 3038', DeviceType::TABLET ], + 'PMT3047 3G' => [ 'Prestigio', 'Multipad 3047', DeviceType::TABLET ], + 'PMT3077 3G' => [ 'Prestigio', 'Multipad Rider 7.0 3G', DeviceType::TABLET ], + 'PMT3108 3G' => [ 'Prestigio', 'Multipad Wize 3108', DeviceType::TABLET ], + 'PMT3111 Wi' => [ 'Prestigio', 'Multipad Wize 3111', DeviceType::TABLET ], + 'PMT3177 3G' => [ 'Prestigio', 'Multipad Journey 7.0 3G', DeviceType::TABLET ], + 'PMT3277 3G' => [ 'Prestigio', 'Multipad Ranger 7.0 3G', DeviceType::TABLET ], + 'PMT3287 3G' => [ 'Prestigio', 'Multipad Ranger 8.0 3G', DeviceType::TABLET ], + 'PMT3308 3G' => [ 'Prestigio', 'Multipad Wize 3308', DeviceType::TABLET ], + 'PMT3331 3G' => [ 'Prestigio', 'Multipad Wize 3331', DeviceType::TABLET ], + 'PMT3341 3G' => [ 'Prestigio', 'Multipad Wize 3341', DeviceType::TABLET ], + 'PMT3377 Wi' => [ 'Prestigio', 'Multipad Thunder 7.0i', DeviceType::TABLET ], + 'PMT3677 Wi' => [ 'Prestigio', 'Multipad Ultra+ 7.0', DeviceType::TABLET ], + 'PMT3757 3G' => [ 'Prestigio', 'Multipad Wize 3757', DeviceType::TABLET ], + 'PMT3787 3G' => [ 'Prestigio', 'Multipad Wize 3787', DeviceType::TABLET ], + 'PMT5001 3G' => [ 'Prestigio', 'Multipad Muze 5001 3G', DeviceType::TABLET ], + 'PMT5002 Wi' => [ 'Prestigio', 'Multipad Wize 5002', DeviceType::TABLET ], + 'PMT5008 3G' => [ 'Prestigio', 'Multipad Muze 5008 3G', DeviceType::TABLET ], + 'PMT5287 4G' => [ 'Prestigio', 'Multipad Ranger 8.0 4G', DeviceType::TABLET ], + 'PMT5487 3G' => [ 'Prestigio', 'Multipad Quantum 8.0 3G', DeviceType::TABLET ], + 'PMT5587 Wi' => [ 'Prestigio', 'Multipad 8.0 HD', DeviceType::TABLET ], + 'PMT5777 3G' => [ 'Prestigio', 'Multipad Color 7.0 3G', DeviceType::TABLET ], + 'PMT5887 3G' => [ 'Prestigio', 'Multipad Color 8.0 3G', DeviceType::TABLET ], + 'PMT7008 4G' => [ 'Prestigio', 'Multipad Consul 7008 4G', DeviceType::TABLET ], + 'PMT7077 3G' => [ 'Prestigio', 'Multipad 4 Diamond 7.85 3G', DeviceType::TABLET ], + 'PMT7177 3G' => [ 'Prestigio', 'Multipad 4 Diamond 10.1 3G', DeviceType::TABLET ], + 'PMT7287 3G' => [ 'Prestigio', 'Multipad 4 Ultra Quad 8.0 3G', DeviceType::TABLET ], + ], + + 'PAP[0-9]{4,4}!!' => [ + 'PAP3350DUO' => [ 'Prestigio', 'Multiphone 3350 Duo' ], + 'PAP3400DUO' => [ 'Prestigio', 'Multiphone 3400 Duo' ], + 'PAP3500 DUO' => [ 'Prestigio', 'Multiphone 3500 Duo' ], + 'PAP3501DUO' => [ 'Prestigio', 'Multiphone 3501 Duo' ], + 'PAP3540DUO' => [ 'Prestigio', 'Multiphone 3540 Duo' ], + 'PAP4020DUO' => [ 'Prestigio', 'Multiphone 4020 Duo' ], + 'PAP4040 DUO' => [ 'Prestigio', 'Multiphone 4040 Duo' ], + 'PAP4044DUO' => [ 'Prestigio', 'Multiphone 4044 Duo' ], + 'PAP4055DUO' => [ 'Prestigio', 'Multiphone 4055 Duo' ], + 'PAP4300' => [ 'Prestigio', 'Multiphone 4300' ], + 'PAP4300 DUO' => [ 'Prestigio', 'Multiphone 4300 Duo' ], + 'PAP4322DUO' => [ 'Prestigio', 'Multiphone 4322 Duo' ], + 'PAP4500DUO' => [ 'Prestigio', 'Multiphone 4500 Duo' ], + 'PAP4500TDUO' => [ 'Prestigio', 'Multiphone 4500 Duo' ], + 'PAP4505DUO' => [ 'Prestigio', 'Multiphone 4505 Duo' ], + 'PAP5000DUO' => [ 'Prestigio', 'Multiphone 5000 Duo' ], + 'PAP5000TDUO' => [ 'Prestigio', 'Multiphone 5000 Duo' ], + 'PAP5044DUO' => [ 'Prestigio', 'Multiphone 5044 Duo' ], + 'PAP5300DUO' => [ 'Prestigio', 'Multiphone 5300 Duo' ], + 'PAP5400DUO' => [ 'Prestigio', 'Multiphone 5400 Duo' ], + 'PAP5430' => [ 'Prestigio', 'Multiphone 5430' ], + 'PAP5450' => [ 'Prestigio', 'Multiphone 5450' ], + 'PAP5450DUO' => [ 'Prestigio', 'Multiphone 5450 Duo' ], + 'PAP5451DUO' => [ 'Prestigio', 'Multiphone 5451 Duo' ], + 'PAP5500DUO' => [ 'Prestigio', 'Multiphone 5500 Duo' ], + 'PAP5501' => [ 'Prestigio', 'Multiphone 5501' ], + 'PAP5503' => [ 'Prestigio', 'Multiphone 5503' ], + 'PAP5503DUO' => [ 'Prestigio', 'Multiphone 5503 Duo' ], + 'PAP7500' => [ 'Prestigio', 'Multiphone 7500' ], + 'PAP7600DUO' => [ 'Prestigio', 'Multiphone 7600 Duo' ], + ], + + 'PSP[0-9]{4,4}!!' => [ + 'PSP3404DUO' => [ 'Prestigio', 'Multiphone 3404 Duo' ], + 'PSP3405DUO' => [ 'Prestigio', 'Multiphone 3405 Duo' ], + 'PSP3450' => [ 'Prestigio', 'Multiphone 3450' ], + 'PSP3450DUO' => [ 'Prestigio', 'Multiphone 3450 Duo' ], + 'PSP3452DUO' => [ 'Prestigio', 'Multiphone Muze A3' ], + 'PSP3453DUO' => [ 'Prestigio', 'Multiphone Wize A3' ], + 'PSP3455DUO' => [ 'Prestigio', 'Multiphone Grace X3' ], + 'PSP3456DUO' => [ 'Prestigio', 'Multiphone 3456 Duo' ], + 'PSP3502DUO' => [ 'Prestigio', 'Multiphone 3502 Duo' ], + 'PSP3503DUO' => [ 'Prestigio', 'Multiphone 3503 Duo' ], + 'PSP3504DUO' => [ 'Prestigio', 'Multiphone 3504 Duo' ], + 'PSP3505DUO' => [ 'Prestigio', 'Multiphone 3505 Duo' ], + 'PSP3530DUO' => [ 'Prestigio', 'Multiphone 3530 Duo' ], + 'PSP3531DUO' => [ 'Prestigio', 'Multiphone 3531 Duo' ], + 'PSP5047DUO' => [ 'Prestigio', 'Multiphone 5048 Duo' ], + 'PSP5307DUO' => [ 'Prestigio', 'Multiphone 5307 Duo' ], + 'PSP5453DUO' => [ 'Prestigio', 'Multiphone 5453 Duo' ], + 'PSP5454DUO' => [ 'Prestigio', 'Multiphone 5454 Duo' ], + 'PSP5455DUO' => [ 'Prestigio', 'Multiphone 5455 Duo' ], + 'PSP5457DUO' => [ 'Prestigio', 'Multiphone 5457 Duo' ], + 'PSP5470DUO' => [ 'Prestigio', 'Multiphone Grace X5' ], + 'PSP5504DUO' => [ 'Prestigio', 'Multiphone 5504 Duo' ], + 'PSP5505DUO' => [ 'Prestigio', 'Multiphone 5505 Duo' ], + 'PSP5507DUO' => [ 'Prestigio', 'Multiphone 5507 Duo' ], + 'PSP5508DUO' => [ 'Prestigio', 'Multiphone 5508 Duo' ], + 'PSP5517DUO' => [ 'Prestigio', 'Multiphone 5517 Duo' ], + 'PSP5550DUO' => [ 'Prestigio', 'Multiphone 5550 Duo' ], + 'PSP7505DUO' => [ 'Prestigio', 'Multiphone Grace X7' ], + 'PSP7557' => [ 'Prestigio', 'Multiphone 7557 Grace' ], + ], + + 'Prestigio PAP5000TDUO' => [ 'Prestigio', 'Multiphone 5000 Duo' ], + '5080C Pro' => [ 'Prestigio', 'Multipad 5080 Pro', DeviceType::TABLET ], + 'PRBT 100' => [ 'Probook', 'PRBT 100', DeviceType::TABLET ], + + 'MD-[0-9]{4,4}!!' => [ + 'MD-0651' => [ 'Prolink', 'MD-0651', DeviceType::TABLET ], + 'MD-0696B' => [ 'Prolink', 'MD-0696B', DeviceType::TABLET ], + 'MD-0697' => [ 'Prolink', 'MD-0697', DeviceType::TABLET ], + ], + + 'PLT!!' => [ + 'PLT1044' => [ 'Proscan', 'PLT1044', DeviceType::TABLET ], + 'PLT1066' => [ 'Proscan', 'PLT1066', DeviceType::TABLET ], + 'PLT1077G' => [ 'Proscan', 'PLT1077G', DeviceType::TABLET ], + 'PLT4311' => [ 'Proscan', 'PLT4311', DeviceType::TABLET ], + 'PLT7035' => [ 'Proscan', 'PLT7035', DeviceType::TABLET ], + 'PLT7035-B' => [ 'Proscan', 'PLT7035', DeviceType::TABLET ], + 'PLT7035-C' => [ 'Proscan', 'PLT7035', DeviceType::TABLET ], + 'PLT7035-PL' => [ 'Proscan', 'PLT7035', DeviceType::TABLET ], + 'PLT7044K' => [ 'Proscan', 'PLT7044K', DeviceType::TABLET ], + 'PLT7044K-B' => [ 'Proscan', 'PLT7044K', DeviceType::TABLET ], + 'PLT7050' => [ 'Proscan', 'PLT7050', DeviceType::TABLET ], + 'PLT7100G' => [ 'Proscan', 'PLT7100G', DeviceType::TABLET ], + 'PLT7223G' => [ 'Proscan', 'PLT7223G', DeviceType::TABLET ], + 'PLT7602G' => [ 'Proscan', 'PLT7602G', DeviceType::TABLET ], + 'PLT7777' => [ 'Proscan', 'PLT7777', DeviceType::TABLET ], + 'PLT7802' => [ 'Proscan', 'PLT7802', DeviceType::TABLET ], + 'PLT7803G' => [ 'Proscan', 'PLT7803G', DeviceType::TABLET ], + 'PLT7804G' => [ 'Proscan', 'PLT7804G', DeviceType::TABLET ], + 'PLT7810K' => [ 'Proscan', 'PLT7810K', DeviceType::TABLET ], + 'PLT8088' => [ 'Proscan', 'PLT8088', DeviceType::TABLET ], + 'PLT8223G' => [ 'Proscan', 'PLT8223G', DeviceType::TABLET ], + 'PLT8235G' => [ 'Proscan', 'PLT8235G', DeviceType::TABLET ], + 'PLT8802G' => [ 'Proscan', 'PLT8802G', DeviceType::TABLET ], + 'PLT8816K' => [ 'Proscan', 'PLT8816K', DeviceType::TABLET ], + 'PLT9045K' => [ 'Proscan', 'PLT9045K', DeviceType::TABLET ], + 'PLT9045K-BLACK' => [ 'Proscan', 'PLT9045K', DeviceType::TABLET ], + 'PLT9602G' => [ 'Proscan', 'PLT9602G', DeviceType::TABLET ], + 'PLT9606G' => [ 'Proscan', 'PLT9606G', DeviceType::TABLET ], + ], + + 'Positivo Mini' => [ 'Positivo', 'Mini', DeviceType::TABLET ], + 'YPY-72SIM' => [ 'Positivo', 'YPY 72SIM', DeviceType::TABLET ], + 'YPY-73G' => [ 'Positivo', 'YPY 73G', DeviceType::TABLET ], + 'TB07FTA' => [ 'Positivo', 'YPY 07FTA', DeviceType::TABLET ], + 'Ypy 7 - TB07FTA' => [ 'Positivo', 'YPY 07FTA', DeviceType::TABLET ], + 'YPY 07FTA' => [ 'Positivo', 'YPY 07FTA', DeviceType::TABLET ], + 'YPY 07FTAB' => [ 'Positivo', 'YPY 07FTAB', DeviceType::TABLET ], + 'YPY 07FTAB PA' => [ 'Positivo', 'YPY 07FTAB', DeviceType::TABLET ], + 'YPY 07FTB' => [ 'Positivo', 'YPY 07FTB', DeviceType::TABLET ], + 'POSITIVO YPY 07FTB' => [ 'Positivo', 'YPY 07FTB', DeviceType::TABLET ], + 'YPY 07FTBF' => [ 'Positivo', 'YPY 07FTBF', DeviceType::TABLET ], + 'Ypy 7 - TB07STA' => [ 'Positivo', 'YPY 07STA', DeviceType::TABLET ], + 'YPY 07STB' => [ 'Positivo', 'YPY 07STB', DeviceType::TABLET ], + 'YPY 07STBF' => [ 'Positivo', 'YPY 07STBF', DeviceType::TABLET ], + 'YPY 10FTA' => [ 'Positivo', 'YPY 10FTA', DeviceType::TABLET ], + 'YPY10FTA' => [ 'Positivo', 'YPY 10FTA', DeviceType::TABLET ], + 'YPY 10FTB' => [ 'Positivo', 'YPY 10FTB', DeviceType::TABLET ], + 'YPY 10FTBF' => [ 'Positivo', 'YPY 10FTBF', DeviceType::TABLET ], + 'YPY 10STB' => [ 'Positivo', 'YPY 10STB', DeviceType::TABLET ], + 'YPY 10STBF' => [ 'Positivo', 'YPY 10STBF', DeviceType::TABLET ], + 'YPY AB7D' => [ 'Positivo', 'YPY AB7D', DeviceType::TABLET ], + 'YPY AB7DC' => [ 'Positivo', 'YPY AB7DC', DeviceType::TABLET ], + 'Positivo Ypy AB7E' => [ 'Positivo', 'YPY AB7E', DeviceType::TABLET ], + 'Positivo Ypy AB7EC' => [ 'Positivo', 'YPY AB7EC', DeviceType::TABLET ], + 'Positivo Ypy AB7F' => [ 'Positivo', 'YPY AB7F', DeviceType::TABLET ], + 'Positivo AB7F' => [ 'Positivo', 'YPY AB7F', DeviceType::TABLET ], + 'Positivo Ypy AB7H' => [ 'Positivo', 'YPY AB7H', DeviceType::TABLET ], + 'YPY AB10D' => [ 'Positivo', 'YPY AB10D', DeviceType::TABLET ], + 'YPY AB10DC' => [ 'Positivo', 'YPY AB10DC', DeviceType::TABLET ], + 'Positivo Ypy AB10E' => [ 'Positivo', 'YPY AB10E', DeviceType::TABLET ], + 'Positivo Ypy AB10EC' => [ 'Positivo', 'YPY AB10EC', DeviceType::TABLET ], + 'Positivo Ypy AB10H' => [ 'Positivo', 'YPY AB10H', DeviceType::TABLET ], + 'YPY ABXD' => [ 'Positivo', 'YPY ABXD', DeviceType::TABLET ], + 'YPY J213' => [ 'Positivo', 'YPY J213' ], + 'Positivo BGH Ypy L700' => [ 'Positivo', 'YPY L700', DeviceType::TABLET ], + 'Positivo Ypy L700' => [ 'Positivo', 'YPY L700', DeviceType::TABLET ], + 'Positivo Ypy L700 Ed. Especial' => [ 'Positivo', 'YPY L700 Edição Especial', DeviceType::TABLET ], + 'Positivo Ypy L700+' => [ 'Positivo', 'YPY L700+', DeviceType::TABLET ], + 'Positivo Ypy L700 Kids' => [ 'Positivo', 'YPY L700 Kids', DeviceType::TABLET ], + 'Positivo BGH Ypy L700 Kids' => [ 'Positivo', 'YPY L700 Kids', DeviceType::TABLET ], + 'Positivo Ypy L700+ Kids' => [ 'Positivo', 'YPY L700+ Kids', DeviceType::TABLET ], + 'Positivo Ypy L1000' => [ 'Positivo', 'YPY L1000', DeviceType::TABLET ], + 'Positivo Ypy L1000AB' => [ 'Positivo', 'YPY L1000AB', DeviceType::TABLET ], + 'Positivo Ypy L1000F' => [ 'Positivo', 'YPY L1000F', DeviceType::TABLET ], + 'Positivo Ypy L1050' => [ 'Positivo', 'YPY L1050', DeviceType::TABLET ], + 'Positivo Ypy L1050E' => [ 'Positivo', 'YPY L1050E', DeviceType::TABLET ], + 'Positivo Ypy L1050F' => [ 'Positivo', 'YPY L1050F', DeviceType::TABLET ], + 'YPY S350' => [ 'Positivo', 'YPY S350' ], + 'YPY S350 PLUS' => [ 'Positivo', 'YPY S350 Plus' ], + 'Positivo S380' => [ 'Positivo', 'YPY S380' ], + 'YPY S400' => [ 'Positivo', 'YPY S400' ], + 'YPY S405' => [ 'Positivo', 'YPY S405' ], + 'Positivo S440' => [ 'Positivo', 'YPY S440' ], + 'YPY S450' => [ 'Positivo', 'YPY S450' ], + 'YPY S460' => [ 'Positivo', 'YPY S460' ], + 'Positivo S480' => [ 'Positivo', 'YPY S480' ], + 'YPY S500' => [ 'Positivo', 'YPY S500' ], + 'Positivo S550' => [ 'Positivo', 'YPY S550' ], + 'Positivo X400' => [ 'Positivo', 'YPY X400' ], + 'Positivo X800' => [ 'Positivo', 'YPY X800' ], + 'YPY TQ7' => [ 'Positivo', 'YPY TQ7', DeviceType::TABLET ], + 'PULID F6' => [ 'PULID', 'F6' ], + 'PULID F7' => [ 'PULID', 'F7' ], + 'PULID F11' => [ 'PULID', 'F11' ], + 'F13' => [ 'PULID', 'F13' ], + 'F15' => [ 'PULID', 'F15' ], + 'PULID T3' => [ 'PULID', 'T3' ], + + 'Q-Wave!!' => [ + 'Q-Wave70M' => [ 'Quantum', 'Q-Wave 70M', DeviceType::TABLET ], + 'Q-Wave70M2' => [ 'Quantum', 'Q-Wave 70M2', DeviceType::TABLET ], + 'Q-Wave71' => [ 'Quantum', 'Q-Wave 71', DeviceType::TABLET ], + 'Q-Wave71M' => [ 'Quantum', 'Q-Wave 71M', DeviceType::TABLET ], + 'Q-Wave71N' => [ 'Quantum', 'Q-Wave 71N', DeviceType::TABLET ], + 'Q-Wave781N' => [ 'Quantum', 'Q-Wave 781N', DeviceType::TABLET ], + 'Q-WaveA101' => [ 'Quantum', 'Q-Wave A101', DeviceType::TABLET ], + 'Q-Wave L70N' => [ 'Quantum', 'Q-Wave L70N', DeviceType::TABLET ], + ], + + 'Quechua Phone 5' => [ 'Quechua', 'Phone 5' ], + + 'QW ?TB-[0-9]{4,4}!!' => [ + 'QW TB-1007' => [ 'Qware', 'Pro3 (7.0 inch, 1st gen)', DeviceType::TABLET ], + 'QW TB-1207' => [ 'Qware', 'Pro3 (7.0 inch, 2nd gen)', DeviceType::TABLET ], + 'QW TB-1217' => [ 'Qware', 'Pro3 (7.0 inch, 3nd gen)', DeviceType::TABLET ], + 'QW TB-1210' => [ 'Qware', 'Pro3 (10.0 inch)', DeviceType::TABLET ], + 'QW TB-9718' => [ 'Qware', 'Pro4 Slim 9.7', DeviceType::TABLET ], + 'QWTB-9718HD' => [ 'Qware', 'Pro4 Slim HD 9.7', DeviceType::TABLET ], + 'QW TB-1317Q' => [ 'Qware', 'Pro5 HD 7.0', DeviceType::TABLET ], + 'QW TB-1380QHD' => [ 'Qware', 'Pro5 QHD 8.0', DeviceType::TABLET ], + 'QW TB-9718QHD' => [ 'Qware', 'Pro5 QHD 9.7', DeviceType::TABLET ], + 'QW TB-1517' => [ 'Qware', 'Tabby', DeviceType::TABLET ], + 'QW TB-1517D' => [ 'Qware', 'Tabby2', DeviceType::TABLET ], + ], + + 'Ramosi8' => [ 'Ramos', 'I8', DeviceType::TABLET ], + 'Ramosi8c' => [ 'Ramos', 'I8c', DeviceType::TABLET ], + 'Ramosi9' => [ 'Ramos', 'I9', DeviceType::TABLET ], + 'Ramosi9-3G' => [ 'Ramos', 'I9 3G', DeviceType::TABLET ], + 'Ramos i9s' => [ 'Ramos', 'I9s', DeviceType::TABLET ], + 'Ramos i9s Series' => [ 'Ramos', 'I9s', DeviceType::TABLET ], + 'Ramos i9s pro' => [ 'Ramos', 'I9s Pro', DeviceType::TABLET ], + 'Ramosi10' => [ 'Ramos', 'I10', DeviceType::TABLET ], + 'Ramosi12c' => [ 'Ramos', 'I12c', DeviceType::TABLET ], + 'W6' => [ 'Ramos', 'W6', DeviceType::TABLET ], + 'W6HD ICS' => [ 'Ramos', 'W6HD', DeviceType::TABLET ], + 'W6HD ICS FULL' => [ 'Ramos', 'W6HD', DeviceType::TABLET ], + 'Ramos W6HD' => [ 'Ramos', 'W6HD', DeviceType::TABLET ], + 'W10' => [ 'Ramos', 'W10', DeviceType::TABLET ], + 'W10 V2.0' => [ 'Ramos', 'W10 v2.0', DeviceType::TABLET ], + 'Ramos W12' => [ 'Ramos', 'W12', DeviceType::TABLET ], + 'Ramos W12HD' => [ 'Ramos', 'W12HD', DeviceType::TABLET ], + 'w13pro' => [ 'Ramos', 'W13 Pro', DeviceType::TABLET ], + 'W13PRO V2.0' => [ 'Ramos', 'W13 Pro', DeviceType::TABLET ], + 'Ramos W17Pro V3.0' => [ 'Ramos', 'W17 Pro', DeviceType::TABLET ], + 'W17PRO(Dualcore)' => [ 'Ramos', 'W17 Pro', DeviceType::TABLET ], + 'W17PRO JB Dualcore' => [ 'Ramos', 'W17 Pro', DeviceType::TABLET ], + 'Ramos W21' => [ 'Ramos', 'W21', DeviceType::TABLET ], + 'W22PRO' => [ 'Ramos', 'W22 Pro', DeviceType::TABLET ], + 'W22PRO 3G' => [ 'Ramos', 'W22 Pro 3G', DeviceType::TABLET ], + 'Ramos W25HD' => [ 'Ramos', 'W25HD', DeviceType::TABLET ], + 'Ramos W27Pro' => [ 'Ramos', 'W27 Pro', DeviceType::TABLET ], + 'W27(Dualcore)' => [ 'Ramos', 'W27 Dual Core', DeviceType::TABLET ], + 'W28(Dualcore)' => [ 'Ramos', 'W28 Dual Core', DeviceType::TABLET ], + 'W30(QuadCore)' => [ 'Ramos', 'W30 Quad Core', DeviceType::TABLET ], + 'w30hd(QuadCore)' => [ 'Ramos', 'W30HD Quad Core', DeviceType::TABLET ], + 'W30HDPRO' => [ 'Ramos', 'W30HD Pro', DeviceType::TABLET ], + 'Ramos W31' => [ 'Ramos', 'W31', DeviceType::TABLET ], + 'Ramos w36' => [ 'Ramos', 'W36', DeviceType::TABLET ], + 'Ramos W41' => [ 'Ramos', 'W41', DeviceType::TABLET ], + 'Ramos W41 QuadCore' => [ 'Ramos', 'W41 Quad Core', DeviceType::TABLET ], + 'w42(QuadCore)' => [ 'Ramos', 'W42 Quad Core', DeviceType::TABLET ], + 'Ramos X10 PRO!' => [ 'Ramos', 'X10 Pro', DeviceType::TABLET ], + 'T11AD!' => [ 'Ramos', 'T11AD', DeviceType::TABLET ], + + 'Rayhov!!' => [ + 'Rayhov X3' => [ 'Rayhov', 'X3' ], + 'Rayhov X6' => [ 'Rayhov', 'X6' ], + 'Rayhov X9' => [ 'Rayhov', 'X9' ], + ], + + 'Readboy!!' => [ + 'Readboy G12' => [ 'Readboy', 'G12', DeviceType::TABLET ], + 'Readboy G18' => [ 'Readboy', 'G18', DeviceType::TABLET ], + 'Readboy G50' => [ 'Readboy', 'G50', DeviceType::TABLET ], + 'Readboy G100' => [ 'Readboy', 'G100', DeviceType::TABLET ], + ], + + 'ReederA8R' => [ 'Reeder', 'A8R', DeviceType::TABLET ], + 'PlayBook' => [ 'RIM', 'BlackBerry PlayBook', DeviceType::TABLET ], + 'RBK-490' => [ 'Ritmix', 'RBK-490', DeviceType::TABLET ], + + '(Ritmix )?RM[DP]-?[0-9]{3,3}!!' => [ + 'RMD-720' => [ 'Ritmix', 'RMD-720', DeviceType::TABLET ], + 'RMD-721' => [ 'Ritmix', 'RMD-721', DeviceType::TABLET ], + 'RMD-722' => [ 'Ritmix', 'RMD-722', DeviceType::TABLET ], + 'RITMIX RMD-740' => [ 'Ritmix', 'RMD-740', DeviceType::TABLET ], + 'Ritmix RMD745' => [ 'Ritmix', 'RMD-745', DeviceType::TABLET ], + 'RMD-755' => [ 'Ritmix', 'RMD-755', DeviceType::TABLET ], + 'RMD-770' => [ 'Ritmix', 'RMD-770', DeviceType::TABLET ], + 'RMD-785' => [ 'Ritmix', 'RMD-785', DeviceType::TABLET ], + 'Ritmix RMD840' => [ 'Ritmix', 'RMD-840', DeviceType::TABLET ], + 'RMD-900' => [ 'Ritmix', 'RMD-900', DeviceType::TABLET ], + 'RMD-1026' => [ 'Ritmix', 'RMD-1026', DeviceType::TABLET ], + 'RMD-1027' => [ 'Ritmix', 'RMD-1027', DeviceType::TABLET ], + 'RMD-1030' => [ 'Ritmix', 'RMD-1030', DeviceType::TABLET ], + 'RMD-1035' => [ 'Ritmix', 'RMD-1035', DeviceType::TABLET ], + 'RMD-1040' => [ 'Ritmix', 'RMD-1040', DeviceType::TABLET ], + 'RMD-1050' => [ 'Ritmix', 'RMD-1050', DeviceType::TABLET ], + 'RMD-1055' => [ 'Ritmix', 'RMD-1055', DeviceType::TABLET ], + 'RMD-1058' => [ 'Ritmix', 'RMD-1058', DeviceType::TABLET ], + 'RMD-1070' => [ 'Ritmix', 'RMD-1070', DeviceType::TABLET ], + 'RMP400' => [ 'Ritmix', 'RMP-400', DeviceType::TABLET ], + 'RMP-450' => [ 'Ritmix', 'RMP-450', DeviceType::TABLET ], + 'RMP-530' => [ 'Ritmix', 'RMP-530', DeviceType::TABLET ], + 'RMP-600' => [ 'Ritmix', 'RMP-600', DeviceType::TABLET ], + ], + + 'RMD-[0-9]{2,3}G!!' => [ + 'RMD-73G' => [ 'Ross&Moor', 'RMD-73G', DeviceType::TABLET ], + 'RMD-917G' => [ 'Ross&Moor', 'RMD-917G', DeviceType::TABLET ], + 'RMD-973G' => [ 'Ross&Moor', 'RMD-973G', DeviceType::TABLET ], + ], + + 'RoverPad 3W T71D' => [ 'RoverPad', '3W T71D', DeviceType::TABLET ], + 'A8HD' => [ 'Saayi', 'Dropad A8HD', DeviceType::TABLET ], + 'Salora E1' => [ 'Salora', 'ValuMaxx E1' ], + 'DPH-D710' => [ 'Samsung', 'Galaxy S II' ], + + 'EK-[GK][CN][0-9]{3,3}!!' => [ + 'EK-GC100!' => [ 'Samsung', 'Galaxy Camera', DeviceType::CAMERA ], + 'EK-GC110!' => [ 'Samsung', 'Galaxy Camera', DeviceType::CAMERA ], + 'EK-GC120!' => [ 'Samsung', 'Galaxy Camera LTE', DeviceType::CAMERA ], + 'EK-GC200!' => [ 'Samsung', 'Galaxy Camera 2', DeviceType::CAMERA ], + 'EK-GN100!' => [ 'Samsung', 'Galaxy NX', DeviceType::CAMERA ], + 'EK-GN120!' => [ 'Samsung', 'Galaxy NX', DeviceType::CAMERA ], + 'EK-KC100!' => [ 'Samsung', 'Galaxy Camera', DeviceType::CAMERA ], + 'EK-KC120!' => [ 'Samsung', 'Galaxy Camera LTE', DeviceType::CAMERA ], + ], + + 'GT-B[0-9]{4,4}!!' => [ + 'GT-B5330!' => [ 'Samsung', 'Galaxy Chat' ], + 'GT-B5510!' => [ 'Samsung', 'Galaxy Y Pro' ], + 'GT-B5512!' => [ 'Samsung', 'Galaxy Y Pro Duos' ], + 'GT-B7510!' => [ 'Samsung', 'Galaxy Pro' ], + 'GT-B7810!' => [ 'Samsung', 'Galaxy M Pro 2' ], + 'GT-B9062!' => [ 'Samsung', 'GT-B9062' ], + 'GT-B9120!' => [ 'Samsung', 'GT-B9120' ], + 'GT-B9150!' => [ 'Samsung', 'Galaxy HomeSync', DeviceType::TELEVISION ], + 'GT-B9388!' => [ 'Samsung', 'GT-B9388' ], + ], + + 'GT-I[0-9]{3,4}!!' => [ + 'GT-I55(00|03|08)!' => [ 'Samsung', 'Galaxy Europa' ], + 'GT-I5510!' => [ 'Samsung', 'Galaxy 551' ], + 'GT-I5700!' => [ 'Samsung', 'Galaxy Spica' ], + 'GT-I58(00|01)!' => [ 'Samsung', 'Galaxy Apollo' ], + 'GT-I6500!' => [ 'Samsung', 'Saturn' ], + 'GT-I7500!' => [ 'Samsung', 'Galaxy' ], + 'GT-I777!' => [ 'Samsung', 'Singa' ], + 'GT-I8000!' => [ 'Samsung', 'Omnia 2' ], + 'GT-I8150!' => [ 'Samsung', 'Galaxy W' ], + 'GT-I8160!' => [ 'Samsung', 'Galaxy Ace 2' ], + 'GT-I81(90|91)!' => [ 'Samsung', 'Galaxy S III Mini' ], + 'GT-I8200!' => [ 'Samsung', 'Galaxy S III Mini Value Edition' ], + 'GT-I8240!' => [ 'Samsung', 'GT-I8240' ], + 'GT-I8245!' => [ 'Samsung', 'GT-I8245' ], + 'GT-I8250!' => [ 'Samsung', 'Galaxy Beam' ], + 'GT-I8258!' => [ 'Samsung', 'Galaxy M Style' ], + 'GT-I82(60|62)!' => [ 'Samsung', 'Galaxy Core' ], + 'GT-I8268!' => [ 'Samsung', 'GT-I8268' ], + 'GT-I85(20|30)!' => [ 'Samsung', 'Galaxy Beam' ], + 'GT-I85(50|52|58)!' => [ 'Samsung', 'Galaxy Win' ], + 'GT-I8580' => [ 'Samsung', 'Galaxy Core Advance' ], + 'GT-I8730!' => [ 'Samsung', 'Galaxy Express' ], + 'GT-I90(00|08|18|88)!' => [ 'Samsung', 'Galaxy S' ], + 'GT-I9001!' => [ 'Samsung', 'Galaxy S Plus' ], + 'GT-I9003!' => [ 'Samsung', 'Galaxy SL' ], + 'GT-I9010!' => [ 'Samsung', 'Galaxy S Giorgio Armani' ], + 'GT-I9050!' => [ 'Samsung', 'GT-I9050' ], + 'GT-I9060!' => [ 'Samsung', 'Galaxy Grand Neo' ], + 'GT-I9063!' => [ 'Samsung', 'Galaxy Grand Neo Duos' ], + 'GT-I9070!' => [ 'Samsung', 'Galaxy S Advance' ], + 'GT-I9080!' => [ 'Samsung', 'Galaxy Grand' ], + 'GT-I9082!' => [ 'Samsung', 'Galaxy Grand Duos' ], + 'GT-I91(00|08)!' => [ 'Samsung', 'Galaxy S II' ], + 'GT-I9103!' => [ 'Samsung', 'Galaxy R' ], + 'GT-I9105!' => [ 'Samsung', 'Galaxy S II Plus' ], + 'GT-I91(18|28)!' => [ 'Samsung', 'Galaxy Grand' ], + 'GT-I91(50|58)!' => [ 'Samsung', 'Galaxy Mega 5.8' ], + 'GT-I9152!' => [ 'Samsung', 'Galaxy Mega 5.8 Plus' ], + 'GT-I9168!' => [ 'Samsung', 'Galaxy Grand Neo+' ], + 'GT-I9188!' => [ 'Samsung', 'GT-I9188' ], + 'GT-I91(90|95|97)!' => [ 'Samsung', 'Galaxy S4 Mini' ], + 'GT-I9192!' => [ 'Samsung', 'Galaxy S4 Mini Duos' ], + 'GT-I92(00|05|08)!' => [ 'Samsung', 'Galaxy Mega 6.3' ], + 'GT-I9210!' => [ 'Samsung', 'Galaxy S II LTE' ], + 'GT-I92(20|28)!' => [ 'Samsung', 'Galaxy Note' ], + 'GT-I92(30|35)!' => [ 'Samsung', 'Galaxy Golden' ], + 'GT-I9250!' => [ 'Samsung', 'Galaxy Nexus' ], + 'GT-I92(60|68)!' => [ 'Samsung', 'Galaxy Premier' ], + 'GT-I9295!' => [ 'Samsung', 'Galaxy S4 Active' ], + 'GT-I93(00|03|05|08)!' => [ 'Samsung', 'Galaxy S III' ], + 'GT-I93(01)!' => [ 'Samsung', 'Galaxy S3 Neo' ], + 'GT-I9400' => [ 'Samsung', 'GT-I9400' ], // Unknown + 'GT-I9405!' => [ 'Samsung', 'GT-I9405' ], // Unknown + 'GT-I9406!' => [ 'Samsung', 'GT-I9406' ], // Unknown + 'GT-I95(00|05|07)!' => [ 'Samsung', 'Galaxy S4' ], + 'GT-I95(02|08)!' => [ 'Samsung', 'Galaxy S4 Duos' ], + 'GT-I95(06)!' => [ 'Samsung', 'Galaxy S4 Advance' ], + 'GT-I9515!' => [ 'Samsung', 'Galaxy S4 Neo' ], // Maybe + 'GT-I9600!' => [ 'Samsung', 'GT-I9600' ], // Unknown + 'GT-I9800!' => [ 'Samsung', 'GT-I9800' ], // Unknown + ], + + 'GT-N[0-9]{4,4}!!' => [ + 'GT-N51(00|05|10|20)!' => [ 'Samsung', 'Galaxy Note 8.0', DeviceType::TABLET ], + 'GT-N70(00|05)!' => [ 'Samsung', 'Galaxy Note' ], + 'GT-N71(00|02|05|08)!' => [ 'Samsung', 'Galaxy Note II' ], + 'GT-N7200!' => [ 'Samsung', 'Galaxy Note 3' ], // Fake? + 'GT-N80(00|05|10|13|20)!' => [ 'Samsung', 'Galaxy Note 10.1', DeviceType::TABLET ], + 'GT-N90(00|02||05|06|08)!' => [ 'Samsung', 'Galaxy Note 3' ], + ], + + 'GT-P[0-9]{4,4}!!' => [ + 'GT-P10(00|10|13)!' => [ 'Samsung', 'Galaxy Tab 7.0', DeviceType::TABLET ], + 'GT-P31(00|05|08|10|13)!' => [ 'Samsung', 'Galaxy Tab 2 7.0', DeviceType::TABLET ], + 'GT-P32(00|10)!' => [ 'Samsung', 'Galaxy Tab 3 7.0', DeviceType::TABLET ], + 'GT-P51(00|10|13)!' => [ 'Samsung', 'Galaxy Tab 2 10.1', DeviceType::TABLET ], + 'GT-P52(00|10|20)!' => [ 'Samsung', 'Galaxy Tab 3 10.1', DeviceType::TABLET ], + 'GT-P62(00|10)!' => [ 'Samsung', 'Galaxy Tab 7.0 Plus', DeviceType::TABLET ], + 'GT-P62(01|11)!' => [ 'Samsung', 'Galaxy Tab 7.0 Plus N', DeviceType::TABLET ], + 'GT-P68(00|10|13)!' => [ 'Samsung', 'Galaxy Tab 7.7', DeviceType::TABLET ], + 'GT-P7100!' => [ 'Samsung', 'Galaxy Tab 10.1V', DeviceType::TABLET ], + 'GT-P73(00|10|20)!' => [ 'Samsung', 'Galaxy Tab 8.9', DeviceType::TABLET ], + 'GT-P75(00|03|10)!' => [ 'Samsung', 'Galaxy Tab 10.1', DeviceType::TABLET ], + 'GT-P75(01|11)!' => [ 'Samsung', 'Galaxy Tab 10.1N', DeviceType::TABLET ], + 'GT-P7580!' => [ 'Samsung', 'Galaxy Tab 10.1', DeviceType::TABLET ], + 'GT-P8110!' => [ 'Samsung', 'Nexus 10', DeviceType::TABLET ], + 'GT-P8200!' => [ 'Samsung', 'Galaxy Tab 3 Plus (10.1)', DeviceType::TABLET ], + ], + + 'GT-S[0-9]{4,4}!!' => [ + 'GT-S52(80|82)!' => [ 'Samsung', 'Galaxy Star' ], + 'GT-S5283!' => [ 'Samsung', 'Galaxy Star Trios' ], + 'GT-S5300!' => [ 'Samsung', 'Galaxy Pocket' ], + 'GT-S5301!' => [ 'Samsung', 'Galaxy Pocket Plus' ], + 'GT-S5302!' => [ 'Samsung', 'Galaxy Pocket Duos' ], + 'GT-S5303!' => [ 'Samsung', 'Galaxy Y Plus' ], + 'GT-S5310!' => [ 'Samsung', 'Galaxy Pocket Neo' ], + 'GT-S5312!' => [ 'Samsung', 'Galaxy Pocket Neo Duos' ], + 'GT-S53(60|63|68|69)!' => [ 'Samsung', 'Galaxy Y' ], + 'GT-S5367!' => [ 'Samsung', 'Galaxy Y TV' ], + 'GT-S55(70|78)!' => [ 'Samsung', 'Galaxy Mini' ], + 'GT-S5660!' => [ 'Samsung', 'Galaxy Gio' ], + 'GT-S5670!' => [ 'Samsung', 'Galaxy Fit' ], + 'GT-S56(90|98)!' => [ 'Samsung', 'Galaxy Xcover' ], + 'GT-S58(20|30|31|38|39)!' => [ 'Samsung', 'Galaxy Ace' ], + 'GT-S6010!' => [ 'Samsung', 'Galaxy Music' ], + 'GT-S6012!' => [ 'Samsung', 'Galaxy Music Duos' ], + 'GT-S6102!' => [ 'Samsung', 'Galaxy Y Duos' ], + 'GT-S6108!' => [ 'Samsung', 'Galaxy Y Pop' ], + 'GT-S6293!' => [ 'Samsung', 'Galaxy Young Plus' ], + 'GT-S6310!' => [ 'Samsung', 'Galaxy Young' ], + 'GT-S6312!' => [ 'Samsung', 'Galaxy Young Duos' ], + 'GT-S6313!' => [ 'Samsung', 'Galaxy Y Duos TV' ], + 'GT-S6352!' => [ 'Samsung', 'Galaxy Ace Duos' ], + 'GT-S6358!' => [ 'Samsung', 'Galaxy Ace' ], + 'GT-S6500!' => [ 'Samsung', 'Galaxy Mini 2' ], + 'GT-S6702!' => [ 'Samsung', 'Galaxy Y Duos' ], + 'GT-S6790!' => [ 'Samsung', 'Galaxy Fame Lite' ], + 'GT-S6792!' => [ 'Samsung', 'Galaxy Fame Lite Duos' ], + 'GT-S6800!' => [ 'Samsung', 'Galaxy Ace Advance' ], + 'GT-S6802!' => [ 'Samsung', 'Galaxy Ace Duos' ], + 'GT-S68(10|12|18)!' => [ 'Samsung', 'Galaxy Fame' ], + 'GT-S72(60|62)!' => [ 'Samsung', 'Galaxy Star Pro' ], + 'GT-S72(70|75|78)!' => [ 'Samsung', 'Galaxy Ace 3' ], + 'GT-S7273T' => [ 'Samsung', 'Galaxy S II TV' ], + 'GT-S72(72|73)!' => [ 'Samsung', 'Galaxy Ace 3 Duos' ], + 'GT-S7390!' => [ 'Samsung', 'Galaxy Trend Lite' ], // Aka Galaxy Fresh + 'GT-S7392!' => [ 'Samsung', 'Galaxy Trend' ], + 'GT-S75(00|08)!' => [ 'Samsung', 'Galaxy Ace Plus' ], + 'GT-S7560!' => [ 'Samsung', 'Galaxy Ace II x' ], + 'GT-S75(62|66|68)!' => [ 'Samsung', 'Galaxy S Duos' ], + 'GT-S7570!' => [ 'Samsung', 'Galaxy Trend II' ], + 'GT-S7572!' => [ 'Samsung', 'Galaxy Trend II Duos' ], + 'GT-S75(80|83)!' => [ 'Samsung', 'Galaxy Trend Plus' ], + 'GT-S75(82)!' => [ 'Samsung', 'Galaxy S Duos 2' ], + 'GT-S7710!' => [ 'Samsung', 'Galaxy Xcover 2' ], + 'GT-S7898!' => [ 'Samsung', 'Galaxy Trend 2' ], + 'GT-S8500' => [ 'Samsung', 'Wave' ], + 'GT-S8530' => [ 'Samsung', 'Wave II' ], + 'GT-S9081' => [ 'Samsung', 'GT-S9081' ], // Unknown + ], + + 'GT-T959!' => [ 'Samsung', 'Galaxy S Vibrant' ], + + 'SCH-[iI][0-9]{3,3}!!' => [ + 'SCH-i509!' => [ 'Samsung', 'Galaxy Y' ], + 'SCH-i559' => [ 'Samsung', 'Galaxy Pop' ], + 'SCH-i569' => [ 'Samsung', 'Galaxy Gio' ], + 'SCH-i579' => [ 'Samsung', 'Galaxy Ace' ], + 'SCH-i589' => [ 'Samsung', 'Galaxy Ace Duos' ], + 'SCH-i705!' => [ 'Samsung', 'Galaxy Tab 2 7.0', DeviceType::TABLET ], + 'SCH-i809' => [ 'Samsung', 'Galaxy S' ], + 'SCH-i889' => [ 'Samsung', 'Galaxy Note' ], + 'SCH-i899' => [ 'Samsung', 'Galaxy' ], + 'SCH-i909' => [ 'Samsung', 'Galaxy S' ], + 'SCH-i919' => [ 'Samsung', 'Galaxy S Duos' ], + 'SCH-i929' => [ 'Samsung', 'Galaxy S II Duos' ], + 'SCH-I100' => [ 'Samsung', 'Gem' ], + 'SCH-I110' => [ 'Samsung', 'Illusion' ], + 'SCH-I200PP' => [ 'Samsung', 'Galaxy Legend' ], + 'SCH-I200( 4G)?$!' => [ 'Samsung', 'Galaxy Stellar' ], + 'SCH-I339' => [ 'Samsung', 'SCH-I339' ], + 'SCH-I400' => [ 'Samsung', 'Continuum' ], + 'SCH-I405( 4G)?$!' => [ 'Samsung', 'Stratosphere' ], + 'SCH-I405U' => [ 'Samsung', 'Galaxy Metrix' ], + 'SCH-I415( 4G)?$!' => [ 'Samsung', 'Stratosphere II' ], + 'SCH-I425' => [ 'Samsung', 'Stratosphere 3' ], + 'SCH-I435!' => [ 'Samsung', 'Galaxy S4 Mini' ], + 'SCH-I500' => [ 'Samsung', 'Fascinate' ], + 'SCH-I510' => [ 'Samsung', 'Stealth V' ], + 'SCH-I510 4G' => [ 'Samsung', 'Droid Charge' ], + 'SCH-I515' => [ 'Samsung', 'Galaxy Nexus' ], + 'SCH-I519' => [ 'Samsung', 'SCH-I519' ], + 'SCH-I535!' => [ 'Samsung', 'Galaxy S III' ], + 'SCH-I545!' => [ 'Samsung', 'Galaxy S4' ], + 'SCH-I605!' => [ 'Samsung', 'Galaxy Note II' ], + 'SCH-I619' => [ 'Samsung', 'Galaxy Ace A+' ], + 'SCH-I629' => [ 'Samsung', 'Galaxy Fame' ], + 'SCH-I639' => [ 'Samsung', 'SCH-I639' ], + 'SCH-I659' => [ 'Samsung', 'Galaxy Ace Plus' ], + 'SCH-I665' => [ 'Samsung', 'SCH-I665' ], // Unknown + 'SCH-I679' => [ 'Samsung', 'SCH-I679' ], + 'SCH-I699!' => [ 'Samsung', 'Galaxy Trend' ], + 'SCH-I739' => [ 'Samsung', 'Galaxy Trend 2' ], + 'SCH-I747' => [ 'Samsung', 'Galaxy S III' ], + 'SCH-I759' => [ 'Samsung', 'Galaxy Infinite' ], + 'SCH-I779' => [ 'Samsung', 'Saga' ], + 'SCH-I800' => [ 'Samsung', 'Galaxy Tab 7.0', DeviceType::TABLET ], + 'SCH-I815!' => [ 'Samsung', 'Galaxy Tab 7.7', DeviceType::TABLET ], + 'SCH-I829' => [ 'Samsung', 'Galaxy Style Duos' ], + 'SCH-I869' => [ 'Samsung', 'Galaxy Win' ], + 'SCH-I879!' => [ 'Samsung', 'Galaxy Grand' ], + 'SCH-I905!' => [ 'Samsung', 'Galaxy Tab 10.1', DeviceType::TABLET ], + 'SCH-I909' => [ 'Samsung', 'Galaxy S' ], + 'SCH-I915!' => [ 'Samsung', 'Galaxy Tab 2 10.1', DeviceType::TABLET ], + 'SCH-I919!' => [ 'Samsung', 'Galaxy S Duos' ], + 'SCH-I925!' => [ 'Samsung', 'Galaxy Note 10.1', DeviceType::TABLET ], + 'SCH-I939!' => [ 'Samsung', 'Galaxy S III' ], + 'SCH-I959' => [ 'Samsung', 'Galaxy S4' ], + ], + + 'SCH-L710!' => [ 'Samsung', 'Galaxy S III' ], + 'SCH-M828!' => [ 'Samsung', 'Galaxy Precedent' ], + 'SCH-N719' => [ 'Samsung', 'Galaxy Note II' ], + + 'SCH-P[0-9]{3,3}!!' => [ + 'SCH-P709!' => [ 'Samsung', 'Galaxy Mega 5.8' ], + 'SCH-P729' => [ 'Samsung', 'Galaxy Mega 6.3' ], + 'SCH-P739' => [ 'Samsung', 'Galaxy Tab 8.9', DeviceType::TABLET ], + ], + + 'SCH-R[0-9]{3,3}!!' => [ + 'SCH-R530!' => [ 'Samsung', 'Galaxy S III' ], + 'SCH-R680!' => [ 'Samsung', 'Repp' ], + 'SCH-R710!' => [ 'Samsung', 'Suede' ], + 'SCH-R720!' => [ 'Samsung', 'Admire' ], + 'SCH-R730!' => [ 'Samsung', 'Transfix' ], + 'SCH-R740!' => [ 'Samsung', 'Galaxy Discover' ], + 'SCH-R760!' => [ 'Samsung', 'Galaxy S II' ], + 'SCH-R820!' => [ 'Samsung', 'Admire' ], + 'SCH-R830!' => [ 'Samsung', 'Galaxy Axiom' ], + 'SCH-R880!' => [ 'Samsung', 'Acclaim' ], + 'SCH-R890!' => [ 'Samsung', 'SCH-R890' ], + 'SCH-R910!' => [ 'Samsung', 'Galaxy Indulge 4G' ], + 'SCH-R915!' => [ 'Samsung', 'Galaxy Indulge' ], + 'SCH-R920!' => [ 'Samsung', 'Galaxy Attain 4G' ], + 'SCH-R930!' => [ 'Samsung', 'Galaxy S Aviator' ], + 'SCH-R940!' => [ 'Samsung', 'Galaxy S Lightray' ], + 'SCH-R950!' => [ 'Samsung', 'Galaxy Note II' ], + 'SCH-R960!' => [ 'Samsung', 'Galaxy Mega 6.3' ], + 'SCH-R970!' => [ 'Samsung', 'Galaxy S4' ], + ], + + 'SCH-S[0-9]{3,3}!!' => [ + 'SCH-S720!' => [ 'Samsung', 'Galaxy Proclaim' ], + 'SCH-S735!' => [ 'Samsung', 'Galaxy Discover' ], + 'SCH-S738!' => [ 'Samsung', 'Galaxy Centura' ], + 'SCH-S950!' => [ 'Samsung', 'Galaxy S Showcase' ], + 'SCH-S9(60|68)!' => [ 'Samsung', 'Galaxy S III' ], + ], + + 'SCH-V727' => [ 'Samsung', 'Galaxy S4' ], + + 'SCH-W[0-9]{3,4}!!' => [ + 'SCH-W789!' => [ 'Samsung', 'SCH-W789' ], + 'SCH-W799!' => [ 'Samsung', 'SCH-W799' ], + 'SCH-W899' => [ 'Samsung', 'SCH-W899' ], + 'SCH-W999' => [ 'Samsung', 'SCH-W999' ], + 'SCH-W2013' => [ 'Samsung', 'SCH-W2013' ], + 'SCH-W9913' => [ 'Samsung', 'SCH-W9913' ], + ], + + 'SGH-[EILNMS][0-9]{3,4}!!' => [ + 'SGH-E258' => [ 'Samsung', 'SGH-E258' ], + 'SGH-I317!' => [ 'Samsung', 'Galaxy Note II' ], + 'SGH-I237!' => [ 'Samsung', 'SGH-I237' ], // Developer device + 'SGH-I257!' => [ 'Samsung', 'Galaxy S4 Mini' ], + 'SGH-I317!' => [ 'Samsung', 'Galaxy Note II' ], + 'SGH-I337!' => [ 'Samsung', 'Galaxy S4' ], + 'SGH-I407!' => [ 'Samsung', 'Galaxy Amp' ], + 'SGH-I437!' => [ 'Samsung', 'Galaxy Express' ], + 'SGH-I467!' => [ 'Samsung', 'Galaxy Note 8.0', DeviceType::TABLET ], + 'SGH-I497' => [ 'Samsung', 'Galaxy Tab 2 10.1', DeviceType::TABLET ], + 'SGH-I527!' => [ 'Samsung', 'Galaxy Mega 6.3' ], + 'SGH-I535!' => [ 'Samsung', 'Galaxy S III' ], + 'SGH-I537!' => [ 'Samsung', 'Galaxy S4 Active' ], + 'SGH-I545!' => [ 'Samsung', 'Galaxy S4' ], + 'SGH-I547!' => [ 'Samsung', 'Galaxy Rugby Pro' ], + 'SGH-I577!' => [ 'Samsung', 'Galaxy Exhilarate' ], + 'SGH-I717!' => [ 'Samsung', 'Galaxy Note' ], + 'SGH-I727R' => [ 'Samsung', 'Galaxy S II' ], + 'SGH-I727!' => [ 'Samsung', 'Galaxy S II Skyrocket' ], + 'SGH-I7(47|48)!' => [ 'Samsung', 'Galaxy S III' ], + 'SGH-I757!' => [ 'Samsung', 'Galaxy S II Skyrocket HD' ], + 'SGH-I9?777!' => [ 'Samsung', 'Galaxy S II' ], + 'SGH-I807' => [ 'Samsung', 'SGH-I807' ], + 'SGH-I827!' => [ 'Samsung', 'Galaxy Appeal' ], + 'SGH-I847' => [ 'Samsung', 'Rugby Smart' ], + 'SGH-I857' => [ 'Samsung', 'DoubleTime' ], + 'SGH-I8(96|97)!' => [ 'Samsung', 'Captivate' ], + 'SGH-I927!' => [ 'Samsung', 'Captivate Glide' ], + 'SGH-I957!' => [ 'Samsung', 'Galaxy Tab 8.9', DeviceType::TABLET ], + 'SGH-I987' => [ 'Samsung', 'Galaxy Tab 7.0', DeviceType::TABLET ], + 'SGH-I997!' => [ 'Samsung', 'Infuse 4G' ], + 'SGH-I9000' => [ 'Samsung', 'Galaxy S' ], + 'SGH-I9300' => [ 'Samsung', 'Galaxy S III' ], + 'SGH-L710' => [ 'Samsung', 'Galaxy S III' ], + 'SGH-N014!' => [ 'Samsung', 'GALAXY Tab 10.1 LTE SC-01D', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + 'SGH-N075!' => [ 'Samsung', 'GALAXY J SC-02F', 'carrier' => 'DoCoMo' ], + 'SGH-M819!' => [ 'Samsung', 'Galaxy Mega 6.3' ], + 'SGH-M909!' => [ 'Samsung', 'Galaxy S III' ], + 'SGH-M919!' => [ 'Samsung', 'Galaxy S4' ], + 'SGH-S730!' => [ 'Samsung', 'Galaxy Discover' ], + 'SGH-S959!' => [ 'Samsung', 'Galaxy S II' ], + 'SGH-S970G' => [ 'Samsung', 'Galaxy S4' ], + ], + + 'SGH-T[0-9]{3,3}!!' => [ + 'SGH-T289!' => [ 'Samsung', 'Gravity Q' ], + 'SGH-T399!' => [ 'Samsung', 'Galaxy Light' ], // Codename Garda + 'SGH-T499!' => [ 'Samsung', 'Dart' ], + 'SGH-T499[VY]!' => [ 'Samsung', 'Galaxy Mini' ], + 'SGH-T589!' => [ 'Samsung', 'Gravity Smart' ], + 'SGH-T599!' => [ 'Samsung', 'Galaxy Exhibit' ], + 'SGH-T679!' => [ 'Samsung', 'Galaxy Exhibit II' ], + 'SGH-T699' => [ 'Samsung', 'Galaxy S Relay' ], + 'SGH-T727' => [ 'Samsung', 'Galaxy S II Skyrocket' ], + 'SGH-T759' => [ 'Samsung', 'Exhibit 4G' ], + 'SGH-T769' => [ 'Samsung', 'Galaxy S Blaze' ], + 'SGH-T779' => [ 'Samsung', 'Galaxy Tab 2 10.1', DeviceType::TABLET ], + 'SGH-T839!' => [ 'Samsung', 'T-Mobile Sidekick' ], + 'SGH-T849' => [ 'Samsung', 'Galaxy Tab 7.0', DeviceType::TABLET ], + 'SGH-T859' => [ 'Samsung', 'Galaxy Tab 10.1', DeviceType::TABLET ], + 'SGH-T869' => [ 'Samsung', 'Galaxy Tab 7.0 Plus', DeviceType::TABLET ], + 'SGH-T879' => [ 'Samsung', 'Galaxy Note' ], + 'SGH-T889!' => [ 'Samsung', 'Galaxy Note II' ], + 'SGH-T959' => [ 'Samsung', 'Vibrant' ], + 'SGH-T959D' => [ 'Samsung', 'Galaxy S Fascinate 3G+' ], + 'SGH-T959P' => [ 'Samsung', 'Galaxy S Fascinate 4G' ], + 'SGH-T959V' => [ 'Samsung', 'Galaxy S 4G' ], + 'SGH-T959W' => [ 'Samsung', 'Galaxy S 4G' ], + 'SGH-T989' => [ 'Samsung', 'Galaxy S II' ], + 'SGH-T989D' => [ 'Samsung', 'Galaxy S II X' ], + 'SGH-T999!' => [ 'Samsung', 'Galaxy S III' ], + ], + + 'SGH-W2013!' => [ 'Samsung', 'SGH-W2013' ], + + 'SHV-E[0-9]{3,3}!!' => [ + 'SHV-E120!' => [ 'Samsung', 'Galaxy S II HD LTE' ], + 'SHV-E110!' => [ 'Samsung', 'Galaxy S II LTE' ], + 'SHV-E140!' => [ 'Samsung', 'Galaxy Tab 8.9', DeviceType::TABLET ], + 'SHV-E150!' => [ 'Samsung', 'Galaxy Tab 7.7', DeviceType::TABLET ], + 'SHV-E160!' => [ 'Samsung', 'Galaxy Note' ], + 'SHV-E170!' => [ 'Samsung', 'Galaxy R' ], + 'SHV-E210!' => [ 'Samsung', 'Galaxy S III' ], + 'SHV-E220!' => [ 'Samsung', 'Galaxy Pop' ], + 'SHV-E230!' => [ 'Samsung', 'Galaxy Note 10.1', DeviceType::TABLET ], + 'SHV-E250!' => [ 'Samsung', 'Galaxy Note II' ], + 'SHV-E2(70|75)!' => [ 'Samsung', 'Galaxy Grand' ], + 'SHV-E300!' => [ 'Samsung', 'Galaxy S4' ], + 'SHV-E310!' => [ 'Samsung', 'Galaxy Mega 6.3' ], + 'SHV-E330!' => [ 'Samsung', 'Galaxy S4' ], + 'SHV-E370!' => [ 'Samsung', 'Galaxy S4 Mini' ], + 'SHV-E400!' => [ 'Samsung', 'Galaxy Folder' ], + 'SHV-E470!' => [ 'Samsung', 'Galaxy S4 Active' ], + 'SHV-E500!' => [ 'Samsung', 'Galaxy Win' ], + 'SHV-E510!' => [ 'Samsung', 'SHV-E510' ], + ], + + 'SHW-M[0-9]{3,3}!!' => [ + 'SHW-M100!' => [ 'Samsung', 'Galaxy A' ], + 'SHW-M110!' => [ 'Samsung', 'Galaxy S' ], + 'SHW-M115!' => [ 'Samsung', 'SHW-M115' ], + 'SHW-M130L!' => [ 'Samsung', 'Galaxy U' ], + 'SHW-M130K!' => [ 'Samsung', 'Galaxy K' ], + 'SHW-M135!' => [ 'Samsung', 'Galaxy W' ], + 'SHW-M1(80|85)!' => [ 'Samsung', 'Galaxy Tab 7.0', DeviceType::TABLET ], + 'SHW-M190!' => [ 'Samsung', 'Galaxy S Hoppin' ], + 'SHW-M220!' => [ 'Samsung', 'Galaxy Neo' ], + 'SHW-M240!' => [ 'Samsung', 'Galaxy Ace' ], + 'SHW ?-M250!' => [ 'Samsung', 'Galaxy S II' ], + 'SHW-M280!' => [ 'Samsung', 'SHW-M280' ], + 'SHW-M290!' => [ 'Samsung', 'Galaxy Gio' ], + 'SHW-M300!' => [ 'Samsung', 'Galaxy Tab 10.1', DeviceType::TABLET ], + 'SHW-M305!' => [ 'Samsung', 'Galaxy Tab 8.9', DeviceType::TABLET ], + 'SHW-M340!' => [ 'Samsung', 'Galaxy M Style' ], + 'SHW-M380!' => [ 'Samsung', 'Galaxy Tab 10.1', DeviceType::TABLET ], + 'SHW-M420!' => [ 'Samsung', 'Galaxy Nexus' ], + 'SHW-M430!' => [ 'Samsung', 'Galaxy Tab 7.0 Plus', DeviceType::TABLET ], + 'SHW-M440!' => [ 'Samsung', 'Galaxy S III' ], + 'SHW-M460!' => [ 'Samsung', 'Galaxy Ace Plus' ], + 'SHW-M4(80|85|86)!' => [ 'Samsung', 'Galaxy Note 10.1', DeviceType::TABLET ], + 'SHW-M500!' => [ 'Samsung', 'Galaxy Note 8.0', DeviceType::TABLET ], + 'SHW-M550!' => [ 'Samsung', 'SHW-M550' ], // Unknown + 'SHW-M570!' => [ 'Samsung', 'Galaxy Core Advance' ], + 'SHW-M5(80|85)!' => [ 'Samsung', 'Galaxy Core Safe' ], + ], + + 'SMT-E5015' => [ 'Samsung', 'Olleh SkyLife Smart Settopbox', DeviceType::TELEVISION ], + 'SMT-i9100' => [ 'Samsung', 'Galaxy Tab 7.0', DeviceType::TABLET ], + + 'SM-A[0-9]{3,3}!!' => [ + 'SM-A300!' => [ 'Samsung', 'Galaxy A3' ], + 'SM-A310!' => [ 'Samsung', 'Galaxy A3 (2016)' ], + 'SM-A500!' => [ 'Samsung', 'Galaxy A5' ], + 'SM-A510!' => [ 'Samsung', 'Galaxy A5 (2016)' ], + 'SM-A700!' => [ 'Samsung', 'Galaxy A7' ], + 'SM-A710!' => [ 'Samsung', 'Galaxy A7 (2016)' ], + 'SM-A800!' => [ 'Samsung', 'Galaxy A8' ], + 'SM-A900!' => [ 'Samsung', 'Galaxy A9 (2016)' ], + 'SM-A910!' => [ 'Samsung', 'Galaxy A9 Pro' ], + ], + + 'SM-C[0-9]{3,3}!!' => [ + 'SM-C10[15]!' => [ 'Samsung', 'Galaxy S4 Zoom' ], + 'SM-C11[15]!' => [ 'Samsung', 'Galaxy K Zoom' ], + 'SM-C500!' => [ 'Samsung', 'Galaxy C5' ], + 'SM-C700!' => [ 'Samsung', 'Galaxy C7' ], + ], + + 'SM-E[0-9]{3,3}!!' => [ + 'SM-E500!' => [ 'Samsung', 'Galaxy E5' ], + 'SM-E700!' => [ 'Samsung', 'Galaxy E7' ], + ], + + 'SM-G[0-9]{3,3}!!' => [ + 'SM-G110!' => [ 'Samsung', 'Galaxy Pocket 2' ], + 'SM-G130BT' => [ 'Samsung', 'Galaxy Young 2' ], + 'SM-G130BU' => [ 'Samsung', 'Galaxy Young 2' ], + 'SM-G130E' => [ 'Samsung', 'Galaxy Star 2' ], + 'SM-G130H' => [ 'Samsung', 'Galaxy Young 2' ], + 'SM-G130U' => [ 'Samsung', 'Galaxy Young 2' ], + 'SM-G130HN' => [ 'Samsung', 'Galaxy Young 2 Duos' ], + 'SM-G130M' => [ 'Samsung', 'Galaxy Young 2 Duos' ], + 'SM-G1(50|55)!' => [ 'Samsung', 'Galaxy Folder' ], + 'SM-G310H' => [ 'Samsung', 'Galaxy Ace 4' ], + 'SM-G310HN' => [ 'Samsung', 'Galaxy Ace Style' ], + 'SM-G310R5' => [ 'Samsung', 'GreatCall Touch 3' ], + 'SM-G313HU!' => [ 'Samsung', 'Galaxy S Duos 3' ], + 'SM-G313!' => [ 'Samsung', 'Galaxy Ace 4' ], + 'SM-G316HU!' => [ 'Samsung', 'Galaxy S Duos 3-VE' ], + 'SM-G316!' => [ 'Samsung', 'Galaxy Ace 4' ], + 'SM-G318!' => [ 'Samsung', 'Galaxy Ace 4 Neo' ], + 'SM-G350[289]!' => [ 'Samsung', 'Galaxy Trend 3' ], + 'SM-G350!' => [ 'Samsung', 'Galaxy Core Plus' ], + 'SM-G3518!' => [ 'Samsung', 'Galaxy Core' ], + 'SM-G355!' => [ 'Samsung', 'Galaxy Core 2' ], + 'SM-G3568!' => [ 'Samsung', 'Galaxy Core Mini' ], + 'SM-G357!' => [ 'Samsung', 'Galaxy Ace Style' ], + 'SM-G358[689]!' => [ 'Samsung', 'Galaxy Core Lite' ], + 'SM-G360BT' => [ 'Samsung', 'Galaxy Win 2 Duos TV' ], + 'SM-G360AZ' => [ 'Samsung', 'Galaxy Core Prime' ], + 'SM-G360R6!' => [ 'Samsung', 'Galaxy Core Prime' ], + 'SM-G360[FGHMPTV689]!' => [ 'Samsung', 'Galaxy Core Prime' ], + 'SM-G361!' => [ 'Samsung', 'Galaxy Core Prime VE' ], + 'SM-G3812B!' => [ 'Samsung', 'Galaxy S III Slim' ], + 'SM-G3812' => [ 'Samsung', 'Galaxy Win Pro' ], + 'SM-G3815' => [ 'Samsung', 'Galaxy Express 2' ], + 'SM-G381[89]!' => [ 'Samsung', 'Galaxy Win Pro' ], + 'SM-G3858!' => [ 'Samsung', 'Galaxy Beam 2' ], + 'SM-G386!' => [ 'Samsung', 'Galaxy Core' ], // LTE variant + 'SM-G388!' => [ 'Samsung', 'Galaxy Xcover 3' ], + 'SM-G420!' => [ 'Samsung', 'SM-G420' ], // Unknown + 'SM-G430!' => [ 'Samsung', 'SM-G430' ], // Unknown + 'SM-G510!' => [ 'Samsung', 'Galaxy Core Max' ], + 'SM-G530!' => [ 'Samsung', 'Galaxy Grand Prime' ], + 'SM-G531!' => [ 'Samsung', 'Galaxy Grand Prime VE' ], + 'SM-G550!' => [ 'Samsung', 'Galaxy On5' ], + 'SM-G600!' => [ 'Samsung', 'Galaxy On7' ], + 'SM-G710!' => [ 'Samsung', 'Galaxy Grand 2' ], + 'SM-G720!' => [ 'Samsung', 'Galaxy Grand 3' ], + 'SM-G730!' => [ 'Samsung', 'Galaxy S III Mini' ], + 'SM-G750!' => [ 'Samsung', 'Galaxy Mega 2 ' ], + 'SM-G800!' => [ 'Samsung', 'Galaxy S5 Mini' ], + 'SM-G850!' => [ 'Samsung', 'Galaxy Alpha' ], + 'SM-G860!' => [ 'Samsung', 'Galaxy S5 Sport' ], + 'SM-G870!' => [ 'Samsung', 'Galaxy S5 Active' ], + 'SM-G880!' => [ 'Samsung', 'Galaxy S7 mini' ], + 'SM-G890!' => [ 'Samsung', 'Galaxy S6 Active' ], + 'SM-G891!' => [ 'Samsung', 'Galaxy S7 Active' ], + 'SM-G90[016]!' => [ 'Samsung', 'Galaxy S5' ], + 'SM-G903!' => [ 'Samsung', 'Galaxy S5 Neo' ], + 'SM-G9092!' => [ 'Samsung', 'Galaxy G9092' ], + 'SM-G9098!' => [ 'Samsung', 'Galaxy G9098' ], + 'SM-G909D' => [ 'Samsung', 'Galaxy S5' ], // Chinese dual sim variant + 'SM-G910!' => [ 'Samsung', 'Galaxy Round' ], + 'SM-G919!' => [ 'Samsung', 'SM-G9198' ], + 'SM-G920!' => [ 'Samsung', 'Galaxy S6' ], + 'SM-G925!' => [ 'Samsung', 'Galaxy S6 Edge' ], + 'SM-G928!' => [ 'Samsung', 'Galaxy S6 Edge+' ], + 'SM-G930!' => [ 'Samsung', 'Galaxy S7' ], + 'SM-G935!' => [ 'Samsung', 'Galaxy S7 Edge' ], + ], + + 'SM-I9500' => [ 'Samsung', 'Galaxy S4' ], + + 'SM-J[0-9]{3,3}!!' => [ + 'SM-J100!' => [ 'Samsung', 'Galaxy J1' ], + 'SM-J105!' => [ 'Samsung', 'Galaxy J1 Mini' ], + 'SM-J11[01]!' => [ 'Samsung', 'Galaxy J1 Ace' ], + 'SM-J120!' => [ 'Samsung', 'Galaxy J1 (2016)' ], + 'SM-J200!' => [ 'Samsung', 'Galaxy J2' ], + 'SM-J3(10|20)!' => [ 'Samsung', 'Galaxy J3' ], + 'SM-J311!' => [ 'Samsung', 'Galaxy J3 (2016)' ], + 'SM-J500!' => [ 'Samsung', 'Galaxy J5' ], + 'SM-J510!' => [ 'Samsung', 'Galaxy J5 (2016)' ], + 'SM-J700!' => [ 'Samsung', 'Galaxy J7' ], + 'SM-J710!' => [ 'Samsung', 'Galaxy J7 (2016)' ], + ], + + 'SM-N[0-9]{3,4}!!' => [ + 'SM-N750[025789][QV]?!' => [ 'Samsung', 'Galaxy Note 3 Neo' ], + 'SM-N750[LS]?!' => [ 'Samsung', 'Galaxy Note 3 Neo' ], + 'SM-N8000' => [ 'Samsung', 'Galaxy Note 800', DeviceType::TABLET ], + 'SM-N900[0256789]?!' => [ 'Samsung', 'Galaxy Note 3' ], + 'SM-N900!' => [ 'Samsung', 'Galaxy Note 3' ], + 'SM-N910[06]' => [ 'Samsung', 'Galaxy Note 4' ], + 'SM-N91[06]!' => [ 'Samsung', 'Galaxy Note 4' ], + 'SM-N915!' => [ 'Samsung', 'Galaxy Note Edge' ], + 'SM-N920!' => [ 'Samsung', 'Galaxy Note 5' ], // "Noble" + ], + + 'SM-P[0-9]{3,3}!!' => [ + 'SM-P35[015]!' => [ 'Samsung', 'Galaxy Tab A Plus 8.0', DeviceType::TABLET ], + 'SM-P55[015]!' => [ 'Samsung', 'Galaxy Tab A Plus 9.7', DeviceType::TABLET ], + 'SM-P60[01257]!' => [ 'Samsung', 'Galaxy Note 10.1 (2014)', DeviceType::TABLET ], + 'SM-P90[01257]!' => [ 'Samsung', 'Galaxy Note Pro', DeviceType::TABLET ], + ], + + 'SM-S[0-9]{3,3}!!' => [ + 'SM-S765C' => [ 'Samsung', 'Galaxy Ace Style' ], + 'SM-S766C' => [ 'Samsung', 'Galaxy Stardust' ], + 'SM-S777C' => [ 'Samsung', 'Galaxy J1' ], + 'SM-S780L' => [ 'Samsung', 'Galaxy Mega 6.3' ], + 'SM-S820L' => [ 'Samsung', 'Galaxy Core Prime' ], + 'SM-S890L' => [ 'Samsung', 'Galaxy S4 Mini' ], + 'SM-S902L' => [ 'Samsung', 'Galaxy S5' ], + 'SM-S906L' => [ 'Samsung', 'Galaxy S6' ], + 'SM-S920L' => [ 'Samsung', 'Galaxy Grand Prime' ], + 'SM-S975L' => [ 'Samsung', 'Galaxy S4' ], + 'SM-S978L' => [ 'Samsung', 'Galaxy E5' ], + ], + + 'SM-T[0-9]{3,3}!!' => [ + 'SM-T11[01]!' => [ 'Samsung', 'Galaxy Tab 3 Lite', DeviceType::TABLET ], + 'SM-T11[36]!' => [ 'Samsung', 'Galaxy Tab 3V 7.0', DeviceType::TABLET ], + 'SM-T2105' => [ 'Samsung', 'Galaxy Tab 3 Kids', DeviceType::TABLET ], + 'SM-T21[01257]!' => [ 'Samsung', 'Galaxy Tab 3 7.0', DeviceType::TABLET ], + 'SM-T2519' => [ 'Samsung', 'Galaxy Tab Q' ], + 'SM-T255[68S]!' => [ 'Samsung', 'Galaxy Tab Q' ], + 'SM-T23[012579]!' => [ 'Samsung', 'Galaxy Tab 4 7.0', DeviceType::TABLET ], + 'SM-T28[05]!' => [ 'Samsung', 'Galaxy Tab A 7.0', DeviceType::TABLET ], + 'SM-T31[0125]!' => [ 'Samsung', 'Galaxy Tab 3 8.0', DeviceType::TABLET ], + 'SM-T32[015]!' => [ 'Samsung', 'Galaxy Tab Pro 8.4', DeviceType::TABLET ], + 'SM-T33[01257]!' => [ 'Samsung', 'Galaxy Tab 4 8.0', DeviceType::TABLET ], + 'SM-T33[3]!' => [ 'Samsung', 'Galaxy Tab 4 8.0 (2015)', DeviceType::TABLET ], + 'SM-T35[0157]!' => [ 'Samsung', 'Galaxy Tab A 8.0', DeviceType::TABLET ], + 'SM-T36[05]!' => [ 'Samsung', 'Galaxy Tab Active 8.0', DeviceType::TABLET ], + 'SM-T37[57]!' => [ 'Samsung', 'Galaxy Tab E 8.0', DeviceType::TABLET ], + 'SM-T520CC' => [ 'Samsung', 'Galaxy Tab Pro 10.1 Chef Collection', DeviceType::TABLET ], + 'SM-T52[05]!' => [ 'Samsung', 'Galaxy Tab Pro 10.1', DeviceType::TABLET ], + 'SM-T530NU' => [ 'Samsung', 'Galaxy Tab 4 Nook 10.1', DeviceType::TABLET ], + 'SM-T53[023]!' => [ 'Samsung', 'Galaxy Tab 4 10.1', DeviceType::TABLET ], + 'SM-T53[157]!' => [ 'Samsung', 'Galaxy Tab 4 10.0', DeviceType::TABLET ], + 'SM-T55[015]!' => [ 'Samsung', 'Galaxy Tab A 9.7', DeviceType::TABLET ], + 'SM-T58[5]!' => [ 'Samsung', 'Galaxy Tab A 10.1', DeviceType::TABLET ], + 'SM-T56[0127]!' => [ 'Samsung', 'Galaxy Tab E 9.6', DeviceType::TABLET ], + 'SM-T67[07]!' => [ 'Samsung', 'Galaxy View', DeviceType::TABLET ], + 'SM-T70[057]!' => [ 'Samsung', 'Galaxy Tab S 8.4', DeviceType::TABLET ], + 'SM-T71[05]!' => [ 'Samsung', 'Galaxy Tab S2 8.0', DeviceType::TABLET ], + 'SM-T71[9]!' => [ 'Samsung', 'Galaxy Tab S3 8.0', DeviceType::TABLET ], + 'SM-T80[0157]!' => [ 'Samsung', 'Galaxy Tab S 10.5', DeviceType::TABLET ], + 'SM-T81[057]!' => [ 'Samsung', 'Galaxy Tab S2 9.7', DeviceType::TABLET ], + 'SM-T81[9]!' => [ 'Samsung', 'Galaxy Tab S3 9.7', DeviceType::TABLET ], + 'SM-T90[05]!' => [ 'Samsung', 'Galaxy Tab Pro 12.2', DeviceType::TABLET ], + ], + + 'SM-V700' => [ 'Samsung', 'Galaxy Gear', DeviceType::WATCH ], + + 'SM-W[0-9]{4,4}!!' => [ + 'SM-W2014' => [ 'Samsung', 'Galaxy W2014' ], + 'SM-W2015' => [ 'Samsung', 'Galaxy Golden 2' ], + 'SM-W2016' => [ 'Samsung', 'Galaxy Golden 3' ], + ], + + 'SPH-D[0-9]{3,3}!!' => [ + 'SPH-D600' => [ 'Samsung', 'Conquer 4G' ], + 'SPH-D700' => [ 'Samsung', 'Epic 4G' ], + 'SPH-D705' => [ 'Samsung', 'Epic 4G 2' ], + 'SPH-D710!' => [ 'Samsung', 'Galaxy S II' ], + 'SPH-D720!' => [ 'Samsung', 'Nexus S' ], + ], + + 'SPH-L[0-9]{3,3}!!' => [ + 'SPH-L300' => [ 'Samsung', 'Galaxy Victory' ], + 'SPH-L500' => [ 'Samsung', 'SPH-L500' ], + 'SPH-L520' => [ 'Samsung', 'Galaxy S4 Mini' ], + 'SPH-L600' => [ 'Samsung', 'Galaxy Mega 6.3' ], + 'SPH-L700' => [ 'Samsung', 'Galaxy Nexus' ], + 'SPH-L710!' => [ 'Samsung', 'Galaxy S III' ], + 'SPH-L72A!' => [ 'Samsung', 'Galaxy S4' ], + 'SPH-L720!' => [ 'Samsung', 'Galaxy S4' ], + 'SPH-L900!' => [ 'Samsung', 'Galaxy Note II' ], + ], + + 'SPH-M[0-9]{3,3}!!' => [ + 'SPH-M820!' => [ 'Samsung', 'Galaxy Prevail' ], + 'SPH-M828!' => [ 'Samsung', 'Galaxy Precedent' ], + 'SPH-M830!' => [ 'Samsung', 'Galaxy Rush' ], + 'SPH-M840' => [ 'Samsung', 'Galaxy Ring' ], + 'SPH-M580!' => [ 'Samsung', 'Replenish' ], + 'SPH-M900' => [ 'Samsung', 'Moment' ], + 'SPH-M910' => [ 'Samsung', 'Intercept' ], + 'SPH-M920' => [ 'Samsung', 'Transform' ], + 'SPH-M930!' => [ 'Samsung', 'Transform Ultra' ], + 'SPH-M950' => [ 'Samsung', 'Galaxy Reverb' ], + ], + + 'SPH-P[0-9]{3,3}!!' => [ + 'SPH-P100!' => [ 'Samsung', 'Galaxy Tab 7.0', DeviceType::TABLET ], + 'SPH-P500' => [ 'Samsung', 'Galaxy Tab 2 10.1', DeviceType::TABLET ], + 'SPH-P600' => [ 'Samsung', 'Galaxy Note 10.1', DeviceType::TABLET ], + ], + + 'YP-G!!' => [ + 'YP-GB1' => [ 'Samsung', 'Galaxy Player', 'media' ], + 'YP-GB70' => [ 'Samsung', 'Galaxy Player 70', 'media' ], + 'YP-GB70D' => [ 'Samsung', 'Galaxy Player 70 Plus', 'media' ], + 'YP-GH1' => [ 'Samsung', 'IceTouch', 'media' ], + 'YP-GP1' => [ 'Samsung', 'Galaxy Player 5.8', 'media' ], + 'YP-GS1' => [ 'Samsung', 'Galaxy S WiFi 3.6', 'media' ], + 'YP-G1' => [ 'Samsung', 'Galaxy S WiFi 4.0', 'media' ], + 'YP-GI1' => [ 'Samsung', 'Galaxy S WiFi 4.2', 'media' ], + 'YP-GI2' => [ 'Samsung', 'Galaxy 070', 'media' ], + 'YP-G50' => [ 'Samsung', 'Galaxy Player', 'media' ], + 'YP-G70' => [ 'Samsung', 'Galaxy S WiFi 5.0', 'media' ], + ], + + 'GT9100' => [ 'Samsung', 'Galaxy S II' ], + 'I897' => [ 'Samsung', 'Captivate' ], + 'I7500' => [ 'Samsung', 'Galaxy' ], + 'I9000' => [ 'Samsung', 'Galaxy S' ], + 'T959' => [ 'Samsung', 'Galaxy S Vibrant' ], + + 'Galaxy!!' => [ + 'Galaxy' => [ 'Samsung', 'Galaxy' ], + 'Galaxy with MCR 1.2' => [ 'Samsung', 'Galaxy' ], + 'Galaxy ACE' => [ 'Samsung', 'Galaxy Ace' ], + 'Galaxy Ace 8' => [ 'Samsung', 'Galaxy Ace' ], + 'Galaxy Express' => [ 'Samsung', 'Galaxy Express' ], + 'Galaxy Mini' => [ 'Samsung', 'Galaxy Mini' ], + 'Galaxy Mini Plus 4G' => [ 'Samsung', 'Galaxy Mini Plus' ], + 'Galaxy Note' => [ 'Samsung', 'Galaxy Note' ], + 'Galaxy Note I' => [ 'Samsung', 'Galaxy Note' ], + 'Galaxy Note II' => [ 'Samsung', 'Galaxy Note II' ], + 'Galaxy Note 2' => [ 'Samsung', 'Galaxy Note II' ], + 'GALAXY Note III' => [ 'Samsung', 'Galaxy Note 3' ], + 'GALAXY Note 3' => [ 'Samsung', 'Galaxy Note 3' ], + 'Galaxy Note 3 N9000' => [ 'Samsung', 'Galaxy Note 3' ], + 'Galaxy NoteIII' => [ 'Samsung', 'Galaxy Note 3' ], + 'Galaxy N3' => [ 'Samsung', 'Galaxy Note 3' ], + 'GalaxyNote3' => [ 'Samsung', 'Galaxy Note 3' ], + 'Galaxy Note 4' => [ 'Samsung', 'Galaxy Note 4' ], + 'GALAXY Note4' => [ 'Samsung', 'Galaxy Note 4' ], + 'GalaxyS' => [ 'Samsung', 'Galaxy S' ], + 'Galaxy S' => [ 'Samsung', 'Galaxy S' ], + 'Galaxy S II' => [ 'Samsung', 'Galaxy S II' ], + 'Galaxy S2' => [ 'Samsung', 'Galaxy S II' ], + 'GalaxyS2' => [ 'Samsung', 'Galaxy S II' ], + 'Galaxy S2!' => [ 'Samsung', 'Galaxy S II' ], + 'Galaxy S III' => [ 'Samsung', 'Galaxy S III' ], + 'GALAXY SIII' => [ 'Samsung', 'Galaxy S III' ], + 'Galaxy S3' => [ 'Samsung', 'Galaxy S III' ], + 'GalaxyS4' => [ 'Samsung', 'Galaxy S4' ], + 'Galaxy S4' => [ 'Samsung', 'Galaxy S4' ], + 'Galaxy-S4' => [ 'Samsung', 'Galaxy S4' ], + 'Galaxy SIV' => [ 'Samsung', 'Galaxy S4' ], + 'Galaxy S IV(I950X)' => [ 'Samsung', 'Galaxy S4' ], + 'Galaxy S4 Mini GT-I9505' => [ 'Samsung', 'Galaxy S4 Mini' ], + 'Galaxy S4 Zoom' => [ 'Samsung', 'Galaxy S4 Zoom' ], + 'GALAXY S5' => [ 'Samsung', 'Galaxy S5' ], + 'Galaxy S5 Sprint' => [ 'Samsung', 'Galaxy S5' ], + 'Galaxy S5 spezial' => [ 'Samsung', 'Galaxy S5' ], + 'Galaxy S6' => [ 'Samsung', 'Galaxy S6' ], + 'Galaxy S6 Edge' => [ 'Samsung', 'Galaxy S6 Edge' ], + 'Galaxy X' => [ 'Samsung', 'Galaxy X' ], + 'Galaxy Spica' => [ 'Samsung', 'Galaxy Spica' ], + 'Galaxy pop plus 4G' => [ 'Samsung', 'Galaxy Pop Plus' ], + 'Galaxy Precedent' => [ 'Samsung', 'Galaxy Precedent' ], + 'GALAXY Tab' => [ 'Samsung', 'Galaxy Tab', DeviceType::TABLET ], + 'Galaxy Tab3' => [ 'Samsung', 'Galaxy Tab 3', DeviceType::TABLET ], + ], + + 'S2' => [ 'Samsung', 'Galaxy S II' ], + 'S3' => [ 'Samsung', 'Galaxy S III' ], + 'I9300 Galaxy SIII ' => [ 'Samsung', 'Galaxy S III' ], + 'S4' => [ 'Samsung', 'Galaxy S4' ], + 'S5' => [ 'Samsung', 'Galaxy S5' ], + 'S5 Mini!' => [ 'Samsung', 'Galaxy S5 Mini' ], + 'S6 Edge+!' => [ 'Samsung', 'Galaxy S6 Edge+' ], + 'Note III' => [ 'Samsung', 'Galaxy Note 3' ], + 'Captivate-I897' => [ 'Samsung', 'Captivate' ], + 'Aegis2' => [ 'Samsung', 'Stratosphere II' ], + 'Vibrantmtd' => [ 'Samsung', 'Vibrant' ], + 'Vibrant T959' => [ 'Samsung', 'Vibrant' ], + 'HOMESYNCT2WIFI' => [ 'Samsung', 'Galaxy HomeSync', DeviceType::TELEVISION ], + + 'SC-?0[0-9][A-Z]!!' => [ + 'SC-01C' => [ 'Samsung', 'GALAXY Tab SC-01C', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + 'SC-01D' => [ 'Samsung', 'GALAXY Tab 10.1 LTE SC-01D', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + 'SC-01E' => [ 'Samsung', 'GALAXY Tab 7.7 Plus SC-01E', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + 'SC-01F' => [ 'Samsung', 'GALAXY Note 3 SC-01F', 'carrier' => 'DoCoMo' ], + 'SC-01G' => [ 'Samsung', 'GALAXY Note Edge SC-01G', 'carrier' => 'DoCoMo' ], + 'SC-01H' => [ 'Samsung', 'GALAXY Active neo SC-01H', 'carrier' => 'DoCoMo' ], + 'SC-02B' => [ 'Samsung', 'GALAXY S SC-02B', 'carrier' => 'DoCoMo' ], + 'SC-02C' => [ 'Samsung', 'GALAXY S II SC-02C', 'carrier' => 'DoCoMo' ], + 'SC-02D' => [ 'Samsung', 'GALAXY Tab 7.0 Plus SC-02D', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + 'SC-02E' => [ 'Samsung', 'GALAXY Note II SC-02E', 'carrier' => 'DoCoMo' ], + 'SC-02F' => [ 'Samsung', 'GALAXY J SC-02F', 'carrier' => 'DoCoMo' ], + 'SC-02G' => [ 'Samsung', 'GALAXY S5 Active SC-02G', 'carrier' => 'DoCoMo' ], + 'SC-02H' => [ 'Samsung', 'Galaxy S7 Edge SC-02H', 'carrier' => 'DoCoMo' ], + 'SC-03D' => [ 'Samsung', 'GALAXY S II LTE SC-03D', 'carrier' => 'DoCoMo' ], + 'SC-03E' => [ 'Samsung', 'GALAXY S III α SC-03E', 'carrier' => 'DoCoMo' ], + 'SC03E' => [ 'Samsung', 'GALAXY S III α SC-03E', 'carrier' => 'DoCoMo' ], + 'SC-03G' => [ 'Samsung', 'GALAXY Tab S 8.4 SC-03G', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + 'SC-04D' => [ 'Samsung', 'GALAXY NEXUS SC-04D', 'carrier' => 'DoCoMo' ], + 'SC-04E' => [ 'Samsung', 'GALAXY S4 SC-04E', 'carrier' => 'DoCoMo' ], + 'SC-04F' => [ 'Samsung', 'GALAXY S5 SC-04F', 'carrier' => 'DoCoMo' ], + 'SC-04G' => [ 'Samsung', 'GALAXY S6 Edge SC-04G', 'carrier' => 'DoCoMo' ], + 'SC-05D' => [ 'Samsung', 'GALAXY Note SC-05D', 'carrier' => 'DoCoMo' ], + 'SC-05G' => [ 'Samsung', 'GALAXY S6 SC-05G', 'carrier' => 'DoCoMo' ], + 'SC-06D' => [ 'Samsung', 'GALAXY S III SC-06D', 'carrier' => 'DoCoMo' ], + ], + + 'SC[LTV][23][0-9]!!' => [ + 'SCL21' => [ 'Samsung', 'GALAXY S III Progre SCL21', 'carrier' => 'au' ], + 'SCL22' => [ 'Samsung', 'GALAXY Note 3 SCL22', 'carrier' => 'au' ], + 'SCL23' => [ 'Samsung', 'GALAXY S5 SCL23', 'carrier' => 'au' ], + 'SCL24' => [ 'Samsung', 'GALAXY Note Edge SCL24', 'carrier' => 'au' ], + 'SCT21' => [ 'Samsung', 'GALAXY Tab S SCT21', DeviceType::TABLET, 'carrier' => 'au' ], + 'SCV31' => [ 'Samsung', 'GALAXY S6 Edge SCV31', 'carrier' => 'au' ], + 'SCV32' => [ 'Samsung', 'GALAXY A8 SCV32', 'carrier' => 'au' ], + 'SCV33' => [ 'Samsung', 'GALAXY S7 edge Injustice Edition SCV33', 'carrier' => 'au' ], + ], + + 'ISW11SC' => [ 'Samsung', 'GALAXY S II WiMAX ISW11SC', 'carrier' => 'au' ], + + '40[0-9]SC!!' => [ + '403SC' => [ 'Samsung', 'GALAXY Tab 4 7.0 403SC', DeviceType::TABLET, 'carrier' => 'Softbank' ], + '404SC' => [ 'Samsung', 'GALAXY S6 Edge 404SC', 'carrier' => 'Softbank' ], + ], + + 'printer-tablet' => [ 'Samsung', 'ProXpress', DeviceType::PRINTER ], + + '(SENCOR )?ELEMENT!!' => [ + 'ELEMENT7V2' => [ 'Sencor', 'Element 7 V2', DeviceType::TABLET ], + 'ELEMENT 7 V2 BASIC' => [ 'Sencor', 'Element 7 V2 Basic', DeviceType::TABLET ], + 'ELEMENT 7V3' => [ 'Sencor', 'Element 7 V3', DeviceType::TABLET ], + 'ELEMENT8' => [ 'Sencor', 'Element 8', DeviceType::TABLET ], + 'SENCOR ELEMENT 8V2' => [ 'Sencor', 'Element 8 V2', DeviceType::TABLET ], + 'ELEMENT 8V3' => [ 'Sencor', 'Element 8 V3', DeviceType::TABLET ], + 'SENCOR ELEMENT 9.7V3' => [ 'Sencor', 'Element 9.7 V3', DeviceType::TABLET ], + 'ELEMENT10 1' => [ 'Sencor', 'Element 10.1', DeviceType::TABLET ], + 'ELEMENT P501' => [ 'Sencor', 'Element P501' ], + ], + + 'SENSEIT R390' => [ 'Senseit', 'R390' ], + 'SENWA S970' => [ 'Senwa', 'S970' ], + 'S1005KTAB' => [ 'Serioux', 'GoTab S1005KTAB', DeviceType::TABLET ], + 'STARXTREM' => [ 'SFR', 'STARXTREM' ], + 'STARXTREM II' => [ 'SFR', 'STARXTREM II' ], + 'STARXTREM 4' => [ 'SFR', 'STARXTREM 4' ], + 'STARXTREM5' => [ 'SFR', 'STARXTREM 5' ], + 'Android edition by sfr STARADDICT' => [ 'SFR', 'STARADDICT' ], + 'V961' => [ 'SFR', 'STARADDICT II' ], + 'Smartphone Android by SFR STARADDICT II' => [ 'SFR', 'STARADDICT II' ], + 'STARADDICT II' => [ 'SFR', 'STARADDICT II' ], + 'STARADDICT II Plus' => [ 'SFR', 'STARADDICT II Plus' ], + 'STARADDICT III' => [ 'SFR', 'STARADDICT III' ], + 'STARADDICT 4' => [ 'SFR', 'STARADDICT 4' ], + 'STARADDICT 5' => [ 'SFR', 'STARADDICT 5' ], + 'Android Edition Starnaute' => [ 'SFR', 'STARNAUTE' ], + 'STARNAUTE II' => [ 'SFR', 'STARNAUTE II' ], + 'STARNAUTE3' => [ 'SFR', 'STARNAUTE 3' ], + 'Starshine' => [ 'SFR', 'STARSHINE' ], + 'STARSHINE II' => [ 'SFR', 'STARSHINE II' ], + 'STARSHINE III' => [ 'SFR', 'STARSHINE III' ], + 'STARSHINE 4' => [ 'SFR', 'STARSHINE 4' ], + 'Android Edition StarText' => [ 'SFR', 'STARTEXT' ], + 'STARTEXT II' => [ 'SFR', 'STARTEXT II' ], + 'Android Edition StarTrail' => [ 'SFR', 'STARTRAIL' ], + 'STARTRAIL II' => [ 'SFR', 'STARTRAIL II' ], + 'StarTrail III' => [ 'SFR', 'STARTRAIL III' ], + 'STARTRAIL4' => [ 'SFR', 'STARTRAIL 4' ], + 'STARTRAIL 4' => [ 'SFR', 'STARTRAIL 4' ], + 'STARTRAIL5' => [ 'SFR', 'STARTRAIL 5' ], + 'STARTRAIL 6 4G' => [ 'SFR', 'STARTRAIL 6' ], + 'STARTRAIL6' => [ 'SFR', 'STARTRAIL 6' ], + 'STARTRAIL7' => [ 'SFR', 'STARTRAIL 7' ], + 'STARTAB' => [ 'SFR', 'STARTAB', DeviceType::TABLET ], + 'SFR StarTab' => [ 'SFR', 'STARTAB', DeviceType::TABLET ], + 'Bambook S1' => [ 'Shanda', 'Bambook S1', DeviceType::TABLET ], + + '[45A]0[0-9]SH!!' => [ + '401SH' => [ 'Sharp', '401SH', 'carrier' => 'Softbank' ], + '402SH' => [ 'Sharp', 'AQUOS CRYSTAL X 402SH', 'carrier' => 'Softbank' ], + '403SH' => [ 'Sharp', 'AQUOS CRYSTAL 2 403SH', 'carrier' => 'Softbank' ], + '404SH' => [ 'Sharp', 'AQUOS Xx 404SH', 'carrier' => 'Softbank' ], + '502SH' => [ 'Sharp', 'AQUOS Xx2 502SH', 'carrier' => 'Softbank' ], + '503SH' => [ 'Sharp', 'AQUOS Xx2 mini 503SH', 'carrier' => 'Softbank' ], + 'A01SH' => [ 'Sharp', 'GALAPAGOS A01SH', 'carrier' => 'Y! Mobile' ], + ], + + 'IS0[0-9]!!' => [ + 'IS01' => [ 'Sharp', 'IS01', 'carrier' => 'au' ], + 'IS03' => [ 'Sharp', 'IS03', 'carrier' => 'au' ], + 'IS05' => [ 'Sharp', 'IS05', 'carrier' => 'au' ], + ], + + 'ISW?1[0-9]SH!!' => [ + 'IS11SH' => [ 'Sharp', 'AQUOS PHONE IS11SH', 'carrier' => 'au' ], + 'IS12SH' => [ 'Sharp', 'AQUOS PHONE IS12SH', 'carrier' => 'au' ], + 'IS13SH' => [ 'Sharp', 'AQUOS PHONE IS13SH', 'carrier' => 'au' ], + 'IS14SH' => [ 'Sharp', 'AQUOS PHONE IS14SH', 'carrier' => 'au' ], + 'IS15SH' => [ 'Sharp', 'AQUOS PHONE SL IS15SH', 'carrier' => 'au' ], + 'ISW16SH' => [ 'Sharp', 'AQUOS PHONE SERIE ISW16SH', 'carrier' => 'au' ], + 'IS17SH' => [ 'Sharp', 'AQUOS PHONE CL IS17SH', 'carrier' => 'au' ], + ], + + 'EB-A71GJ' => [ 'Sharp', 'EB-A71GJ', DeviceType::TABLET ], + 'EB-W51GJ' => [ 'Sharp', 'EB-W51GJ', DeviceType::TABLET ], + 'EB-WX1GJ' => [ 'Sharp', 'EB-WX1GJ', DeviceType::TABLET ], + 'EB-L76G-B' => [ 'Sharp', 'EB-L76G-B', DeviceType::TABLET ], + 'RW107' => [ 'Sharp', 'RW-T107', DeviceType::TABLET ], + + 'SBM[0-9]0[0-9]SH!!' => [ + 'SBM003SH' => [ 'Sharp', 'GALAPAGOS 003SH', 'carrier' => 'Softbank' ], + 'SBM005SH' => [ 'Sharp', 'GALAPAGOS 005SH', 'carrier' => 'Softbank' ], + 'SBM006SH' => [ 'Sharp', 'AQUOS PHONE 006SH', 'carrier' => 'Softbank' ], + 'SBM007SH' => [ 'Sharp', 'AQUOS PHONE THE HYBRID 007SH', 'carrier' => 'Softbank' ], + 'SBM007SHJ' => [ 'Sharp', 'AQUOS PHONE THE HYBRID 007SH J', 'carrier' => 'Softbank' ], + 'SBM007SHK' => [ 'Sharp', '007SH KT', 'carrier' => 'Softbank' ], + 'SBM009SH' => [ 'Sharp', 'AQUOS PHONE THE PREMIUM 009SH', 'carrier' => 'Softbank' ], + 'SBM009SHY' => [ 'Sharp', 'Yahoo! Phone 009SH Y', 'carrier' => 'Softbank' ], + 'SBM101SH' => [ 'Sharp', 'AQUOS PHONE THE HYBRID 101SH', 'carrier' => 'Softbank' ], + 'SBM102SH' => [ 'Sharp', 'AQUOS PHONE 102SH', 'carrier' => 'Softbank' ], + 'SBM102SH2' => [ 'Sharp', 'AQUOS PHONE 102SH II', 'carrier' => 'Softbank' ], + 'SBM103SH' => [ 'Sharp', 'AQUOS PHONE 103SH', 'carrier' => 'Softbank' ], + 'SBM104SH' => [ 'Sharp', 'AQUOS PHONE 104SH', 'carrier' => 'Softbank' ], + 'SBM106SH' => [ 'Sharp', 'AQUOS PHONE Xx 106SH', 'carrier' => 'Softbank' ], + 'SBM107SH' => [ 'Sharp', 'PANTONE 5 107SH', 'carrier' => 'Softbank' ], + 'SBM107SHB' => [ 'Sharp', 'AQUOS PHONE 107SH B', 'carrier' => 'Softbank' ], + 'SBM200SH' => [ 'Sharp', 'PANTONE 6 200SH', 'carrier' => 'Softbank' ], + 'SBM203SH' => [ 'Sharp', 'AQUOS PHONE Xx 203SH', 'carrier' => 'Softbank' ], + 'SBM204SH' => [ 'Sharp', 'シンプルスマホ 204SH', 'carrier' => 'Softbank' ], + 'SBM205SH' => [ 'Sharp', 'AQUOS PHONE ss 205SH', 'carrier' => 'Softbank' ], + 'SBM206SH' => [ 'Sharp', 'AQUOS PHONE Xx 206SH', 'carrier' => 'Softbank' ], + 'SBM302SH' => [ 'Sharp', 'AQUOS PHONE Xx 302SH', 'carrier' => 'Softbank' ], + 'SBM303SH' => [ 'Sharp', 'AQUOS PHONE Xx mini 303SH', 'carrier' => 'Softbank' ], + 'SBM305SH' => [ 'Sharp', 'AQUOS CRYSTAL 305SH', 'carrier' => 'Softbank' ], + 'SBM306SH' => [ 'Sharp', 'AQUOS CRYSTAL 306SH' ], // The U.S. Sprint version (now part of Softbank) + ], + + '(3|5)0[0-9]SH!!' => [ + + '304SH' => [ 'Sharp', 'AQUOS Xx 304SH', 'carrier' => 'Softbank' ], + '305SH' => [ 'Sharp', 'AQUOS CRYSTAL 305SH', 'carrier' => 'Softbank' ], + '306SH' => [ 'Sharp', 'AQUOS CRYSTAL 306SH' ], // The U.S. Sprint version (now part of Softbank) + '506SH' => [ 'Sharp', 'AQUOS Xx3 506SH', 'carrier' => 'Softbank' ], + ], + + 'SH01D' => [ 'Sharp', 'AQUOS PHONE SH-01D', 'carrier' => 'DoCoMo' ], + 'DM-01H' => [ 'Sharp', 'DM-01H', 'carrier' => 'Disney Mobile' ], + + 'SH-M01' => [ 'Sharp', 'AQUOS SH-M01' ], + 'SH-M02' => [ 'Sharp', 'AQUOS SH-M02' ], + 'SH-M02-EVA20' => [ 'Sharp', 'AQUOS SH-M02' ], + 'SH-RM02' => [ 'Sharp', 'AQUOS SH-RM02' ], + + 'SH-[01][0-9][A-Z]!!' => [ + 'SH-01D' => [ 'Sharp', 'AQUOS PHONE SH-01D', 'carrier' => 'DoCoMo' ], + 'SH-01E' => [ 'Sharp', 'AQUOS PHONE si SH-01E', 'carrier' => 'DoCoMo' ], + 'SH-01EVW' => [ 'Sharp', 'Vivienne Westwood SH-01EVW', 'carrier' => 'DoCoMo' ], + 'SH-01F' => [ 'Sharp', 'AQUOS PHONE ZETA SH-01F', 'carrier' => 'DoCoMo' ], + 'SH-01FDQ' => [ 'Sharp', 'SH-01F DRAGON QUEST', 'carrier' => 'DoCoMo' ], + 'SH-01G' => [ 'Sharp', 'AQUOS PHONE ZETA SH-01G', 'carrier' => 'DoCoMo' ], + 'SH-01H' => [ 'Sharp', 'AQUOS PHONE ZETA SH-01H', 'carrier' => 'DoCoMo' ], + 'SH-02D' => [ 'Sharp', 'AQUOS PHONE slider SH-02D', 'carrier' => 'DoCoMo' ], + 'SH-02E' => [ 'Sharp', 'AQUOS PHONE ZETA SH-02E', 'carrier' => 'DoCoMo' ], + 'SH-02F' => [ 'Sharp', 'AQUOS PHONE EX SH-02F', 'carrier' => 'DoCoMo' ], + 'SH-02G' => [ 'Sharp', 'SH-02G', 'carrier' => 'Disney Mobile' ], + 'SH-02H' => [ 'Sharp', 'AQUOS Compact SH-02H', 'carrier' => 'DoCoMo' ], + 'SH-03C' => [ 'Sharp', 'LYNX 3D SH-03C', 'carrier' => 'DoCoMo' ], + 'SH-03F' => [ 'Sharp', 'スマートフォン for ジュニア2 SH-03F', 'carrier' => 'DoCoMo' ], + 'SH-03G' => [ 'Sharp', 'AQUOS ZETA SH-03G', 'carrier' => 'DoCoMo' ], + 'SH-03H' => [ 'Sharp', 'SH-03H', 'carrier' => 'DoCoMo' ], + 'SH-04D' => [ 'Sharp', 'Q-pot.Phone SH-04D', 'carrier' => 'DoCoMo' ], + 'SH-04E' => [ 'Sharp', 'AQUOS PHONE EX SH-04E', 'carrier' => 'DoCoMo' ], + 'SH-04F' => [ 'Sharp', 'AQUOS ZETA SH-04F', 'carrier' => 'DoCoMo' ], + 'SH-04G' => [ 'Sharp', 'AQUOS EVER SH-04G', 'carrier' => 'DoCoMo' ], + 'SH-04H' => [ 'Sharp', 'AQUOS ZETA SH-04H', 'carrier' => 'DoCoMo' ], + 'SH-05E' => [ 'Sharp', 'スマートフォン for ジュニア SH-05E', 'carrier' => 'DoCoMo' ], + 'SH-05F' => [ 'Sharp', 'SH-05F', 'carrier' => 'Disney Mobile' ], + 'SH-05G' => [ 'Sharp', 'AQUOS PAD SH-05G', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + 'SH-06D' => [ 'Sharp', 'AQUOS PHONE SH-06D', 'carrier' => 'DoCoMo' ], + 'SH-06DNERV' => [ 'Sharp', 'SH-06D NERV', 'carrier' => 'DoCoMo' ], + 'SH-06E' => [ 'Sharp', 'AQUOS PHONE ZETA SH-06E', 'carrier' => 'DoCoMo' ], + 'SH-06F' => [ 'Sharp', 'AQUOS PAD SH-06F', 'carrier' => 'DoCoMo' ], + 'SH-06G' => [ 'Sharp', 'AQUOS SH-06G', 'carrier' => 'DoCoMo' ], + 'SH-07C' => [ 'Sharp', 'GALAPAGOS SH-07C', 'carrier' => 'DoCoMo' ], + 'SH-07D' => [ 'Sharp', 'AQUOS PHONE st SH-07D', 'carrier' => 'DoCoMo' ], + 'SH-07E' => [ 'Sharp', 'AQUOS PHONE si SH-07E', 'carrier' => 'DoCoMo' ], + 'SH-08E' => [ 'Sharp', 'AQUOS PAD SH-08E', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], + 'SH-09D' => [ 'Sharp', 'AQUOS PHONE ZETA SH-09D', 'carrier' => 'DoCoMo' ], + 'SH-10B' => [ 'Sharp', 'LYNX SH-10B', 'carrier' => 'DoCoMo' ], + 'SH-10D' => [ 'Sharp', 'AQUOS PHONE sv SH-10D', 'carrier' => 'DoCoMo' ], + 'SH-12C' => [ 'Sharp', 'AQUOS PHONE SH-12C', 'carrier' => 'DoCoMo' ], + 'SH-13C' => [ 'Sharp', 'AQUOS PHONE f SH-13C', 'carrier' => 'DoCoMo' ], + ], + + '(SHP-)?(SHARP )?SH[0-9]{2,3}!!' => [ + 'SH80F' => [ 'Sharp', 'Aquos SH80F' ], + 'SH90B' => [ 'Sharp', 'Aquos SH90B', 'carrier' => 'Biglobe' ], + 'SH330U' => [ 'Sharp', 'SH330U' ], + 'SHP-SH330T' => [ 'Sharp', 'SH330T' ], + 'SH330T(Yiliao)' => [ 'Sharp', 'SH330T' ], + 'SH530U' => [ 'Sharp', 'SH530U' ], + 'SH630E' => [ 'Sharp', 'SH630E' ], + 'SHP-SH630E' => [ 'Sharp', 'SH630E' ], + 'SH-631M' => [ 'Sharp', 'SH631M' ], + 'SH631W' => [ 'Sharp', 'SH631W' ], + 'SH825Wi' => [ 'Sharp', 'Aquos Crystal SH825Wi' ], + 'SH831T' => [ 'Sharp', 'SH831T' ], + 'SHP-SH831T' => [ 'Sharp', 'SH831T' ], + 'SH837M' => [ 'Sharp', 'SH837M' ], + 'SH837W' => [ 'Sharp', 'SH837W' ], + 'SH930W' => [ 'Sharp', 'SH930W' ], + 'SH931W' => [ 'Sharp', 'SH931W' ], + 'SH72x8U' => [ 'Sharp', 'SH72x8U' ], + 'SH7218U' => [ 'Sharp', 'SH7218U' ], + 'SH7218T' => [ 'Sharp', 'SH7218T' ], + 'SHP-SH7218T' => [ 'Sharp', 'SH7218T' ], + 'SH8118U' => [ 'Sharp', 'SH8118U' ], + 'SHARP SH8118U' => [ 'Sharp', 'SH8118U' ], + 'SH8128U' => [ 'Sharp', 'SH8128U' ], + 'SH8158U' => [ 'Sharp', 'SH8158U' ], + 'SH8168U' => [ 'Sharp', 'SH8168U' ], + 'SH8188U' => [ 'Sharp', 'SH8188U' ], + 'SHARP SH8188U' => [ 'Sharp', 'SH8188U' ], + 'SH8288U' => [ 'Sharp', 'SH8288U' ], + 'SH8268U' => [ 'Sharp', 'SH8268U' ], + 'SH8298U' => [ 'Sharp', 'SH8298U' ], + ], + + 'SH[FLTV][0-9]{2,2}!!' => [ + 'SHF31' => [ 'Sharp', 'AQUOS K SHF31', 'carrier' => 'au' ], + 'SHF32' => [ 'Sharp', 'AQUOS K SHF32', 'carrier' => 'au' ], + 'SHF33' => [ 'Sharp', 'AQUOS K SHF33', 'carrier' => 'au' ], + 'SHL21' => [ 'Sharp', 'AQUOS PHONE SERIE SHL21', 'carrier' => 'au' ], + 'SHL22' => [ 'Sharp', 'AQUOS PHONE SERIE SHL22', 'carrier' => 'au' ], + 'SHL23' => [ 'Sharp', 'AQUOS PHONE SERIE SHL23', 'carrier' => 'au' ], + 'SHL24' => [ 'Sharp', 'AQUOS PHONE SERIE mini SHL24', 'carrier' => 'au' ], + 'SHL25' => [ 'Sharp', 'AQUOS SERIE SHL25', 'carrier' => 'au' ], + 'SHT21' => [ 'Sharp', 'AQUOS PAD SHT21', DeviceType::TABLET, 'carrier' => 'au' ], + 'SHT22' => [ 'Sharp', 'AQUOS PAD SHT22', DeviceType::TABLET, 'carrier' => 'au' ], + 'SHV31' => [ 'Sharp', 'AQUOS SERIE mini SHV31', 'carrier' => 'au' ], + 'SHV32' => [ 'Sharp', 'AQUOS SERIE SHV32', 'carrier' => 'au' ], + 'SHV33' => [ 'Sharp', 'AQUOS SERIE mini SHV33', 'carrier' => 'au' ], + 'SHV34' => [ 'Sharp', 'AQUOS SERIE SHV34', 'carrier' => 'au' ], + 'SHV35' => [ 'Sharp', 'AQUOS U SHV35', 'carrier' => 'au' ], + ], + 'WX04SH' => [ 'Sharp', 'AQUOS PHONE es WX04SH', 'carrier' => 'Willcom' ], + 'WX05SH' => [ 'Sharp', 'AQUOS PHONE ef WX05SH', 'carrier' => 'Willcom' ], + 'SHARP-ADS1' => [ 'Sharp', 'FX Plus' ], + + 'AQUOS!!' => [ + 'AQUOS 50S1' => [ 'Sharp', 'Aquos S1', DeviceType::TELEVISION ], + 'AQUOS 50U1' => [ 'Sharp', 'Aquos U1', DeviceType::TELEVISION ], + 'AQUOS 58U1' => [ 'Sharp', 'Aquos U1', DeviceType::TELEVISION ], + 'AQUOS 50U3A' => [ 'Sharp', 'Aquos U3A', DeviceType::TELEVISION ], + 'AQUOS 58U3A' => [ 'Sharp', 'Aquos U3A', DeviceType::TELEVISION ], + 'AQUOS 52UE20A' => [ 'Sharp', 'Aquos UE20A', DeviceType::TELEVISION ], + 'AQUOS 60UE20A' => [ 'Sharp', 'Aquos UE20A', DeviceType::TELEVISION ], + 'AQUOS 70LX765A' => [ 'Sharp', 'Aquos LX765A', DeviceType::TELEVISION ], + ], + + 'LC-Ux30US' => [ 'Sharp', 'Aquos UH30U', DeviceType::TELEVISION ], + 'LC-[0-9]{2,2}((LE|UE)[0-9]{1,3}[A-Z])!' => [ 'Sharp', 'Aquos $1', DeviceType::TELEVISION ], + 'LC-((A|S|LX)[0-9]{1,3}[A-Z])!' => [ 'Sharp', 'Aquos $1', DeviceType::TELEVISION ], + 'LCD-((S|V|LX|UF)[0-9]{1,3}[A-Z])!' => [ 'Sharp', 'Aquos $1', DeviceType::TELEVISION ], + + 'X-treme PQ11' => [ 'Sigma Mobile', 'X-treme PQ11' ], + 'X-treme PQ15' => [ 'Sigma Mobile', 'X-treme PQ15' ], + 'X-tremePQ22' => [ 'Sigma Mobile', 'X-treme PQ22' ], + 'Blackphone 2' => [ 'Silent Circle', 'Blackphone 2' ], + 'SP-120' => [ 'Simvalley', 'SP-120' ], + 'simvalley SP-142' => [ 'Simvalley', 'SP-142' ], + 'V5U-simvalley SP-142' => [ 'Simvalley', 'SP-142' ], + 'SPX-5' => [ 'Simvalley', 'SPX-5' ], + 'SPX-5 3G' => [ 'Simvalley', 'SPX-5 3G' ], + 'SPX-6' => [ 'Simvalley', 'SPX-6' ], + 'SPX-12' => [ 'Simvalley', 'SPX-12' ], + 'X720' => [ 'Simmtronics', 'XPAD X-720', DeviceType::TABLET ], + + 'Skyworth!!' => [ + 'Skyworth PE90' => [ 'Skyworth', 'PE90' ], + 'Skyworth 8S51 E510' => [ 'Skyworth', 'E510', DeviceType::TELEVISION ], + 'Skyworth 8S50 E510E' => [ 'Skyworth', 'E510', DeviceType::TELEVISION ], + 'Skyworth 8S53 E660C' => [ 'Skyworth', 'E660', DeviceType::TELEVISION ], + 'Skyworth 8K55 E680' => [ 'Skyworth', 'E680', DeviceType::TELEVISION ], + 'Skyworth 9R10 E690U' => [ 'Skyworth', 'E690', DeviceType::TELEVISION ], + 'Skyworth 9R15 E710U' => [ 'Skyworth', 'E710', DeviceType::TELEVISION ], + 'Skyworth 8K93 E780U' => [ 'Skyworth', 'E780', DeviceType::TELEVISION ], + 'Skyworth 8R98 E790U' => [ 'Skyworth', 'E790', DeviceType::TELEVISION ], + 'Skyworth A55 Coocaa' => [ 'Skyworth', 'Coocaa Honor A55', DeviceType::TELEVISION ], + ], + + 'WF7C' => [ 'Smartbitt', 'WF7C', DeviceType::TABLET ], + + '(Smartfren|Andromax)!!' => [ + 'Andromax-c' => [ 'Smartfren', 'Andromax C' ], + 'Andromax C' => [ 'Smartfren', 'Andromax C' ], + 'Andromax-C.purwanto' => [ 'Smartfren', 'Andromax C' ], + 'Andromax C Sulthan Rafi XPERIA Mod' => [ 'Smartfren', 'Andromax C' ], + 'Andromax C+' => [ 'Smartfren', 'Andromax C+' ], + 'Smartfren Andromax AD688G' => [ 'Smartfren', 'Andromax C2' ], + 'Andromax C2' => [ 'Smartfren', 'Andromax C2' ], + 'Smartfren Andromax NEWAD688G' => [ 'Smartfren', 'Andromax C2' ], + 'AD688G' => [ 'Smartfren', 'Andromax C2' ], + 'Smartfren Andromax AD6B1H' => [ 'Smartfren', 'Andromax C3' ], + 'AD6B1H' => [ 'Smartfren', 'Andromax C3' ], + 'Andromax NC36B1H' => [ 'Smartfren', 'Andromax C3s' ], + 'Smartfren Andromax NC36B1G' => [ 'Smartfren', 'Andromax C3s' ], + 'Andromaxx-D_E1000' => [ 'Smartfren', 'Andromax D' ], + 'Andromax C46B2G' => [ 'Smartfren', 'Andromax Ec' ], + 'Andromax C46B2H' => [ 'Smartfren', 'Andromax Ec' ], + 'Andromax AD687G' => [ 'Smartfren', 'Andromax G' ], + 'Andromax G' => [ 'Smartfren', 'Andromax G' ], + 'Andromax-G' => [ 'Smartfren', 'Andromax G' ], + 'Smartfren Andromax AD681H' => [ 'Smartfren', 'Andromax G2' ], + 'Smartfren Andromax AD9A1H' => [ 'Smartfren', 'Andromax G2 Qwerty' ], + 'Andromax SD6D1U' => [ 'Smartfren', 'Andromax G2 LE' ], + 'AndroMAXI AD683G' => [ 'Smartfren', 'Andromax I' ], + 'Andromax Vocused' => [ 'Smartfren', 'Andromax I' ], + 'androMax-i AS Ripped' => [ 'Smartfren', 'Andromax I' ], + 'Andromax AD683J' => [ 'Smartfren', 'Andromax I2' ], + 'Andromax-i2' => [ 'Smartfren', 'Andromax I2' ], + 'Andromax I2' => [ 'Smartfren', 'Andromax I2' ], + 'Andromax GT-I9500 i2' => [ 'Smartfren', 'Andromax I2' ], + 'Smartfren Andromax AD689G' => [ 'Smartfren', 'Andromax I3' ], + 'Smartfren Andromax AD682H' => [ 'Smartfren', 'Andromax I3s' ], + 'Andromax G36C1G' => [ 'Smartfren', 'Andromax Qi' ], + 'Andromax G36C1H' => [ 'Smartfren', 'Andromax Qi' ], + 'Andromax I46D1G' => [ 'Smartfren', 'Andromax R' ], + 'Andromax AD682J' => [ 'Smartfren', 'Andromax T' ], + 'Andromax T AD628J' => [ 'Smartfren', 'Andromax T' ], + 'Andromax U!' => [ 'Smartfren', 'Andromax U' ], + ], + + 'AD686G' => [ 'Smartfren', 'Andromax C' ], + 'AD687G' => [ 'Smartfren', 'Andromax G' ], + 'AD6893G' => [ 'Smartfren', 'Andromax I3' ], + 'PD6D1J' => [ 'Smartfren', 'Andromax V3s' ], + 'New Andromax-i' => [ 'Smartfren', 'Andromax I' ], + 'Androtab 7' => [ 'Smartfren', 'Androtab 7', DeviceType::TABLET ], + 'Smartfren Tab 7' => [ 'Smartfren', 'Tab 7', DeviceType::TABLET ], + 'S7' => [ 'Smartfren', 'Tab 7', DeviceType::TABLET ], + + 'SmartQ!!' => [ + 'SmartQ G7' => [ 'SmartQ', 'G7', DeviceType::TABLET ], + 'SmartQR10' => [ 'SmartQ', 'R10', DeviceType::TABLET ], + 'SmartQT7' => [ 'SmartQ', 'T7', DeviceType::TABLET ], + 'SmartQT10' => [ 'SmartQ', 'T10', DeviceType::TABLET ], + 'SmartQT12' => [ 'SmartQ', 'T12', DeviceType::TABLET ], + 'SmartQT13' => [ 'SmartQ', 'T13', DeviceType::TABLET ], + 'SmartQT15' => [ 'SmartQ', 'T15', DeviceType::TABLET ], + 'SmartQT19' => [ 'SmartQ', 'T19', DeviceType::TABLET ], + 'SmartQT20' => [ 'SmartQ', 'T20', DeviceType::TABLET ], + 'SmartQT30' => [ 'SmartQ', 'T30', DeviceType::TABLET ], + 'SmartQ V5' => [ 'SmartQ', 'V5', DeviceType::TABLET ], + 'SmartQV5II' => [ 'SmartQ', 'V5 II', DeviceType::TABLET ], + 'SmartQ V7' => [ 'SmartQ', 'V7', DeviceType::TABLET ], + ], + + 'T20' => [ 'SmartQ', 'T20', DeviceType::TABLET ], + 'T30' => [ 'SmartQ', 'T30', DeviceType::TABLET ], + + 'SZENIO!!' => [ + 'SZENIO 2000' => [ 'Szenio', '2000', DeviceType::TABLET ], + 'SZENIO 2500' => [ 'Szenio', '2500', DeviceType::TABLET ], + ], + + 'Sonim!!' => [ + 'Sonim Sonim-XP5700' => [ 'Sonim', 'XP5700' ], + 'Sonim XP5700' => [ 'Sonim', 'XP5700' ], + 'Sonim-XP5700' => [ 'Sonim', 'XP5700' ], + 'Sonim-XP5705' => [ 'Sonim', 'XP5705' ], + 'Sonim-XP6700' => [ 'Sonim', 'XP6700' ], + 'sonim/XP6700' => [ 'Sonim', 'XP6700' ], + 'Sonim XP6711Z1' => [ 'Sonim', 'XP6711' ], + 'Sonim XP7700' => [ 'Sonim', 'XP7700' ], + 'Sonim-XP7700' => [ 'Sonim', 'XP7700' ], + 'sonim/XP7700' => [ 'Sonim', 'XP7700' ], + ], + + 'OMS1 6' => [ 'Sony Ericsson', 'A8i' ], + + 'C[0-9]{4,4}!!' => [ + 'C15(04|05)!' => [ 'Sony', 'Xperia E' ], // NanHu + 'C16(04|05)!' => [ 'Sony', 'Xperia E dual' ], // NanHu + 'C19(04|05)!' => [ 'Sony', 'Xperia M' ], // Nicki + 'C20(04|05)!' => [ 'Sony', 'Xperia M dual' ], // Nicki + 'C21(04|05)!' => [ 'Sony', 'Xperia L' ], // TaoShan + 'C23(04|05)!' => [ 'Sony', 'Xperia C' ], // Pelican + 'C3602' => [ 'Sony', 'Xperia "C3602"' ], // ... + 'C53(02|03|06)!' => [ 'Sony', 'Xperia SP' ], // HuaShan + 'C55(02|03)!' => [ 'Sony', 'Xperia ZR' ], // Dogo + 'C65(02|03|06)!' => [ 'Sony', 'Xperia ZL' ], // Odin + 'C66(02|03|06|16|33)!' => [ 'Sony', 'Xperia Z' ], // Yuga + 'C670[0-9]!' => [ 'Sony', 'C670x' ], // Itsuki + 'C68(02|06|33|43)!' => [ 'Sony', 'Xperia Z Ultra' ], // Togari + 'C69(02|03|06|43)!' => [ 'Sony', 'Xperia Z1' ], // Honami + 'C6916' => [ 'Sony', 'Xperia Z1s' ], // Honami + ], + + 'D[0-9]{4,4}!!' => [ + 'D20(04|05)!' => [ 'Sony', 'Xperia E1' ], // Falcon + 'D21(04|05|14)!' => [ 'Sony', 'Xperia E1 dual' ], // Falcon + 'D22(02|03|06|43)!' => [ 'Sony', 'Xperia E3' ], // ... + 'D22(12)!' => [ 'Sony', 'Xperia E3 dual' ], // ... + 'D23(02|03|05|06)!' => [ 'Sony', 'Xperia M2' ], // Eagle + 'D24(03|06)!' => [ 'Sony', 'Xperia M2 Aqua' ], // ... + 'D25(02)!' => [ 'Sony', 'Xperia C3 dual' ], // ... + 'D25(33)!' => [ 'Sony', 'Xperia C3' ], // ... + 'D51(02|03|06)!' => [ 'Sony', 'Xperia T3' ], // Seagull + 'D53(03|06|16)!' => [ 'Sony', 'Xperia T2 Ultra' ], // Tianchi + 'D53(22)!' => [ 'Sony', 'Xperia T2 Ultra dual' ], // Tianchi + 'D55(03)!' => [ 'Sony', 'Xperia Z1 Compact' ], // Amami + 'D57(88)!' => [ 'Sony', 'Xperia J1 Compact' ], // ... + 'D58(03|33)!' => [ 'Sony', 'Xperia Z3 Compact' ], // ... + 'D65(02|03|43)!' => [ 'Sony', 'Xperia Z2' ], // Sirius + 'D65(63)!' => [ 'Sony', 'Xperia Z2a' ], // Canopus + 'D66(03|16|33|43|53)!' => [ 'Sony', 'Xperia Z3' ], // ... + 'D66(83)!' => [ 'Sony', 'Xperia Z3 dual' ], // ... + 'D6708' => [ 'Sony', 'Xperia Z3v' ], // ... + ], + + 'E[0-9]{4,4}!!' => [ + 'E20(03|06|53)!' => [ 'Sony', 'Xperia E4g' ], + 'E20(33|43)!' => [ 'Sony', 'Xperia E4g dual' ], + 'E21(04|05)!' => [ 'Sony', 'Xperia E4' ], + 'E21(15|24)!' => [ 'Sony', 'Xperia E4 dual' ], + 'E23(03|06|53)!' => [ 'Sony', 'Xperia M4 Aqua' ], + 'E23(12|33|63)!' => [ 'Sony', 'Xperia M4 Aqua dual' ], + 'E53(03|06|53)!' => [ 'Sony', 'Xperia C4' ], + 'E53(33|43|63)!' => [ 'Sony', 'Xperia C4 dual' ], + 'E55(06|53)!' => [ 'Sony', 'Xperia C5 Ultra' ], + 'E55(33|63)!' => [ 'Sony', 'Xperia C5 Ultra dual' ], + 'E56(03|06|53)!' => [ 'Sony', 'Xperia M5' ], + 'E56(33|43|63)!' => [ 'Sony', 'Xperia M5 dual' ], + 'E58(03|23)!' => [ 'Sony', 'Xperia Z5 Compact' ], + 'E63(33)!' => [ 'Sony', 'Xperia Z3+ dual' ], + 'E65(08)!' => [ 'Sony', 'Xperia Z4v' ], + 'E65(33|53)!' => [ 'Sony', 'Xperia Z3+' ], + 'E66(03|46|53)!' => [ 'Sony', 'Xperia Z5' ], + 'E66(33|83)!' => [ 'Sony', 'Xperia Z5 dual' ], + 'E68(53)!' => [ 'Sony', 'Xperia Z5 Premium' ], + 'E68(33|83)!' => [ 'Sony', 'Xperia Z5 Premium dual' ], + ], + + 'F[0-9]{4,4}!!' => [ + 'F31(11|12|13|15|16)!' => [ 'Sony', 'Xperia XA' ], + 'F32(15)!' => [ 'Sony', 'Xperia XA Ultra' ], + 'F33(11|13)!' => [ 'Sony', 'Xperia E5' ], + 'F51(21|22)!' => [ 'Sony', 'Xperia X' ], + 'F81(31|32)!' => [ 'Sony', 'Xperia X Performance' ], + ], + + 'E[0-9]{2,2}[a-z]!!' => [ + 'E10(a|i|iv)!' => [ 'Sony Ericsson', 'Xperia X10 Mini' ], // Robyn + 'E15(a|av|i|iv|i-o)?$!' => [ 'Sony Ericsson', 'Xperia X8' ], // Shakira + 'E16i!' => [ 'Sony Ericsson', 'W8 Walkman' ], // Shakira Walkman + ], + + 'L[0-9]{2,2}[a-z]!!' => [ + 'L35h' => [ 'Sony', 'Xperia ZL' ], // Odin + 'L36h' => [ 'Sony', 'Xperia Z' ], // Yuga + 'L39(h|t|u)!' => [ 'Sony', 'Xperia Z1' ], // Honami + 'L50(w|t|u)!' => [ 'Sony', 'Xperia Z2' ], // Sirius + 'L55(t|u)!' => [ 'Sony', 'Xperia Z3' ], // ... + ], + + '(SNM\-)?LT[0-9]{2,2}[a-z]?!!' => [ + 'LT11i!' => [ 'Sony Ericsson', 'Xperia Neo V' ], // Haida + 'LT15(a|at|av|i|iv|i-o)?$!' => [ 'Sony Ericsson', 'Xperia Arc' ], // Anzu + 'LT15i Speed Edition' => [ 'Sony Ericsson', 'Xperia Arc' ], // Anzu + 'LT18(a|i|iv|i-o)?$!' => [ 'Sony Ericsson', 'Xperia Arc S' ], // Ayame + 'LT22i!' => [ 'Sony', 'Xperia P' ], // Nypon + 'LT25i!' => [ 'Sony', 'Xperia V' ], // Tsubasa + '(SNM\-)?LT25c!' => [ 'Sony', 'Xperia VC' ], // Tsubasa + 'LT26ii!' => [ 'Sony', 'Xperia SL' ], // Nozomi2 + 'LT26(i|i-o)!' => [ 'Sony', 'Xperia S' ], // Nozomi + 'LT26w!' => [ 'Sony', 'Xperia Acro S' ], // Hikari + 'LT28(at|h|i)!' => [ 'Sony', 'Xperia Ion' ], // Aoba + 'LT29i!' => [ 'Sony', 'Xperia TX' ], // Hayabusa + 'LT30(at)!' => [ 'Sony', 'Xperia TL' ], // Mint + 'LT30(a|p)!' => [ 'Sony', 'Xperia T' ], // Mint + ], + + '(SNM\-)?M[0-9]{2,2}[a-z]!!' => [ + '(SNM\-)?M35(c|h|t|ts)!' => [ 'Sony', 'Xperia SP' ], // HuaShan + 'M36h!' => [ 'Sony', 'Xperia ZR' ], // Dogo + 'M50w!' => [ 'Sony', 'Xperia T3' ], // Seagull + 'M51w!' => [ 'Sony', 'Xperia Z1 Compact' ], // Amami + 'M55w!' => [ 'Sony', 'Xperia Z3 Compact' ], // ... + ], + + 'MK16(a|i|$)!' => [ 'Sony Ericsson', 'Xperia Pro' ], // Iyokan + + 'MT[0-9]{2,2}[a-z]!!' => [ + 'MT11(a|i|iv|i-o)!' => [ 'Sony Ericsson', 'Xperia Neo V' ], // Haida + 'MT15(a|i|iv|i-o|$)!' => [ 'Sony Ericsson', 'Xperia Neo' ], // Hallon + 'MT25i!' => [ 'Sony', 'Xperia Neo L' ], // Phoenix + 'MT27i!' => [ 'Sony', 'Xperia Sola' ], // Pepper + ], + + 'R800(a|at|i|iv|x)!' => [ 'Sony Ericsson', 'Xperia Play' ], // Zeus + + 'S[0-9]{2,2}[a-z]!!' => [ + 'S36h' => [ 'Sony', 'Xperia L' ], // TaoShan + 'S39h' => [ 'Sony', 'Xperia C' ], // CN3 + 'S50h' => [ 'Sony', 'Xperia M2 dual' ], // Eagle + 'S55(t|u)!' => [ 'Sony', 'Xperia C3 dual' ], // ... + ], + + 'SK17(a|i|iv|i-o)!' => [ 'Sony Ericsson', 'Xperia Mini Pro' ], // Mango + + 'ST[0-9]{2,2}[a-z]?!!' => [ + 'ST15(a|i)!' => [ 'Sony Ericsson', 'Xperia Mini' ], // Smultron + 'ST17(a|i)!' => [ 'Sony Ericsson', 'Xperia Active' ], // Satsuma + 'ST18(a|av|i|iv)?!' => [ 'Sony Ericsson', 'Xperia Ray' ], // Urushi + 'ST21(a|i|i-o|iv)?$!' => [ 'Sony', 'Xperia Tipo' ], // Tapioca + 'ST21(a2|i2)!' => [ 'Sony', 'Xperia Tipo Dual' ], // Tapioca + 'ST23(a|i)?!' => [ 'Sony', 'Xperia Miro' ], // Mesona + 'ST25(a|i)!' => [ 'Sony', 'Xperia U' ], // Kumquat + 'ST26(a|i)?!' => [ 'Sony', 'Xperia J' ], // JLo + 'ST27(a|i)!' => [ 'Sony', 'Xperia Go' ], // Lotus + ], + + 'U20(a|i|iv)!' => [ 'Sony Ericsson', 'Xperia X10 Mini Pro' ], // Mimmi + + 'WT[0-9]{2,2}[a-z]!!' => [ + 'WT18i!' => [ 'Sony Ericsson', 'Walkman' ], // Mulberry + 'WT19(a|i|iv)!' => [ 'Sony Ericsson', 'Live with Walkman' ], // Coconut + ], + + 'X8' => [ 'Sony Ericsson', 'Xperia X8' ], // Shakira + 'X10(a|i|iv|i-o|s)?$!' => [ 'Sony Ericsson', 'Xperia X10' ], // Rachael + 'X10 ?(Mini ?Pro)$!' => [ 'Sony Ericsson', 'Xperia X10 Mini Pro' ], // Mimmi + 'X10 ?(Mini)$!' => [ 'Sony Ericsson', 'Xperia X10 Mini' ], // Robyn + 'XL39h' => [ 'Sony', 'Xperia Z Ultra' ], // Togari + 'XM50h' => [ 'Sony', 'Xperia T2 Ultra dual' ], // Tianchi + 'XM50t' => [ 'Sony', 'Xperia T2 Ultra' ], // Tianchi + 'Z1i' => [ 'Sony Ericsson', 'Xperia Play' ], // Zeus + + 'S51SE' => [ 'Sony Ericsson', 'mini S51SE', 'carrier' => 'EMOBILE' ], // Smultron + + 'IS[0-9]{2,2}S!!' => [ + 'IS11S' => [ 'Sony Ericsson', 'Xperia acro IS11S', 'carrier' => 'au' ], // Akane + 'IS12S' => [ 'Sony Ericsson', 'Xperia acro HD IS12S', 'carrier' => 'au' ], // Hayate + ], + + 'SO-0[0-9][A-Z]!!' => [ + 'SO-01B' => [ 'Sony Ericsson', 'Xperia SO-01B', 'carrier' => 'DoCoMo' ], // Rachael + 'SO-01C' => [ 'Sony Ericsson', 'Xperia arc SO-01C', 'carrier' => 'DoCoMo' ], // Anzu + 'SO-01D' => [ 'Sony Ericsson', 'Xperia PLAY SO-01D', 'carrier' => 'DoCoMo' ], // Zeus + 'SO-01E' => [ 'Sony', 'Xperia AX SO-01E', 'carrier' => 'DoCoMo' ], // Tsubasa + 'SO-01F' => [ 'Sony', 'Xperia Z1 SO-01F', 'carrier' => 'DoCoMo' ], // Honami + 'SO-01G' => [ 'Sony', 'Xperia Z3 SO-01G', 'carrier' => 'DoCoMo' ], // ... + 'SO-01H' => [ 'Sony', 'Xperia Z5 SO-01H', 'carrier' => 'DoCoMo' ], // ... + 'SO-02C' => [ 'Sony Ericsson', 'Xperia acro SO-02C', 'carrier' => 'DoCoMo' ], // Azusa + 'SO-02D' => [ 'Sony Ericsson', 'Xperia NX SO-02D', 'carrier' => 'DoCoMo' ], // Nozomi + 'SO-02E' => [ 'Sony', 'Xperia Z SO-02E', 'carrier' => 'DoCoMo' ], // Yuga + 'SO-02F' => [ 'Sony', 'Xperia Z1 f SO-02F', 'carrier' => 'DoCoMo' ], // Itsuki + 'SO-02G' => [ 'Sony', 'Xperia Z3 Compact SO-02G', 'carrier' => 'DoCoMo' ], // ... + 'SO-02H' => [ 'Sony', 'Xperia Z5 Compact SO-02H', 'carrier' => 'DoCoMo' ], // ... + 'SO-03C' => [ 'Sony Ericsson', 'Xperia ray SO-03C', 'carrier' => 'DoCoMo' ], // Urushi + 'SO-03D' => [ 'Sony Ericsson', 'Xperia acro HD SO-03D', 'carrier' => 'DoCoMo' ], // Hikari + 'SO-03E' => [ 'Sony', 'Xperia Tablet Z SO-03E', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], // Pollux + 'SO-03F' => [ 'Sony', 'Xperia Z2 SO-03F', 'carrier' => 'DoCoMo' ], // Sirius + 'SO-03G' => [ 'Sony', 'Xperia Z4 SO-03G', 'carrier' => 'DoCoMo' ], + 'SO-03H' => [ 'Sony', 'Xperia Z5 Premium SO-03H', 'carrier' => 'DoCoMo' ], + 'SO-04D' => [ 'Sony', 'Xperia GX SO-04D', 'carrier' => 'DoCoMo' ], // Hayabusa + 'SO-04E' => [ 'Sony', 'Xperia A SO-04E', 'carrier' => 'DoCoMo' ], // Dogo + 'SO-04EM' => [ 'Sony', 'Xperia feat. HATSUNE MIKU SO-04E', 'carrier' => 'DoCoMo' ], + 'SO-04F' => [ 'Sony', 'Xperia A2 SO-04F', 'carrier' => 'DoCoMo' ], // Altair + 'SO-04G' => [ 'Sony', 'Xperia A4 SO-04G', 'carrier' => 'DoCoMo' ], + 'SO-04H' => [ 'Sony', 'Xperia X Performance SO-04H', 'carrier' => 'DoCoMo' ], + 'SO-05D' => [ 'Sony', 'Xperia SX SO-05D', 'carrier' => 'DoCoMo' ], // Komachi + 'SO-05F' => [ 'Sony', 'Xperia Tablet Z2 SO-05F', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], // Castor + 'SO-05G' => [ 'Sony', 'Xperia Tablet Z4 SO-05G', DeviceType::TABLET, 'carrier' => 'DoCoMo' ], // ... + ], + + 'SO[LTV][0-9]{2,2}!!' => [ + 'SOL21' => [ 'Sony', 'Xperia VL SOL21', 'carrier' => 'au' ], // Surf + 'SOL22' => [ 'Sony', 'Xperia UL SOL22', 'carrier' => 'au' ], // Gaga + 'SOL23' => [ 'Sony', 'Xperia Z1 SOL23', 'carrier' => 'au' ], // Honami + 'SOL24' => [ 'Sony', 'Xperia Z Ultra SOL24', 'carrier' => 'au' ], // Togari + 'SOL25' => [ 'Sony', 'Xperia ZL2 SOL25', 'carrier' => 'au' ], // Canopus + 'SOL26' => [ 'Sony', 'Xperia Z3 SOL26', 'carrier' => 'au' ], // ... + 'SOT21' => [ 'Sony', 'Xperia Tablet Z2 SOT21', DeviceType::TABLET, 'carrier' => 'au' ], // Castor + 'SOT31' => [ 'Sony', 'Xperia Tablet Z4 SOT31', DeviceType::TABLET, 'carrier' => 'au' ], // Castor + 'SOV31' => [ 'Sony', 'Xperia Z4 SOV31', 'carrier' => 'au' ], // ... + 'SOV32' => [ 'Sony', 'Xperia Z5 SOV32', 'carrier' => 'au' ], // ... + ], + + '40[0-9]SO!!' => [ + '401SO' => [ 'Sony', 'Xperia Z3 401SO', 'carrier' => 'Softbank' ], // ... + '402SO' => [ 'Sony', 'Xperia Z4 402SO', 'carrier' => 'Softbank' ], // ... + ], + + '50[0-9]SO!!' => [ + '501SO' => [ 'Sony', 'Xperia Z5 501SO', 'carrier' => 'Softbank' ], // ... + ], + + 'Xperia!!' => [ + 'Xperia X1' => [ 'Sony Ericsson', 'Xperia X1' ], + 'Xperia X8' => [ 'Sony Ericsson', 'Xperia X8' ], // Shakira + 'Xperia X10' => [ 'Sony Ericsson', 'Xperia X10' ], // Rachael + 'Xperia x10 Mini Pro' => [ 'Sony Ericsson', 'Xperia X10 Mini Pro' ], // Mimmi + 'Xperia Acro S' => [ 'Sony', 'Xperia Acro S' ], // Hikari + 'Xperia Active' => [ 'Sony Ericsson', 'Xperia Active' ], // Satsuma + 'Xperia Arc' => [ 'Sony Ericsson', 'Xperia Arc' ], // Anzu + 'Xperia Arc (LT15i)' => [ 'Sony Ericsson', 'Xperia Arc' ], // Anzu + 'Xperia Arc S' => [ 'Sony Ericsson', 'Xperia Arc S' ], // Ayame + 'Xperia Arc S (LT18i)' => [ 'Sony Ericsson', 'Xperia Arc S' ], // Ayame + 'Xperia C' => [ 'Sony', 'Xperia C' ], // Pelican + 'Xperia E' => [ 'Sony', 'Xperia E' ], // NanHu + 'Xperia E dual' => [ 'Sony', 'Xperia E dual' ], // NanHu + 'Xperia Go' => [ 'Sony', 'Xperia Go' ], // Lotus + 'Xperia ion' => [ 'Sony', 'Xperia Ion' ], // Aoba + 'Xperia J' => [ 'Sony', 'Xperia J' ], // JLo + 'Xperia L' => [ 'Sony', 'Xperia L' ], // TaoShan + 'Xperia M' => [ 'Sony', 'Xperia M' ], // Nicki + 'Xperia Miro' => [ 'Sony', 'Xperia Miro' ], // Mesona + 'Xperia Mini' => [ 'Sony Ericsson', 'Xperia Mini' ], // Smultron + 'Xperia Mini Pro' => [ 'Sony Ericsson', 'Xperia Mini Pro' ], // Mango + 'Xperia Neo' => [ 'Sony Ericsson', 'Xperia Neo' ], // Hallon + 'Xperia NeoV' => [ 'Sony Ericsson', 'Xperia Neo V' ], // Haida + 'Xperia Neo V!' => [ 'Sony Ericsson', 'Xperia Neo V' ], // Haida + 'Xperia Neo L' => [ 'Sony', 'Xperia Neo L' ], // Phoenix + 'Xperia P' => [ 'Sony', 'Xperia P' ], // Nypon + 'Xperia Play' => [ 'Sony Ericsson', 'Xperia Play' ], // Zeus + 'Xperia Pro' => [ 'Sony Ericsson', 'Xperia Pro' ], // Iyokan + 'Xperia Ray' => [ 'Sony Ericsson', 'Xperia Ray' ], // Urushi + 'Xperia Ray (ST18i)' => [ 'Sony Ericsson', 'Xperia Ray' ], // Urushi + 'Xperia S' => [ 'Sony', 'Xperia S' ], // Nozomi + 'Xperia SL' => [ 'Sony', 'Xperia SL' ], // Nozomi2 + 'Xperia SP' => [ 'Sony', 'Xperia SP' ], // HuaShan + 'Xperia Sola' => [ 'Sony', 'Xperia Sola' ], // Pepper + 'Xperia T' => [ 'Sony', 'Xperia T' ], // Mint + 'Xperia TX' => [ 'Sony', 'Xperia TX' ], // Hayabusa + 'Xperia Tipo' => [ 'Sony', 'Xperia Tipo' ], // Tapioca + 'Xperia U' => [ 'Sony', 'Xperia U' ], // Kumquat + 'Xperia V' => [ 'Sony', 'Xperia V' ], // Tsubasa + 'Xperia.X8' => [ 'Sony Ericsson', 'Xperia X8' ], // Shakira + 'Xperia X10 Mini' => [ 'Sony Ericsson', 'Xperia X10 Mini' ], // Robyn + 'Xperia Z' => [ 'Sony', 'Xperia Z' ], // Yuga + 'Xperia Z (AOSP)' => [ 'Sony', 'Xperia Z' ], // Yuga + 'Xperia Z Ultra' => [ 'Sony', 'Xperia Z Ultra' ], // Togari + 'Xperia Z Ultra (AOSP)' => [ 'Sony', 'Xperia Z Ultra' ], // Togari + 'Xperia ZL' => [ 'Sony', 'Xperia ZL' ], // Odin + 'Xperia ZR' => [ 'Sony', 'Xperia ZR' ], // Dogo + 'Xperia Z1' => [ 'Sony', 'Xperia Z1' ], // Honami + 'Xperia Z1 Compact' => [ 'Sony', 'Xperia Z1 Compact' ], // Amami + 'Xperia Z2' => [ 'Sony', 'Xperia Z2' ], // Sirius + 'Xperia Z3' => [ 'Sony', 'Xperia Z3' ], // ... + 'Xperia Z3+' => [ 'Sony', 'Xperia Z3+' ], // ... + 'XPERIA Z3 Compact' => [ 'Sony', 'Xperia Z3 Compact' ], + 'Xperia-Z' => [ 'Sony', 'Xperia Z' ], // Yuga + 'Xperia-Z1' => [ 'Sony', 'Xperia Z1' ], // Honami + 'Xperiaâ„¢ C' => [ 'Sony', 'Xperia C' ], // Pelican + 'Xperiaâ„¢ ZL39H' => [ 'Sony', 'Xperia Z Ultra' ], // Togari + 'Xperiaâ„¢ Miku' => [ 'Sony', 'Xperia Feat. Hatsune Miku' ], // Dogo + 'Xperia Tablet S' => [ 'Sony', 'Xperia Tablet S', DeviceType::TABLET ], + 'Xperia Live with Walkman' => [ 'Sony Ericsson', 'Live with Walkman' ], // Coconut + 'Xperia Tablet Z' => [ 'Sony', 'Xperia Tablet Z', DeviceType::TABLET ], + 'Xperia Tablet Z LTE' => [ 'Sony', 'Xperia Tablet Z', DeviceType::TABLET ], + 'Xperia Tablet Z Wi-Fi' => [ 'Sony', 'Xperia Tablet Z', DeviceType::TABLET ], + 'Xperia Tablet Z WiFi' => [ 'Sony', 'Xperia Tablet Z', DeviceType::TABLET ], + 'Xperia Z2 Tablet Wifi' => [ 'Sony', 'Xperia Tablet Z2', DeviceType::TABLET ], + ], + + 'Sony Xperia Ray' => [ 'Sony Ericsson', 'Xperia Ray' ], // Urushi + 'SonyEricssonMT15' => [ 'Sony Ericsson', 'Xperia Neo' ], // Hallon + 'SonyEricssonST15' => [ 'Sony Ericsson', 'Xperia Mini' ], // Smultron + 'Live ?With ?Walkman!' => [ 'Sony Ericsson', 'Live with Walkman' ], // Coconut + 'Arc' => [ 'Sony Ericsson', 'Xperia Arc' ], // Anzu + 'Arc S' => [ 'Sony Ericsson', 'Xperia Arc S' ], // Ayame + 'Neo V' => [ 'Sony Ericsson', 'Xperia Neo V' ], // Haida + 'Hayabusa' => [ 'Sony', 'Xperia GX or TX' ], // Hayabusa + 'Nozomi' => [ 'Sony', 'Xperia S' ], // Nozomi + 'pepper' => [ 'Sony', 'Xperia Sola' ], // Pepper + 'Tablet P' => [ 'Sony', 'Tablet P', DeviceType::TABLET ], + 'Tablet S' => [ 'Sony', 'Tablet S', DeviceType::TABLET ], + + 'SGP[ST0-9][0-9]{2,2}!!' => [ + 'SGPS(21)!' => [ 'Sony', 'Xperia Tablet Z2', DeviceType::TABLET ], + 'SGPT(12|13)!' => [ 'Sony', 'Xperia Tablet S', DeviceType::TABLET ], + 'SGP3(11|12|21|41|51)!' => [ 'Sony', 'Xperia Tablet Z', DeviceType::TABLET ], + 'SGP4(12)!' => [ 'Sony', 'Xperia Tablet Z Ultra', DeviceType::TABLET ], + 'SGP5(11|12|21|41|51|61)!' => [ 'Sony', 'Xperia Tablet Z2', DeviceType::TABLET ], // Castor + 'SGP6(11|12|21|41)!' => [ 'Sony', 'Xperia Tablet Z3 Compact', DeviceType::TABLET ], + 'SGP7(12|71)!' => [ 'Sony', 'Xperia Tablet Z4', DeviceType::TABLET ], + ], + + 'NWZ?-Z1000Series!' => [ 'Sony', 'Walkman Z', DeviceType::MEDIA ], + + 'NSZ-G[A-Z][0-9]!!' => [ + 'NSZ-GP9' => [ 'Sony', 'NSZ-GP9', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'NSZ-GS7' => [ 'Sony', 'NSZ-GS7', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'NSZ-GS8' => [ 'Sony', 'NSZ-GS8', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'NSZ-GT1' => [ 'Sony', 'NSZ-GT1', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'NSZ-GU1' => [ 'Sony', 'BRAVIA Smart Stick NSZ-GU1', DeviceType::TELEVISION, Flag::GOOGLETV ], + ], + + 'beetle' => [ 'Sony', 'NSZ-GS7', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'magi' => [ 'Sony', 'BRAVIA Smart Stick NSZ-GU1', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'Internet TV' => [ 'Sony', 'Internet TV', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'Internet TV Box' => [ 'Sony', 'Internet TV', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'BRAVIA' => [ 'Sony', 'Bravia W80', DeviceType::TELEVISION ], + 'PRS-T1' => [ 'Sony', 'Reader PRS-T1', DeviceType::EREADER ], + 'SpeedUp S3' => [ 'SpeedUp', 'Tab S3', DeviceType::TABLET ], + + '(CSL[- ])?(Spice[- ]?)?Mi(-| )?[0-9]{3,3}!!' => [ + 'Spice Mi-270' => [ 'Spice', 'Mi-270' ], + 'Spice Mi280' => [ 'Spice', 'Mi-280' ], + 'SPICE-MI280' => [ 'Spice', 'Mi-280' ], + 'SPICE Mi-285' => [ 'Spice', 'Mi-285 Stellar' ], + 'Spice Mi300' => [ 'Spice', 'Mi-300' ], + 'CSL Spice MI300' => [ 'Spice', 'Mi-300' ], + 'Spice Mi-310' => [ 'Spice', 'Mi-310' ], + 'Mi320' => [ 'Spice', 'Mi-320' ], + 'Mi-347' => [ 'Spice', 'Mi-347' ], + 'Spice Mi-349' => [ 'Spice', 'Mi-349 Smart Flo Edge' ], + 'Spice Mi-350!' => [ 'Spice', 'Mi-350' ], + 'CSL-MI350' => [ 'Spice', 'Mi-350' ], + 'Spice Mi-351' => [ 'Spice', 'Mi-351 Smart Flo' ], + 'Spice MI352' => [ 'Spice', 'Mi-352 Stellar Xtacy' ], + 'Spice MI-352' => [ 'Spice', 'Mi-352 Stellar Xtacy' ], + 'Spice Mi-354' => [ 'Spice', 'Mi-354 Smart Flo Space' ], + 'Spice Mi-355' => [ 'Spice', 'Mi-355 Stellar Craze' ], + 'MI-355' => [ 'Spice', 'Mi-355 Stellar Craze' ], + 'MI355' => [ 'Spice', 'Mi-355 Stellar Craze' ], + 'Mi-356' => [ 'Spice', 'Mi-356 Smart Flo Mettle 3.5X' ], + 'Spice Mi-358' => [ 'Spice', 'Mi-358 Smart Flo' ], + 'Spice Mi-359' => [ 'Spice', 'Mi-359 Smart Flo' ], + 'Mi-360' => [ 'Spice', 'Mi-360 Stellar' ], + 'Spice Mi-361' => [ 'Spice', 'Mi-361 Stellar' ], + 'Mi363' => [ 'Spice', 'Mi-363 Switch Star Neo' ], + 'Mi406' => [ 'Spice', 'Mi-406 Switch Pluto' ], + 'SPICE-Mi 407' => [ 'Spice', 'Mi-407' ], + 'CSL-MI410' => [ 'Spice', 'Mi-410' ], + 'Spice MI410' => [ 'Spice', 'Mi-410' ], + 'Spice Mi-422' => [ 'Spice', 'Mi-422 Smart Flo Pace' ], + 'Mi-423' => [ 'Spice', 'Mi-423 Smart Flo Ivory 2' ], + 'Spice Mi-424' => [ 'Spice', 'Mi-424 Stellar' ], + 'Spice Mi-425' => [ 'Spice', 'Mi-425 Stellar' ], + 'Mi-426' => [ 'Spice', 'Mi-426 Smart Flo Mettle 4X' ], + 'Spice Mi-435' => [ 'Spice', 'Mi-435 Stellar Nhance' ], + 'Spice Mi-436' => [ 'Spice', 'Mi-436 Stellar Glamour' ], + 'Spice Mi-437' => [ 'Spice', 'Mi-437 Stellar Nhance 2' ], + 'Mi438' => [ 'Spice', 'Mi-438 Stellar Glide' ], + 'MI-438' => [ 'Spice', 'Mi-438 Stellar Glide' ], + 'Mi-439' => [ 'Spice', 'Mi-439 Stellar' ], + 'SpiceMi-449' => [ 'Spice', 'Mi-449 Stellar' ], + 'Spice Mi-449 3G' => [ 'Spice', 'Mi-449 Stellar' ], + 'Spice Mi-450' => [ 'Spice', 'Mi-450 Smart Flo Ivory' ], + 'Spice Mi-451' => [ 'Spice', 'Mi-451 Smart Flo Poise' ], + 'Mi-491' => [ 'Spice', 'Mi-491 Stellar Virtuoso Pro' ], + 'Spice Mi-492' => [ 'Spice', 'Mi-492 Stellar Virtuoso Pro+' ], + 'Spice Mi-495' => [ 'Spice', 'Mi-495 Stellar Virtuoso' ], + 'Spice Mi-496' => [ 'Spice', 'Mi-496 Coolpad 2' ], + 'Spice Mi-497' => [ 'Spice', 'Mi-497 Stellar' ], + 'Spice Mi-498' => [ 'Spice', 'Mi-498 Dream Uno' ], + 'Spice Mi-498H' => [ 'Spice', 'Mi-498 Dream Uno' ], + 'Mi-498 Dream Uno' => [ 'Spice', 'Mi-498 Dream Uno' ], + 'Spice Mi-500' => [ 'Spice', 'Mi-500 Stellar Horizon' ], + 'Mi501' => [ 'Spice', 'Mi-501 Switch Mercury' ], + 'Spice Mi-501' => [ 'Spice', 'Mi-501 Switch Mercury' ], + 'Spice Mi-502' => [ 'Spice', 'Mi-502 Smart Flo Pace2' ], + 'Spice Mi-502n' => [ 'Spice', 'Mi-502 Smart Flo Pace2' ], + 'Mi-503' => [ 'Spice', 'Mi-503 Stellar' ], + 'Spice Mi-504' => [ 'Spice', 'Mi-504 Smart Flo Mettle 5X' ], + 'Spice Mi-505' => [ 'Spice', 'Mi-505 Stellar Horizon Pro' ], + 'Spice Mi-506' => [ 'Spice', 'Mi-506 Stellar Mettle Icon' ], + 'Mi-508' => [ 'Spice', 'Mi-508 Stellar' ], + 'MI-509' => [ 'Spice', 'Mi-509 Stellar' ], + 'SpiceMI-509' => [ 'Spice', 'Mi-509 Stellar' ], + 'Spice Mi-514' => [ 'Spice', 'Mi-514' ], + 'Spice Mi-515' => [ 'Spice', 'Mi-515 Coolpad' ], + 'Mi-516' => [ 'Spice', 'Mi-516 Stellar' ], + 'Spice Mi-519' => [ 'Spice', 'Mi-519 Stellar' ], + 'SpiceMI-520' => [ 'Spice', 'Mi-520 Stellar' ], + 'SpiceMI-520N' => [ 'Spice', 'Mi-520 Stellar' ], + 'Spice Mi-525' => [ 'Spice', 'Mi-525 Stellar Pinnacle FHD' ], + 'Spice Mi-526' => [ 'Spice', 'Mi-526 Stellar' ], + 'Spice Mi-530' => [ 'Spice', 'Mi-530 Stellar Pinnacle' ], + 'Mi530' => [ 'Spice', 'Mi-530 Stellar Pinnacle' ], + 'Mi531' => [ 'Spice', 'Mi-531' ], + 'Spice Mi-535' => [ 'Spice', 'Mi-535 Stellar Pinnacle Pro' ], + 'Spice Mi-549' => [ 'Spice', 'Mi-549' ], + 'Spice Mi-550' => [ 'Spice', 'Mi-550 Pinnacle Stylus' ], + 'Mi-600' => [ 'Spice', 'Mi-600 Stellar' ], + 'CSL Spice MI700' => [ 'Spice', 'Mi-700', DeviceType::TABLET ], + 'SPICE Mi-720' => [ 'Spice', 'Mi-720 Tab', DeviceType::TABLET ], + 'Spice Mi-725' => [ 'Spice', 'Mi-725 Stellar Slatepad', DeviceType::TABLET ], + 'Mi730' => [ 'Spice', 'Mi-730 Tab', DeviceType::TABLET ], + 'Spice Mi-740' => [ 'Spice', 'Mi-740', DeviceType::TABLET ], + 'SpiceMi1010' => [ 'Spice', 'Mi-1010 Stellar Pad', DeviceType::TABLET ], + ], + + 'A5000' => [ 'Star', 'A5000' ], + 'A7272+' => [ 'Star', 'A7272+' ], + 'I9300' => [ 'Star', 'I9300' ], + 'N710' => [ 'Star', 'N710' ], + 'e1808 v75!' => [ 'Star', 'N8000' ], + 'Star N8000' => [ 'Star', 'N8000' ], + 'Star N9500' => [ 'Star', 'N9500' ], + 'Star N9589' => [ 'Star', 'N9589' ], + 'N9600' => [ 'Star', 'N9600' ], + 'Star Q9000' => [ 'Star', 'Q9000' ], + 'S5' => [ 'Star', 'S5' ], + 'STAR S5' => [ 'Star', 'S5' ], + 'STAR S7589' => [ 'Star', 'S7589' ], + 'V1277' => [ 'Star', 'V1277' ], + 'e1109 v73!' => [ 'Star', 'X18i' ], + + 'Starmobile!!' => [ + 'Starmobile ASTRA' => [ 'Starmobile', 'Astra' ], + 'Starmobile CRYSTAL' => [ 'Starmobile', 'Crystal' ], + 'Starmobile DIAMOND D3' => [ 'Starmobile', 'Diamond D3' ], + 'Starmobile Diamond S1' => [ 'Starmobile', 'Diamond S1' ], + 'Starmobile Diamond S2' => [ 'Starmobile', 'Diamond S2' ], + 'Starmobile DIAMOND V3' => [ 'Starmobile', 'Diamond V3' ], + 'Starmobile Diamond X1' => [ 'Starmobile', 'Diamond X1' ], + 'Starmobile ENERGY' => [ 'Starmobile', 'Energy' ], + 'Starmobile Engage7 3G' => [ 'Starmobile', 'Engage 7' ], + 'Starmobile ENGAGE 9i' => [ 'Starmobile', 'Engage 9i' ], + 'Starmobile FLIRT' => [ 'Starmobile', 'Flirt' ], + 'Starmobile GOAL' => [ 'Starmobile', 'Goal' ], + 'Starmobile Hit' => [ 'Starmobile', 'Hit' ], + 'Starmobile JUMP' => [ 'Starmobile', 'Jump' ], + 'Starmobile KNIGHT' => [ 'Starmobile', 'Knight' ], + 'Starmobile Like' => [ 'Starmobile', 'Like' ], + 'Starmobile MUSE' => [ 'Starmobile', 'Muse' ], + 'Starmobile NAVI' => [ 'Starmobile', 'Navi' ], + 'Starmobile PLAY' => [ 'Starmobile', 'Play' ], + 'Starmobile UP' => [ 'Starmobile', 'Up' ], + 'Starmobile VIDA' => [ 'Starmobile', 'Vida' ], + ], + + 'DIAMOND D1' => [ 'Starmobile', 'Diamond D1' ], + 'DIAMOND S3' => [ 'Starmobile', 'Diamond S3' ], + 'ROAR' => [ 'Starmobile', 'Roar' ], + + '(Starway )?Andromeda!!' => [ + 'Starway Andromeda S705' => [ 'Starway', 'Andromeda S705', DeviceType::TABLET ], + 'Andromeda S840' => [ 'Starway', 'Andromeda S840', DeviceType::TABLET ], + 'STARWAY Andromeda S900' => [ 'Starway', 'Andromeda S900', DeviceType::TABLET ], + 'Starway Andromeda S910' => [ 'Starway', 'Andromeda S910', DeviceType::TABLET ], + 'Andromeda S910' => [ 'Starway', 'Andromeda S910', DeviceType::TABLET ], + 'Andromeda S940' => [ 'Starway', 'Andromeda S940', DeviceType::TABLET ], + ], + + 'STX!!' => [ + 'STX EVO' => [ 'Stonex', 'STX Evo' ], + 'STX Mini' => [ 'Stonex', 'STX Mini' ], + 'STX MINI 2' => [ 'Stonex', 'STX Mini 2' ], + 'STX ULTRA' => [ 'Stonex', 'STX Ultra' ], + 'STX ULTRA 2' => [ 'Stonex', 'STX Ultra 2' ], + ], + + 'Scroll!!' => [ + 'Scroll Engage' => [ 'Storage Options', 'Scroll Engage', DeviceType::TABLET ], + 'Scroll Essential' => [ 'Storage Options', 'Scroll Essential', DeviceType::TABLET ], + 'Scroll Essential II' => [ 'Storage Options', 'Scroll Essential 2', DeviceType::TABLET ], + 'Scroll Evoke' => [ 'Storage Options', 'Scroll Evoke', DeviceType::TABLET ], + 'Scroll Excel' => [ 'Storage Options', 'Scroll Excel', DeviceType::TABLET ], + 'Scroll Excel 2' => [ 'Storage Options', 'Scroll Excel 2', DeviceType::TABLET ], + 'Scroll Extreme' => [ 'Storage Options', 'Scroll Extreme', DeviceType::TABLET ], + 'Scroll Tablet' => [ 'Storage Options', 'Scroll Tablet', DeviceType::TABLET ], + 'Scroll Tablet PC' => [ 'Storage Options', 'Scroll Tablet PC', DeviceType::TABLET ], + ], + + 'eZee!!' => [ + 'eZee\'Tab10c' => [ 'Storex', 'eZee\'Tab 10c', DeviceType::TABLET ], + 'eZee\'Tab702' => [ 'Storex', 'eZee\'Tab 702', DeviceType::TABLET ], + 'eZee\' Tab702' => [ 'Storex', 'eZee\'Tab 702', DeviceType::TABLET ], + 'eZee\'Tab703' => [ 'Storex', 'eZee\'Tab 703', DeviceType::TABLET ], + 'eZee\'Tab705' => [ 'Storex', 'eZee\'Tab 705', DeviceType::TABLET ], + 'eZee\'TAB706' => [ 'Storex', 'eZee\'Tab 706', DeviceType::TABLET ], + 'eZee\'TAB707' => [ 'Storex', 'eZee\'Tab 707', DeviceType::TABLET ], + 'eZee\'Tab709' => [ 'Storex', 'eZee\'Tab 709', DeviceType::TABLET ], + 'eZee\'Tab785' => [ 'Storex', 'eZee\'Tab 785', DeviceType::TABLET ], + 'eZee\'Tab785D11-S' => [ 'Storex', 'eZee\'Tab 785', DeviceType::TABLET ], + 'eZee\'Tab785Q11-M' => [ 'Storex', 'eZee\'Tab 785', DeviceType::TABLET ], + 'eZee\'Tab802' => [ 'Storex', 'eZee\'Tab 802', DeviceType::TABLET ], + 'eZee\'Tab803' => [ 'Storex', 'eZee\'Tab 803', DeviceType::TABLET ], + 'eZee\'Tab804' => [ 'Storex', 'eZee\'Tab 804', DeviceType::TABLET ], + 'eZee Tab805' => [ 'Storex', 'eZee\'Tab 805', DeviceType::TABLET ], + 'Ezee\'TAB901' => [ 'Storex', 'eZee\'Tab 901', DeviceType::TABLET ], + 'eZee\'Tab903' => [ 'Storex', 'eZee\'Tab 903', DeviceType::TABLET ], + 'eZee\'Tab904' => [ 'Storex', 'eZee\'Tab 904', DeviceType::TABLET ], + 'eZee Tab973' => [ 'Storex', 'eZee\'Tab 973', DeviceType::TABLET ], + 'eZee\'TAB973' => [ 'Storex', 'eZee\'Tab 973', DeviceType::TABLET ], + 'eZee\'Tab1001' => [ 'Storex', 'eZee\'Tab 1001', DeviceType::TABLET ], + 'EzeeTab\'1001' => [ 'Storex', 'eZee\'Tab 1001', DeviceType::TABLET ], + 'eZeeTab1003' => [ 'Storex', 'eZee\'Tab 1003', DeviceType::TABLET ], + 'eZee\'Tab1004' => [ 'Storex', 'eZee\'Tab 1004', DeviceType::TABLET ], + 'eZee\' Tab10010-S' => [ 'Storex', 'eZee\'Tab 10010s', DeviceType::TABLET ], + 'eZeeTab7c2' => [ 'Storex', 'eZee\'Tab 7c2', DeviceType::TABLET ], + 'eZeeTab7c5' => [ 'Storex', 'eZee\'Tab 7c5', DeviceType::TABLET ], + 'eZee\'Tab7D10-S' => [ 'Storex', 'eZee\'Tab 7d10s', DeviceType::TABLET ], + 'eZee\'TAB7D12-S' => [ 'Storex', 'eZee\'Tab 7d12s', DeviceType::TABLET ], + 'eZee\'Tab7D13-S' => [ 'Storex', 'eZee\'Tab 7d13s', DeviceType::TABLET ], + 'eZee\'Tab7D14-S' => [ 'Storex', 'eZee\'Tab 7d14s', DeviceType::TABLET ], + 'eZeeTab7D15-M' => [ 'Storex', 'eZee\'Tab 7d15s', DeviceType::TABLET ], + 'eZee\'tab7Q12-S' => [ 'Storex', 'eZee\'Tab 7q12s', DeviceType::TABLET ], + 'eZee\'Tab785D12-S' => [ 'Storex', 'eZee\'Tab 785d12s', DeviceType::TABLET ], + 'eZee\'Tab8D11-S' => [ 'Storex', 'eZee\'Tab 8d11s', DeviceType::TABLET ], + 'eZee\'Tab97D11-S' => [ 'Storex', 'eZee\'Tab 97d11s', DeviceType::TABLET ], + 'eZee\'Tab10D11-M' => [ 'Storex', 'eZee\'Tab 10d11m', DeviceType::TABLET ], + 'eZee\'tab10D12-S' => [ 'Storex', 'eZee\'Tab 10d12s', DeviceType::TABLET ], + 'eZee\'Tab13Q10-M' => [ 'Storex', 'eZee\'Tab 13q10m', DeviceType::TABLET ], + ], + + 'STOREX LinkBox' => [ 'Storex', 'LinkBox', DeviceType::TELEVISION ], + + 'SRT!!' => [ + 'SRT AN4' => [ 'Strong', 'SRT AN4', DeviceType::TELEVISION ], + 'SRT AN4M' => [ 'Strong', 'SRT AN4M', DeviceType::TELEVISION ], + ], + + 'Cyclone!!' => [ + 'Cyclone Explorer' => [ 'Sumvision', 'Cyclone Explorer', DeviceType::TABLET ], + 'CYCLONE EXPLORER II' => [ 'Sumvision', 'Cyclone Explorer 2', DeviceType::TABLET ], + 'cyclone Titan' => [ 'Sumvision', 'Cyclone Titan', DeviceType::TABLET ], + 'Cyclone Voyager' => [ 'Sumvision', 'Cyclone Voyager', DeviceType::TABLET ], + 'Cyclone Voyager 2' => [ 'Sumvision', 'Cyclone Voyager 2', DeviceType::TABLET ], + ], + + 'M1001' => [ 'Superpad', 'M1001', DeviceType::TABLET ], + + 'SC-!!' => [ + 'SC-71MID' => [ 'Supersonic', 'Matrix SC-71MID', DeviceType::TABLET ], + 'SC-72J' => [ 'Supersonic', 'Matrix SC-72J', DeviceType::TABLET ], + 'SC-72JB' => [ 'Supersonic', 'Matrix SC-72JB', DeviceType::TABLET ], + 'SC-72MID' => [ 'Supersonic', 'Matrix SC-72MID', DeviceType::TABLET ], + 'SC-74JB' => [ 'Supersonic', 'Matrix SC-74JB', DeviceType::TABLET ], + 'SC-75MID' => [ 'Supersonic', 'Matrix SC-75MID', DeviceType::TABLET ], + 'SC-90JB' => [ 'Supersonic', 'Matrix SC-90JB', DeviceType::TABLET ], + 'SC-90MID' => [ 'Supersonic', 'Matrix SC-90MID', DeviceType::TABLET ], + 'SC-91JB' => [ 'Supersonic', 'Matrix SC-91JB', DeviceType::TABLET ], + 'SC-91MID' => [ 'Supersonic', 'Matrix SC-91MID', DeviceType::TABLET ], + ], + + 'SUPRA' => [ + 'SUPRA M121G' => [ 'SUPRA', 'M121G', DeviceType::TABLET ], + 'SUPRA M141G' => [ 'SUPRA', 'M141G', DeviceType::TABLET ], + 'SUPRA M145G' => [ 'SUPRA', 'M145G', DeviceType::TABLET ], + 'SUPRA M722' => [ 'SUPRA', 'M722', DeviceType::TABLET ], + 'SUPRA M722G' => [ 'SUPRA', 'M722G', DeviceType::TABLET ], + 'SUPRA M725G' => [ 'SUPRA', 'M725G', DeviceType::TABLET ], + 'SUPRA M726G' => [ 'SUPRA', 'M726G', DeviceType::TABLET ], + 'SUPRA M72KG' => [ 'SUPRA', 'M72KG', DeviceType::TABLET ], + 'SUPRA M741G' => [ 'SUPRA', 'M741G', DeviceType::TABLET ], + 'SUPRA M845G' => [ 'SUPRA', 'M845G', DeviceType::TABLET ], + 'SUPRA M847G' => [ 'SUPRA', 'M847G', DeviceType::TABLET ], + 'SUPRA M921G' => [ 'SUPRA', 'M921G', DeviceType::TABLET ], + 'SUPRA M929' => [ 'SUPRA', 'M929', DeviceType::TABLET ], + 'SUPRA M945G' => [ 'SUPRA', 'M945G', DeviceType::TABLET ], + ], + + 'Fablet F3' => [ 'Swipe', 'Fablet F3' ], + 'SYTABEX7-2' => [ 'Sylvania', 'SYTABEX7', DeviceType::TABLET ], + + '(Symphony|Xplorer)!!' => [ + 'Symphony Play W17' => [ 'Symphony', 'Play W17' ], + 'Xplorer T7i' => [ 'Symphony', 'Xplorer T7i', DeviceType::TABLET ], + 'Xplorer T8i' => [ 'Symphony', 'Xplorer T8i', DeviceType::TABLET ], + 'Symphony T8Q' => [ 'Symphony', 'Xplorer T8Q', DeviceType::TABLET ], + 'SYMPHONY E76' => [ 'Symphony', 'Xplorer E76' ], + 'SYMPHONY H50' => [ 'Symphony', 'Xplorer H50' ], + 'Symphony H100' => [ 'Symphony', 'Xplorer H100' ], + 'Symphony W10' => [ 'Symphony', 'Xplorer W10' ], + 'Symphony W15' => [ 'Symphony', 'Xplorer W15' ], + 'Symphony Xplorer W15i' => [ 'Symphony', 'Xplorer W15i' ], + 'Symphony Xplorer W16' => [ 'Symphony', 'Xplorer W16' ], + 'Symphony W18' => [ 'Symphony', 'Xplorer W18' ], + 'Symphony Xplorer W21' => [ 'Symphony', 'Xplorer W21' ], + 'Symphony Xplorer W22' => [ 'Symphony', 'Xplorer W22' ], + 'Symphony W25' => [ 'Symphony', 'Xplorer W25' ], + 'Symphony Xplorer W31' => [ 'Symphony', 'Xplorer W31' ], + 'Symphony Xplorer W32' => [ 'Symphony', 'Xplorer W32' ], + 'Symphony Xplorer W35' => [ 'Symphony', 'Xplorer W35' ], + 'Symphony W65' => [ 'Symphony', 'Xplorer W65' ], + 'Symphony W65i' => [ 'Symphony', 'Xplorer W65i' ], + 'Symphony W66' => [ 'Symphony', 'Xplorer W66' ], + 'Symphony W67' => [ 'Symphony', 'Xplorer W67' ], + 'Symphony W68' => [ 'Symphony', 'Xplorer W68' ], + 'Symphony W68Q' => [ 'Symphony', 'Xplorer W68Q' ], + 'Symphony W69' => [ 'Symphony', 'Xplorer W69' ], + 'Symphony Xplorer W69Q' => [ 'Symphony', 'Xplorer W69Q' ], + 'Symphony Xplorer W70Q' => [ 'Symphony', 'Xplorer W70Q' ], + 'Symphony Xplorer W71' => [ 'Symphony', 'Xplorer W71' ], + 'Symphony Xplorer W71i' => [ 'Symphony', 'Xplorer W71i' ], + 'Symphony W72' => [ 'Symphony', 'Xplorer W72' ], + 'Symphony W82' => [ 'Symphony', 'Xplorer W82' ], + 'Symphony W85' => [ 'Symphony', 'Xplorer W85' ], + 'SYMPHONY W90' => [ 'Symphony', 'Xplorer W90' ], + 'Symphony W94' => [ 'Symphony', 'Xplorer W94' ], + 'Symphony W95' => [ 'Symphony', 'Xplorer W95' ], + 'Xplorer W125' => [ 'Symphony', 'Xplorer W125' ], + 'Symphony W125' => [ 'Symphony', 'Xplorer W125' ], + 'Symphony W128' => [ 'Symphony', 'Xplorer W128' ], + 'Symphony W130' => [ 'Symphony', 'Xplorer W130' ], + 'Symphony Xplorer W140' => [ 'Symphony', 'Xplorer W140' ], + 'Symphony W160' => [ 'Symphony', 'Xplorer W160' ], + 'Xplorer Z III' => [ 'Symphony', 'Xplorer ZIII' ], + 'Symphony ZIV' => [ 'Symphony', 'Xplorer ZIV' ], + ], + + 'W20' => [ 'Symphony', 'Xplorer W20' ], + 'Roar A50' => [ 'Symphony', 'Roar A50' ], + 'Synrgic Uno M1' => [ 'Synrgic', 'Uno M1' ], + + 'T-Smart!!' => [ + 'T-smart D18X' => [ 'T-smart', 'D18X' ], + 'T-smart D28' => [ 'T-smart', 'D28' ], + 'T-smart D28X' => [ 'T-smart', 'D28X' ], + 'T-SmartD58X' => [ 'T-smart', 'D58X' ], + 'T-smart D58X' => [ 'T-smart', 'D58X' ], + 'T-smart D68X' => [ 'T-smart', 'D68X' ], + 'T-SmartD98X' => [ 'T-smart', 'D98X' ], + 'T-smart G18' => [ 'T-smart', 'G18' ], + 'T-smart G28' => [ 'T-smart', 'G28' ], + 'T-smart G58' => [ 'T-smart', 'G58' ], + 'T-smart L818' => [ 'T-smart', 'L818' ], + ], + + 'Tabra QAV801' => [ 'Tabra', 'QAV801', DeviceType::TABLET ], + + 'TCL!!' => [ + 'TCL-309T' => [ 'TCL', '309T' ], + 'TCL A506' => [ 'TCL', 'A506' ], + 'TCL A510' => [ 'TCL', 'A510' ], + 'TCL A860' => [ 'TCL', 'A860' ], + 'TCL A865' => [ 'TCL', 'A865' ], + 'TCL A890!' => [ 'TCL', 'A890' ], + 'TCL A906' => [ 'TCL', 'A906' ], + 'TCL A909' => [ 'TCL', 'A909' ], + 'TCL A916' => [ 'TCL', 'A916' ], + 'TCL A919' => [ 'TCL', 'A919' ], + 'TCL A966' => [ 'TCL', 'A966' ], + 'TCL A966 RUS' => [ 'TCL', 'A966' ], + 'TCL A968' => [ 'TCL', 'A968' ], + 'TCL A980' => [ 'TCL', 'A980' ], + 'TCL A986' => [ 'TCL', 'A986' ], + 'TCL A988' => [ 'TCL', 'A988' ], + 'TCL A990' => [ 'TCL', 'A990' ], + 'TCL[- ]A996!' => [ 'TCL', 'A996' ], + 'TCL A998' => [ 'TCL', 'A998' ], + 'TCL C990' => [ 'TCL', 'C990' ], + 'TCL C990+' => [ 'TCL', 'C990+' ], + 'TCL C995' => [ 'TCL', 'C995' ], + 'TCL D35' => [ 'TCL', 'D35' ], + 'TCL D40 DUAL' => [ 'TCL', 'D40' ], + 'TCL D55' => [ 'TCL', 'D55' ], + 'TCL D515' => [ 'TCL', 'D515' ], + 'TCL-D662' => [ 'TCL', 'D662' ], + 'TCL D662' => [ 'TCL', 'D662' ], + 'TCL-D668' => [ 'TCL', 'D668' ], + 'TCL D668' => [ 'TCL', 'D668' ], + 'TCL D706' => [ 'TCL', 'D706' ], + 'TCL D768' => [ 'TCL', 'D768' ], + 'TCL-D768' => [ 'TCL', 'D768' ], + 'TCL D920' => [ 'TCL', 'D920' ], + 'TCL-D920' => [ 'TCL', 'D920' ], + 'TCL GENESEE E708' => [ 'TCL', 'Genesee E708' ], + 'TCL E928' => [ 'TCL', 'E928' ], + 'TCL H900M' => [ 'TCL', 'H900M' ], + 'TCL i708U' => [ 'TCL', 'i708U' ], + 'TCL i709M' => [ 'TCL', 'i709M' ], + 'TCL i718M' => [ 'TCL', 'i718M' ], + 'TCL i800' => [ 'TCL', 'i800' ], + 'TCL i806' => [ 'TCL', 'i806' ], + 'TCL J210' => [ 'TCL', 'J210' ], + 'TCL J210C' => [ 'TCL', 'J210' ], + 'TCL-J210C' => [ 'TCL', 'J210' ], + 'TCL J300' => [ 'TCL', 'J300' ], + 'TCL J305T' => [ 'TCL', 'J305' ], + 'TCL J310' => [ 'TCL', 'J310' ], + 'TCL J320' => [ 'TCL', 'J320' ], + 'TCL J320C' => [ 'TCL', 'J320' ], + 'TCL-J320D' => [ 'TCL', 'J320' ], + 'TCL J320D' => [ 'TCL', 'J320' ], + 'TCL J320T' => [ 'TCL', 'J320' ], + 'TCL J600T' => [ 'TCL', 'J600' ], + 'TCL J610' => [ 'TCL', 'J610' ], + 'TCL J620' => [ 'TCL', 'J620' ], + 'TCL J630T' => [ 'TCL', 'J630' ], + 'TCL J636D' => [ 'TCL', 'J636' ], + 'TCL J636D+' => [ 'TCL', 'J636' ], + 'TCL J706T' => [ 'TCL', 'J706' ], + 'TCL J720' => [ 'TCL', 'J720' ], + 'TCL J726T' => [ 'TCL', 'J726' ], + 'TCL-J736L' => [ 'TCL', 'J736' ], + 'TCL J738M' => [ 'TCL', 'J738' ], + 'TCL J900' => [ 'TCL', 'J900' ], + 'TCL-J900C' => [ 'TCL', 'J900' ], + 'TCL J900T' => [ 'TCL', 'J900' ], + 'TCL J920' => [ 'TCL', 'J9260' ], + 'TCL J926T' => [ 'TCL', 'J926' ], + 'TCL J928' => [ 'TCL', 'J928' ], + 'TCL-J929L' => [ 'TCL', 'J929' ], + 'TCL J938M' => [ 'TCL', 'J938' ], + 'TCL M2M' => [ 'TCL', 'M2M' ], + 'TCL M2U' => [ 'TCL', 'M2U' ], + 'TCL M3G' => [ 'TCL', 'M3G' ], + 'TCL TK8263!' => [ 'TCL', 'TK8263' ], + 'TCL P301C' => [ 'TCL', 'P301' ], + 'TCL P301M' => [ 'TCL', 'P301' ], + 'TCL P302C' => [ 'TCL', 'P302' ], + 'TCL-P306C' => [ 'TCL', 'P306' ], + 'TCL-P308L' => [ 'TCL', 'P308' ], + 'TCL P308L' => [ 'TCL', 'P308' ], + 'TCL P308M' => [ 'TCL', 'P308' ], + 'TCL-P316L' => [ 'TCL', 'P316' ], + 'TCL P316L' => [ 'TCL', 'P316' ], + 'TCL P331M' => [ 'TCL', 'P331' ], + 'TCL P332U' => [ 'TCL', 'P332' ], + 'TCL P335M' => [ 'TCL', 'P335' ], + 'TCL P360W' => [ 'TCL', 'P360' ], + 'TCL P500M' => [ 'TCL', 'P500' ], + 'TCL P501M' => [ 'TCL', 'P501' ], + 'TCL P502U' => [ 'TCL', 'P502' ], + 'TCL-P516L' => [ 'TCL', 'P516' ], + 'TCL P518L' => [ 'TCL', 'P518' ], + 'TCL-P520L' => [ 'TCL', 'P520' ], + 'TCL P520L' => [ 'TCL', 'P520' ], + 'TCL P528D' => [ 'TCL', 'P528' ], + 'TCL P560M' => [ 'TCL', 'P560' ], + 'TCL-P588L' => [ 'TCL', 'P588' ], + 'TCL P588L' => [ 'TCL', 'P588' ], + 'TCL-P590L' => [ 'TCL', 'P590' ], + 'TCL P590L' => [ 'TCL', 'P590' ], + 'TCL P600' => [ 'TCL', 'P600' ], + 'TCL P606!' => [ 'TCL', 'P606' ], + 'TCL P618L' => [ 'TCL', 'P618' ], + 'TCL P620M' => [ 'TCL', 'P620' ], + 'TCL P631M' => [ 'TCL', 'P631' ], + 'TCL P650M' => [ 'TCL', 'P650' ], + 'TCL-P668L' => [ 'TCL', 'P668' ], + 'TCL P688L' => [ 'TCL', 'P688' ], + 'TCL P689L' => [ 'TCL', 'P689' ], + 'TCL-P688L' => [ 'TCL', 'P688' ], + 'TCL P728M' => [ 'TCL', 'P728' ], + 'TCL P900' => [ 'TCL', 'P900' ], + 'TCL S300T' => [ 'TCL', 'S300' ], + 'TCL S500' => [ 'TCL', 'S500' ], + 'TCL S520' => [ 'TCL', 'S520' ], + 'TCL S530T' => [ 'TCL', 'S530' ], + '(TCL )?S600!' => [ 'TCL', 'S600' ], + 'TCL S700' => [ 'TCL', 'S700' ], + 'TCL S700T' => [ 'TCL', 'S700' ], + 'TCL S710' => [ 'TCL', 'S710' ], + 'TCL S720' => [ 'TCL', 'S720' ], + 'TCL S720T' => [ 'TCL', 'S720' ], + 'TCL S725T' => [ 'TCL', 'S725' ], + 'TCL S800' => [ 'TCL', 'S800' ], + 'TCL-S806' => [ 'TCL', 'S806' ], + 'TCL S810' => [ 'TCL', 'S810' ], + 'TCL S820' => [ 'TCL', 'S820' ], + 'TCL S826L' => [ 'TCL', 'S826' ], + 'TCL S830' => [ 'TCL', 'S830' ], + 'TCL S830U' => [ 'TCL', 'S830' ], + 'TCL S838M' => [ 'TCL', 'S838' ], + 'TCL S850' => [ 'TCL', 'S850' ], + 'TCL S850L' => [ 'TCL', 'S850' ], + 'TCL-S850L' => [ 'TCL', 'S850' ], + 'TCL S860' => [ 'TCL', 'S860' ], + 'TCL S900' => [ 'TCL', 'S900' ], + 'TCL S950!' => [ 'TCL', 'S950' ], + 'TCL S960!' => [ 'TCL', 'S960' ], + 'TCL T500L' => [ 'TCL', 'T500' ], + 'TCL U980' => [ 'TCL', 'U980' ], + 'TCL W939' => [ 'TCL', 'W939' ], + 'TCL W969' => [ 'TCL', 'W969' ], + 'TCLW989' => [ 'TCL', 'W989' ], + 'TCL Y710' => [ 'TCL', 'Y710' ], + 'TCL Y900' => [ 'TCL', 'Y900' ], + 'TCL Y910' => [ 'TCL', 'Hero N3' ], + 'TCL Y910T' => [ 'TCL', 'Hero N3' ], + 'TCL TAB 7' => [ 'TCL', 'Tab 7', DeviceType::TABLET ], + 'TCL Google TV TV' => [ 'TCL', 'MoVo UD TV', DeviceType::TELEVISION, Flag::GOOGLETV ], + ], + + 'TECNO!!' => [ + 'TECNO-A7' => [ 'Tecno', 'Phantom Z' ], + 'TECNO B3' => [ 'Tecno', 'B3' ], + 'TECNO B5S' => [ 'Tecno', 'B5S' ], + 'TECNO-C5' => [ 'Tecno', 'C5' ], + 'TECNO-C8' => [ 'Tecno', 'C8' ], + 'TECNO D1' => [ 'Tecno', 'D1' ], + 'TECNO D3' => [ 'Tecno', 'D3' ], + 'TECNO D5' => [ 'Tecno', 'D5' ], + 'TECNO D7' => [ 'Tecno', 'D7' ], + 'TECNO D9' => [ 'Tecno', 'D9' ], + 'TECNO F5' => [ 'Tecno', 'F5' ], + 'TECNO F6' => [ 'Tecno', 'F6' ], + 'TECNO F7' => [ 'Tecno', 'Phantom A' ], + 'TECNO F8' => [ 'Tecno', 'Phantom AII' ], + 'TECNO G9' => [ 'Tecno', 'Phantom Pad 2', DeviceType::TABLET ], + 'TECNO-H3' => [ 'Tecno', 'H3' ], + 'TECNO H3' => [ 'Tecno', 'H3' ], + 'TECNO H5' => [ 'Tecno', 'H5' ], + 'TECNO H6' => [ 'Tecno', 'H6' ], + 'TECNO H7' => [ 'Tecno', 'H7' ], + 'TECNO-J5' => [ 'Tecno', 'J5' ], + 'TECNO-J7' => [ 'Tecno', 'J7' ], + 'TECNO J7' => [ 'Tecno', 'J7' ], + 'TECNO-J8' => [ 'Tecno', 'J8' ], + 'TECNO L3' => [ 'Tecno', 'L3' ], + 'TECNO-L5' => [ 'Tecno', 'L5' ], + 'TECNO L7' => [ 'Tecno', 'L7' ], + 'TECNO M3' => [ 'Tecno', 'M3' ], + 'TECNO M3M' => [ 'Tecno', 'M3M' ], + 'TECNO M3S' => [ 'Tecno', 'M3S' ], + 'TECNO M5' => [ 'Tecno', 'M5' ], + 'TECNO M6' => [ 'Tecno', 'M6' ], + 'TECNO-M6S' => [ 'Tecno', 'M6S' ], + 'TECNO M7' => [ 'Tecno', 'M7' ], + 'TECNO M9' => [ 'Tecno', 'Phantom AIII' ], + 'TECNO N3' => [ 'Tecno', 'N3' ], + 'TECNO N3S' => [ 'Tecno', 'N3S' ], + 'TECNO N7' => [ 'Tecno', 'N7' ], + 'TECNO N9' => [ 'Tecno', 'Phantom Pad', DeviceType::TABLET ], + 'TECNO P3' => [ 'Tecno', 'P3' ], + 'TECNO P3S' => [ 'Tecno', 'P3S' ], + 'TECNO P5' => [ 'Tecno', 'P5' ], + 'TECNO P5 PLUS' => [ 'Tecno', 'P5 Plus' ], + 'TECNO P5S' => [ 'Tecno', 'P5S' ], + 'TECNO P6' => [ 'Tecno', 'P6' ], + 'TECNO P9' => [ 'Tecno', 'Phantom Pad Mini', DeviceType::TABLET ], + 'TECNO Q1' => [ 'Tecno', 'Q1' ], + 'TECNO R5' => [ 'Tecno', 'R5' ], + 'TECNO R7' => [ 'Tecno', 'R7' ], + 'TECNO S3' => [ 'Tecno', 'S3' ], + 'TECNO S3+' => [ 'Tecno', 'S3+' ], + 'TECNO S3C' => [ 'Tecno', 'S3C' ], + 'TECNO S3M' => [ 'Tecno', 'S3M' ], + 'TECNO S5' => [ 'Tecno', 'S5' ], + 'TECNO S7' => [ 'Tecno', 'S7' ], + 'TECNO S9' => [ 'Tecno', 'S9' ], + 'TECNO S9S' => [ 'Tecno', 'S9S' ], + 'TECNO T1' => [ 'Tecno', 'T1' ], + 'TECNO T3' => [ 'Tecno', 'T3' ], + 'TECNO-Y3' => [ 'Tecno', 'Y3' ], + 'TECNO-Y4' => [ 'Tecno', 'Y4' ], + 'TECNO-Y5S' => [ 'Tecno', 'Y5S' ], + 'TECNO-Y6' => [ 'Tecno', 'Y6' ], + ], + + 'L3' => [ 'Tecno', 'L3' ], + 'Xtab1081HD' => [ 'Techtab', 'Xtab 1081 HD', DeviceType::TABLET ], + 'Teclast A10' => [ 'Teclast', 'A10', DeviceType::TABLET ], + 'A10H(D5W6)' => [ 'Teclast', 'A10H', DeviceType::TABLET ], + 'A10HD(N9A3)' => [ 'Teclast', 'A10HD', DeviceType::TABLET ], + 'A10t(5DM3)' => [ 'Teclast', 'A10T', DeviceType::TABLET ], + 'A10T(8DM1)' => [ 'Teclast', 'A10T', DeviceType::TABLET ], + 'A11(M5A7)' => [ 'Teclast', 'A11', DeviceType::TABLET ], + 'A11s(M5A7)' => [ 'Teclast', 'A11s', DeviceType::TABLET ], + 'A15(E6C2)' => [ 'Teclast', 'A15', DeviceType::TABLET ], + 'A70(CY6T)' => [ 'Teclast', 'A70', DeviceType::TABLET ], + 'A78h四核(C1V3)' => [ 'Teclast', 'A78h', DeviceType::TABLET ], + 'A80håŒæ ¸(A4P9)' => [ 'Teclast', 'A80h', DeviceType::TABLET ], + 'A80 se??(M5MA)' => [ 'Teclast', 'A80se', DeviceType::TABLET ], + 'A80 se四核(M5MC)' => [ 'Teclast', 'A80se', DeviceType::TABLET ], + 'A80HD四核(C4H6)' => [ 'Teclast', 'A80HD', DeviceType::TABLET ], + 'A88 mini四核(M1C5)' => [ 'Teclast', 'A88 mini', DeviceType::TABLET ], + 'G17(B5DV)' => [ 'Teclast', 'G17', DeviceType::TABLET ], + 'G17(B7DV)' => [ 'Teclast', 'G17', DeviceType::TABLET ], + 'G17h 3G??(K5E2)' => [ 'Teclast', 'G17h', DeviceType::TABLET ], + 'G17h 3G??(K6E2' => [ 'Teclast', 'G17h', DeviceType::TABLET ], + 'G17h 3G四核(K5E2)' => [ 'Teclast', 'G17h', DeviceType::TABLET ], + 'G17h 3G四核(K6E2)' => [ 'Teclast', 'G17h', DeviceType::TABLET ], + 'G17s 3G' => [ 'Teclast', 'G17s', DeviceType::TABLET ], + 'G17s 3G??(K5E5)' => [ 'Teclast', 'G17s', DeviceType::TABLET ], + 'G17s 3G四核(K5E5)' => [ 'Teclast', 'G17s', DeviceType::TABLET ], + 'G17s 3G四核(K5E4)' => [ 'Teclast', 'G17s', DeviceType::TABLET ], + 'G17s 3G四核(K5E3)' => [ 'Teclast', 'G17s', DeviceType::TABLET ], + 'G18 3G四核(C6B9)' => [ 'Teclast', 'G18', DeviceType::TABLET ], + 'G18mini(C5B9)' => [ 'Teclast', 'G18 mini', DeviceType::TABLET ], + 'G18d 3G四核(D3A2)' => [ 'Teclast', 'G18d', DeviceType::TABLET ], + 'G18d mini(FV2C)' => [ 'Teclast', 'G18d mini', DeviceType::TABLET ], + 'P10HD??(E6NA)' => [ 'Teclast', 'P10HD', DeviceType::TABLET ], + 'P11HD' => [ 'Teclast', 'P11HD', DeviceType::TABLET ], + 'P11HD四核(G9X6)' => [ 'Teclast', 'P11HD', DeviceType::TABLET ], + 'P11HD??(G9X6)' => [ 'Teclast', 'P11HD', DeviceType::TABLET ], + 'P11HD四核(G9X7)' => [ 'Teclast', 'P11HD', DeviceType::TABLET ], + 'P19HD(E1K3)' => [ 'Teclast', 'P19HD', DeviceType::TABLET ], + 'P19HD(E1K5)' => [ 'Teclast', 'P19HD', DeviceType::TABLET ], + 'P70 3Gå…«æ ¸(C2B7)' => [ 'Teclast', 'P70 3G', DeviceType::TABLET ], + 'P70h(A5C2)' => [ 'Teclast', 'P70h', DeviceType::TABLET ], + 'P72' => [ 'Teclast', 'P72', DeviceType::TABLET ], + 'P72w' => [ 'Teclast', 'P72w', DeviceType::TABLET ], + 'P75a(G7E3)' => [ 'Teclast', 'P75a', DeviceType::TABLET ], + 'P75HD(M3E5)' => [ 'Teclast', 'P75HD', DeviceType::TABLET ], + 'P76a(K3G5)' => [ 'Teclast', 'P76a', DeviceType::TABLET ], + 'P76aåŒæ ¸(M4Q5)' => [ 'Teclast', 'P76a', DeviceType::TABLET ], + 'Teclast P76e!' => [ 'Teclast', 'P76e', DeviceType::TABLET ], + 'P76e(A3E1)' => [ 'Teclast', 'P76e', DeviceType::TABLET ], + 'P76e(G6R8)' => [ 'Teclast', 'P76e', DeviceType::TABLET ], + 'P76håŒæ ¸(K8V1)' => [ 'Teclast', 'P76h', DeviceType::TABLET ], + 'P76såŒæ ¸(DKH5)' => [ 'Teclast', 'P76s', DeviceType::TABLET ], + 'P76TI' => [ 'Teclast', 'P76Ti', DeviceType::TABLET ], + 'P76v(A3V5)' => [ 'Teclast', 'P76v', DeviceType::TABLET ], + 'P78åŒæ ¸(G1M5)' => [ 'Teclast', 'P78', DeviceType::TABLET ], + 'P78s(G1M5)' => [ 'Teclast', 'P78s', DeviceType::TABLET ], + 'P78s(G1M6)' => [ 'Teclast', 'P78s', DeviceType::TABLET ], + 'P78s(G1M7)' => [ 'Teclast', 'P78s', DeviceType::TABLET ], + 'P78HD四核(C4A5)' => [ 'Teclast', 'P78HD', DeviceType::TABLET ], + 'P78HD??(C4A5)' => [ 'Teclast', 'P78HD', DeviceType::TABLET ], + 'P79HD(A3V9)' => [ 'Teclast', 'P79HD', DeviceType::TABLET ], + 'P79HD 3G(C4K5)' => [ 'Teclast', 'P79HD 3G', DeviceType::TABLET ], + 'P80 四核 (BV8K)' => [ 'Teclast', 'P80', DeviceType::TABLET ], + 'P80 四核 (BV9K)' => [ 'Teclast', 'P80', DeviceType::TABLET ], + 'P80s 四核(EF6W)' => [ 'Teclast', 'P80s', DeviceType::TABLET ], + 'P80 3G四核 (B1KC)' => [ 'Teclast', 'P80 3G', DeviceType::TABLET ], + 'P80 3G四核 (B4KC)' => [ 'Teclast', 'P80 3G', DeviceType::TABLET ], + 'P80 3Gå…«æ ¸(A4LL)' => [ 'Teclast', 'P80 3G', DeviceType::TABLET ], + 'P80 3Gå…«æ ¸(A5LL)' => [ 'Teclast', 'P80 3G', DeviceType::TABLET ], + 'P80 3Gå…«æ ¸(A6LL)' => [ 'Teclast', 'P80 3G', DeviceType::TABLET ], + 'P80 4G(K2G3)' => [ 'Teclast', 'P80 4G', DeviceType::TABLET ], + 'P81HD' => [ 'Teclast', 'P81HD', DeviceType::TABLET ], + 'P85(A9D3)' => [ 'Teclast', 'P85', DeviceType::TABLET ], + 'P85(A9D5)' => [ 'Teclast', 'P85', DeviceType::TABLET ], + 'P85(R8A1)' => [ 'Teclast', 'P85', DeviceType::TABLET ], + 'Teclast P85!' => [ 'Teclast', 'P85', DeviceType::TABLET ], + 'P85mini(DT8W)' => [ 'Teclast', 'P85 mini', DeviceType::TABLET ], + 'P85s mini(EWE8)' => [ 'Teclast', 'P85s mini', DeviceType::TABLET ], + 'P85t mini(KW8P)' => [ 'Teclast', 'P85t mini', DeviceType::TABLET ], + 'P85HDåŒæ ¸(K6N2)' => [ 'Teclast', 'P85HD', DeviceType::TABLET ], + 'P86(F8G6)' => [ 'Teclast', 'P86', DeviceType::TABLET ], + 'P88åŒæ ¸(H3D7)' => [ 'Teclast', 'P88', DeviceType::TABLET ], + 'P88(H3D7)' => [ 'Teclast', 'P88', DeviceType::TABLET ], + 'P88(GT4K)' => [ 'Teclast', 'P88', DeviceType::TABLET ], + 'P88s mini??(F2V6)' => [ 'Teclast', 'P88s mini', DeviceType::TABLET ], + 'P88s mini四核(F2V7)' => [ 'Teclast', 'P88s mini', DeviceType::TABLET ], + 'P88HD(C5GV)' => [ 'Teclast', 'P88HD', DeviceType::TABLET ], + 'P89 3Gå…«æ ¸(D1H8)' => [ 'Teclast', 'P89 3G', DeviceType::TABLET ], + 'P89 3Gk8(D1H8)' => [ 'Teclast', 'P89 3G', DeviceType::TABLET ], + 'P89mini(E2W6)' => [ 'Teclast', 'P89 mini', DeviceType::TABLET ], + 'P89 mini(E2W6)' => [ 'Teclast', 'P89 mini', DeviceType::TABLET ], + 'P89s(F8A5)' => [ 'Teclast', 'P89s', DeviceType::TABLET ], + 'P89s mini(F8A2)' => [ 'Teclast', 'P89s mini', DeviceType::TABLET ], + 'P90(H3U6)' => [ 'Teclast', 'P90', DeviceType::TABLET ], + 'P90(H3U7)' => [ 'Teclast', 'P90', DeviceType::TABLET ], + 'P98(F2K9)' => [ 'Teclast', 'P98', DeviceType::TABLET ], + 'P98 å…«æ ¸(B9A3)' => [ 'Teclast', 'P98', DeviceType::TABLET ], + 'P98 3Gk8(A4HY)' => [ 'Teclast', 'P98', DeviceType::TABLET ], + 'P98 3G??(A4HY)' => [ 'Teclast', 'P98', DeviceType::TABLET ], + 'P98 3G(M1Q2)' => [ 'Teclast', 'P98 3G', DeviceType::TABLET ], + 'P98 3Gå…«æ ¸(A3HY)' => [ 'Teclast', 'P98 3G', DeviceType::TABLET ], + 'P98 3Gå…«æ ¸(A4HY)' => [ 'Teclast', 'P98 3G', DeviceType::TABLET ], + 'P98 4G??(A8H6)' => [ 'Teclast', 'P98 4G', DeviceType::TABLET ], + 'P98 Air?? (C6V8)' => [ 'Teclast', 'P98 Air', DeviceType::TABLET ], + 'P98Air(C6V8)' => [ 'Teclast', 'P98 Air', DeviceType::TABLET ], + 'P98HD(A2Q6)' => [ 'Teclast', 'P98HD', DeviceType::TABLET ], + 'P98HD+M6' => [ 'Teclast', 'P98HD', DeviceType::TABLET ], + 'P98T(K3C4)' => [ 'Teclast', 'P98T', DeviceType::TABLET ], + 'T98 4G??(C6R2)' => [ 'Teclast', 'T98', DeviceType::TABLET ], + 'T720 SE' => [ 'Teclast', 'T720', DeviceType::TABLET ], + 'T760 from moage.com' => [ 'Teclast', 'T760', DeviceType::TABLET ], + 'X10H(G3C5)' => [ 'Teclast', 'X10H', DeviceType::TABLET ], + 'X10HD 3G(M6K6)' => [ 'Teclast', 'X10HD 3G', DeviceType::TABLET ], + 'X16 Power(D6F7)' => [ 'Teclast', 'X16 Power', DeviceType::TABLET ], + 'X16HD (K3J3)' => [ 'Teclast', 'X16HD', DeviceType::TABLET ], + 'X16HD 3G(M5J5)' => [ 'Teclast', 'X16HD 3G', DeviceType::TABLET ], + 'X70 3G (C5D9)' => [ 'Teclast', 'X70 3G', DeviceType::TABLET ], + 'X70 R(C7F9)' => [ 'Teclast', 'X70 R', DeviceType::TABLET ], + 'X80(C4M5)' => [ 'Teclast', 'X80', DeviceType::TABLET ], + 'Teclast X80h' => [ 'Teclast', 'X80h', DeviceType::TABLET ], + 'X80h' => [ 'Teclast', 'X80h', DeviceType::TABLET ], + 'X80h(FB5M)' => [ 'Teclast', 'X80h', DeviceType::TABLET ], + 'X80h(FB6M)' => [ 'Teclast', 'X80h', DeviceType::TABLET ], + 'X80HD(G2N5)' => [ 'Teclast', 'X80HD', DeviceType::TABLET ], + 'X80HD(G2N6)' => [ 'Teclast', 'X80HD', DeviceType::TABLET ], + 'X80HD(G2N8)' => [ 'Teclast', 'X80HD', DeviceType::TABLET ], + 'X80HD(G2N9)' => [ 'Teclast', 'X80HD', DeviceType::TABLET ], + 'X81-8G3D' => [ 'Teclast', 'X81', DeviceType::TABLET ], + 'X89 (E7ED)' => [ 'Teclast', 'X89', DeviceType::TABLET ], + 'X89HD (H21C)' => [ 'Teclast', 'X89HD', DeviceType::TABLET ], + 'X90HD (M2PC)' => [ 'Teclast', 'X90HD', DeviceType::TABLET ], + 'X98 3G(HKC1)' => [ 'Teclast', 'X98 3G', DeviceType::TABLET ], + 'X98 3G(HKC2)' => [ 'Teclast', 'X98 3G', DeviceType::TABLET ], + 'X98 3G(HKC3)' => [ 'Teclast', 'X98 3G', DeviceType::TABLET ], + 'X98 3G(lite)' => [ 'Teclast', 'X98 3G', DeviceType::TABLET ], + 'X98 Air(C5KN)' => [ 'Teclast', 'X98 Air', DeviceType::TABLET ], + 'X98 Air 3G' => [ 'Teclast', 'X98 Air 3G', DeviceType::TABLET ], + 'X98 Air 3G(Smile)' => [ 'Teclast', 'X98 Air 3G', DeviceType::TABLET ], + 'X98 Air 3G(C5J5)' => [ 'Teclast', 'X98 Air 3G', DeviceType::TABLET ], + 'X98 Air 3G(C5J6)' => [ 'Teclast', 'X98 Air 3G', DeviceType::TABLET ], + 'X98 Air 3G(C5J8)' => [ 'Teclast', 'X98 Air 3G', DeviceType::TABLET ], + 'X98 Air 3G(C6J6)' => [ 'Teclast', 'X98 Air 3G', DeviceType::TABLET ], + 'X98 Air 3G(C8J6)' => [ 'Teclast', 'X98 Air 3G', DeviceType::TABLET ], + 'X98 Air 3G(C8J7)' => [ 'Teclast', 'X98 Air 3G', DeviceType::TABLET ], + 'X98 Air 3G(C9J6)' => [ 'Teclast', 'X98 Air 3G', DeviceType::TABLET ], + 'X98 Air 3G(C9J7)' => [ 'Teclast', 'X98 Air 3G', DeviceType::TABLET ], + 'X98 Air 3G(C9J8)' => [ 'Teclast', 'X98 Air 3G', DeviceType::TABLET ], + 'X98 Air II' => [ 'Teclast', 'X98 Air II', DeviceType::TABLET ], + 'X98 Air II(HG5N)' => [ 'Teclast', 'X98 Air II', DeviceType::TABLET ], + 'X98 Air II(HG6M)' => [ 'Teclast', 'X98 Air II', DeviceType::TABLET ], + 'X98 Air II(HG7N)' => [ 'Teclast', 'X98 Air II', DeviceType::TABLET ], + 'X98 Air II(HG9M)' => [ 'Teclast', 'X98 Air II', DeviceType::TABLET ], + 'X98 Air II(HG9N)' => [ 'Teclast', 'X98 Air II', DeviceType::TABLET ], + 'X98 Air III' => [ 'Teclast', 'X98 Air III', DeviceType::TABLET ], + 'X98 Air III(M5C5)' => [ 'Teclast', 'X98 Air III', DeviceType::TABLET ], + 'X98 Air III(M5C6)' => [ 'Teclast', 'X98 Air III', DeviceType::TABLET ], + 'X98 Pro (K9C6)' => [ 'Teclast', 'X98 Pro', DeviceType::TABLET ], + 'tegav2' => [ 'Tegatech', 'TEGA v2', DeviceType::TABLET ], + 'Tele2fon V3' => [ 'Tele2fon', 'v3' ], + 'Tele2fon v5' => [ 'Tele2fon', 'v5' ], + 'TELEFUNKEN Diamond TD1' => [ 'Telefunken', 'Diamond TD1' ], + 'Telpad Dual S' => [ 'Telpad', 'Dual S', DeviceType::TABLET ], + 'Telpad Quad S' => [ 'Telpad', 'Quad S', DeviceType::TABLET ], + 'Telpad QS' => [ 'Telpad', 'Quad S', DeviceType::TABLET ], + 'T3696' => [ 'Telsda', 'T3696' ], + 'Tensent S9000' => [ 'Tensent', 'S9000' ], + 'Hudl HT7S3' => [ 'Tesco', 'Hudl', DeviceType::TABLET ], + 'Hudl 2' => [ 'Tesco', 'Hudl 2', DeviceType::TABLET ], + 'TM-3200R' => [ 'teXet', 'TM-3200R' ], + 'TM-3204R' => [ 'teXet', 'TM-3204R' ], + 'teXet X-alpha' => [ 'teXet', 'X-alpha TM-3521' ], + 'TM-4004' => [ 'teXet', 'TM-4004' ], + 'X-basic' => [ 'teXet', 'X-basic TM-4072' ], + 'X-basic2' => [ 'teXet', 'X-basic2 TM-4272' ], + 'TM-4377' => [ 'teXet', 'TM-4377' ], + 'X-maxi' => [ 'teXet', 'X-maxi TM-5172' ], + 'X-medium' => [ 'teXet', 'X-medium TM-4572' ], + 'teXet iX-mini' => [ 'teXet', 'iX-mini TM-4182' ], + 'TM-4515' => [ 'teXet', 'X-style TM-4515' ], + 'TM-4577' => [ 'teXet', 'TM-4577' ], + 'teXet X-navi' => [ 'teXet', 'X-navi TM-4672' ], + 'TEXET TM-4677' => [ 'teXet', 'TM-4677' ], + 'TM-4677' => [ 'teXet', 'TM-4677' ], + 'TM-5200' => [ 'teXet', 'TM-5200' ], + 'TM-5377' => [ 'teXet', 'TM-5377' ], + 'TM-7011' => [ 'teXet', 'TM-7011', DeviceType::TABLET ], + 'TM-7016' => [ 'teXet', 'TM-7016', DeviceType::TABLET ], + 'TM-7021' => [ 'teXet', 'TM-7021', DeviceType::TABLET ], + 'TM-7023' => [ 'teXet', 'TM-7023', DeviceType::TABLET ], + 'TM-7024' => [ 'teXet', 'TM-7024', DeviceType::TABLET ], + 'TM-7025' => [ 'teXet', 'TM-7025', DeviceType::TABLET ], + 'TM-7026' => [ 'teXet', 'TM-7026', DeviceType::TABLET ], + 'TM-7026 (revision 4)' => [ 'teXet', 'TM-7026', DeviceType::TABLET ], + 'TM-7037W' => [ 'teXet', 'TM-7037W', DeviceType::TABLET ], + 'TM-7038W' => [ 'teXet', 'TM-7038W', DeviceType::TABLET ], + 'TM-7041' => [ 'teXet', 'TM-7041', DeviceType::TABLET ], + 'TM-7043XD' => [ 'teXet', 'TM-7043XD', DeviceType::TABLET ], + 'TM-7047HD 3G' => [ 'teXet', 'TM-7047HD', DeviceType::TABLET ], + 'NaviPad TM-7055HD 3G' => [ 'teXet', 'NaviPad HD TM-7055', DeviceType::TABLET ], + 'TM-7096' => [ 'teXet', 'X-pad NAVI 7.3 TM-7096', DeviceType::TABLET ], + 'TM-7854' => [ 'teXet', 'TM-7854', DeviceType::TABLET ], + 'NaviPad TM-7855 3G' => [ 'teXet', 'NaviPad TM-7855', DeviceType::TABLET ], + 'NaviPad TM-7858 3G (revision 1)' => [ 'teXet', 'NaviPad TM-7858', DeviceType::TABLET ], + 'TM-8041HD' => [ 'teXet', 'TM-8041HD', DeviceType::TABLET ], + 'TM-8051' => [ 'teXet', 'X-pad FORCE 8i TM-8051', DeviceType::TABLET ], + 'TM-9720' => [ 'teXet', 'TM-9720', DeviceType::TABLET ], + 'TM-9725' => [ 'teXet', 'TM-9725', DeviceType::TABLET ], + 'TM-9740' => [ 'teXet', 'TM-9740', DeviceType::TABLET ], + 'TM-9741' => [ 'teXet', 'TM-9741', DeviceType::TABLET ], + 'TM-9743W' => [ 'teXet', 'TM-9743W', DeviceType::TABLET ], + 'TM-9747!' => [ 'teXet', 'TM-9747', DeviceType::TABLET ], + 'TM-9748 3G' => [ 'teXet', 'TM-9748', DeviceType::TABLET ], + 'TM-9750HD' => [ 'teXet', 'TM-9750HD', DeviceType::TABLET ], + 'TM-9751HD' => [ 'teXet', 'TM-9751HD', DeviceType::TABLET ], + 'TM-9757' => [ 'teXet', 'TM-9757', DeviceType::TABLET ], + 'TM-9757 3G rev1' => [ 'teXet', 'TM-9757', DeviceType::TABLET ], + 'TM-9767' => [ 'teXet', 'X-pad STYLE 10 TM-9767', DeviceType::TABLET ], + 'TM-1058' => [ 'teXet', 'X-force 10 TM-1058', DeviceType::TABLET ], + 'EVERY35' => [ 'Thomson', 'Every35' ], + + 'TLINK[0-9]{3,3}!!' => [ + 'TLINK350' => [ 'Thomson', 'Tlink350' ], + 'TLINK351' => [ 'Thomson', 'Tlink351' ], + 'TLINK355' => [ 'Thomson', 'Tlink355' ], + 'TLINK405' => [ 'Thomson', 'Tlink405' ], + 'TLINK455' => [ 'Thomson', 'Tlink455' ], + 'TLINK475' => [ 'Thomson', 'Tlink475' ], + ], + + 'MoFing' => [ 'Thomson', 'MoFing', DeviceType::TABLET ], + '8950' => [ 'Thomson', '3G 8950', DeviceType::TABLET ], + 'PRIMO7' => [ 'Thomson', 'Primo 7', DeviceType::TABLET ], + 'PRIMO8' => [ 'Thomson', 'Primo 8', DeviceType::TABLET ], + 'QM734-8G' => [ 'Thomson', 'QM734-8G', DeviceType::TABLET ], + 'QM735-8G' => [ 'Thomson', 'QM735-8G', DeviceType::TABLET ], + + '(CJ-)?ThL!!' => [ + 'ThL A1' => [ 'THL', 'A1' ], + 'ThL A2' => [ 'THL', 'A2' ], + 'ThL-I95' => [ 'THL', 'I95' ], + 'ThL T1' => [ 'THL', 'T1' ], + 'ThL T3' => [ 'THL', 'T3' ], + 'thl T5' => [ 'THL', 'T5' ], + 'THL T5S' => [ 'THL', 'T5S' ], + 'thl T6 pro' => [ 'THL', 'T6 Pro' ], + 'thl T6C' => [ 'THL', 'T6C' ], + 'thl T6S' => [ 'THL', 'T6S' ], + 'thl T11' => [ 'THL', 'T11' ], + 'thl T12' => [ 'THL', 'T12' ], + 'thl T100' => [ 'THL', 'T100' ], + 'thl T100S' => [ 'THL', 'T100S' ], + 'thl T100S' => [ 'THL', 'T100S' ], + 'ThL V7' => [ 'THL', 'V7' ], + 'ThL V8' => [ 'THL', 'V8' ], + 'ThL V9' => [ 'THL', 'V9' ], + 'ThL V11' => [ 'THL', 'V11' ], + 'CJ-ThL V11' => [ 'THL', 'V11' ], + 'ThL V12' => [ 'THL', 'V12' ], + 'ThL W1' => [ 'THL', 'W1' ], + 'CJ-ThL W1' => [ 'THL', 'W1' ], + 'ThL W1+' => [ 'THL', 'W1+' ], + 'ThL W2' => [ 'THL', 'W2' ], + 'CJ-ThL W2' => [ 'THL', 'W2' ], + 'ThL W3' => [ 'THL', 'W3' ], + 'ThL W3dc' => [ 'THL', 'W3' ], + 'ThL W3 (Dual Core)' => [ 'THL', 'W3' ], + 'ThL W3+ (Dual Core)' => [ 'THL', 'W3+' ], + 'ThL W5' => [ 'THL', 'W5' ], + 'ThL W6' => [ 'THL', 'W6' ], + 'ThL W7' => [ 'THL', 'W7' ], + 'THL W7s' => [ 'THL', 'W7s' ], + 'ThL W8' => [ 'THL', 'W8' ], + 'ThL W8s' => [ 'THL', 'W8s' ], + 'ThL W9' => [ 'THL', 'W9' ], + 'ThL W11' => [ 'THL', 'W11' ], + 'Thl w100' => [ 'THL', 'W100' ], + 'THL W200' => [ 'THL', 'W200' ], + 'ThL W200C' => [ 'THL', 'W200c' ], + 'ThL W200S' => [ 'THL', 'W200s' ], + 'ThL W300' => [ 'THL', 'W300' ], + 'thl 2015' => [ 'THL', '2015' ], + 'thl 4000' => [ 'THL', '4000' ], + 'thl 4400' => [ 'THL', '4400' ], + 'thl 5000' => [ 'THL', '5000' ], + ], + + 'W8 beyond' => [ 'THL', 'W8 beyond' ], + 'W100' => [ 'THL', 'W100' ], + + 'TizzBird!!' => [ + 'TizzBird N1G' => [ 'TizzBird', 'N1', DeviceType::TELEVISION ], + 'TizzBird S20A' => [ 'TizzBird', 'S20A', DeviceType::TELEVISION ], + 'TizzBird S20T' => [ 'TizzBird', 'S20T', DeviceType::TELEVISION ], + ], + + 'MagicBox' => [ 'Tmall', 'MagicBox', DeviceType::TELEVISION ], + + 'tolino tab!!' => [ + 'tolino tab 7' => [ 'Tolino', 'Tab 7', DeviceType::TABLET ], + 'tolino tab 8' => [ 'Tolino', 'Tab 8', DeviceType::TABLET ], + 'tolino tab 8.9' => [ 'Tolino', 'Tab 8.9', DeviceType::TABLET ], + ], + + 'ATP7526' => [ 'Tomtec', 'Ultimate10', DeviceType::TABLET ], + 'ATP7683' => [ 'Tomtec', 'Ultimate10', DeviceType::TABLET ], + 'Ultimate10' => [ 'Tomtec', 'Ultimate10', DeviceType::TABLET ], + 'Ultimate10-Android4.0' => [ 'Tomtec', 'Ultimate10', DeviceType::TABLET ], + 'Ultimate 10' => [ 'Tomtec', 'Ultimate10', DeviceType::TABLET ], + + 'TomTom Bridge' => [ 'TomTom', 'Bridge', DeviceType::CAR ], + 'TomTom PRO 8275' => [ 'TomTom', 'PRO 8275', DeviceType::CAR ], + + 'TOOKY!!' => [ + 'TOOKY A9' => [ 'Tooky', 'A9' ], + 'TOOKY A9PLUS' => [ 'Tooky', 'A9 Plus' ], + 'TOOKY A19PLUS' => [ 'Tooky', 'A19 Plus' ], + 'TOOKY A81' => [ 'Tooky', 'A81' ], + 'TOOKY A110' => [ 'Tooky', 'A110' ], + 'TOOKY K1' => [ 'Tooky', 'K1' ], + 'TOOKY T83' => [ 'Tooky', 'T83' ], + 'TOOKY T85' => [ 'Tooky', 'T85' ], + 'TOOKY T88' => [ 'Tooky', 'T88' ], + 'TOOKY T1981' => [ 'Tooky', 'T1981' ], + 'Tooky T1981+' => [ 'Tooky', 'T1981 Plus' ], + 'TOOKY T1981PLUS' => [ 'Tooky', 'T1981 Plus' ], + 'TOOKY T1982' => [ 'Tooky', 'T1982' ], + 'TOOKY T1992' => [ 'Tooky', 'T1992' ], + 'TOOKY W1' => [ 'Tooky', 'W1' ], + ], + + 'DROIDZ Duo' => [ 'Torque', 'DROIDZ Duo', DeviceType::TABLET ], + 'DROIDZ Duo' => [ 'Torque', 'DROIDZ Duo', DeviceType::TABLET ], + 'DROIDZ Active 3G' => [ 'Torque', 'DROIDZ Active', DeviceType::TABLET ], + 'DROIDZ ATOM S' => [ 'Torque', 'DROIDZ Atom S', DeviceType::TABLET ], + 'DROIDZ Beat TV' => [ 'Torque', 'DROIDZ Beat TV', DeviceType::TABLET ], + 'DROIDZ Drive+' => [ 'Torque', 'DROIDZ Drive+', DeviceType::TABLET ], + 'DROIDZ Duo' => [ 'Torque', 'DROIDZ Duo', DeviceType::TABLET ], + 'DROIDZ Excel' => [ 'Torque', 'DROIDZ Excel', DeviceType::TABLET ], + 'DROIDZ Excite' => [ 'Torque', 'DROIDZ Excite', DeviceType::TABLET ], + 'DROIDZ Force' => [ 'Torque', 'DROIDZ Force', DeviceType::TABLET ], + 'DROIDZ Match TV' => [ 'Torque', 'DROIDZ Match TV', DeviceType::TABLET ], + 'DROIDZ Mini Q' => [ 'Torque', 'DROIDZ Mini Q', DeviceType::TABLET ], + 'DROIDZ Portal X' => [ 'Torque', 'DROIDZ Portal X', DeviceType::TABLET ], + 'DROIDZ Quad' => [ 'Torque', 'DROIDZ Quad', DeviceType::TABLET ], + 'DROIDZ Race' => [ 'Torque', 'DROIDZ Race', DeviceType::TABLET ], + 'DROIDZ Race X' => [ 'Torque', 'DROIDZ Race X', DeviceType::TABLET ], + 'DROIDZ Sport' => [ 'Torque', 'DROIDZ Sport', DeviceType::TABLET ], + 'DROIDZ Ultimate' => [ 'Torque', 'DROIDZ Ultimate', DeviceType::TABLET ], + + 'TSB CLOUD COMPANION;TOSHIBA AC AND AZ' => [ 'Toshiba', 'Dynabook AZ', 'desktop' ], + 'TOSHIBA AC AND AZ' => [ 'Toshiba', 'Dynabook AZ', 'desktop' ], + 'TOSHIBA FOLIO AND A' => [ 'Toshiba', 'Folio 100', DeviceType::TABLET ], + 'T-01C' => [ 'Toshiba', 'REGZA Phone T-01C', 'carrier' => 'DoCoMo' ], + 'T-01D' => [ 'Toshiba', 'REGZA Phone T-01D', 'carrier' => 'DoCoMo' ], + 'T-02D' => [ 'Toshiba', 'REGZA Phone T-02D', 'carrier' => 'DoCoMo' ], + 'IS04' => [ 'Toshiba', 'REGZA Phone IS04', 'carrier' => 'au' ], + 'IS11T' => [ 'Toshiba', 'REGZA Phone IS11T', 'carrier' => 'au' ], + 'AT1S0' => [ 'Toshiba', 'Regza AT1S0' ], + 'AT7-A' => [ 'Toshiba', 'Excite AT7-A', DeviceType::TABLET ], + 'AT7-B' => [ 'Toshiba', 'Excite AT7-B', DeviceType::TABLET ], + 'AT7-C' => [ 'Toshiba', 'Excite AT7-C', DeviceType::TABLET ], + 'AT10-A' => [ 'Toshiba', 'Excite AT10-A', DeviceType::TABLET ], + 'AT10LE-A' => [ 'Toshiba', 'Excite AT10LE-A', DeviceType::TABLET ], + 'AT10PE-A' => [ 'Toshiba', 'Excite AT10PE-A', DeviceType::TABLET ], + 'Tostab03' => [ 'Toshiba', 'Regza AT100', DeviceType::TABLET ], + 'AT100' => [ 'Toshiba', 'Regza AT100', DeviceType::TABLET ], + 'AT200' => [ 'Toshiba', 'Regza AT200', DeviceType::TABLET ], + 'AT270' => [ 'Toshiba', 'Regza AT270', DeviceType::TABLET ], + 'AT300' => [ 'Toshiba', 'Regza AT300', DeviceType::TABLET ], + 'AT300SE' => [ 'Toshiba', 'Regza AT300SE', DeviceType::TABLET ], + 'AT330' => [ 'Toshiba', 'Regza AT330', DeviceType::TABLET ], + 'AT374' => [ 'Toshiba', 'Regza AT374', DeviceType::TABLET ], + 'AT400' => [ 'Toshiba', 'Regza AT400', DeviceType::TABLET ], + 'AT470' => [ 'Toshiba', 'Regza AT470', DeviceType::TABLET ], + 'AT500' => [ 'Toshiba', 'Regza AT500', DeviceType::TABLET ], + 'AT500a' => [ 'Toshiba', 'Regza AT500', DeviceType::TABLET ], + 'AT503' => [ 'Toshiba', 'Regza AT503', DeviceType::TABLET ], + 'AT570' => [ 'Toshiba', 'Regza AT570', DeviceType::TABLET ], + 'AT703' => [ 'Toshiba', 'Regza AT703', DeviceType::TABLET ], + 'AT830' => [ 'Toshiba', 'Regza AT830', DeviceType::TABLET ], + 'Folio 100' => [ 'Toshiba', 'Folio 100', DeviceType::TABLET ], + 'folio100' => [ 'Toshiba', 'Folio 100', DeviceType::TABLET ], + 'THRiVE' => [ 'Toshiba', 'THRiVE', DeviceType::TABLET ], + 'Hikari-iFrame!' => [ 'Toshiba', 'Hikari iFrame', DeviceType::TABLET, 'carrier' => 'NTT' ], + + 'Satellite!!' => [ + 'Satellite ([A-Z][0-9]{3,3}[A-Z]?)!' => [ 'Toshiba', 'Satellite $1', DeviceType::DESKTOP ], + 'Satellite ([A-Z][0-9]{2,2}-[A-Z]?)!' => [ 'Toshiba', 'Satellite $1', DeviceType::DESKTOP ], + 'Satellite Pro ([A-Z][0-9]{3,3})!' => [ 'Toshiba', 'Satellite Pro $1', DeviceType::DESKTOP ], + ], + + 'StarTab 715x' => [ 'Touch+', 'Startab 715', DeviceType::TABLET ], + 'TRACER OXYGEN GS1' => [ 'Tracer', 'Oxygen GS1' ], + + 'ST[0-9]{5,5}-[0-9]!!' => [ + 'ST70104-1!' => [ 'Trekstor', 'Surftab Breeze 7.0', DeviceType::TABLET ], + 'ST70104-2!' => [ 'Trekstor', 'Surftab Breeze 7.0', DeviceType::TABLET ], + 'ST70208-1!' => [ 'Trekstor', 'Surftab Ventos 7.0', DeviceType::TABLET ], + 'ST70208-2!' => [ 'Trekstor', 'Surftab Ventos 7.0', DeviceType::TABLET ], + 'ST70208-4!' => [ 'Trekstor', 'Surftab Ventos 7.0', DeviceType::TABLET ], + 'ST70216-1!' => [ 'Trekstor', 'Surftab Ventos 7.0', DeviceType::TABLET ], + 'ST80208-1!' => [ 'Trekstor', 'Surftab Ventos 8.0', DeviceType::TABLET ], + 'ST80208-2!' => [ 'Trekstor', 'Surftab Ventos 8.0', DeviceType::TABLET ], + 'ST80216-1!' => [ 'Trekstor', 'Surftab Ventos 8.0', DeviceType::TABLET ], + 'ST80216-2!' => [ 'Trekstor', 'Surftab Ventos 8.0', DeviceType::TABLET ], + 'ST97216-1!' => [ 'Trekstor', 'Surftab Ventos 9.7', DeviceType::TABLET ], + 'ST10216-2!' => [ 'Trekstor', 'Surftab Ventos 10.1', DeviceType::TABLET ], + 'ST10216-2!' => [ 'Trekstor', 'Surftab Ventos 10.1', DeviceType::TABLET ], + 'ST10216-3!' => [ 'Trekstor', 'Surftab Ventos 10.1', DeviceType::TABLET ], + 'ST70404-1!' => [ 'Trekstor', 'Surftab Xirion 7.0', DeviceType::TABLET ], + 'ST70408-1!' => [ 'Trekstor', 'Surftab Xirion 7.0', DeviceType::TABLET ], + 'ST10416-1!' => [ 'Trekstor', 'Surftab Xirion 10.1', DeviceType::TABLET ], + ], + + 'Trevi PHABLET 4C' => [ 'Trevi', 'Phablet 4C' ], + 'PHABLET 4S' => [ 'Trevi', 'Phablet 4S' ], + 'Phablet 4.5Q' => [ 'Trevi', 'Phablet 4.5Q' ], + 'Trevi PHABLET 5 S' => [ 'Trevi', 'Phablet 5S' ], + + 'TREQ!!' => [ + 'TREQ A10C' => [ 'Treq', 'A10C', DeviceType::TABLET ], + 'TREQ A10C 2' => [ 'Treq', 'A10C 2', DeviceType::TABLET ], + 'TREQ A10G 3G' => [ 'Treq', 'A10G', DeviceType::TABLET ], + 'treq A10G Duo' => [ 'Treq', 'A10G', DeviceType::TABLET ], + 'TREQ A10 basic' => [ 'Treq', 'Basic', DeviceType::TABLET ], + 'TREQ Basic 2' => [ 'Treq', 'Basic 2', DeviceType::TABLET ], + 'Treq 3G Basic 2' => [ 'Treq', 'Basic 2', DeviceType::TABLET ], + 'Treq Basic 2K-8' => [ 'Treq', 'Basic 2K', DeviceType::TABLET ], + 'TREQ A10 Basic 2+' => [ 'Treq', 'Basic 2+', DeviceType::TABLET ], + 'TREQ basic 3' => [ 'Treq', 'Basic 3', DeviceType::TABLET ], + 'Treq 3G Basic 3' => [ 'Treq', 'Basic 3', DeviceType::TABLET ], + 'Treq A10 Pocket' => [ 'Treq', 'Pocket', DeviceType::TABLET ], + 'TREQ A10 Pocket2' => [ 'Treq', 'Pocket 2', DeviceType::TABLET ], + 'TREQ Tune Z' => [ 'Treq', 'Tune Z', DeviceType::TABLET ], + 'TREQ Turbo' => [ 'Treq', 'Turbo', DeviceType::TABLET ], + 'TREQ-TURBO' => [ 'Treq', 'Turbo', DeviceType::TABLET ], + 'TREQ 3G Turbo' => [ 'Treq', 'Turbo', DeviceType::TABLET ], + ], + + 'Phablet 5,3 Q' => [ 'Trevi', 'Phablet 5.3 Q' ], + 'Trevi REVERSE 5.5Q' => [ 'Trevi', 'Phablet 5.5 Q REVERSE' ], + 'Trevi PHABLET 6 S' => [ 'Trevi', 'Phablet 6 S' ], + 'TAB 7 3G V8' => [ 'Trevi', 'Tab 7 V8', DeviceType::TABLET ], + 'TAB 8 3G V8' => [ 'Trevi', 'Tab 8 V8', DeviceType::TABLET ], + 'TAB9 3G' => [ 'Trevi', 'Tab 9', DeviceType::TABLET ], + 'TAB9 3G V8' => [ 'Trevi', 'Tab 9 V8', DeviceType::TABLET ], + 'TAB 10 3G V16' => [ 'Trevi', 'Tab 10 V16', DeviceType::TABLET ], + 'Turbo-X pi' => [ 'Turbo-X', 'Pi' ], + 'Turbo-X Ice' => [ 'Turbo-X', 'Ice', DeviceType::TABLET ], + 'Turbo-X Tablet Spice III' => [ 'Turbo-X', 'Spice III', DeviceType::TABLET ], + 'SPICE IV' => [ 'Turbo-X', 'Spice IV', DeviceType::TABLET ], + 'NuclearSX-SP5' => [ 'TVC', 'Nuclear SX-SP5' ], + + '(Amazing|Fantastic)!!' => [ + 'Amazing A1' => [ 'TWM', 'Amazing A1' ], + 'Amazing A3' => [ 'TWM', 'Amazing A3' ], + 'Amazing A4' => [ 'TWM', 'Amazing A4' ], + 'Amazing A4C' => [ 'TWM', 'Amazing A4C' ], + 'Amazing A4S' => [ 'TWM', 'Amazing A4S' ], + 'Amazing A5S' => [ 'TWM', 'Amazing A5S' ], + 'Amazing A6' => [ 'TWM', 'Amazing A6' ], + 'Amazing A7' => [ 'TWM', 'Amazing A7' ], + 'Amazing A8' => [ 'TWM', 'Amazing A8' ], + 'Amazing P6' => [ 'TWM', 'Amazing P6' ], + 'Amazing X1' => [ 'TWM', 'Amazing X1' ], + 'Amazing X2' => [ 'TWM', 'Amazing X2' ], + 'Amazing X3' => [ 'TWM', 'Amazing X3' ], + 'Amazing X5' => [ 'TWM', 'Amazing X5' ], + 'Fantastic T3' => [ 'TWM', 'Fantastic T3' ], + ], + + 'A6S' => [ 'TWM', 'Amazing A6S' ], + 'TB100' => [ 'Unitech', 'TB100', DeviceType::TABLET ], + 'M70014' => [ 'United Star Technology', 'M70014', DeviceType::TABLET ], + 'QOOQ' => [ 'Unowhy', 'QOOQ', DeviceType::TABLET ], + + 'UMI!!' => [ + 'UMI C1' => [ 'UMI', 'C1' ], + 'UMI S1' => [ 'UMI', 'S1' ], + 'UMI X1' => [ 'UMI', 'X1' ], + 'UMI X1S' => [ 'UMI', 'X1s' ], + 'UMI X2' => [ 'UMI', 'X2' ], + 'UMI-X2' => [ 'UMI', 'X2' ], + 'UMI X3' => [ 'UMI', 'X3' ], + ], + + 'U1203' => [ 'Uniscope', 'U1203' ], + + 'Unusual!!' => [ + 'UNUSUAL U7X' => [ 'Unusual', 'U7X', DeviceType::TABLET ], + 'Unusual U10Z' => [ 'Unusual', 'U10Z', DeviceType::TABLET ], + 'UNUSUAL 10X' => [ 'Unusual', '10X', DeviceType::TABLET ], + 'Unusual 10Z' => [ 'Unusual', '10Z', DeviceType::TABLET ], + ], + + 'UOOGOU!!' => [ + 'UOOGOU Q6' => [ 'Uoogou', 'Q6' ], + 'UOOGOU Q7' => [ 'Uoogou', 'Q7' ], + 'UOOGOU-Q9' => [ 'Uoogou', 'Q9' ], + 'UOOGOU R5' => [ 'Uoogou', 'R5' ], + 'UOOGOU X3' => [ 'Uoogou', 'X3' ], + 'UOOGOU X5' => [ 'Uoogou', 'X5' ], + 'UOOGOU X6' => [ 'Uoogou', 'X6' ], + ], + + 'UTime!!' => [ + 'UTime i8' => [ 'UTime', 'i8' ], + 'UTime U100' => [ 'UTime', 'U100' ], + 'UTime X1' => [ 'UTime', 'X1' ], + ], + + 'Usmart!!' => [ + 'USmart CL600' => [ 'USmart', 'CL600' ], + 'Usmart F450' => [ 'USmart', 'F450' ], + 'Usmart-F450' => [ 'USmart', 'F450' ], + ], + + 'KUNO4' => [ 'uWriteTouch', 'KUNO 4', DeviceType::TABLET ], + 'KUNO 4+' => [ 'uWriteTouch', 'KUNO 4+', DeviceType::TABLET ], + + 'PS47' => [ 'Velocity Micro', 'Cruz PS47', DeviceType::TABLET ], + 'T301' => [ 'Velocity Micro', 'Cruz T301', DeviceType::TABLET ], + + 'VS TOUCH!!' => [ + 'VS TOUCHPAD9 A' => [ 'Versus', 'Touchpad 9', DeviceType::TABLET ], + 'Vs TOUCHPAD 9.7' => [ 'Versus', 'Touchpad 9.7', DeviceType::TABLET ], + 'VS TOUCHTAB 7DC' => [ 'Versus', 'Touchtab 7 Dual Core', DeviceType::TABLET ], + 'VS TOUCHTAB 7DC V' => [ 'Versus', 'Touchtab 7 Dual Core', DeviceType::TABLET ], + 'VS TOUCHTAB 8DC' => [ 'Versus', 'Touchtab 8 Dual Core', DeviceType::TABLET ], + 'VS TOUCHTAB 9' => [ 'Versus', 'Touchtab 9', DeviceType::TABLET ], + 'VS TOUCHTAB 10.1DC' => [ 'Versus', 'Touchtab 10.1 Dual Core', DeviceType::TABLET ], + ], + + 'verykool!!' => [ + 'verykool RS75' => [ 'verykool', 'Flint RS75' ], + 'verykool RS90' => [ 'verykool', 'Vortex RS90' ], + 'verykool S352' => [ 'verykool', 'Jasper II s352' ], + 'verykool S354' => [ 'verykool', 'Mystic s354' ], + 'verykool S400T' => [ 'verykool', 'Ruby s400' ], + 'verykool S401' => [ 'verykool', 'Aura s401' ], + 'verykool s505' => [ 'verykool', 'Spark s505' ], + 'verykool s4510u' => [ 'verykool', 'Luna s4510' ], + 'verykool Sol Quatro s5016' => [ 'verykool', 'Sol Quattro s5016' ], + 'verykool Helix s5025' => [ 'verykool', 'Helix s5025' ], + 'verykool s5510' => [ 'verykool', 'Juno s5510' ], + 'verykool Fusion II SL4502' => [ 'verykool', 'Fusion II SL4502' ], + 'verykool T742' => [ 'verykool', 'Kolorpad T742', DeviceType::TABLET ], + ], + + 's732' => [ 'verykool', 's732' ], + + 'Aster' => [ 'Vertu', 'Aster' ], + 'Aster T' => [ 'Vertu', 'Aster T' ], + 'Vertu Aster T' => [ 'Vertu', 'Aster T' ], + 'Constellation V' => [ 'Vertu', 'Constellation V' ], + 'Signature Touch' => [ 'Vertu', 'Signature Touch' ], + 'Signature Touch L' => [ 'Vertu', 'Signature Touch L' ], + 'VERTU Ti' => [ 'Vertu', 'Ti' ], + + 'VT6078' => [ 'VIA', 'ALTA DS', DeviceType::SIGNAGE ], + 'victorys s8' => [ 'Victory\'s', 'S8' ], + 'Victorys V8' => [ 'Victory\'s', 'V8' ], + + 'Videocon!!' => [ + 'Videocon A10' => [ 'Videocon', 'A10' ], + 'Videocon A15' => [ 'Videocon', 'A15' ], + 'Videocon A20' => [ 'Videocon', 'A20' ], + 'Videocon A22' => [ 'Videocon', 'A22' ], + 'Videocon A26' => [ 'Videocon', 'A26' ], + 'Videocon A27' => [ 'Videocon', 'A27' ], + 'Videocon A27i' => [ 'Videocon', 'A27i' ], + 'Videocon A30' => [ 'Videocon', 'A30' ], + 'Videocon A45' => [ 'Videocon', 'A45' ], + 'Videocon A47' => [ 'Videocon', 'A47' ], + 'Videocon A51' => [ 'Videocon', 'A51' ], + 'Videocon A54' => [ 'Videocon', 'A54' ], + 'Videocon V7400' => [ 'Videocon', 'V7400' ], + 'Videocon v7500' => [ 'Videocon', 'V7500' ], + 'Videocon-V7500' => [ 'Videocon', 'V7500' ], + 'Videocon VT85C' => [ 'Videocon', 'VT85C' ], + ], + + 'VT75C' => [ 'Videocon', 'VT75C' ], + + 'ViewSonic-V350' => [ 'ViewSonic', 'V350' ], + 'ViewPhone3' => [ 'ViewSonic', 'ViewPhone 3' ], + 'GTablet' => [ 'ViewSonic', 'gTablet', DeviceType::TABLET ], + 'GtabComb' => [ 'ViewSonic', 'gTablet', DeviceType::TABLET ], + 'TeamDRH ICS for GTablet' => [ 'ViewSonic', 'gTablet', DeviceType::TABLET ], + 'ViewPad 4' => [ 'ViewSonic', 'ViewPad 4', DeviceType::MEDIA ], + 'ViewSonic-ViewPad4' => [ 'ViewSonic', 'ViewPad 4', DeviceType::MEDIA ], + 'ViewPad7' => [ 'ViewSonic', 'ViewPad 7', DeviceType::TABLET ], + 'ViewPad 7D' => [ 'ViewSonic', 'ViewPad 7d', DeviceType::TABLET ], + 'ViewPad 7D Pro' => [ 'ViewSonic', 'ViewPad 7d Pro', DeviceType::TABLET ], + 'ViewSonic-ViewPad7e' => [ 'ViewSonic', 'ViewPad 7e', DeviceType::TABLET ], + 'ViewPad7e' => [ 'ViewSonic', 'ViewPad 7e', DeviceType::TABLET ], + 'ViewPad 7Q' => [ 'ViewSonic', 'ViewPad 7q', DeviceType::TABLET ], + 'ViewPad 7Q Plus' => [ 'ViewSonic', 'ViewPad 7q Plus', DeviceType::TABLET ], + 'ViewPad 7Q Pro' => [ 'ViewSonic', 'ViewPad 7q Pro', DeviceType::TABLET ], + 'ViewPad7X' => [ 'ViewSonic', 'ViewPad 7x', DeviceType::TABLET ], + 'ViewPad 9Q' => [ 'ViewSonic', 'ViewPad 9q', DeviceType::TABLET ], + 'ViewPad 10e' => [ 'ViewSonic', 'ViewPad 10e', DeviceType::TABLET ], + 'ViewPad 10S' => [ 'ViewSonic', 'ViewPad 10s', DeviceType::TABLET ], + 'ViewPad 70Q' => [ 'ViewSonic', 'ViewPad 70q', DeviceType::TABLET ], + 'ViewPad97A' => [ 'ViewSonic', 'ViewPad 97a', DeviceType::TABLET ], + 'ViewPad97a K1' => [ 'ViewSonic', 'ViewPad 97a K1', DeviceType::TABLET ], + 'ViewPad97a Pro' => [ 'ViewSonic', 'ViewPad 97a Pro', DeviceType::TABLET ], + 'ViewPad 97Q' => [ 'ViewSonic', 'ViewPad 97q', DeviceType::TABLET ], + 'ViewPad 100Q' => [ 'ViewSonic', 'ViewPad 100q', DeviceType::TABLET ], + 'ViewPad 100N Pro' => [ 'ViewSonic', 'ViewPad 100n Pro', DeviceType::TABLET ], + 'ViewPad 701N' => [ 'ViewSonic', 'ViewPad 701n', DeviceType::TABLET ], + 'ZiiLABS ViewBook 730' => [ 'ViewSonic', 'ViewBook VB730', DeviceType::TABLET ], + 'ViewSonic VB733' => [ 'ViewSonic', 'ViewPad VB733', DeviceType::TABLET ], + 'VSD220' => [ 'ViewSonic', 'VSD220 Smart Display', DeviceType::MONITOR ], + 'VSD221' => [ 'ViewSonic', 'VSD221 Smart Display', DeviceType::MONITOR ], + 'VSD231' => [ 'ViewSonic', 'VSD231 Smart Display', DeviceType::MONITOR ], + 'VSD241' => [ 'ViewSonic', 'VSD241 Smart Display', DeviceType::MONITOR ], + + 'VINUS!!' => [ + 'VINUS V6' => [ 'Vinus', 'V6' ], + 'VINUS-V6' => [ 'Vinus', 'V6' ], + 'VINUS V8' => [ 'Vinus', 'V8' ], + ], + + 'VL-[0-9]{3,3}!!' => [ + 'VL-107!' => [ 'Visual Land', 'Prestige 7', DeviceType::TABLET ], + 'VL-109' => [ 'Visual Land', 'Connect 9', DeviceType::TABLET ], + 'VL-110' => [ 'Visual Land', 'Prestige 10', DeviceType::TABLET ], + 'VL-879' => [ 'Visual Land', 'Connect 7', DeviceType::TABLET ], + ], + + 'PRO7D' => [ 'Visual Land', 'Prestige 7D', DeviceType::TABLET ], + + 'TPC-7151' => [ 'Vivax', 'TPC-7151', DeviceType::TABLET ], + + '(BBG-|VIV-)?vivo!!' => [ + 'vivo E1' => [ 'Vivo', 'E1' ], + 'vivo E1t' => [ 'Vivo', 'E1t' ], + 'vivo E3' => [ 'Vivo', 'E3' ], + 'vivo E5' => [ 'Vivo', 'E5' ], + 'vivo S1' => [ 'Vivo', 'S1' ], + 'vivo S3' => [ 'Vivo', 'S3' ], + 'vivo S3+' => [ 'Vivo', 'S3+' ], + 'vivo S6' => [ 'Vivo', 'S6' ], + 'vivo S6T' => [ 'Vivo', 'S6T' ], + 'vivo S7' => [ 'Vivo', 'S7' ], + 'vivo S7w' => [ 'Vivo', 'S7W' ], + 'vivo S9!' => [ 'Vivo', 'S9' ], + 'vivo S1' => [ 'Vivo', 'S1' ], + 'vivo S6' => [ 'Vivo', 'S6' ], + 'vivo S7i(t)' => [ 'Vivo', 'S7' ], + 'vivo S7t' => [ 'Vivo', 'S7' ], + 'vivo S9t' => [ 'Vivo', 'S9' ], + 'vivo S11' => [ 'Vivo', 'S11' ], + 'vivo S11t' => [ 'Vivo', 'S11' ], + 'vivo S12' => [ 'Vivo', 'S12' ], + 'vivo V1' => [ 'Vivo', 'V1' ], + 'vivo V1Max' => [ 'Vivo', 'V1 Max' ], + 'vivo V2' => [ 'Vivo', 'V2' ], + 'vivo V3' => [ 'Vivo', 'V3' ], + 'vivo V3Max' => [ 'Vivo', 'V3 Max' ], + 'vivo V3Max A' => [ 'Vivo', 'V3 Max A' ], + 'vivo X1' => [ 'Vivo', 'X1' ], + 'vivo X1S' => [ 'Vivo', 'X1S' ], + 'vivo X1St' => [ 'Vivo', 'X1S' ], + 'vivo X1w' => [ 'Vivo', 'X1W' ], + 'vivo X3F' => [ 'Vivo', 'X3F' ], + 'vivo X3L' => [ 'Vivo', 'X3L' ], + 'vivo X3S' => [ 'Vivo', 'X3S' ], + 'vivo X3S W' => [ 'Vivo', 'X3SW' ], + 'vivo X3t' => [ 'Vivo', 'X3T' ], + 'BBG-vivo X3V!' => [ 'Vivo', 'X3V' ], + 'vivo X3V' => [ 'Vivo', 'X3V' ], + 'vivo X5' => [ 'Vivo', 'X5' ], + 'vivo X5F' => [ 'Vivo', 'X5F' ], + 'vivo X5L' => [ 'Vivo', 'X5L' ], + 'vivo X5M' => [ 'Vivo', 'X5M' ], + 'vivo X5S L' => [ 'Vivo', 'X5S L' ], + 'vivo X5SL' => [ 'Vivo', 'X5S L' ], + 'BBG-vivo X5V!' => [ 'Vivo', 'X5V' ], + 'VIV-vivo X5V!' => [ 'Vivo', 'X5V' ], + 'vivo X5V' => [ 'Vivo', 'X5V' ], + 'vivo X5Max' => [ 'Vivo', 'X5 Max' ], + 'vivo X5Max+' => [ 'Vivo', 'X5 Max+' ], + 'vivo X5Max L' => [ 'Vivo', 'X5 Max L' ], + 'vivo X5MaxL' => [ 'Vivo', 'X5 Max L' ], + 'vivo X5Max S' => [ 'Vivo', 'X5 Max S' ], + 'VIV-vivo X5Max S!' => [ 'Vivo', 'X5 Max S' ], + 'VIV-vivo X5Max V' => [ 'Vivo', 'X5 Max V' ], + 'vivo X5MaxV' => [ 'Vivo', 'X5 Max V' ], + 'vivo X5Max V' => [ 'Vivo', 'X5 Max V' ], + 'vivo X5Pro' => [ 'Vivo', 'X5 Pro' ], + 'vivo X5Pro D' => [ 'Vivo', 'X5 Pro D' ], + 'vivo X5Pro L' => [ 'Vivo', 'X5 Pro L' ], + 'VIV-vivo X5Pro V' => [ 'Vivo', 'X5 Pro V' ], + 'vivo X5Pro V' => [ 'Vivo', 'X5 Pro V' ], + 'vivo PD1515A' => [ 'Vivo', 'X6 Plus A' ], + 'vivo X6Plus A' => [ 'Vivo', 'X6 Plus A' ], + 'vivo PD1501D' => [ 'Vivo', 'X6 Plus D' ], + 'vivo X6Plus D' => [ 'Vivo', 'X6 Plus D' ], + 'vivo X6Plus L' => [ 'Vivo', 'X6 Plus L' ], + 'vivo X6A' => [ 'Vivo', 'X6A' ], + 'vivo PD1415A' => [ 'Vivo', 'X6A' ], + 'vivo X6D' => [ 'Vivo', 'X6D' ], + 'vivo X6L' => [ 'Vivo', 'X6L' ], + 'vivo X6S A' => [ 'Vivo', 'X6S A' ], + 'vivo X6SPlus A' => [ 'Vivo', 'X6S Plus A' ], + 'vivo PD1515BA' => [ 'Vivo', 'X6S Plus A' ], + 'vivo Xplay' => [ 'Vivo', 'Xplay' ], + 'vivo X510t' => [ 'Vivo', 'Xplay' ], + 'vivo Xplay2' => [ 'Vivo', 'Xplay 2' ], + 'vivo Xplay2S' => [ 'Vivo', 'Xplay 2S' ], + 'vivo X520L' => [ 'Vivo', 'Xplay 3S' ], + 'vivo Xplay3S' => [ 'Vivo', 'Xplay 3S' ], + 'vivo Xplay3S A' => [ 'Vivo', 'Xplay 3S' ], + 'vivo Xplay5A' => [ 'Vivo', 'Xplay 5A' ], + 'vivo Xplay5S' => [ 'Vivo', 'Xplay 5S' ], + 'vivo PD1516A' => [ 'Vivo', 'Xplay 5S' ], + 'vivo X710F' => [ 'Vivo', 'Xshot' ], + 'vivo X710L' => [ 'Vivo', 'Xshot' ], + 'vivo Xshot' => [ 'Vivo', 'Xshot' ], + 'vivo Xshoot' => [ 'Vivo', 'Xshot' ], + 'vivo Y1' => [ 'Vivo', 'Y1' ], + 'vivo Y3t' => [ 'Vivo', 'Y3T' ], + 'vivo Y11' => [ 'Vivo', 'Y11' ], + 'vivo Y11i T' => [ 'Vivo', 'Y11i T' ], + 'vivo Y11iW' => [ 'Vivo', 'Y11i W' ], + 'vivo Y11t' => [ 'Vivo', 'Y11T' ], + 'vivo Y13' => [ 'Vivo', 'Y13' ], + 'vivo Y13iL' => [ 'Vivo', 'Y13i L' ], + 'vivo Y13L' => [ 'Vivo', 'Y13L' ], + 'vivo Y13T' => [ 'Vivo', 'Y13T' ], + 'vivo Y15' => [ 'Vivo', 'Y15' ], + 'vivo Y15S' => [ 'Vivo', 'Y15S' ], + 'vivo Y15T' => [ 'Vivo', 'Y15T' ], + 'VIVO-Y15T' => [ 'Vivo', 'Y15T' ], + 'vivo Y15W' => [ 'Vivo', 'Y15W' ], + 'vivo Y17T' => [ 'Vivo', 'Y17T' ], + 'vivo Y17W' => [ 'Vivo', 'Y17W' ], + 'vivo Y18L' => [ 'Vivo', 'Y18L' ], + 'vivo Y19t' => [ 'Vivo', 'Y19T' ], + 'vivo Y20T' => [ 'Vivo', 'Y20T' ], + 'vivo Y21' => [ 'Vivo', 'Y21' ], + 'vivo Y22' => [ 'Vivo', 'Y22' ], + 'vivo Y22iL' => [ 'Vivo', 'Y22i L' ], + 'vivo Y22L' => [ 'Vivo', 'Y22L' ], + 'vivo Y22T' => [ 'Vivo', 'Y22T' ], + 'vivo Y23L' => [ 'Vivo', 'Y23L' ], + 'vivo Y27' => [ 'Vivo', 'Y27' ], + 'vivo Y27L' => [ 'Vivo', 'Y27L' ], + 'vivo Y28' => [ 'Vivo', 'Y28' ], + 'vivo Y28L' => [ 'Vivo', 'Y28L' ], + 'vivo Y29L' => [ 'Vivo', 'Y29L' ], + 'vivo Y31' => [ 'Vivo', 'Y31' ], + 'vivo Y31A' => [ 'Vivo', 'Y31A' ], + 'vivo Y31i' => [ 'Vivo', 'Y31i' ], + 'vivo Y33' => [ 'Vivo', 'Y33' ], + 'vivo Y35' => [ 'Vivo', 'Y35' ], + 'vivo Y35A' => [ 'Vivo', 'Y35A' ], + 'vivo Y37' => [ 'Vivo', 'Y37' ], + 'vivo Y37A' => [ 'Vivo', 'Y37A' ], + 'vivo Y51' => [ 'Vivo', 'Y51' ], + 'vivo Y51A' => [ 'Vivo', 'Y51A' ], + 'vivo Y51L' => [ 'Vivo', 'Y51L' ], + 'vivo Y613' => [ 'Vivo', 'Y613' ], + 'vivo Y613F' => [ 'Vivo', 'Y613F' ], + 'vivo Y622' => [ 'Vivo', 'Y622' ], + 'vivo Y623' => [ 'Vivo', 'Y623' ], + 'vivo Y627' => [ 'Vivo', 'Y627' ], + 'vivo Y628' => [ 'Vivo', 'Y628' ], + 'vivo Y913' => [ 'Vivo', 'Y913' ], + 'VIV-vivo Y913' => [ 'Vivo', 'Y913' ], + 'VIV-vivo Y923' => [ 'Vivo', 'Y923' ], + 'vivo Y923' => [ 'Vivo', 'Y923' ], + 'vivo Y927' => [ 'Vivo', 'Y927' ], + 'vivo Y928' => [ 'Vivo', 'Y928' ], + 'VIV-vivo Y928' => [ 'Vivo', 'Y928' ], + 'VIV-vivo Y937' => [ 'Vivo', 'Y937' ], + 'vivo Y937' => [ 'Vivo', 'Y937' ], + ], + + 'VTAB1008' => [ 'Vizio', 'VTAB1008', DeviceType::TABLET ], + 'VTAB3010' => [ 'Vizio', 'VTAB3010', DeviceType::TABLET ], + 'VAP430' => [ 'Vizio', 'Co-Star', DeviceType::TELEVISION, Flag::GOOGLETV ], + 'Xtreme V10' => [ 'Voice', 'Xtreme V10' ], + 'Xtreme V20' => [ 'Voice', 'Xtreme V20' ], + 'Xtreme-V30' => [ 'Voice', 'Xtreme V30' ], + 'vollo Vi86' => [ 'VOLLO', 'Vi86' ], + 'VOTO V5' => [ 'VOTO', 'V5' ], + 'VOTO VT868' => [ 'VOTO', 'VT868' ], + 'VOTO VT888' => [ 'VOTO', 'VT888' ], + 'VOTO W5300' => [ 'VOTO', 'W5300' ], + 'VOTO X2' => [ 'VOTO', 'X2' ], + 'VOYO A15' => [ 'Voyo', 'A15', DeviceType::TABLET ], + 'voyo X6' => [ 'Voyo', 'X6', DeviceType::TABLET ], + 'Vsun i9' => [ 'Vsun Mobile', 'i9' ], + 'Vsun V9' => [ 'Vsun Mobile', 'V9' ], + 'WALSUN S1 Pro' => [ 'Walsun', 'S1 Pro' ], + 'WALSUN S2' => [ 'Walsun', 'S2' ], + 'Walton Primo' => [ 'Walton', 'Primo' ], + 'WALTON Primo C1' => [ 'Walton', 'Primo C1' ], + 'Primo C2' => [ 'Walton', 'Primo C2' ], + 'Primo C3 3G' => [ 'Walton', 'Primo C3' ], + 'WALTON Primo-D1' => [ 'Walton', 'Primo D1' ], + 'Primo D2' => [ 'Walton', 'Primo D2' ], + 'Primo D3' => [ 'Walton', 'Primo D3' ], + 'Primo D4' => [ 'Walton', 'Primo D4' ], + 'Primo D5' => [ 'Walton', 'Primo D5' ], + 'Primo E1' => [ 'Walton', 'Primo E1' ], + 'Primo E2' => [ 'Walton', 'Primo E2' ], + 'PRIMO E3' => [ 'Walton', 'Primo E3' ], + 'Primo E4' => [ 'Walton', 'Primo E4' ], + 'Primo E4+' => [ 'Walton', 'Primo E4+' ], + 'Primo E6' => [ 'Walton', 'Primo E6' ], + 'Primo EF' => [ 'Walton', 'Primo EF' ], + 'Primo EF2' => [ 'Walton', 'Primo EF2' ], + 'Primo EF3' => [ 'Walton', 'Primo EF3' ], + 'Primo EM' => [ 'Walton', 'Primo EM' ], + 'Primo F1' => [ 'Walton', 'Primo F1' ], + 'Primo F2' => [ 'Walton', 'Primo F2' ], + 'Primo-F2' => [ 'Walton', 'Primo F2' ], + 'Walton Primo F2' => [ 'Walton', 'Primo F2' ], + 'Primo F3' => [ 'Walton', 'Primo F3' ], + 'Primo F3i' => [ 'Walton', 'Primo F3i' ], + 'Primo F4' => [ 'Walton', 'Primo F4' ], + 'Primo F5' => [ 'Walton', 'Primo F5' ], + 'Primo F6' => [ 'Walton', 'Primo F6' ], + 'WALTON Primo-G1' => [ 'Walton', 'Primo G1' ], + 'WALTON Primo G1' => [ 'Walton', 'Primo G1' ], + 'Primo-G1' => [ 'Walton', 'Primo G1' ], + 'Primo G2' => [ 'Walton', 'Primo G2' ], + 'Primo-G3' => [ 'Walton', 'Primo G3' ], + 'Primo G4' => [ 'Walton', 'Primo G4' ], + 'Primo G5' => [ 'Walton', 'Primo G5' ], + 'Primo G6' => [ 'Walton', 'Primo G6' ], + 'Primo GF2' => [ 'Walton', 'Primo GF2' ], + 'Primo GF4' => [ 'Walton', 'Primo GF4' ], + 'Primo GH+' => [ 'Walton', 'Primo GH+' ], + 'Primo-GH2' => [ 'Walton', 'Primo GH2' ], + 'Primo GH2' => [ 'Walton', 'Primo GH2' ], + 'Primo GH3' => [ 'Walton', 'Primo GH3' ], + 'Primo GH4' => [ 'Walton', 'Primo GH4' ], + 'Primo GH5' => [ 'Walton', 'Primo GH5' ], + 'Primo GH6' => [ 'Walton', 'Primo GH6' ], + 'Primo GM' => [ 'Walton', 'Primo GM' ], + 'Primo GM mini' => [ 'Walton', 'Primo GM mini' ], + 'Primo H2' => [ 'Walton', 'Primo H2' ], + 'Primo-H3' => [ 'Walton', 'Primo H3' ], + 'Primo H3' => [ 'Walton', 'Primo H3' ], + 'Walton Primo H3' => [ 'Walton', 'Primo H3' ], + 'WALTON H3' => [ 'Walton', 'Primo H3' ], + 'Primo H4' => [ 'Walton', 'Primo H4' ], + 'Primo H5' => [ 'Walton', 'Primo H5' ], + 'Primo HM' => [ 'Walton', 'Primo HM' ], + 'WALTON Primo HMmini' => [ 'Walton', 'Primo HM mini' ], + 'Primo HM3' => [ 'Walton', 'Primo HM3' ], + 'Primo-N' => [ 'Walton', 'Primo N' ], + 'WALTON Primo-N1' => [ 'Walton', 'Primo N1' ], + 'Primo-N1' => [ 'Walton', 'Primo N1' ], + 'Primo NF' => [ 'Walton', 'Primo NF' ], + 'Primo NF+' => [ 'Walton', 'Primo NF+' ], + 'Primo NX' => [ 'Walton', 'Primo NX' ], + 'Primo NX2' => [ 'Walton', 'Primo NX2' ], + 'Primo NX3' => [ 'Walton', 'Primo NX3' ], + 'Walton Primo R1' => [ 'Walton', 'Primo R1' ], + 'Primo R1' => [ 'Walton', 'Primo R1' ], + 'Primo R2' => [ 'Walton', 'Primo R2' ], + 'Primo R3' => [ 'Walton', 'Primo R3' ], + 'Primo R4' => [ 'Walton', 'Primo R4' ], + 'Primo RH' => [ 'Walton', 'Primo RH' ], + 'Primo RM' => [ 'Walton', 'Primo RM' ], + 'Primo RM2' => [ 'Walton', 'Primo RM2' ], + 'Primo RM2 mini' => [ 'Walton', 'Primo RM2 mini' ], + 'Primo RX2' => [ 'Walton', 'Primo RX2' ], + 'Primo RX4' => [ 'Walton', 'Primo RX4' ], + 'Primo S1' => [ 'Walton', 'Primo S1' ], + 'WALTON Primo S3' => [ 'Walton', 'Primo S3' ], + 'Primo S3' => [ 'Walton', 'Primo S3' ], + 'Primo S3 mini' => [ 'Walton', 'Primo S3 mini' ], + 'Primo V1' => [ 'Walton', 'Primo V1' ], + 'Primo VX' => [ 'Walton', 'Primo VX' ], + '(WALTON )?Primo-X1!' => [ 'Walton', 'Primo X1' ], + 'Primo-X2' => [ 'Walton', 'Primo X2' ], + 'Primo X2mini' => [ 'Walton', 'Primo X2 mini' ], + 'Primo X3' => [ 'Walton', 'Primo X3' ], + 'Primo X3mini' => [ 'Walton', 'Primo X3 mini' ], + 'Primo Z' => [ 'Walton', 'Primo Z' ], + 'Primo-ZX' => [ 'Walton', 'Primo ZX' ], + 'Primo ZX2' => [ 'Walton', 'Primo ZX2' ], + 'Primo Walpad 7' => [ 'Walton', 'Primo Walpad 7', DeviceType::TABLET ], + 'Primo Walpad 8' => [ 'Walton', 'Primo Walpad 8', DeviceType::TABLET ], + 'Walpad 8b' => [ 'Walton', 'Primo Walpad 8b', DeviceType::TABLET ], + 'Primo Walpad 8W' => [ 'Walton', 'Primo Walpad 8W', DeviceType::TABLET ], + 'Walpad 8x' => [ 'Walton', 'Primo Walpad 8x', DeviceType::TABLET ], + 'xPAD-70' => [ 'WayteQ', 'xPAD-70', DeviceType::TABLET ], + 'xTAB-7X' => [ 'WayteQ', 'xTAB-7X', DeviceType::TABLET ], + 'xTAB-9' => [ 'WayteQ', 'xTAB-9', DeviceType::TABLET ], + 'xTAB-70!' => [ 'WayteQ', 'xTAB-70', DeviceType::TABLET ], + 'xTAB-100!' => [ 'WayteQ', 'xTAB-100', DeviceType::TABLET ], + 'WellcoM-A86' => [ 'WellcoM', 'A86' ], + 'WellcoM-A88' => [ 'WellcoM', 'A88' ], + 'WellcoM-A89' => [ 'WellcoM', 'A89' ], + 'WellcoM-A89-Plus' => [ 'WellcoM', 'A89 Plus' ], + 'WellcoM-A99' => [ 'WellcoM', 'A99' ], + 'WellcoM-A800' => [ 'WellcoM', 'A800', DeviceType::TABLET ], + 'ZEN 4.5' => [ 'Wexler', 'Zen 4.5' ], + 'ZEN 4.7' => [ 'Wexler', 'Zen 4.7' ], + 'WEXLER. ZEN 5' => [ 'Wexler', 'Zen 5' ], + 'TAB 7i 3G' => [ 'Wexler', 'Tab 7I 3G', DeviceType::TABLET ], + 'WEXLER TAB7ID' => [ 'Wexler', 'Tab 7ID', DeviceType::TABLET ], + 'WEXLER-TAB-7iS' => [ 'Wexler', 'Tab 7IS', DeviceType::TABLET ], + 'WEXLER-TAB-7T' => [ 'Wexler', 'Tab 7T', DeviceType::TABLET ], + 'TAB 10Q' => [ 'Wexler', 'Tab 10Q', DeviceType::TABLET ], + 'WEXLER.BOOK T7008' => [ 'Wexler', 'Book T7008', DeviceType::TABLET ], + 'WHAM WG40' => [ 'Wham', 'WG40' ], + 'BARRY' => [ 'Wiko', 'Barry' ], + 'BIRDY' => [ 'Wiko', 'Birdy' ], + 'BLOOM' => [ 'Wiko', 'Bloom' ], + 'CINK' => [ 'Wiko', 'Cink' ], + 'CINK+' => [ 'Wiko', 'Cink+' ], + 'CINK FIVE' => [ 'Wiko', 'Cink Five' ], + 'Wiko Cink Five' => [ 'Wiko', 'Cink Five' ], + 'CINK KING' => [ 'Wiko', 'Cink King' ], + 'CINK PEAX' => [ 'Wiko', 'Cink Peax' ], + 'Wiko Cink Peax' => [ 'Wiko', 'Cink Peax' ], + 'WIKO-CINK PEAX' => [ 'Wiko', 'Cink Peax' ], + 'CINK PEAX+' => [ 'Wiko', 'Cink Peax+' ], + 'CINK PEAX 2' => [ 'Wiko', 'Cink Peax 2' ], + 'Wiko Cink Slim' => [ 'Wiko', 'Cink Slim' ], + 'WIKO-CINK SLIM' => [ 'Wiko', 'Cink Slim' ], + 'CINK SLIM' => [ 'Wiko', 'Cink Slim' ], + 'Cink Slim A' => [ 'Wiko', 'Cink Slim A' ], + 'Cink Slim B' => [ 'Wiko', 'Cink Slim B' ], + 'CINK SLIM 2' => [ 'Wiko', 'Cink Slim 2' ], + 'DARKFULL' => [ 'Wiko', 'Darkfull' ], + 'DARKMOON' => [ 'Wiko', 'Darkmoon' ], + 'DARKNIGHT' => [ 'Wiko', 'Darknight' ], + 'DARKSIDE' => [ 'Wiko', 'Darkside' ], + 'GETAWAY' => [ 'Wiko', 'Getaway' ], + 'GOA' => [ 'Wiko', 'Goa' ], + 'HIGHWAY' => [ 'Wiko', 'Highway' ], + 'HIGHWAY SIGNS' => [ 'Wiko', 'Highway Signs' ], + 'IGGY' => [ 'Wiko', 'Iggy' ], + 'JIMMY' => [ 'Wiko', 'Jimmy' ], + 'KITE' => [ 'Wiko', 'Kite' ], + 'LENNY' => [ 'Wiko', 'Lenny' ], + 'LENNY2' => [ 'Wiko', 'Lenny 2' ], + 'OZZY' => [ 'Wiko', 'Ozzy' ], + 'Wiko Rainbow' => [ 'Wiko', 'Rainbow' ], + 'RAINBOW' => [ 'Wiko', 'Rainbow' ], + 'RAINBOW 4G' => [ 'Wiko', 'Rainbow' ], + 'RIDGE' => [ 'Wiko', 'Ridge' ], + 'RIDGE 4G' => [ 'Wiko', 'Ridge' ], + 'RIDGE FAB 4G' => [ 'Wiko', 'Ridge Fab' ], + 'SLIDE' => [ 'Wiko', 'Slide' ], + 'STAIRWAY' => [ 'Wiko', 'Stairway' ], + 'Wiko Stairway' => [ 'Wiko', 'Stairway' ], + 'SUBLIM' => [ 'Wiko', 'Sublim' ], + 'SUNSET' => [ 'Wiko', 'Sunset' ], + 'WAX' => [ 'Wiko', 'Wax' ], + 'N5PRO2jingying' => [ 'Window', 'N5 Pro 2', DeviceType::MEDIA ], + 'N12' => [ 'Window', 'N12', DeviceType::TABLET ], + 'N12R' => [ 'Window', 'N12R', DeviceType::TABLET ], + 'N50' => [ 'Window', 'N50', DeviceType::TABLET ], + 'N50DT!' => [ 'Window', 'N50DT', DeviceType::TABLET ], + 'N50GT' => [ 'Window', 'N50GT', DeviceType::TABLET ], + 'N50GT A' => [ 'Window', 'N50GT-A', DeviceType::TABLET ], + 'N70' => [ 'Window', 'N70', DeviceType::TABLET ], + 'N70 3G' => [ 'Window', 'N70', DeviceType::TABLET ], + 'N70 C' => [ 'Window', 'N70C', DeviceType::TABLET ], + 'N70DC' => [ 'Window', 'N70DC', DeviceType::TABLET ], + 'N70-S' => [ 'Window', 'N70S', DeviceType::TABLET ], + 'N70HD' => [ 'Window', 'N70HD', DeviceType::TABLET ], + 'N70 DUAL CORE' => [ 'Window', 'N70 Dual Core', DeviceType::TABLET ], + 'N70DC-S' => [ 'Window', 'N70 Dual Core', DeviceType::TABLET ], + 'N70DC-T' => [ 'Window', 'N70 Dual Core', DeviceType::TABLET ], + 'N80($| from moage.com)!' => [ 'Window', 'N80', DeviceType::TABLET ], + 'N80DC' => [ 'Window', 'N80 Dual Core', DeviceType::TABLET ], + 'N80IPS' => [ 'Window', 'N80 IPS', DeviceType::TABLET ], + 'N90' => [ 'Window', 'N90', DeviceType::TABLET ], + 'N90 DUAL CORE!' => [ 'Window', 'N90 Dual Core', DeviceType::TABLET ], + 'N90FHDRK' => [ 'Window', 'N90 FHD', DeviceType::TABLET ], + 'N101 DUAL CORE!' => [ 'Window', 'N101 Dual Core', DeviceType::TABLET ], + 'N612' => [ 'Wishway', 'N612' ], + 'A81E' => [ 'Witstech', 'A81E', DeviceType::TABLET ], + + 'miTab!!' => [ + 'miTab BALTIMORE' => [ 'Wolder', 'miTab BALTIMORE', DeviceType::TABLET ], + 'miTab BERLIN' => [ 'Wolder', 'miTab BERLIN', DeviceType::TABLET ], + 'miTab Boston' => [ 'Wolder', 'miTab BOSTON', DeviceType::TABLET ], + 'miTab BROOKLYN' => [ 'Wolder', 'miTab BROOKLYN', DeviceType::TABLET ], + 'miTabCALIFORNIA' => [ 'Wolder', 'miTab CALIFORNIA', DeviceType::TABLET ], + 'miTab CHICAGO' => [ 'Wolder', 'miTab CHICAGO', DeviceType::TABLET ], + 'miTab EPSILON' => [ 'Wolder', 'miTab EPSILON', DeviceType::TABLET ], + 'miTab-EPSILON' => [ 'Wolder', 'miTab EPSILON', DeviceType::TABLET ], + 'miTab FEEL' => [ 'Wolder', 'miTab FEEL', DeviceType::TABLET ], + 'miTab FUNK' => [ 'Wolder', 'miTab FUNK', DeviceType::TABLET ], + 'miTab-GENIUS' => [ 'Wolder', 'miTab GENIUS', DeviceType::TABLET ], + 'miTab GENIUS' => [ 'Wolder', 'miTab GENIUS', DeviceType::TABLET ], + 'miTab HERO' => [ 'Wolder', 'miTab HERO', DeviceType::TABLET ], + 'miTab HOP!' => [ 'Wolder', 'miTab HOP!', DeviceType::TABLET ], + 'miTab IOWA' => [ 'Wolder', 'miTab IOWA', DeviceType::TABLET ], + 'miTab IRON' => [ 'Wolder', 'miTab IRON', DeviceType::TABLET ], + 'miTab JUMP' => [ 'Wolder', 'miTab JUMP', DeviceType::TABLET ], + 'miTab LION' => [ 'Wolder', 'miTab LION', DeviceType::TABLET ], + 'miTab LIVE' => [ 'Wolder', 'miTab LIVE', DeviceType::TABLET ], + 'miTab NEO' => [ 'Wolder', 'miTab NEO', DeviceType::TABLET ], + 'miTab THINK' => [ 'Wolder', 'miTab THINK', DeviceType::TABLET ], + 'miTab Seattle' => [ 'Wolder', 'miTab SEATTLE', DeviceType::TABLET ], + 'miTab URBAN' => [ 'Wolder', 'miTab URBAN', DeviceType::TABLET ], + ], + + 'AT-A[QS][0-9]{2,2}!!' => [ + 'AT-AQ28D' => [ 'Wolfgang', 'AT-AQ28D' ], + 'AT-AS35D' => [ 'Wolfgang', 'AT-AS35D' ], + 'AT-AS40D' => [ 'Wolfgang', 'AT-AS40D' ], + 'AT-AS40D2' => [ 'Wolfgang', 'AT-AS40D2' ], + 'AT-AS40D3' => [ 'Wolfgang', 'AT-AS40D3' ], + 'AT-AS40SE' => [ 'Wolfgang', 'AT-AS40SE' ], + 'AT-AS40W' => [ 'Wolfgang', 'AT-AS40W' ], + 'AT-AS43D' => [ 'Wolfgang', 'AT-AS43D' ], + 'AT-AS43D2' => [ 'Wolfgang', 'AT-AS43D2' ], + 'AT-AS43D3' => [ 'Wolfgang', 'AT-AS43D3' ], + 'AT-AS43D4' => [ 'Wolfgang', 'AT-AS43D4' ], + 'AT-AS45D1' => [ 'Wolfgang', 'AT-AS45D1' ], + 'AT-AS45FW' => [ 'Wolfgang', 'AT-AS45FW' ], + 'AT-AS45SE' => [ 'Wolfgang', 'AT-AS45SE' ], + 'AT-AS45IPS' => [ 'Wolfgang', 'AT-AS45IPS' ], + 'AT-AS45Q' => [ 'Wolfgang', 'AT-AS45Q' ], + 'AT-AS45Q1' => [ 'Wolfgang', 'AT-AS45Q1' ], + 'AT-AS45qHD' => [ 'Wolfgang', 'AT-AS45QHD' ], + 'AT-AS45q2' => [ 'Wolfgang', 'AT-AS45Q2' ], + 'AT-AS45WP' => [ 'Wolfgang', 'AT-AS45WP' ], + 'AT-AS45LTE' => [ 'Wolfgang', 'AT-AS45LTE' ], + 'AT-AS50HD' => [ 'Wolfgang', 'AT-AS50HD' ], + 'AT-AS50SE' => [ 'Wolfgang', 'AT-AS50SE' ], + 'AT-AS50Q' => [ 'Wolfgang', 'AT-AS50Q' ], + 'AT-AS53N' => [ 'Wolfgang', 'AT-AS53N' ], + 'AT-AS55HD' => [ 'Wolfgang', 'AT-AS55HD' ], + 'AT-AS55HD1' => [ 'Wolfgang', 'AT-AS55HD1' ], + ], + + 'M12' => [ 'Wopad', 'M12', DeviceType::TABLET ], + 'SK-Mtek GT7305' => [ 'WonderMedia', 'SK-Mtek GT7305' ], + 'WM8650' => [ 'WonderMedia', 'WM8650', DeviceType::TABLET ], + 'WM8650-mid' => [ 'WonderMedia', 'WM8650', DeviceType::TABLET ], + 'wm8710-tvbox' => [ 'WonderMedia', 'WM8710', DeviceType::TELEVISION ], + 'WM8850-mid' => [ 'WonderMedia', 'WM8850', DeviceType::TABLET ], + 'PAD1001' => [ 'Wortmann', 'TERRA MOBILE PAD 1001', DeviceType::TABLET ], + + 'Woxter!!' => [ + 'Woxter Android TV 700' => [ 'Woxter', 'Android TV 700', DeviceType::TELEVISION ], + 'Woxter Funny Tab 80' => [ 'Woxter', 'Funny Tab 80' ], + 'Woxter Zielo D15' => [ 'Woxter', 'Zielo D15' ], + 'Woxter Zielo Q20' => [ 'Woxter', 'Zielo Q20' ], + 'Woxter Zielo Q25' => [ 'Woxter', 'Zielo Q25' ], + 'Woxter Zielo Q30' => [ 'Woxter', 'Zielo Q30' ], + 'Woxter Zielo Q40' => [ 'Woxter', 'Zielo Q40' ], + 'Woxter Zielo Z400' => [ 'Woxter', 'Zielo Z400' ], + 'Woxter Zielo Z820Plus' => [ 'Woxter', 'Zielo Z820 Plus' ], + 'Woxter Tablet PC 50BL' => [ 'Woxter', 'Tablet PC 50 BL', DeviceType::TABLET ], + 'Woxter Tablet PC 50BL DUAL' => [ 'Woxter', 'Tablet PC 50 BL Dual', DeviceType::TABLET ], + 'Woxter Tablet PC 75CXi' => [ 'Woxter', 'Tablet PC 75 CXi', DeviceType::TABLET ], + 'Woxter Tablet PC 76CXi' => [ 'Woxter', 'Tablet PC 76 CXi', DeviceType::TABLET ], + 'Woxter Tablet PC 85CXi' => [ 'Woxter', 'Tablet PC 85 CXi', DeviceType::TABLET ], + 'Woxter Tablet PC 85 HDS' => [ 'Woxter', 'Tablet PC 85 HDS', DeviceType::TABLET ], + 'Woxter Tablet PC 90BL' => [ 'Woxter', 'Tablet PC 90 BL', DeviceType::TABLET ], + 'Woxter Tablet PC 97IPS' => [ 'Woxter', 'Tablet PC 97 IPS', DeviceType::TABLET ], + 'Woxter Tablet PC 97IPS DUAL' => [ 'Woxter', 'Tablet PC 97 IPS Dual', DeviceType::TABLET ], + 'Woxter 97 IPS DUAL 3G' => [ 'Woxter', 'Tablet PC 97 IPS Dual 3G', DeviceType::TABLET ], + 'Woxter Tablet PC 100CX' => [ 'Woxter', 'Tablet PC 100 CX', DeviceType::TABLET ], + 'Woxter Tablet PC 101IPS DUAL' => [ 'Woxter', 'Tablet PC 101 IPS Dual', DeviceType::TABLET ], + 'Woxter Tablet PC 101 IPS DUAL' => [ 'Woxter', 'Tablet PC 101 IPS Dual', DeviceType::TABLET ], + 'Woxter SX100' => [ 'Woxter', 'SX 100', DeviceType::TABLET ], + 'Woxter QX 70' => [ 'Woxter', 'QX 70', DeviceType::TABLET ], + 'Woxter QX78' => [ 'Woxter', 'QX 78', DeviceType::TABLET ], + 'Woxter QX 90' => [ 'Woxter', 'QX 90', DeviceType::TABLET ], + 'Woxter QX 100' => [ 'Woxter', 'QX 100', DeviceType::TABLET ], + 'Woxter QX105' => [ 'Woxter', 'QX 105', DeviceType::TABLET ], + 'Woxter Tablet PC nimbus 70D' => [ 'Woxter', 'Nimbus 70D', DeviceType::TABLET ], + 'Woxter Nimbus 97Q' => [ 'Woxter', 'Nimbus 97Q', DeviceType::TABLET ], + 'Woxter Nimbus 98Q' => [ 'Woxter', 'Nimbus 98Q', DeviceType::TABLET ], + ], + + 'Wxt Tab PC 65CXi' => [ 'Woxter', 'Tablet PC 65 CXi', DeviceType::TABLET ], + 'Proton Lite' => [ 'X-View', 'Proton Lite', DeviceType::TABLET ], + 'XELIO P900A' => [ 'Xelio', 'P900A' ], + 'MI-ONE' => [ 'Xiaomi', 'Mi 1' ], + 'MI-ONEC1' => [ 'Xiaomi', 'Mi 1' ], + 'MI-ONE C1' => [ 'Xiaomi', 'Mi 1' ], + 'MI-ONE Plus!' => [ 'Xiaomi', 'Mi 1' ], + 'mione plus' => [ 'Xiaomi', 'Mi 1' ], + 'MI ONE plus' => [ 'Xiaomi', 'Mi 1' ], + 'MI-ONEPlus' => [ 'Xiaomi', 'Mi 1' ], + 'Xiaomi M1' => [ 'Xiaomi', 'Mi 1' ], + 'MI 1S' => [ 'Xiaomi', 'Mi 1S' ], + 'MI 1S' => [ 'Xiaomi', 'Mi 1S' ], + 'MI 1SC' => [ 'Xiaomi', 'Mi 1S' ], + 'MI1/1s' => [ 'Xiaomi', 'Mi 1S' ], + 'MI-TWO' => [ 'Xiaomi', 'Mi 2' ], + 'MI-TWOPlus' => [ 'Xiaomi', 'Mi 2' ], + 'MI2' => [ 'Xiaomi', 'Mi 2' ], + 'MI 2' => [ 'Xiaomi', 'Mi 2' ], + 'MI 2C' => [ 'Xiaomi', 'Mi 2' ], + 'MI 2A!' => [ 'Xiaomi', 'Mi 2A' ], + 'MI2A' => [ 'Xiaomi', 'Mi 2A' ], + 'MI 2S' => [ 'Xiaomi', 'Mi 2S' ], + 'MI 2SC' => [ 'Xiaomi', 'Mi 2S' ], + 'MI 2/2S' => [ 'Xiaomi', 'Mi 2S' ], + 'Xiaomi MI-2S' => [ 'Xiaomi', 'Mi 2S' ], + 'xiaomi M3' => [ 'Xiaomi', 'Mi 3' ], + 'Mi3' => [ 'Xiaomi', 'Mi 3' ], + 'MI-Three' => [ 'Xiaomi', 'Mi 3' ], + 'MI-ThreePlus' => [ 'Xiaomi', 'Mi 3' ], + 'MI 3' => [ 'Xiaomi', 'Mi 3' ], + 'MI 3C' => [ 'Xiaomi', 'Mi 3' ], + 'MI 3W' => [ 'Xiaomi', 'Mi 3' ], + '2013061' => [ 'Xiaomi', 'Mi 3' ], + 'Mi3W' => [ 'Xiaomi', 'Mi 3' ], + 'Xiaomi Mi 4' => [ 'Xiaomi', 'Mi 4' ], + 'xiaomi M4' => [ 'Xiaomi', 'Mi 4' ], + 'MI 4' => [ 'Xiaomi', 'Mi 4' ], + 'MI 4LTE' => [ 'Xiaomi', 'Mi 4' ], + 'MI 4C' => [ 'Xiaomi', 'Mi 4' ], + 'MI 4W' => [ 'Xiaomi', 'Mi 4' ], + '2014216 TD-LTE' => [ 'Xiaomi', 'Mi 4' ], + 'Mi-4c' => [ 'Xiaomi', 'Mi 4' ], + 'Mi 4i' => [ 'Xiaomi', 'Mi 4i' ], + 'Xiaomi M5' => [ 'Xiaomi', 'Mi 5' ], + 'MI NOTE LTE' => [ 'Xiaomi', 'Mi Note' ], + 'MI NOTE Pro' => [ 'Xiaomi', 'Mi Note Pro' ], + 'Xiaomi Redmi' => [ 'Xiaomi', 'Redmi 1' ], + 'Redmi' => [ 'Xiaomi', 'Redmi 1' ], + 'HM 1' => [ 'Xiaomi', 'Redmi 1' ], + 'HM 1A' => [ 'Xiaomi', 'Redmi 1A' ], + 'HM 1AC' => [ 'Xiaomi', 'Redmi 1A' ], + 'Redmi 1S' => [ 'Xiaomi', 'Redmi 1S' ], + 'HM 1S' => [ 'Xiaomi', 'Redmi 1S' ], + 'Xiaomi Redmi 1s' => [ 'Xiaomi', 'Redmi 1S' ], + 'Xiaomi Redmi One S' => [ 'Xiaomi', 'Redmi 1S' ], + 'HM 1SC' => [ 'Xiaomi', 'Redmi 1S' ], + 'HM 1SLTETD' => [ 'Xiaomi', 'Redmi 1S' ], + 'HM 1STD' => [ 'Xiaomi', 'Redmi 1S' ], + 'HM 1SW' => [ 'Xiaomi', 'Redmi 1S' ], + '20141(12)!' => [ 'Xiaomi', 'Redmi 2' ], + '20148(11|12|13|17|18|19|21)!' => [ 'Xiaomi', 'Redmi 2' ], + '20145(02)!' => [ 'Xiaomi', 'Redmi 2' ], + 'HM 2A' => [ 'Xiaomi', 'Redmi 2A' ], + 'REDMI NOTE' => [ 'Xiaomi', 'Redmi Note 1' ], + 'HM NOTE' => [ 'Xiaomi', 'Redmi Note 1' ], + 'HM NOTE 1LTE' => [ 'Xiaomi', 'Redmi Note 1' ], + 'HM NOTE 1LTETD' => [ 'Xiaomi', 'Redmi Note 1' ], + 'HM NOTE 1LTEW' => [ 'Xiaomi', 'Redmi Note 1' ], + 'HM NOTE 1LTEGLOBAL' => [ 'Xiaomi', 'Redmi Note 1' ], + 'HM NOTE 1TD' => [ 'Xiaomi', 'Redmi Note 1' ], + 'HM NOTE 1S' => [ 'Xiaomi', 'Redmi Note 1' ], + 'HM NOTE 1W' => [ 'Xiaomi', 'Redmi Note 1' ], + 'Redmi Note 4G (LTE)' => [ 'Xiaomi', 'Redmi Note 1' ], + 'Xiaomi Note 4G' => [ 'Xiaomi', 'Redmi Note 1' ], + '2013122' => [ 'Xiaomi', 'Redmi Note 1' ], + 'Redmi Note 2' => [ 'Xiaomi', 'Redmi Note 2' ], + 'Xiaomi Note2' => [ 'Xiaomi', 'Redmi Note 2' ], + 'Redmi Note 3' => [ 'Xiaomi', 'Redmi Note 3' ], + '(Xiaomi )?20130(22|23)!' => [ 'Xiaomi', 'Redmi Red Rice' ], + '20140(11)!' => [ 'Xiaomi', 'Redmi Red Rice' ], + '20145(01)!' => [ 'Xiaomi', 'Redmi Red Rice' ], + 'RedRice' => [ 'Xiaomi', 'Redmi Red Rice' ], + 'MI PAD' => [ 'Xiaomi', 'MiPad', DeviceType::TABLET ], + 'MiBOX iCNTV' => [ 'Xiaomi', 'MiBox 1', DeviceType::TELEVISION ], + 'MiBOX1S' => [ 'Xiaomi', 'MiBox 1S', DeviceType::TELEVISION ], + 'MiBOX2' => [ 'Xiaomi', 'MiBox 2', DeviceType::TELEVISION ], + 'XO Learning tablet' => [ 'XO', 'Tablet', DeviceType::TABLET ], + 'iX101T1' => [ 'Xplore', 'iX101T1', DeviceType::TABLET ], + 'iX101T1-2G' => [ 'Xplore', 'iX101T1', DeviceType::TABLET ], + 'iX101T1-XS' => [ 'Xplore', 'iX101T1', DeviceType::TABLET ], + 'X403' => [ 'Xtouch', 'X403' ], + 'Xtouch X405' => [ 'Xtouch', 'X405' ], + 'X505' => [ 'Xtouch', 'X505' ], + 'X506' => [ 'Xtouch', 'X506' ], + 'X506S' => [ 'Xtouch', 'X506S' ], + 'X507Q' => [ 'Xtouch', 'X507Q' ], + 'X708S' => [ 'Xtouch', 'X708S', DeviceType::TABLET ], + 'Xtreamer Mobile AiKi' => [ 'Xtreamer', 'Aiki' ], + 'Xtreamer Mobile AiKi a7*' => [ 'Xtreamer', 'Aiki' ], + 'Aiki-4S' => [ 'Xtreamer', 'Aiki 4S' ], + 'Aiki-5' => [ 'Xtreamer', 'Aiki 5' ], + 'Xtreamer Joyz' => [ 'Xtreamer', 'Joyz' ], + 'Q07CL01' => [ 'XVision', 'Q07', DeviceType::TABLET ], + 'Luna TAB07-920N' => [ 'Yarvik', 'Luna 7', DeviceType::TABLET ], + 'Luna TAB07-100' => [ 'Yarvik', 'Luna 7c', DeviceType::TABLET ], + 'Luna TAB07-101' => [ 'Yarvik', 'Luna 7c', DeviceType::TABLET ], + 'Luna TAB274' => [ 'Yarvik', 'Luna 7c', DeviceType::TABLET ], + 'Luna TAB374' => [ 'Yarvik', 'Luna 8c', DeviceType::TABLET ], + 'Luna TAB474' => [ 'Yarvik', 'Luna 10', DeviceType::TABLET ], + 'Luna TAB10-150' => [ 'Yarvik', 'Luna 10c', DeviceType::TABLET ], + 'TAB09-410' => [ 'Yarvik', 'Noble 9.7', DeviceType::TABLET ], + 'TAB10-410' => [ 'Yarvik', 'Noble 10.1', DeviceType::TABLET ], + 'Noble TAB07-485' => [ 'Yarvik', 'Noble Mini', DeviceType::TABLET ], + 'TAB07-485' => [ 'Yarvik', 'Noble Mini', DeviceType::TABLET ], + 'Xenta-TAB07-210' => [ 'Yarvik', 'Xenta 7c', DeviceType::TABLET ], + 'Xenta-TAB07-211' => [ 'Yarvik', 'Xenta 7c', DeviceType::TABLET ], + 'TAB07-200' => [ 'Yarvik', 'Xenta 7ic', DeviceType::TABLET ], + 'Xenta TAB07-200' => [ 'Yarvik', 'Xenta 7ic', DeviceType::TABLET ], + 'Xenta TAB08-200' => [ 'Yarvik', 'Xenta 8ic', DeviceType::TABLET ], + 'Xenta TAB08-201-3G' => [ 'Yarvik', 'Xenta 8c', DeviceType::TABLET ], + 'TAB9-200' => [ 'Yarvik', 'Xenta 9.7ic', DeviceType::TABLET ], + 'Xenta TAB9-200' => [ 'Yarvik', 'Xenta 9.7ic', DeviceType::TABLET ], + 'Xenta TAB09-211' => [ 'Yarvik', 'Xenta 9.7ic+', DeviceType::TABLET ], + 'Xenta TAB10-211' => [ 'Yarvik', 'Xenta 10ic', DeviceType::TABLET ], + 'Xenta TAB10-201' => [ 'Yarvik', 'Xenta 10ic', DeviceType::TABLET ], + 'TAB10-201' => [ 'Yarvik', 'Xenta 10ic', DeviceType::TABLET ], + 'Xenta TAB13-201' => [ 'Yarvik', 'Xenta 13c', DeviceType::TABLET ], + 'N6' => [ 'Yarvik', 'TAB210 Tablet', DeviceType::TABLET ], + 'TAB210' => [ 'Yarvik', 'TAB210 Tablet', DeviceType::TABLET ], + 'TAB220' => [ 'Yarvik', 'GoTab Velocity', DeviceType::TABLET ], + 'TAB224' => [ 'Yarvik', 'GoTab Velocity', DeviceType::TABLET ], + 'TAB250' => [ 'Yarvik', 'TAB250 Tablet', DeviceType::TABLET ], + 'TAB275' => [ 'Yarvik', 'GoTab Ion', DeviceType::TABLET ], + 'TAB260' => [ 'Yarvik', 'GoTab Velocity', DeviceType::TABLET ], + 'TAB264' => [ 'Yarvik', 'GoTab Velocity', DeviceType::TABLET ], + 'TAB360' => [ 'Yarvik', 'GoTab Gravity', DeviceType::TABLET ], + 'TAB364' => [ 'Yarvik', 'GoTab Gravity', DeviceType::TABLET ], + 'TAB410' => [ 'Yarvik', 'TAB410 Tablet', DeviceType::TABLET ], + 'TAB411' => [ 'Yarvik', 'GoTab Slimline', DeviceType::TABLET ], + 'TAB420' => [ 'Yarvik', 'GoTab Xerios', DeviceType::TABLET ], + 'TAB424' => [ 'Yarvik', 'GoTab Xerios', DeviceType::TABLET ], + 'TAB450' => [ 'Yarvik', 'GoTab Slimline', DeviceType::TABLET ], + 'TAB460' => [ 'Yarvik', 'GoTab Xerios', DeviceType::TABLET ], + 'TAB461' => [ 'Yarvik', 'GoTab Xerios', DeviceType::TABLET ], + 'TAB464' => [ 'Yarvik', 'GoTab Xerios', DeviceType::TABLET ], + 'TAB465EUK' => [ 'Yarvik', 'GoTab Exxa', DeviceType::TABLET ], + 'TAB469' => [ 'Yarvik', 'GoTab Yotta', DeviceType::TABLET ], + 'TAB466EUK' => [ 'Yarvik', 'GoTab Zetta', DeviceType::TABLET ], + 'TAB467' => [ 'Yarvik', 'GoTab Zetta', DeviceType::TABLET ], + 'TAB462' => [ 'Yarvik', 'Zania 10ic', DeviceType::TABLET ], + 'YP712' => [ 'Yashi', 'YPAD 7" YP712', DeviceType::TABLET ], + + '(Andy|Yezz)!!' => [ + 'Andy 3.5EI' => [ 'Yezz', 'Andy A3.5EI' ], + 'yezz Andy A3.5EP' => [ 'Yezz', 'Andy A3.5EP' ], + 'Andy A4' => [ 'Yezz', 'Andy A4' ], + 'YEZZ-A4M' => [ 'Yezz', 'Andy A4M' ], + 'Andy A5' => [ 'Yezz', 'Andy A5' ], + 'YEZZ-A5QP' => [ 'Yezz', 'Andy A5QP' ], + 'ANDY A5QP' => [ 'Yezz', 'Andy A5QP' ], + 'Yezz-AC4EI' => [ 'Yezz', 'Andy AC4EI' ], + 'Andy C3.5EI' => [ 'Yezz', 'Andy C3.5EI' ], + 'Andy C5V' => [ 'Yezz', 'Andy C5V' ], + 'Andy C5VP' => [ 'Yezz', 'Andy C5VP' ], + 'ANDY-3.5EI' => [ 'Yezz', 'Andy 3.5EI' ], + 'YEZZ-4E' => [ 'Yezz', 'Andy 4E' ], + 'Andy 4E' => [ 'Yezz', 'Andy 4E' ], + 'Andy 4EI' => [ 'Yezz', 'Andy 4EI' ], + 'ANDY 5EI' => [ 'Yezz', 'Andy 5EI' ], + 'Yezz-ANDY5EL' => [ 'Yezz', 'Andy 5EL' ], + 'Yezz-T7FD' => [ 'Yezz', 'Epic T7FD', DeviceType::TABLET ], + ], + + 'C868' => [ 'Yicheer', 'C868' ], + 'DEM752NC' => [ 'Yifang', 'M752' ], + 'EMR1879' => [ 'Yidong', 'EMR1879', DeviceType::TABLET ], + 'YD201' => [ 'Yota', 'YotaPhone 2' ], + 'YX-YUSUN E80' => [ 'Yusun', 'E80' ], + 'YX-YUSUN E89' => [ 'Yusun', 'E89' ], + 'YX-YUSUN E96' => [ 'Yusun', 'E96' ], + 'YUSUN E98' => [ 'Yusun', 'E98' ], + 'YUSUN L71' => [ 'Yusun', 'L71' ], + 'YUSUN L88' => [ 'Yusun', 'L88' ], + 'LA-I Dual core' => [ 'Yusun', 'LA-I' ], + 'LA-M3' => [ 'Yusun', 'LA-M3' ], + 'LA1-L' => [ 'Yusun', 'LA1-L' ], + 'LA2-E' => [ 'Yusun', 'LA2-E' ], + 'LA2-E1' => [ 'Yusun', 'LA2-E1' ], + 'LA2-L' => [ 'Yusun', 'LA2-L' ], + 'LA2-T' => [ 'Yusun', 'LA2-T' ], + 'YUSUN LA2-T' => [ 'Yusun', 'LA2-T' ], + 'YUSUN LA2 T' => [ 'Yusun', 'LA2-T' ], + 'YUSUN LA2-T1' => [ 'Yusun', 'LA2-T1' ], + 'YUSUN LA2 T1' => [ 'Yusun', 'LA2-T1' ], + 'LA2-T1' => [ 'Yusun', 'LA2-T1' ], + 'YUSUN LA2-W' => [ 'Yusun', 'LA2-W' ], + 'LA2-W' => [ 'Yusun', 'LA2-W' ], + 'LA2-W1' => [ 'Yusun', 'LA2-W1' ], + 'YUSUN LA2 W1' => [ 'Yusun', 'LA2-W1' ], + 'LA3-W' => [ 'Yusun', 'LA3-W' ], + 'LA3S' => [ 'Yusun', 'LA3S' ], + 'LA5-W' => [ 'Yusun', 'LA5-W' ], + 'YUSUN T22' => [ 'Yusun', 'T22' ], + 'YUSUN-T22' => [ 'Yusun', 'T22' ], + 'YUSUN T30' => [ 'Yusun', 'T30' ], + 'YUSUN T31' => [ 'Yusun', 'T31' ], + 'YUSUN T50' => [ 'Yusun', 'T50' ], + 'YUSUN T85' => [ 'Yusun', 'T85' ], + 'YUSUN W90' => [ 'Yusun', 'W90' ], + 'YUSUN W306' => [ 'Yusun', 'W306' ], + 'yusun W702' => [ 'Yusun', 'W702' ], + 'YUSUN W706' => [ 'Yusun', 'W706' ], + 'YUSUN W708' => [ 'Yusun', 'W708' ], + 'YUSUN - W 800' => [ 'Yusun', 'W800' ], + 'YUSUN--W 800' => [ 'Yusun', 'W800' ], + 'YUSUN W808' => [ 'Yusun', 'W808' ], + 'YUSUN -- W 900' => [ 'Yusun', 'W900' ], + 'TB782B' => [ 'Zeki', 'TB782B', DeviceType::TABLET ], + 'TBD753B' => [ 'Zeki', 'TBD753B', DeviceType::TABLET ], + 'TBDB763' => [ 'Zeki', 'TBDB763', DeviceType::TABLET ], + 'TBDB863' => [ 'Zeki', 'TBDB863', DeviceType::TABLET ], + 'TBDC1093' => [ 'Zeki', 'TBDC1093', DeviceType::TABLET ], + 'TBDG734' => [ 'Zeki', 'TBDG734', DeviceType::TABLET ], + 'TBDG874' => [ 'Zeki', 'TBDG874', DeviceType::TABLET ], + 'TBDG1073' => [ 'Zeki', 'TBDG1073', DeviceType::TABLET ], + 'TBQC1063' => [ 'Zeki', 'TBQC1063', DeviceType::TABLET ], + 'ZENITHINK C94!' => [ 'Zenithink', 'C94', DeviceType::TABLET ], + 'p7901a' => [ 'Zenithink', 'Epad P7901A', DeviceType::TABLET ], + 'zt180' => [ 'Zenithink', 'ZT-180', DeviceType::TABLET ], + 'Z282 C91' => [ 'Zenithink', 'ZT-282', DeviceType::TABLET ], + + 'ultrafone!!' => [ + 'ultrafone 303' => [ 'Zen', 'Ultrafone 303' ], + 'ultrafone 303 Play' => [ 'Zen', 'Ultrafone 303' ], + 'ultrafone 304' => [ 'Zen', 'Ultrafone 304' ], + 'ultrafone 308' => [ 'Zen', 'Ultrafone 308' ], + 'ultrafone 501' => [ 'Zen', 'Ultrafone 501' ], + 'ultrafone 502' => [ 'Zen', 'Ultrafone 502' ], + 'ultrafone 503' => [ 'Zen', 'Ultrafone 503' ], + 'ultrafone 504' => [ 'Zen', 'Ultrafone 504' ], + 'ultrafone 701HD' => [ 'Zen', 'Ultrafone 701HD' ], + 'ultrafone 701FHD' => [ 'Zen', 'Ultrafone 701FHD' ], + ], + + 'Zigo Eon6i' => [ 'Zigo', 'Eon6i' ], + 'Zigo Eon7i' => [ 'Zigo', 'Eon7i' ], + 'NEBULA6.9' => [ 'Zigo', 'Nebula Tab 6.9', DeviceType::TABLET ], + 'Zigo Nebula Tab 7.1' => [ 'Zigo', 'Nebula Tab 7.1', DeviceType::TABLET ], + 'Jaguar3' => [ 'ZiiLabs', 'Jaguar 3', DeviceType::TABLET ], + 'Jaguar7' => [ 'ZiiLabs', 'Jaguar 7', DeviceType::TABLET ], + 'Ziss Ranger HD' => [ 'Ziss', 'Ranger HD' ], + 'ZBOX-ID18' => [ 'Zotac', 'ZBOX ID18', DeviceType::DESKTOP ], + 'ZBOX-ID81' => [ 'Zotac', 'ZBOX ID81', DeviceType::DESKTOP ], + + 'ZTE G[0-9]{3,3}!!' => [ + 'ZTE G717C' => [ 'ZTE', 'G717C' ], + 'ZTE G718C' => [ 'ZTE', 'G718C' ], + 'ZTE G719C' => [ 'ZTE', 'G719C' ], + 'ZTE G720C' => [ 'ZTE', 'G720C' ], + 'ZTE G720T' => [ 'ZTE', 'G720T' ], + 'ZTE G721C' => [ 'ZTE', 'G721 Star 3' ], + ], + + 'ZTE Q[0-9]{3,3}!!' => [ + 'ZTE Q101T' => [ 'ZTE', 'Q101T' ], + 'ZTE Q201T' => [ 'ZTE', 'Q201T' ], + 'ZTE Q301C' => [ 'ZTE', 'Q301C' ], + 'ZTE Q302C' => [ 'ZTE', 'Q302C' ], + 'ZTE Q501T' => [ 'ZTE', 'Q501T' ], + 'ZTE Q501U' => [ 'ZTE', 'Q501U' ], + 'ZTE Q503U' => [ 'ZTE', 'Q503U' ], + 'ZTE Q505T' => [ 'ZTE', 'Q505T' ], + 'ZTE Q507T' => [ 'ZTE', 'Q507T' ], + 'ZTE Q508U' => [ 'ZTE', 'Q508U' ], + 'ZTE Q509T' => [ 'ZTE', 'Q509T' ], + 'ZTE Q529C' => [ 'ZTE', 'Q529C' ], + 'ZTE Q529E' => [ 'ZTE', 'Q529E' ], + 'ZTE Q529T' => [ 'ZTE', 'Q529T' ], + 'ZTE Q701C' => [ 'ZTE', 'Q701C' ], + 'ZTE Q705U' => [ 'ZTE', 'Q705U' ], + 'ZTE Q801L' => [ 'ZTE', 'Q801L' ], + 'ZTE Q801U' => [ 'ZTE', 'Q801U' ], + 'ZTE Q802C' => [ 'ZTE', 'Q802C' ], + 'ZTE Q802D' => [ 'ZTE', 'Q802D' ], + 'ZTE Q802T' => [ 'ZTE', 'Q802T' ], + 'ZTE Q805T' => [ 'ZTE', 'Q805T' ], + ], + + 'ZTE Q[0-9]!!' => [ + 'ZTE Q2S-C' => [ 'ZTE', 'Q2S-C' ], + 'ZTE Q2S-T' => [ 'ZTE', 'Q2S-T' ], + 'ZTE Q5-T' => [ 'ZTE', 'Q5-T' ], + 'ZTE Q7' => [ 'ZTE', 'Q7' ], + 'ZTE Q7-C' => [ 'ZTE', 'Q7-C' ], + ], + + 'ZTE T[0-9]!!' => [ + 'ZTE T12' => [ 'ZTE', 'T12' ], + 'ZTE T22' => [ 'ZTE', 'T22' ], + 'ZTE T28' => [ 'ZTE', 'T28' ], + 'ZTE T28 Prepaid' => [ 'ZTE', 'T28' ], + 'ZTE T60' => [ 'ZTE', 'T60' ], + 'ZTE T80' => [ 'ZTE', 'T80' ], + 'ZTE T81' => [ 'ZTE', 'T81 Grand X LTE' ], + 'ZTE T82' => [ 'ZTE', 'T82 Grand X LTE' ], + 'ZTE T83' => [ 'ZTE', 'T83' ], + 'ZTE T86' => [ 'ZTE', 'T86' ], + 'ZTE T760' => [ 'ZTE', 'T760' ], + ], + + '(ZTE )?Blade!!' => [ + 'ZTE Blade' => [ 'ZTE', 'Blade' ], + 'ZTE Blade 2' => [ 'ZTE', 'Blade 2' ], + 'BLADE III IL' => [ 'ZTE', 'Blade III' ], + 'ZTE Blade III Pro' => [ 'ZTE', 'Blade III Pro' ], + 'ZTE Blade Apex' => [ 'ZTE', 'Blade Apex' ], + 'ZTE Blade Apex2' => [ 'ZTE', 'Blade Apex2' ], + 'ZTE Blade Apex3' => [ 'ZTE', 'Blade Apex3' ], + 'ZTE Blade A5' => [ 'ZTE', 'Blade A5' ], + 'ZTE Blade A430' => [ 'ZTE', 'Blade A430' ], + 'ZTE Blade A450' => [ 'ZTE', 'Blade A450' ], + 'ZTE Blade A452' => [ 'ZTE', 'Blade A452' ], + 'ZTE BLADE A460' => [ 'ZTE', 'Blade A460' ], + 'ZTE Blade A465' => [ 'ZTE', 'Blade A465' ], + 'ZTE Blade A470' => [ 'ZTE', 'Blade A470' ], + 'ZTE Blade A570' => [ 'ZTE', 'Blade A570' ], + 'ZTE Blade AF5' => [ 'ZTE', 'Blade AF5' ], + 'ZTE Blade Buzz' => [ 'ZTE', 'Blade Buzz' ], + 'ZTE BLADE C' => [ 'ZTE', 'Blade C' ], + 'ZTE Blade C2' => [ 'ZTE', 'Blade C2' ], + 'ZTE Blade C2 Plus' => [ 'ZTE', 'Blade C2 Plus' ], + 'ZTE Blade C310' => [ 'ZTE', 'Blade C310' ], + 'ZTE Blade C312' => [ 'ZTE', 'Blade C312' ], + 'ZTE Blade C320' => [ 'ZTE', 'Blade C320' ], + 'ZTE Blade C340' => [ 'ZTE', 'Blade C340' ], + 'ZTE Blade C341' => [ 'ZTE', 'Blade C341' ], + 'ZTE Blade C342' => [ 'ZTE', 'Blade C342' ], + 'ZTE Blade C370' => [ 'ZTE', 'Blade C370' ], + 'ZTE Blade D6 Lite 3G' => [ 'ZTE', 'Blade D6 Lite' ], + 'ZTE Blade D6 Lite 4G' => [ 'ZTE', 'Blade D6 Lite' ], + 'ZTE Blade G' => [ 'ZTE', 'Blade G' ], + 'Blade G LTE' => [ 'ZTE', 'Blade G' ], + 'ZTE Blade G LTE' => [ 'ZTE', 'Blade G' ], + 'ZTE Blade G Lux' => [ 'ZTE', 'Blade G Lux' ], + 'Blade G Lux' => [ 'ZTE', 'Blade G Lux' ], + 'ZTE Blade G Plus' => [ 'ZTE', 'Blade G Plus' ], + 'ZTE Blade G Pro' => [ 'ZTE', 'Blade G Pro' ], + 'ZTE Blade G2' => [ 'ZTE', 'Blade G2' ], + 'Blade G2' => [ 'ZTE', 'Blade G2' ], + 'ZTE Blade HN' => [ 'ZTE', 'Blade HN' ], + 'Blade Super' => [ 'ZTE', 'Blade Super' ], + 'Blade S' => [ 'ZTE', 'Blade S' ], + 'ZTE Blade S6' => [ 'ZTE', 'Blade S6' ], + 'Blade S6' => [ 'ZTE', 'Blade S6' ], + 'Blade S6 Plus' => [ 'ZTE', 'Blade S6 Plus' ], + 'ZTE Blade S6 Plus' => [ 'ZTE', 'Blade S6 Plus' ], + 'ZTE Blade L' => [ 'ZTE', 'Blade L' ], + 'ZTE Blade L2' => [ 'ZTE', 'Blade L2' ], + 'Blade L2' => [ 'ZTE', 'Blade L2' ], + 'Blade L2 Plus' => [ 'ZTE', 'Blade L2 Plus' ], + 'ZTE Blade L3' => [ 'ZTE', 'Blade L3' ], + 'Blade L3' => [ 'ZTE', 'Blade L3' ], + 'ZTE Blade L3 Apex' => [ 'ZTE', 'Blade L3 Apex' ], + 'ZTE Blade L3 Lite' => [ 'ZTE', 'Blade L3 Lite' ], + 'ZTE Blade L3 Plus' => [ 'ZTE', 'Blade L3 Plus' ], + 'ZTE Blade L4 Pro' => [ 'ZTE', 'Blade L4 Pro' ], + 'Blade L5 Plus' => [ 'ZTE', 'Blade L5 Plus' ], + 'ZTE Blade L370' => [ 'ZTE', 'Blade L370' ], + 'Blade Q' => [ 'ZTE', 'Blade Q' ], + 'ZTE Blade Q' => [ 'ZTE', 'Blade Q' ], + 'ZTE Blade Q Lux' => [ 'ZTE', 'Blade Q Lux' ], + 'Blade Q Lux' => [ 'ZTE', 'Blade Q Lux' ], + 'ZTE Blade Q Lux 3G' => [ 'ZTE', 'Blade Q Lux' ], + 'ZTE Blade Q Maxi' => [ 'ZTE', 'Blade Q Maxi' ], + 'Blade Q Maxi' => [ 'ZTE', 'Blade Q Maxi' ], + 'ZTE Blade Q Mini' => [ 'ZTE', 'Blade Q Mini' ], + 'ZTE Blade Q1' => [ 'ZTE', 'Blade Q1' ], + 'ZTE Blade Q3' => [ 'ZTE', 'Blade Q3' ], + 'Blade S Lite' => [ 'ZTE', 'Blade S Lite' ], + 'Blade S6 Lite' => [ 'ZTE', 'Blade S6 Lite' ], + 'ZTE Blade V' => [ 'ZTE', 'Blade V' ], + 'ZTE Blade V2' => [ 'ZTE', 'Blade V2' ], + 'ZTE Blade V2 Lite' => [ 'ZTE', 'Blade V2 Lite' ], + 'ZTE Blade V6' => [ 'ZTE', 'Blade V6' ], + 'Blade V6' => [ 'ZTE', 'Blade V6' ], + 'ZTE Blade V220' => [ 'ZTE', 'Blade V220' ], + 'ZTE Blade V580' => [ 'ZTE', 'Blade V580' ], + 'Blade V880' => [ 'ZTE', 'Blade V880' ], + 'ZTE Blade Vec' => [ 'ZTE', 'Blade Vec' ], + 'ZTE Blade Vec 4G' => [ 'ZTE', 'Blade Vec' ], + 'ZTE Blade Vec Pro' => [ 'ZTE', 'Blade Vec Pro' ], + 'ZTE Blade X9' => [ 'ZTE', 'Blade X9' ], + ], + + 'ZTE Geek!!' => [ + 'ZTE Geek' => [ 'ZTE', 'Geek' ], + 'ZTE Geek 2' => [ 'ZTE', 'Geek II' ], + 'ZTE Geek 2 LTE' => [ 'ZTE', 'Geek II' ], + 'ZTE GEEK II 4G' => [ 'ZTE', 'Geek II' ], + 'ZTE Geek 2 pro' => [ 'ZTE', 'Geek II Pro' ], + 'ZTE GEEK II Pro' => [ 'ZTE', 'Geek II Pro' ], + 'ZTE GEEK II Pro 4G' => [ 'ZTE', 'Geek II Pro' ], + ], + + '(ZTE )?Grand!!' => [ + 'ZTE Grand Memo' => [ 'ZTE', 'Grand Memo' ], + 'ZTE Grand Memo lite' => [ 'ZTE', 'Grand Memo Lite' ], + 'Grand Memo lite' => [ 'ZTE', 'Grand Memo Lite' ], + 'ZTE Grand S' => [ 'ZTE', 'Grand S' ], + 'ZTE Grand S lite' => [ 'ZTE', 'Grand S Lite' ], + 'Grand S Flex' => [ 'ZTE', 'Grand S Flex' ], + 'ZTE Grand S II' => [ 'ZTE', 'Grand S II' ], + 'ZTE Grand S II LTE' => [ 'ZTE', 'Grand S II' ], + 'ZTE Grand X Classic' => [ 'ZTE', 'Grand X Classic' ], + 'ZTE Grand X Quad' => [ 'ZTE', 'Grand X Quad' ], + 'Grand X Quad Lite' => [ 'ZTE', 'Grand X Quad Lite' ], + 'ZTE Grand X Quad Lite' => [ 'ZTE', 'Grand X Quad Lite' ], + 'Grand X2' => [ 'ZTE', 'Grand X2' ], + 'ZTE Grand X2' => [ 'ZTE', 'Grand X2' ], + 'ZTE Grand X 2' => [ 'ZTE', 'Grand X2' ], + 'ZTE Grand X2 In' => [ 'ZTE', 'Grand X2' ], + ], + + 'ZTE Kis!!' => [ + 'ZTE Kis Q' => [ 'ZTE', 'Kis Q' ], + 'ZTE KIS Flex' => [ 'ZTE', 'Kis Flex' ], + 'ZTE Kis Lite' => [ 'ZTE', 'Kis Lite' ], + 'ZTE KIS II' => [ 'ZTE', 'Kis 2' ], + 'ZTE KIS II Max' => [ 'ZTE', 'Kis 2 Max' ], + 'ZTE Kis II Max plus' => [ 'ZTE', 'Kis 2 Max Plus' ], + 'ZTE KIS II PRO' => [ 'ZTE', 'Kis 2 Pro' ], + 'ZTE Kis 3' => [ 'ZTE', 'Kis 3' ], + 'ZTE Kis3 max' => [ 'ZTE', 'Kis 3 Max' ], + ], + + 'KIS' => [ 'ZTE', 'Kis' ], + 'KIS PLUS' => [ 'ZTE', 'Kis Plus' ], + 'KIS II' => [ 'ZTE', 'Kis 2' ], + 'KIS II Max' => [ 'ZTE', 'Kis 2 Max' ], + 'KIS C341' => [ 'ZTE', 'Kis C341' ], + 'Kis T3' => [ 'ZTE', 'Kis T3' ], + + 'ZTE Libra' => [ 'ZTE', 'Libra' ], + 'ZTE LINK' => [ 'ZTE', 'Link' ], + 'ZTE T T9' => [ 'ZTE', 'Light Tab T9', DeviceType::TABLET ], + 'Light Tab' => [ 'ZTE', 'Light Tab V9', DeviceType::TABLET ], + 'ZTE V7073' => [ 'ZTE', 'Light Tab V9', DeviceType::TABLET ], + 'V9' => [ 'ZTE', 'Light Tab V9', DeviceType::TABLET ], + 'ZTE V9' => [ 'ZTE', 'Light Tab V9', DeviceType::TABLET ], + 'V9S' => [ 'ZTE', 'Light Tab V9S', DeviceType::TABLET ], + 'ZTE V9A' => [ 'ZTE', 'Light Tab 2', DeviceType::TABLET ], + 'ZTE C V9E' => [ 'ZTE', 'Light Tab 2', DeviceType::TABLET ], + 'V9e' => [ 'ZTE', 'Light Tab 2', DeviceType::TABLET ], + 'V9e+' => [ 'ZTE', 'Light Tab 2', DeviceType::TABLET ], + 'V9A' => [ 'ZTE', 'Light Tab 2', DeviceType::TABLET ], + 'Light Tab 2' => [ 'ZTE', 'Light Tab 2', DeviceType::TABLET ], + 'Light Tab 2W' => [ 'ZTE', 'Light Tab 2W', DeviceType::TABLET ], + 'ZTE V7273' => [ 'ZTE', 'Light Tab 2W', DeviceType::TABLET ], + 'V9C' => [ 'ZTE', 'Light Tab 3', DeviceType::TABLET ], + 'A3' => [ 'ZTE', 'A3' ], + 'A4' => [ 'ZTE', 'A4' ], + 'ZTE R22' => [ 'ZTE', 'R22' ], + 'ZTE V70' => [ 'ZTE', 'V70', DeviceType::TABLET ], + 'ZTE V72' => [ 'ZTE', 'V72', DeviceType::TABLET ], + 'ZTE V72A' => [ 'ZTE', 'V72A', DeviceType::TABLET ], + 'ZTE K97' => [ 'ZTE', 'K97', DeviceType::TABLET ], + 'ZTE T T98' => [ 'ZTE', 'T98', DeviceType::TABLET ], + 'V55' => [ 'ZTE', 'Optik', DeviceType::TABLET ], + 'Acqua' => [ 'ZTE', 'Acqua' ], + 'a5' => [ 'ZTE', 'Blade' ], + 'Crescent' => [ 'ZTE', 'Blade S' ], + 'ZTE 975' => [ 'ZTE', 'Geek' ], + 'Skate' => [ 'ZTE', 'Skate' ], + 'ZTE Skate' => [ 'ZTE', 'Skate' ], + 'Skate Pro' => [ 'ZTE', 'Skate Pro' ], + 'ZTE Skate 2' => [ 'ZTE', 'Skate 2' ], + 'ZTE STAR' => [ 'ZTE', 'Star 1' ], + 'ZTE Star 1' => [ 'ZTE', 'Star 1' ], + 'ZTE Tureis' => [ 'ZTE', 'Tureis' ], + 'ZTE S118' => [ 'ZTE', 'S118 Grand S Lite' ], + 'ZTE S251' => [ 'ZTE', 'S251' ], + 'ZTE S291' => [ 'ZTE', 'S291 Grand S II' ], + 'X500' => [ 'ZTE', 'X500 Score' ], + 'ZTE X500' => [ 'ZTE', 'X500 Score' ], + 'ZTE C X500' => [ 'ZTE', 'X500 Score' ], + 'ZTE C N600!' => [ 'ZTE', 'N600' ], + 'ZTE C N606' => [ 'ZTE', 'N606' ], + 'Z660G' => [ 'ZTE', 'Z660 Wirl' ], + 'Z665C' => [ 'ZTE', 'Z665 Valet' ], + 'Z667' => [ 'ZTE', 'Z667 Prelude 2' ], + 'ZTE Z667' => [ 'ZTE', 'Z667 Prelude 2' ], + 'ZTE Z667G' => [ 'ZTE', 'Z667 Wirl 2' ], + 'Z667G' => [ 'ZTE', 'Z667 Wirl 2' ], + 'Z667T' => [ 'ZTE', 'Z667 Zinger' ], + 'ZTE Z669' => [ 'ZTE', 'Z669 Prelude 2' ], + 'ZTE C N700' => [ 'ZTE', 'N700' ], + 'ZTE U N720' => [ 'ZTE', 'N720' ], + 'ZTE U N721' => [ 'ZTE', 'N721' ], + 'ZTE P727A' => [ 'ZTE', 'P722A' ], + 'Z730' => [ 'ZTE', 'Z730 Concord II' ], + 'Z740' => [ 'ZTE', 'Z740 Radiant' ], + 'ZTE Z740' => [ 'ZTE', 'Z740 Radiant' ], + 'Z740G' => [ 'ZTE', 'Z740 Sonata 4G' ], + 'ZTE Z740G' => [ 'ZTE', 'Z740 Sonata 4G' ], + 'ZTE C R750' => [ 'ZTE', 'R750' ], + 'ZTE C R750+' => [ 'ZTE', 'R750' ], + 'Z750C' => [ 'ZTE', 'Z750 Savvy' ], + 'Z752C' => [ 'ZTE', 'Z752 Zephyr' ], + 'Z753G' => [ 'ZTE', 'Z753 Paragon' ], + 'ZTE Z753G' => [ 'ZTE', 'Z753 Paragon' ], + 'ZTE Z755' => [ 'ZTE', 'Z755' ], + 'ZTE C N760' => [ 'ZTE', 'N760' ], + 'ZTE U V760' => [ 'ZTE', 'V760' ], + 'N762' => [ 'ZTE', 'N762' ], + 'ZTE CLARO Q1' => [ 'ZTE', 'CLARO Q1' ], + 'ZTE LEO M1' => [ 'ZTE', 'LEO M1' ], + 'ZTE LEO S1' => [ 'ZTE', 'LEO S1' ], + 'ZTE LEO S2' => [ 'ZTE', 'LEO S2' ], + 'ZTE LEO Q1' => [ 'ZTE', 'LEO Q1' ], + 'ZTE V765M' => [ 'ZTE', 'LEO Q1' ], + 'ZTE LEO Q2' => [ 'ZTE', 'LEO Q2' ], + 'ZTE V768' => [ 'ZTE', 'V768 Concord' ], + 'Z768G' => [ 'ZTE', 'Z768' ], + 'ZTE V769M' => [ 'ZTE', 'LEO Q2' ], + 'Z777' => [ 'ZTE', 'Z777 Grand X' ], + 'ZTE Z777' => [ 'ZTE', 'Z777 Grand X' ], + 'ZTE V779M' => [ 'ZTE', 'V779M' ], + 'ZTE C N780' => [ 'ZTE', 'N780' ], + 'Z787' => [ 'ZTE', 'Z787' ], + 'ZTE Z787' => [ 'ZTE', 'Z787' ], + 'ZTE N788' => [ 'ZTE', 'N788' ], + 'ZTE Kis Pro' => [ 'ZTE', 'V788 Kis' ], + 'ZTE V788!' => [ 'ZTE', 'V788 Kis' ], + 'ZTE U788!' => [ 'ZTE', 'U788 Kis' ], + 'Z788G' => [ 'ZTE', 'Z788' ], + 'ZTE N789' => [ 'ZTE', 'N789' ], + 'ZTE B790' => [ 'ZTE', 'B790' ], + 'ZTE N790!' => [ 'ZTE', 'N790' ], + 'ZTE T790' => [ 'ZTE', 'T790' ], + 'ZTE U790' => [ 'ZTE', 'U790' ], + 'ZTE V790' => [ 'ZTE', 'V790' ], + 'ZTE U791!' => [ 'ZTE', 'U791' ], + 'ZTE V791' => [ 'ZTE', 'V791' ], + 'Z791G' => [ 'ZTE', 'Z791G' ], + 'ZTE Z791G' => [ 'ZTE', 'Z791G' ], + 'ZTE B792' => [ 'ZTE', 'B792' ], + 'Z792' => [ 'ZTE', 'Z792' ], + 'ZTE U793' => [ 'ZTE', 'U793' ], + 'ZTE V793' => [ 'ZTE', 'V793' ], + 'ZTE B795' => [ 'ZTE', 'B795' ], + 'ZTE N795' => [ 'ZTE', 'N795' ], + 'ZTE U795!' => [ 'ZTE', 'U795' ], + 'ZTE V795' => [ 'ZTE', 'V795' ], + 'Z795G' => [ 'ZTE', 'Z795 Solar' ], + 'Z796C' => [ 'ZTE', 'Z796' ], + 'Z797C' => [ 'ZTE', 'Z797' ], + 'ZTE N798!' => [ 'ZTE', 'N798' ], + 'ZTE N799!' => [ 'ZTE', 'N799' ], + 'N799D' => [ 'ZTE', 'N799' ], + 'N800' => [ 'ZTE', 'N800 Awe' ], + 'ZTE T U802' => [ 'ZTE', 'U802' ], + 'ZTE T U805' => [ 'ZTE', 'U805' ], + 'RacerII' => [ 'ZTE', 'U806 Racer II' ], + 'ZTE T U806' => [ 'ZTE', 'U806 Racer II' ], + 'ZTE N807' => [ 'ZTE', 'N807' ], + 'ZTE U807' => [ 'ZTE', 'U807' ], + 'ZTE U807N' => [ 'ZTE', 'U807' ], + 'ZTE V807' => [ 'ZTE', 'V807 Blade C' ], + 'ZTE U808' => [ 'ZTE', 'U808' ], + 'ZTE V808' => [ 'ZTE', 'V808' ], + 'ZTE U809' => [ 'ZTE', 'U809' ], + 'ZTE V809' => [ 'ZTE', 'V809 Blade C2' ], + 'E810' => [ 'ZTE', 'E810' ], + 'N810' => [ 'ZTE', 'N810 Reef' ], + 'ZTE V811' => [ 'ZTE', 'V811' ], + 'ZTE V811W' => [ 'ZTE', 'V811' ], + 'ZTE Z812' => [ 'ZTE', 'Z812 Maven' ], + 'ZTE V815W' => [ 'ZTE', 'V815' ], + 'ZTE T U812' => [ 'ZTE', 'U812' ], + 'ZTE Z813' => [ 'ZTE', 'Z813' ], + 'ZTE V816W' => [ 'ZTE', 'V816W' ], + 'ZTE U817' => [ 'ZTE', 'U817' ], + 'ZTE V817' => [ 'ZTE', 'V817' ], + 'ZTE N818' => [ 'ZTE', 'N818' ], + 'ZTE U818' => [ 'ZTE', 'U818' ], + 'ZTE V818' => [ 'ZTE', 'V818' ], + 'Z818L' => [ 'ZTE', 'Z818 Allstar' ], + 'ZTE U819' => [ 'ZTE', 'U819' ], + 'Z819L' => [ 'ZTE', 'Z819L' ], + 'ZTE GV821' => [ 'ZTE', 'V821' ], + 'ZTE V829' => [ 'ZTE', 'V829' ], + 'ZTE T U830' => [ 'ZTE', 'U830' ], + 'ZTE V830W' => [ 'ZTE', 'Blade G Lux' ], + 'ZTE Z830' => [ 'ZTE', 'Z830' ], + 'N850L' => [ 'ZTE', 'N850L' ], + 'ZTE Racer' => [ 'ZTE', 'X850 Racer' ], + 'Racer' => [ 'ZTE', 'X850 Racer' ], + 'ZTE U X850' => [ 'ZTE', 'X850 Racer' ], + 'ZTE X850' => [ 'ZTE', 'X850 Racer' ], + 'ZTE U V852' => [ 'ZTE', 'V852 Dreamer' ], + 'ZTE N855D' => [ 'ZTE', 'N855D' ], + 'ZTE N855D+' => [ 'ZTE', 'N855D' ], + 'ZTE U V856' => [ 'ZTE', 'V856 Mimosa Mini' ], + 'ZTE V856' => [ 'ZTE', 'V856 Mimosa Mini' ], + 'ZTE U V857' => [ 'ZTE', 'V857' ], + 'ZTE U V859' => [ 'ZTE', 'V859' ], + 'ZTE-U V859' => [ 'ZTE', 'V859' ], + 'ZTE V860' => [ 'ZTE', 'V860' ], + 'N860' => [ 'ZTE', 'N860 Warp' ], + 'ZTE-860U' => [ 'ZTE', 'N860 Warp' ], + 'N861' => [ 'ZTE', 'N861 Warp II' ], + 'V865M' => [ 'ZTE', 'V865' ], + 'ZTE U? X876!' => [ 'ZTE', 'X876 Raise' ], + 'ZTE X876' => [ 'ZTE', 'X876 Raise' ], + 'ZTE V877!' => [ 'ZTE', 'V877' ], + 'ZTE U879' => [ 'ZTE', 'U879' ], + 'ZTE A880' => [ 'ZTE', 'Xiaoxian' ], + 'ZTE B880' => [ 'ZTE', 'B880' ], + 'N880' => [ 'ZTE', 'N880 Blade' ], + 'ZTE C N880!' => [ 'ZTE', 'N880 Blade' ], + 'ZTE R880H' => [ 'ZTE', 'R880H' ], + 'U880' => [ 'ZTE', 'U880 Blade' ], + 'ZTE ?U880!' => [ 'ZTE', 'U880 Blade' ], + 'ZTE T ?U880!' => [ 'ZTE', 'U880 Blade' ], + 'U880E' => [ 'ZTE', 'U880 Blade' ], + 'U880s' => [ 'ZTE', 'U880 Blade' ], + 'V880' => [ 'ZTE', 'V880 Blade' ], + 'ZTE (U )?V880!' => [ 'ZTE', 'V880 Blade' ], + 'ZTE U(V)880+' => [ 'ZTE', 'V880 Blade' ], + 'Blade(-V880|-opda)?$!' => [ 'ZTE', 'V880 Blade' ], + 'ZTE U-V880' => [ 'ZTE', 'V880 Blade' ], + 'ZTE U V-880' => [ 'ZTE', 'V880 Blade' ], + 'ZTE N880E!' => [ 'ZTE', 'N880E' ], + 'ZTE N880F' => [ 'ZTE', 'N880F' ], + 'ZTE N880G' => [ 'ZTE', 'N880G' ], + 'ZTE N881E' => [ 'ZTE', 'N881E' ], + 'ZTE N881F' => [ 'ZTE', 'N881F' ], + 'BLADEII' => [ 'ZTE', 'V881 Blade II' ], + 'Blade2' => [ 'ZTE', 'V881 Blade II' ], + 'ZTE U V881' => [ 'ZTE', 'V881 Blade II' ], + 'ZTE V881' => [ 'ZTE', 'V881 Blade II' ], + 'ZTE V882' => [ 'ZTE', 'V882' ], + 'ZTE N882E' => [ 'ZTE', 'N882E' ], + 'ZTE ?U885!' => [ 'ZTE', 'U885' ], + 'ZTE U887' => [ 'ZTE', 'U887' ], + 'ZTE V887' => [ 'ZTE', 'V887' ], + 'ZTE U889' => [ 'ZTE', 'U889' ], + 'ZTE V889!' => [ 'ZTE', 'V889' ], + 'ZTE U V889D' => [ 'ZTE', 'V889D' ], + 'ZTE Blade III' => [ 'ZTE', 'V889M Blade III' ], + 'Blade III' => [ 'ZTE', 'V889M Blade III' ], + 'ZTE N900' => [ 'ZTE', 'N900' ], + 'ZTE N900D' => [ 'ZTE', 'N900' ], + 'ZTE T ?U900!' => [ 'ZTE', 'U900' ], + 'ZTE M901C' => [ 'ZTE', 'M901 Grand Memo 2' ], + 'MEM02' => [ 'ZTE', 'M901 Grand Memo 2' ], + 'ZTE N909' => [ 'ZTE', 'N909' ], + 'ZTE N909D' => [ 'ZTE', 'N909' ], + 'ZTE N910' => [ 'ZTE', 'N910 Anthem' ], + 'ZTE N919' => [ 'ZTE', 'N919' ], + 'ZTE N919D' => [ 'ZTE', 'N919' ], + 'ZTE C X920' => [ 'ZTE', 'X920' ], + 'ZXY-ZTE-C X920' => [ 'ZTE', 'X920' ], + 'ZTE U930!' => [ 'ZTE', 'U930 Grand X' ], + 'ZTE Grand X' => [ 'ZTE', 'U930 Grand X' ], + 'Grand X' => [ 'ZTE', 'U930 Grand X' ], + 'Grand X In' => [ 'ZTE', 'U930 Grand X IN' ], + 'Grand X Intel' => [ 'ZTE', 'U930 Grand X IN' ], + 'ZTE U930 Ultimate' => [ 'ZTE', 'U930 Grand X' ], + 'ZTE U930HD' => [ 'ZTE', 'U930 HD' ], + 'Z930L' => [ 'ZTE', 'Z930 Unico' ], + 'Z932L' => [ 'ZTE', 'Z932 Rapido' ], + 'Z936L' => [ 'ZTE', 'Z936 Lever' ], + 'ZTE U935' => [ 'ZTE', 'U935' ], + 'ZTE U950' => [ 'ZTE', 'U950' ], + 'ZTE V955' => [ 'ZTE', 'V955' ], + 'ZTE Z955L' => [ 'ZTE', 'Z955L' ], + 'ZTE U956' => [ 'ZTE', 'U956' ], + 'ZTE V956' => [ 'ZTE', 'V956' ], + 'ZTE Z958' => [ 'ZTE', 'Z958 Zmax 2' ], + 'ZTE N960' => [ 'ZTE', 'N960' ], + 'ZTE (U )?V960!' => [ 'ZTE', 'V960 Skate' ], + 'ZTE T ?U960!' => [ 'ZTE', 'U960 Skate' ], + 'ZTE U960E' => [ 'ZTE', 'U960E' ], + 'ZTE U960s2' => [ 'ZTE', 'U960s2' ], + 'ZTE U960s3' => [ 'ZTE', 'U960s3' ], + 'ZTE V965' => [ 'ZTE', 'V965' ], + 'ZTE V967S' => [ 'ZTE', 'V967' ], + 'ZTEv967s' => [ 'ZTE', 'V967' ], + 'ZTE U968' => [ 'ZTE', 'U968' ], + 'ZTE U969' => [ 'ZTE', 'U969' ], + 'ZTE N970' => [ 'ZTE', 'N970 Grand X' ], + 'ZTE U970!' => [ 'ZTE', 'U970 Grand X' ], + 'ZTE V970!' => [ 'ZTE', 'V970 Grand X' ], + 'ZTE Mimosa X' => [ 'ZTE', 'V970 Grand X' ], + 'Z970' => [ 'ZTE', 'Z970' ], + 'ZTE V975' => [ 'ZTE', 'V975 Geek' ], + 'ZTE N980' => [ 'ZTE', 'N980' ], + 'ZTE N983' => [ 'ZTE', 'N983' ], + 'ZTE V983' => [ 'ZTE', 'V983 Grand X Pro' ], + 'Grand X Pro' => [ 'ZTE', 'V983 Grand X Pro' ], + 'ZTE Grand Era' => [ 'ZTE', 'U985 Grand Era' ], + 'ZTE U985' => [ 'ZTE', 'U985 Grand Era' ], + 'ZTE V985' => [ 'ZTE', 'V985 Grand Era' ], + 'ZTE V985 Grand Era' => [ 'ZTE', 'V985 Grand Era' ], + 'N986' => [ 'ZTE', 'N986' ], + 'ZTE N986' => [ 'ZTE', 'N986' ], + 'ZTE V ?987!' => [ 'ZTE', 'V987' ], + 'Z987' => [ 'ZTE', 'Z987' ], + 'ZTE Z987' => [ 'ZTE', 'Z987' ], + 'ZTE U988S' => [ 'ZTE', 'U988S Geek' ], + 'ZTE V988' => [ 'ZTE', 'V988 Grand S' ], + 'ZTE Grand S' => [ 'ZTE', 'V988 Grand S' ], + 'ZTE Roamer' => [ 'ZTE', 'Z990 Roamer ' ], + 'ZTE Z990!' => [ 'ZTE', 'Z990 Roamer' ], + 'ZTE Z992' => [ 'ZTE', 'Z992 Avail 2' ], + 'Z992' => [ 'ZTE', 'Z992 Avail 2' ], + 'ZTE Z993' => [ 'ZTE', 'Z993 Prelude' ], + 'ZTE Z995' => [ 'ZTE', 'Z995 Overture' ], + 'ZTE V998' => [ 'ZTE', 'V998 Grand S' ], + 'ZTE Z998' => [ 'ZTE', 'Z998' ], + 'V8000 USA Cricket' => [ 'ZTE', 'V8000 Engage' ], + 'V8110' => [ 'ZTE', 'V8110' ], + 'X500 USA General' => [ 'ZTE', 'X500 Score' ], + 'X501 USA Cricket' => [ 'ZTE', 'X501 Groove' ], + 'X501 USA RS' => [ 'ZTE', 'X501 Groove' ], + 'ZXY-ZTE V6700' => [ 'ZTE', 'V6700' ], + 'ZTE V9800' => [ 'ZTE', 'V9800 Grand Era LTE' ], + 'ZTE U9810' => [ 'ZTE', 'U9810' ], + 'ZTE U9815' => [ 'ZTE', 'U9815 Grand Memo' ], + 'ZTE V9815' => [ 'ZTE', 'V9815 Grand Memo' ], + 'ZTE Grand Memo LTE' => [ 'ZTE', 'V9815 Grand Memo' ], + 'ZTE V9820' => [ 'ZTE', 'V9820' ], + 'N8000' => [ 'ZTE', 'N8000 Engage LT' ], + 'N8000 USA Cricket' => [ 'ZTE', 'N8000 Engage LT' ], + 'N8000 USA RS' => [ 'ZTE', 'N8000 Engage LT' ], + 'N8000 WHTE CKT' => [ 'ZTE', 'N8000 Engage LT' ], + 'ZXY-ZTE N8010' => [ 'ZTE', 'N8010' ], + 'ZXY-ZTE N8300' => [ 'ZTE', 'N8300' ], + 'N9100' => [ 'ZTE', 'N9100 Force' ], + 'N9101' => [ 'ZTE', 'N9101 Imperial' ], + 'ZTE N9120' => [ 'ZTE', 'N9120 Avid' ], + 'N9130' => [ 'ZTE', 'N9130 Speed' ], + 'N9180' => [ 'ZTE', 'N9180 Red Bull V5' ], + 'N9500' => [ 'ZTE', 'N9500 Flash' ], + 'N9510' => [ 'ZTE', 'N9510 Warp' ], + 'ZTE N9511' => [ 'ZTE', 'N9511 Fury' ], + 'N9515' => [ 'ZTE', 'N9515' ], + 'N9520' => [ 'ZTE', 'N9520 Stormer' ], + 'N9810' => [ 'ZTE', 'N9810 Vital' ], + 'N9835' => [ 'ZTE', 'N9835 Grand S Pro' ], + 'N958St' => [ 'ZTE', 'Nubia V5 Max' ], + 'nubia Z5' => [ 'ZTE', 'Nubia Z5' ], + 'ZTE Nubia Z7' => [ 'ZTE', 'Nubia Z7' ], + 'ZTE Nubia X6' => [ 'ZTE', 'Nubia X6' ], + + '(ZXY-)?NX[0-9]{2,3}!!' => [ + 'NX40X' => [ 'ZTE', 'Nubia Z5 mini' ], + 'NX40X APT' => [ 'ZTE', 'Nubia Z5 mini' ], + 'NX402' => [ 'ZTE', 'Nubia Z5 mini' ], + 'NX403A' => [ 'ZTE', 'Nubia Z5 mini' ], + 'NX404H' => [ 'ZTE', 'Nubia Z5s mini' ], + 'NX405H' => [ 'ZTE', 'Nubia Z5s mini' ], + 'NX501' => [ 'ZTE', 'Nubia Z5' ], + 'NX50X' => [ 'ZTE', 'Nubia Z5' ], + 'NX503' => [ 'ZTE', 'Nubia Z5s' ], + 'NX503A' => [ 'ZTE', 'Nubia Z5s' ], + 'NX503J' => [ 'ZTE', 'Nubia Z5s' ], + 'NX505J' => [ 'ZTE', 'Nubia Z7 Max' ], + 'NX506J' => [ 'ZTE', 'Nubia Z7' ], + 'NX507H' => [ 'ZTE', 'Nubia Z7 mini' ], + 'NX507J' => [ 'ZTE', 'Nubia Z7 mini' ], + 'NX508J' => [ 'ZTE', 'Nubia Z9' ], + 'NX510J' => [ 'ZTE', 'Nubia Z9 Max' ], + 'NX511J' => [ 'ZTE', 'Nubia Z9 mini' ], + 'NX512J' => [ 'ZTE', 'Nubia Z9 Max' ], + 'ZXY-NX512J' => [ 'ZTE', 'Nubia Z9 Max' ], + 'NX513J' => [ 'ZTE', 'Nubia My Prague' ], + 'NX601J' => [ 'ZTE', 'Nubia X6' ], + ], + + 'ATLAS W' => [ 'ZTE', 'Atlas W' ], + 'ZTE N5' => [ 'ZTE', 'N5 Grand Memo' ], + 'ZTE N5L' => [ 'ZTE', 'N5L Grand Memo' ], + 'ZTE N5S' => [ 'ZTE', 'N5S Grand Memo' ], + 'ZTE U5' => [ 'ZTE', 'U5 Grand Memo' ], + 'ZTE U5S' => [ 'ZTE', 'U5S Grand Memo' ], + 'ZTE V5S' => [ 'ZTE', 'V5S Grand Memo' ], + 'N918St' => [ 'ZTE', 'V5S Grand Memo' ], + '003Z' => [ 'ZTE', 'Libero 003Z', 'carrier' => 'Softbank' ], + '008Z' => [ 'ZTE', 'シンプルスマートフォン 008Z', 'carrier' => 'Softbank' ], + '009Z' => [ 'ZTE', 'STAR7 009Z', 'carrier' => 'Softbank' ], + 'ZTE A2015' => [ 'ZTE', 'A2015' ], + 'ZTE A2016' => [ 'ZTE', 'A2016' ], + 'ZTE B2015' => [ 'ZTE', 'B2015' ], + 'ZTE C2016' => [ 'ZTE', 'C2016' ], + 'ZTE STAR' => [ 'ZTE', 'Star 1' ], + 'ZTE S2004' => [ 'ZTE', 'Tianji 3' ], + 'ZTE S2005' => [ 'ZTE', 'Star 2' ], + 'ZTE S2010' => [ 'ZTE', 'S2010' ], + '402ZT' => [ 'ZTE', 'Blade Q+ 402ZT', 'carrier' => 'Softbank' ], + '502ZT' => [ 'ZTE', 'Spro 2 502ZT', 'carrier' => 'Softbank' ], + 'ZTE W1010' => [ 'ZTE', 'Axon Watch', DeviceType::WATCH ], + + 'ZA950' => [ 'Zonda', 'Mega 5.0 ZA950' ], + + '(Zopo )?ZP ?[0-9]{3,3}!!' => [ + '(Zopo )?ZP100!' => [ 'Zopo', 'ZP100 Pilot' ], + 'ZP200' => [ 'Zopo', 'ZP200 Shining' ], + 'ZP200+' => [ 'Zopo', 'ZP200+ Shining' ], + 'ZP300' => [ 'Zopo', 'ZP300 Field' ], + 'ZP300S' => [ 'Zopo', 'ZP300 Field' ], + 'Zopo zp300' => [ 'Zopo', 'ZP300 Field' ], + 'Zopo ZP300+' => [ 'Zopo', 'ZP300 Field Plus' ], + 'ZP300+' => [ 'Zopo', 'ZP300 Field Plus' ], + 'ZP330' => [ 'Zopo', 'ZP330 Color C' ], + 'ZP500' => [ 'Zopo', 'ZP500 Libero' ], + 'ZP500S' => [ 'Zopo', 'ZP500 Libero' ], + 'ZP500+' => [ 'Zopo', 'ZP500 Libero Plus' ], + 'ZP520' => [ 'Zopo', 'ZP520' ], + 'ZP530' => [ 'Zopo', 'ZP530 Touch' ], + 'ZP580' => [ 'Zopo', 'ZP580' ], + 'ZP600 EX' => [ 'Zopo', 'ZP600 Libero EX' ], + 'ZP600+' => [ 'Zopo', 'ZP600 Libero Plus' ], + 'ZP700' => [ 'Zopo', 'ZP700 Cuppy' ], + 'ZP780' => [ 'Zopo', 'ZP780' ], + 'ZP800' => [ 'Zopo', 'ZP800 Libero HD' ], + 'ZP800H' => [ 'Zopo', 'ZP800 Libero HD' ], + 'ZP810' => [ 'Zopo', 'ZP810' ], + 'ZP810H DUAL SIM' => [ 'Zopo', 'ZP810' ], + 'ZP820' => [ 'Zopo', 'ZP820 Raiden' ], + '(Zopo )?ZP900!' => [ 'Zopo', 'ZP900 Leader' ], + 'ZP 900H' => [ 'Zopo', 'ZP900 Leader' ], + 'ZOPO 900H' => [ 'Zopo', 'ZP900 Leader' ], + 'ZP908' => [ 'Zopo', 'ZP908 Leader' ], + 'ZP910' => [ 'Zopo', 'ZP910 Leader' ], + 'ZP920' => [ 'Zopo', 'ZP920 Magic' ], + 'ZP950' => [ 'Zopo', 'ZP950 Leader Max' ], + 'ZP950H' => [ 'Zopo', 'ZP950 Leader Max' ], + 'ZP950H DUAL SIM' => [ 'Zopo', 'ZP950 Leader Max' ], + 'ZP950+' => [ 'Zopo', 'ZP950+ Leader Max' ], + 'ZP958' => [ 'Zopo', 'ZP958 Leader Max' ], + 'ZOPO C2' => [ 'Zopo', 'ZP960 C2' ], + 'ZP980' => [ 'Zopo', 'ZP980' ], + 'Zopo 980' => [ 'Zopo', 'ZP980' ], + 'Zopo ZP980' => [ 'Zopo', 'ZP980' ], + 'ZP980+' => [ 'Zopo', 'ZP980+' ], + 'ZP980 PLUS' => [ 'Zopo', 'ZP980+' ], + 'ZOPO ZP980+' => [ 'Zopo', 'ZP980+' ], + 'ZP990' => [ 'Zopo', 'ZP990 Captain S' ], + 'ZP990+' => [ 'Zopo', 'ZP990+' ], + 'ZP998' => [ 'Zopo', 'ZP998 C2 II' ], + 'ZOPO ZP998' => [ 'Zopo', 'ZP998 C2 II' ], + 'ZP999' => [ 'Zopo', 'ZP999 Lion Heart' ], + ], + + 'C2' => [ 'Zopo', 'ZP960 C2' ], + 'ZA966' => [ 'Zyrex', 'OneScribe ZA966' ], + 'ZA985' => [ 'Zyrex', 'OneScribe ZA985' ], + + /* Telecom provider branded devices */ + '9020[A]!' => [ 'AT&T', 'Trek HD', DeviceType::TABLET ], + + 'BASE!!' => [ + 'BASE lutea' => [ 'BASE', 'Lutea' ], + 'BASE Lutea 2' => [ 'BASE', 'Lutea 2' ], + 'BASE Lutea 3' => [ 'BASE', 'Lutea 3' ], + 'BASE Varia' => [ 'BASE', 'Varia' ], + 'BASE Tab' => [ 'BASE', 'TAB', DeviceType::TABLET ], + 'BASE Tab 7.1' => [ 'BASE', 'TAB 7-1', DeviceType::TABLET ], + ], + + 'Beeline!!' => [ + 'Beeline Fast' => [ 'Beeline', 'Fast' ], + 'Beeline Pro 2' => [ 'Beeline', 'Pro 2' ], + 'Beeline Pro 3' => [ 'Beeline', 'Pro 3' ], + 'Beeline Pro 4' => [ 'Beeline', 'Pro 4' ], + 'Beeline Smart' => [ 'Beeline', 'Smart' ], + 'Beeline Smart2' => [ 'Beeline', 'Smart2' ], + 'Beeline Smart 2' => [ 'Beeline', 'Smart2' ], + 'Beeline Smart 3' => [ 'Beeline', 'Smart3' ], + 'Beeline Smart 4' => [ 'Beeline', 'Smart4' ], + 'Beeline Smart 5' => [ 'Beeline', 'Smart5' ], + 'Beeline Smart 6' => [ 'Beeline', 'Smart6' ], + 'Beeline Smart Dual' => [ 'Beeline', 'Smart Dual' ], + 'Beeline E300' => [ 'Beeline', 'E300' ], + 'Beeline E400' => [ 'Beeline', 'E400' ], + 'Beeline E600' => [ 'Beeline', 'E600' ], + 'Beeline M2' => [ 'Beeline', 'M2', DeviceType::TABLET ], + 'Beeline Tab' => [ 'Beeline', 'Tab', DeviceType::TABLET ], + 'Beeline Tab 2' => [ 'Beeline', 'Tab 2', DeviceType::TABLET ], + 'Beeline Tab IS' => [ 'Beeline', 'Tab IS', DeviceType::TABLET ], + 'Beeline Tab Fast' => [ 'Beeline', 'Tab Fast', DeviceType::TABLET ], + 'Beeline Tab Fast 2' => [ 'Beeline', 'Tab Fast 2', DeviceType::TABLET ], + 'Beeline Tab Pro' => [ 'Beeline', 'Tab Pro', DeviceType::TABLET ], + ], + + 'Bouygues Telecom Bs 351' => [ 'Bouygues', 'Bs 351' ], + 'Bouygues Telecom Bs 402' => [ 'Bouygues', 'Bs 402' ], + 'Bouygues Telecom Bs 403' => [ 'Bouygues', 'Bs 403' ], + 'Bouygues Telecom Bs 451' => [ 'Bouygues', 'Bs 451' ], + 'Bs 451' => [ 'Bouygues', 'Bs 451' ], + 'Bs 501' => [ 'Bouygues', 'Bs 501' ], + 'Bs541' => [ 'Bouygues', 'Bs 541' ], + 'Ultym 5' => [ 'Bouygues', 'Ultym 5' ], + 'Ultym 5L' => [ 'Bouygues', 'Ultym 5L' ], + 'Ultym 5.2' => [ 'Bouygues', 'Ultym 5.2' ], + 'Bbox Miami' => [ 'Bouygues', 'Bbox Miami', DeviceType::TELEVISION ], + + 'BQS-4001' => [ 'BQ Mobile', 'Oxford' ], + 'BQS-4007' => [ 'BQ Mobile', 'Valencia' ], + 'BQS-4501 Bristol' => [ 'BQ Mobile', 'Bristol' ], + 'BQS-4510' => [ 'BQ Mobile', 'Florence' ], + 'BQS-4515' => [ 'BQ Mobile', 'Moscow' ], + 'BQS-4516' => [ 'BQ Mobile', 'Singapore' ], + 'BQS-4552' => [ 'BQ Mobile', 'Melbourne' ], + 'BQS-4555' => [ 'BQ Mobile', 'Turbo' ], + 'BQS-5005' => [ 'BQ Mobile', 'Sydney' ], + 'BQS-5009' => [ 'BQ Mobile', 'Sydney' ], + 'BQS-5001' => [ 'BQ Mobile', 'Milan' ], + 'BQS-5010' => [ 'BQ Mobile', 'Praque' ], + 'BQS-5011' => [ 'BQ Mobile', 'Monte Carlo' ], + 'BQS-5500' => [ 'BQ Mobile', 'Vancouver' ], + 'BQS-5505' => [ 'BQ Mobile', 'Amsterdam' ], + + 'dtab01' => [ 'DoCoMo', 'dtab', DeviceType::TABLET ], + + 'Etisalat Smartphone' => [ 'Etisalat', 'Smartphone' ], + + 'GM FOX' => [ 'General Mobile', 'Fox' ], + + '(i-mobile|i-style|IQ)!!' => [ + 'i-mobile i651' => [ 'i-Mobile', 'i651' ], + 'i-mobile 697' => [ 'i-Mobile', 'i679' ], + 'i-mobile i691' => [ 'i-Mobile', 'i691' ], + 'i-mobile i692' => [ 'i-Mobile', 'i692' ], + 'i-mobile i693' => [ 'i-Mobile', 'i693' ], + 'i-mobile i695' => [ 'i-Mobile', 'i695' ], + 'i-mobile i698' => [ 'i-Mobile', 'i698' ], + 'i-mobile i810' => [ 'i-Mobile', 'i810' ], + 'i-mobile i858' => [ 'i-Mobile', 'i858' ], + 'i-mobile i858 Plus' => [ 'i-Mobile', 'i858 Plus' ], + 'i-mobile 3G 8500' => [ 'i-Mobile', '3G 8500' ], + 'i-mobile IQ 1' => [ 'i-Mobile', 'iQ 1' ], + 'i-mobile IQ1-1' => [ 'i-Mobile', 'iQ 1.1' ], + 'I-mobile IQ1-1A' => [ 'i-Mobile', 'iQ 1.1A' ], + 'i-mobile IQ 2' => [ 'i-Mobile', 'iQ 2' ], + 'i-mobile IQ II' => [ 'i-Mobile', 'iQ 2' ], + 'i-mobile IQ 2A' => [ 'i-Mobile', 'iQ 2A' ], + 'i-mobile IQ 3' => [ 'i-Mobile', 'iQ 3' ], + 'I-mobile IQ 4' => [ 'i-Mobile', 'iQ 4' ], + 'i-mobile IQ 5' => [ 'i-Mobile', 'iQ 5' ], + 'i-mobile IQ 5A' => [ 'i-Mobile', 'iQ 5A' ], + 'i-mobile IQ 5.1' => [ 'i-Mobile', 'iQ 5.1' ], + 'i-mobile IQ 5.1A' => [ 'i-Mobile', 'iQ 5.1A' ], + 'i-mobile IQ5.1 Pro' => [ 'i-Mobile', 'iQ 5.1 Pro' ], + 'i-mobile IQ5.1A Pro' => [ 'i-Mobile', 'iQ 5.1A Pro' ], + 'i-mobile IQ 5.3' => [ 'i-Mobile', 'iQ 5.3' ], + 'i-mobile IQ 5.5' => [ 'i-Mobile', 'iQ 5.5' ], + 'IQ 5.5' => [ 'i-Mobile', 'iQ 5.5' ], + 'IQ 5.6' => [ 'i-Mobile', 'iQ 5.6' ], + 'IQ 5.6A' => [ 'i-Mobile', 'iQ 5.6A' ], + 'i-mobile IQ 5.7' => [ 'i-Mobile', 'iQ 5.7' ], + 'i-mobile IQ 5.8 DTV' => [ 'i-Mobile', 'iQ 5.8 DTV' ], + 'i-mobile IQ 6' => [ 'i-Mobile', 'iQ 6' ], + 'i-mobile IQ 6A' => [ 'i-Mobile', 'iQ 6A' ], + 'i-mobile IQ 6.1' => [ 'i-Mobile', 'iQ 6.1' ], + 'i-mobile IQ 6.2' => [ 'i-Mobile', 'iQ 6.2' ], + 'i-mobile IQ6.3' => [ 'i-Mobile', 'iQ 6.3' ], + 'i-mobile IQ6.6' => [ 'i-Mobile', 'iQ 6.6' ], + 'i-mobile IQ 6.9 DTV' => [ 'i-Mobile', 'iQ 6.9 DTV' ], + 'i-mobile IQ 9' => [ 'i-Mobile', 'iQ 9' ], + 'i-mobile IQ 9A' => [ 'i-Mobile', 'iQ 9A' ], + 'IQ9.1' => [ 'i-Mobile', 'iQ 9.1' ], + 'i-mobile IQ 9.2' => [ 'i-Mobile', 'iQ 9.2' ], + 'i-mobile IQ 9.2A' => [ 'i-Mobile', 'iQ 9.2A' ], + 'i-mobile IQ X' => [ 'i-Mobile', 'iQ X' ], + 'i-mobile IQ X zeen' => [ 'i-Mobile', 'iQ X Zeen' ], + 'i-mobile IQ XA' => [ 'i-Mobile', 'iQ XA' ], + 'i-mobile IQ X2' => [ 'i-Mobile', 'iQ X2' ], + 'i-mobile IQ X2A' => [ 'i-Mobile', 'iQ X2A' ], + 'i-mobile IQ X3' => [ 'i-Mobile', 'iQ X3' ], + 'i-mobile IQ X3A' => [ 'i-Mobile', 'iQ X3A' ], + 'i-mobile IQ BIG' => [ 'i-Mobile', 'iQ Big' ], + 'i-mobile IQX BLIZ!' => [ 'i-Mobile', 'iQ X Bliz' ], + 'i-mobile IQX OKU!' => [ 'i-Mobile', 'iQ X Oku' ], + 'i-mobile IQ 1068' => [ 'i-Mobile', 'iQ 1068' ], + 'i-STYLE 1' => [ 'i-Mobile', 'i-Style 1' ], + 'i-mobile i-STYLE 1' => [ 'i-Mobile', 'i-Style 1' ], + 'I-STYLE 1 I' => [ 'i-Mobile', 'i-Style 1i' ], + 'i-mobile i-STYLE 1 i' => [ 'i-Mobile', 'i-Style 1i' ], + 'i-mobile i-STYLE 2' => [ 'i-Mobile', 'i-Style 2' ], + 'i-mobile i-STYLE 2i' => [ 'i-Mobile', 'i-Style 2i' ], + 'i-STYLE2.1' => [ 'i-Mobile', 'i-Style 2.1' ], + 'i-STYLE2.1A' => [ 'i-Mobile', 'i-Style 2.1A' ], + 'i-mobile i-STYLE 2.2' => [ 'i-Mobile', 'i-Style 2.2' ], + 'i-mobile i-style 2.3' => [ 'i-Mobile', 'i-Style 2.3' ], + 'i-mobile i-style 2.3A' => [ 'i-Mobile', 'i-Style 2.3A' ], + 'i-mobile i-STYLE 2.4' => [ 'i-Mobile', 'i-Style 2.4' ], + 'i-mobile i-STYLE 2.5' => [ 'i-Mobile', 'i-Style 2.5' ], + 'i-mobile i-style 2.6' => [ 'i-Mobile', 'i-Style 2.6' ], + 'i-mobile i-style 2.6A' => [ 'i-Mobile', 'i-Style 2.6A' ], + 'i-mobile i-style 2.8' => [ 'i-Mobile', 'i-Style 2.8' ], + 'i-mobile i-STYLE 2.9' => [ 'i-Mobile', 'i-Style 2.9' ], + 'i-mobile i-style 3' => [ 'i-Mobile', 'i-Style 3' ], + 'i-mobile i-style 3i' => [ 'i-Mobile', 'i-Style 3i' ], + 'i-mobile i-STYLE 4' => [ 'i-Mobile', 'i-Style 4' ], + 'i-style 4' => [ 'i-Mobile', 'i-Style 4' ], + 'i-mobile i-STYLE 4i' => [ 'i-Mobile', 'i-Style 4i' ], + 'i-MOBILE i-STYLE 5' => [ 'i-Mobile', 'i-Style 5' ], + 'i-MOBILE i-STYLE 5i' => [ 'i-Mobile', 'i-Style 5i' ], + 'i-mobile i-STYLE 6' => [ 'i-Mobile', 'i-Style 6' ], + 'i-mobile i-STYLE 6A' => [ 'i-Mobile', 'i-Style 6A' ], + 'i-mobile i-STYLE 7' => [ 'i-Mobile', 'i-Style 7' ], + 'i-mobile i-STYLE 7A' => [ 'i-Mobile', 'i-Style 7A' ], + 'i-mobile i-style 7.1' => [ 'i-Mobile', 'i-Style 7.1' ], + 'i-mobile i-STYLE 7.2' => [ 'i-Mobile', 'i-Style 7.2' ], + 'i-mobile i-STYLE 7.3' => [ 'i-Mobile', 'i-Style 7.3' ], + 'i-mobile i-STYLE 7.3A' => [ 'i-Mobile', 'i-Style 7.3A' ], + 'i-mobile i-STYLE 7.5' => [ 'i-Mobile', 'i-Style 7.5' ], + 'i-mobile i-STYLE 7.5A' => [ 'i-Mobile', 'i-Style 7.5A' ], + 'i-STYLE 7.6' => [ 'i-Mobile', 'i-Style 7.6' ], + 'i-mobile i-STYLE 7.7 DTV' => [ 'i-Mobile', 'i-Style 7.7 DTV' ], + 'i-mobile i-STYLE 7.8 DTV' => [ 'i-Mobile', 'i-Style 7.8 DTV' ], + 'i-mobile i-STYLE 7.9 DTV' => [ 'i-Mobile', 'i-Style 7.9 DTV' ], + 'i-mobile i-style 8' => [ 'i-Mobile', 'i-Style 8' ], + 'i-mobile i-STYLE 8.1' => [ 'i-Mobile', 'i-Style 8.1' ], + 'i-mobile i-STYLE 8.2' => [ 'i-Mobile', 'i-Style 8.2' ], + 'i-mobile i-STYLE 8.2A' => [ 'i-Mobile', 'i-Style 8.2A' ], + 'i-mobile i-STYLE 8.3 DTV' => [ 'i-Mobile', 'i-Style 8.3 DTV' ], + 'i-mobile i-STYLE 8.6 DTV' => [ 'i-Mobile', 'i-Style 8.6 DTV' ], + 'i-mobile i-STYLE 210' => [ 'i-Mobile', 'i-Style 210' ], + 'i-mobile i-STYLE 215' => [ 'i-Mobile', 'i-Style 215' ], + 'i-mobile I-STYLE 217' => [ 'i-Mobile', 'i-Style 217' ], + 'i-mobile i-STYLE 218' => [ 'i-Mobile', 'i-Style 218' ], + 'i-mobile i-STYLE 711' => [ 'i-Mobile', 'i-Style 711' ], + 'i-mobile i-STYLE 810' => [ 'i-Mobile', 'i-Style 810' ], + 'i-mobile i-style Q1' => [ 'i-Mobile', 'i-Style Q1' ], + 'I-mobile I-style Q1i' => [ 'i-Mobile', 'i-Style Q1i' ], + 'i-mobile i-STYLE Q2' => [ 'i-Mobile', 'i-Style Q2' ], + 'i-mobile i-STYLE Q2 DUO' => [ 'i-Mobile', 'i-Style Q2 Duo' ], + 'i-STYLE Q2 DUO!' => [ 'i-Mobile', 'i-Style Q2 Duo' ], + 'i-mobile i-style Q3' => [ 'i-Mobile', 'i-Style Q3' ], + 'i-mobile i-style Q3i' => [ 'i-Mobile', 'i-Style Q3i' ], + 'i-STYLE Q4' => [ 'i-Mobile', 'i-Style Q4' ], + 'i-STYLE Q4A' => [ 'i-Mobile', 'i-Style Q4A' ], + 'i-mobile i-STYLE Q 5' => [ 'i-Mobile', 'i-Style Q5' ], + 'i-mobile i-STYLE Q 5A' => [ 'i-Mobile', 'i-Style Q5A' ], + 'i-mobile i-STYLE Q6' => [ 'i-Mobile', 'i-Style Q6' ], + 'i-mobile i-STYLE Q6A' => [ 'i-Mobile', 'i-Style Q6A' ], + 'i-mobile I-Note' => [ 'i-Mobile', 'i-Note', DeviceType::TABLET ], + 'i-mobile i-note WiFi' => [ 'i-Mobile', 'i-Note', DeviceType::TABLET ], + 'I-mobile I-note S' => [ 'i-Mobile', 'i-Note S', DeviceType::TABLET ], + 'I-note WiFi 1.1' => [ 'i-Mobile', 'i-Note 1.1', DeviceType::TABLET ], + 'i-mobile M1703' => [ 'i-Mobile', 'i-Note 1.1', DeviceType::TABLET ], + 'i-mobile i-note 2' => [ 'i-Mobile', 'i-Note 2', DeviceType::TABLET ], + 'i-mobile i-NOTE WIFI 2' => [ 'i-Mobile', 'i-Note 2', DeviceType::TABLET ], + 'i-mobile i-note 3' => [ 'i-Mobile', 'i-Note 3', DeviceType::TABLET ], + 'i-mobile i-note WIFI3' => [ 'i-Mobile', 'i-Note 3', DeviceType::TABLET ], + 'i-mobile i-note WiFi 7' => [ 'i-Mobile', 'i-Note 7', DeviceType::TABLET ], + 'i-mobile i-note WiFi 9' => [ 'i-Mobile', 'i-Note 9', DeviceType::TABLET ], + ], + + 'KPN!!' => [ + 'KPN Smart 200' => [ 'KPN', 'Smart 200' ], + 'KPN Smart 300' => [ 'KPN', 'Smart 300' ], + 'KPN Smart 400' => [ 'KPN', 'Smart 400' ], + ], + + 'Kyivstar!!' => [ + 'Kyivstar Aqua' => [ 'Kyivstar', 'Aqua' ], + 'Kyivstar Shine' => [ 'Kyivstar', 'Shine' ], + 'Kyivstar Spark' => [ 'Kyivstar', 'Spark' ], + 'Kyivstar Aqua' => [ 'Kyivstar', 'Aqua' ], + 'Kyivstar Terra' => [ 'Kyivstar', 'Terra' ], + ], + + 'MegaFon SP-AI' => [ 'Мегафон', 'SP-A1' ], + 'MegaFon SP-A3' => [ 'Мегафон', 'SP-A3' ], + 'MegaFon SP-A5' => [ 'Мегафон', 'SP-A5' ], + 'MegaFon SP-A10' => [ 'Мегафон', 'SP-A10' ], + 'SP-A20i' => [ 'Мегафон', 'SP-A20i Mint' ], + 'MegaFon V9' => [ 'Мегафон', 'V9' ], + 'MegaFon V9+' => [ 'Мегафон', 'V9+' ], + 'MS3B' => [ 'Мегафон', 'Optima' ], + 'MS4A' => [ 'Мегафон', '4G Turbo' ], + 'MegaFon SIM+' => [ 'Мегафон', 'Sim+' ], + 'MT7A' => [ 'Мегафон', 'Login', DeviceType::TABLET ], + 'MS3A' => [ 'Мегафон', 'Login 2', DeviceType::TABLET ], + 'MegaFon Login 3' => [ 'Мегафон', 'Login 3', DeviceType::TABLET ], + + 'M9000' => [ 'MobiFone', 'M9000' ], + + 'G0775' => [ 'Movistar', 'Go Mobile 775' ], + 'GO778' => [ 'Movistar', 'Go Mobile 778' ], + 'B916C' => [ 'Movistar', 'Go Mobile 950' ], + 'GO980' => [ 'Movistar', 'Go Mobile 980' ], + 'Gomobile GO1001' => [ 'Movistar', 'Go Mobile 1001' ], + 'Movistar Express' => [ 'Movistar', 'Express' ], + 'Movistar Link' => [ 'Movistar', 'Link' ], + 'Movistar Motion' => [ 'Movistar', 'Motion' ], + 'Movistar Prime' => [ 'Movistar', 'Primee' ], + + 'MTC!!' => [ + 'MTC 916' => [ 'MTC', '916' ], + 'MTC 950' => [ 'MTC', '950' ], + 'MTC 955' => [ 'MTC', '955' ], + 'MTC 960' => [ 'MTC', '960' ], + 'MTC-962' => [ 'MTC', '962' ], + 'MTC 968' => [ 'MTC', '968' ], + 'MTC 970!' => [ 'MTC', '970' ], + 'MTC 972' => [ 'MTC', '972' ], + 'MTC975' => [ 'MTC', '975' ], + 'MTC 978' => [ 'MTC', '978' ], + 'MTC980' => [ 'MTC', '980' ], + 'MTC 982' => [ 'MTC', '982' ], + 'MTC 1055' => [ 'MTC', '1055' ], + 'MTC 1065' => [ 'MTC', '1065' ], + 'MTC 1078' => [ 'MTC', '1078' ], + 'MTC 982O' => [ 'MTC', '982O' ], + 'MTC Bravo' => [ 'MTC', 'Bravo' ], + 'MTC Evo' => [ 'MTC', 'Evo' ], + 'MTC Fit' => [ 'MTC', 'Fit' ], + 'MTC Neo' => [ 'MTC', 'Neo' ], + 'MTC Mini' => [ 'MTC', 'Mini' ], + 'MTC Pro' => [ 'MTC', 'Pro' ], + 'MTC SMART Run' => [ 'MTC', 'Smart Run' ], + 'MTC SMART Run 4G' => [ 'MTC', 'Smart Run' ], + 'MTC SMART Sprint 4G' => [ 'MTC', 'Smart Sprint' ], + 'MTC Viva' => [ 'MTC', 'Viva' ], + ], + + 'SMART Sprint' => [ 'MTC', 'Smart Sprint' ], + + 'NATCOM N8302' => [ 'Natcom', 'N8302' ], + + 'HB-1000' => [ 'NTT', 'Hikari Box Plus', DeviceType::TELEVISION ], + 'BSTB-200C' => [ 'NTT', 'Hikari Box 3', DeviceType::TELEVISION ], + + 'O2 Joggler' => [ 'O2', 'Joggler', DeviceType::TABLET ], + + 'Optimus Barcelona' => [ 'Optimus', 'Barcelona' ], /* Gigabyte GSmart G1305 */ + 'Optimus Boston' => [ 'Optimus', 'Boston' ], /* Gigabyte GSmart G1305 */ + 'Boston 4G' => [ 'Optimus', 'Boston 4G' ], + 'Optimus Madrid' => [ 'Optimus', 'Madrid' ], /* Gigabyte GSmart G1305 */ + 'Optimus Monte Carlo' => [ 'Optimus', 'Monte Carlo' ], /* ZTE Skate */ + 'Optimus San Francisco' => [ 'Optimus', 'San Francisco' ], /* ZTE Blade */ + 'Optimus San Remo' => [ 'Optimus', 'San Remo' ], + 'San Remo Mini' => [ 'Optimus', 'San Remo Mini' ], + 'Optimus Zali' => [ 'Optimus', 'Zali' ], + + 'Boston' => [ 'Orange', 'Boston' ], + 'Orange Boston' => [ 'Orange', 'Boston' ], + 'Orange Covo' => [ 'Orange', 'Covo' ], + 'Orange Daytona' => [ 'Orange', 'Daytona' ], + 'Orange Dublin' => [ 'Orange', 'Dublin' ], + 'Orange Fova' => [ 'Orange', 'Fova' ], + 'Orange Gova' => [ 'Orange', 'Gova' ], + 'Orange Hi 4G' => [ 'Orange', 'Hi' ], + 'Orange Hiro' => [ 'Orange', 'Hiro' ], + 'Orange infinity 996' => [ 'Orange', 'Infinity' ], + 'Orange Infinity 8008X' => [ 'Orange', 'Infinity' ], + 'Orange Kivo' => [ 'Orange', 'Kivo' ], + 'Luno' => [ 'Orange', 'Luno' ], + 'Orange Monte Carlo' => [ 'Orange', 'Monte Carlo' ], + '6034R ORANGE Niva' => [ 'Orange', 'Nivo' ], + 'Orange Niva' => [ 'Orange', 'Nivo' ], + 'Orange Nura' => [ 'Orange', 'Nura' ], + 'Nura 2' => [ 'Orange', 'Nura 2' ], + 'Orange Novi' => [ 'Orange', 'Novi' ], + 'Orange Reyo' => [ 'Orange', 'Reyo' ], + 'Orange Rise 30' => [ 'Orange', 'Rise 30' ], + 'Orange Rono' => [ 'Orange', 'Rono' ], + 'Orange Roya' => [ 'Orange', 'Roya' ], + 'Orange Runo' => [ 'Orange', 'Runo' ], + 'San Francisco' => [ 'Orange', 'San Francisco' ], /* ZTE Blade */ + 'San Francisco for' => [ 'Orange', 'San Francisco' ], /* ZTE Blade */ + 'Orange San Francisco' => [ 'Orange', 'San Francisco' ], /* ZTE Blade */ + 'San Francisco II' => [ 'Orange', 'San Francisco II' ], + 'Orange Sego' => [ 'Orange', 'Sego' ], + 'Orange Tactile internet 2' => [ 'Orange', 'Tactile internet 2' ], + 'Orange Tado' => [ 'Orange', 'Tado' ], + 'Orange Yomi' => [ 'Orange', 'Yomi' ], + 'Orange Yumo' => [ 'Orange', 'Yumo' ], + 'Orange Zali' => [ 'Orange', 'Zali' ], + 'Zilo' => [ 'Orange', 'Zilo' ], + + '(QMobile|QTab|Q-Smart|Noir)!!' => [ + 'QMobile A1' => [ 'Q-Mobile', 'Noir A1' ], + 'QMobile A2 Lite' => [ 'Q-Mobile', 'Bolt A2 Lite' ], + 'QMobile A2 Classic' => [ 'Q-Mobile', 'Bolt A2 Classic' ], + 'QMobile A4' => [ 'Q-Mobile', 'Bolt A4' ], + 'QMobile A5' => [ 'Q-Mobile', 'Noir A5' ], + 'Noir A7' => [ 'Q-Mobile', 'Noir A7' ], + 'QMobile A7' => [ 'Q-Mobile', 'Noir A7' ], + 'Noir A8' => [ 'Q-Mobile', 'Noir A8' ], + 'QMobile A8' => [ 'Q-Mobile', 'Noir A8' ], + 'QMobile A10' => [ 'Q-Mobile', 'Noir A10' ], + 'QMobile A10 Noir' => [ 'Q-Mobile', 'Noir A10' ], + 'QMobile Noir A10' => [ 'Q-Mobile', 'Noir A10' ], + 'QMobile A10 Lite' => [ 'Q-Mobile', 'Noir A10 Lite' ], + 'QMobile A11Note' => [ 'Q-Mobile', 'Noir A11' ], + 'QMobile A12' => [ 'Q-Mobile', 'Noir A12' ], + 'QMobile A20' => [ 'Q-Mobile', 'Noir A20' ], + 'QMobile A30' => [ 'Q-Mobile', 'Noir A30' ], + 'QMobile A34' => [ 'Q-Mobile', 'Noir A34' ], + 'QMobile A35' => [ 'Q-Mobile', 'Noir A35' ], + 'QMobile A36' => [ 'Q-Mobile', 'Noir A36' ], + 'QMobile A51' => [ 'Q-Mobile', 'Noir A51' ], + 'QMobile A63' => [ 'Q-Mobile', 'Noir A63' ], + 'QMobile A65' => [ 'Q-Mobile', 'Noir A65' ], + 'QMobile A75' => [ 'Q-Mobile', 'Noir A75' ], + 'QMobile A80' => [ 'Q-Mobile', 'Noir A80' ], + 'QMobile A120' => [ 'Q-Mobile', 'Noir A120' ], + 'QMobile A170' => [ 'Q-Mobile', 'Noir A17 0' ], + 'QMobile A290' => [ 'Q-Mobile', 'Noir A290' ], + 'QMobile A300' => [ 'Q-Mobile', 'Noir A300' ], + 'Qmobile A500' => [ 'Q-Mobile', 'Noir A500' ], + 'QMobile A700' => [ 'Q-Mobile', 'Noir A700' ], + 'Qmobile A900' => [ 'Q-Mobile', 'Noir A900' ], + 'QMobile A910' => [ 'Q-Mobile', 'Noir A910' ], + 'QMobile i1' => [ 'Q-Mobile', 'Noir i1' ], + 'QMobile i5' => [ 'Q-Mobile', 'Noir i5' ], + 'QMobile i5i' => [ 'Q-Mobile', 'Noir i5i' ], + 'QMobile i6i' => [ 'Q-Mobile', 'Noir i6i' ], + 'QMobile i7' => [ 'Q-Mobile', 'Noir i7' ], + 'QMobile i8' => [ 'Q-Mobile', 'Noir i8' ], + 'QMobile i9' => [ 'Q-Mobile', 'Noir i9' ], + 'Qmobile Noir i9' => [ 'Q-Mobile', 'Noir i9' ], + 'QMobile i10' => [ 'Q-Mobile', 'Noir i10' ], + 'QMobile i12' => [ 'Q-Mobile', 'Noir i12' ], + 'Q-Smart FLY 01' => [ 'Q-Mobile', 'Q-Smart Fly 01' ], + 'QMobile L15' => [ 'Q-Mobile', 'Linq L15' ], + 'QMobile L20' => [ 'Q-Mobile', 'Linq L20' ], + 'QMobile M350' => [ 'Q-Mobile', 'Noir M350' ], + 'QMobile T5' => [ 'Q-Mobile', 'Bolt T5' ], + 'QMobile T50' => [ 'Q-Mobile', 'Bolt T50' ], + 'QMobile T500' => [ 'Q-Mobile', 'Bolt T500' ], + 'Q-Smart S1' => [ 'Q-Mobile', 'Q-Smart S1' ], + 'QMobile S1' => [ 'Q-Mobile', 'Q-Smart S1' ], + 'QMobile S2' => [ 'Q-Mobile', 'Q-Smart S2' ], + 'QMobile S3' => [ 'Q-Mobile', 'Q-Smart S3' ], + 'QMobile S5' => [ 'Q-Mobile', 'Q-Smart S5' ], + 'Q-Smart model S6' => [ 'Q-Mobile', 'Q-Smart S6' ], + 'Q-mobile S10' => [ 'Q-Mobile', 'Q-Smart S10' ], + 'Qmobile-S11' => [ 'Q-Mobile', 'Q-Smart S11' ], + 'Q-mobile S11!' => [ 'Q-Mobile', 'Q-Smart S11' ], + 'Q-Smart S12' => [ 'Q-Mobile', 'Q-Smart S12' ], + 'Qmobile S13' => [ 'Q-Mobile', 'Q-Smart S13' ], + 'Q-Smart S16' => [ 'Q-Mobile', 'Q-Smart S16' ], + 'Q-Smart S18' => [ 'Q-Mobile', 'Q-Smart S18' ], + 'Q-Smart S19' => [ 'Q-Mobile', 'Q-Smart S19' ], + 'Q-Smart S20' => [ 'Q-Mobile', 'Q-Smart S20' ], + 'Q-Smart S21' => [ 'Q-Mobile', 'Q-Smart S21' ], + 'Q-Smart S29' => [ 'Q-Mobile', 'Q-Smart S29' ], + 'Q-Smart QS16' => [ 'Q-Mobile', 'Q-Smart QS16' ], + 'Q-Smart QS470' => [ 'Q-Mobile', 'Q-Smart QS470' ], + 'Q-Smart QS550' => [ 'Q-Mobile', 'Q-Smart QS550' ], + 'Q-Smart QS558' => [ 'Q-Mobile', 'Q-Smart QS558' ], + 'QTab Q100' => [ 'Q-Mobile', 'QTab Q100', DeviceType::TABLET ], + 'QTab Q300' => [ 'Q-Mobile', 'QTab Q300', DeviceType::TABLET ], + 'QTab Q850' => [ 'Q-Mobile', 'QTab Q850', DeviceType::TABLET ], + 'QMobile V4' => [ 'Q-Mobile', 'Noir V4' ], + 'QMobile W50' => [ 'Q-Mobile', 'Noir W50' ], + 'QMobile X2' => [ 'Q-Mobile', 'Noir X2' ], + 'QMobile X5' => [ 'Q-Mobile', 'Noir X5' ], + 'QMobile X6' => [ 'Q-Mobile', 'Noir X6' ], + 'QMobile X6i' => [ 'Q-Mobile', 'Noir X6i' ], + 'QMobile X11' => [ 'Q-Mobile', 'Noir X11' ], + 'QMobile X25' => [ 'Q-Mobile', 'Noir X25' ], + 'QMobile X30' => [ 'Q-Mobile', 'Noir X30' ], + 'QMobile X40' => [ 'Q-Mobile', 'Noir X40' ], + 'QMobile X90' => [ 'Q-Mobile', 'Noir X90' ], + 'QMobile X100' => [ 'Q-Mobile', 'Linq X100' ], + 'QMobile X300' => [ 'Q-Mobile', 'Noir X300' ], + 'QMobile X500' => [ 'Q-Mobile', 'Noir X500' ], + 'QMobile X550' => [ 'Q-Mobile', 'Noir X550' ], + 'QMobile X700i' => [ 'Q-Mobile', 'Titan X700' ], + 'QMobile X900' => [ 'Q-Mobile', 'Noir X900' ], + 'QMobile Z8' => [ 'Q-Mobile', 'Noir Z8' ], + 'QMobile Z8 Plus' => [ 'Q-Mobile', 'Noir Z8 Plus' ], + 'QMobile Z9' => [ 'Q-Mobile', 'Noir Z9' ], + 'QMobile Z10' => [ 'Q-Mobile', 'Noir Z10' ], + ], + + 'Z4 mini' => [ 'Q-Mobile', 'Noir Quatro Z4 mini' ], + 'Soshphone 4G' => [ 'SoshPhone', '4G' ], + + 'MOVE' => [ 'T-Mobile', 'MOVE' ], /* Alcatel One Touch 908 */ + 'HTC Dream' => [ 'T-Mobile', 'G1' ], /* HTC Dream */ + 'HTC Dream G1' => [ 'T-Mobile', 'G1' ], /* HTC Dream */ + 'HTC Dream SparksMod ' => [ 'T-Mobile', 'G1' ], /* HTC Dream */ + 'T-Mobile G1' => [ 'T-Mobile', 'G1' ], /* HTC Dream */ + 'HTC Vision' => [ 'T-Mobile', 'G2' ], /* HTC Desire Z */ + 'T-Mobile G2' => [ 'T-Mobile', 'G2' ], /* HTC Desire Z */ + 'T-Mobile G2 Touch' => [ 'T-Mobile', 'G2' ], /* HTC Desire Z */ + 'T-Mobile HTC G2' => [ 'T-Mobile', 'G2' ], /* HTC Desire Z */ + 'LG-P999' => [ 'T-Mobile', 'G2x' ], /* LG Optimus 2X */ + 'LG-E739' => [ 'T-Mobile', 'myTouch' ], /* LG E739 */ + 'T-Mobile myTouch' => [ 'T-Mobile', 'myTouch' ], /* LG E739 */ + 'T-Mobile myTouch 3G' => [ 'T-Mobile', 'myTouch 3G'], /* HTC Magic */ + 'T-Mobile myTouch 3G Slide' => [ 'T-Mobile', 'myTouch 3G Slide' ], /* HTC Espresso */ + 'T-mobile my touch 3g slide' => [ 'T-Mobile', 'myTouch 3G Slide' ], /* HTC Espresso */ + 'HTC T-Mobile myTouch 3G Slide' => [ 'T-Mobile', 'myTouch 3G Slide' ], /* HTC Espresso */ + 'T-Mobile Espresso' => [ 'T-Mobile', 'myTouch 3G Slide' ], /* HTC Espresso */ + 'HTC my ?Touch 3G Slide!' => [ 'T-Mobile', 'myTouch 3G Slide' ], /* HTC Espresso */ + 'T-Mobile myTouch 4G' => [ 'T-Mobile', 'myTouch 4G' ], /* HTC Glacier */ + 'HTC Glacier' => [ 'T-Mobile', 'myTouch 4G' ], /* HTC Glacier */ + 'HTC Panache' => [ 'T-Mobile', 'myTouch 4G' ], /* HTC Glacier */ + 'My ?Touch ?4G$!' => [ 'T-Mobile', 'myTouch 4G' ], /* HTC Glacier */ + 'HTC My ?Touch ?4G$!' => [ 'T-Mobile', 'myTouch 4G' ], /* HTC Glacier */ + 'HTC S910m' => [ 'T-Mobile', 'myTouch 4G' ], /* HTC Glacier */ + 'HTC myTouch 4G Slide' => [ 'T-Mobile', 'myTouch 4G Slide' ], /* HTC Doubleshot */ + 'myTouch 4G Slide' => [ 'T-Mobile', 'myTouch 4G Slide' ], /* HTC Doubleshot */ + 'myTouch Slide 4G' => [ 'T-Mobile', 'myTouch 4G Slide' ], /* HTC Doubleshot */ + 'HTC Doubleshot' => [ 'T-Mobile', 'myTouch 4G Slide' ], /* HTC Doubleshot */ + 'T-Mobile myTouch Q' => [ 'T-Mobile', 'myTouch Q' ], /* Huawei U8730 */ + 'LG-C800' => [ 'T-Mobile', 'myTouch Q' ], + 'T-Mobile Opal' => [ 'T-Mobile', 'Opal' ], + 'HUAWEI U8686' => [ 'T-Mobile', 'Prism' ], + 'Prism' => [ 'T-Mobile', 'Prism' ], + 'Prism II' => [ 'T-Mobile', 'Prism II' ], + 'U8220' => [ 'T-Mobile', 'Pulse' ], + 'Pulse' => [ 'T-Mobile', 'Pulse' ], + 'Pulse Mini' => [ 'T-Mobile', 'Pulse Mini' ], /* Huawei U8110 */ + 'T-Mobile Vivacity' => [ 'T-Mobile', 'Vivacity' ], + 'SpringBoard' => [ 'T-Mobile', 'SpringBoard', DeviceType::TABLET ], + + 'Telenor!!' => [ + 'Telenor OneTouch' => [ 'Telenor', 'One Touch' ], + 'Telenor One Touch C' => [ 'Telenor', 'One Touch C' ], + 'Telenor One Touch S' => [ 'Telenor', 'One Touch S' ], + 'Telenor Touch Plus' => [ 'Telenor', 'Touch Plus' ], + 'Telenor S800' => [ 'Telenor', 'S800' ], + 'Telenor Smart' => [ 'Telenor', 'Smart' ], + 'Telenor Smart 2' => [ 'Telenor', 'Smart 2' ], + 'Telenor Smart HD' => [ 'Telenor', 'Smart HD' ], + 'Telenor Smart Mini' => [ 'Telenor', 'Smart Mini' ], + 'Telenor SmartPlus' => [ 'Telenor', 'Smart Plus' ], + 'Telenor Smart Pro' => [ 'Telenor', 'Smart Pro' ], + 'Telenor Smart Pro 2' => [ 'Telenor', 'Smart Pro 2' ], + 'TELENOR SMART TOUCH MINI' => [ 'Telenor', 'Smart Touch Mini' ], + 'Telenor Touch Mini' => [ 'Telenor', 'Smart Touch Mini' ], + 'Telenor Touch Pad' => [ 'Telenor', 'Touch Pad', DeviceType::TABLET ], + ], + + 'T-Hub2' => [ 'Telstra', 'T-Hub 2', DeviceType::TABLET ], + + 'tmn!!' => [ + 'tmn smart a6' => [ 'TMN', 'Smart A6' ], + 'tmn smart a7' => [ 'TMN', 'Smart A7' ], + 'tmn smart a8' => [ 'TMN', 'Smart A8' ], + 'tmn smart a15' => [ 'TMN', 'Smart A15' ], + 'tmn smart a18' => [ 'TMN', 'Smart A18' ], + 'tmn smart a20' => [ 'TMN', 'Smart A20' ], + 'tmn smart a60' => [ 'TMN', 'Smart A60' ], + ], + + 'soft stone' => [ 'TMN', 'Soft Stone' ], + + 'TRUE BEYOND 3G' => [ 'True', 'Beyond' ], + + 'StarTrail TT' => [ 'Tunisie Telecom', 'StarTrail' ], + + 'Turkcell!!' => [ + 'Turkcell Maxi Plus 5' => [ 'Turkcell', 'Maxi Plus 5' ], + 'TURKCELL MaxiPRO5' => [ 'Turkcell', 'Maxi Pro 5' ], + 'Turkcell T10' => [ 'Turkcell', 'T10' ], + 'Turkcell T11' => [ 'Turkcell', 'T11' ], + 'Turkcell T20' => [ 'Turkcell', 'T20' ], + 'TURKCELL T40' => [ 'Turkcell', 'T40' ], + 'TURKCELL T50' => [ 'Turkcell', 'T50' ], + 'TURKCELL TURBO T50' => [ 'Turkcell', 'Turbo T50' ], + 'TURKCELL T60' => [ 'Turkcell', 'T60' ], + ], + + 'RP-UDM01A' => [ 'Verico', 'Uni Pad' ], + + 'QMV7A' => [ 'Verizon', 'Ellipsis 7', DeviceType::TABLET ], + 'QMV7B' => [ 'Verizon', 'Ellipsis 7', DeviceType::TABLET ], + 'QTAQZ3' => [ 'Verizon', 'Ellipsis 8', DeviceType::TABLET ], + 'QTAQZ3KID' => [ 'Verizon', 'Ellipsis 8', DeviceType::TABLET ], + 'QTAIR7' => [ 'Verizon', 'Ellipsis 10', DeviceType::TABLET ], + + 'Viettel i5' => [ 'Viettel', 'i5' ], + 'V8403' => [ 'Viettel', 'V8403' ], + 'VIETTEL V8404!' => [ 'Viettel', 'V8404' ], + 'V8409' => [ 'Viettel', 'V8409' ], + 'Viettel V8410' => [ 'Viettel', 'V8410' ], + 'VIETTEL V8411' => [ 'Viettel', 'V8411' ], + 'V8412' => [ 'Viettel', 'V8412' ], + 'V8413' => [ 'Viettel', 'V8413' ], + 'V8501' => [ 'Viettel', 'V8501' ], + 'Viettel V8502' => [ 'Viettel', 'V8502' ], + 'V8502' => [ 'Viettel', 'V8502' ], + 'V8503' => [ 'Viettel', 'V8503' ], + 'V8505' => [ 'Viettel', 'V8505' ], + 'VIETTEL V8506' => [ 'Viettel', 'V8506' ], + 'V8507' => [ 'Viettel', 'V8507' ], + 'V8508' => [ 'Viettel', 'V8508' ], + 'VIETTEL V8509' => [ 'Viettel', 'V8509' ], + 'V8510' => [ 'Viettel', 'V8510' ], + 'V8511' => [ 'Viettel', 'V8511' ], + 'V8603' => [ 'Viettel', 'V8603' ], + + 'Vodafone!!' => [ + 'Vodafone 785' => [ 'Vodafone', 'Smart 4 Mini' ], + 'Vodafone 845' => [ 'Vodafone', '845 Nova' ], /* Huawei U8100 */ + 'Vodafone 858' => [ 'Vodafone', '858 Smart' ], /* Huawei U8160 */ + 'Vodafone 861' => [ 'Vodafone', '861 Smart' ], + 'Vodafone 875' => [ 'Vodafone', 'Smart Mini' ], + 'Vodafone 890N' => [ 'Vodafone', 'Smart 4 Turbo' ], + 'Vodafone 945' => [ 'Vodafone', '945' ], /* ZTE Joe */ + 'Vodafone 958' => [ 'Vodafone', '958' ], + 'Vodafone 975!' => [ 'Vodafone', '975' ], + 'Vodafone 980' => [ 'Vodafone', '980' ], + 'Vodafone 985N' => [ 'Vodafone', 'Smart 4 Power' ], + 'Vodafone Blade V' => [ 'Vodafone', 'Blade V' ], + 'Vodafone Smart ll' => [ 'Vodafone', 'Smart II' ], + 'Vodafone Smart II!' => [ 'Vodafone', 'Smart II' ], + 'Vodafone Smart 4' => [ 'Vodafone', 'Smart 4' ], + 'Vodafone Smart 4 max' => [ 'Vodafone', 'Smart 4 Max' ], + 'Vodafone Smart 4 turbo' => [ 'Vodafone', 'Smart 4 Turbo' ], + 'Vodafone Smart 4G' => [ 'Vodafone', 'Smart 4G' ], + 'VodafoneSmartChat!' => [ 'Vodafone', 'Smart Chat' ], + 'Vodafone Smart Chat' => [ 'Vodafone', 'Smart Chat' ], + 'Vodafone Smart ultra 6' => [ 'Vodafone', 'Smart Ultra 6' ], + 'Vodafone SmartTab II 10' => [ 'Vodafone', 'Smart Tab II 10', DeviceType::TABLET ], + 'Vodafone Smart Tab III 7' => [ 'Vodafone', 'Smart Tab III 7', DeviceType::TABLET ], + 'Vodafone Smart Tab III 10' => [ 'Vodafone', 'Smart Tab III 10', DeviceType::TABLET ], + 'Vodafone Smart Tab 4' => [ 'Vodafone', 'Smart Tab 4', DeviceType::TABLET ], + 'Vodafone Smart Tab 3G!' => [ 'Vodafone', 'Smart Tab 3G', DeviceType::TABLET ], + 'Vodafone Smart Tab 4G!' => [ 'Vodafone', 'Smart Tab 4G', DeviceType::TABLET ], + 'Vodafone Tab grand 6' => [ 'Vodafone', 'Tab Grand 6', DeviceType::TABLET ], + ], + + 'SmartTab!!' => [ + 'SmartTab2' => [ 'Vodafone', 'Smart Tab 2', DeviceType::TABLET ], + 'SmartTab7' => [ 'Vodafone', 'Smart Tab 7', DeviceType::TABLET ], + 'SmartTabII7' => [ 'Vodafone', 'Smart Tab II 7', DeviceType::TABLET ], /* Lenovo */ + 'SmartTabII10' => [ 'Vodafone', 'Smart Tab II 10', DeviceType::TABLET ], + 'SmartTab10' => [ 'Vodafone', 'Smart Tab 10', DeviceType::TABLET ] /* ZTE Web Tab 10 */ + ], + + 'Huawei 858' => [ 'Vodafone', '858 Smart' ], + 'VF-895N' => [ 'Vodafone', '895' ], + '[a-z][a-z](?:-[a-z][a-z])?, SmartTabII7!' => [ 'Vodafone', 'Smart Tab II 7', DeviceType::TABLET ], /* Lenovo */ + 'VF-1397' => [ 'Vodafone', 'Tab Speed 6', DeviceType::TABLET ], + 'VF-1497' => [ 'Vodafone', 'Tab Prime', DeviceType::TABLET ], +]; diff --git a/integration/whichbrowser/data/models-asha.php b/integration/whichbrowser/data/models-asha.php new file mode 100644 index 00000000..00c1fd5d --- /dev/null +++ b/integration/whichbrowser/data/models-asha.php @@ -0,0 +1,18 @@ + [ 'Nokia', 'Asha 230' ], + 'Asha230DualSIM' => [ 'Nokia', 'Asha 230' ], + '500' => [ 'Nokia', 'Asha 500' ], + 'Asha500SingleSIM' => [ 'Nokia', 'Asha 500' ], + 'Asha500DualSIM' => [ 'Nokia', 'Asha 500' ], + '501' => [ 'Nokia', 'Asha 501' ], + '501s' => [ 'Nokia', 'Asha 501' ], + '501.1' => [ 'Nokia', 'Asha 501' ], + '501.2' => [ 'Nokia', 'Asha 501' ], + '502' => [ 'Nokia', 'Asha 502' ], + '503' => [ 'Nokia', 'Asha 503' ], + '503s' => [ 'Nokia', 'Asha 503' ], +]; diff --git a/integration/whichbrowser/data/models-bada.php b/integration/whichbrowser/data/models-bada.php new file mode 100644 index 00000000..29fda461 --- /dev/null +++ b/integration/whichbrowser/data/models-bada.php @@ -0,0 +1,18 @@ + [ 'Samsung', 'Wave 525' ], + 'GT-S53(30|33)!' => [ 'Samsung', 'Wave 533' ], + 'GT-S5380!' => [ 'Samsung', 'Wave Y' ], + 'GT-S57(50|53)!' => [ 'Samsung', 'Wave 575' ], + 'GT-S57(80)!' => [ 'Samsung', 'Wave 578' ], + 'GT-S72(30|33)!' => [ 'Samsung', 'Wave 723' ], + 'GT-S7250!' => [ 'Samsung', 'Wave M' ], + 'GT-S8500!' => [ 'Samsung', 'Wave' ], + 'SCH-F859!' => [ 'Samsung', 'Wave' ], + 'GT- ?S8530!' => [ 'Samsung', 'Wave II' ], + 'GT- ?S8600!' => [ 'Samsung', 'Wave 3' ], + 'SHW-M410' => [ 'Samsung', 'Wave 3' ] +]; diff --git a/integration/whichbrowser/data/models-blackberry.php b/integration/whichbrowser/data/models-blackberry.php new file mode 100644 index 00000000..90f8a983 --- /dev/null +++ b/integration/whichbrowser/data/models-blackberry.php @@ -0,0 +1,51 @@ + 'Bold', + '9600' => 'Bold', + '9650' => 'Bold', + '9700' => 'Bold', + '9780' => 'Bold', + '9788' => 'Bold', + '9790' => 'Bold', + '9900' => 'Bold', + '9930' => 'Bold', + '8300' => 'Curve', + '8310' => 'Curve', + '8320' => 'Curve', + '8330' => 'Curve', + '8350i' => 'Curve', + '8520' => 'Curve', + '8530' => 'Curve', + '8900' => 'Curve', + '9220' => 'Curve', + '9300' => 'Curve', + '9310' => 'Curve', + '9320' => 'Curve', + '9330' => 'Curve', + '9350' => 'Curve', + '9360' => 'Curve', + '9370' => 'Curve', + '9380' => 'Curve', + '8100' => 'Pearl', + '8110' => 'Pearl', + '8120' => 'Pearl', + '8130' => 'Pearl', + '8220' => 'Pearl', + '8230' => 'Pearl', + '9100' => 'Pearl', + '9105' => 'Pearl', + '9500' => 'Storm', + '9520' => 'Storm2', + '9530' => 'Storm', + '9550' => 'Storm', + '9670' => 'Style', + '9800' => 'Torch', + '9810' => 'Torch', + '9850' => 'Torch', + '9860' => 'Torch', + '9630' => 'Tour', + '9981' => 'Porsche P' +]; diff --git a/integration/whichbrowser/data/models-brew.php b/integration/whichbrowser/data/models-brew.php new file mode 100644 index 00000000..8a552362 --- /dev/null +++ b/integration/whichbrowser/data/models-brew.php @@ -0,0 +1,52 @@ + [ 'Coolpad', 'D508' ], + 'Coolpad E600' => [ 'Coolpad', 'E600' ], + 'HUAWEI U2801!' => [ 'Huawei', 'U2801' ], + 'HUAWEI U5200!' => [ 'Huawei', 'U5200' ], + 'E4255' => [ 'Kyocera', 'DuraMax E4255' ], + 'S2151!' => [ 'Kyocera', 'Coast S2151' ], + 'EX200!' => [ 'Motorola', 'EX200' ], + 'M260!' => [ 'Samsung', 'Factor' ], + 'M390!' => [ 'Samsung', 'Array' ], + 'M550!' => [ 'Samsung', 'Exclaim' ], + 'SCH-B309!' => [ 'Samsung', 'SCH-B309' ], + 'SCH-F839' => [ 'Samsung', 'SCH-F839' ], + 'SCH-M519!' => [ 'Samsung', 'Metro TV' ], + 'SCH-S559!' => [ 'Samsung', 'SCH-S559' ], + 'SCH-S579!' => [ 'Samsung', 'SCH-S579' ], + 'SCH-U380' => [ 'Samsung', 'Brightside' ], + 'SCH-U485' => [ 'Samsung', 'Intensity III' ], + 'SCH-U820' => [ 'Samsung', 'Reality' ], + 'SCH-W709!' => [ 'Samsung', 'SCH-W709' ], + 'sam-r631' => [ 'Samsung', 'Messenger Touch R631' ], + 'SPH M330' => [ 'Samsung', 'SPH-M330' ], + 'PLS M330' => [ 'Samsung', 'PLS-M330' ], + 'Sprint M850' => [ 'Samsung', 'Instinct HD' ], + 'SCP-6750' => [ 'Sanyo', 'Katana Eclipse X' ], + 'SCP6760' => [ 'Sanyo', 'Incognito' ], + 'SCP-6760' => [ 'Sanyo', 'Incognito' ], + 'SCP6780' => [ 'Sanyo', 'Innuendo' ], + 'HS-E316!' => [ 'Hisense', 'E316' ], + 'VX9200!' => [ 'LG', 'Env3' ], + 'VX9600!' => [ 'LG', 'Versa' ], + 'VX11000' => [ 'LG', 'Env Touch' ], + 'VN170' => [ 'LG', 'Revere 3' ], + 'VN271' => [ 'LG', 'Extravert' ], + 'VN280' => [ 'LG', 'Extravert 2' ], + 'VN360' => [ 'LG', 'Exalt' ], + 'LG272' => [ 'LG', 'Rumor Reflex' ], + 'LG510' => [ 'LG', 'Rumor Touch' ], + 'LN510' => [ 'LG', 'Rumor Touch' ], + 'LX610' => [ 'LG', 'Lotus Elite' ], + 'VN530' => [ 'LG', 'Octane' ], + 'CDM8999' => [ 'Pantech', 'Crux' ], + 'CDM8992' => [ 'Pantech', 'Hotshot' ], + 'TXT8045' => [ 'Pantech', 'Jest 2' ], + 'P5000' => [ 'Pantech', 'Link II' ], + 'P6020' => [ 'Pantech', 'Persuit II' ], + 'P6030' => [ 'Pantech', 'Reneu' ], +]; diff --git a/integration/whichbrowser/data/models-feature.php b/integration/whichbrowser/data/models-feature.php new file mode 100644 index 00000000..3fe9ed71 --- /dev/null +++ b/integration/whichbrowser/data/models-feature.php @@ -0,0 +1,100 @@ + [ 'BenQ-Siemens', 'EF71' ], + 'Lightpipe' => [ 'Kyocera', 'E1100 Neo' ], + 'K612' => [ 'Kyocera', 'K612 Strobe' ], + 'EX115' => [ 'Motorola', 'Starling EX115' ], + 'EX118' => [ 'Motorola', 'MOTOKEY XT EX118' ], + 'EX119' => [ 'Motorola', 'Brea EX119' ], + 'EX128' => [ 'Motorola', 'Kingfisher EX128' ], + 'EX225' => [ 'Motorola', 'MOTOKEY Social EX225' ], + 'EX226' => [ 'Motorola', 'MOTOKEY Social EX226' ], + 'EX430' => [ 'Motorola', 'MotoGo EX430' ], + 'MOTOQA1' => [ 'Motorola', 'Karma QA1' ], + 'KC910i' => [ 'LG', 'KC910i Renoir' ], + 'KP500!' => [ 'LG', 'KP500 Cookie' ], + 'KP570!' => [ 'LG', 'KP570 Cookie' ], + 'KU990i' => [ 'LG', 'KU990 Viewty' ], + 'GM360' => [ 'LG', 'GM360 Viewty Snap' ], + 'GR700' => [ 'LG', 'GR700 Vu Plus' ], + 'GS290' => [ 'LG', 'GS290 Cookie Fresh' ], + 'GS500' => [ 'LG', 'GS500 Cookie Plus' ], + 'GT500!' => [ 'LG', 'GT500 Puccini' ], + 'GT550' => [ 'LG', 'GT550 Encore' ], + 'COCOON' => [ 'O2', 'Cocoon' ], + 'P7000' => [ 'Pantech', 'Impact' ], + 'P9020' => [ 'Pantech', 'Pursuit' ], + 'P9050' => [ 'Pantech', 'Laser' ], + 'PM-8200' => [ 'Sanyo', 'PM-8200' ], + 'SCP-5500' => [ 'Sanyo', 'VM4500' ], + 'SCP-6600' => [ 'Sanyo', 'Katana' ], + 'PLS6600KJ' => [ 'Sanyo', 'Katana' ], + 'GT-B2710' => [ 'Samsung', 'Xcover 271' ], + 'GT-B3210' => [ 'Samsung', 'Corby TXT' ], + 'GT-B3313' => [ 'Samsung', 'Corby Mate' ], + 'GT-C3200' => [ 'Samsung', 'Monte Bar' ], + 'GT-C3222' => [ 'Samsung', 'Ch@t 322' ], + 'GT-C3322' => [ 'Samsung', 'GT-C3322 Duos' ], + 'GT-C3500' => [ 'Samsung', 'Ch@t 350' ], + 'GT-C5010!' => [ 'Samsung', 'C5010 Squash' ], + 'GT-E1282!' => [ 'Samsung', 'Guru' ], + 'GT-E2152' => [ 'Samsung', 'GT-E2152 Duos' ], + 'GT-E2220' => [ 'Samsung', 'Ch@t 220' ], + 'GT-E2222' => [ 'Samsung', 'Ch@t 222' ], + 'GT-E2202' => [ 'Samsung', 'Metro' ], + 'GT-E2250' => [ 'Samsung', 'Utica' ], + 'GT-E2252' => [ 'Samsung', 'Metro 2252' ], + 'GT-E3213' => [ 'Samsung', 'E3213 Hero' ], + 'GT-E3309I' => [ 'Samsung', 'E3309 Manhattan' ], + 'm3510c' => [ 'Samsung', 'M3510' ], + 'GT-M8910' => [ 'Samsung', 'M8910 Pixon12' ], + 'GT-S3332' => [ 'Samsung', 'Ch@t 333' ], + 'GT-S33(50|53)!' => [ 'Samsung', 'Ch@t 335' ], + 'GT-S35(70|72)!' => [ 'Samsung', 'Ch@t 357' ], + 'GT-S5229' => [ 'Samsung', 'Tocco Lite 2' ], + 'GT-S5270!' => [ 'Samsung', 'Ch@t 527' ], + 'GT-S5610!' => [ 'Samsung', 'Primo' ], + 'SCH-W169' => [ 'Samsung', 'W169 Duos' ], + 'SCH-W279' => [ 'Samsung', 'Primo Duos' ], + 'SGH-A667' => [ 'Samsung', 'A667 Evergreen' ], + 'SGH-A697' => [ 'Samsung', 'A697 Sunburst' ], + 'SGH-A877' => [ 'Samsung', 'A877 Impression' ], + 'SGH-A927' => [ 'Samsung', 'A927 Flight II' ], + 'SGH-A997' => [ 'Samsung', 'Rugby III' ], + 'SGH-D880' => [ 'Samsung', 'D880 Duos' ], + 'SGH-G600' => [ 'Samsung', 'G600' ], + 'SGH-J700V' => [ 'Samsung', 'J700' ], + 'SGH-S390G' => [ 'Samsung', 'S390 TracFone' ], + 'SGH-T189N' => [ 'Samsung', 'Freeform M'], + 'SGHX660V' => [ 'Samsung', 'X660' ], + 'SGH-Z107!' => [ 'Samsung', 'Z107' ], + 'SGH-Z130!' => [ 'Samsung', 'Z130' ], + 'SGH-Z500!' => [ 'Samsung', 'Z500' ], + 'SM-B313E' => [ 'Samsung', 'Metro 313' ], + 'SM-B350E' => [ 'Samsung', 'Metro 350' ], + 'SM-B780(A|W)!' => [ 'Samsung', 'Rugby 4' ], + 'S7350' => [ 'Samsung', 'S7350 Ultra S' ], + 'sam-r560' => [ 'Samsung', 'Messenger II R560' ], + 'CK13[ai]?$!' => [ 'Sony Ericsson', 'txt' ], + 'CK15[ai]?$!' => [ 'Sony Ericsson', 'txt Pro' ], + 'F100[ai]?$!' => [ 'Sony Ericsson', 'Jalou' ], + 'J105[ai]?$!' => [ 'Sony Ericsson', 'Naite' ], + 'J108[ai]?$!' => [ 'Sony Ericsson', 'Cedar' ], + 'J10(i2?)?$!' => [ 'Sony Ericsson', 'Elm' ], + 'J20[ai]?$!' => [ 'Sony Ericsson', 'Hazel' ], + 'U100[ai]?$!' => [ 'Sony Ericsson', 'Yari' ], + 'U10[ai]?$!' => [ 'Sony Ericsson', 'Aino' ], + 'W100i?$!' => [ 'Sony Ericsson', 'Spiro' ], + 'W150i?$!' => [ 'Sony Ericsson', 'Yendo' ], + 'W20i?$!' => [ 'Sony Ericsson', 'Zylo' ], + 'WT13i$!' => [ 'Sony Ericsson', 'Mix Walkman' ], + 'X5i$!' => [ 'Sony Ericsson', 'Xperia Pureness X5' ], + 'tecnot36' => [ 'Tecno', 'T36' ], + 'Vodafone 575' => [ 'Vodafone', '575' ], + 'GT-I6410!' => [ 'Vodafone', '360 M1' ], + 'GT-I8320!' => [ 'Vodafone', '360 H1' ], + 'GT-I8330!' => [ 'Vodafone', '360 H2' ], +]; diff --git a/integration/whichbrowser/data/models-firefoxos.php b/integration/whichbrowser/data/models-firefoxos.php new file mode 100644 index 00000000..7a86085a --- /dev/null +++ b/integration/whichbrowser/data/models-firefoxos.php @@ -0,0 +1,31 @@ + [ 'Alcatel', 'One Touch Fire' ], + 'ALCATEL ONE TOUCH 4012A' => [ 'Alcatel', 'One Touch Fire' ], + 'ALCATEL ONE TOUCH 4012X' => [ 'Alcatel', 'One Touch Fire' ], + 'ALCATELOneTouch4012A!' => [ 'Alcatel', 'One Touch Fire' ], + 'ALCATELOneTouch4012X!' => [ 'Alcatel', 'One Touch Fire' ], + 'OneTouch4019A' => [ 'Alcatel', 'One Touch Fire C' ], + 'ALCATELOneTouch4019A!' => [ 'Alcatel', 'One Touch Fire C' ], + 'ALCATELOneTouch4019X!' => [ 'Alcatel', 'One Touch Fire C' ], + 'ALCATELOneTouch4020D!' => [ 'Alcatel', 'One Touch Fire C' ], + 'ALCATELOneTouch4022!' => [ 'Alcatel', 'One Touch Pixi 3 (3.5)' ], + 'ALCATELOneTouch4023!' => [ 'Alcatel', 'One Touch Pixi 3 (3.5)' ], + 'ALCATELOneTouch6015X!' => [ 'Alcatel', 'One Touch Fire E' ], + 'HUAWEI Ascend Y300-F1' => [ 'Huawei', 'Ascend Y300 F1' ], + 'HUAWEIY300-F1' => [ 'Huawei', 'Ascend Y300 F1' ], + 'LG-D3(00|01)!' => [ 'LG', 'Fireweb' ], + 'LGL25' => [ 'LG', 'Fx0' ], + 'madai' => [ 'LG', 'Fx0' ], + 'Orange KLIF' => [ 'Orange', 'Kilf' ], + 'Orange KLIFD' => [ 'Orange', 'Kilf' ], + 'OPEN' => [ 'ZTE', 'Open' ], + 'ZTEOPEN' => [ 'ZTE', 'Open' ], + 'OpenC' => [ 'ZTE', 'Open C' ], + 'Open C' => [ 'ZTE', 'Open C' ], + 'OPENC2' => [ 'ZTE', 'Open C2' ], + 'OPEN2' => [ 'ZTE', 'Open II' ], +]; diff --git a/integration/whichbrowser/data/models-ios.php b/integration/whichbrowser/data/models-ios.php new file mode 100644 index 00000000..df3347e1 --- /dev/null +++ b/integration/whichbrowser/data/models-ios.php @@ -0,0 +1,80 @@ + [ 'Apple', 'iPhone', DeviceType::MOBILE ], + 'iPhone 3G' => [ 'Apple', 'iPhone 3G', DeviceType::MOBILE ], + 'iPhone 3GS' => [ 'Apple', 'iPhone 3GS', DeviceType::MOBILE ], + 'iPhone 4' => [ 'Apple', 'iPhone 4', DeviceType::MOBILE ], + 'iPhone 4S' => [ 'Apple', 'iPhone 4S', DeviceType::MOBILE ], + 'iPhone 5' => [ 'Apple', 'iPhone 5', DeviceType::MOBILE ], + 'iPhone 5c' => [ 'Apple', 'iPhone 5c', DeviceType::MOBILE ], + 'iPhone 5s' => [ 'Apple', 'iPhone 5s', DeviceType::MOBILE ], + 'iPhone 6' => [ 'Apple', 'iPhone 6', DeviceType::MOBILE ], + 'iPhone 6 Plus' => [ 'Apple', 'iPhone 6 Plus', DeviceType::MOBILE ], + 'iPod' => [ 'Apple', 'iPod touch', DeviceType::MEDIA ], + 'iPod touch' => [ 'Apple', 'iPod touch', DeviceType::MEDIA ], + 'iPad' => [ 'Apple', 'iPad', DeviceType::TABLET ], + + /* Offical gestalt names */ + 'iPhone1,1' => [ 'Apple', 'iPhone', DeviceType::MOBILE ], + 'iPhone1,2' => [ 'Apple', 'iPhone 3G', DeviceType::MOBILE ], + 'iPhone2,1' => [ 'Apple', 'iPhone 3GS', DeviceType::MOBILE ], + 'iPhone3,1' => [ 'Apple', 'iPhone 4', DeviceType::MOBILE ], + 'iPhone3,2' => [ 'Apple', 'iPhone 4', DeviceType::MOBILE ], + 'iPhone3,3' => [ 'Apple', 'iPhone 4', DeviceType::MOBILE ], + 'iPhone4,1' => [ 'Apple', 'iPhone 4S', DeviceType::MOBILE ], + 'iPhone5,1' => [ 'Apple', 'iPhone 5', DeviceType::MOBILE ], + 'iPhone5,2' => [ 'Apple', 'iPhone 5', DeviceType::MOBILE ], + 'iPhone5,3' => [ 'Apple', 'iPhone 5c', DeviceType::MOBILE ], + 'iPhone5,4' => [ 'Apple', 'iPhone 5c', DeviceType::MOBILE ], + 'iPhone6,1' => [ 'Apple', 'iPhone 5s', DeviceType::MOBILE ], + 'iPhone6,2' => [ 'Apple', 'iPhone 5s', DeviceType::MOBILE ], + 'iPhone7,1' => [ 'Apple', 'iPhone 6 Plus', DeviceType::MOBILE ], + 'iPhone7,2' => [ 'Apple', 'iPhone 6', DeviceType::MOBILE ], + 'iPhone8,1' => [ 'Apple', 'iPhone 6s', DeviceType::MOBILE ], + 'iPhone8,2' => [ 'Apple', 'iPhone 6s Plus', DeviceType::MOBILE ], + 'iPhone8,4' => [ 'Apple', 'iPhone SE', DeviceType::MOBILE ], + 'iPod1,1' => [ 'Apple', 'iPod touch', DeviceType::MEDIA ], + 'iPod2,1' => [ 'Apple', 'iPod touch (2nd gen)', DeviceType::MEDIA ], + 'iPod3,1' => [ 'Apple', 'iPod touch (3rd gen)', DeviceType::MEDIA ], + 'iPod4,1' => [ 'Apple', 'iPod touch (4th gen)', DeviceType::MEDIA ], + 'iPod5,1' => [ 'Apple', 'iPod touch (5th gen)', DeviceType::MEDIA ], + 'iPod7,1' => [ 'Apple', 'iPod touch (6th gen)', DeviceType::MEDIA ], + 'iPad1,1' => [ 'Apple', 'iPad', DeviceType::TABLET ], + 'iPad1,2' => [ 'Apple', 'iPad 2', DeviceType::TABLET ], + 'iPad2,1' => [ 'Apple', 'iPad 2', DeviceType::TABLET ], + 'iPad2,2' => [ 'Apple', 'iPad 2', DeviceType::TABLET ], + 'iPad2,3' => [ 'Apple', 'iPad 2', DeviceType::TABLET ], + 'iPad2,4' => [ 'Apple', 'iPad 2', DeviceType::TABLET ], + 'iPad2,5' => [ 'Apple', 'iPad mini', DeviceType::TABLET ], + 'iPad2,6' => [ 'Apple', 'iPad mini', DeviceType::TABLET ], + 'iPad2,7' => [ 'Apple', 'iPad mini', DeviceType::TABLET ], + 'iPad3,1' => [ 'Apple', 'iPad (3rd gen)', DeviceType::TABLET ], + 'iPad3,2' => [ 'Apple', 'iPad (3rd gen)', DeviceType::TABLET ], + 'iPad3,3' => [ 'Apple', 'iPad (3rd gen)', DeviceType::TABLET ], + 'iPad3,4' => [ 'Apple', 'iPad (4th gen)', DeviceType::TABLET ], + 'iPad3,5' => [ 'Apple', 'iPad (4th gen)', DeviceType::TABLET ], + 'iPad3,6' => [ 'Apple', 'iPad (4th gen)', DeviceType::TABLET ], + 'iPad4,1' => [ 'Apple', 'iPad Air', DeviceType::TABLET ], + 'iPad4,2' => [ 'Apple', 'iPad Air', DeviceType::TABLET ], + 'iPad4,3' => [ 'Apple', 'iPad Air', DeviceType::TABLET ], + 'iPad4,4' => [ 'Apple', 'iPad mini 2', DeviceType::TABLET ], + 'iPad4,5' => [ 'Apple', 'iPad mini 2', DeviceType::TABLET ], + 'iPad4,6' => [ 'Apple', 'iPad mini 2', DeviceType::TABLET ], + 'iPad4,7' => [ 'Apple', 'iPad mini 3', DeviceType::TABLET ], + 'iPad4,8' => [ 'Apple', 'iPad mini 3', DeviceType::TABLET ], + 'iPad5,1' => [ 'Apple', 'iPad mini 4', DeviceType::TABLET ], + 'iPad5,2' => [ 'Apple', 'iPad mini 4', DeviceType::TABLET ], + 'iPad5,3' => [ 'Apple', 'iPad Air 2', DeviceType::TABLET ], + 'iPad5,4' => [ 'Apple', 'iPad Air 2', DeviceType::TABLET ], + 'iPad6,3' => [ 'Apple', 'iPad Pro (9.7″)', DeviceType::TABLET ], + 'iPad6,4' => [ 'Apple', 'iPad Pro (9.7″)', DeviceType::TABLET ], + 'iPad6,7' => [ 'Apple', 'iPad Pro (12.9″)', DeviceType::TABLET ], + 'iPad6,8' => [ 'Apple', 'iPad Pro (12.9″)', DeviceType::TABLET ], +]; diff --git a/integration/whichbrowser/data/models-kddi.php b/integration/whichbrowser/data/models-kddi.php new file mode 100644 index 00000000..36c18536 --- /dev/null +++ b/integration/whichbrowser/data/models-kddi.php @@ -0,0 +1,353 @@ + [ 'iida', 'misora' ], // KYX02 by Kyocera + 'KC3S' => [ 'iida', 'PRISMOID' ], // KYX03 by Kyocera + 'KC3V' => [ 'iida', 'lotta' ], // KYX04 by Kyocera + 'ST22' => [ 'iida', 'INFOBAR' ], // A5307ST by Sanyo + 'ST33' => [ 'iida', 'INFOBAR 2' ], // W55SA by Sanyo + 'SN3K' => [ 'iida', 'G9' ], // SOX01 by Sony Ericsson + 'SN3T' => [ 'iida', 'G11' ], // SOX02 by Sony Ericsson + 'TS3Q' => [ 'iida', 'PLY' ], // TSX04 by Toshiba + 'TS3U' => [ 'iida', 'LIGHT POOL' ], // by Toshiba + 'TS3W' => [ 'iida', 'X-RAY' ], // by Toshiba + + 'CA11' => [ 'Casio', 'C303CA' ], + 'CA12' => [ 'Casio', 'C311CA' ], + 'CA13' => [ 'Casio', 'C409CA' ], + 'CA14' => [ 'Casio', 'C452CA' ], + 'CA21' => [ 'Casio', 'A3012CA' ], + 'CA22' => [ 'Casio', 'A5302CA' ], + 'CA23' => [ 'Casio', 'A5401CA' ], + 'CA24' => [ 'Casio', 'A5403CA' ], + 'CA25' => [ 'Casio', 'A5406CA' ], + 'CA26' => [ 'Casio', 'A5407CA' ], + 'CA27' => [ 'Casio', 'A5512CA' ], + 'CA28' => [ 'Casio', 'GzOne Type-R A5513CA' ], + 'CA31' => [ 'Casio', 'W21CA' ], + 'CA32' => [ 'Casio', 'W31CA' ], + 'CA33' => [ 'Casio', 'W41CA' ], + 'CA34' => [ 'Casio', 'W42CA' ], + 'CA35' => [ 'Casio', 'W43CA' ], + 'CA36' => [ 'Casio', 'E03CA' ], + 'CA37' => [ 'Casio', 'W51CA' ], + 'CA38' => [ 'Casio', 'W52CA' ], + 'CA39' => [ 'Casio', 'W53CA' ], + 'CA3A' => [ 'Casio', 'W61CA' ], + 'CA3B' => [ 'Casio', 'W62CA' ], + 'CA3C' => [ 'Casio', 'W63CA' ], + 'CA3D' => [ 'Casio', 'CA001' ], + 'CA3E' => [ 'Casio', 'CA002' ], + 'CA3F' => [ 'Casio', 'CA003' ], + 'CA3G' => [ 'Casio', 'CA004' ], + 'CA3H' => [ 'Casio', 'CA005' ], + 'CA3I' => [ 'Casio', 'GzOne Type-X CAY01' ], + 'CA3J' => [ 'Casio', 'CA006' ], + 'CA3K' => [ 'Casio', 'CA007' ], + 'DN01' => [ 'Denso', 'C202DE' ], + 'DN11' => [ 'Denso', 'C402DE' ], + 'ERK0' => [ 'Ericsson', 'R280' ], + 'FJ31' => [ 'Fujitsu', 'F001' ], + 'HI01' => [ 'Hitachi', 'C201H' ], + 'HI02' => [ 'Hitachi', 'C201H' ], + 'HI11' => [ 'Hitachi', 'C302H' ], + 'HI12' => [ 'Hitachi', 'C309H' ], + 'HI13' => [ 'Hitachi', 'C407H' ], + 'HI14' => [ 'Hitachi', 'C451H' ], + 'HI21' => [ 'Hitachi', 'C3001H' ], + 'HI23' => [ 'Hitachi', 'A5303H' ], + 'HI24' => [ 'Hitachi', 'A5303H II' ], + 'HI31' => [ 'Hitachi', 'W11H' ], + 'HI32' => [ 'Hitachi', 'W21H' ], + 'HI33' => [ 'Hitachi', 'W22H' ], + 'HI34' => [ 'Hitachi', 'PENCK W31H' ], + 'HI35' => [ 'Hitachi', 'W32H' ], + 'HI36' => [ 'Hitachi', 'W41H' ], + 'HI37' => [ 'Hitachi', 'W42H' ], + 'HI38' => [ 'Hitachi', 'W43H' ], + 'HI39' => [ 'Hitachi', 'W51H' ], + 'HI3A' => [ 'Hitachi', 'W52H' ], + 'HI3B' => [ 'Hitachi', 'W53H' ], + 'HI3C' => [ 'Hitachi', 'W61H' ], + 'HI3D' => [ 'Hitachi', 'W62H' ], + 'HI3E' => [ 'Hitachi', 'W63H' ], + 'HI3F' => [ 'Hitachi', 'H001' ], // HI001 + 'HI3G' => [ 'Hitachi', 'Mobile Hi-Vision CAM Wooo HIY01' ], + 'HI3H' => [ 'Hitachi', 'beskey HIY02' ], + 'KC11' => [ 'Kyocera', 'C307K' ], + 'KC12' => [ 'Kyocera', 'C313K' ], + 'KC13' => [ 'Kyocera', 'C414K' ], + 'KC14' => [ 'Kyocera', 'A1012K' ], + 'KC15' => [ 'Kyocera', 'A1013K' ], + 'KC21' => [ 'Kyocera', 'C3002K' ], + 'KC22' => [ 'Kyocera', 'A5305K' ], + 'KC23' => [ 'Kyocera', 'A1401K' ], + 'KC24' => [ 'Kyocera', 'A5502K' ], + 'KC25' => [ 'Kyocera', 'A5502K' ], + 'KC26' => [ 'Kyocera', 'A1403K' ], + 'KC27' => [ 'Kyocera', 'A5515K' ], + 'KC28' => [ 'Kyocera', 'A5521K' ], + 'KC29' => [ 'Kyocera', 'A5526K' ], + 'KC2A' => [ 'Kyocera', 'A5528K' ], + 'KC31' => [ 'Kyocera', 'W11K' ], + 'KC32' => [ 'Kyocera', 'W21K' ], + 'KC33' => [ 'Kyocera', 'W31K' ], + 'KC34' => [ 'Kyocera', 'W32K' ], + 'KC35' => [ 'Kyocera', 'W41K' ], + 'KC36' => [ 'Kyocera', 'W42K' ], + 'KC37' => [ 'Kyocera', 'W43K' ], + 'KC38' => [ 'Kyocera', 'W44K' ], + 'KC39' => [ 'Kyocera', 'W51K' ], + 'KC3A' => [ 'Kyocera', 'MEDIA SKIN W52K' ], + 'KC3B' => [ 'Kyocera', 'W53K/W64K' ], + 'KC3D' => [ 'Kyocera', 'W61K' ], + 'KC3E' => [ 'Kyocera', 'W44K II' ], + 'KC3G' => [ 'Kyocera', 'W62K' ], + 'KC3H' => [ 'Kyocera', 'W63K' ], + 'KC3I' => [ 'Kyocera', 'W65K' ], + 'KC3K' => [ 'Kyocera', 'W63K' ], + 'KC3M' => [ 'Kyocera', 'K001' ], // KY001 + 'KC3N' => [ 'Kyocera', 'NS01' ], // KYX01 + 'KC3O' => [ 'Kyocera', 'K002' ], // KY002 + 'KC3P' => [ 'Kyocera', 'K003' ], // KY003 + 'KC3R' => [ 'Kyocera', 'SA001' ], + 'KC3T' => [ 'Kyocera', 'E07K' ], + 'KC3U' => [ 'Kyocera', 'K004' ], // KY004 + 'KC3W' => [ 'Kyocera', 'mamorino' ], // KYY01 + 'KC3X' => [ 'Kyocera', 'SA002' ], + 'KC3Y' => [ 'Kyocera', 'K005' ], // KY005 + 'KC3Z' => [ 'Kyocera', 'K006' ], // KY006 + 'KC41' => [ 'Kyocera', 'K006' ], + 'KC42' => [ 'Kyocera', 'K007' ], // KY007 + 'KC43' => [ 'Kyocera', 'K008' ], // KY008 + 'KC44' => [ 'Kyocera', 'mamorino 2' ], // KYY02 + 'KC45' => [ 'Kyocera', 'K010' ], // KY010 + 'KC46' => [ 'Kyocera', 'K009' ], // KY009 + 'KC47' => [ 'Kyocera', 'Mi-Look' ], + 'KC48' => [ 'Kyocera', 'E10K' ], + 'KC4A' => [ 'Kyocera', 'K011' ], + 'KCC1' => [ 'Kyocera', 'D303K' ], + 'KCC2' => [ 'Kyocera', 'D304K' ], + 'KCI1' => [ 'Kyocera', '703G' ], + 'KCI2' => [ 'Kyocera', '702G' ], + 'KCT1' => [ 'Kyocera', 'TK01' ], + 'KCT2' => [ 'Kyocera', 'TK02' ], + 'KCT3' => [ 'Kyocera', 'TK02' ], + 'KCT4' => [ 'Kyocera', 'TK03' ], + 'KCT5' => [ 'Kyocera', 'TK04' ], + 'KCT6' => [ 'Kyocera', 'TK05' ], + 'KCT7' => [ 'Kyocera', 'TK11' ], + 'KCT8' => [ 'Kyocera', 'TK12' ], + 'KCT9' => [ 'Kyocera', 'TK21' ], + 'KCTA' => [ 'Kyocera', 'TK22' ], + 'KCTB' => [ 'Kyocera', 'TK23' ], + 'KCTC' => [ 'Kyocera', 'TK31' ], + 'MA11' => [ 'Panasonic', 'C308P' ], + 'MA12' => [ 'Panasonic', 'C308P' ], + 'MA13' => [ 'Panasonic', 'C408P' ], + 'MA21' => [ 'Panasonic', 'C3003P' ], + 'MA31' => [ 'Panasonic', 'W51P' ], + 'MA32' => [ 'Panasonic', 'W52P' ], + 'MA33' => [ 'Panasonic', 'W61P' ], + 'MA34' => [ 'Panasonic', 'W62P' ], + 'MA35' => [ 'Panasonic', 'P001' ], + 'MAC1' => [ 'Panasonic', 'D305P' ], + 'MAC2' => [ 'Panasonic', 'D305P' ], + 'MAI1' => [ 'Panasonic', '704G' ], + 'MAI2' => [ 'Panasonic', '704G' ], + 'MAT1' => [ 'Panasonic', 'TP01' ], + 'MAT2' => [ 'Panasonic', 'TP01' ], + 'MAT3' => [ 'Panasonic', 'TP11' ], + 'MIT1' => [ 'Mitsubishi', 'TD11' ], + 'PT21' => [ 'Pantech', 'A1405PT' ], + 'PT23' => [ 'Pantech', 'A1407PT' ], + 'PT33' => [ 'Pantech', 'W61PT' ], + 'PT34' => [ 'Pantech', 'W62PT' ], + 'PT35' => [ 'Pantech', 'NS02' ], + 'PT36' => [ 'Pantech', 'PT002' ], + 'SA21' => [ 'Sanyo', 'A3011SA' ], + 'SA22' => [ 'Sanyo', 'A3015SA' ], + 'SA24' => [ 'Sanyo', 'A1302SA' ], + 'SA25' => [ 'Sanyo', 'A1303SA' ], + 'SA26' => [ 'Sanyo', 'A5503SA' ], + 'SA27' => [ 'Sanyo', 'A5505SA' ], + 'SA28' => [ 'Sanyo', 'A1305SA' ], + 'SA29' => [ 'Sanyo', 'A5522SA' ], + 'SA2A' => [ 'Sanyo', 'A5527SA' ], + 'SA31' => [ 'Sanyo', 'W21SA' ], + 'SA32' => [ 'Sanyo', 'W22SA' ], + 'SA33' => [ 'Sanyo', 'W31SA' ], + 'SA34' => [ 'Sanyo', 'W32SA' ], + 'SA35' => [ 'Sanyo', 'W33SA' ], + 'SA36' => [ 'Sanyo', 'W41SA' ], + 'SA37' => [ 'Sanyo', 'E02SA' ], + 'SA38' => [ 'Sanyo', 'W43SA' ], + 'SA39' => [ 'Sanyo', 'W51SA' ], + 'SA3A' => [ 'Sanyo', 'W52SA' ], + 'SA3B' => [ 'Sanyo', 'W54SA' ], + 'SA3C' => [ 'Sanyo', 'W61SA' ], + 'SA3D' => [ 'Sanyo', 'W63SA' ], + 'SA3E' => [ 'Sanyo', 'W64SA' ], + 'SY12' => [ 'Sanyo', 'C401SA' ], + 'SY13' => [ 'Sanyo', 'C405SA' ], + 'SY14' => [ 'Sanyo', 'C412SA' ], + 'SY15' => [ 'Sanyo', 'C1001SA' ], + 'SYC1' => [ 'Sanyo', 'D301SA' ], + 'SYT1' => [ 'Sanyo', 'TS01' ], + 'SYT2' => [ 'Sanyo', 'TS02' ], + 'SYT3' => [ 'Sanyo', 'TS11' ], + 'SYT4' => [ 'Sanyo', 'TS31' ], + 'SH31' => [ 'Sharp', 'W41SH' ], + 'SH32' => [ 'Sharp', 'W51SH' ], + 'SH33' => [ 'Sharp', 'W52SH' ], + 'SH34' => [ 'Sharp', 'W61SH' ], + 'SH35' => [ 'Sharp', 'W62SH' ], + 'SH36' => [ 'Sharp', 'URBANO W63SH' ], + 'SH37' => [ 'Sharp', 'W64SH' ], + 'SH38' => [ 'Sharp', 'SH001' ], + 'SH39' => [ 'Sharp', 'E05SH' ], + 'SH3A' => [ 'Sharp', 'E06SH' ], + 'SH3B' => [ 'Sharp', 'SH002' ], + 'SH3C' => [ 'Sharp', 'Sportio water beat SHY01' ], + 'SH3D' => [ 'Sharp', 'SH003' ], + 'SH3E' => [ 'Sharp', 'SH004' ], + 'SH3F' => [ 'Sharp', 'SH005' ], + 'SH3G' => [ 'Sharp', 'SH006' ], + 'SH3H' => [ 'Sharp', 'SH007' ], + 'SH3I' => [ 'Sharp', 'SH008' ], + 'SH3J' => [ 'Sharp', 'SH009' ], + 'SH3K' => [ 'Sharp', 'SH010' ], + 'SH3L' => [ 'Sharp', 'SH011' ], + 'SN11' => [ 'Sony', 'C305S' ], + 'SN13' => [ 'Sony', 'C406S' ], + 'SN14' => [ 'Sony', 'C404S' ], + 'SN15' => [ 'Sony', 'C413S' ], + 'SN16' => [ 'Sony', 'C413S' ], + 'SN17' => [ 'Sony Ericsson', 'C1002S' ], + 'SN21' => [ 'Sony Ericsson', 'A3014S' ], + 'SN22' => [ 'Sony Ericsson', 'A1101S' ], + 'SN23' => [ 'Sony Ericsson', 'A1301S' ], + 'SN24' => [ 'Sony Ericsson', 'A5402S' ], + 'SN25' => [ 'Sony Ericsson', 'A5404S' ], + 'SN26' => [ 'Sony Ericsson', 'A1402S' ], + 'SN27' => [ 'Sony Ericsson', 'A1402S II' ], + 'SN28' => [ 'Sony Ericsson', 'A1402S II' ], + 'SN29' => [ 'Sony Ericsson', 'A1404S' ], + 'SN31' => [ 'Sony Ericsson', 'W21S' ], + 'SN32' => [ 'Sony Ericsson', 'W31S' ], + 'SN33' => [ 'Sony Ericsson', 'W32S' ], + 'SN34' => [ 'Sony Ericsson', 'W41S' ], + 'SN35' => [ 'Sony Ericsson', 'EZ FeliCa W32S' ], + 'SN36' => [ 'Sony Ericsson', 'W42S' ], + 'SN37' => [ 'Sony Ericsson', 'W43S' ], + 'SN38' => [ 'Sony Ericsson', 'W44S' ], + 'SN39' => [ 'Sony Ericsson', 'W51S' ], + 'SN3A' => [ 'Sony Ericsson', 'W52S' ], + 'SN3B' => [ 'Sony Ericsson', 'W53S' ], + 'SN3C' => [ 'Sony Ericsson', 'W54S' ], + 'SN3D' => [ 'Sony Ericsson', 'W61S' ], + 'SN3E' => [ 'Sony Ericsson', 'W62S' ], + 'SN3F' => [ 'Sony Ericsson', 're W63S' ], + 'SN3G' => [ 'Sony Ericsson', 'W64S' ], + 'SN3H' => [ 'Sony Ericsson', 'Xmini W65S' ], + 'SN3I' => [ 'Sony Ericsson', 'Premier3 SOY01' ], + 'SN3J' => [ 'Sony Ericsson', 'S001' ], + 'SN3L' => [ 'Sony Ericsson', 'BRAVIA Phone U1 SOY02' ], + 'SN3M' => [ 'Sony Ericsson', 'S002' ], + 'SN3N' => [ 'Sony Ericsson', 'URBANO BARONE SOY03' ], + 'SN3O' => [ 'Sony Ericsson', 'S003' ], + 'SN3P' => [ 'Sony Ericsson', 'S004' ], + 'SN3Q' => [ 'Sony Ericsson', 'S005' ], + 'SN3R' => [ 'Sony Ericsson', 'URBANO MOND SOY04' ], + 'SN3S' => [ 'Sony Ericsson', 'S006' ], + 'SN3U' => [ 'Sony Ericsson', 'S007' ], + 'SN3V' => [ 'Sony Ericsson', 'URBANO AFFARE SOY05' ], + 'ST11' => [ 'Sanyo', 'C403ST' ], + 'ST12' => [ 'Sanyo', 'C411ST' ], + 'ST13' => [ 'Sanyo', 'A1011ST' ], + 'ST14' => [ 'Sanyo', 'A1014ST' ], + 'ST21' => [ 'Sanyo', 'A5306ST' ], + 'ST23' => [ 'Sanyo', 'A5405SA' ], + 'ST24' => [ 'Sanyo', 'A5507SA' ], + 'ST25' => [ 'Sanyo', 'talby A5508SA' ], + 'ST26' => [ 'Sanyo', 'Sweets A5510SA' ], + 'ST27' => [ 'Sanyo', 'A5514SA' ], + 'ST28' => [ 'Sanyo', 'A5518SA' ], + 'ST29' => [ 'Sanyo', 'Sweets pure A5519SA' ], + 'ST2A' => [ 'Sanyo', 'A5520SA' ], + 'ST2C' => [ 'Sanyo', 'Sweets cute A5524SA' ], + 'ST2D' => [ 'Sanyo', 'A5525SA' ], + 'ST31' => [ 'Sanyo', 'W42SA' ], + 'ST32' => [ 'Sanyo', 'W53SA' ], + 'ST34' => [ 'Sanyo', 'W62SA' ], + 'SY01' => [ 'Sanyo', 'SCP-4000' ], + 'SY02' => [ 'Sanyo', 'SCP-4500' ], + 'SY03' => [ 'Sanyo', 'SCP-5000' ], + 'SY11' => [ 'Sanyo', 'C304SA' ], + 'SY12' => [ 'Sanyo', 'C401SA' ], + 'SY13' => [ 'Sanyo', 'C405SA' ], + 'SY14' => [ 'Sanyo', 'C412SA' ], + 'SY15' => [ 'Sanyo', 'C1001SA' ], + 'TS01' => [ 'Toshiba', 'IS02' ], + 'TS11' => [ 'Toshiba', 'C301T' ], + 'TS12' => [ 'Toshiba', 'C310T' ], + 'TS13' => [ 'Toshiba', 'C410T' ], + 'TS14' => [ 'Toshiba', 'C415T' ], + 'TS21' => [ 'Toshiba', 'C5001T' ], + 'TS22' => [ 'Toshiba', 'A3013T' ], + 'TS23' => [ 'Toshiba', 'A5301T' ], + 'TS24' => [ 'Toshiba', 'A5304T' ], + 'TS25' => [ 'Toshiba', 'A1304T' ], + 'TS26' => [ 'Toshiba', 'A5501T' ], + 'TS27' => [ 'Toshiba', 'A5504T' ], + 'TS28' => [ 'Toshiba', 'A5506T' ], + 'TS29' => [ 'Toshiba', 'A5509T' ], + 'TS2A' => [ 'Toshiba', 'A5511T' ], + 'TS2B' => [ 'Toshiba', 'A5516T' ], + 'TS2C' => [ 'Toshiba', 'A5517T' ], + 'TS2D' => [ 'Toshiba', 'A5523T' ], + 'TS2E' => [ 'Toshiba', 'A5529T' ], + 'TS31' => [ 'Toshiba', 'W21T' ], + 'TS32' => [ 'Toshiba', 'W31T' ], + 'TS33' => [ 'Toshiba', 'W32T' ], + 'TS34' => [ 'Toshiba', 'W41T' ], + 'TS35' => [ 'Toshiba', 'neon W42T' ], + 'TS36' => [ 'Toshiba', 'W43T' ], + 'TS37' => [ 'Toshiba', 'W44T' ], + 'TS38' => [ 'Toshiba', 'W45T' ], + 'TS39' => [ 'Toshiba', 'DRAPE W46T' ], + 'TS3A' => [ 'Toshiba', 'W47T' ], + 'TS3B' => [ 'Toshiba', 'W51T' ], + 'TS3C' => [ 'Toshiba', 'W52T' ], + 'TS3D' => [ 'Toshiba', 'W53T' ], + 'TS3E' => [ 'Toshiba', 'W54T' ], + 'TS3G' => [ 'Toshiba', 'W55T' ], + 'TS3H' => [ 'Toshiba', 'W56T' ], + 'TS3I' => [ 'Toshiba', 'W61T' ], + 'TS3J' => [ 'Toshiba', 'W62T' ], + 'TS3K' => [ 'Toshiba', 'Sportio W63T' ], + 'TS3L' => [ 'Toshiba', 'W64T' ], + 'TS3M' => [ 'Toshiba', 'W65T' ], + 'TS3N' => [ 'Toshiba', 'T001' ], + 'TS3O' => [ 'Toshiba', 'biblio TSY01' ], + 'TS3P' => [ 'Toshiba', 'T002' ], + 'TS3R' => [ 'Toshiba', 'T003' ], + 'TS3S' => [ 'Toshiba', 'T004' ], + 'TS3T' => [ 'Toshiba', 'E08T' ], + 'TS3V' => [ 'Toshiba', 'T005' ], + 'TS3X' => [ 'Toshiba', 'T006' ], + 'TS3Y' => [ 'Toshiba', 'T008' ], + 'TS3Z' => [ 'Toshiba', 'T007' ], + 'TS41' => [ 'Toshiba', 'E09F' ], + 'TSC1' => [ 'Toshiba', 'D302T' ], + 'TSI1' => [ 'Toshiba', '701G' ], + 'TST1' => [ 'Toshiba', 'TT01' ], + 'TST2' => [ 'Toshiba', 'TT02' ], + 'TST3' => [ 'Toshiba', 'TT03' ], + 'TST4' => [ 'Toshiba', 'TT11' ], + 'TST5' => [ 'Toshiba', 'TT21' ], + 'TST6' => [ 'Toshiba', 'TT22' ], + 'TST7' => [ 'Toshiba', 'TT31' ], +]; diff --git a/integration/whichbrowser/data/models-palmos.php b/integration/whichbrowser/data/models-palmos.php new file mode 100644 index 00000000..83ae0028 --- /dev/null +++ b/integration/whichbrowser/data/models-palmos.php @@ -0,0 +1,94 @@ + [ 'Palm', 'Centro 685', DeviceType::MOBILE ], + 'Palm-D062' => [ 'Palm', 'Centro 690', DeviceType::MOBILE ], + 'Palm-TunX' => [ 'Palm', 'LifeDrive', DeviceType::PDA ], + 'Palm-stuj' => [ 'Palm', 'm125', DeviceType::PDA ], + 'Palm-hbbs' => [ 'Palm', 'm130', DeviceType::PDA ], + 'Palm-trnd' => [ 'Palm', 'm500', DeviceType::PDA ], + 'Palm-ecty' => [ 'Palm', 'm505', DeviceType::PDA ], + 'Palm-lith' => [ 'Palm', 'm515', DeviceType::PDA ], + 'Palm-sky1' => [ 'Palm', 'i705', DeviceType::PDA ], + 'hspr-H101' => [ 'Palm', 'Treo 600', DeviceType::MOBILE ], + 'hspr-H102' => [ 'Palm', 'Treo 650', DeviceType::MOBILE ], + 'Palm-D053' => [ 'Palm', 'Treo 680', DeviceType::MOBILE ], + 'Palm-D052' => [ 'Palm', 'Treo 700', DeviceType::MOBILE ], + 'Palm-D060' => [ 'Palm', 'Treo 755', DeviceType::MOBILE ], + 'Palm-MT64' => [ 'Palm', 'Tungsten C', DeviceType::PDA ], + 'Palm-Cct1' => [ 'Palm', 'Tungsten E', DeviceType::PDA ], + 'Palm-Zir4' => [ 'Palm', 'Tungsten E2', DeviceType::PDA ], + 'Palm-Frg1' => [ 'Palm', 'Tungsten T', DeviceType::PDA ], + 'Palm-Frg2' => [ 'Palm', 'Tungsten T2', DeviceType::PDA ], + 'Palm-Arz1' => [ 'Palm', 'Tungsten T3', DeviceType::PDA ], + 'Palm-TnT5' => [ 'Palm', 'Tungsten T5', DeviceType::PDA ], + 'Palm-atc1' => [ 'Palm', 'Tungsten W', DeviceType::PDA ], + 'Palm-D050' => [ 'Palm', 'TX', DeviceType::PDA ], + 'Palm-Cubs' => [ 'Palm', 'Zire', DeviceType::PDA ], + 'Palm-Zi21' => [ 'Palm', 'Zire 21', DeviceType::PDA ], + 'Palm-D051' => [ 'Palm', 'Zire 22', DeviceType::PDA ], + 'Palm-Zi22' => [ 'Palm', 'Zire 31', DeviceType::PDA ], + 'Palm-Zpth' => [ 'Palm', 'Zire 71', DeviceType::PDA ], + 'Palm-Zi72' => [ 'Palm', 'Zire 72', DeviceType::PDA ], + + 'sony-ystn' => [ 'Sony', 'CLIÉ PEG-N600C', DeviceType::PDA ], + 'sony-ysmt' => [ 'Sony', 'CLIÉ PEG-N700C', DeviceType::PDA ], + 'sony-ysm2' => [ 'Sony', 'CLIÉ PEG-N750C', DeviceType::PDA ], + 'sony-nsca' => [ 'Sony', 'CLIÉ PEG-S320', DeviceType::PDA ], + 'sony-nsc2' => [ 'Sony', 'CLIÉ PEG-S360', DeviceType::PDA ], + 'sony-vnce' => [ 'Sony', 'CLIÉ PEG-T400', DeviceType::PDA ], + 'sony-mdna' => [ 'Sony', 'CLIÉ PEG-T600C', DeviceType::PDA ], + 'sony-npls' => [ 'Sony', 'CLIÉ PEG-T650C', DeviceType::PDA ], + 'sony-rdwd' => [ 'Sony', 'CLIÉ PEG-NR70', DeviceType::PDA ], + 'sony-crdb' => [ 'Sony', 'CLIÉ PEG-NX60', DeviceType::PDA ], + 'sony-tldo' => [ 'Sony', 'CLIÉ PEG-NX73V', DeviceType::PDA ], + 'sony-mdrd' => [ 'Sony', 'CLIÉ PEG-NX80V', DeviceType::PDA ], + 'sony-grnd' => [ 'Sony', 'CLIÉ PEG-NZ90', DeviceType::PDA ], + 'sony-frta' => [ 'Sony', 'CLIÉ PEG-SL10', DeviceType::PDA ], + 'sony-cocs' => [ 'Sony', 'CLIÉ PEG-SL20', DeviceType::PDA ], + 'sony-glps' => [ 'Sony', 'CLIÉ PEG-SJ22', DeviceType::PDA ], + 'sony-mcnd' => [ 'Sony', 'CLIÉ PEG-SJ33', DeviceType::PDA ], + 'sony-vrna' => [ 'Sony', 'CLIÉ PEG-TG50', DeviceType::PDA ], + 'sony-atom' => [ 'Sony', 'CLIÉ PEG-TH55', DeviceType::PDA ], + 'sony-goha' => [ 'Sony', 'CLIÉ PEG-TJ25', DeviceType::PDA ], + 'sony-leia' => [ 'Sony', 'CLIÉ PEG-TJ27', DeviceType::PDA ], + 'sony-hwai' => [ 'Sony', 'CLIÉ PEG-TJ30', DeviceType::PDA ], + 'sony-goku' => [ 'Sony', 'CLIÉ PEG-TJ35', DeviceType::PDA ], + 'sony-luke' => [ 'Sony', 'CLIÉ PEG-TJ37', DeviceType::PDA ], + 'sony-amno' => [ 'Sony', 'CLIÉ PEG-UX40', DeviceType::PDA ], + 'sony-prmr' => [ 'Sony', 'CLIÉ PEG-UX50', DeviceType::PDA ], + 'sony-ancy' => [ 'Sony', 'CLIÉ PEG-VZ90', DeviceType::PDA ], + + 'smsn-phix' => [ 'Samsung', 'SPH-i300', DeviceType::MOBILE ], + 'smsn-Phx2' => [ 'Samsung', 'SPH-i330', DeviceType::MOBILE ], + 'smsn-blch' => [ 'Samsung', 'SPH-i500', DeviceType::MOBILE ], + 'smsn-BLFM' => [ 'Samsung', 'SPH-i530', DeviceType::MOBILE ], + 'smsn-glxy' => [ 'Samsung', 'SPH-i550', DeviceType::MOBILE ], + + 'grmn-3200' => [ 'Garmin', 'iQue 3200', DeviceType::GPS ], + 'grmn-3600' => [ 'Garmin', 'iQue 3600', DeviceType::GPS ], + 'grmn-3700' => [ 'Garmin', 'iQue 3600a', DeviceType::GPS ], + + 'trgp-trg1' => [ 'HandEra', 'TRG Pro', DeviceType::PDA ], + 'trgp-trg2' => [ 'HandEra', '330', DeviceType::PDA ], + + 'qcom-qc20' => [ 'Kyocera', 'QCP-6035', DeviceType::MOBILE ], + 'kwc.-7135' => [ 'Kyocera', 'QCP-7135', DeviceType::MOBILE ], + + 'Tpwv-Rdog' => [ 'Tapwave', 'Zodiac', [ DeviceType::GAMING, DeviceSubType::PORTABLE ] ], + + 'gsRl-zicn' => [ 'Group Sense', 'Xplore G18', DeviceType::MOBILE ], + 'gsRl-zcn2' => [ 'Group Sense', 'Xplore M28', DeviceType::MOBILE ], + 'gsRl-zcn5' => [ 'Group Sense', 'Xplore M68', DeviceType::MOBILE ], + + 'acer-momo' => [ 'Acer', 's10', DeviceType::PDA ], + 'acer-coco' => [ 'Acer', 's50', DeviceType::PDA ], + + 'Acea-MZ01' => [ 'Aceeca', 'Meazura MEZ1000', DeviceType::PDA ], + 'Acea-PD01' => [ 'Aceeca', 'PDA32', DeviceType::PDA ], +]; diff --git a/integration/whichbrowser/data/models-s30plus.php b/integration/whichbrowser/data/models-s30plus.php new file mode 100644 index 00000000..cf16f743 --- /dev/null +++ b/integration/whichbrowser/data/models-s30plus.php @@ -0,0 +1,13 @@ + [ 'Nokia', '215' ], + '220' => [ 'Nokia', '220' ], + '222' => [ 'Nokia', '222' ], + '225' => [ 'Nokia', '225' ], + '230' => [ 'Nokia', '230' ] +]; diff --git a/integration/whichbrowser/data/models-s40.php b/integration/whichbrowser/data/models-s40.php new file mode 100644 index 00000000..b2629814 --- /dev/null +++ b/integration/whichbrowser/data/models-s40.php @@ -0,0 +1,135 @@ + [ 'Nokia', 'C1-01' ], + 'C1-02!' => [ 'Nokia', 'C1-02' ], + 'C1-03!' => [ 'Nokia', 'C1-03' ], + 'C2-00!' => [ 'Nokia', 'C2-00' ], + 'C2-01!' => [ 'Nokia', 'C2-01' ], + 'C2-02!' => [ 'Nokia', 'C2-02' ], + 'C2-03!' => [ 'Nokia', 'C2-03' ], + 'C2-05!' => [ 'Nokia', 'C2-05' ], + 'C2-06!' => [ 'Nokia', 'C2-06' ], + 'C3-00!' => [ 'Nokia', 'C3-00' ], + 'C3-01!' => [ 'Nokia', 'C3-01' ], + 'X2-00!' => [ 'Nokia', 'X2-00' ], + 'X2-01!' => [ 'Nokia', 'X2-01' ], + 'X2-02!' => [ 'Nokia', 'X2-02' ], + 'X2-03!' => [ 'Nokia', 'X2-03' ], + 'X2-05!' => [ 'Nokia', 'X2-05' ], + 'X3-00!' => [ 'Nokia', 'X3-00' ], + 'X3-02!' => [ 'Nokia', 'X3-02' ], + '109' => [ 'Nokia', '109' ], + '110' => [ 'Nokia', '110' ], + '111' => [ 'Nokia', '111' ], + '111.1' => [ 'Nokia', '111' ], + '112' => [ 'Nokia', '112' ], + '114' => [ 'Nokia', '114' ], + '200' => [ 'Nokia', 'Asha 200' ], + '201' => [ 'Nokia', 'Asha 201' ], + '202' => [ 'Nokia', 'Asha 202' ], + '203' => [ 'Nokia', 'Asha 203' ], + '205' => [ 'Nokia', 'Asha 205' ], + '205.1' => [ 'Nokia', 'Asha 205' ], + '205.3' => [ 'Nokia', 'Asha 205' ], + '206' => [ 'Nokia', 'Asha 206' ], + '206.1' => [ 'Nokia', 'Asha 206' ], + '208' => [ 'Nokia', '208' ], + '208.1' => [ 'Nokia', '208' ], + '208.2' => [ 'Nokia', '208' ], + '208.3' => [ 'Nokia', '208' ], + '208.4' => [ 'Nokia', '208' ], + '210' => [ 'Nokia', 'Asha 210' ], + '210.2' => [ 'Nokia', 'Asha 210' ], + '210.3' => [ 'Nokia', 'Asha 210' ], + '210.4' => [ 'Nokia', 'Asha 210' ], + '210.5' => [ 'Nokia', 'Asha 210' ], + '300' => [ 'Nokia', 'Asha 300' ], + '301' => [ 'Nokia', '301' ], + '301.1' => [ 'Nokia', '301' ], + '302' => [ 'Nokia', 'Asha 302' ], + '303' => [ 'Nokia', 'Asha 303' ], + '305' => [ 'Nokia', 'Asha 305' ], + '306' => [ 'Nokia', 'Asha 306' ], + '308' => [ 'Nokia', 'Asha 308' ], + '309' => [ 'Nokia', 'Asha 309' ], + '310' => [ 'Nokia', 'Asha 310' ], + '311' => [ 'Nokia', 'Asha 311' ], + '515' => [ 'Nokia', '515' ], + '515.2' => [ 'Nokia', '515' ], + '1682c' => [ 'Nokia', '1682 classic' ], + '2055' => [ 'Nokia', 'Asha 2055' ], + '2060' => [ 'Nokia', '2060' ], // Same as Asha 206 + '2220s!' => [ 'Nokia', '2220 slide' ], + '2320c!' => [ 'Nokia', '2320 classic' ], + '2322c!' => [ 'Nokia', '2322 classic' ], + '2323c!' => [ 'Nokia', '2323 classic' ], + '2330c!' => [ 'Nokia', '2330 classic' ], + '2600c!' => [ 'Nokia', '2600 classic' ], + '2680s!' => [ 'Nokia', '2680 slide' ], + '2690' => [ 'Nokia', '2690' ], + '2692' => [ 'Nokia', '2692' ], + '2700c!' => [ 'Nokia', '2700 classic' ], + '2710c' => [ 'Nokia', '2710' ], + '2710c-2' => [ 'Nokia', '2710' ], + '2720a!' => [ 'Nokia', '2720 fold' ], + '2730c!' => [ 'Nokia', '2730 classic' ], + '3020' => [ 'Nokia', '3020' ], + '3109c' => [ 'Nokia', '3109 classic' ], + '3110c' => [ 'Nokia', '3110 Evolve' ], + '3120c' => [ 'Nokia', '3120 classic' ], + '3120classic' => [ 'Nokia', '3120 classic' ], + '3208c' => [ 'Nokia', '3208 classic' ], + '3500c' => [ 'Nokia', '3500 classic' ], + '3555b' => [ 'Nokia', '3555' ], + '3600s' => [ 'Nokia', '3600 slide' ], + '3610a' => [ 'Nokia', '3610 fold' ], + '3710fold' => [ 'Nokia', '3710 fold' ], + '3720c' => [ 'Nokia', '3720 classic' ], + '5000!' => [ 'Nokia', '5000' ], + '5130!' => [ 'Nokia', '5130 XpressMusic' ], + '5130c!' => [ 'Nokia', '5130 classic' ], + '5132' => [ 'Nokia', '5132 XpressMusic' ], + '5200!' => [ 'Nokia', '5200' ], + '5220!' => [ 'Nokia', '5220 XpressMusic' ], + '5300!' => [ 'Nokia', '5300 XpressMusic' ], + '5310!' => [ 'Nokia', '5310 XpressMusic' ], + '5330' => [ 'Nokia', '5330 Mobile TV Edition' ], + '5330-1d' => [ 'Nokia', '5330 Mobile TV Edition' ], + '5610d!' => [ 'Nokia', '5610 XpressMusic' ], + '6070!' => [ 'Nokia', '6070' ], + '6208c' => [ 'Nokia', '6208 classic' ], + '6212c' => [ 'Nokia', '6212 classic' ], + '6260s!' => [ 'Nokia', '6260 slide' ], + '6230i!' => [ 'Nokia', '6230i' ], + '6233' => [ 'Nokia', '6233' ], + '6234' => [ 'Nokia', '6234' ], + '6263!' => [ 'Nokia', '6263' ], + '6280' => [ 'Nokia', '6280' ], + '6300' => [ 'Nokia', '6300' ], + '6300i' => [ 'Nokia', '6300i' ], + '6301' => [ 'Nokia', '6301' ], + '6303c' => [ 'Nokia', '6303 classic' ], + '6303classic' => [ 'Nokia', '6303 classic' ], + '6303iclassic' => [ 'Nokia', '6303i classic' ], + '6303ci' => [ 'Nokia', '6303i classic' ], + '6350' => [ 'Nokia', '6350' ], + '6500s!' => [ 'Nokia', '6500 slide' ], + '6600f!' => [ 'Nokia', '6600 fold' ], + '6600s!' => [ 'Nokia', '6600 slide' ], + '6600i!' => [ 'Nokia', '6600i slide' ], + '6700c!' => [ 'Nokia', '6700 classic' ], + '6750c' => [ 'Nokia', '6750 Mural' ], + '7070!' => [ 'Nokia', '7070 Prism' ], + '7100s!' => [ 'Nokia', '7100 Supernova' ], + '7210s!' => [ 'Nokia', '7210 Supernova' ], + '7210Supernova!' => [ 'Nokia', '7210 Supernova' ], + '7230!' => [ 'Nokia', '7230' ], + '7310c!' => [ 'Nokia', '7310 Supernova' ], + '7500' => [ 'Nokia', '7500 Prism' ], + '7510Supernova!' => [ 'Nokia', '7510 Supernova' ], + '7610Supernova!' => [ 'Nokia', '7610 Supernova' ], + '8800!' => [ 'Nokia', '8800 Arte' ] +]; diff --git a/integration/whichbrowser/data/models-symbian.php b/integration/whichbrowser/data/models-symbian.php new file mode 100644 index 00000000..168d3bfa --- /dev/null +++ b/integration/whichbrowser/data/models-symbian.php @@ -0,0 +1,181 @@ + [ 'BenQ', 'P30', 'flag' => Flag::UIQ ], + 'BenQ P31' => [ 'BenQ', 'P31', 'flag' => Flag::UIQ ], + 'RIZR-Z8' => [ 'Motorola', 'RIZR Z8', 'flag' => Flag::UIQ ], + 'RIZR-Z10' => [ 'Motorola', 'RIZR Z10', 'flag' => Flag::UIQ ], + 'A920' => [ 'Motorola', 'A920', 'flag' => Flag::UIQ ], + 'A925' => [ 'Motorola', 'A925', 'flag' => Flag::UIQ ], + 'A1000' => [ 'Motorola', 'A1000', 'flag' => Flag::UIQ ], + 'M1000' => [ 'Motorola', 'M1000', 'flag' => Flag::UIQ, 'carrier' => 'DoCoMo' ], + 'G700' => [ 'Sony Ericsson', 'G700', 'flag' => Flag::UIQ ], + 'G900' => [ 'Sony Ericsson', 'G900', 'flag' => Flag::UIQ ], + 'M600i' => [ 'Sony Ericsson', 'M600', 'flag' => Flag::UIQ ], + 'P910i' => [ 'Sony Ericsson', 'P910', 'flag' => Flag::UIQ ], + 'P990i' => [ 'Sony Ericsson', 'P990', 'flag' => Flag::UIQ ], + 'P1i' => [ 'Sony Ericsson', 'P1', 'flag' => Flag::UIQ ], + 'W950i' => [ 'Sony Ericsson', 'W950', 'flag' => Flag::UIQ ], + 'W960i' => [ 'Sony Ericsson', 'W960', 'flag' => Flag::UIQ ], + + 'LG KS10' => [ 'LG', 'KS10 Joy', 'flag' => Flag::S60 ], + 'LGKT610' => [ 'LG', 'KT610', 'flag' => Flag::S60 ], + 'LGKT615' => [ 'LG', 'KT615', 'flag' => Flag::S60 ], + 'C5-00!' => [ 'Nokia', 'C5-00', 'flag' => Flag::S60 ], + 'C5-01' => [ 'Nokia', 'C5-01', 'flag' => Flag::S60 ], + 'C5-03!' => [ 'Nokia', 'C5-03', 'flag' => Flag::S60 ], + 'C5-04' => [ 'Nokia', 'C5-04', 'flag' => Flag::S60 ], + 'C5-05' => [ 'Nokia', 'C5-05', 'flag' => Flag::S60 ], + 'C5-06' => [ 'Nokia', 'C5-06', 'flag' => Flag::S60 ], + 'C6-00!' => [ 'Nokia', 'C6-00', 'flag' => Flag::S60 ], + 'C6-01!' => [ 'Nokia', 'C6-01', 'flag' => Flag::S60 ], + 'C7-00!' => [ 'Nokia', 'C7-00', 'flag' => Flag::S60 ], + 'E5-00!' => [ 'Nokia', 'E5-00', 'flag' => Flag::S60 ], + 'E6' => [ 'Nokia', 'E6-00', 'flag' => Flag::S60 ], + 'E6-00' => [ 'Nokia', 'E6-00', 'flag' => Flag::S60 ], + 'E7-00' => [ 'Nokia', 'E7-00', 'flag' => Flag::S60 ], + 'N8-00' => [ 'Nokia', 'N8-00', 'flag' => Flag::S60 ], + 'T7-00' => [ 'Nokia', 'T7-00', 'flag' => Flag::S60 ], + 'X5-00' => [ 'Nokia', 'X5-00', 'flag' => Flag::S60 ], + 'X5-01' => [ 'Nokia', 'X5-01', 'flag' => Flag::S60 ], + 'X6-00!' => [ 'Nokia', 'X6-00', 'flag' => Flag::S60 ], + 'X7-00!' => [ 'Nokia', 'X7-00', 'flag' => Flag::S60 ], + 'N-Gage' => [ 'Nokia', 'N-Gage', 'flag' => Flag::S60 ], + 'N-GageQD' => [ 'Nokia', 'N-Gage QD', 'flag' => Flag::S60 ], + 'E50(-[1-9])?$!' => [ 'Nokia', 'E50', 'flag' => Flag::S60 ], + 'E51(-[1-9])?$!' => [ 'Nokia', 'E51', 'flag' => Flag::S60 ], + 'E52(-[1-9])?$!' => [ 'Nokia', 'E52', 'flag' => Flag::S60 ], + 'E55(-[1-9])?$!' => [ 'Nokia', 'E55', 'flag' => Flag::S60 ], + 'E60(-[1-9])?$!' => [ 'Nokia', 'E60', 'flag' => Flag::S60 ], + 'E61i!' => [ 'Nokia', 'E61i', 'flag' => Flag::S60 ], + 'E61(-[1-9])?$!' => [ 'Nokia', 'E61', 'flag' => Flag::S60 ], + 'E62(-[1-9])?$!' => [ 'Nokia', 'E62', 'flag' => Flag::S60 ], + 'E63(-[1-9])?$!' => [ 'Nokia', 'E63', 'flag' => Flag::S60 ], + 'E65(-[1-9])?$!' => [ 'Nokia', 'E65', 'flag' => Flag::S60 ], + 'E66(-[1-9])?$!' => [ 'Nokia', 'E66', 'flag' => Flag::S60 ], + 'E70(-[1-9])?$!' => [ 'Nokia', 'E70', 'flag' => Flag::S60 ], + 'E71x' => [ 'Nokia', 'E71x', 'flag' => Flag::S60 ], + 'E71(-[1-9])?$!' => [ 'Nokia', 'E71', 'flag' => Flag::S60 ], + 'E72(-[1-9])?$!' => [ 'Nokia', 'E72', 'flag' => Flag::S60 ], + 'E73(-[1-9])?$!' => [ 'Nokia', 'E73 Mode', 'flag' => Flag::S60 ], + 'E75(-[1-9])?$!' => [ 'Nokia', 'E75', 'flag' => Flag::S60 ], + 'E90(-[1-9])?$!' => [ 'Nokia', 'E90 Communicator', 'flag' => Flag::S60 ], + 'E-90-1' => [ 'Nokia', 'E90 Communicator', 'flag' => Flag::S60 ], + 'N70(-[1-9])?$!' => [ 'Nokia', 'N70', 'flag' => Flag::S60 ], + 'N71(-[1-9])?$!' => [ 'Nokia', 'N71', 'flag' => Flag::S60 ], + 'N72(-[1-9])?$!' => [ 'Nokia', 'N72', 'flag' => Flag::S60 ], + 'N73(-[1-9])?$!' => [ 'Nokia', 'N73', 'flag' => Flag::S60 ], + 'N75(-[1-9])?$!' => [ 'Nokia', 'N75', 'flag' => Flag::S60 ], + 'N76(-[1-9])?$!' => [ 'Nokia', 'N76', 'flag' => Flag::S60 ], + 'N77(-[1-9])?$!' => [ 'Nokia', 'N77', 'flag' => Flag::S60 ], + 'N78(-[1-9])?$!' => [ 'Nokia', 'N78', 'flag' => Flag::S60 ], + 'N79(-[1-9])?$!' => [ 'Nokia', 'N79', 'flag' => Flag::S60 ], + 'N80(-[1-9])?$!' => [ 'Nokia', 'N80', 'flag' => Flag::S60 ], + 'N81(-[1-9])?$!' => [ 'Nokia', 'N81', 'flag' => Flag::S60 ], + 'Nokia N81' => [ 'Nokia', 'N81', 'flag' => Flag::S60 ], + 'Nokia N81 8GB' => [ 'Nokia', 'N81 8GB', 'flag' => Flag::S60 ], + 'N82(-[1-9])?$!' => [ 'Nokia', 'N82', 'flag' => Flag::S60 ], + 'N85(-[1-9])?$!' => [ 'Nokia', 'N85', 'flag' => Flag::S60 ], + 'N86(-[1-9])?$!' => [ 'Nokia', 'N86 8MP', 'flag' => Flag::S60 ], + 'N86 ?8MP$!' => [ 'Nokia', 'N86 8MP', 'flag' => Flag::S60 ], + 'N90(-[1-9])?$!' => [ 'Nokia', 'N90', 'flag' => Flag::S60 ], + 'N91(-[1-9])?$!' => [ 'Nokia', 'N91', 'flag' => Flag::S60 ], + 'N92(-[1-9])?$!' => [ 'Nokia', 'N92', 'flag' => Flag::S60 ], + 'N93(-[1-9])?$!' => [ 'Nokia', 'N93', 'flag' => Flag::S60 ], + 'N93i' => [ 'Nokia', 'N93i', 'flag' => Flag::S60 ], + 'N95(-[1-9])?$!' => [ 'Nokia', 'N95', 'flag' => Flag::S60 ], + 'N95[ -]8GB(-[1-9])?!' => [ 'Nokia', 'N95 8GB', 'flag' => Flag::S60 ], + 'N96(-[1-9])?$!' => [ 'Nokia', 'N96', 'flag' => Flag::S60 ], + 'N97(-[1-3])?$!' => [ 'Nokia', 'N97', 'flag' => Flag::S60 ], + 'N97i' => [ 'Nokia', 'N97', 'flag' => Flag::S60 ], + 'N97(-[4-5])?$!' => [ 'Nokia', 'N97 Mini', 'flag' => Flag::S60 ], + 'N97 ?mini!' => [ 'Nokia', 'N97 Mini', 'flag' => Flag::S60 ], + '500' => [ 'Nokia', '500', 'flag' => Flag::S60 ], + '600' => [ 'Nokia', '600', 'flag' => Flag::S60 ], + '603' => [ 'Nokia', '603', 'flag' => Flag::S60 ], + '700' => [ 'Nokia', '700', 'flag' => Flag::S60 ], + '701' => [ 'Nokia', '701', 'flag' => Flag::S60 ], + '702T' => [ 'Nokia', '702T', 'flag' => Flag::S60 ], + '801T' => [ 'Nokia', '801T', 'flag' => Flag::S60 ], + '808' => [ 'Nokia', '808 PureView', 'flag' => Flag::S60 ], + '808PureView' => [ 'Nokia', '808 PureView', 'flag' => Flag::S60 ], + '808 PureView' => [ 'Nokia', '808 PureView', 'flag' => Flag::S60 ], + '3230' => [ 'Nokia', '3230', 'flag' => Flag::S60 ], + '3250' => [ 'Nokia', '3250', 'flag' => Flag::S60 ], + '3650' => [ 'Nokia', '3650', 'flag' => Flag::S60 ], + '3660' => [ 'Nokia', '3660', 'flag' => Flag::S60 ], + '5228' => [ 'Nokia', '5228', 'flag' => Flag::S60 ], + '5233!' => [ 'Nokia', '5228', 'flag' => Flag::S60 ], // The 5233 is known as 5228 + 'N5233!' => [ 'Nokia', '5228', 'flag' => Flag::S60 ], // The 5233 is known as 5228 + '5230!' => [ 'Nokia', '5230', 'flag' => Flag::S60 ], + '5232' => [ 'Nokia', '5232', 'flag' => Flag::S60 ], + '5235!' => [ 'Nokia', '5235 Ovi Music Unlimited', 'flag' => Flag::S60 ], + '5236' => [ 'Nokia', '5236', 'flag' => Flag::S60 ], + '5238' => [ 'Nokia', '5238', 'flag' => Flag::S60 ], + '5250' => [ 'Nokia', '5250', 'flag' => Flag::S60 ], + '5320!' => [ 'Nokia', '5320 XpressMusic', 'flag' => Flag::S60 ], + '5500d!' => [ 'Nokia', '5500 Sport', 'flag' => Flag::S60 ], + '5530!' => [ 'Nokia', '5530 XpressMusic', 'flag' => Flag::S60 ], + '5630!' => [ 'Nokia', '5630 XpressMusic', 'flag' => Flag::S60 ], + '5700!' => [ 'Nokia', '5700 XpressMusic', 'flag' => Flag::S60 ], + '5730!' => [ 'Nokia', '5730 XpressMusic', 'flag' => Flag::S60 ], + '5800!' => [ 'Nokia', '5800 XpressMusic', 'flag' => Flag::S60 ], + '6110Navigator' => [ 'Nokia', '6110 Navigator', 'flag' => Flag::S60 ], + '6120c!' => [ 'Nokia', '6120 classic', 'flag' => Flag::S60 ], + '6121c!' => [ 'Nokia', '6121 classic', 'flag' => Flag::S60 ], + '6122c!' => [ 'Nokia', '6124 classic', 'flag' => Flag::S60 ], // The 6122 is known as 6124 + '6124c' => [ 'Nokia', '6124 classic', 'flag' => Flag::S60 ], + '6210 ?Navigator!' => [ 'Nokia', '6210 Navigator', 'flag' => Flag::S60 ], + '6220c!' => [ 'Nokia', '6220 classic', 'flag' => Flag::S60 ], + '6260' => [ 'Nokia', '6260', 'flag' => Flag::S60 ], + '6290!' => [ 'Nokia', '6290', 'flag' => Flag::S60 ], + '6600' => [ 'Nokia', '6600', 'flag' => Flag::S60 ], + '6630' => [ 'Nokia', '6630', 'flag' => Flag::S60 ], + '6650d!' => [ 'Nokia', '6650 fold', 'flag' => Flag::S60 ], + '6670' => [ 'Nokia', '6670', 'flag' => Flag::S60 ], + '6680' => [ 'Nokia', '6680', 'flag' => Flag::S60 ], + '6681' => [ 'Nokia', '6681', 'flag' => Flag::S60 ], + '6700s' => [ 'Nokia', '6700 slide', 'flag' => Flag::S60 ], + '6708' => [ 'Nokia', '6708', 'flag' => Flag::UIQ ], + '6710s' => [ 'Nokia', '6710 Navigator', 'flag' => Flag::S60 ], + '6720c!' => [ 'Nokia', '6720 classic', 'flag' => Flag::S60 ], + '6730c!' => [ 'Nokia', '6730 classic', 'flag' => Flag::S60 ], + '6760s!' => [ 'Nokia', '6760 slide', 'flag' => Flag::S60 ], + '6788' => [ 'Nokia', '6788', 'flag' => Flag::S60 ], + '6788i' => [ 'Nokia', '6788i', 'flag' => Flag::S60 ], + '6790s-1b!' => [ 'Nokia', '6790 Surge', 'flag' => Flag::S60 ], + '6790s-1c!' => [ 'Nokia', '6790 slide', 'flag' => Flag::S60 ], + '7610' => [ 'Nokia', '7610', 'flag' => Flag::S60 ], + '7650' => [ 'Nokia', '7650', 'flag' => Flag::S60 ], + '7660' => [ 'Nokia', '7660', 'flag' => Flag::S60 ], + 'Oro' => [ 'Nokia', 'Oro', 'flag' => Flag::S60 ], + 'Panasonic-X700' => [ 'Panasonic', 'X700', 'flag' => Flag::S60 ], + 'Panasonic-X800' => [ 'Panasonic', 'X800', 'flag' => Flag::S60 ], + 'I7710' => [ 'Samsung', 'GT-I7710', 'flag' => Flag::S60 ], + 'I8510' => [ 'Samsung', 'INNOV8', 'flag' => Flag::S60 ], + 'I8910' => [ 'Samsung', 'Omnia HD', 'flag' => Flag::S60 ], + 'SGH-D720' => [ 'Samsung', 'D720', 'flag' => Flag::S60 ], + 'SGH-D728' => [ 'Samsung', 'D728', 'flag' => Flag::S60 ], + 'SGH-D730' => [ 'Samsung', 'D730', 'flag' => Flag::S60 ], + 'SGH-i400!' => [ 'Samsung', 'i400', 'flag' => Flag::S60 ], + 'SGH-i408!' => [ 'Samsung', 'i408', 'flag' => Flag::S60 ], + 'SGH-i450!' => [ 'Samsung', 'i450', 'flag' => Flag::S60 ], + 'SGH-i455!' => [ 'Samsung', 'i455', 'flag' => Flag::S60 ], + 'SGH-i458!' => [ 'Samsung', 'i458', 'flag' => Flag::S60 ], + 'SGH-i520!' => [ 'Samsung', 'i520', 'flag' => Flag::S60 ], + 'SGH-i550!' => [ 'Samsung', 'i550', 'flag' => Flag::S60 ], + 'SGH-i560!' => [ 'Samsung', 'i560', 'flag' => Flag::S60 ], + 'SGH-i568!' => [ 'Samsung', 'i568', 'flag' => Flag::S60 ], + 'SGH-i570!' => [ 'Samsung', 'i570', 'flag' => Flag::S60 ], + 'SGH-G810' => [ 'Samsung', 'G810', 'flag' => Flag::S60 ], + 'U' => [ 'Sony Ericsson', 'Satio', 'flag' => Flag::S60 ], + '(?i)U1(a|i|iv)?$!' => [ 'Sony Ericsson', 'Satio', 'flag' => Flag::S60 ], + '(?i)U5(a|i|iv)?$!' => [ 'Sony Ericsson', 'Vivaz', 'flag' => Flag::S60 ], + '(?i)U8(a|i)?$!' => [ 'Sony Ericsson', 'Vivaz Pro', 'flag' => Flag::S60 ], + 'ConstellationT' => [ 'Vertu', 'Constellation T', 'flag' => Flag::S60 ], + 'ConstellationQuest' => [ 'Vertu', 'Constellation Quest', 'flag' => Flag::S60 ], +]; diff --git a/integration/whichbrowser/data/models-tizen.php b/integration/whichbrowser/data/models-tizen.php new file mode 100644 index 00000000..92eed559 --- /dev/null +++ b/integration/whichbrowser/data/models-tizen.php @@ -0,0 +1,45 @@ + [ 'Samsung', '"Baltic"' ], + 'SM-HIGGS' => [ 'Samsung', '"Higgs"' ], + 'KIRAN' => [ 'Samsung', 'Z1' ], + 'GT-I8800!' => [ 'Samsung', '"Melius"' ], + 'GT-I8805!' => [ 'Samsung', '"Redwood"' ], + 'GT-I9500!' => [ 'Samsung', 'GT-I9500 prototype' ], + 'SGH-N099' => [ 'Samsung', 'SGH-N099 prototype' ], + '(ARMV7 )?SM-Z9005!' => [ 'Samsung', 'SM-Z9005 prototype' ], + 'Mobile-RD-PQ' => [ 'Samsung', 'RD-PQ prototype' ], + 'TM1' => [ 'Samsung', 'TM1 prototype' ], + 'SM-Z130!' => [ 'Samsung', 'Z1' ], + 'TIZEN SM-Z130!' => [ 'Samsung', 'Z1' ], + 'SM-Z300!' => [ 'Samsung', 'Z3' ], + 'TIZEN SM-Z300!' => [ 'Samsung', 'Z3' ], + 'SM-Z500!' => [ 'Samsung', 'SM-Z500' ], + 'SM-Z700!' => [ 'Samsung', 'SM-Z700' ], + 'SM-Z900!' => [ 'Samsung', 'Z' ], + 'SM-Z910!' => [ 'Samsung', 'Z' ], + 'Z3 Z910F' => [ 'Samsung', 'Z' ], + 'SEC SC-001' => [ 'Samsung', 'SC-001 prototype' ], + 'SEC SC-03F' => [ 'Samsung', 'ZeQ' ], // Unreleased version for DoCoMo + 'SC-03F' => [ 'Samsung', 'ZeQ' ], // Unreleased version for DoCoMo + + 'SM-R750!' => [ 'Samsung', 'Gear S', DeviceType::WATCH ], + + 'NX300' => [ 'Samsung', 'NX300', DeviceType::CAMERA ], + + 'FamilyHub' => [ 'Samsung', 'Family Hub', DeviceType::APPLIANCE ], + + 'hawkp' => [ 'Samsung', '"Hawkp"', DeviceType::TELEVISION ], + + 'xu3' => [ 'Hardkernel', 'ODROID-XU3 developer board' ], + + 'sdk' => [ null, null, DeviceType::EMULATOR ], + 'Emulator' => [ null, null, DeviceType::EMULATOR ], + 'Mobile-Emulator' => [ null, null, DeviceType::EMULATOR ], + 'TIZEN Emulator' => [ null, null, DeviceType::EMULATOR ], +]; diff --git a/integration/whichbrowser/data/models-touchwiz.php b/integration/whichbrowser/data/models-touchwiz.php new file mode 100644 index 00000000..270912b8 --- /dev/null +++ b/integration/whichbrowser/data/models-touchwiz.php @@ -0,0 +1,46 @@ + [ 'Samsung', 'Corby Pro' ], + 'GT-B3410' => [ 'Samsung', 'Star Qwerty' ], + 'GT-B7722' => [ 'Samsung', 'Star Duos' ], + 'GT-C3262' => [ 'Samsung', 'Champ Neo Duos' ], + 'GT-C33(00|03)!' => [ 'Samsung', 'Champ' ], + 'GT-C3312R' => [ 'Samsung', 'Rex 60' ], + 'GT-C3312!' => [ 'Samsung', 'Champ Deluxe Duos' ], + 'GT-C3330' => [ 'Samsung', 'Champ 2' ], + 'GT-C6712' => [ 'Samsung', 'Star II Duos' ], + 'GT-E2652!' => [ 'Samsung', 'Champ Duos' ], + 'GT-I6230!' => [ 'Samsung', 'Star TV' ], + 'GT-I6712!' => [ 'Samsung', 'Duos TV' ], + 'GT-M3710' => [ 'Samsung', 'Corby Beat' ], + 'GT-M5650' => [ 'Samsung', 'Lindy' ], + 'GT-S3370!' => [ 'Samsung', 'Corby 3G' ], + 'GT-S36(50|53)!' => [ 'Samsung', 'Corby' ], + 'GT-S3770!' => [ 'Samsung', 'Champ 3G' ], + 'GT-S38(00|02)!' => [ 'Samsung', 'Rex 70' ], + 'GT-S3850' => [ 'Samsung', 'Corby II' ], + 'GT-S5220' => [ 'Samsung', 'Star 3' ], + 'GT-S5222R' => [ 'Samsung', 'Rex 80' ], + 'GT-S5222' => [ 'Samsung', 'Star 3 Duos' ], + 'GT-S52(30|33)!' => [ 'Samsung', 'Star' ], + 'GT-S5260P' => [ 'Samsung', 'Player City' ], + 'GT-S52(60|63)!' => [ 'Samsung', 'Star II' ], + 'GT-S5292R' => [ 'Samsung', 'Rex 90' ], + 'GT-S5292' => [ 'Samsung', 'Star Deluxe Duos' ], + 'GT-S5560!' => [ 'Samsung', 'Marvel' ], + 'GT-S5600' => [ 'Samsung', 'Preston' ], + 'GT-S5603' => [ 'Samsung', 'Star 3G' ], + 'GT-S5620!' => [ 'Samsung', 'Monte' ], + 'GT-S5680' => [ 'Samsung', 'GT-S5680' ], + 'GT-S7550' => [ 'Samsung', 'Blue Earth' ], + 'S80(00|03)!' => [ 'Samsung', 'Jet' ], + 'GT-S8000c' => [ 'Samsung', 'Jet' ], + 'GT-S8003' => [ 'Samsung', 'Jet' ], + 'SGH-A597' => [ 'Samsung', 'Eternity II' ], + 'SGH-F480' => [ 'Samsung', 'Tocco' ], + 'SGH-F480I' => [ 'Samsung', 'Tocco' ], + 'SGH-T528g' => [ 'Samsung', 'Straight Talk' ] +]; diff --git a/integration/whichbrowser/data/models-wm.php b/integration/whichbrowser/data/models-wm.php new file mode 100644 index 00000000..6b6b09d8 --- /dev/null +++ b/integration/whichbrowser/data/models-wm.php @@ -0,0 +1,322 @@ + [ 'Acer', 'Tempo DX900' ], + 'E100' => [ 'Acer', 'beTouch E100' ], + 'F900' => [ 'Acer', 'Tempo F900' ], + 'S200' => [ 'Acer', 'neoTouch S200' ], + 'P400' => [ 'Acer', 'neoTouch P400' ], + '-GalaxyII' => [ 'Asus', 'Galaxy II' ], + '-GalaxyMini' => [ 'Asus', 'Galaxy Mini' ], + 'M530w!' => [ 'Asus', 'M530w' ], + 'M930!' => [ 'Asus', 'M930' ], + '-P525!' => [ 'Asus', 'P525' ], + '-P526!' => [ 'Asus', 'P526' ], + '-P527!' => [ 'Asus', 'P527' ], + 'P550' => [ 'Asus', 'P550' ], + '-P552w!' => [ 'Asus', 'P552w' ], + '-P552!' => [ 'Asus', 'P552' ], + '-P565!' => [ 'Asus', 'P565' ], + '-P735!' => [ 'Asus', 'P735' ], + 'P750' => [ 'Asus', 'P750' ], + 'Bird T900' => [ 'Bird', 'T900' ], + 'Coolpad F800' => [ 'Coolpad', 'F800' ], + 'Datalogic Memor' => [ 'Datalogic', 'Memor' ], + 'Dopod838Pro' => [ 'Dopod', '838 Pro' ], + 'CHT 9100!' => [ 'Dopod', 'CHT 9100' ], + 'DopodD810' => [ 'Dopod', 'D810' ], + 'dopod-S900c' => [ 'Dopod', 'S900' ], + 'T5388' => [ 'Dopod', 'T5388' ], + 'dopodT5588' => [ 'Dopod', 'T5588' ], + 'dopodT8388' => [ 'Dopod', 'T8388' ], + 'dopodT8588' => [ 'Dopod', 'T8588' ], + 'garmin-asus-Nuvifone-M10' => [ 'Garmin-Asus', 'Nuvifone M10' ], + 'Nuvifone-M10' => [ 'Garmin-Asus', 'Nuvifone M10' ], + 'Nuvifone-M20' => [ 'Garmin-Asus', 'Nuvifone M20' ], + 'GIGABYTE-MS800' => [ 'Gigabyte', 'GSmart MS800' ], + 'HP iPAQ 510' => [ 'HP', 'iPAQ 510' ], + 'HPiPAQ510!' => [ 'HP', 'iPAQ 510' ], + 'HPiPAQ610' => [ 'HP', 'iPAQ 610' ], + 'HPiPAQ910!' => [ 'HP', 'iPAQ 910' ], + 'HP iPAQ h6300' => [ 'HP', 'iPAQ h6300' ], + 'HP iPAQ hw6500!' => [ 'HP', 'iPAQ hw6500' ], + 'HPiPAQhw6900!' => [ 'HP', 'iPAQ hw6900' ], + 'HPiPAQrw6800!' => [ 'HP', 'iPAQ rw6800' ], + 'HPiPAQrw6815!' => [ 'HP', 'iPAQ rw6815' ], + 'HPiPAQDataMessenger!' => [ 'HP', 'iPAQ Data Messenger' ], + 'HPiPAQVoiceMessenger!' => [ 'HP', 'iPAQ Voice Messenger' ], + 'HPiPAQGlisten' => [ 'HP', 'iPAQ Glisten' ], + 'HP KB1' => [ 'HP', 'iPAQ Glisten' ], + 'HTC8500' => [ 'HTC', '8500' ], + 'HTC P3300' => [ 'HTC', 'P3300' ], + 'HTC love' => [ 'HTC', 'P3350' ], + 'HTC P3350' => [ 'HTC', 'P3350' ], + 'HTC P3400!' => [ 'HTC', 'P3400' ], + 'HTC P3450!' => [ 'HTC', 'P3450' ], + 'P4350!' => [ 'HTC', 'P3450' ], + 'HTC HERALD' => [ 'HTC', 'P3450' ], + 'HTC P6300' => [ 'HTC', 'P6300' ], + 'HTC P6500' => [ 'HTC', 'P6500' ], + 'HTC X7500' => [ 'HTC', 'Advantage' ], + 'HTC X7510' => [ 'HTC', 'Advantage' ], + '(HTC )?HD mini!' => [ 'HTC', 'HD mini' ], + '.*T5555!' => [ 'HTC', 'HD mini' ], + '(HTC )?HD2!' => [ 'HTC', 'HD2' ], + '.*T8585!' => [ 'HTC', 'HD2' ], + 'HTC T8290' => [ 'HTC', 'MAX 4G' ], + 'HTC MAX 4G' => [ 'HTC', 'MAX 4G' ], + 'HTC MTeoR' => [ 'HTC', 'MTeoR' ], + 'P3470!' => [ 'HTC', 'Pharos' ], + 'HTC Prophet' => [ 'HTC', 'Prophet' ], + 'HTC Snap!' => [ 'HTC', 'S511 Snap' ], + '.*S521!' => [ 'HTC', 'S511 Snap' ], + 'HTC Maple S520' => [ 'HTC', 'S520 Maple' ], + 'HTC S620!' => [ 'HTC', 'S620 Excalibur' ], + 'HTC Excalibur' => [ 'HTC', 'S620 Excalibur' ], + 'HTC S630' => [ 'HTC', 'S630 Cavelier' ], + 'HTC S710' => [ 'HTC', 'S710 Vox' ], + 'HTC S730' => [ 'HTC', 'S730 Wings' ], + 'HTC S740' => [ 'HTC', 'S740 Rose' ], + 'HTC Touch' => [ 'HTC', 'Touch' ], + 'HTC Elf' => [ 'HTC', 'Touch' ], + 'HTC 6900' => [ 'HTC', 'Touch' ], + 'HTC6900' => [ 'HTC', 'Touch' ], + 'HTC6900-MR1' => [ 'HTC', 'Touch' ], + 'P3450' => [ 'HTC', 'Touch' ], + 'HTC TouchDual' => [ 'HTC', 'Touch' ], + 'HTC Touch 3G!' => [ 'HTC', 'Touch 3G' ], + 'HTC Jade' => [ 'HTC', 'Touch 3G' ], + 'HTC Mega!' => [ 'HTC', 'Touch 2' ], + 'HTC Touch2!' => [ 'HTC', 'Touch 2' ], + '.*T33(20|33|35)!' => [ 'HTC', 'Touch 2' ], + 'P3650' => [ 'HTC', 'Touch Cruise' ], + 'P3650t' => [ 'HTC', 'Touch Cruise' ], + 'HTC Touch Cruise!' => [ 'HTC', 'Touch Cruise' ], + 'HTC P3650' => [ 'HTC', 'Touch Cruise' ], + 'HTC P3651' => [ 'HTC', 'Touch Cruise' ], + 'HTC Polaris' => [ 'HTC', 'Touch Cruise' ], + 'HTC Touch Diamond2!' => [ 'HTC', 'Touch Diamond 2' ], + '.*T5353!' => [ 'HTC', 'Touch Diamond 2' ], + 'HTC Touch Diamond!' => [ 'HTC', 'Touch Diamond' ], + '.*P3700!' => [ 'HTC', 'Touch Diamond' ], + 'HTC Diamond' => [ 'HTC', 'Touch Diamond' ], + 'HTC P3701' => [ 'HTC', 'Touch Diamond' ], + 'HTC P5500' => [ 'HTC', 'Touch Dual' ], + 'HTC P5310!' => [ 'HTC', 'Touch Dual' ], + 'HTC Touch HD2!' => [ 'HTC', 'Touch HD2' ], + '.*T8585!' => [ 'HTC', 'Touch HD2' ], + 'HTC Touch HD!' => [ 'HTC', 'Touch HD' ], + '.*T82(82|83)!' => [ 'HTC', 'Touch HD' ], + 'HTC Touch Pro2!' => [ 'HTC', 'Touch Pro 2' ], + '.*T73(73|80)!' => [ 'HTC', 'Touch Pro 2' ], + 'HTC Touch Pro!' => [ 'HTC', 'Touch Pro' ], + '.*T7272!' => [ 'HTC', 'Touch Pro' ], + 'HTC P4600' => [ 'HTC', 'Touch Pro' ], + 'HTC Raphael' => [ 'HTC', 'Touch Pro' ], + 'HTC Touch Viva!' => [ 'HTC', 'Touch Viva' ], + '.*T2223!' => [ 'HTC', 'Touch Viva' ], + 'P3600!' => [ 'HTC', 'Trinity' ], + 'HTC Trinity' => [ 'HTC', 'Trinity' ], + 'HTC P3600' => [ 'HTC', 'Trinity' ], + 'HTC P3600i' => [ 'HTC', 'Trinity' ], + 'HTC v3600' => [ 'HTC', 'Trinity' ], + 'HTC TyTN II' => [ 'HTC', 'TyTN II' ], + 'P4550' => [ 'HTC', 'TyTN II' ], + 'HTC Kaiser' => [ 'HTC', 'TyTN II' ], + 'HTC TyTN!' => [ 'HTC', 'TyTN' ], + 'HTC Mercury' => [ 'HTC', 'TyTN' ], + 'T9188' => [ 'HTC', 'T9188' ], + 'T9199' => [ 'HTC', 'T9199' ], + 'HTC wizard' => [ 'HTC', 'Wizard' ], + 'i-mate JAMA' => [ 'i-mate', 'JAMA' ], + 'i-mate JAMAQ' => [ 'i-mate', 'JAMAQ' ], + 'i-mate JAMin' => [ 'i-mate', 'JAMin' ], + 'i-mate JASJAM' => [ 'i-mate', 'JASJAM' ], + 'i-mate JAQ' => [ 'i-mate', 'JAQ' ], + 'i-mate JAQ3' => [ 'i-mate', 'JAQ3' ], + 'i-mate K-JAM' => [ 'i-mate', 'K-JAM' ], + 'i-mate PDAL' => [ 'i-mate', 'PDAL' ], + 'i-mate 6150' => [ 'i-mate', 'Ultimate 6150' ], + 'i-mate 8150!' => [ 'i-mate', 'Ultimate 8150' ], + 'i-mate 8502' => [ 'i-mate', 'Ultimate 8502' ], + 'i-mate 9502!' => [ 'i-mate', 'Ultimate 9502' ], + 'W366' => [ 'K-Touch', 'W366' ], + 'K-Touch W366!' => [ 'K-Touch', 'W366' ], + 'Kyocera-E4000' => [ 'Kyocera', 'Solo E4000' ], + 'Lenovo ET860' => [ 'Lenovo', 'ET860' ], + 'LENOVO-ET980' => [ 'Lenovo', 'ET980' ], + 'LG-GM730!' => [ 'LG', 'Eigen GM730' ], + 'GM730' => [ 'LG', 'Eigen GM730' ], + 'LG-GM750!' => [ 'LG', 'Layla GM750' ], + 'GM750Q' => [ 'LG', 'Layla GM750' ], + 'LG-GW550!' => [ 'LG', 'GW550' ], + 'GW550' => [ 'LG', 'GW550' ], + 'GW825' => [ 'LG', 'IQ GW825' ], + 'LG-KS20' => [ 'LG', 'KS20' ], + 'LG-MS25' => [ 'LG', 'MS25' ], + 'LGE VS750' => [ 'LG', 'Fathom VS750' ], + 'A3100' => [ 'Motorola', 'A3100' ], + 'A3300c' => [ 'Motorola', 'A3300c' ], + 'A4500!' => [ 'Motorola', 'A4500' ], + 'ES405B!' => [ 'Motorola', 'ES405 Enterprise Smartphone' ], + 'MC45!' => [ 'Motorola', 'MC45 Mobile Computer' ], + 'MC659B!' => [ 'Motorola', 'MC65 Wireless Rugged Mobile Computer' ], + 'Q-UMTS' => [ 'Motorola', 'Q' ], + 'Q8' => [ 'Motorola', 'MOTO Q8' ], + 'Q9' => [ 'Motorola', 'MOTO Q9' ], + 'Sprint:MotoQ9c' => [ 'Motorola', 'MOTO Q9c' ], + 'Q9c!' => [ 'Motorola', 'MOTO Q9c' ], + 'Q9m!' => [ 'Motorola', 'MOTO Q9m' ], + 'VIP12!' => [ 'Motorola', 'VIP 1200', DeviceType::TELEVISION ], + 'H-21' => [ 'Opticom', 'H-21' ], + 'Palm500!' => [ 'Palm', 'Treo 500v' ], + 'Palm750' => [ 'Palm', 'Treo 750' ], + 'Treo800w' => [ 'Palm', 'Treo 800w' ], + 'Palm850!' => [ 'Palm', 'Treo Pro' ], + 'Palm Treo850e' => [ 'Palm', 'Treo Pro' ], + 'Sprint Treo850e' => [ 'Palm', 'Treo Pro' ], + 'PANTECH-C810' => [ 'Pantech', 'Duo C810' ], + 'GT-B5722' => [ 'Samsung', 'B5722' ], + 'GT-B6520' => [ 'Samsung', 'B6520 OmniaPRO 5' ], + 'GT-B7300' => [ 'Samsung', 'B7300 OmniaLITE' ], + 'GT-B7320!' => [ 'Samsung', 'B7320 OmniaPRO' ], + 'GT-B7330!' => [ 'Samsung', 'B7330 OmniaPRO' ], + 'GT-B7350' => [ 'Samsung', 'B7350 OmniaPRO 4' ], + 'GT-B7610' => [ 'Samsung', 'B7610 OmniaPRO' ], + 'GT-C6625' => [ 'Samsung', 'C6625 Valencia' ], + 'C6625' => [ 'Samsung', 'C6625 Valencia' ], + 'GT-I8000!' => [ 'Samsung', 'I8000 Omnia II' ], + 'SCH-M490' => [ 'Samsung', 'M490 T*OMNIA' ], + 'SCH-M710' => [ 'Samsung', 'M710 T*OMNIA II' ], + 'SCH-M715' => [ 'Samsung', 'M715 T*OMNIA II' ], + 'SPH-M7200' => [ 'Samsung', 'M7200 OMNIA POP' ], + 'SPH-M7350' => [ 'Samsung', 'M7350 OZ OMNIA' ], + 'SPH-M8400' => [ 'Samsung', 'M8400 Show OMNIA' ], + 'SCH-i220!' => [ 'Samsung', 'i220 Code' ], + 'SCH-i225!' => [ 'Samsung', 'i225 Exec' ], + 'SPHI325!' => [ 'Samsung', 'i325 Ace' ], + 'SGH-i600!' => [ 'Samsung', 'i600' ], + 'SGH-i601!' => [ 'Samsung', 'i601' ], + 'SGH-I607' => [ 'Samsung', 'i607 BlackJack' ], + 'SGH-i608!' => [ 'Samsung', 'i608' ], + 'SGH-I617' => [ 'Samsung', 'i617 BlackJack II' ], + 'SGH-I637' => [ 'Samsung', 'i637 Jack' ], + 'SGH-i640!' => [ 'Samsung', 'i640' ], + 'SGH-i718' => [ 'Samsung', 'i718' ], + 'SGH-i718plus' => [ 'Samsung', 'i718 Plus' ], + 'SGH-i728' => [ 'Samsung', 'i728' ], + 'SCH-i760!' => [ 'Samsung', 'i760' ], + 'SCH-i770!' => [ 'Samsung', 'i770 Saga' ], + 'SGH-i780!' => [ 'Samsung', 'i780 Mirage' ], + 'SGH-i900!' => [ 'Samsung', 'i900 Omnia' ], + 'SGH-i908E' => [ 'Samsung', 'i908' ], + 'SCHI910!' => [ 'Samsung', 'i910 Omnia' ], + 'SCH-i920' => [ 'Samsung', 'i920 Omnia II' ], + 'SIE-SX66' => [ 'Siemens', 'SX66' ], + 'M1i' => [ 'Sony Ericsson', 'Aspen' ], + 'X1' => [ 'Sony Ericsson', 'Xperia X1' ], + 'X1[ia]!' => [ 'Sony Ericsson', 'Xperia X1' ], + 'X2' => [ 'Sony Ericsson', 'Xperia X2' ], + 'X2[ia]!' => [ 'Sony Ericsson', 'Xperia X2' ], + 'Spice D1100' => [ 'Spice', 'D1100' ], + '(Toshiba[- ])?TG01!' => [ 'Toshiba', 'TG01' ], + 'Velocity' => [ 'Velocity', '111' ], + 'ZTE E N72' => [ 'ZTE', 'E N72' ], + 'ZTE E X70' => [ 'ZTE', 'E X70' ], + + + + 'sigmarion3' => [ 'NTT', 'sigmarionIII' ], + + 'o2 Xda comet' => [ 'O2', 'XDA Comet' ], + 'Xda diamond' => [ 'O2', 'XDA Diamond' ], + 'Xda neo' => [ 'O2', 'XDA Neo' ], + 'Xda nova' => [ 'O2', 'XDA Nova' ], + 'Xda orbit' => [ 'O2', 'XDA Orbit' ], + 'Xda terra' => [ 'O2', 'XDA Terra' ], + 'Xda trion' => [ 'O2', 'XDA Trion' ], + 'O2 Xda 2mini' => [ 'O2', 'XDA II mini' ], + 'O2 Xda 2s' => [ 'O2', 'XDA IIs' ], + + 'SPV E600' => [ 'Orange', 'SPV E600' ], + 'SPV E650' => [ 'Orange', 'SPV E650' ], + 'SPV M700' => [ 'Orange', 'SPV M700' ], + 'SPV M2000' => [ 'Orange', 'SPV M2000' ], + 'SPV M3100' => [ 'Orange', 'SPV M3100' ], + + 'Alltel HTC PPC6800' => [ 'Alltel', 'PPC6800' ], + 'Alltel HTC Touch' => [ 'HTC', 'Touch', 'carrier' => 'Alltel' ], + 'Alltel HTC Touch Diamond' => [ 'HTC', 'Touch Diamond', 'carrier' => 'Alltel' ], + + 'Sprint S511' => [ 'Sprint', 'Snap' ], + 'Sprint:SPH-ip830w' => [ 'Sprint', 'SPH-ip830w' ], + 'Sprint:PPC6600-1' => [ 'Sprint', 'PPC6600' ], + 'Sprint:PPC-6700' => [ 'Sprint', 'PPC6700' ], + 'Sprint:PPC6800' => [ 'Sprint', 'PPC6800' ], + 'Sprint PPC6850SP' => [ 'Sprint', 'PPC6850' ], + 'HTCPPC6850!' => [ 'Sprint', 'PPC6850' ], + 'PPC6850!' => [ 'Sprint', 'PPC6850' ], + 'Sprint MP6850SP' => [ 'Sprint', 'MP6850' ], + 'Sprint MP6900SP' => [ 'Sprint', 'MP6900' ], + 'Sprint MP6950SP' => [ 'Sprint', 'MP6950' ], + + 'Ameo!' => [ 'T-Mobile', 'Ameo' ], + 'T-Mobile Atlas' => [ 'T-Mobile', 'Atlas' ], + 'T-Mobile Dash' => [ 'T-Mobile', 'Dash' ], + 'T-Mobile LEO' => [ 'T-Mobile', 'Leo' ], + 'T-Mobile Cleopatra' => [ 'T-Mobile', 'Shadow II' ], + 'MDA III!' => [ 'T-Mobile', 'MDA III' ], + 'MDA compact II!' => [ 'T-Mobile', 'MDA Compact II' ], + 'MDA compact!' => [ 'T-Mobile', 'MDA Compact' ], + 'MDA Pro!' => [ 'T-Mobile', 'MDA Pro' ], + 'MDA Touch!' => [ 'T-Mobile', 'MDA Touch' ], + 'MDA Vario!' => [ 'T-Mobile', 'MDA Vario' ], + + 'XV6175!' => [ 'Verizon', 'Ozone XV6175' ], + 'XV6875!' => [ 'Verizon', 'Touch Pro2 XV6875' ], + 'XV6900' => [ 'Verizon', 'Touch XV6900' ], + 'XV6975' => [ 'Verizon', 'Imagio XV6975' ], + + 'SFR v3650!' => [ 'Vodafone', 'Polaris' ], + 'v1415' => [ 'Vodafone', 'Vox' ], + 'v1240' => [ 'Vodafone', 'VDA II' ], + '1210' => [ 'Vodafone', 'VDA IV' ], + 'v1210' => [ 'Vodafone', 'VDA IV' ], + 'HTC VDA V' => [ 'Vodafone', 'VDA V' ], + 'v1640' => [ 'Vodafone', 'VPA IV' ], + 'VPA Touch' => [ 'Vodafone', 'VPA Touch' ], + 'HTC v1510' => [ 'Vodafone', 'VPA Compact GPS' ], + 'HTC VPACompactIV' => [ 'Vodafone', 'VPA Compact IV' ], + + + + 'WS003SH' => [ 'Sharp', 'W-ZERO3 WS003SH', 'carrier' => 'Willcom' ], + 'WS004SH' => [ 'Sharp', 'W-ZERO3 WS004SH', 'carrier' => 'Willcom' ], + 'WS007SH' => [ 'Sharp', 'W-ZERO3 [es] WS007SH', 'carrier' => 'Willcom' ], + 'WS011SH' => [ 'Sharp', 'Advanced / W-ZERO3 [es] WS011SH', 'carrier' => 'Willcom' ], + 'WS020SH' => [ 'Sharp', 'WILLCOM 03 WS020SH', 'carrier' => 'Willcom' ], + 'WS027SH' => [ 'Sharp', 'HYBRID W-ZERO3 WS027SH', 'carrier' => 'Willcom' ], + 'S01SH' => [ 'Sharp', 'EM·ONE S01SH', 'carrier' => 'EMOBILE' ], + 'S01SH2' => [ 'Sharp', 'EM·ONE alpha S01SH2', 'carrier' => 'EMOBILE' ], + 'T-01A!' => [ 'Toshiba', 'T-01A', 'carrier' => 'DoCoMo' ], + 'T-01B!' => [ 'Toshiba', 'dynapocket T-01B', 'carrier' => 'DoCoMo' ], + 'X01T' => [ 'Toshiba', 'G900 X01T', 'carrier' => 'Softbank' ], + 'X02T!' => [ 'Toshiba', 'dynapocket X02T', 'carrier' => 'Softbank' ], + 'KDDI-HT01' => [ 'HTC', 'TOUCH PRO HT-01A', 'carrier' => 'au' ], + 'HT01A' => [ 'HTC', 'TOUCH PRO HT-01A', 'carrier' => 'au' ], + 'S11HT' => [ 'HTC', 'EMONSTER S11HT', 'carrier' => 'EMOBILE' ], + 'S12HT' => [ 'HTC', 'EMONSTER lite S12HT', 'carrier' => 'EMOBILE' ], + 'S21HT' => [ 'HTC', 'Touch Diamond S21HT', 'carrier' => 'EMOBILE' ], + 'S22HT' => [ 'HTC', 'Dual Diamond S22HT', 'carrier' => 'EMOBILE' ], + 'X01HT' => [ 'HTC', 'TyTN X01HT', 'carrier' => 'Softbank' ], + 'X02HT' => [ 'HTC', 'S630 X02HT', 'carrier' => 'Softbank' ], + 'X03HT' => [ 'HTC', 'S730 X03HT', 'carrier' => 'Softbank' ], + 'X04HT' => [ 'HTC', 'TOUCH DIAMOND X04HT', 'carrier' => 'Softbank' ], + 'X05HT' => [ 'HTC', 'TOUCH PRO X05HT', 'carrier' => 'Softbank' ], + 'SC-01B' => [ 'Samsung', 'SC-01B', 'carrier' => 'DoCoMo' ], + 'X01SC' => [ 'Samsung', 'OMNIA Pro X01SC', 'carrier' => 'Softbank' ], +]; diff --git a/integration/whichbrowser/data/models-wp.php b/integration/whichbrowser/data/models-wp.php new file mode 100644 index 00000000..fe6afed3 --- /dev/null +++ b/integration/whichbrowser/data/models-wp.php @@ -0,0 +1,305 @@ + [ 'Acer', 'Allegro' ], + 'M310' => [ 'Acer', 'Allegro' ], + 'S58' => [ 'Acer', 'Jade Primo' ], + 'M220' => [ 'Acer', 'Liquid' ], + 'FierceXL' => [ 'Alcatel', 'One Touch Fierce XL' ], + 'ONE TOUCH 5040X' => [ 'Alcatel', 'One Touch View' ], + 'Impera I' => [ 'Allview', 'Impera i' ], + 'Impera M' => [ 'Allview', 'Impera M' ], + 'Impera S' => [ 'Allview', 'Impera S' ], + '40 Cesium' => [ 'Archos', '40 Cesium' ], + 'AC50CE' => [ 'Archos', '50 Cesium' ], + '- BUSH Windows Phone' => [ 'Argos', 'BUSH Windows Phone' ], + 'Galaxy6' => [ 'Asus', 'Galaxy 6' ], + 'E600' => [ 'Asus', 'E600' ], + 'WIN HD LTE' => [ 'BLU', 'Win HD' ], + 'WIN HD W510l' => [ 'BLU', 'Win HD' ], + 'WIN HD W510u' => [ 'BLU', 'Win HD' ], + 'WIN JR LTE' => [ 'BLU', 'Win JR' ], + 'WIN JR W410a' => [ 'BLU', 'Win JR' ], + 'WIN JR W410i' => [ 'BLU', 'Win JR' ], + 'WIN JR W410u' => [ 'BLU', 'Win JR' ], + 'BP30.BM180' => [ 'Bluebird', 'Pidion' ], + 'WIN 400' => [ 'Celkon', 'Win 400' ], + 'MOBILE Alpha Luxe' => [ 'Cherry Mobile', 'Alpha Luxe' ], + 'MOBILE Alpha Style' => [ 'Cherry Mobile', 'Alpha Style' ], + 'PKT-407' => [ 'Condor', 'Griffe W1' ], + 'Venue Pro' => [ 'Dell', 'Venue Pro' ], + 'Ixion W 5' => [ 'DEXP', 'Ixion W 5' ], + 'IQ400W' => [ 'Fly', 'IQ400W Era Windows' ], + 'FTJ152E' => [ 'Freetel', 'KATANA 01' ], + 'FTJ152F' => [ 'Freetel', 'KATANA 02' ], + 'IS12T' => [ 'Fujitsu Toshiba', 'IS12T' ], + 'W10' => [ 'GoMobile', 'W10' ], + 'WINJOY' => [ 'Highscreen', 'WinJoy' ], + 'WinWin' => [ 'Highscreen', 'WinWin' ], + 'E260T+' => [ 'Hisense', 'NANA' ], + 'DolphinCT50' => [ 'Honeywell', 'Dolphin CT50' ], + '75eL0N' => [ 'Honeywell', 'Dolphin 75e' ], + 'HELSINKI' => [ 'Honeywell', '"Helsinki"' ], + 'HD2' => [ 'HTC', 'HD2' ], + ';HD2' => [ 'HTC', 'HD2' ], + 'LEO' => [ 'HTC', 'HD2' ], + 'HD2(Leo' => [ 'HTC', 'HD2' ], + 'HD2 LEO' => [ 'HTC', 'HD2' ], + 'HTC HD2' => [ 'HTC', 'HD2' ], + '(HD7|.*T92(92|95|96))!' => [ 'HTC', 'HD7' ], + 'Schubert!' => [ 'HTC', 'HD7' ], + 'Mondrian' => [ 'HTC', 'HD7' ], + 'Gold' => [ 'HTC', 'HD7' ], + 'Touch-IT HD7' => [ 'HTC', 'HD7' ], + '((7 )?Mozart|.*T86(97|98))!' => [ 'HTC', '7 Mozart' ], + 'PD67100' => [ 'HTC', '7 Mozart' ], + ';PD67100' => [ 'HTC', '7 Mozart' ], + 'HTC Mozart' => [ 'HTC', '7 Mozart' ], + '7 HTC MOZART' => [ 'HTC', '7 Mozart' ], + 'PC93100' => [ 'HTC', '7 Pro' ], + 'MWP6885' => [ 'HTC', '7 Pro' ], + '(7 Pro|.*T75(75|76))!' => [ 'HTC', '7 Pro' ], + 'USCCHTC-PC93100' => [ 'HTC', '7 Pro' ], + 'Surround' => [ 'HTC', '7 Surround' ], + '7 Surround' => [ 'HTC', '7 Surround' ], + '.*T8788!' => [ 'HTC', '7 Surround' ], + '((7 )?Trophy|.*T8686)!' => [ 'HTC', '7 Trophy' ], + 'mwp6985' => [ 'HTC', '7 Trophy' ], + 'htc mpw6958' => [ 'HTC', '7 Trophy' ], + 'htcmpw6958' => [ 'HTC', '7 Trophy' ], + 'PC40100' => [ 'HTC', '7 Trophy' ], + 'Touch-IT Trophy' => [ 'HTC', '7 Trophy' ], + 'Spark' => [ 'HTC', '7 Trophy' ], + 'HTC 7 Trophy' => [ 'HTC', '7 Trophy' ], + 'HTC Trophy' => [ 'HTC', '7 Trophy' ], + '(Radar|.*C110e)!' => [ 'HTC', 'Radar' ], + 'Omega' => [ 'HTC', 'Radar' ], + 'Mazaa' => [ 'HTC', 'Mazaa' ], // Never released + 'Titan' => [ 'HTC', 'Titan' ], + '.*X310e!' => [ 'HTC', 'Titan' ], + 'PI39100' => [ 'HTC', 'Titan' ], + 'Eternity' => [ 'HTC', 'Titan' ], + 'Ultimate' => [ 'HTC', 'Titan' ], + 'PI86100' => [ 'HTC', 'Titan II' ], + '8X' => [ 'HTC', '8X' ], + 'HTC6690LVW' => [ 'HTC', '8X' ], + 'HTC6990LVW' => [ 'HTC', '8X' ], + 'HTC6990LVW 4G' => [ 'HTC', '8X' ], + '6990LVW' => [ 'HTC', '8X' ], + 'RIO U' => [ 'HTC', '8X' ], + 'ACD U' => [ 'HTC', '8X' ], + 'Accord' => [ 'HTC', '8X' ], + 'C620(d|e|t)!' => [ 'HTC', '8X' ], + 'C625(a|b)!' => [ 'HTC', '8X' ], + '8X by HTC' => [ 'HTC', '8X' ], + 'Windows Phone 8X by HTC!' => [ 'HTC', '8X' ], + 'WindowsPhone8Xby' => [ 'HTC', '8X' ], + 'PM23300' => [ 'HTC', '8X' ], + 'htc 8x' => [ 'HTC', '8X' ], + 'A620(b|d|e|m|t)!' => [ 'HTC', '8S' ], + '8S' => [ 'HTC', '8S' ], + '8S by HTC' => [ 'HTC', '8S' ], + 'Windows Phone 8S by HTC!' => [ 'HTC', '8S' ], + 'WindowsPhone8Sby' => [ 'HTC', '8S' ], + 'HTCPO881' => [ 'HTC', '8XT' ], + 'HTC6995LVW' => [ 'HTC', 'One (M8) for Windows' ], + '0P6B140' => [ 'HTC', 'One (M8) for Windows' ], + '0P6B180' => [ 'HTC', 'One (M8) for Windows' ], + 'HUAWEI Ascend W1!' => [ 'Huawei', 'Ascend W1' ], + 'HUAWEI ?W1-(C00|U00|U34)!' => [ 'Huawei', 'Ascend W1' ], + 'W1-(C00|U00|U34)!' => [ 'Huawei', 'Ascend W1' ], + 'H883G' => [ 'Huawei', 'Ascend W1' ], + 'HUAWEI ?W2-(T00|T01|U00|U051)!' => [ 'Huawei', 'Ascend W2' ], + 'W2-(T00|T01|U00)!' => [ 'Huawei', 'Ascend W2' ], + '4Afrika' => [ 'Huawei', '4Afrika' ], + 'Andi4L' => [ 'iBall', 'Andi 4L Pulse' ], + 'Titanium Wind W4' => [ 'Karbonn', 'Titanium Wind W4' ], + 'Thunder 450W' => [ 'KAZAM', 'Thunder 450W' ], + 'SOUL2' => [ 'Kruger&Matz', 'Soul 2' ], + 'iris Win 1' => [ 'Lava', 'Iris Win 1' ], + 'Win1' => [ 'Lava', 'Iris Win 1' ], + '- Lazer SMART WIND' => [ 'Lazer', 'Smart Wind' ], // By Archos + 'GW910' => [ 'LG', 'Optimus 7' ], + 'LG-E740!' => [ 'LG', 'Miracle' ], + 'LG-E-?900!' => [ 'LG', 'Optimus 7' ], + 'LG-E906' => [ 'LG', 'Jil Sander' ], + 'LG-C900!' => [ 'LG', 'Optimus 7Q' ], + 'VW820' => [ 'LG', 'Lancet' ], + 'Quantum' => [ 'LG', 'Quantum' ], + 'Harley Davidson' => [ 'NGM', 'Harley Davidson' ], + 'Harley-Davidson' => [ 'NGM', 'Harley Davidson' ], + 'NEO' => [ 'NuAns', 'Neo' ], + 'MegaFon SP-W1' => [ 'Мегафон', 'SP-W1' ], + 'MWP-47!' => [ 'Miia', 'Windows Phone 4.7" iimotion' ], + 'W121' => [ 'Micromax', 'Canvas Win W121' ], + 'MICROMAX-W121' => [ 'Micromax', 'Canvas Win W121' ], + 'M5w' => [ 'Mint', 'M5 Windows' ], + 'TC70' => [ 'Motorola', 'TC70' ], // Motorola Solutions + 'MouseComputer MADOSMA Q501' => [ 'MouseComputer', 'MADOSMA Q501' ], + + '(Lumia ?|Nokia ?)?[0-9]{3,4}!!' => [ + 'Lumia 430!' => [ 'Microsoft', 'Lumia 430' ], + 'Lumia 435!' => [ 'Microsoft', 'Lumia 435' ], + '(Lumia ?|Nokia ?)?505!' => [ 'Nokia', 'Lumia 505' ], + '(Lumia ?|Nokia ?)?510!' => [ 'Nokia', 'Lumia 510' ], + '(Lumia ?|Nokia ?)?520!' => [ 'Nokia', 'Lumia 520' ], + '(Lumia ?|Nokia ?)?521!' => [ 'Nokia', 'Lumia 521' ], + '(Lumia ?|Nokia ?)?525!' => [ 'Nokia', 'Lumia 525' ], + '(Lumia ?|Nokia ?)?526!' => [ 'Nokia', 'Lumia 526' ], + '(Lumia ?|Nokia ?)?530!' => [ 'Nokia', 'Lumia 530' ], + 'Lumia 532!' => [ 'Microsoft', 'Lumia 532' ], + 'Lumia 535!' => [ 'Microsoft', 'Lumia 535' ], + 'Lumia 540!' => [ 'Microsoft', 'Lumia 540' ], + 'Lumia 550!' => [ 'Microsoft', 'Lumia 550' ], + '(Lumia ?|Nokia ?)?610!' => [ 'Nokia', 'Lumia 610' ], + '(Lumia ?|Nokia ?)?620!' => [ 'Nokia', 'Lumia 620' ], + '(Lumia ?|Nokia ?)?625!' => [ 'Nokia', 'Lumia 625' ], + '(Lumia ?|Nokia ?)?630!' => [ 'Nokia', 'Lumia 630' ], + '(Lumia ?|Nokia ?)?635!' => [ 'Nokia', 'Lumia 635' ], + '(Lumia ?|Nokia ?)?636!' => [ 'Nokia', 'Lumia 636' ], + 'Lumia 638' => [ 'Nokia', 'Lumia 638' ], + '(Lumia ?|Nokia ?)?640 XL!' => [ 'Microsoft', 'Lumia 640 XL' ], + '(Lumia ?|Nokia ?)?640!' => [ 'Microsoft', 'Lumia 640' ], + 'Lumia 650!' => [ 'Microsoft', 'Lumia 650' ], + '(Lumia ?|Nokia ?)?710!' => [ 'Nokia', 'Lumia 710' ], + '(Lumia ?|Nokia ?)?719!' => [ 'Nokia', 'Lumia 719' ], + '(Lumia ?|Nokia ?)?720!' => [ 'Nokia', 'Lumia 720' ], + 'Lumia 730!' => [ 'Nokia', 'Lumia 730' ], + 'Lumia 735!' => [ 'Nokia', 'Lumia 735' ], + '(Lumia ?|Nokia ?)?800!' => [ 'Nokia', 'Lumia 800' ], + '(Lumia ?|Nokia ?)?810!' => [ 'Nokia', 'Lumia 810' ], + '(Lumia ?|Nokia ?)?820!' => [ 'Nokia', 'Lumia 820' ], + '(Lumia ?|Nokia ?)?822!' => [ 'Nokia', 'Lumia 822' ], + '(Lumia ?|Nokia ?)?830!' => [ 'Nokia', 'Lumia 830' ], + 'Lumia 850!' => [ 'Microsoft', 'Lumia 850' ], + '(Lumia ?|Nokia ?)?900!' => [ 'Nokia', 'Lumia 900' ], + '(Lumia ?|Nokia ?)?920!' => [ 'Nokia', 'Lumia 920' ], + '(Lumia ?|Nokia ?)?925!' => [ 'Nokia', 'Lumia 925' ], + '(Lumia ?|Nokia ?)?928!' => [ 'Nokia', 'Lumia 928' ], + '(Lumia ?|Nokia ?)?929!' => [ 'Nokia', 'Lumia 929 Icon' ], + '(Lumia ?|Nokia ?)?930!' => [ 'Nokia', 'Lumia 930' ], + 'Lumia 950 XL!' => [ 'Microsoft', 'Lumia 950 XL' ], + 'Lumia 950!' => [ 'Microsoft', 'Lumia 950' ], + '(Lumia ?|Nokia ?)?909!' => [ 'Nokia', 'Lumia 1020' ], // 909 was the original name of the 1020 + '(Lumia ?|Nokia ?)?1020!' => [ 'Nokia', 'Lumia 1020' ], + '(Lumia ?|Nokia ?)?1320!' => [ 'Nokia', 'Lumia 1320' ], + '(Lumia ?|Nokia ?)?1520!' => [ 'Nokia', 'Lumia 1520' ], + 'Lumia 1530' => [ 'Microsoft', 'Lumia 1530' ], + ], + + 'RM-[0-9]{3,4}!!' => [ + 'RM-1099!' => [ 'Microsoft', 'Lumia 430' ], + 'RM-10(68|69|71)!' => [ 'Microsoft', 'Lumia 435' ], + 'RM-1114!' => [ 'Microsoft', 'Lumia 435' ], + 'RM-9(13|14|15)!' => [ 'Nokia', 'Lumia 520' ], + 'RM-917!' => [ 'Nokia', 'Lumia 521' ], + 'RM-998!' => [ 'Nokia', 'Lumia 525' ], + 'RM-997!' => [ 'Nokia', 'Lumia 526' ], + 'RM-10(17|19|20)!' => [ 'Nokia', 'Lumia 530' ], + 'RM-10(31|32)!' => [ 'Microsoft', 'Lumia 532' ], + 'RM-1115!' => [ 'Microsoft', 'Lumia 532' ], + 'RM-10(90|92)!' => [ 'Microsoft', 'Lumia 535' ], + 'RM-1141!' => [ 'Microsoft', 'Lumia 540' ], + 'RM-846!' => [ 'Nokia', 'Lumia 620' ], + 'RM-9(41|43)!' => [ 'Nokia', 'Lumia 625' ], + 'RM-9(76|78|79)!' => [ 'Nokia', 'Lumia 630' ], + 'RM-9(74|75)!' => [ 'Nokia', 'Lumia 635' ], + 'RM-1027!' => [ 'Nokia', 'Lumia 636' ], + 'RM-1010!' => [ 'Nokia', 'Lumia 638' ], + 'RM-10(72|74|75|77)!' => [ 'Microsoft', 'Lumia 640' ], + 'RM-11(09|13)!' => [ 'Microsoft', 'Lumia 640' ], + 'RM-10(64|65|67|73|96)!' => [ 'Microsoft', 'Lumia 640 XL' ], + 'RM-8(85|87)!' => [ 'Nokia', 'Lumia 720' ], + 'RM-1040!' => [ 'Nokia', 'Lumia 730' ], + 'RM-1038!' => [ 'Nokia', 'Lumia 735' ], + 'RM-878!' => [ 'Nokia', 'Lumia 810' ], + 'RM-8(24|25|26)!' => [ 'Nokia', 'Lumia 820' ], + 'RM-845!' => [ 'Nokia', 'Lumia 822' ], + 'RM-9(84|85)!' => [ 'Nokia', 'Lumia 830' ], + 'RM-8(20|21|22)!' => [ 'Nokia', 'Lumia 920' ], + 'RM-867!' => [ 'Nokia', 'Lumia 920' ], + 'RM-8(92|93)!' => [ 'Nokia', 'Lumia 925' ], + 'RM-910!' => [ 'Nokia', 'Lumia 925' ], + 'RM-955!' => [ 'Nokia', 'Lumia 925T' ], + 'RM-860!' => [ 'Nokia', 'Lumia 928' ], + 'RM-927!' => [ 'Nokia', 'Lumia 929 Icon' ], + 'RM-10(45|87)!' => [ 'Nokia', 'Lumia 930' ], + 'RM-11(04|18)!' => [ 'Microsoft', 'Lumia 950' ], + 'RM-1116!' => [ 'Microsoft', 'Lumia 950 XL' ], + 'RM-8(75|76|77)!' => [ 'Nokia', 'Lumia 1020' ], + 'RM-9(94|96)!' => [ 'Nokia', 'Lumia 1320' ], + 'RM-9(37|38|39|40)!' => [ 'Nokia', 'Lumia 1520' ], + ], + + 'id[0-9]{3,3}!!' => [ + 'id102!' => [ 'Nokia', 'Lumia 822' ], + 'id308!' => [ 'Nokia', 'Lumia 1520' ], + 'id313!' => [ 'Nokia', 'Lumia 635' ], + 'id316!' => [ 'Nokia', 'Lumia 530' ], + ], + + 'SeaRay' => [ 'Nokia', 'Lumia 800' ], + 'Surface Phone' => [ 'Microsoft', 'Surface Phone' ], + 'QSMART DREAM W473' => [ 'Q-Mobile', 'Q-Smart Dream W473' ], + 'FZ-E1' => [ 'Panasonic', 'Toughpad FZ-E1' ], + 'PSP8400DUO' => [ 'Prestigio', 'MultiPhone 8400 Duo' ], + 'PSP8500DUO' => [ 'Prestigio', 'MultiPhone 8500 Duo' ], + 'PRESTIGIO-PSP8500DUO' => [ 'Prestigio', 'MultiPhone 8500 Duo' ], + + 'GT-[IS][0-9]{4,4}!!' => [ + 'GT-I8350!' => [ 'Samsung', 'Omnia W' ], + 'GT-i8700' => [ 'Samsung', 'Omnia 7' ], + 'GT-I8710' => [ 'Samsung', 'Ativ S' ], + 'GT-I8750' => [ 'Samsung', 'Ativ S' ], + 'GT-S7530!' => [ 'Samsung', 'Omnia M' ], + ], + + 'SGH-[IT][0-9]{3,3}!!' => [ + 'SGH-I187' => [ 'Samsung', 'Ativ S Neo' ], + 'SGH-i667' => [ 'Samsung', 'Focus 2' ], + 'SGH-i677' => [ 'Samsung', 'Focus Flash' ], + 'SGH-i707' => [ 'Samsung', 'Taylor' ], // Developer phone - never released + 'SGH-i917!' => [ 'Samsung', 'Focus' ], + 'SGH-i937!' => [ 'Samsung', 'Focus S' ], + 'SGH-T899M' => [ 'Samsung', 'Ativ S' ], + ], + + 'SM-W750V' => [ 'Samsung', 'Ativ SE' ], + 'SPH-I800' => [ 'Samsung', 'Ativ S Neo' ], + 'SCH-R860U' => [ 'Samsung', 'Ativ Odyssey' ], + 'SCH-I930' => [ 'Samsung', 'Ativ Odyssey' ], + 'Ativ S' => [ 'Samsung', 'Ativ S' ], + 'ATIV S Neo' => [ 'Samsung', 'Ativ S Neo' ], + 'CETUS' => [ 'Samsung', 'Focus' ], + 'I917' => [ 'Samsung', 'Focus' ], + 'Focus i917!' => [ 'Samsung', 'Focus' ], + 'FOCUS S' => [ 'Samsung', 'Focus S' ], + 'OM(NI|IN)A ?7!' => [ 'Samsung', 'Omnia 7' ], + 'Omnia W' => [ 'Samsung', 'Omnia W' ], + 'Haden' => [ 'Samsung', 'Omnia W' ], + 'Taylor' => [ 'Samsung', 'Taylor' ], + 'S606' => [ 'TCL', 'Horizon S606' ], + 'TSUNAGI' => [ 'Toshiba', 'Tsunagi' ], + 'TG01' => [ 'Toshiba', 'TG01' ], + 'MI4' => [ 'Xiaomi', 'Mi 4' ], + 'Win-Q900S' => [ 'XOLO', 'Win Q900s' ], + 'Win Q1000' => [ 'XOLO', 'Win Q1000' ], + 'Billy 4.7' => [ 'Yezz', 'Billy 4.7' ], + '47' => [ 'Yezz', 'Monaco 47' ], + 'USCCN859' => [ 'ZTE', 'N859 Render' ], + 'N880e!' => [ 'ZTE', 'N880e' ], + 'V965W' => [ 'ZTE', 'V965W Tania' ], + 'Tania' => [ 'ZTE', 'V965W Tania' ], + + + 'Microsoft!' => [ null, null ], + 'Windows!' => [ null, null ], + 'Virtual!' => [ null, null ], + 'Android!' => [ null, null ], + 'Linux!' => [ null, null ], + '!' => [ null, null ], + 'XXX!' => [ null, null ], + 'InfoPath!' => [ null, null ], +]; diff --git a/integration/whichbrowser/data/os-cfnetwork.php b/integration/whichbrowser/data/os-cfnetwork.php new file mode 100644 index 00000000..0be7185c --- /dev/null +++ b/integration/whichbrowser/data/os-cfnetwork.php @@ -0,0 +1,97 @@ + [ 'value' => '10.2' ], + '1.2.1' => [ 'value' => '10.3.2' ], + '1.2.2' => [ 'value' => '10.3.9' ], + '1.2.6' => [ 'value' => '10.3.9' ], + '128' => [ 'value' => '10.4' ], + '128.2' => [ 'value' => '10.4.2' ], + '129.5' => [ 'value' => '10.4.3' ], + '129.9' => [ 'value' => '10.4.4' ], + '129.10' => [ 'value' => '10.4.4' ], + '129.13' => [ 'value' => '10.4.6' ], + '129.16' => [ 'value' => '10.4.7' ], + '129.18' => [ 'value' => '10.4.8' ], + '129.20' => [ 'value' => '10.4.9' ], + '129.21' => [ 'value' => '10.4.10' ], + '129.22' => [ 'value' => '10.4.11' ], + '217' => [ 'value' => '10.5' ], + '220' => [ 'value' => '10.5.1' ], + '221.5' => [ 'value' => '10.5.2' ], + '330' => [ 'value' => '10.5.3' ], + '330.4' => [ 'value' => '10.5.4' ], + '339.5' => [ 'value' => '10.5.5' ], + '422.11' => [ 'value' => '10.5.6' ], + '438.12' => [ 'value' => '10.5.7' ], + '438.14' => [ 'value' => '10.5.8' ], + '454.4' => [ 'value' => '10.6.0' ], + '454.5' => [ 'value' => '10.6.2' ], + '454.9.4' => [ 'value' => '10.6.3' ], + '454.9.7' => [ 'value' => '10.6.4' ], + '454.11.5' => [ 'value' => '10.6.5' ], + '454.11.12' => [ 'value' => '10.6.7' ], + '454.12.4' => [ 'value' => '10.6.8' ], + '520.0.13' => [ 'value' => '10.7.1' ], + '520.2.5' => [ 'value' => '10.7.2' ], + '520.3.2' => [ 'value' => '10.7.3' ], + '520.4.3' => [ 'value' => '10.7.4' ], + '520.5.1' => [ 'value' => '10.7.5' ], + '596.1' => [ 'value' => '10.8.1' ], + '596.2.3' => [ 'value' => '10.8.2' ], + '596.3.3' => [ 'value' => '10.8.3' ], + '596.4.3' => [ 'value' => '10.8.4' ], + '596.5' => [ 'value' => '10.8.5' ], + '673.0.3' => [ 'value' => '10.9' ], + '673.2.1' => [ 'value' => '10.9.2' ], + '673.4' => [ 'value' => '10.9.3' ], + '720.0.9' => [ 'value' => '10.10' ], + '720.1.1' => [ 'value' => '10.10.1' ], + '720.2.4' => [ 'value' => '10.10.2' ], + '720.3.13' => [ 'value' => '10.10.3' ], + '720.4.4' => [ 'value' => '10.10.4' ], + '720.5.7' => [ 'value' => '10.10.5' ], + '760.0.5' => [ 'value' => '10.11' ], + '760.1.2' => [ 'value' => '10.11.1' ], + '760.2.6' => [ 'value' => '10.11.2' ], + '760.4.2' => [ 'value' => '10.11.4' ], + '760.5' => [ 'value' => '10.11.4' ], + '760.5.1' => [ 'value' => '10.11.5' ], +]; + +CFNetwork::$IOS = [ + '459' => [ 'value' => '3.1.3' ], + '467.12' => [ 'value' => '3.2' ], + '485.2' => [ 'value' => '4.0' ], + '485.10.2' => [ 'value' => '4.1' ], + '485.12.7' => [ 'value' => '4.2.1' ], + '485.12.30' => [ 'value' => '4.2.8' ], + '485.13.9' => [ 'value' => '4.3' ], + '548.0.3' => [ 'value' => '5.0' ], + '548.0.4' => [ 'value' => '5.0.1' ], + '548.1.4' => [ 'value' => '5.1' ], + '602' => [ 'value' => '6.0' ], + '609' => [ 'value' => '6.0' ], + '609.1.4' => [ 'value' => '6.1.2' ], + '671' => [ 'value' => '7.0' ], + '672.0.2' => [ 'value' => '7.0' ], + '672.0.8' => [ 'value' => '7.0.3' ], + '672.1.13' => [ 'value' => '7.1' ], + '672.1.14' => [ 'value' => '7.1.1' ], + '672.1.15' => [ 'value' => '7.1.2' ], + '711.0.6' => [ 'value' => '8.0' ], + '711.1.12' => [ 'value' => '8.1' ], + '711.1.16' => [ 'value' => '8.1.1' ], + '711.2.23' => [ 'value' => '8.2' ], + '711.3.18' => [ 'value' => '8.3' ], + '711.4.6' => [ 'value' => '8.4' ], + '711.5.6' => [ 'value' => '8.4.1' ], + '758.0.2' => [ 'value' => '9.0' ], + '758.1.6' => [ 'value' => '9.1' ], + '758.2.7' => [ 'value' => '9.2' ], + '758.2.8' => [ 'value' => '9.2' ], + '758.3.15' => [ 'value' => '9.3' ], + '758.4.3' => [ 'value' => '9.3.2' ], +]; diff --git a/integration/whichbrowser/data/os-darwin.php b/integration/whichbrowser/data/os-darwin.php new file mode 100644 index 00000000..f5046115 --- /dev/null +++ b/integration/whichbrowser/data/os-darwin.php @@ -0,0 +1,27 @@ + [ 'value' =>'10.0' ], + '5' => [ 'value' =>'10.1' ], + '6' => [ 'value' =>'10.2' ], + '7' => [ 'value' =>'10.3' ], + '8' => [ 'value' =>'10.4' ], + '9' => [ 'value' =>'10.5' ], + '10' => [ 'value' =>'10.6' ], + '11' => [ 'value' =>'10.7' ], + '12' => [ 'value' =>'10.8' ], + '13' => [ 'value' =>'10.9' ], + '14' => [ 'value' =>'10.10' ], + '15' => [ 'value' =>'10.11' ], +]; + +Darwin::$IOS = [ + '9' => [ 'value' =>'1' ], + '10' => [ 'value' =>'4' ], + '11' => [ 'value' =>'5' ], + '13' => [ 'value' =>'6' ], + '14' => [ 'value' =>'7' ], + '15' => [ 'value' =>'9' ], +]; diff --git a/integration/whichbrowser/data/profiles.php b/integration/whichbrowser/data/profiles.php new file mode 100644 index 00000000..97a0a547 --- /dev/null +++ b/integration/whichbrowser/data/profiles.php @@ -0,0 +1,9297 @@ + [ 'Acer', 'All-in-One DA223HQL', 'Android', ], + 'http://support.acer.com/uaprofile/Acer_E110_profile.xml' => [ 'Acer', 'beTouch E110', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_E130_profile_no_3rd_drm_no_java.xml' => [ 'Acer', 'beTouch E130', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_E400_Profile.xml' => [ 'Acer', 'beTouch E400', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_Acer_A9_Profile.xml' => [ 'Acer', 'CloudMobile', 'Aliyun OS', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_S500_IML74K_Profile.xml' => [ 'Acer', 'CloudMobile', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_S500_IMM76D_Profile.xml' => [ 'Acer', 'CloudMobile', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_S500_IMM76I_Profile.xml' => [ 'Acer', 'CloudMobile', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_S500_JRO03L_Profile.xml' => [ 'Acer', 'CloudMobile', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_S500_JZO54K_Profile.xml' => [ 'Acer', 'CloudMobile', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_E100_Profile.XML' => [ 'Acer', 'E100', 'Windows Mobile', DeviceType::MOBILE ], + 'http://global-download.acer.com/SupportFiles/Files/UAProfile/XML/Acer_A1-810_JDQ39_Profile.xml' => [ 'Acer', 'Iconia A1-810', 'Android', DeviceType::TABLET ], + 'http://global-download.acer.com/SupportFiles/Files/UAProfile/XML/Acer_A1-811_JDQ39_Profile.xml' => [ 'Acer', 'Iconia A1-811', 'Android', DeviceType::MOBILE ], + 'http://global-download.acer.com/SupportFiles/Files/UAProfile/XML/Acer_A1-812_JDQ39_Profile.xml' => [ 'Acer', 'Iconia A1-812', 'Android', DeviceType::TABLET ], + 'http://go.acer.com/?id=5566' => [ 'Acer', 'Iconia A1-820', 'Android', DeviceType::TABLET ], + 'http://go.acer.com/?id=17979' => [ 'Acer', 'Iconia A1-830', 'Android', DeviceType::TABLET ], + 'http://go.acer.com/?id=17995' => [ 'Acer', 'Iconia One 7 B1-730 HD', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_S300_Profile.xml' => [ 'Acer', 'Iconia Smart', 'Android', DeviceType::MOBILE ], + 'http://global-download.acer.com/SupportFiles/Files/UAProfile/XML/Acer_A1-713_JDQ39_Profile.xml' => [ 'Acer', 'Iconia Tab 7 A1-713', 'Android', DeviceType::TABLET ], + 'http://global-download.acer.com/SupportFiles/Files/UAProfile/XML/Acer_A1-713_KOT49H_Profile.xml' => [ 'Acer', 'Iconia Tab 7 A1-713', 'Android', DeviceType::TABLET ], + 'http://global-download.acer.com/SupportFiles/Files/UAProfile/XML/Acer_A1-713HD_KOT49H_Profile.xml' => [ 'Acer', 'Iconia Tab 7 A1-713 HD', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A100_IML74K_Profile.xml' => [ 'Acer', 'Iconia Tab A100', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A100_Profile.xml' => [ 'Acer', 'Iconia Tab A100', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/A100.xml' => [ 'Acer', 'Iconia Tab A100', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A101_IML74K_Profile.xml' => [ 'Acer', 'Iconia Tab A101', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A101_Profile.xml' => [ 'Acer', 'Iconia Tab A101', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A200_Profile.xml' => [ 'Acer', 'Iconia Tab A200', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A210_IMM76D_Profile.xml' => [ 'Acer', 'Iconia Tab A210', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A210_JRO03H_Profile.xml' => [ 'Acer', 'Iconia Tab A210', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A210_JRO4HDb1_Profile.xml' => [ 'Acer', 'Iconia Tab A210', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A210_JRO4HDb3_Profile.xml' => [ 'Acer', 'Iconia Tab A210', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A210_JZO54K_Profile.xml' => [ 'Acer', 'Iconia Tab A210', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A211_IMM76D_Profile.xml' => [ 'Acer', 'Iconia Tab A211', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A211_JRO03H_Profile.xml' => [ 'Acer', 'Iconia Tab A211', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A500_IML74K_Profile.xml' => [ 'Acer', 'Iconia Tab A500', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A500_IMM76D_Profile.xml' => [ 'Acer', 'Iconia Tab A500', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A500_Profile.xml' => [ 'Acer', 'Iconia Tab A500', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A501_IML74K_Profile.xml' => [ 'Acer', 'Iconia Tab A501', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A501_Profile.xml' => [ 'Acer', 'Iconia Tab A501', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A510_JRO03H_Profile.xml' => [ 'Acer', 'Iconia Tab A510', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A510_JZO54K_Profile.xml' => [ 'Acer', 'Iconia Tab A510', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A510_Profile.xml' => [ 'Acer', 'Iconia Tab A510', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A511_IML74K_Profile.xml' => [ 'Acer', 'Iconia Tab A511', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A511_JZO54K_Profile.xml' => [ 'Acer', 'Iconia Tab A511', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A700_IMM76D_Profile.xml' => [ 'Acer', 'Iconia Tab A700', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A700_JRO03H_Profile.xml' => [ 'Acer', 'Iconia Tab A700', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A700_Profile.xml' => [ 'Acer', 'Iconia Tab A700', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A701_IMM76D_Profile.xml' => [ 'Acer', 'Iconia Tab A701', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_A701_JRO03H_Profile.xml' => [ 'Acer', 'Iconia Tab A701', 'Android', DeviceType::TABLET ], + 'http://support.acer.com/UAprofile/Acer_S100_Profile.xml' => [ 'Acer', 'Liquid', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com?id=17494' => [ 'Acer', 'Liquid E2', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=17895' => [ 'Acer', 'Liquid E3', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com?id=17895' => [ 'Acer', 'Liquid E3', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=17999' => [ 'Acer', 'Liquid E700', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_E210_Profile.xml' => [ 'Acer', 'Liquid Express', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_E320_Profile.xml' => [ 'Acer', 'Liquid Express', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=18008' => [ 'Acer', 'Liquid Jade', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=18009' => [ 'Acer', 'Liquid Jade S', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=83843' => [ 'Acer', 'Liquid Jade Z', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_E310_Profile.xml' => [ 'Acer', 'Liquid mini', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_S120_Profile.xml' => [ 'Acer', 'Liquid mt', 'Android', DeviceType::MOBILE ], + 'http://global-download.acer.com/SupportFiles/Files/UAProfile/XML/Acer_S510_JDQ39_Profile.xml' => [ 'Acer', 'Liquid S', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=17873' => [ 'Acer', 'Liquid S', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=17891' => [ 'Acer', 'Liquid S2', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_S520_JDQ39_Profile.xml' => [ 'Acer', 'Liquid S2', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_Z110_UAProfile.xml' => [ 'Acer', 'Liquid Z', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_Z120_UAProfile.xml' => [ 'Acer', 'Liquid Z2', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=18020' => [ 'Acer', 'Liquid Z200', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=83844' => [ 'Acer', 'Liquid Z205', 'Android', DeviceType::MOBILE ], + 'http://global-download.acer.com/SupportFiles/Files/UAProfile/XML/Acer_Z130_JDQ39_Profile.xml' => [ 'Acer', 'Liquid Z3', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=84411' => [ 'Acer', 'Liquid Z330', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=17980' => [ 'Acer', 'Liquid Z4', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=18083' => [ 'Acer', 'Liquid Z410', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=17940' => [ 'Acer', 'Liquid Z5', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=83841' => [ 'Acer', 'Liquid Z520', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAProfile/Acer_P400_Profile.xml' => [ 'Acer', 'neoTouch P400', 'Windows Mobile', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_S200_Profile.xml' => [ 'Acer', 'neoTouch S200', 'Windows Mobile', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_S110_Profile.xml' => [ 'Acer', 'Stream', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_TD600_profile.xml' => [ 'Acer', 'TD600', 'Android', DeviceType::MOBILE ], + 'http://go.acer.com/?id=17684' => [ 'Acer', 'Touch and 3D Monitor DA245HQL', 'Android', ], + 'http://www.fly-phone.ru/UAP/Flylife_Connect_3G_2.xml' => [ 'AG Mobile', 'Chrome Go-Tab 7.0', 'Android', DeviceType::TABLET ], + 'http://www.bluhelp.com/upload/xmlfiles/STUDIO6_0HD.xml' => [ 'Ainovo', 'Novo7 Aurora', 'Android', DeviceType::TABLET ], + 'http://www.airnessmobile.com/uaprof/Airness-Air99.xml' => [ 'Airness', 'Air99', null, DeviceType::MOBILE ], + 'http://www.airnessmobile.com/uaprof/HT-1.xml' => [ 'Airness', 'HT-1', null, DeviceType::MOBILE ], + 'http://www.airnessmobile.com/uaprof/slide99.xml' => [ 'Airness', 'Slide99', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/9021A.xml' => [ 'Alcaltel', 'One Touch POP8', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Alcatel_A205G.rdf' => [ 'Alcatel', 'A205G', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Alcatel_A205G-B.rdf' => [ 'Alcatel', 'A205G-B', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_A206G.rdf' => [ 'Alcatel', 'A206G', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_A383G.rdf' => [ 'Alcatel', 'A383G', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_A392G.rdf' => [ 'Alcatel', 'A392G', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_A392T.rdf' => [ 'Alcatel', 'A392T', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/A480G.xml' => [ 'Alcatel', 'A480G', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/A621R.xml' => [ 'Alcatel', 'A621R', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp-mpd.alcatel.com/files/ALCATEL-BF4_2.0.rdf' => [ 'Alcatel', 'BF4', null, DeviceType::MOBILE ], + 'http://www-ccpp-mpd.alcatel.com/files/ALCATEL-BF5_1.0.rdf' => [ 'Alcatel', 'BF5', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/odm/ALCATEL_D6.rdf' => [ 'Alcatel', 'D6', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Mobile_Sosh.xml' => [ 'Alcatel', 'Le mobile Sosh', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-MD01.rdf' => [ 'Alcatel', 'MD01', null, DeviceType::MOBILE ], + 'http://www-ccpp-mpd.alcatel.com/odm/OH1C_UAProf.rdf' => [ 'Alcatel', 'OH1C', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_2067X.rdf' => [ 'Alcatel', 'One Touch 2067', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_385JA.rdf' => [ 'Alcatel', 'One Touch 385', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_585F.rdf' => [ 'Alcatel', 'One Touch 585', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_602A.rdf' => [ 'Alcatel', 'One Touch 602', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_720.rdf' => [ 'Alcatel', 'One Touch 720', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_768T.rdf' => [ 'Alcatel', 'One Touch 768T', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-802.rdf' => [ 'Alcatel', 'One Touch 802', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_803A.rdf' => [ 'Alcatel', 'One Touch 803', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-806.rdf' => [ 'Alcatel', 'One Touch 806', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-807D.rdf' => [ 'Alcatel', 'One Touch 807', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_810D.rdf' => [ 'Alcatel', 'One Touch 810D', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_813.rdf' => [ 'Alcatel', 'One Touch 813', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_813A.rdf' => [ 'Alcatel', 'One Touch 813', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_813D.rdf' => [ 'Alcatel', 'One Touch 813', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_813FA.rdf' => [ 'Alcatel', 'One Touch 813FA', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_815.rdf' => [ 'Alcatel', 'One Touch 815', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_818A.rdf' => [ 'Alcatel', 'One Touch 818', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_819.rdf' => [ 'Alcatel', 'One Touch 819', null, DeviceType::MOBILE ], + 'http://www-ccpp-mpd.alcatel.com/odm/OT835_UAProf.rdf' => [ 'Alcatel', 'One Touch 835', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_838.rdf' => [ 'Alcatel', 'One Touch 838', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT871A.rdf' => [ 'Alcatel', 'One Touch 871A', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_890.xml' => [ 'Alcatel', 'One Touch 890', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_890D.xml' => [ 'Alcatel', 'One Touch 890', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_900A.rdf' => [ 'Alcatel', 'One Touch 900', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_900M.rdf' => [ 'Alcatel', 'One Touch 900M', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_903.xml' => [ 'Alcatel', 'One Touch 903', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_903A.xml' => [ 'Alcatel', 'One Touch 903', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_903D.xml' => [ 'Alcatel', 'One Touch 903', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_905M.rdf' => [ 'Alcatel', 'One Touch 905', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_908.xml' => [ 'Alcatel', 'One Touch 908', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_908F.xml' => [ 'Alcatel', 'One Touch 908', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_908S.xml' => [ 'Alcatel', 'One Touch 908', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_909A.xml' => [ 'Alcatel', 'One Touch 909', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_916.xml' => [ 'Alcatel', 'One Touch 916', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_916A.xml' => [ 'Alcatel', 'One Touch 916', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_918.xml' => [ 'Alcatel', 'One Touch 918', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_918A.xml' => [ 'Alcatel', 'One Touch 918', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_918D.xml' => [ 'Alcatel', 'One Touch 918', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_918N.xml' => [ 'Alcatel', 'One Touch 918', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_918S.xml' => [ 'Alcatel', 'One Touch 918', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_918_Orange.xml' => [ 'Alcatel', 'One Touch 918', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-919.xml' => [ 'Alcatel', 'One Touch 919', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_922.xml' => [ 'Alcatel', 'One Touch 922', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_928D.xml' => [ 'Alcatel', 'One Touch 928', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-980.xml' => [ 'Alcatel', 'One Touch 980', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-980A.xml' => [ 'Alcatel', 'One Touch 980', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-981A.xml' => [ 'Alcatel', 'One Touch 981', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_One_touch_983.xml' => [ 'Alcatel', 'One Touch 983', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_One_touch_983A.xml' => [ 'Alcatel', 'One Touch 983', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_One_touch_983A_3G.xml' => [ 'Alcatel', 'One Touch 983', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_One_touch_983_3G.xml' => [ 'Alcatel', 'One Touch 983', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_985.xml' => [ 'Alcatel', 'One Touch 985', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_985A.xml' => [ 'Alcatel', 'One Touch 985', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_985D.xml' => [ 'Alcatel', 'One Touch 985', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_985N.xml' => [ 'Alcatel', 'One Touch 985', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/ALCATEL-one_touch_990C+.xml' => [ 'Alcatel', 'One Touch 990', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/OT-990C.xml' => [ 'Alcatel', 'One Touch 990', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_990.xml' => [ 'Alcatel', 'One Touch 990', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_990A.xml' => [ 'Alcatel', 'One Touch 990', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_990S.xml' => [ 'Alcatel', 'One Touch 990', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_OT_990M.xml' => [ 'Alcatel', 'One Touch 990', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_991.xml' => [ 'Alcatel', 'One Touch 991', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_991A.xml' => [ 'Alcatel', 'One Touch 991', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_991D.xml' => [ 'Alcatel', 'One Touch 991', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_991T.xml' => [ 'Alcatel', 'One Touch 991', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_991_Orange.xml' => [ 'Alcatel', 'One Touch 991', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_992D.xml' => [ 'Alcatel', 'One Touch 992', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_993.xml' => [ 'Alcatel', 'One Touch 993', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_995.xml' => [ 'Alcatel', 'One Touch 995', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_995A.xml' => [ 'Alcatel', 'One Touch 995', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_996.xml' => [ 'Alcatel', 'One Touch 996', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_997.xml' => [ 'Alcatel', 'One Touch 997', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_one_touch_997D.xml' => [ 'Alcatel', 'One Touch 997', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_A392CC_CC.rdf' => [ 'Alcatel', 'One Touch A392G', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_A392CC_TELUS.rdf' => [ 'Alcatel', 'One Touch A392G', null, DeviceType::MOBILE ], + 'http://www-ccpp-mpd.alcatel.com/files/ALCATEL-CTH3_MMS11_1.0.rdf' => [ 'Alcatel', 'One Touch C651', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-C700A.rdf' => [ 'Alcatel', 'One Touch C700', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-C701.rdf' => [ 'Alcatel', 'One Touch C701', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-C717.rdf' => [ 'Alcatel', 'One Touch C717', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-C825.rdf' => [ 'Alcatel', 'One Touch C825', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/onetouch_EVO7.xml' => [ 'Alcatel', 'One Touch Evo 7', 'Android', DeviceType::TABLET ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_EVO7HD.xml' => [ 'Alcatel', 'One Touch Evo 7 HD', 'Android', DeviceType::TABLET ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_EVO8HD.xml' => [ 'Alcatel', 'One Touch Evo 8 HD', 'Android', DeviceType::TABLET ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7024N.xml' => [ 'Alcatel', 'One Touch Fierce', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7024R.xml' => [ 'Alcatel', 'One Touch Fierce', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7024W.xml' => [ 'Alcatel', 'One Touch Fierce', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5054N.xml' => [ 'Alcatel', 'One Touch Fierce XL', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATELOneTouch4012X.xml' => [ 'Alcatel', 'One Touch Fire', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4012A.xml' => [ 'Alcatel', 'One Touch Fire', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4012X.xml' => [ 'Alcatel', 'One Touch Fire', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/fils/ONE_TOUCH_4012A.xml' => [ 'Alcatel', 'One Touch Fire', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATELOneTouch4019A.xml' => [ 'Alcatel', 'One Touch Fire C', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATELOneTouch4019X.xml' => [ 'Alcatel', 'One Touch Fire C', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATELOneTouch4019X_V2.0.xml' => [ 'Alcatel', 'One Touch Fire C', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_4020D.xml' => [ 'Alcatel', 'One Touch Fire C', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATELOneTouch6015X.xml' => [ 'Alcatel', 'One Touch Fire E', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATELOneTouch6015X_v2.0.xml' => [ 'Alcatel', 'One Touch Fire E', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONETOUCH_Flash_Plus.xml' => [ 'Alcatel', 'One Touch Flash Plus', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/7048A.xml' => [ 'Alcatel', 'One Touch Go Play', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/7048X.xml' => [ 'Alcatel', 'One Touch Go Play', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_8020E.xml' => [ 'Alcatel', 'One Touch Hero', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/7055A.xml' => [ 'Alcatel', 'One Touch Hero 2C', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6030A.xml' => [ 'Alcatel', 'One Touch Idol', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6030D.xml' => [ 'Alcatel', 'One Touch Idol', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6030N.xml' => [ 'Alcatel', 'One Touch Idol', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6030X.xml' => [ 'Alcatel', 'One Touch Idol', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6030X_Orange.xml' => [ 'Alcatel', 'One Touch Idol', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6037Y.xml' => [ 'Alcatel', 'One Touch Idol 2', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6037B.xml' => [ 'Alcatel', 'One Touch Idol 2 Dual', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6037K.xml' => [ 'Alcatel', 'One Touch Idol 2 Dual', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6016A.xml' => [ 'Alcatel', 'One Touch Idol 2 Mini', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6016D.xml' => [ 'Alcatel', 'One Touch Idol 2 Mini', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6016X.xml' => [ 'Alcatel', 'One Touch Idol 2 Mini', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6036A.xml' => [ 'Alcatel', 'One Touch Idol 2 Mini S', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6036X.xml' => [ 'Alcatel', 'One Touch Idol 2 Mini S', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6036Y.xml' => [ 'Alcatel', 'One Touch Idol 2 Mini S', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6036Y_KK.xml' => [ 'Alcatel', 'One Touch Idol 2 Mini S', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONETOUCH_6036X.xml' => [ 'Alcatel', 'One Touch Idol 2 Mini S', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6036X.xml' => [ 'Alcatel', 'One Touch Idol 2 Mini S', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6050A.xml' => [ 'Alcatel', 'One Touch Idol 2S', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6050F.xml' => [ 'Alcatel', 'One Touch Idol 2S', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6050Y.xml' => [ 'Alcatel', 'One Touch Idol 2S', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6039A.xml' => [ 'Alcatel', 'One Touch Idol 3 (4.7)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6039H.xml' => [ 'Alcatel', 'One Touch Idol 3 (4.7)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6039J.xml' => [ 'Alcatel', 'One Touch Idol 3 (4.7)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6039K.xml' => [ 'Alcatel', 'One Touch Idol 3 (4.7)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6039S.xml' => [ 'Alcatel', 'One Touch Idol 3 (4.7)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6039Y.xml' => [ 'Alcatel', 'One Touch Idol 3 (4.7)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH6045B.xml' => [ 'Alcatel', 'One Touch Idol 3 (5.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH6045I.xml' => [ 'Alcatel', 'One Touch Idol 3 (5.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH6045K.xml' => [ 'Alcatel', 'One Touch Idol 3 (5.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH6045O.xml' => [ 'Alcatel', 'One Touch Idol 3 (5.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH6045Y.xml' => [ 'Alcatel', 'One Touch Idol 3 (5.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6055I.xml' => [ 'Alcatel', 'One Touch Idol 4', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6055K.xml' => [ 'Alcatel', 'One Touch Idol 4', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6055P.xml' => [ 'Alcatel', 'One Touch Idol 4', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6012D.xml' => [ 'Alcatel', 'One Touch Idol Mini', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6014X.xml' => [ 'Alcatel', 'One Touch Idol Mini', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_6012A.xml' => [ 'Alcatel', 'One Touch Idol Mini', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_6012D.xml' => [ 'Alcatel', 'One Touch Idol Mini', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_6012E.xml' => [ 'Alcatel', 'One Touch Idol Mini', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_6012X.xml' => [ 'Alcatel', 'One Touch Idol Mini', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6034M.xml' => [ 'Alcatel', 'One Touch Idol S', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6034R.xml' => [ 'Alcatel', 'One Touch Idol S', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6034Y.xml' => [ 'Alcatel', 'One Touch Idol S', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6035R.xml' => [ 'Alcatel', 'One Touch Idol S', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6033A.xml' => [ 'Alcatel', 'One Touch Idol Ultra', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6033X.xml' => [ 'Alcatel', 'One Touch Idol Ultra', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6040A.xml' => [ 'Alcatel', 'One Touch Idol X', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6040D.xml' => [ 'Alcatel', 'One Touch Idol X', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6040X.xml' => [ 'Alcatel', 'One Touch Idol X', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/6043D.xml' => [ 'Alcatel', 'One Touch Idol X+', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6032.xml' => [ 'Alcatel', 'One Touch Idol α', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6032A.xml' => [ 'Alcatel', 'One Touch Idol α', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5020A.xml' => [ 'Alcatel', 'One Touch M\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5020D.xml' => [ 'Alcatel', 'One Touch M\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5020E.xml' => [ 'Alcatel', 'One Touch M\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5020N.xml' => [ 'Alcatel', 'One Touch M\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5020T.xml' => [ 'Alcatel', 'One Touch M\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5020W.xml' => [ 'Alcatel', 'One Touch M\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5020X.xml' => [ 'Alcatel', 'One Touch M\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/9005X.xml' => [ 'Alcatel', 'One Touch One Touch Pixi 3 (8)', 'Android', DeviceType::TABLET ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4007A.xml' => [ 'Alcatel', 'One Touch Pixi', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4007D.xml' => [ 'Alcatel', 'One Touch Pixi', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4007X.xml' => [ 'Alcatel', 'One Touch Pixi', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATELOneTouch4022D.xml' => [ 'Alcatel', 'One Touch Pixi 3 (3.5)', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATELOneTouch4023A.xml' => [ 'Alcatel', 'One Touch Pixi 3 (3.5)', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATELOneTouch4023X.xml' => [ 'Alcatel', 'One Touch Pixi 3 (3.5)', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4014D.xml' => [ 'Alcatel', 'One Touch Pixi 3 (4)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5065D.xml' => [ 'Alcatel', 'One Touch Pixi 3 (5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5065X.xml' => [ 'Alcatel', 'One Touch Pixi 3 (5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5054D.xml' => [ 'Alcatel', 'One Touch Pixi 3 (5.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5054O.xml' => [ 'Alcatel', 'One Touch Pixi 3 (5.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5054S.xml' => [ 'Alcatel', 'One Touch Pixi 3 (5.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5054X.xml' => [ 'Alcatel', 'One Touch Pixi 3 (5.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/9007A.xml' => [ 'Alcatel', 'One Touch Pixi 3 (7)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/9022X.xml' => [ 'Alcatel', 'One Touch Pixi 3 (8)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/4045A.xml' => [ 'Alcatel', 'One Touch Pop 2 (4)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5042A.xml' => [ 'Alcatel', 'One Touch Pop 2 (4.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5042D.xml' => [ 'Alcatel', 'One Touch Pop 2 (4.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5042W.xml' => [ 'Alcatel', 'One Touch Pop 2 (4.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5042X.xml' => [ 'Alcatel', 'One Touch Pop 2 (4.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5042Y.xml' => [ 'Alcatel', 'One Touch Pop 2 (4.5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/7043K.xml' => [ 'Alcatel', 'One Touch Pop 2 (5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/7043Y.xml' => [ 'Alcatel', 'One Touch Pop 2 (5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/7044A.xml' => [ 'Alcatel', 'One Touch Pop 2 (5) Premium', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/7044X.xml' => [ 'Alcatel', 'One Touch Pop 2 (5) Premium', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/7051X.xml' => [ 'Alcatel', 'One Touch Pop 3 (5)', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/4016A.xml' => [ 'Alcatel', 'One Touch Pop C1', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/4016X.xml' => [ 'Alcatel', 'One Touch Pop C1', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_4015T.xml' => [ 'Alcatel', 'One Touch Pop C1', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4015A.xml' => [ 'Alcatel', 'One Touch Pop C1', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4015D.xml' => [ 'Alcatel', 'One Touch Pop C1', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4015N.xml' => [ 'Alcatel', 'One Touch Pop C1', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4015T.xml' => [ 'Alcatel', 'One Touch Pop C1', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4015X.xml' => [ 'Alcatel', 'One Touch Pop C1', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/one_touch_4016X.xml' => [ 'Alcatel', 'One Touch Pop C1', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/4032A.xml' => [ 'Alcatel', 'One Touch Pop C2', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/4032D.xml' => [ 'Alcatel', 'One Touch Pop C2', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/4032X.xml' => [ 'Alcatel', 'One Touch Pop C2', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4033A.xml' => [ 'Alcatel', 'One Touch Pop C3', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4033D.xml' => [ 'Alcatel', 'One Touch Pop C3', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4033E.xml' => [ 'Alcatel', 'One Touch Pop C3', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_4033X.xml' => [ 'Alcatel', 'One Touch Pop C3', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5036A.xml' => [ 'Alcatel', 'One Touch Pop C5', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5036D.xml' => [ 'Alcatel', 'One Touch Pop C5', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5036X.xml' => [ 'Alcatel', 'One Touch Pop C5', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5037A.xml' => [ 'Alcatel', 'One Touch Pop C5', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5037E.xml' => [ 'Alcatel', 'One Touch Pop C5', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5037X.xml' => [ 'Alcatel', 'One Touch Pop C5', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7040A.xml' => [ 'Alcatel', 'One Touch Pop C7', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7040D.xml' => [ 'Alcatel', 'One Touch Pop C7', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7040E.xml' => [ 'Alcatel', 'One Touch Pop C7', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7041D.xml' => [ 'Alcatel', 'One Touch Pop C7', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7041X.xml' => [ 'Alcatel', 'One Touch Pop C7', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7047A.xml' => [ 'Alcatel', 'One Touch Pop C9', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7047D.xml' => [ 'Alcatel', 'One Touch Pop C9', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7047E.xml' => [ 'Alcatel', 'One Touch Pop C9', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_A995L.xml' => [ 'Alcatel', 'One Touch Pop Mega', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5050A.xml' => [ 'Alcatel', 'One Touch Pop S3', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5050X.xml' => [ 'Alcatel', 'One Touch Pop S3', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5050Y.xml' => [ 'Alcatel', 'One Touch Pop S3', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/7050Y.xml' => [ 'Alcatel', 'One Touch Pop S9', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7050Y.xml' => [ 'Alcatel', 'One Touch Pop S9', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_A845L.xml' => [ 'Alcatel', 'One Touch Pop Star', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/P360X.xml' => [ 'Alcatel', 'One Touch POP10', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_P310A.xml' => [ 'Alcatel', 'One Touch POP7', 'Android', DeviceType::TABLET ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_P310X.xml' => [ 'Alcatel', 'One Touch POP7', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/P330X.xml' => [ 'Alcatel', 'One Touch POP7S', 'Android', DeviceType::TABLET ], + 'http://www-ccpp.tcl-ta.com/files/P330X_orange.xml' => [ 'Alcatel', 'One Touch POP7S', 'Android', DeviceType::TABLET ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_P320A_TELUS.xml' => [ 'Alcatel', 'One Touch POP8', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_P320X.xml' => [ 'Alcatel', 'One Touch POP8', 'Android', DeviceType::TABLET ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_P321X.xml' => [ 'Alcatel', 'One Touch POP8', 'Android', DeviceType::TABLET ], + 'www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_P320A.xml' => [ 'Alcatel', 'One Touch POP8', 'Android', DeviceType::TABLET ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_4030A.xml' => [ 'Alcatel', 'One Touch S\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_4030D.xml' => [ 'Alcatel', 'One Touch S\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_4030E.xml' => [ 'Alcatel', 'One Touch S\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_4030X.xml' => [ 'Alcatel', 'One Touch S\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_4030Y.xml' => [ 'Alcatel', 'One Touch S\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-S218.rdf' => [ 'Alcatel', 'One Touch S218', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-S319.rdf' => [ 'Alcatel', 'One Touch S319', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-S520.rdf' => [ 'Alcatel', 'One Touch S520', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_8000A.xml' => [ 'Alcatel', 'One Touch Scribe Easy', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_8000D.xml' => [ 'Alcatel', 'One Touch Scribe Easy', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_8008D.xml' => [ 'Alcatel', 'One Touch Scribe HD', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_8008W.xml' => [ 'Alcatel', 'One Touch Scribe HD', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_8008X.xml' => [ 'Alcatel', 'One Touch Scribe HD', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_8020D.xml' => [ 'Alcatel', 'One Touch Scribe Pro', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_8020D.xml' => [ 'Alcatel', 'One Touch Scribe Pro', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_8020X.xml' => [ 'Alcatel', 'One Touch Scribe Pro', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_7030L.xml' => [ 'Alcatel', 'One Touch Snap', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7025D.xml' => [ 'Alcatel', 'One Touch Snap', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7025X.xml' => [ 'Alcatel', 'One Touch Snap', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7042A.xml' => [ 'Alcatel', 'One Touch Snap', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_7042D.xml' => [ 'Alcatel', 'One Touch Snap', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5021E.xml' => [ 'Alcatel', 'One Touch Soleil', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_A851L.xml' => [ 'Alcatel', 'One Touch Sonic', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL ONE TOUCH 6010D.xml' => [ 'Alcatel', 'One Touch Star', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6010D.xml' => [ 'Alcatel', 'One Touch Star', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6010X.xml' => [ 'Alcatel', 'One Touch Star', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6010X_Orange.xml' => [ 'Alcatel', 'One Touch Star', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_4010A.xml' => [ 'Alcatel', 'One Touch T\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_4010D.xml' => [ 'Alcatel', 'One Touch T\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_4010E.xml' => [ 'Alcatel', 'One Touch T\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_4010X.xml' => [ 'Alcatel', 'One Touch T\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_4011X.xml' => [ 'Alcatel', 'One Touch T\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ONE_TOUCH_TAB_7.xml' => [ 'Alcatel', 'One Touch Tab 7', 'Android', DeviceType::TABLET ], + 'http://www-ccpp.tcl-ta.com/files/3075A.rdf' => [ 'Alcatel', 'One Touch Tribe 3075A', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL-OT-V670.rdf' => [ 'Alcatel', 'One Touch V670', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5035D.xml' => [ 'Alcatel', 'One Touch X\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5035E.xml' => [ 'Alcatel', 'One Touch X\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_5035X.xml' => [ 'Alcatel', 'One Touch X\'Pop', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_TRIBE_3075A.rdf' => [ 'Alcatel', 'Tribe 3075A', null, DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/PCD/ADR2045-VMUB/1.0/UAProf.xml' => [ 'Alcatel', 'Venture', 'Android', DeviceType::MOBILE ], + 'http://pluto.alphacell.com/uaprof/m5p.xml' => [ 'AlphaCell', 'M5', null, DeviceType::MOBILE ], + 'http://www.amobile.com.cn/ua/Amoi-8512.xml' => [ 'Amoi', '8512', null, DeviceType::MOBILE ], + 'http://www.amobile.com.cn/ua/Amoi-8709.xml' => [ 'Amoi', '8709', null, DeviceType::MOBILE ], + 'http://www.amobile.com.cn/ua/Amoi-8710.xml' => [ 'Amoi', '8710', null, DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOAMOI A920W.xml' => [ 'Amoi', 'A920W', 'Android', DeviceType::MOBILE ], + 'http://www.amobile.com.cn/ua/c200.xml' => [ 'Amoi', 'C200', null, DeviceType::MOBILE ], + 'http://www.amobile.com.cn/ua/CA6.xml' => [ 'Amoi', 'CA6', null, DeviceType::MOBILE ], + 'http://www.amobile.com.cn/ua/E610.xml' => [ 'Amoi', 'E610', null, DeviceType::MOBILE ], + 'http://www.amobile.com.cn/ua/E72.xml' => [ 'Amoi', 'E72', null, DeviceType::MOBILE ], + 'http://www.amobile.com.cn/ua/F8.xml' => [ 'Amoi', 'F8', null, DeviceType::MOBILE ], + 'http://www.amobile.com.cn/ua/M636.xml' => [ 'Amoi', 'M636', null, DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOAMOI_N828.xml' => [ 'Amoi', 'N828', 'Android', DeviceType::MOBILE ], + 'http://www.amobile.com.cn/ua/S6.xml' => [ 'Amoi', 'S6', null, DeviceType::MOBILE ], + 'https://servicios.iusacell.com.mx/amoi/v810/v810v1.xml' => [ 'Amoi', 'V810', null, DeviceType::MOBILE ], + 'http://www.apanda.com.cn/apanda-A60-ua-profile.xml' => [ 'Apanda', 'A60', 'Android', DeviceType::MOBILE ], + 'http://asmobile.ehosting.com.tw/uaprof/castor.xml' => [ 'Asmobile', 'Castor', null, DeviceType::MOBILE ], + 'http://asmobile.ehosting.com.tw/uaprof/PAVO.xml' => [ 'Asmobile', 'PAVO', null, DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS1210-1.0.xml' => [ 'Asus', '1210', null, DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-NAPA-1.0.xml' => [ 'Asus', 'Eee Pc T10', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-NAPA-MINI-1.0.xml' => [ 'Asus', 'Eee Pc T20', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ASUS-K00S.xml' => [ 'Asus', 'Fonepad', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-ME371MG-1.0.xml' => [ 'Asus', 'Fonepad', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-K00E.xml' => [ 'Asus', 'Fonepad 7', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-K00Z.xml' => [ 'Asus', 'Fonepad 7', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-ME175CG.xml' => [ 'Asus', 'Fonepad 7', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-ME175CG_KK.xml' => [ 'Asus', 'Fonepad 7', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-ME372CG.xml' => [ 'Asus', 'Fonepad 7', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-ME372CL.xml' => [ 'Asus', 'Fonepad 7', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-FE170CG.xml' => [ 'Asus', 'Fonepad 7 2014', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-FE171CG.xml' => [ 'Asus', 'Fonepad 7 2015', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-FE375CL.xml' => [ 'Asus', 'Fonepad 7 2015', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-FE380CG.xml' => [ 'Asus', 'Fonepad 8 2014', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-K00G.xml' => [ 'Asus', 'Fonepad Note 6', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/K00G.xml' => [ 'Asus', 'Fonepad Note 6', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-J501_UAProf.xml' => [ 'Asus', 'J501', null, DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-M530w-1.0.xml' => [ 'Asus', 'M530w', 'Windows Mobile', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-M930-1.0.xml' => [ 'Asus', 'M930', 'Windows Mobile', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-K00F.xml' => [ 'Asus', 'MemoPad 10', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-ME375CL.xml' => [ 'Asus', 'MemoPad 7', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ME572CL.xml' => [ 'Asus', 'MemoPad 7', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-K00L.xml' => [ 'Asus', 'MemoPad 8', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-ME302C-1.0.xml' => [ 'Asus', 'MemoPad FHD 10', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-grouper.xml' => [ 'Asus', 'Nexus 7', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/grouper.xml' => [ 'Asus', 'Nexus 7', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-GalaxyMini-1.0.xml' => [ 'Asus', 'P320', 'Windows Mobile', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-Pegasus-1.0.xml' => [ 'Asus', 'P526', 'Windows Mobile', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-P527-1.0.xml' => [ 'Asus', 'P527', 'Windows Mobile', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-GalaxyII-1.0.xml' => [ 'Asus', 'P535', 'Windows Mobile', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-P550-1.0.xml' => [ 'Asus', 'P550', 'Windows Mobile', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-GalaxyMini2-1.0.xml' => [ 'Asus', 'P552', 'Windows Mobile', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-P750-1.0.xml' => [ 'Asus', 'P750', 'Windows Mobile', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-PadFone-1.0.xml' => [ 'Asus', 'Padfone', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-PadFone.xml' => [ 'Asus', 'Padfone', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-A68.xml' => [ 'Asus', 'Padfone 2', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-PadFone 2.xml' => [ 'Asus', 'Padfone 2', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-ASUS-T008.xml' => [ 'Asus', 'Padfone E', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-A80.xml' => [ 'Asus', 'Padfone Infinity', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-A86.xml' => [ 'Asus', 'Padfone Infinity', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ASUS-A86.xml' => [ 'Asus', 'Padfone Infinity', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-ASUS-T00C.xml' => [ 'Asus', 'Padfone Mini', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ASUS_T00E.xml' => [ 'Asus', 'Padfone Mini', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-PF451CL.xml' => [ 'Asus', 'Padfone Mini', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-A91.xml' => [ 'Asus', 'Padfone X', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-PF500KL.xml' => [ 'Asus', 'Padfone X', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS_T00N.xml' => [ 'Asus', 'Padfone X', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-PF450CL.xml' => [ 'Asus', 'Padfone X Mini', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-TX201LA.xml' => [ 'Asus', 'Transformer Book Trio', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-TF300TG.xml' => [ 'Asus', 'Transformer Pad 300', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-TF300TL.xml' => [ 'Asus', 'Transformer Pad 300', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-K00C.xml' => [ 'Asus', 'Transformer Pad Infinity', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-TF700KL-1.0.xml' => [ 'Asus', 'Transformer Pad Infinity 700', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-TF700KL.xml' => [ 'Asus', 'Transformer Pad Infinity 700', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-V75_UAProf.xml' => [ 'Asus', 'V75', null, DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ZE500CL.xml' => [ 'Asus', 'ZenFone 2', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ZE550ML.xml' => [ 'Asus', 'ZenFone 2', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ZE551ML.xml' => [ 'Asus', 'ZenFone 2', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ZE500KG.xml' => [ 'Asus', 'ZenFone 2 Laser', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ZE500KL.xml' => [ 'Asus', 'ZenFone 2 Laser', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ZE550KL.xml' => [ 'Asus', 'ZenFone 2 Laser', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ASUS_T00I.xml' => [ 'Asus', 'ZenFone 4', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/AMAX-UAP.xml' => [ 'Asus', 'ZenFone 5', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-A500CG.xml' => [ 'Asus', 'ZenFone 5', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-A500KL.xml' => [ 'Asus', 'ZenFone 5', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ASUS_T00F.xml' => [ 'Asus', 'ZenFone 5', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ASUS_T00J.xml' => [ 'Asus', 'ZenFone 5', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-T00J.xml' => [ 'Asus', 'ZenFone 5', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-A600CG.xml' => [ 'Asus', 'ZenFone 6', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ASUS_T00G.xml' => [ 'Asus', 'ZenFone 6', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ZC550KL.xml' => [ 'Asus', 'ZenFone Max', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-ZX551ML.xml' => [ 'Asus', 'ZenFone Zoom', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/ASUS-Z300CL.xml' => [ 'Asus', 'ZenPad 10', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-Z170C.xml' => [ 'Asus', 'ZenPad 7', 'Android', DeviceType::TABLET ], + 'http://uaprofile.asus.com/uaprof/ASUS-Z380KL.xml' => [ 'Asus', 'ZenPad 8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8652GPRS-ATT.xml' => [ 'AT&T', 'Fusion', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8652WCDMA-ATT.xml' => [ 'AT&T', 'Fusion', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/9020A.xml' => [ 'AT&T', 'Trek HD', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Y536A1.xml' => [ 'AT&T', 'Tribute', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Audiovox/CDM-8450SP/T060SP2T36.rdf' => [ 'Audiovox', 'CDM-8450', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Audiovox/CDM-8450SP/T060SP2T37.rdf' => [ 'Audiovox', 'CDM-8450', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/BMC_Audiovox_CDM-8450_P08.rdf' => [ 'Audiovox', 'CDM-8450', null, DeviceType::MOBILE ], + 'http://www.pocket.com/phone_data/CDM8615.xml' => [ 'Audiovox', 'CDM-8615', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/audiovox/cdm-8900.rdf' => [ 'Audiovox', 'CDM-8900', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/audiovox/8910/8910.xml' => [ 'Audiovox', 'CDM-8910', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Audiovox/CDM8912SP/T115SP0T13.rdf' => [ 'Audiovox', 'CDM-8912', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/audiovox/cdm-8920.rdf' => [ 'Audiovox', 'CDM-8920', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Audiovox/CDM9950SP/132037.rdf' => [ 'Audiovox', 'CDM-9950', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Audiovox/PM8920KIT/T120SP0T19.rdf' => [ 'Audiovox', 'PM-8920', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_Q_Maxi.xml' => [ 'Avea', 'inTouch 3 Large', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Avea_inTouch_4.xml' => [ 'Avea', 'inTouch 4', 'Android', DeviceType::TABLET ], + 'http://www.jeekomi.com/hw/Avvio489_WAP_BROWSER.xml' => [ 'Avvio', '489', 'Android', DeviceType::MOBILE ], + 'http://guardsys.museui.com/Avvio750_PEP_WAP_BROWSER.xml' => [ 'Avvio', '750', 'Android', DeviceType::MOBILE ], + 'http://guardsys.museui.com/Avvio750_WAP_BROWSER.xml' => [ 'Avvio', '750', 'Android', DeviceType::MOBILE ], + 'http://config.51coolpad.com/UAProfile/Brightstar/Avvio_L500.xml' => [ 'Avvio', 'L500', 'Android', DeviceType::MOBILE ], + 'http://www.axiooworld.com' => [ 'Axioo', 'Picopad', 'Android', DeviceType::TABLET ], + 'http://www.axiooworld.com/uaprof/uaprof_picopad.xml' => [ 'Axioo', 'Picopad', 'Android', DeviceType::TABLET ], + 'http://www.axiooworld.com/uaprof/uaprof_VIGO350.xml' => [ 'Axioo', 'Vigo 350', 'Android', DeviceType::MOBILE ], + 'http://www.axiooworld.com/uaprof/uaprof_VIGO410.xml' => [ 'Axioo', 'Vigo 410', 'Android', DeviceType::MOBILE ], + 'http://www.azumi-mobile.com/agenteprofile/equipos/Azumi_A35S.xml' => [ 'Azumi', 'A35s', 'Android', DeviceType::MOBILE ], + 'http://www.azumi-mobile.com/agenteprofile/equipos/Azumi_A40C.xml' => [ 'Azumi', 'A40c', 'Android', DeviceType::MOBILE ], + 'http://www.azumi-mobile.com/agenteprofile/equipos/Azumi_A50c.xml' => [ 'Azumi', 'A50c', 'Android', DeviceType::MOBILE ], + 'http://www.azumi-mobile.com/agenteprofile/equipos/Azumi_A50c+.xml' => [ 'Azumi', 'A50c+', 'Android', DeviceType::MOBILE ], + 'http://www.azumi-mobile.com/agenteprofile/equipos/Azumi_AT7.xml' => [ 'Azumi', 'AT7', 'Android', DeviceType::TABLET ], + 'http://www.azumi-mobile.com/agenteprofile/equipos/Azumi_KL32.xml' => [ 'Azumi', 'KL32', 'Android', DeviceType::MOBILE ], + 'http://www.azumi-mobile.com/agenteprofile/equipos/Azumi_LT50.xml' => [ 'Azumi', 'LT50', 'Android', DeviceType::MOBILE ], + 'http://343761.ctc-w228.dns.com.cn/UAProfile/EVE.xml' => [ 'b-mobile', 'EVE', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/BASE_Tab.xml' => [ 'BASE', 'Tab', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Beeline_E400.xml' => [ 'Beeline', 'E400', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Beeline_E600.xml' => [ 'Beeline', 'E600', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/BeelineM2_22.xml' => [ 'Beeline', 'M2', 'Android', DeviceType::MOBILE ], + 'http://staticfiles.technoserv.com/uap/BG1_TS.xml' => [ 'Beeline', 'Pro 2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Beeline_Smart2.xml' => [ 'Beeline', 'Smart2', 'Android', DeviceType::MOBILE ], + 'http://staticfiles.technoserv.com/uap/Beeline_Smart_3.xml' => [ 'Beeline', 'Smart3', 'Android', DeviceType::MOBILE ], + 'http://tehnoligadevice.ru/uap/Beeline_Smart_4.xml' => [ 'Beeline', 'Smart4', 'Android', DeviceType::MOBILE ], + 'http://staticfiles.technoserv.com/uap/BEE703G02.xml' => [ 'Beeline', 'Tab', 'Android', DeviceType::TABLET ], + 'http://senseit.ru/UAProfile/beelinetab2.xml' => [ 'Beeline', 'Tab 2', 'Android', DeviceType::TABLET ], + 'http://www.bellwave.co.uk/uaprof/Neo100.xml' => [ 'Bellwave', 'Neo100', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/portal/UAProf/UAP.aspx?device=C11C&v=11' => [ 'BenQ', 'C11C', null, DeviceType::MOBILE ], + 'http://uap.benq.com/mb_c30/benq_c30_v1.xml' => [ 'BenQ', 'C30', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/portal/UAProf/UAP.aspx?DeviceID=ELC1&v=36' => [ 'BenQ', 'ELC1', null, DeviceType::MOBILE ], + 'http://market.benqmobile.com/portal/UAProf/UAP.aspx?DeviceID=ELC1&v=36' => [ 'BenQ', 'ELC1', null, DeviceType::MOBILE ], + 'http://dpg.openwave.com/downloadfun/29756742/Vulcan.xml' => [ 'BenQ', 'Vulcan', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/portal/UAProf/UAP.aspx?DeviceID=EF81' => [ 'BenQ-Siemens', 'EF81', null, DeviceType::MOBILE ], + 'http://uap.benq.com/mb_ef91/benq_ef91_3g.xml' => [ 'BenQ-Siemens', 'EF91', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/portal/UAProf/UAP.aspx?device=S68' => [ 'BenQ-Siemens', 'S68', null, DeviceType::MOBILE ], + 'http://uap.benq.com/mb_s81/benq_s81_v1.xml' => [ 'BenQ-Siemens', 'S81', null, DeviceType::MOBILE ], + 'http://uap.benq.com/mb_s82/benq_S82_voda_2g.xml' => [ 'BenQ-Siemens', 'S82', null, DeviceType::MOBILE ], + 'http://uap.benq.com/mb_s88/benq_s88_v3_300k.xml' => [ 'BenQ-Siemens', 'S88', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/BGH_Joy_Smart_A7G.xml' => [ 'BGH', 'Joy Smart A7G', 'Android', DeviceType::MOBILE ], + 'http://www.bbk.com/uaprof/BBKV205.xml' => [ 'BKK', 'V205', null, DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/ADVANCE_3.5.XML' => [ 'BLU', 'Advance 3.5', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/ADVANCE4.0.xml' => [ 'BLU', 'Advance 4.0', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/ADVANCE_4.0.XML' => [ 'BLU', 'Advance 4.0', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/Advance 4.0 L.xml' => [ 'BLU', 'Advance 4.0 L', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_U_V856_V3.xml' => [ 'BLU', 'Dash', 'Android', DeviceType::MOBILE ], + 'http://ctmexico.com.mx/UA_DASH.xml' => [ 'BLU', 'Dash 3.5', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/DASH_3.5.XML' => [ 'BLU', 'Dash 3.5', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/DASH_3.5_II.xml' => [ 'BLU', 'Dash 3.5 II', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/DASH_4.0.XML' => [ 'BLU', 'Dash 4.0', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/Dash4.0Ce.xml' => [ 'BLU', 'Dash 4.0 CE', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/dash_4.5.XML' => [ 'BLU', 'Dash 4.5', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/DASH_5.0.XML' => [ 'BLU', 'Dash 5.0', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/DASH5.5.xml' => [ 'BLU', 'Dash 5.5', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/DASH_C_MUSIC_D390u.xml' => [ 'BLU', 'Dash C Music', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/BLU_D140_UAP.xml' => [ 'BLU', 'Dash Jr', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/dashjr.4.0.xml' => [ 'BLU', 'Dash Jr 4.0', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/DASH_JR_K.XML' => [ 'BLU', 'Dash Jr K', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/DASH_MUSIC_4.0.XML' => [ 'BLU', 'Dash Music 4.0', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/Dash music 4.5.xml' => [ 'Blu', 'Dash Music 4.5', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/DASHMUSICII.xml' => [ 'BLU', 'Dash Music II', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/LIFE8.xml' => [ 'BLU', 'Life 8', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/LifeOne.xml' => [ 'BLU', 'Life One', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/Life_One_M.xml' => [ 'BLU', 'Life One M', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/LIFE ONE X.XML' => [ 'BLU', 'Life One X', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/LIFE PLAY.XML' => [ 'BLU', 'Life Play', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/LIFE_PLAY_MINI.xml' => [ 'BLU', 'Life Play Mini', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/LIFE_PLAY_S.xml' => [ 'BLU', 'Life Play S', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/LifeView.xml' => [ 'BLU', 'Life View', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/ADVANCE_JR.xml' => [ 'Blu', 'Neo 3.5', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/Neo_3.5.xml' => [ 'BLU', 'Neo 3.5', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/STUDIO5.0.xml' => [ 'BLU', 'Studio 5.0', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/STUDIO5.0_2.xml' => [ 'BLU', 'Studio 5.0 II', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/Tank4.5.XML' => [ 'BLU', 'Studio 5.0c HD', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/LIFEPLAY.xml' => [ 'BLU', 'Studio 5.0ce', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/studio5.0e.xml' => [ 'BLU', 'Studio 5.0e', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/STUDIO_5.0K.xml' => [ 'BLU', 'Studio 5.0k', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/ STUDIO5.0SII.XML' => [ 'BLU', 'Studio 5.0s II', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/STUDIO5.5S.xml' => [ 'BLU', 'Studio 5.5s', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/STUDIO_C.XML' => [ 'BLU', 'Studio C', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/STUDIO_G.xml' => [ 'BLU', 'Studio G', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/STUDIO5.0S_HD.xml' => [ 'BLU', 'Studio X', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/STUDIO_X.xml' => [ 'BLU', 'Studio X', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/BLU_STUDIO_X_PLUS.xml' => [ 'BLU', 'Studio X Plus', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/Studio_X_Plus.xml' => [ 'BLU', 'Studio X Plus', 'Android', DeviceType::MOBILE ], + 'http://www.bluhelp.com/upload/xmlfiles/Touchbook_7.0_3G.xml' => [ 'BLU', 'Touch Book 7.0', 'Android', DeviceType::TABLET ], + 'http://www.bmobile.eu.com/uaprofile/Bmobile_AX1020.xml' => [ 'Bmobile', 'AX1020', 'Android', DeviceType::MOBILE ], + 'http://www.bmobile.eu.com/uaprofile/Bmobile_AX1030.xml' => [ 'Bmobile', 'AX1030', 'Android', DeviceType::MOBILE ], + 'http://www.bmobile.eu.com/uaprofile/Bmobile_AX1060.xml' => [ 'Bmobile', 'AX1060', 'Android', DeviceType::MOBILE ], + 'http://www.bmobile.eu.com/uaprofile/Bmobile_AX1065.xml' => [ 'Bmobile', 'AX1065', 'Android', DeviceType::MOBILE ], + 'http://bmobile.eu.com/uaprofile/UAProfile_BmobileAX512.xml' => [ 'Bmobile', 'AX512', 'Android', DeviceType::MOBILE ], + 'http://www.bmobile.eu.com/uaprofile/UAProfile_BmobileAX512.xml' => [ 'Bmobile', 'AX512', 'Android', DeviceType::MOBILE ], + 'http://www.bmobile.eu.com/uaprofile/Bmobile_AX570.xml' => [ 'Bmobile', 'AX570', 'Android', DeviceType::MOBILE ], + 'http://www.bmobile.eu.com/uaprofile/Bmobile_AX600.xml' => [ 'Bmobile', 'AX600', 'Android', DeviceType::MOBILE ], + 'http://www.bmobile.eu.com/uaprofile/UAProfile_BmobileAX600.xml' => [ 'Bmobile', 'AX600', 'Android', DeviceType::MOBILE ], + 'http://www.bmobile.eu.com/uaprofile/UAProfile_BmobileAX620.xml' => [ 'Bmobile', 'AX620', 'Android', DeviceType::MOBILE ], + 'http://www.bmobile.eu.com/uaprofile/Bmobile_AX670.xml' => [ 'Bmobile', 'AX670', 'Android', DeviceType::MOBILE ], + 'http://www.bmobile.eu.com/uaprofile/Bmobile_AX680.xml' => [ 'Bmobile', 'AX680', 'Android', DeviceType::MOBILE ], + 'http://www.bmobile.eu.com/uaprofile/BmobileAX745.xml' => [ 'Bmobile', 'AX745', 'Android', DeviceType::MOBILE ], + 'http://www.bmobile.eu.com/uaprofile/Bmobile_AX810.xml' => [ 'Bmobile', 'AX810', 'Android', DeviceType::MOBILE ], + 'http://www.bmobile.eu.com/uaprofile/UAprofile_BmobileQW125.xml' => [ 'Bmobile', 'QW125', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Bouygues Telecom Bs 351.xml' => [ 'Bouygues', 'Bs 351', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Bouygues_Telecom_Bs_402.xml' => [ 'Bouygues', 'Bs 402', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/BS471.xml' => [ 'Bouygues', 'Bs 471', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Bouygues_Telecom_Ultym_5_2.xml' => [ 'Bouygues', 'Ultym 5.2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Bouygues_Telecom_Ultym_5L.xml' => [ 'Bouygues', 'Ultym 5L', 'Android', DeviceType::MOBILE ], + 'http://files.bq.com/uaprof/bq_aquaris_45_JB.xml' => [ 'bq', 'Aquaris', 'Android', DeviceType::MOBILE ], + 'http://files.bq.com/uaprof/bq_aquaris_E45_KK.xml' => [ 'bq', 'Aquaris E4.5', 'Android', DeviceType::MOBILE ], + 'http://files.bq.com/uaprof/bq_aquaris_5lte_KK.xml' => [ 'bq', 'Aquaris E5', 'Android', DeviceType::MOBILE ], + 'http://files.bq.com/uaprof/bq_aquaris_E5_FHD_KK.xml' => [ 'bq', 'Aquaris E5 FHD', 'Android', DeviceType::MOBILE ], + 'http://files.bq.com/uaprof/bq_aquaris_E5_HD_KK.xml' => [ 'bq', 'Aquaris E5 HD', 'Android', DeviceType::MOBILE ], + 'http://files.bq.com/uaprof/fnac_aquaris_E5_HD_KK.xml' => [ 'bq', 'Aquaris E5 HD', 'Android', DeviceType::MOBILE ], + 'http://files.bq.com/uaprof/bq_aquaris_E6_KK.xml' => [ 'bq', 'Aquaris E6', 'Android', DeviceType::MOBILE ], + 'http://files.bq.com/uaprof/bq_edison_3_KK.xml' => [ 'bq', 'Edison 3', 'Android', DeviceType::TABLET ], + 'http://uaprof.vtext.com/pcd/c771/c771.xml' => [ 'Casio', 'Gz\'One Commando', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/vzw/vzw.xml' => [ 'Casio', 'Gz\'One Commando 811', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/vietnam/vietnam.xml' => [ 'Casio', 'GzOne CA201', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/c811/c811.xml' => [ 'Casio', 'GzOne Commando 811', 'Android', DeviceType::MOBILE ], + 'http://www.catphones.com/uaprof/Cat_B10-2_UAprofile.xml' => [ 'Cat', 'B15', 'Android', DeviceType::MOBILE ], + 'http://www.catphones.com/uaprof/b15q.xml' => [ 'CAT', 'B15Q', 'Android', DeviceType::MOBILE ], + 'http://www.catphones.com/uaprof/s50.xml' => [ 'CAT', 'S50', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/celkon/A95Pro.xml' => [ 'Celkon', 'A95 Pro', 'Android', DeviceType::MOBILE ], + 'http://uap.cellon.com/M8050QM.xml' => [ 'Celkon', 'S1', 'Android', DeviceType::MOBILE ], + 'http://uap.cellon.com/C1038.xml' => [ 'Cellon', 'C1038', null, DeviceType::MOBILE ], + 'http://uap.cellon.com/C2573.xml' => [ 'Cellon', 'C2573', null, DeviceType::MOBILE ], + 'http://uap.cellon.com/C8660.xml' => [ 'Cellon', 'C8660', 'Android', DeviceType::MOBILE ], + 'http://uap.cellon.com/UAP/C8660.xml' => [ 'Cellon', 'C8660', 'Android', DeviceType::MOBILE ], + 'http://uap.cellon.com/M8047QM.xml' => [ 'Cellon', 'M8047QM', 'Android', DeviceType::MOBILE ], + 'http://uap.cellon.com/M8140PT.xml' => [ 'Cellon', 'M8140PT', 'Android', DeviceType::MOBILE ], + 'http://www.fih.com/uaprof/FIH000/UAProf_FIH000_Froyo.xml' => [ 'ChangHong', 'Z-me', 'Android', DeviceType::MOBILE ], + 'http://221.176.65.117/uaprof/CMDC_M601.xml' => [ 'China Mobile', 'M601', 'Android', DeviceType::TABLET ], + 'http://phone.hisense.com/khfw/rjxz/201306/P020130627360412430072.xml' => [ 'China Mobile', 'M701', 'Android', DeviceType::TABLET ], + 'http://221.176.65.117/uaprof/CMCC-M812.xml' => [ 'China Mobile Device', 'and M812', 'Android', DeviceType::MOBILE ], + 'http://221.176.65.117/uaprof/M821.xml' => [ 'China Mobile Device', 'and M821', 'Android', DeviceType::MOBILE ], + 'http://221.176.65.117/uaprof/M823.xml' => [ 'China Mobile Device', 'and M823', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/CHL/CHL-S800_1_20101228.xml' => [ 'CHL', 'S800', 'Android', DeviceType::MOBILE ], + 'http://www.commtiva.com/uaprof/HD700/UAProf_HD700_Gingerbread.xml' => [ 'Commtiva', 'HD700', 'Android', DeviceType::MOBILE ], + 'http://www.commtiva.com/uaprof/UAProf_Froyo.xml' => [ 'Commtiva', 'N700', 'Android', DeviceType::MOBILE ], + 'http://mms.openmobilepr.com/uaprof/Coolpad-3700A.xml' => [ 'Coolpad', '3700', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Coolpad/5560S/Coolpad-5560S-SP004.rdf' => [ 'Coolpad', '5560S', 'Android', DeviceType::MOBILE ], + 'http://www.cgmobile.com.cn/8810G_UAProfile.xml' => [ 'Coolpad', '8010', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.YuLong.com/uaprof/CoolPad8026-1.0.xml' => [ 'Coolpad', '8026', 'Android', DeviceType::MOBILE ], + 'http://ota.ragentek.com:8002/RgkOTA/UAprofile/Coolpad8122_UAprofile.xml' => [ 'Coolpad', '8122', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOCoolpad 8730L.xml' => [ 'Coolpad', '8730L', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.YuLong.com/uaprof/YuLong-CoolPad8809-1.0.xml' => [ 'CoolPad', '8809', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/YL/YL_Coolpad_E230_2_20100520.xml' => [ 'Coolpad', 'E230', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Coolpad/801ES/Coolpad-801ES-CP021.rdf' => [ 'Coolpad', 'Quattro II 4G', 'Android', DeviceType::MOBILE ], + 'http://www.azumi-mobile.com/agenteprofile/equipos/Azumi_A50.xml' => [ 'Cozco', 'C1 Plus', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOCUBOT ONE.xml' => [ 'Cubot', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOMC002.xml' => [ 'Dakele', 'MC002', 'Android', DeviceType::MOBILE ], + 'http://ftp.us.dell.com/Factor_Software_Updates/Grappa_UA_Profile.xml' => [ 'Dell', 'Grappa', 'Android', DeviceType::MOBILE ], + 'http://122.200.68.229/docs/mini3ix.xml' => [ 'Dell', 'Mini 3ix', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/XCD35.xml' => [ 'Dell', 'XCD35', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/DL800.xml' => [ 'Digicel', 'DL800', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Juno-1.0.xml' => [ 'Dopod', 'C750', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Tachi-1.0.xml' => [ 'Dopod', 'T5399', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Qilin-1.0.xml' => [ 'Dopod', 'T8388', 'Windows Mobile', DeviceType::MOBILE ], + 'http://ua.doro.com/ua/Doro810_UAProfile.xml' => [ 'Doro', 'Liberto 810', 'Android', DeviceType::MOBILE ], + 'http://ua.doro.com/ua/Doro820_UAProfile.xml' => [ 'Doro', 'Liberto 820', 'Android', DeviceType::MOBILE ], + 'http://www.elitemodellookmobile.com/uaprof/eml2.xml' => [ 'Elite Model Look', 'EML2', null, DeviceType::MOBILE ], + 'http://mobileinternet.ericsson.com/UAprof/R380e.xml' => [ 'Ericsson', 'R380', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/R520.xml' => [ 'Ericsson', 'R520', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/R600.xml' => [ 'Ericsson', 'R600', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T39.xml' => [ 'Ericsson', 'T39', null, DeviceType::MOBILE ], + 'http://mobileinternet.ericsson.com/UAprof/T60d.xml' => [ 'Ericsson', 'T60', null, DeviceType::MOBILE ], + 'http://mobileinternet.ericsson.com/UAprof/T65.xml' => [ 'Ericsson', 'T65', null, DeviceType::MOBILE ], + 'http://mobileinternet.ericsson.com/UAprof/T68R1.xml' => [ 'Ericsson', 'T68', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T68R201.xml' => [ 'Ericsson', 'T68', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T68R301.xml' => [ 'Ericsson', 'T68', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T68R401.xml' => [ 'Ericsson', 'T68', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T68R402.xml' => [ 'Ericsson', 'T68', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T68R501.xml' => [ 'Ericsson', 'T68', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T68R502.xml' => [ 'Ericsson', 'T68', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T68R503.xml' => [ 'Ericsson', 'T68', null, DeviceType::MOBILE ], + 'http://www.ztemt.com/mobile/uaprof/V6500_Etisalat_EG.xml' => [ 'Etisalat', 'Smartphone', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/BenQ-A3c.xml' => [ 'Ezcast', 'Dongle', 'Android', ], + 'http://www.c2dms.com/UAProfile/N26/FarEastone_Smart501.xml' => [ 'Fareastone', 'Smart 501', 'Android', DeviceType::MOBILE ], + 'http://www.wizdevice.com/support/rise/uaprof.xml' => [ 'Fareastone', 'Smart 701', 'Android', DeviceType::TABLET ], + 'http://211.42.201.70/ua_profile/FLY-2040i.xml' => [ 'Fly', '2040', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/FLY-2040L.xml' => [ 'Fly', '2040', null, DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_E154.xml' => [ 'Fly', 'E154', 'MTK', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_E190.xml' => [ 'Fly', 'E190', 'MTK', DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/Fly-E300.xml' => [ 'Fly', 'E300', null, DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Flylife_Connect_7_3G.xml' => [ 'Fly', 'Flylife Connect 7 3G', 'Android', DeviceType::TABLET ], + 'http://www.fly-phone.ru/UAP/Flylife_Connect_7.85_3G_2.xml' => [ 'Fly', 'Flylife Connect 7.85 3G 2', 'Android', DeviceType::TABLET ], + 'http://www.fly-phone.ru/UAP/Flylife_Connect_7.85_3G_Slim.xml' => [ 'Fly', 'Flylife Connect 7.85 3G Slim', 'Android', DeviceType::TABLET ], + 'http://www.fly-phone.ru/UAP/Fly_FS403.xml' => [ 'Fly', 'FS403 Cumulus 1', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ237.xml' => [ 'Fly', 'IQ237 Dynamic', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ238.xml' => [ 'Fly', 'IQ238 Jazz', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ246.xml' => [ 'Fly', 'IQ246 Power', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ430.xml' => [ 'Fly', 'IQ430 Evoke', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ431.xml' => [ 'Fly', 'IQ431 Glory', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ432.xml' => [ 'Fly', 'IQ432 Era Nano 1', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ434.xml' => [ 'Fly', 'IQ434 Era Nano 5', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ436.xml' => [ 'Fly', 'IQ434 Era Nano 9', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_EVO_Chic_1.xml' => [ 'Fly', 'IQ440 Energie', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ440.xml' => [ 'Fly', 'IQ440 Energie', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4403.xml' => [ 'Fly', 'IQ440 Energie', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4404.xml' => [ 'Fly', 'IQ440 Energie', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4407.xml' => [ 'Fly', 'IQ440 Energie', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4409_Quad.xml' => [ 'Fly', 'IQ440 Energie', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4405_Quad.xml' => [ 'Fly', 'IQ4405 Evo Chic', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4410_Quad.xml' => [ 'Fly', 'IQ441 Radiance', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4411_Quad.xml' => [ 'Fly', 'IQ441 Radiance', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4412_Quad.xml' => [ 'Fly', 'IQ441 Radiance', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4414_Quad.xml' => [ 'Fly', 'IQ441 Radiance', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4415_Ouad.xml' => [ 'Fly', 'IQ441 Radiance', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4416.xml' => [ 'Fly', 'IQ441 Radiance', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4410i.xml' => [ 'Fly', 'IQ4410i Phoenix 2', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4413_Quad.xml' => [ 'Fly', 'IQ4413 Evo Chic 3', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ442.xml' => [ 'Fly', 'IQ442 Miracle', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ443.xml' => [ 'Fly', 'IQ443 Trend', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ444.xml' => [ 'Fly', 'IQ444 Diamond', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ444_Quattro.xml' => [ 'Fly', 'IQ444 Diamond', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ445.xml' => [ 'Fly', 'IQ445 Genius', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ446.xml' => [ 'Fly', 'IQ446 Magic', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ447.xml' => [ 'Fly', 'IQ447 Era Life 1', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ449.xml' => [ 'Fly', 'IQ449 Pronto', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4490.xml' => [ 'Fly', 'IQ449 Pronto', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4491_Quad.xml' => [ 'Fly', 'IQ449 Pronto', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4503_Quad.xml' => [ 'Fly', 'IQ450 Horizon', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ450_Quattro.xml' => [ 'Fly', 'IQ450 Horizon', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ451.xml' => [ 'Fly', 'IQ451 Vista', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4511_Octa.xml' => [ 'Fly', 'IQ451 Vista', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4514_Quad.xml' => [ 'Fly', 'IQ451 Vista', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4515_Quad.xml' => [ 'Fly', 'IQ451 Vista', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOIQ451.xml' => [ 'Fly', 'IQ451 Vista', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4512_Quad.xml' => [ 'Fly', 'IQ4512 Evo Chic 4', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4516_Octa.xml' => [ 'Fly', 'IQ4516 Tornado Slim', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ452_Quad.xml' => [ 'Fly', 'IQ452 Ego Vision 1', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ453_Quad.xml' => [ 'Fly', 'IQ453 Luminor', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ454.xml' => [ 'Fly', 'IQ454 Evo Tech 1', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ455_Octa.xml' => [ 'Fly', 'IQ455 Ego Art 1', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ458_Quad.xml' => [ 'Fly', 'IQ458 Quad', 'Android', DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/Fly-LX610.xml' => [ 'Fly', 'LX610', null, DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_MC100.xml' => [ 'Fly', 'MC100', null, DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_MC110.xml' => [ 'Fly', 'MC110', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/FLY-MX200i.xml' => [ 'Fly', 'MX200', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/FLY-MX230.xml' => [ 'Fly', 'MX230', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/FLY-MX300.xml' => [ 'Fly', 'MX300', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/FLY-MX330.xml' => [ 'Fly', 'MX330', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/FLY-SL300m.xml' => [ 'Fly', 'SL300', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/Fly-SL399E.xml' => [ 'Fly', 'SL399', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/SL500i.xml' => [ 'Fly', 'SL500i', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/SL500m.xml' => [ 'Fly', 'SL500m', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/SL600.xml' => [ 'Fly', 'SL600', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/Fly-SLT100.xml' => [ 'Fly', 'SLT100', null, DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_SX200.xml' => [ 'Fly', 'SX200', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/FLY-SX210.xml' => [ 'Fly', 'SX210', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/FLY-SX300.xml' => [ 'Fly', 'SX300', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/FLY-SX305.xml' => [ 'Fly', 'SX305', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/FLY-SX310.xml' => [ 'Fly', 'SX310', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/FLY-SX390.xml' => [ 'Fly', 'SX390', null, DeviceType::MOBILE ], + 'http://218.249.89.125/UAprof/FLY-V120.xml' => [ 'Fly', 'V120', null, DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_X3.xml' => [ 'Fly', 'X3', null, DeviceType::MOBILE ], + 'http://spf.fmworld.net/fujitsu/c/data/UAProf/STYLISTIC/S01.xml' => [ 'Fujitsu', 'STYLISTIC S01', 'Android', DeviceType::MOBILE ], + 'http://www.fujitsu-siemens.com/uaprof/PLT830.xml' => [ 'Fujitsu Siemens', 'Pocket LOOX T830', 'Windows Mobile', DeviceType::MOBILE ], + 'http://static.garmincdn.com/uaprof/A10_1_0.xml' => [ 'Garmin-Asus', 'Nuvifone A10', 'Android', DeviceType::MOBILE ], + 'http://static.garmincdn.com/uaprof/A50_1_0.xml' => [ 'Garmin-Asus', 'Nuvifone A50', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/garmin-asus-Nuvifone-M10-1.0.xml' => [ 'Garmin-Asus', 'Nuvifone M10', 'Windows Mobile', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_TPA60W_Profile.xml' => [ 'Gateway', 'TPA60W', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/GM-FOXv100WCDMA.xml' => [ 'General Mobile', 'Fox', 'Android', DeviceType::MOBILE ], + 'http://eip2.gigabytecm.com/GIGABYTE-g-smart.xml' => [ 'Gigabyte', 'GSmart', null, DeviceType::MOBILE ], + 'http://eip2.gigabytecm.com/GSMART-G1310.xml' => [ 'Gigabyte', 'GSmart G1310', 'Android', DeviceType::MOBILE ], + 'http://eip2.gigabytecm.com/GSMART-G1315.xml' => [ 'Gigabyte', 'GSmart G1315', 'Android', DeviceType::MOBILE ], + 'http://eip2.gigabytecm.com/GSMART-G1317.xml' => [ 'Gigabyte', 'GSmart G1317', 'Android', DeviceType::MOBILE ], + 'http://eip2.gigabytecm.com/GIGABYTE-MS800.xml' => [ 'Gigabyte', 'GSmart MS800', null, DeviceType::MOBILE ], + 'http://eip2.gigabytecm.com/GIGABYTE-g-smart-vga.xml' => [ 'Gigabyte', 'GSmart T600', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-1GPRS-GM_Turkey.xml' => [ 'GM', 'Ultimate Slim', 'Android', DeviceType::MOBILE ], + 'http://mobile.haier.com/UAProf/uapA62.xml' => [ 'Haier', 'A62', null, DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOHT-I860.xml' => [ 'Haier', 'I860', 'Android', DeviceType::MOBILE ], + 'http://www.yeezonetech.com/wap/SMDK4x12_UAProfile.xml' => [ 'Haier', 'I928', 'Android', DeviceType::MOBILE ], + 'http://mobile.haier.com/UAProf/uapM1610.xml' => [ 'Haier', 'M1610', null, DeviceType::MOBILE ], + 'http://www.ehaier.com/download/mobile/uapHaier-HW-N86W.xml' => [ 'Haier', 'N86W', 'Android', DeviceType::MOBILE ], + 'http://www.ehaier.com/download/mobile/uapHaier-HW-N88W.xml' => [ 'Haier', 'N88W', 'Android', DeviceType::MOBILE ], + 'http://www.ehaier.com/download/mobile/uapHaier-HW-W718.xml' => [ 'Haier', 'N88W', 'Android', DeviceType::MOBILE ], + 'http://uaprof.uni-wise.com/uaprof/Haier/Haier-T10C.xml' => [ 'Haier', 'T10C', null, DeviceType::MOBILE ], + 'http://mobile.haier.com/UAProf/uapV7000.xml' => [ 'Haier', 'V7000', null, DeviceType::MOBILE ], + 'http://www.ehaier.com/download/mobile/uapHaier-HW-W716.xml' => [ 'Haier', 'W716', 'Android', DeviceType::MOBILE ], + 'http://cdn09.ehaier.com/download/mobile/uapHaier-W867.xml' => [ 'Haier', 'W867', 'Android', DeviceType::MOBILE ], + 'http://www.ehaier.com/download/mobile/uapHW-W910.xml' => [ 'Haier', 'W910', 'Android', DeviceType::MOBILE ], + 'http://mobile.haier.com/UAProf/uapZ3000.xml' => [ 'Haier', 'Z3000', null, DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOAlpha Ice.xml' => [ 'Highscreen', 'Alpha Ice', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOHIKe 868.xml' => [ 'HIKe', 'Z1 868', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201310/P020131012478952694173.xml' => [ 'Hisense', 'E360M', 'Android', DeviceType::MOBILE ], + 'http://www.hisensephone.com/Hisense_E51-M_ua_profile.xml' => [ 'Hisense', 'E51-M', 'Android', DeviceType::MOBILE ], + 'http://www.hisensephone.com/Hisense_F20T_ua_profile.xml' => [ 'Hisense', 'F20T', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201303/P020130307299783065342.xml' => [ 'Hisense', 'T820', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201208/P020120809608224982262.xml' => [ 'Hisense', 'T830', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201205/P020120521576380789573.xml' => [ 'Hisense', 'T860', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201301/P020130130568107298317.xml' => [ 'Hisense', 'T912', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201306/P020130626391746806303.xml' => [ 'Hisense', 'T928', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201301/P020130121342541959752.xml' => [ 'Hisense', 'T958', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201306/P020130626392019424761.xml' => [ 'Hisense', 'T959', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201309/P020130909487904900221.xml' => [ 'Hisense', 'T959', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201307/P020130710551710631695.xml' => [ 'Hisense', 'T959S', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201306/P020130626585426555510.xml' => [ 'Hisense', 'T968', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201304/P020130425502003281721.xml' => [ 'Hisense', 'T970', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201308/P020130805555147328699.xml' => [ 'Hisense', 'T980', 'Android', DeviceType::MOBILE ], + 'http://phone.hisense.com/khfw/rjxz/201405/P020140505487949781524.xml' => [ 'Hisense', 'U939', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Hitachi/SH-P300/S2A31.rdf' => [ 'Hitachi', 'SH-P300', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Hitachi/SH-P300/S2A33.rdf' => [ 'Hitachi', 'SH-P300', null, DeviceType::MOBILE ], + 'http://www.hp.com/ipaqcarrier/hpipaq510v10.xml' => [ 'HP', 'iPAQ 510', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.hp.com/ipaqcarrier/hpipaq610v10.xml' => [ 'HP', 'iPAQ 610', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.hp.com/ipaqcarrier/hpipaq910v10.xml' => [ 'HP', 'iPAQ 910', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.hp.com/ipaqcarrier/HPiPAQDataMessenger10.xml' => [ 'HP', 'iPAQ Data Messenger', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.hp.com/ipaqcarrier/hpipaqhw692xv10.xml' => [ 'HP', 'iPAQ hw6920', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.hp.com/ipaqcarrier/hpipaqrw6815v10.xml' => [ 'HP', 'iPAQ rw6815', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.hp.com/ipaqcarrier/HPiPAQVoiceMessenger10.xml' => [ 'HP', 'iPAQ Voice Messenger', 'Windows Mobile', DeviceType::MOBILE ], + 'http://js.redirect.hp.com/jumpstation?bd=all&c=none&locale=ww_ww&pf=all&s=hp_linkplus_uaprofile&tp=mobility'=> [ 'HP', 'Slate 10 Plus', 'Android', DeviceType::TABLET ], + 'http://js.redirect.hp.com/jumpstation?bd=all&c=none&locale=ww_ww&pf=all&s=hp_vogue_uaprofile&tp=mobility'=> [ 'HP', 'Slate 8 Plus', 'Android', DeviceType::TABLET ], + 'http://www.htcmms.com.tw/gen/Strk-1.0.xml' => [ 'HTC', '3100', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/SongShan/ua-profile.xml' => [ 'HTC', 'A3360', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Tianshan/ua-profile.xml' => [ 'HTC', 'A3380', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Athena-1.0.xml' => [ 'HTC', 'Advantage X7500', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/HTC_Amaze_4G/ua-profile.xml' => [ 'HTC', 'Amaze 4G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PH85/ua-profile.xml' => [ 'HTC', 'Amaze 4G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PH851/ua-profile.xml' => [ 'HTC', 'Amaze 4G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telus/Ruby/ua-profile.xml' => [ 'HTC', 'Amaze 4G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Videotron/Ruby/ua-profile.xml' => [ 'HTC', 'Amaze 4G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/apache-2.0.xml' => [ 'HTC', 'Apache', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Aria/ua-profile.xml' => [ 'HTC', 'Aria', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Liberty/A6366-1.0.xml' => [ 'HTC', 'Aria', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/eMobile/Liberty/ua-profile.xml' => [ 'HTC', 'Aria', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PM651/ua-profile.xml' => [ 'HTC', 'au Infobar A02', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/beacon-1.0.xml' => [ 'HTC', 'Beacon', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/RLyrImabWh/ua-profile.xml' => [ 'HTC', 'Butterfly 2', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_909d_1_20130601.XML' => [ 'HTC', 'Butterfly S', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_909d_2_20130801.XML' => [ 'HTC', 'Butterfly S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO68/ua-profile.xml' => [ 'HTC', 'Butterfly S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO681/ua-profile.xml' => [ 'HTC', 'Butterfly S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO682/ua-profile.xml' => [ 'HTC', 'Butterfly S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO684/ua-profile.xml' => [ 'HTC', 'Butterfly S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO685/ua-profile.xml' => [ 'HTC', 'Butterfly S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/ChaChaCha/ua-profile.xml' => [ 'HTC', 'ChaCha', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/HTC_ChaCha_A810e/ua-profile.xml' => [ 'HTC', 'ChaCha', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PH06/ua-profile.xml' => [ 'HTC', 'ChaCha', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/ChaChaCha/ua-profile.xml' => [ 'HTC', 'ChaCha', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/PH06/ua-profile.xml' => [ 'HTC', 'ChaCha', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PD11/ua-profile.xml' => [ 'HTC', 'Cullinan', 'Android', DeviceType::MOBILE ], + 'http://mms.cellcom.com/uaprofs/cellcom_htc_DLX.xml' => [ 'HTC', 'Deluxe', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ACG/PL832/ua-profile_500K.xml' => [ 'HTC', 'Deluxe', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Bravo/HTC_Desire.xml' => [ 'HTC', 'Desire', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Bravo/HTC_Desire_A8181.xml' => [ 'HTC', 'Desire', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Desire/ua-profile.xml' => [ 'HTC', 'Desire', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/eris/ua-profile.xml' => [ 'HTC', 'Desire', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Orange/Desire-profile.xml' => [ 'HTC', 'Desire', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/SBM/SBM_X06HT-1.0.xml' => [ 'HTC', 'Desire', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/Desire/ua-profile.xml' => [ 'HTC', 'Desire', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telus/Bravo/ua-profile.xml' => [ 'HTC', 'Desire', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/tmo/HTC_Desire-1.0.xml' => [ 'HTC', 'Desire', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO601/ua-profile.xml' => [ 'HTC', 'Desire 200', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/vHfmvk5H3n/ua-profile.xml' => [ 'HTC', 'Desire 210', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/4WaXiSSfCP/ua-profile.xml' => [ 'HTC', 'Desire 300', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/4WaXiSSfCP/ua-profile.xml' => [ 'HTC', 'Desire 300', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/AIO/nhYHJ3dbMv/ua-profile.xml' => [ 'HTC', 'Desire 310', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/l9kfHYvA01/ua-profile.xml' => [ 'HTC', 'Desire 310', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/nhYHJ3dbMv/ua-profile.xml' => [ 'HTC', 'Desire 310', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/vBSZ5hs37J/ua-profile.xml' => [ 'HTC', 'Desire 310', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/O2/l9kfHYvA01/ua-profile.xml' => [ 'HTC', 'Desire 310', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/l9kfHYvA01/ua-profile.xml' => [ 'HTC', 'Desire 310', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/l9kfHYvA01/ua-profile.xml' => [ 'HTC', 'Desire 310', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/l9kfHYvA01/ua-profile.xml' => [ 'HTC', 'Desire 310', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telcel/nhYHJ3dbMv/ua-profile.xml' => [ 'HTC', 'Desire 320', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TELUS/nhYHJ3dbMv/ua-profile.xml' => [ 'HTC', 'Desire 320', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/nhYHJ3dbMv/ua-profile.xml' => [ 'HTC', 'Desire 320', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/AMX/0P3Z11/ua-profile.xml' => [ 'HTC', 'Desire 500', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/0P3Z1/ua-profile.xml' => [ 'HTC', 'Desire 500', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/0P3Z11/ua-profile.xml' => [ 'HTC', 'Desire 500', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telcel/0P3Z1/ua-profile.xml' => [ 'HTC', 'Desire 500', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TIM/0P3Z11/ua-profile.xml' => [ 'HTC', 'Desire 500', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/0P3Z11/ua-profile.xml' => [ 'HTC', 'Desire 500', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/0P3Z11/ua-profile.xml' => [ 'HTC', 'Desire 500', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/0P3Z2/ua-profile.xml' => [ 'HTC', 'Desire 5088', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PCV1-2012071301/1476521.rdf' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PCV1-2012071301/1486522.rdf' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PCV1-BOOST/1426521.rdf' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PCV1-BOOST/1476521.rdf' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PCV1-BOOST/1486522.rdf' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PCV1-BOOST/1496523.rdf' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PCV1-Chameleon/1486522.rdf' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PCV1-SPRINT/1426521.rdf' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PCV1-SPRPRE/1486522.rdf' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PCV1-VIRGIN/1426521.rdf' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PCV1-VIRGIN/1476521.rdf' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PCV1-VIRGIN/1486522.rdf' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PCV1-VIRGIN/1496523.rdf' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ATT/7l3xFmWvDC/ua-profile.xml' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/BM/7l3xFmWvDC/ua-profile.xml' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/R183PSZ1oa/ua-profile.xml' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Cricket/EwxIAccCJC/ua-profile.xml' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telcel/7l3xFmWvDC/ua-profile.xml' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/R183PSZ1oa/ua-profile.xml' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telus/7l3xFmWvDC/ua-profile.xml' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/R183PSZ1oa/ua-profile.xml' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/R183PSZ1oa/ua-profile.xml' => [ 'HTC', 'Desire 510', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/hkQ3fFqw1h/ua-profile.xml' => [ 'HTC', 'Desire 526G+', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/hwX6V8P1Mn/ua-profile.xml' => [ 'HTC', 'Desire 526G+', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO49120/ua-profile.xml' => [ 'HTC', 'Desire 600', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO471/ua-profile.xml' => [ 'HTC', 'Desire 600c', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC0P4E1-VIRGIN/1106526.rdf' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC0P4E1-VIRGIN/1106529.rdf' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC0P4E1-VIRGIN/2156523.rdf' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://mms.ntwls.net/uaprofs/ua-profile_1M.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://uaprof.cccomm.csky.us/ua/ua-profile_500k.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ACG/PqjMKRKt4Z/ua-profile_1M.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ACG/PqjMKRKt4Z/ua-profile_500K.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/BM/CjnctPc6Sf/ua-profile.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/CBW/CjnctPc6Sf/ua-profile.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/CjnctPc6Sf/ua-profile.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/SLl2AjRgr3/ua-profile.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/CjnctPc6Sf/ua-profile.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Rogers/CjnctPc6Sf/ua-profile.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telus/CjnctPc6Sf/ua-profile.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TIM/CjnctPc6Sf/ua-profile.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Videotron/CjnctPc6Sf/ua-profile.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/WIND/CjnctPc6Sf/ua-profile.xml' => [ 'HTC', 'Desire 601', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO491/ua-profile.xml' => [ 'HTC', 'Desire 606w', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO481/ua-profile.xml' => [ 'HTC', 'Desire 608t', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_609d_1_20130501.XML' => [ 'HTC', 'Desire 609d', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ATT/GcDNB3aMvX/ua-profile.xml' => [ 'HTC', 'Desire 610', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/GcDNB3aMvX/ua-profile.xml' => [ 'HTC', 'Desire 610', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/HQEJRedmsG/ua-profile.xml' => [ 'HTC', 'Desire 610', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/HQEJRedmsG/ua-profile.xml' => [ 'HTC', 'Desire 610', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/HQEJRedmsG/ua-profile.xml' => [ 'HTC', 'Desire 610', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/HQEJRedmsG/ua-profile.xml' => [ 'HTC', 'Desire 610', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/HQEJRedmsG/ua-profile.xml' => [ 'HTC', 'Desire 610', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/gwLkpXJlS0/ua-profile.xml' => [ 'HTC', 'Desire 616', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/LC7XQ0af2u/ua-profile.xml' => [ 'HTC', 'Desire 616', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_619d_1_20130815.XML' => [ 'HTC', 'Desire 619d', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/e1NGCirnFB/ua-profile.xml' => [ 'HTC', 'Desire 620', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/e1NGCirnFB/ua-profile.xml' => [ 'HTC', 'Desire 620', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/e1NGCirnFB/ua-profile.xml' => [ 'HTC', 'Desire 620', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/rdV77sS2Jt/ua-profile.xml' => [ 'HTC', 'Desire 620G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/jpsQ9TJbx4/ua-profile.xml' => [ 'HTC', 'Desire 626', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/RT7rIequXv/ua-profile.xml' => [ 'HTC', 'Desire 626', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/vas6Y725FU/ua-profile.xml' => [ 'HTC', 'Desire 626', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Europe/EKgo2FnRlG/ua-profile.xml' => [ 'HTC', 'Desire 626G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/EKgo2FnRlG/ua-profile.xml' => [ 'HTC', 'Desire 626G+', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PM92-BOOST/1246512.rdf' => [ 'HTC', 'Desire 626s', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PM92-VIRGIN/1246512.rdf' => [ 'HTC', 'Desire 626s', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/AMX/ASJJ0xGajy/ua-profile.xml' => [ 'HTC', 'Desire 626s', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/nn9cpSwLNa/ua-profile.xml' => [ 'HTC', 'Desire 7060', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/mmxr4Fc9EJ/ua-profile.xml' => [ 'HTC', 'Desire 7088', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/azxFLxeBCm/ua-profile.xml' => [ 'HTC', 'Desire 709d', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/710C-SPRPRE/2336525.rdf' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/710C-VIRGIN/1136521.rdf' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/710C-VIRGIN/1506523.rdf' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/710C-VIRGIN/2336522.rdf' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/710C-VIRGIN/2336525.rdf' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/710C-VIRGIN/InsertCoin 100.rdf' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/HTC_D816d.xml' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ACG/weCs1tpPUG/ua-profile_500K.xml' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/7QtMcMcyB2/ua-profile.xml' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/geUXhkfboO/ua-profile.xml' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/HRobRleNsO/ua-profile.xml' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/miKNCjjDHJ/ua-profile.xml' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/rLgUe79qmx/ua-profile.xml' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/rYMdtoVVAt/ua-profile.xml' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/yKVvh30qEM/ua-profile.xml' => [ 'HTC', 'Desire 816', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/j4yjajckun/ua-profile.xml' => [ 'HTC', 'Desire 816G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/pPB1MJUnqf/ua-profile.xml' => [ 'HTC', 'Desire 816G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/x7cG56PcBk/ua-profile.xml' => [ 'HTC', 'Desire 816G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Bouygues/GC0znJc20B/ua-profile.xml' => [ 'HTC', 'Desire 820', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/CMCC/B3BRtglhHJ/ua-profile.xml' => [ 'HTC', 'Desire 820', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/CMCC/rTlnYuch0E/ua-profile.xml' => [ 'HTC', 'Desire 820', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/8y4niiluZ7/ua-profile.xml' => [ 'HTC', 'Desire 820', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/B3BRtglhHJ/ua-profile.xml' => [ 'HTC', 'Desire 820', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/EjHarhDDvK/ua-profile.xml' => [ 'HTC', 'Desire 820', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/GC0znJc20B/ua-profile.xml' => [ 'HTC', 'Desire 820', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/rTlnYuch0E/ua-profile.xml' => [ 'HTC', 'Desire 820', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/wLkc0BX3An/ua-profile.xml' => [ 'HTC', 'Desire 820', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/GC0znJc20B/ua-profile.xml' => [ 'HTC', 'Desire 820', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/mJQD40NuOR/ua-profile.xml' => [ 'HTC', 'Desire 820G+', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/aXk2CNmBRo/ua-profile.xml' => [ 'HTC', 'Desire 826', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/c8HDMjoq7Q/ua-profile.xml' => [ 'HTC', 'Desire 826', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/L7YHOLHUJE/ua-profile.xml' => [ 'HTC', 'Desire 826', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/6G97EEWjge/ua-profile.xml' => [ 'HTC', 'Desire 828', 'Android', DeviceType::MOBILE ], + 'http://mms.mycricket.com/htc_h1000c.xml' => [ 'HTC', 'Desire C', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Bell/A320a/ua-profile.xml' => [ 'HTC', 'Desire C', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/L01/ua-profile.xml' => [ 'HTC', 'Desire C', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/L01/ua-profile.xml' => [ 'HTC', 'Desire C', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Rogers/A320a/ua-profile.xml' => [ 'HTC', 'Desire C', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/L01/ua-profile.xml' => [ 'HTC', 'Desire C', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TIM/L01/ua-profile.xml' => [ 'HTC', 'Desire C', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/L01/ua-profile.xml' => [ 'HTC', 'Desire C', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/L01/ua-profile.xml' => [ 'HTC', 'Desire C', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ATT/60qf87NvHb/ua-profile.xml' => [ 'HTC', 'Desire Eye', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/kuAD9zppzP/ua-profile.xml' => [ 'HTC', 'Desire Eye', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/R6vdFCdZmJ/ua-profile.xml' => [ 'HTC', 'Desire Eye', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/O2/R6vdFCdZmJ/ua-profile.xml' => [ 'HTC', 'Desire Eye', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/R6vdFCdZmJ/ua-profile.xml' => [ 'HTC', 'Desire Eye', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Ace/A9192-1.0.xml' => [ 'HTC', 'Desire HD', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/DesireHD/ua-profile.xml' => [ 'HTC', 'Desire HD', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/SBM/SBM_001HT-1.0.xml' => [ 'HTC', 'Desire HD', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telus/DesireHD/ua-profile.xml' => [ 'HTC', 'Desire HD', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/Ace/ua-profile.xml' => [ 'HTC', 'Desire HD', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PM6014/ua-profile.xml' => [ 'HTC', 'Desire L', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PM862/ua-profile.xml' => [ 'HTC', 'Desire P', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/DesireS/ua-profile.xml' => [ 'HTC', 'Desire S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PG88/ua-profile.xml' => [ 'HTC', 'Desire S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/S510b/ua-profile.xml' => [ 'HTC', 'Desire S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TME/DesireS/ua-profile.xml' => [ 'HTC', 'Desire S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/Saga/ua-profile.xml' => [ 'HTC', 'Desire S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PM861/ua-profile.xml' => [ 'HTC', 'Desire SV', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PL112DS/ua-profile.xml' => [ 'HTC', 'Desire U', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PL113/ua-profile.xml' => [ 'HTC', 'Desire U', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PL111/ua-profile.xml' => [ 'HTC', 'Desire V', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_T328d_1_20120301.XML' => [ 'HTC', 'Desire VC', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/HTC_Desire_VC_T328d.xml' => [ 'HTC', 'Desire VC', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PK781/ua-profile.xml' => [ 'HTC', 'Desire VC', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PK79/ua-profile.xml' => [ 'HTC', 'Desire VT', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Bouygues/PO73/ua-profile.xml' => [ 'HTC', 'Desire X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PM661/ua-profile.xml' => [ 'HTC', 'Desire X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PM661U/ua-profile.xml' => [ 'HTC', 'Desire X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO73/ua-profile.xml' => [ 'HTC', 'Desire X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/PO73/ua-profile.xml' => [ 'HTC', 'Desire X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/PO73/ua-profile.xml' => [ 'HTC', 'Desire X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Bell/Vision/ua-profile.xml' => [ 'HTC', 'Desire Z', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/DesireZ/ua-profile.xml' => [ 'HTC', 'Desire Z', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/DreamX/ua-profile-htc-dream-Orange.xml' => [ 'HTC', 'Dream', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/htc/htc6435lvw/htc6435lvw.xml' => [ 'HTC', 'Droid DNA', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/adr6435/adr6435.xml' => [ 'HTC', 'Droid DNA', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PL832/ua-profile.xml' => [ 'HTC', 'Droid DNA', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/adr62k/adr62k.xml' => [ 'HTC', 'Droid Eris', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/adr63k/adr63k.xml' => [ 'HTC', 'Droid Incredible', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/IncredibleC/ua-profile.xml' => [ 'HTC', 'Droid Incredible', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/adr6350/adr6350.xml' => [ 'HTC', 'Droid Incredible 2', 'Android', DeviceType::MOBILE ], + 'http://mms.openmobilepr.com/uaprof/fireball_1M.xml' => [ 'HTC', 'Droid Incredible 4G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO091/ua-profile.xml' => [ 'HTC', 'E1', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX325CKT/%CDMA_ROM_VERSION%.rdf' => [ 'HTC', 'EVO', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX325CKT/1106510.rdf' => [ 'HTC', 'EVO', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX325CKT/1136511.rdf' => [ 'HTC', 'EVO', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX325CKT/1226513.rdf' => [ 'HTC', 'EVO', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX325CKT/2136511.rdf' => [ 'HTC', 'EVO', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX325CKT/31565116.rdf' => [ 'HTC', 'EVO', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX325CKT/3166513.rdf' => [ 'HTC', 'EVO', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX325CKT/3176514.rdf' => [ 'HTC', 'EVO', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX325CKT/3176515.rdf' => [ 'HTC', 'EVO', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX325CKT/3176519.rdf' => [ 'HTC', 'EVO', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX325CKT/4036511.rdf' => [ 'HTC', 'EVO', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX325CKT/4136513.rdf' => [ 'HTC', 'EVO', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-Chameleon/4066514.rdf' => [ 'HTC', 'EVO', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX515CKT/1116512.rdf' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX515CKT/1116513.rdf' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX515CKT/1136517.rdf' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX515CKT/2086512.rdf' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX515CKT/2086513.rdf' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX515CKT/2176515.rdf' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX515CKT/2896512.rdf' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX515CKT/2956515.rdf' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APX515CKT/2956516.rdf' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_X515d_1_20110831.XML' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/HTC/X515C-VMUB/1.0/UAProf.xml' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PG863/ua-profile.xml' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/KDDI/ISW12HT/ua-profile.xml' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Rogers/PG863/ua-profile.xml' => [ 'HTC', 'EVO 3D', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/1326511.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/3266516.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/3296515.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/3306512.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/3306513.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/3706511.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/4126511.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/4226512.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/4246511.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/4536511.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/4546511.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/4676513.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/5076511.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/5076512.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA9292KT/5076516.rdf' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/KDDI/ISW11HT/ua-profile.xml' => [ 'HTC', 'EVO 4G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/KT/HTC_X515E/ua-profile.xml' => [ 'HTC', 'EVO 4G+', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APC715CKT/2126515.rdf' => [ 'HTC', 'EVO Design 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APC715CKT/2126518.rdf' => [ 'HTC', 'EVO Design 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APC715CKT/3146510.rdf' => [ 'HTC', 'EVO Design 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APC715CKT/4026512.rdf' => [ 'HTC', 'EVO Design 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC715ABB/1056533.rdf' => [ 'HTC', 'EVO Design 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC715ABB/1116530.rdf' => [ 'HTC', 'EVO Design 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC715ABB/1146530.rdf' => [ 'HTC', 'EVO Design 4G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PH441/ua-profile.xml' => [ 'HTC', 'EVO Design 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA7373KT/1176511.rdf' => [ 'HTC', 'EVO Shift 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA7373KT/2726512.rdf' => [ 'HTC', 'EVO Shift 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA7373KT/2766515.rdf' => [ 'HTC', 'EVO Shift 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA7373KT/2766516.rdf' => [ 'HTC', 'EVO Shift 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA7373KT/2776513.rdf' => [ 'HTC', 'EVO Shift 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA7373KT/2776518.rdf' => [ 'HTC', 'EVO Shift 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/ATP515CKIT/2236511.rdf' => [ 'HTC', 'EVO View 4G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PJ03/ua-profile.xml' => [ 'HTC', 'Explorer', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/adr6410/adr6410.xml' => [ 'HTC', 'Fireball', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ATT/PM331/ua-profile.xml' => [ 'HTC', 'First', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PG411/ua-profile.xml' => [ 'HTC', 'Flyer', 'Android', DeviceType::TABLET ], + 'http://www.htcmms.com.tw/Brew/Aqua/F5151-1.0.xml' => [ 'HTC', 'Freestyle', 'Brew', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/att/P4600-1.0.xml' => [ 'HTC', 'Fuze', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Gratia/ua-profile.xml' => [ 'HTC', 'Gratia', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/HTC_HD_mini_T5555-1.0.xml' => [ 'HTC', 'HD mini', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/HTC_HD2_T8585-1.0.xml' => [ 'HTC', 'HD2', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/HTC_HD2_T9193-1.0.xml' => [ 'HTC', 'HD2', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Leo-1.5.xml' => [ 'HTC', 'HD2', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/voda/HTC_HD2-1.0.xml' => [ 'HTC', 'HD2', 'Windows Mobile', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA6277KT/1566512.rdf' => [ 'HTC', 'Hero', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA6277KT/2276516.rdf' => [ 'HTC', 'Hero', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA6277KT/2316517.rdf' => [ 'HTC', 'Hero', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/APA6277KT/2326512.rdf' => [ 'HTC', 'Hero', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Hero/ua-profile.xml' => [ 'HTC', 'Hero', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telus/Hero/ua-profile.xml' => [ 'HTC', 'Hero', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ATT/PH39100/ua-profile.xml' => [ 'HTC', 'Holiday', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Alltel/Desire/ua-profile.xml' => [ 'HTC', 'HTC Desire', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_S710d_2_20110301.XML' => [ 'HTC', 'Incredible S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Bell/Vivo/ua-profile.xml' => [ 'HTC', 'Incredible S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PG32/ua-profile.xml' => [ 'HTC', 'Incredible S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/KT/HTC_S710E/ua-profile.xml' => [ 'HTC', 'Incredible S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PK071/ua-profile.xml' => [ 'HTC', 'J', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/KDDI/ISW13HT/ua-profile.xml' => [ 'HTC', 'J', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PL9911/ua-profile.xml' => [ 'HTC', 'J Butterfly', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PL993/ua-profile.xml' => [ 'HTC', 'J Butterfly', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/KDDI/HTL21/ua-profile.xml' => [ 'HTC', 'J Butterfly', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/2Q6jdXut9s/ua-profile.xml' => [ 'HTC', 'J Butterfly (HTL23)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/KDDI/HTL22/ua-profile.xml' => [ 'HTC', 'J One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Bell/Legend/ua-profile.xml' => [ 'HTC', 'Legend', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Legend/ua-profile.xml' => [ 'HTC', 'Legend', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/nTelos/Merge/ua-profile.xml' => [ 'HTC', 'Lexikon', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/love-1.0.xml' => [ 'HTC', 'Love', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/HTC_Magic/ua-profile.xml' => [ 'HTC', 'Magic', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/HTC_Magic/ua-profile_mr.xml' => [ 'HTC', 'Magic', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/tmo/Mail-1.0.xml' => [ 'HTC', 'Mail', null, DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/quartz-1.0.xml' => [ 'HTC', 'Max 4G', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Merge/ua-profile.xml' => [ 'HTC', 'Merge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/PPC6800/3566510.rdf' => [ 'HTC', 'Mogul', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Breeze-2.0.xml' => [ 'HTC', 'MTeoR', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/common/NexusOne/ua-profile.xml' => [ 'HTC', 'Nexus One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC0P3P7-Chameleon/3026515.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-11/3056516.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-2011011301/3046512.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-2011011301/6236516.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-Chameleon/12965110.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-Chameleon/1296517.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-Chameleon/1316512.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-Chameleon/3046512.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-Chameleon/3056516.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-Chameleon/4066519.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-Chameleon/5036513.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-Chameleon/5056512.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-Chameleon/6166512.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-Chameleon/62365110.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-Chameleon/6236516.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/12965110.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/1296517.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/1316512.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/3046512.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/3056515.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/3056516.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/4066514.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/4066519.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/42ONE Inverted ROM v12.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/5036513.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/5056512.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/6166512.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/62365110.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/6236516.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/6236517.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/Ava-OneV1//ALPHA1.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/Bad Boyz Sprint ONE M7 Lollipop v20.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/Bad Boyz Sprint ONE M7 Lollipop v30.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/Bad Boyz Sprint ONE Sense 6 v10.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/BSC Tranquil One RLS42.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/InsertCoin 711.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/RageOne CDMA v100.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/RageOne v151.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/Stock 12965110 Odex by -viperboy-.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/Stock w Goodies One 115.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/Stock w Goodies One 201.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/Stock.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/TrickDroid 551.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/ViperOne 350.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/ViperOne 701.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTCPN702-SPRINT/viperROM One v102.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/PN071/ua-SPRINT/ViperOne 800.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/PN071/ua-SPRINT/ViperOne 900.rdf' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://mms.cellcom.com/uaprofs/htc_M7_8M.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_802d_1_20130301.XML' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_One_1_20130301.XML' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://pix.cspire.com/UA/profile/htc/PN072/PN072.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/HTC_802d.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/htc/htc6500lvw/htc6500lvw.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ACG/PN072/ua-profile_1M.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/AMX/PN0711/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ATT/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/BM/801a/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/CBW/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/82ZtOKlRiO/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PN0711/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PN072/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PN07310/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PN077U/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PN078T/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PN078U/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PN078W/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/LRA/PN07310/ua-profile_500K.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Nextel/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/O2/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Rogers/801a/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telcel/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telus/801a/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TIM/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMOUS/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TNZ/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/WIND/PN071/ua-profile.xml' => [ 'HTC', 'One', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/2PQ93-SPRINT/1576511.rdf' => [ 'HTC', 'One (A9)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PAJ5-Chameleon/1116512.rdf' => [ 'HTC', 'One (E8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PAJ5-Chameleon/23265111.rdf' => [ 'HTC', 'One (E8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PAJ5-MVNO/2326517.rdf' => [ 'HTC', 'One (E8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PAJ5-SPRINT/1076511.rdf' => [ 'HTC', 'One (E8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PAJ5-SPRINT/1226511.rdf' => [ 'HTC', 'One (E8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PAJ5-SPRINT/23265111.rdf' => [ 'HTC', 'One (E8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PAJ5-SPRINT/2326517.rdf' => [ 'HTC', 'One (E8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/q5lv3bcp7D/ua-profile.xml' => [ 'HTC', 'One (E8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Uriwn0DyqH/ua-profile.xml' => [ 'HTC', 'One (E8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/zlxtuCDKgt/ua-profile.xml' => [ 'HTC', 'One (E8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/CMCC/mifaCnXW7o/ua-profile.xml' => [ 'HTC', 'One (E9)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/mifaCnXW7o/ua-profile.xml' => [ 'HTC', 'One (E9)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/mK8zhMmjOr/ua-profile.xml' => [ 'HTC', 'One (E9)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/CMCC/cIIxkEojnw/ua-profile.xml' => [ 'HTC', 'One (M8 Eye)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/cIIxkEojnw/ua-profile.xml' => [ 'HTC', 'One (M8 Eye)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/RIGWqFpTj2/ua-profile.xml' => [ 'HTC', 'One (M8 Eye)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-Chameleon/11265117.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-Chameleon/15465110.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-Chameleon/2166514.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-Chameleon/3306512.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-Chameleon/42065110.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-Chameleon/4209065110.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-Chameleon/42565114.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-Chameleon/42565118.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-Chameleon/6206513.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-MVNO/2166514.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-MVNO/42065110.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-MVNO/42565114.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/15465110.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/1546518.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/2166514.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/3306512.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/3316512.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/42065110.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/42565114.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/42565118.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/42565418.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/6206513.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/Bad Boyz Sprint ONE M8 Harman v21 ART.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/Bad Boyz Sprint ONE M8 L Sense 7 v10.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/Bad Boyz Sprint ONE M8 Lollipop v30.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/Bad Boyz Sprint ONE M8 Lollipop v32.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/InsertCoin 716.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/InsertCoin 719.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831C-SPRINT/ViperOneM8 430.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831CH-Chameleon/15465413.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831CH-Chameleon/42065410.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831CH-Chameleon/42565414.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/831CH-Chameleon/6206543.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/1546518.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/15465413.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/15465415.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/1546549.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/2166544.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/3306542.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/3316542.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/42065410.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/42565114.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/42565414.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/42565418.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/6206543.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/Bad Boyz Sprint ONE M8 L Sense 7 v10.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/Bad Boyz Sprint ONE M8 Lollipop v30.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/Bad Boyz Sprint ONE M8 Lollipop v32 HK.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/SkyDragon M8 v 100 Sprint Sense 7.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/SkyDragon M8 v 80 Sprint Sense 7.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/AP831CHK/ViperOneM8 430.rdf' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://mms.cellcom.com/uaprofs/htc_M8_8M.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/htc/htc6525lvw/htc6525lvw.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/AMX/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ATT/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/BM/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/0YC9TSsPzu/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/3EdRGieOMj/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/5iCu8aRdPo/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/ABUe39rODk/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/MaGxKOfxPJ/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/LRA/82ZtOKlRiO/ua-profile_500K.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/O2/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Rogers/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/SFR/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telcel/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telus/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TIM/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMOUS/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TNZ/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/WIND/fL0fd1AcEY/ua-profile.xml' => [ 'HTC', 'One (M8)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PPzlrbleWf/ua-profile.xml' => [ 'HTC', 'One (M8s)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/PPzlrbleWf/ua-profile.xml' => [ 'HTC', 'One (M8s)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/PPzlrbleWf/ua-profile.xml' => [ 'HTC', 'One (M8s)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/RBuZib3xtL/ua-profile.xml' => [ 'HTC', 'One (M9 Plus)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PJA2-SPRINT/13265130.rdf' => [ 'HTC', 'One (M9)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PJA2-SPRINT/21165119.rdf' => [ 'HTC', 'One (M9)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PJA2-SPRINT/2665111.rdf' => [ 'HTC', 'One (M9)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PJA2-SPRINT/3416514.rdf' => [ 'HTC', 'One (M9)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/0PJA2-SPRINT/Bad Boyz Sprint ONE M9 v20.rdf' => [ 'HTC', 'One (M9)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ATT/xbKGNh1DoH/ua-profile.xml' => [ 'HTC', 'One (M9)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/CMCC/c8HDMjoq7Q/ua-profile.xml' => [ 'HTC', 'One (M9)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/15Y7tWDPNn/ua-profile.xml' => [ 'HTC', 'One (M9)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/WDfCkeuHE6/ua-profile.xml' => [ 'HTC', 'One (M9)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/WOCIeZasGc/ua-profile.xml' => [ 'HTC', 'One (M9)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/xbKGNh1DoH/ua-profile.xml' => [ 'HTC', 'One (M9)', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/bDZc52YZeG/ua-profile.xml' => [ 'HTC', 'One (X9)', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC0P3P7-Chameleon/%CDMA_ROM_VERSION%.rdf' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC0P3P7-Chameleon/0576512.rdf' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC0P3P7-Chameleon/3036513.rdf' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC0P3P7-SPRINT/1166514.rdf' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC0P3P7-SPRINT/2096511.rdf' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC0P3P7-SPRINT/3026515.rdf' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/HTC0P3P7-SPRINT/SkyDragon Max v 20 Sprint.rdf' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/0O5MHN0Mig/ua-profile.xml' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/arYPBWMPCx/ua-profile.xml' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/LDdI1qcVhL/ua-profile.xml' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/V79ccMv3KO/ua-profile.xml' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/w778dYholc/ua-profile.xml' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/O2/w778dYholc/ua-profile.xml' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/w778dYholc/ua-profile.xml' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/w778dYholc/ua-profile.xml' => [ 'HTC', 'One Max', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ATT/PO582/ua-profile.xml' => [ 'HTC', 'One Mini', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO581/ua-profile.xml' => [ 'HTC', 'One Mini', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PO582/ua-profile.xml' => [ 'HTC', 'One Mini', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/O2/PO582/ua-profile.xml' => [ 'HTC', 'One Mini', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/PO582/ua-profile.xml' => [ 'HTC', 'One Mini', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Rogers/PO582/ua-profile.xml' => [ 'HTC', 'One Mini', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/PO582//ua-profile.xml' => [ 'HTC', 'One Mini', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TIM/PO582/ua-profile.xml' => [ 'HTC', 'One Mini', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/PO582/ua-profile.xml' => [ 'HTC', 'One mini', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/UlrIAz8JY9/ua-profile.xml' => [ 'HTC', 'One Mini 2', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/UlrIAz8JY9/ua-profile.xml' => [ 'HTC', 'One Mini 2', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/UlrIAz8JY9/ua-profile.xml' => [ 'HTC', 'One Mini 2', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/UlrIAz8JY9/ua-profile.xml' => [ 'HTC', 'One Mini 2', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Bell/Z520m/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Bouygues/PJ401/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Canada/Z520m/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/CBW/PJ401/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PJ401/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PJ402/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/TX408/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Mobilicity/Z520m/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Nextel/PJ401/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/O2/PJ401/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/PJ401/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Rogers/Z520m/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telcel/PJ401/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/PJ401/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telus/Z520m/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TIM/PJ401/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/PJ401/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMOUS/PJ401/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Videotron/Z520m/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/PJ401/ua-profile.xml' => [ 'HTC', 'One S', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_T528d_1_20120801.XML' => [ 'HTC', 'One SC', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PM6010/ua-profile.xml' => [ 'HTC', 'One SC', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PM6011/ua-profile.xml' => [ 'HTC', 'One ST', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PM6012/ua-profile.xml' => [ 'HTC', 'One SU', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/C525c-BOOST/1116531.rdf' => [ 'HTC', 'One SV', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/C525c-BOOST/2066535.rdf' => [ 'HTC', 'One SV', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/C525c-BOOST/2066536.rdf' => [ 'HTC', 'One SV', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/C525c-BOOST/3056533.rdf' => [ 'HTC', 'One SV', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/C525c-BOOST/3056534.rdf' => [ 'HTC', 'One SV', 'Android', DeviceType::MOBILE ], + 'http://mms.mycricket.com/htc_h3000c.xml' => [ 'HTC', 'One SV', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Bouygues/PL801/ua-profile.xml' => [ 'HTC', 'One SV', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PL801/ua-profile.xml' => [ 'HTC', 'One SV', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PL8011/ua-profile.xml' => [ 'HTC', 'One SV', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/PL801/ua-profile.xml' => [ 'HTC', 'One SV', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TIM/PL8011/ua-profile.xml' => [ 'HTC', 'One SV', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/PL801/ua-profile.xml' => [ 'HTC', 'One SV', 'Android', DeviceType::MOBILE ], + 'http://mms.mycricket.com/htc_h2000c.xml' => [ 'HTC', 'One V', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/HTC/T120C-VMUB/1.0/UAProf.xml' => [ 'HTC', 'One V', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Bell/T320a/ua-profile.xml' => [ 'HTC', 'One V', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PJ835/ua-profile.xml' => [ 'HTC', 'One V', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PK76/ua-profile.xml' => [ 'HTC', 'One V', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PK7631/ua-profile.xml' => [ 'HTC', 'One V', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telcel/PK76/ua-profile.xml' => [ 'HTC', 'One V', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/PJ831/ua-profile.xml' => [ 'HTC', 'One V', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telus/T320a/ua-profile.xml' => [ 'HTC', 'One V', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/PK76/ua-profile.xml' => [ 'HTC', 'One V', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TNZ/PK76/ua-profile.xml' => [ 'HTC', 'One V', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ATT/PM361/ua-profile.xml' => [ 'HTC', 'One VX', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ATT/PJ831/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PJ461/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PJ831/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PM3511/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/O2/PJ461/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/O2/PJ831/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/O2/PM3511/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/PJ461/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Rogers/X325a/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telcel/PJ461/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telus/X325a/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/PJ461/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/PJ831/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TNZ/PJ461/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/PJ461/ua-profile.xml' => [ 'HTC', 'One X', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ATT/PM631/ua-profile.xml' => [ 'HTC', 'One X+', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PM631/ua-profile.xml' => [ 'HTC', 'One X+', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telus/X525a/ua-profile.xml' => [ 'HTC', 'One X+', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_X720d_1_20120401.XML' => [ 'HTC', 'One XC', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Vodafone/PJ831/ua-profile.xml' => [ 'HTC', 'One XL', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PJ462/ua-profile.xml' => [ 'HTC', 'One XT', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Oxygen-1.0.xml' => [ 'HTC', 'Oxygen', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/CedarW-1.0.xml' => [ 'HTC', 'Ozone', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/wave-1.0.xml' => [ 'HTC', 'P3000', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/artemis-1.0.xml' => [ 'HTC', 'P3300', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/elf-1.0.xml' => [ 'HTC', 'P3450', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Trinity-1.0.xml' => [ 'HTC', 'P3600', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Herald-1.0.xml' => [ 'HTC', 'P4350', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/sedna-1.0.xml' => [ 'HTC', 'P6500', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Panda-1.0.xml' => [ 'HTC', 'Panda', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Pharos-1.0.xml' => [ 'HTC', 'Pharos', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Prophet-2.0.xml' => [ 'HTC', 'Prophet', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/pu10-2.0.xml' => [ 'HTC', 'PU10', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Bell/Holiday/ua-profile.xml' => [ 'HTC', 'Raider', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Rogers/Holiday/ua-profile.xml' => [ 'HTC', 'Raider', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PH39/ua-profile.xml' => [ 'HTC', 'Raider 4G', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/adr6425/adr6425.xml' => [ 'HTC', 'Rezound', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/adr6330/adr6330.xml' => [ 'HTC', 'Rhyme', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PI4610/ua-profile.xml' => [ 'HTC', 'Rhyme', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PD421/ua-profile.xml' => [ 'HTC', 'S610d', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Cavalier-1.0.xml' => [ 'HTC', 'S630', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Vox-1.0.xml' => [ 'HTC', 'S710', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Volans-1.0.xml' => [ 'HTC', 'S730', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/HTC_S740-1.0.xml' => [ 'HTC', 'S740', null, DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PH11/ua-profile.xml' => [ 'HTC', 'Salsa', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Bell/Pyramid/ua-profile.xml' => [ 'HTC', 'Sensation', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/HTC_Sensation_4G/ua-profile.xml' => [ 'HTC', 'Sensation', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PG58/ua-profile.xml' => [ 'HTC', 'Sensation', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PG5814/ua-profile.xml' => [ 'HTC', 'Sensation', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Orange/PG58/ua-profile.xml' => [ 'HTC', 'Sensation', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/Z710a/ua-profile.xml' => [ 'HTC', 'Sensation', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/Pyramid/ua-profile.xml' => [ 'HTC', 'Sensation', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PG5813/ua-profile.xml' => [ 'HTC', 'Sensation XE', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/SensationXE/ua-profile.xml' => [ 'HTC', 'Sensation XE', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PI39/ua-profile.xml' => [ 'HTC', 'Sensation XL', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/KT/HTC-X315E/ua-profile.xml' => [ 'HTC', 'Sensation XL', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/Runnymede/ua-profile.xml' => [ 'HTC', 'Sensation XL', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/tme/HTC_Snap_S521-1.0.xml' => [ 'HTC', 'Snap', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/st20-1.0.xml' => [ 'HTC', 'ST20', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/ATT/PH06130/ua-profile.xml' => [ 'HTC', 'Status', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PK793/ua-profile.xml' => [ 'HTC', 'T327t', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_T329d_1_20120901.XML' => [ 'HTC', 'T329d', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_T9199_2_20100902.xml' => [ 'HTC', 'T9199', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/HTC_TATTOO_A3288/ua-profile.xml' => [ 'HTC', 'Tattoo', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Tattoo/ua-profile.xml' => [ 'HTC', 'Tattoo', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/UTSTARCOM/PG051/ua-profile.xml' => [ 'HTC', 'ThunderBolt', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/adr6325/adr6325.xml' => [ 'HTC', 'Thunderbolt 4G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Titan-1.0.xml' => [ 'HTC', 'Titan', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/tornado-2.0.xml' => [ 'HTC', 'Tornado', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/brightstar/ELFIN-1.0.xml' => [ 'HTC', 'Touch', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Elfin_Opera-1.0.xml' => [ 'HTC', 'Touch', 'Windows', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/HTC_Touch_Viva_T2223-1.0.xml' => [ 'HTC', 'Touch', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/HTC_Touch2_T3333-1.0.xml' => [ 'HTC', 'Touch 2', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/mega-1.0.xml' => [ 'HTC', 'Touch 2', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/HTC_Touch_3G_T3232-1.0.xml' => [ 'HTC', 'Touch 3G', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/voda/Jade-1.0.xml' => [ 'HTC', 'Touch 3G', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Polaris-1.0.xml' => [ 'HTC', 'Touch Cruise', 'Windows Mobile', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/MP6950SP/1096515.rdf' => [ 'HTC', 'Touch Diamond', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/diamond-1.0.xml' => [ 'HTC', 'Touch Diamond', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/victor-1.0.xml' => [ 'HTC', 'Touch Diamond', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/VictorC-1.0.xml' => [ 'HTC', 'Touch Diamond', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/VictorCT-1.0.xml' => [ 'HTC', 'Touch Diamond', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/voda/diamond-1.0.xml' => [ 'HTC', 'Touch Diamond', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/HTC_Touch_Diamond2_T5353-1.0.xml' => [ 'HTC', 'Touch Diamond 2', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/HTC_Touch_Diamond2_T5360-1.0.xml' => [ 'HTC', 'Touch Diamond 2', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/neon-1.0.xml' => [ 'HTC', 'Touch Dual', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/NeonC_BM-1.0.xml' => [ 'HTC', 'Touch Dual', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/nike-1.0.xml' => [ 'HTC', 'Touch Dual', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/HTC_Touch_HD_T8282-1.0.xml' => [ 'HTC', 'Touch HD', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/voda/HTC_Touch_HD_T8282-1.0.xml' => [ 'HTC', 'Touch HD', 'Windows Mobile', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/PPC6850SP/1036513.rdf' => [ 'HTC', 'Touch Pro', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/HermannC_BM-1.0.xml' => [ 'HTC', 'Touch Pro', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/HTC_Touch_Pro_T7272-1.0.xml' => [ 'HTC', 'Touch Pro', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Raphael-1.0.xml' => [ 'HTC', 'Touch Pro', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/swisscom/HTC_Touch_Pro-1.0.xml' => [ 'HTC', 'Touch Pro', 'Windows Mobile', ], + 'http://www.htcmms.com.tw/voda/HTC_Touch_Pro-1.0.xml' => [ 'HTC', 'Touch Pro', 'Windows Mobile', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/PPCT7380SP/1216514.rdf' => [ 'HTC', 'Touch Pro 2', 'Windows Mobile', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HTC/PPCT7380SP/2046514.rdf' => [ 'HTC', 'Touch Pro 2', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/HTC_Touch_Pro2_T7373-1.0.xml' => [ 'HTC', 'Touch Pro 2', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/RhodiumW-1.0.xml' => [ 'HTC', 'Touch Pro 2', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Hermes-1.0.xml' => [ 'HTC', 'TyTN', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Hermes-2.0.xml' => [ 'HTC', 'TyTN', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/kaiser-1.0.xml' => [ 'HTC', 'TyTN II', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/Wildfire/ua-profile.xml' => [ 'HTC', 'Wildfire', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/A3335/ua-profile.xml' => [ 'HTC', 'Wildfire', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TME/Wildfire/ua-profile.xml' => [ 'HTC', 'Wildfire', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/Buzz/ua-profile.xml' => [ 'HTC', 'Wildfire', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Alltel/Bee/ua-profile.xml' => [ 'HTC', 'Wildfire 6225', 'Android', DeviceType::MOBILE ], + 'http://mmsc1.uscc.net/mmsc/MMS' => [ 'HTC', 'Wildfire S', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_A510c_1_20110425.XML' => [ 'HTC', 'Wildfire S', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/HTC-PG762.xml' => [ 'HTC', 'Wildfire S', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/HTC/A510c-VMUB/1.0/UAProf.xml' => [ 'HTC', 'Wildfire S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Bell/Marvel/ua-profile.xml' => [ 'HTC', 'Wildfire S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PG76/ua-profile.xml' => [ 'HTC', 'Wildfire S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/WildfireS/ua-profile.xml' => [ 'HTC', 'Wildfire S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Telstra/A510b/ua-profile.xml' => [ 'HTC', 'Wildfire S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/Marvel/ua-profile.xml' => [ 'HTC', 'Wildfire S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/TME/WildfireS/ua-profile.xml' => [ 'HTC', 'Wildfire S', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Wizard-2.0.xml' => [ 'HTC', 'Wizard', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/X1i-1.0.xml' => [ 'HTC', 'X1i', 'Windows Mobile', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HTC/HTC_Z510d_1_20110831.XML' => [ 'HTC', 'Z510d', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_A199_1_20130121.xml' => [ 'Huawei', 'A199', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/Huawei-M920.xml' => [ 'Huawei', 'Activa 4G', 'Android', DeviceType::MOBILE ], + 'http://mms.mycricket.com/Huawei-M860.xml' => [ 'Huawei', 'Ascend', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Huawei_M860_Normal.xml' => [ 'Huawei', 'Ascend', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiC8812CDMA-NORMAL.xml' => [ 'Huawei', 'Ascend C8812', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiC8812CDMA2000-NORMAL.xml' => [ 'Huawei', 'Ascend C8812', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiC8812WCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend C8812', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8812E_1_20120713.xml' => [ 'Huawei', 'Ascend C8812', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8812E_1_20121018.xml' => [ 'Huawei', 'Ascend C8812', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8812_1_20120228.xml' => [ 'Huawei', 'Ascend C8812', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8813D_1_20121018.xml' => [ 'Huawei', 'Ascend C8813', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8813Q_1_20130108.xml' => [ 'Huawei', 'Ascend C8813', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8813Q_1_20130425.xml' => [ 'Huawei', 'Ascend C8813', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8813_1_20121018.xml' => [ 'Huawei', 'Ascend C8813', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8813Q_1_20121018.xml' => [ 'Huawei', 'Ascend C8815', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8816D_1_20131107.xml' => [ 'Huawei', 'Ascend C8816', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8816_1_20131106.xml' => [ 'Huawei', 'Ascend C8816', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U9501L_UAProfile.xml' => [ 'Huawei', 'Ascend D LTE', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U9510E_UAProfile.xml' => [ 'Huawei', 'Ascend D quad', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U9510_UAProfile.xml' => [ 'Huawei', 'Ascend D quad', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U9500_UAProfile.xml' => [ 'Huawei', 'Ascend D1', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_T9510E_UAProfile.xml' => [ 'Huawei', 'Ascend D1 Quad XL', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U9500E_UAProfile.xml' => [ 'Huawei', 'Ascend D1 XL', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_D2-0082_Global_UAProfile.XML' => [ 'Huawei', 'Ascend D2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_D2_6114_UAProfile.xml' => [ 'Huawei', 'Ascend D2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_D2-0082_1_20121221_UAProfile.XML' => [ 'Huawei', 'Ascend D2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_D2-2010_1_20121026_UAProfile.XML' => [ 'Huawei', 'Ascend D2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_D2-2010_2_20130106_UAProfile.XML' => [ 'Huawei', 'Ascend D2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_D2-5000_2_20121218_UAProfile.XML' => [ 'Huawei', 'Ascend D2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8815GPRS-NORMAL-ICS.xml' => [ 'Huawei', 'Ascend G300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8815GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend G300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8815NWCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend G300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8815WCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend G300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8818GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend G300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8818WCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend G300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_c8800_2_20111116.xml' => [ 'Huawei', 'Ascend G300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8810_2_20111116.xml' => [ 'Huawei', 'Ascend G300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8816WCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend G301', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.huawei.com/uaprof/HUAWEI_T8828-1.0.xml' => [ 'Huawei', 'Ascend G305T', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_T8830_UAProfile.xml' => [ 'Huawei', 'Ascend G309T', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_T8830Pro_UAProfile.xml' => [ 'Huawei', 'Ascend G309T Pro', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8681GPRS-VTR.xml' => [ 'Huawei', 'Ascend G312', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8681GPRS-WIND.xml' => [ 'Huawei', 'Ascend G312', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG330-0100GPRS.xml' => [ 'Huawei', 'Ascend G330', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8825-1GPRS.xml' => [ 'Huawei', 'Ascend G330', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8825DGPRS-Unicom.xml' => [ 'Huawei', 'Ascend G330', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8825D_1_20120530.xml' => [ 'Huawei', 'Ascend G330C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_U8825D_1_20121018.xml' => [ 'Huawei', 'Ascend G330D', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8836Dv100CHNC00WCDMA.xml' => [ 'Huawei', 'Ascend G500', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8826D_1_20120926.xml' => [ 'Huawei', 'Ascend G500C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0010GPRS-Normal.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0010GPRS-Russia.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0010GPRS-UNICOM.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0010GPRS.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0100GPRS-FL.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0100GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0100GPRS-Vodafone.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0100GPRS.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0100WCDMA-FL.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0200GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0200GPRS-Yoigo.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0200GPRS.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0251GPRS-DRM.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0251GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_T8951_UAProfile.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_U8951_1_20121018.xml' => [ 'Huawei', 'Ascend G510', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG520-0000GPRS-UNICOM.xml' => [ 'Huawei', 'Ascend G520', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G520-5000_UAProfile.xml' => [ 'Huawei', 'Ascend G520', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G520-T10_UAProfile.xml' => [ 'Huawei', 'Ascend G520', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG525-U00GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend G525', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG525-U00GPRS-UNICOM.xml' => [ 'Huawei', 'Ascend G525', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG525-U00GPRS.xml' => [ 'Huawei', 'Ascend G525', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G525-UOO_1_20130425.xml' => [ 'Huawei', 'Ascend G525', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HUAWEI/PLTFH882KT/H882LV100R001C378B145.rdf' => [ 'Huawei', 'Ascend G526', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG526-L11LTE-Normal.xml' => [ 'Huawei', 'Ascend G526', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG526-L22LTE-Normal.xml' => [ 'Huawei', 'Ascend G526', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG526-L33LTE-Normal.xml' => [ 'Huawei', 'Ascend G526', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG535.xml' => [ 'Huawei', 'Ascend G535', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG6L11-3G.xml' => [ 'Huawei', 'Ascend G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG6L11_KK_EU.xml' => [ 'Huawei', 'Ascend G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG6L22.xml' => [ 'Huawei', 'Ascend G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG6L33.xml' => [ 'Huawei', 'Ascend G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G6-T00_EMUI3_UAProfile.xml' => [ 'Huawei', 'Ascend G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G6-T00_UAProfile.xml' => [ 'Huawei', 'Ascend G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G6-U10_KK_UAProfile.xml' => [ 'Huawei', 'Ascend G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G6-U10_UAProfile-DRM.xml' => [ 'Huawei', 'Ascend G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G6-U10_UAProfile.xml' => [ 'Huawei', 'Ascend G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G6-U251_UAProfile.xml' => [ 'Huawei', 'Ascend G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G6_C00_KK.xml' => [ 'Huawei', 'Ascend G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G6_U00.xml' => [ 'Huawei', 'Ascend G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G6_U00_KK.xml' => [ 'Huawei', 'Ascend G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8950-1GPRS-Normal.xml' => [ 'Huawei', 'Ascend G600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8950-51GPRS-Normal.xml' => [ 'Huawei', 'Ascend G600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8950DGPRS-UNICOM.xml' => [ 'Huawei', 'Ascend G600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8950N-1GPRS-Normal.xml' => [ 'Huawei', 'Ascend G600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8950N-51GPRS-Normal.xml' => [ 'Huawei', 'Ascend G600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8950N-51WCDMA-Normal.xml' => [ 'Huawei', 'Ascend G600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_T8950_UAProfile.xml' => [ 'Huawei', 'Ascend G600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G610-T00_UAProfile.xml' => [ 'Huawei', 'Ascend G610', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G610-T11_UAProfile.xml' => [ 'Huawei', 'Ascend G610', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G610-U00_UAProfile.xml' => [ 'Huawei', 'Ascend G610', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G610-U15_UAProfile.xml' => [ 'Huawei', 'Ascend G610', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G610-U20_UAProfile.xml' => [ 'Huawei', 'Ascend G610', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G610-U30_UAProfile.xml' => [ 'Huawei', 'Ascend G610', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G610-C00_1_20130108.xml' => [ 'Huawei', 'Ascend G610', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G615_U10.xml' => [ 'Huawei', 'Ascend G615', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G616-T00_UAProfile.xml' => [ 'Huawei', 'Ascend G616', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G620-A2.xml' => [ 'Huawei', 'Ascend G620', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G620-A2_CC.xml' => [ 'Huawei', 'Ascend G620', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G620-L72.xml' => [ 'Huawei', 'Ascend G620', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G620-L75.xml' => [ 'Huawei', 'Ascend G620', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G620S-L03.xml' => [ 'Huawei', 'Ascend G620', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G620_1_20130917.xml' => [ 'Huawei', 'Ascend G620', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G620S-L01.xml' => [ 'Huawei', 'Ascend G620S', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G620S-L02.xml' => [ 'Huawei', 'Ascend G620S', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G620S-L03_PERU.xml' => [ 'Huawei', 'Ascend G620S', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/G621-TL00.xml' => [ 'Huawei', 'Ascend G621', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G621-TL00.xml' => [ 'Huawei', 'Ascend G621', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/G628-TL00_LTE_UAProfile.xml' => [ 'Huawei', 'Ascend G628', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/G629_LTE_UAProfile.xml' => [ 'Huawei', 'Ascend G629', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG630-U20-DRM.xml' => [ 'Huawei', 'Ascend G630', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG630-U20-Normal-WCDMA.xml' => [ 'Huawei', 'Ascend G630', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG630-U20-Normal.xml' => [ 'Huawei', 'Ascend G630', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG630-U251-Normal.xml' => [ 'Huawei', 'Ascend G630', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G630_U00.xml' => [ 'Huawei', 'Ascend G630', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G630_U10.xml' => [ 'Huawei', 'Ascend G630', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CHC-U03_NLA_UAProfile.xml' => [ 'Huawei', 'Ascend G650', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CHC-U03_UAProfile.xml' => [ 'Huawei', 'Ascend G650', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G660-L075.xml' => [ 'Huawei', 'Ascend G660', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_%s_lollipop_UAProfile.xml' => [ 'Huawei', 'Ascend G7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_%s_UAProfile.xml' => [ 'Huawei', 'Ascend G7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G7-L01_OrangeUAProfile.xml' => [ 'Huawei', 'Ascend G7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G7-L01_UAProfile.xml' => [ 'Huawei', 'Ascend G7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G7-L03_UAProfile.xml' => [ 'Huawei', 'Ascend G7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G7-L11_UAProfile.xml' => [ 'Huawei', 'Ascend G7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G7-TL00_UAProfile.xml' => [ 'Huawei', 'Ascend G7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G7-UL20_UAProfile.xml' => [ 'Huawei', 'Ascend G7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G760-L01-TME.xml' => [ 'Huawei', 'Ascend G7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G700-T00_UAProfile.xml' => [ 'Huawei', 'Ascend G700', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G700-U00_UAProfile.xml' => [ 'Huawei', 'Ascend G700', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G700-U10_UAProfile.xml' => [ 'Huawei', 'Ascend G700', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G700-U20_UAProfile.xml' => [ 'Huawei', 'Ascend G700', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOHuawei G700-U00.xml' => [ 'Huawei', 'Ascend G700', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG716-L070LTE.xml' => [ 'Huawei', 'Ascend G716', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G718_1_20130805.xml' => [ 'Huawei', 'Ascend G718', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G730-T00_UAProfile.xml' => [ 'Huawei', 'Ascend G730', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G730-U00_UAProfile.xml' => [ 'Huawei', 'Ascend G730', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G730-U10_UAProfile.xml' => [ 'Huawei', 'Ascend G730', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G730-U251_UAProfile.xml' => [ 'Huawei', 'Ascend G730', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G730-U27_UAProfile.xml' => [ 'Huawei', 'Ascend G730', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G730-U30_UAProfile.xml' => [ 'Huawei', 'Ascend G730', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G730-C00_20130826.xml' => [ 'Huawei', 'Ascend G730', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G730-C10_1_20130828.xml' => [ 'Huawei', 'Ascend G730', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G730-L075.xml' => [ 'Huawei', 'Ascend G730', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G735-L03_UAProfile.xml' => [ 'Huawei', 'Ascend G735', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G735-L03__NLA_UAProfile.xml' => [ 'Huawei', 'Ascend G735', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G735-L23_UAProfile.xml' => [ 'Huawei', 'Ascend G735', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG740-L00LTE-DRM.xml' => [ 'Huawei', 'Ascend G740', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG740-L00LTE-Normal.xml' => [ 'Huawei', 'Ascend G740', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G750-T01_UAProfile.xml' => [ 'Huawei', 'Ascend G750', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G750-T20_UAProfile.xml' => [ 'Huawei', 'Ascend G750', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G750-U10_UAProfile.xml' => [ 'Huawei', 'Ascend G750', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G760-TL00_UAProfile.xml' => [ 'Huawei', 'Ascend G760', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G620S-UL00.xml' => [ 'Huawei', 'Ascend G760', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G760-L01.xml' => [ 'Huawei', 'Ascend G760', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G760-L01_Europe_DRM-UAProfile.xml' => [ 'Huawei', 'Ascend G760', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_G760-L071.xml' => [ 'Huawei', 'Ascend G760', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_RIO-AL00_UAProfile.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_RIO-CL00_UAProfile.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Huawei_RIO-L01_DT_UAProfile.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_RIO-L01_UAProfile.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_RIO-L01_UAProfile_DRM.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_RIO-L01_UAProfile_DRM_FL.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_RIO-L02_UAProfile.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_RIO-L02_UAProfile_DRM.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_RIO-L03_UAProfile_DRM.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_RIO-L03_UAProfile_DRMALL.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_RIO-TL00_UAProfile.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_RIO-UL00_UAProfile.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_RIOL03_UAProfile.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Rock-CL00_UAProfile.xml' => [ 'Huawei', 'Ascend G8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/SC-UL10_LTE_UAProfile.xml' => [ 'Huawei', 'Ascend GX1', 'Android', DeviceType::MOBILE ], + 'http://mms.mycricket.com/Huawei-M865.xml' => [ 'Huawei', 'Ascend II', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/Huawei/ADR3310/ADR3310v1.xml' => [ 'Huawei', 'Ascend II', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/OEM/ADR3305/ADR3305v1.xml' => [ 'Huawei', 'Ascend II', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Huawei-M865C.xml' => [ 'Huawei', 'Ascend II', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_MATE_T00_UAProfile.xml' => [ 'Huawei', 'Ascend Mate', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_MATE_UAProfile.XML' => [ 'Huawei', 'Ascend Mate', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_MATE_Wind_UAProfile.XML' => [ 'Huawei', 'Ascend Mate', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Huawei_MT2-L02_UAProfile.xml' => [ 'Huawei', 'Ascend Mate 2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Huawei_MT2-L05_UAProfile.xml' => [ 'Huawei', 'Ascend Mate 2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_MT2_L05_UAProfile.xml' => [ 'Huawei', 'Ascend Mate 2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Mate2.xml' => [ 'Huawei', 'Ascend Mate 2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_MT2-C00_1_20130425.xml' => [ 'Huawei', 'Ascend Mate 2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_MT2-C00_1_20131227.xml' => [ 'Huawei', 'Ascend Mate 2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_MT7-TL00_UAProfile.xml' => [ 'Huawei', 'Ascend Mate 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_MT7-TL10_UAProfile.xml' => [ 'Huawei', 'Ascend Mate 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_MT7-UL00_UAProfile.xml' => [ 'Huawei', 'Ascend Mate 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_MT7_L09_UAProfile.xml' => [ 'Huawei', 'Ascend Mate 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Z100-TL00_UAProfile.xml' => [ 'Huawei', 'Ascend Mate 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Z100_L09_UAProfile.xml' => [ 'Huawei', 'Ascend Mate 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_MT7-CL00_2_20140903.xml' => [ 'Huawei', 'Ascend Mate 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Z100-CL00_1_20140709.xml' => [ 'Huawei', 'Ascend Mate 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_GS03_UAProfile.xml' => [ 'Huawei', 'Ascend P1', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_T9200_UAProfile.xml' => [ 'Huawei', 'Ascend P1', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U9200_UAProfile.xml' => [ 'Huawei', 'Ascend P1', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U9201L_UAProfile.xml' => [ 'Huawei', 'Ascend P1', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U9202L-1_UAProfile.xml' => [ 'Huawei', 'Ascend P1', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U9202L-3_UAProfile.xml' => [ 'Huawei', 'Ascend P1', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_P2_NewZealand_UAProfile.xml' => [ 'Huawei', 'Ascend P2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_P2_UAProfile.xml' => [ 'Huawei', 'Ascend P2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U9700L_UAProfile.xml' => [ 'Huawei', 'Ascend P2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_P6_S_U00_UAProfile.xml' => [ 'Huawei', 'Ascend P6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_P6_T00_UAProfile.xml' => [ 'Huawei', 'Ascend P6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_P6_U06_MTN_UAProfile.xml' => [ 'Huawei', 'Ascend P6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_P6_U06_UAProfile.xml' => [ 'Huawei', 'Ascend P6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_P6_U06_Wind_UAProfile.xml' => [ 'Huawei', 'Ascend P6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_P6-C00_1_20130425.xml' => [ 'Huawei', 'Ascend P6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_MT2_T00_UAProfile.xml' => [ 'Huawei', 'Ascend P7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_MT2_U071_UAProfile.xml' => [ 'Huawei', 'Ascend P7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_SOPHIA_L07_UAProfile.xml' => [ 'Huawei', 'Ascend P7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_SOPHIA_L10_UAProfile.xml' => [ 'Huawei', 'Ascend P7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_SOPHIA_L10_UAProfile_3G.xml' => [ 'Huawei', 'Ascend P7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_SOPHIA_L11_UAProfile.xml' => [ 'Huawei', 'Ascend P7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_SOPHIA_L12_UAProfile.xml' => [ 'Huawei', 'Ascend P7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_P7-L09_1_20140327.xml' => [ 'Huawei', 'Ascend P7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_GRA-TL00_UAProfile.xml' => [ 'Huawei', 'Ascend P8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_GRA-UL00_UAProfile.xml' => [ 'Huawei', 'Ascend P8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_GRA-UL10_UAProfile.xml' => [ 'Huawei', 'Ascend P8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_GRA_L09_DRM_UAProfile.xml' => [ 'Huawei', 'Ascend P8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_GRA_L09_UAProfile.xml' => [ 'Huawei', 'Ascend P8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_GRA_L09_VDF_UAProfile_3G.xml' => [ 'Huawei', 'Ascend P8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_GRA_TL00_UAProfile.xml' => [ 'Huawei', 'Ascend P8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_X100-UL00_UAProfile.xml' => [ 'Huawei', 'Ascend P8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_GRA-CL00_1_20150105.xml' => [ 'Huawei', 'Ascend P8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_GRA-CL00_1_20150317.xml' => [ 'Huawei', 'Ascend P8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_GRA-CL10_1_20150317.xml' => [ 'Huawei', 'Ascend P8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_M100-CL00_1_20150120.xml' => [ 'Huawei', 'Ascend P8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-L02_NLA_UAProfile.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-L02_UAProfile.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-L04_5.1_UAProfile.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-L21_DRM_UAProfile.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-L21_FT_UAProfile.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-L21_PL_UAProfile.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-L21_UAProfile.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-L23_NLA_UAProfile.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-L23_UAProfile.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-TL00_6.0_UAProfile.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-TL00_UAProfile.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-UL00_UAProfile.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALEL04_UAProfile.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_ALE-CL00_1_20141217.xml' => [ 'Huawei', 'Ascend P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/huawei/h881c/h881c.xml' => [ 'Huawei', 'Ascend Plus', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiM660-Cricket.xml' => [ 'Huawei', 'Ascend Q', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU9000v100WCDMA.xml' => [ 'Huawei', 'Ascend X', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/huawei/h866c/h866c.xml' => [ 'Huawei', 'Ascend Y H866C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8185GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y100', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8185WCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend Y100', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8186GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y101', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8186WCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend Y101', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8655GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y200', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8655WCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend Y200', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_T8620_UAProfile.xml' => [ 'Huawei', 'Ascend Y200T', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8666E-1GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y201', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8666E-51GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y201', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8666EGPRS-NORMAL-ICS.xml' => [ 'Huawei', 'Ascend Y201', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8666EGPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y201', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8666GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y201', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8666N-1GPRS-2Degrees.xml' => [ 'Huawei', 'Ascend Y201', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8666N-1GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y201', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8666WCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend Y201', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8655_20120206.xml' => [ 'Huawei', 'Ascend Y201C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY210-C10CDMA-Orinoquia.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Y210-2010_1_20120206.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Y210S_1_20121105.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y210-0010GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y210-0010WCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y210-0100GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y210-0100WCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y210-0151GPRS-DRM.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y210-0151GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y210-0151WCDMA-DRM.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y210-0151WCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y210-0151WCDMA-TELUS.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y210-0200GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y210-0200WCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y210-0251GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y210-0251WCDMA-NORMAL.xml' => [ 'Huawei', 'Ascend Y210', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY220-U00_UAProfile.xml' => [ 'Huawei', 'Ascend Y220', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY220-U05_UAProfile.xml' => [ 'Huawei', 'Ascend Y220', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY220-U10_UAProfile.xml' => [ 'Huawei', 'Ascend Y220', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY221-U03_UAProfile.xml' => [ 'Huawei', 'Ascend Y221', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY221-U12_UAProfile.xml' => [ 'Huawei', 'Ascend Y221', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY221-U22_UAProfile.xml' => [ 'Huawei', 'Ascend Y221', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/OrinoquiaAuyantepui+Y221-U03_UAProfile.xml' => [ 'Huawei', 'Ascend Y221', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0000GPRS-UNICOM.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0000GPRS.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0100GPRS-FL.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0100GPRS-MTN.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0100GPRS-NORMAL.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0100GPRS.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0100WCDMA-Yoigo.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0151GPRS-DRM.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0151GPRS-FL.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0151GPRS-Telefonica.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0151GPRS-Telstra.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0151GPRS.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0151WCDMA.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-0159GPRS.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_T8833_UAProfile.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Y300C_1_20121018.xml' => [ 'Huawei', 'Ascend Y300', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/HUAWEI/PLTFH882KT/H882LV100R001C378B170SP02.rdf' => [ 'Huawei', 'Ascend Y301', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY301-A1-Normal.xml' => [ 'Huawei', 'Ascend Y301', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY301-A2-Normal.xml' => [ 'Huawei', 'Ascend Y301', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Beeline_Smart-v100WCDMA.xml' => [ 'Huawei', 'Ascend Y320', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY320-U01v100WCDMA.xml' => [ 'Huawei', 'Ascend Y320', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY320-U10v100WCDMA.xml' => [ 'Huawei', 'Ascend Y320', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY320-U151v100WCDMA.xml' => [ 'Huawei', 'Ascend Y320', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY320-U30v100WCDMA.xml' => [ 'Huawei', 'Ascend Y320', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY320-U351v100WCDMA.xml' => [ 'Huawei', 'Ascend Y320', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY321-U051v100WCDMA.xml' => [ 'Huawei', 'Ascend Y321', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y330-U01_UAProfile.xml' => [ 'Huawei', 'Ascend Y330', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y330-U05_UAProfile.xml' => [ 'Huawei', 'Ascend Y330', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y330-U07_UAProfile.xml' => [ 'Huawei', 'Ascend Y330', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y330-U11_Normal_UAProfile.xml' => [ 'Huawei', 'Ascend Y330', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y330-U15_UAProfile.xml' => [ 'Huawei', 'Ascend Y330', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Y330-C00_1_20140418.xml' => [ 'Huawei', 'Ascend Y330', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y336-U02_UAProfile.xml' => [ 'Huawei', 'Ascend Y336', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Y336-A1.xml' => [ 'Huawei', 'Ascend Y336', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY340-U081-Normal.xml' => [ 'Huawei', 'Ascend Y340', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y360-U03_UAProfile.xml' => [ 'Huawei', 'Ascend Y360', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y360-U23_UAProfile.xml' => [ 'Huawei', 'Ascend Y360', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y360-U31_UAProfile.xml' => [ 'Huawei', 'Ascend Y360', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y360-U61_UAProfile.xml' => [ 'Huawei', 'Ascend Y360', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y511-U00.xml' => [ 'Huawei', 'Ascend Y511', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y511-U10.xml' => [ 'Huawei', 'Ascend Y511', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y511-U251.xml' => [ 'Huawei', 'Ascend Y511', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y511-U30.xml' => [ 'Huawei', 'Ascend Y511', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y511_TD_UAProfile.xml' => [ 'Huawei', 'Ascend Y516', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y516_TD_UAProfile.xml' => [ 'Huawei', 'Ascend Y516', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y518_TD_UAProfile.xml' => [ 'Huawei', 'Ascend Y518', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY520-U03v100WCDMA.xml' => [ 'Huawei', 'Ascend Y520', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY520-U12v100WCDMA.xml' => [ 'Huawei', 'Ascend Y520', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY520-U22v100WCDMA.xml' => [ 'Huawei', 'Ascend Y520', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY520-U33v100WCDMA.xml' => [ 'Huawei', 'Ascend Y520', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y523_LTE_UAProfile.xml' => [ 'Huawei', 'Ascend Y523', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY530-U00-DT.xml' => [ 'Huawei', 'Ascend Y530', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY530-U00-Normal.xml' => [ 'Huawei', 'Ascend Y530', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY530-U051-Normal-DRM.xml' => [ 'Huawei', 'Ascend Y530', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY530-U051-Normal-MMS.xml' => [ 'Huawei', 'Ascend Y530', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY530-U051-Normal.xml' => [ 'Huawei', 'Ascend Y530', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY530-U051-Telecom-NZ.xml' => [ 'Huawei', 'Ascend Y530', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY530-U051-Telstra-MMS.xml' => [ 'Huawei', 'Ascend Y530', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Y536-A1.xml' => [ 'Huawei', 'Ascend Y536', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY540-U01v100WCDMA.xml' => [ 'Huawei', 'Ascend Y540', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y541-U02_UAProfile.xml' => [ 'Huawei', 'Ascend Y541', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Y541-U02_UAProfile.xml' => [ 'Huawei', 'Ascend Y541', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Y550-L01.xml' => [ 'Huawei', 'Ascend Y550', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Y550-L01_EE.xml' => [ 'Huawei', 'Ascend Y550', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Y550-L02-VHA-AU.xml' => [ 'Huawei', 'Ascend Y550', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Y550-L03.xml' => [ 'Huawei', 'Ascend Y550', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Y550-L03_PERU.xml' => [ 'Huawei', 'Ascend Y550', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y560-U02_UAProfile.xml' => [ 'Huawei', 'Ascend Y560', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y560_L_UAProfile.xml' => [ 'Huawei', 'Ascend Y560', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY600-U00_UAProfile.xml' => [ 'Huawei', 'Ascend Y600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY600-U151_UAProfile.xml' => [ 'Huawei', 'Ascend Y600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY600-U20_UAProfile.xml' => [ 'Huawei', 'Ascend Y600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY600-U351_UAProfile.xml' => [ 'Huawei', 'Ascend Y600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY600-U40_UAProfile.xml' => [ 'Huawei', 'Ascend Y600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY610-U00_UAProfile.xml' => [ 'Huawei', 'Ascend Y610', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y625_U13_UAProfile.xml' => [ 'Huawei', 'Ascend Y625', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y625_U21_UAProfile.xml' => [ 'Huawei', 'Ascend Y625', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y625_U32_UAProfile.xml' => [ 'Huawei', 'Ascend Y625', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y625_U51_UAProfile.xml' => [ 'Huawei', 'Ascend Y625', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y635-L01_UAProfile.xml' => [ 'Huawei', 'Ascend Y635', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y635-L01_UAProfile_EUROPE.xml' => [ 'Huawei', 'Ascend Y635', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y635-L01_UAProfile_TME.xml' => [ 'Huawei', 'Ascend Y635', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y635-L02_UAProfile.xml' => [ 'Huawei', 'Ascend Y635', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y635-L02_UAProfile_DRM.xml' => [ 'Huawei', 'Ascend Y635', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y635-L03_UAProfile.xml' => [ 'Huawei', 'Ascend Y635', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y635-L03_UAProfile_DRM.xml' => [ 'Huawei', 'Ascend Y635', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y635-L21_UAProfile.xml' => [ 'Huawei', 'Ascend Y635', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y635-L21_UAProfile_EUROPE.xml' => [ 'Huawei', 'Ascend Y635', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Y635-TL00_UAProfile.xml' => [ 'Huawei', 'Ascend Y635', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Y635-CL00_1_20140930.xml' => [ 'Huawei', 'Ascend Y635', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_B199.xml' => [ 'Huawei', 'B199', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_B199_1_20130806.xml' => [ 'Huawei', 'B199', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_B199_1_20131113.xml' => [ 'Huawei', 'B199', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8350v100GPRS.xml' => [ 'Huawei', 'Boulder', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8350v100WCDMA.xml' => [ 'Huawei', 'Boulder', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C199.xml' => [ 'Huawei', 'C199', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_C199s_UAProfile.xml' => [ 'Huawei', 'C199s', 'Android', DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiC5720CDMA1X.xml' => [ 'Huawei', 'C5720', null, DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HW/HW_HUAWEI_C5735_1_20110406.xml' => [ 'Huawei', 'C5735', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_C8500_1_20100127.xml' => [ 'Huawei', 'C8500', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8500S_1_20110511.xml' => [ 'Huawei', 'C8500', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8511_1_20110511.xml' => [ 'Huawei', 'C8511', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8512_20110817.xml' => [ 'Huawei', 'C8512', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8550_1_20111103.xml' => [ 'Huawei', 'C8550', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_C8600_1_20100127.xml' => [ 'Huawei', 'C8600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8650PLUS_1_20111025.xml' => [ 'Huawei', 'C8650', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8650_1_20110512.xml' => [ 'Huawei', 'C8650', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_c8650_2_20111116.xml' => [ 'Huawei', 'C8650', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8815_1_20130425.xml' => [ 'Huawei', 'C8815', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8817D.xml' => [ 'Huawei', 'C8817', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8817E.xml' => [ 'Huawei', 'C8817', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8817L.xml' => [ 'Huawei', 'C8817', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8818_1_20141217.xml' => [ 'Huawei', 'C8818', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiC8850v100CDMA.xml' => [ 'Huawei', 'C8850', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8687-Normal.xml' => [ 'Huawei', 'Chronos', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_TIT-AL00_Oversea_UAProfile.xml' => [ 'Huawei', 'Enjoy 5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_TIT-AL00_UAProfile .xml' => [ 'Huawei', 'Enjoy 5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_TIT-CL10_UAProfile.xml' => [ 'Huawei', 'Enjoy 5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_TIT-L01_UAProfile .xml' => [ 'Huawei', 'Enjoy 5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_TIT-L01_UAProfile.xml' => [ 'Huawei', 'Enjoy 5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_TIT-TL00_UAProfile.xml' => [ 'Huawei', 'Enjoy 5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_TIT-U02_UAProfile .xml' => [ 'Huawei', 'Enjoy 5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/TIT-AL00C583_UAProfile.xml' => [ 'Huawei', 'Enjoy 5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_CM990_1_20130108.xml' => [ 'Huawei', 'Evolución 3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiUM840v100GPRS.xml' => [ 'Huawei', 'Evolution', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiUM840v100WCDMA.xml' => [ 'Huawei', 'Evolution', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_CM980.xml' => [ 'Huawei', 'Evolution II', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8665GPRS-ATT.xml' => [ 'Huawei', 'Fusion 2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8665WCDMA-ATT.xml' => [ 'Huawei', 'Fusion 2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CHC-U01_UAProfile.xml' => [ 'Huawei', 'G Play Mini', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CHC-U23_UAProfile.xml' => [ 'Huawei', 'G Play Mini', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG6L11.xml' => [ 'Huawei', 'G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G6_C00.xml' => [ 'Huawei', 'G6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/G6609UAprofileV1.1.xml' => [ 'Huawei', 'G6609', 'MTK', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/G7300UAprofileV1.1.xml' => [ 'Huawei', 'G7300', 'MTK', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_G750-T00_UAProfile.xml' => [ 'Huawei', 'G750', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/G7500_UAProfile.xml' => [ 'Huawei', 'G7500', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/huawei/h868c/h868c.xml' => [ 'Huawei', 'Glory', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KII-L03_UAProfile.xml' => [ 'Huawei', 'GR5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KII-L05_UAProfile_1mb.xml' => [ 'Huawei', 'GR5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KII-L21_UAProfile.xml' => [ 'Huawei', 'GR5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KII-L23_DRM_UAProfile.xml' => [ 'Huawei', 'GR5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KII-L23_UAProfile.xml' => [ 'Huawei', 'GR5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_H870C.xml' => [ 'Huawei', 'H870C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8860-51GPRS-Normal.xml' => [ 'Huawei', 'Honor', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8860-51WCDMA-Normal.xml' => [ 'Huawei', 'Honor', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8860-92GPRS-EAccess.xml' => [ 'Huawei', 'Honor', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8860-92WCDMA-EAccess.xml' => [ 'Huawei', 'Honor', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8860GPRS-NORMAL-ICS.xml' => [ 'Huawei', 'Honor', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8860GPRS-NORMAL.xml' => [ 'Huawei', 'Honor', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8860WCDMA-NORMAL-ICS.xml' => [ 'Huawei', 'Honor', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8860WCDMA-NORMAL.xml' => [ 'Huawei', 'Honor', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8860E_1_20111103.xml' => [ 'Huawei', 'Honor', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8860_1_20110704.xml' => [ 'Huawei', 'Honor', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U9508_U06_UAProfile.xml' => [ 'Huawei', 'Honor 2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U9508_UAProfile.xml' => [ 'Huawei', 'Honor 2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_HN3_U01_UAProfile.xml' => [ 'Huawei', 'Honor 3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Hol-U19_UAProfile.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Hol_T00_UAProfile.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Hol_U10_UAProfile.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_H30-L01M_UAProfile.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_H30-L01_UAProfile.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_H30-L02_Global_UAProfile.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_H30-L02_UAProfile.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_H30-T00_UAProfile.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_H30-T10_Global_UAProfile.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_H30-T10_UAProfile.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_H30-U00_UAProfile.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_H30-U10_Global_UAProfile.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_H30-U10_UAProfile.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HONOR_H30-C00_20140420.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_H30-C00_20140420.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Hol-T00.xml' => [ 'Huawei', 'Honor 3C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-AL00_UAProfile.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-CL00_1_20150420.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-L01_DT_UAProfile.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-L01_Europe_DRM-UAProfile.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-L01_UAProfile.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-L02_UAProfile.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-L03_UAProfile-DRM.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-L04_UAProfile.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-L04_UAProfile_1MB.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-L21_Europe_DRM-UAProfile.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-L21_UAProfile.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-TL00H_UAProfile.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-TL00_UAProfile.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCL-U31_UAProfile.xml' => [ 'Huawei', 'Honor 4A', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CHM-TL00H_UAProfile.xml' => [ 'Huawei', 'Honor 4C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CHM-U01_UAProfile.xml' => [ 'Huawei', 'Honor 4C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CHM-UL00_UAProfile.xml' => [ 'Huawei', 'Honor 4C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_CHM-CL00_1_20141217.xml' => [ 'Huawei', 'Honor 4C', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/huawei/wsh892l/wsh892l.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_CHE-TL00H_6.0_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_Che1-CL20_6_0_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_Che1-L04_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_Che2-L11_Russia_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_Che2-L11_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_Che2-L12_5.1_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_Che2-L12_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_Che2-L23_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_Che2-TL00M_5.1_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', ], + 'http://wap1.huawei.com/uaprof/HONOR_Che2-TL00M_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_Che2-TL00_6.0_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_Che2-TL00_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_Che2-UL00_6.0_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_Che2-UL00_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CHE-TL00H_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CHE-TL00_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Che1-CL10_5.1_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Che1-CL20_5.1_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Che2-L23_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_Che2-UL00_UAProfile.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Che1-CL10_1_20140801.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_Che1-CL20.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOChe1-CL20.xml' => [ 'Huawei', 'Honor 4X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_UAProfile.xml' => [ 'Huawei', 'Honor 5C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KIW-AL10_6.0_UAProfile.xml' => [ 'Huawei', 'Honor 5X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KIW-AL10_UAProfile.xml' => [ 'Huawei', 'Honor 5X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KIW-CL00_1_20150425.xml' => [ 'Huawei', 'Honor 5X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KIW-CL00_6.0_UAProfile.xml' => [ 'Huawei', 'Honor 5X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KIW-L21_UAProfile.xml' => [ 'Huawei', 'Honor 5X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KIW-L21_UAProfile_DRM.xml' => [ 'Huawei', 'Honor 5X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KIW-L22_UAProfile.xml' => [ 'Huawei', 'Honor 5X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KIW-TL00H_UAProfile.xml' => [ 'Huawei', 'Honor 5X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KIW-TL00_6.0_UAProfile.xml' => [ 'Huawei', 'Honor 5X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KIW-TL00_UAProfile.xml' => [ 'Huawei', 'Honor 5X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KIW-UL00_UAProfile.xml' => [ 'Huawei', 'Honor 5X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_KIWL24_UAProfile.xml' => [ 'Huawei', 'Honor 5X', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_H60_J1_UAProfile.xml' => [ 'Huawei', 'Honor 6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_H60_L01_UAProfile.xml' => [ 'Huawei', 'Honor 6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_H60_L02_UAProfile.xml' => [ 'Huawei', 'Honor 6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_H60_L03_UAProfile.xml' => [ 'Huawei', 'Honor 6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_H60_L04_UAProfile.xml' => [ 'Huawei', 'Honor 6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_H60_L11_UAProfile.xml' => [ 'Huawei', 'Honor 6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_H60_L12_UAProfile.xml' => [ 'Huawei', 'Honor 6', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_E100-TL10_UAProfile.xml' => [ 'Huawei', 'Honor 6 Plus', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_E100-TL20_UAProfile.xml' => [ 'Huawei', 'Honor 6 Plus', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_E100-UL00_UAProfile.xml' => [ 'Huawei', 'Honor 6 Plus', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_E100_TL00M_UAProfile.xml' => [ 'Huawei', 'Honor 6 Plus', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_PE-TL10_UAProfile.xml' => [ 'Huawei', 'Honor 6 Plus', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_PE-TL20_UAProfile.xml' => [ 'Huawei', 'Honor 6 Plus', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_PE-UL00_UAProfile.xml' => [ 'Huawei', 'Honor 6 Plus', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_PE_TL00M_UAProfile.xml' => [ 'Huawei', 'Honor 6 Plus', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_E100-CL00_1_20141103.xml' => [ 'Huawei', 'Honor 6 Plus', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_PE-CL00_1_20141225.xml' => [ 'Huawei', 'Honor 6 Plus', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_PLK-AL10-Uaprofile.xml' => [ 'Huawei', 'Honor 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_PLK-L01-Uaprofile.xml' => [ 'Huawei', 'Honor 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_PLK-L01_UAProfile.xml' => [ 'Huawei', 'Honor 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_PLK-TL00-Uaprofile.xml' => [ 'Huawei', 'Honor 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_PLK-TL01H-Uaprofile.xml' => [ 'Huawei', 'Honor 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_PLK-UL00-Uaprofile.xml' => [ 'Huawei', 'Honor 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_C9746_1_20150319.xml' => [ 'Huawei', 'Honor 7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ATH-AL00_Uaprofile.xml' => [ 'Huawei', 'Honor 7i', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ATH-CL00_Uaprofile.xml' => [ 'Huawei', 'Honor 7i', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ATH-TL00_Uaprofile.xml' => [ 'Huawei', 'Honor 7i', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ATH-UL00_Uaprofile.xml' => [ 'Huawei', 'Honor 7i', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_CHM-TL00H_6.0_UAProfile.xml' => [ 'Huawei', 'Honor Play 4C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_CHM-TL00_5.1_UAProfile.xml' => [ 'Huawei', 'Honor Play 4C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_CHM-U01_UAProfile.xml' => [ 'Huawei', 'Honor Play 4C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HONOR_CHM-UL00_6.0_UAProfile.xml' => [ 'Huawei', 'Honor Play 4C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CHM-TL00_UAProfile.xml' => [ 'Huawei', 'Honor Play 4C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CHM-U01_Russia_UAProfile.xml' => [ 'Huawei', 'Honor Play 4C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_CHM-CL00_6_0_UAProfile.xml' => [ 'Huawei', 'Honor Play 4C', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ATH-UL01_DRM_Uaprofile.xml' => [ 'Huawei', 'Honor ShotX', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ATH-UL01_Uaprofile.xml' => [ 'Huawei', 'Honor ShotX', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8950D_1_20120704.xml' => [ 'Huawei', 'Honor+', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8150v100WCDMA.xml' => [ 'Huawei', 'IDEOS', 'Android', DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/Huawei-S7.xml' => [ 'Huawei', 'IDEOS S7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiS7v100EVDONormal.xml' => [ 'Huawei', 'IDEOS S7', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiS7v100GPRSNormal.xml' => [ 'Huawei', 'IDEOS S7', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiS7v100WCDMA.xml' => [ 'Huawei', 'IDEOS S7', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiS7v100WCDMANormal.xml' => [ 'Huawei', 'IDEOS S7', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiS7Slimv100WCDMA.xml' => [ 'Huawei', 'IDEOS S7 Slim', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8180GPRS.xml' => [ 'Huawei', 'IDEOS X1', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8180WCDMA.xml' => [ 'Huawei', 'IDEOS X1', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8500v100GPRSNormal.xml' => [ 'Huawei', 'IDEOS X2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8500v100WCDMANormal.xml' => [ 'Huawei', 'IDEOS X2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-1GPRS-2degrees.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-1GPRS-o2-Tchibo.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-1GPRS-o2.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-1GPRS-VDF_HU.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-1GPRS-VDF_PT.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-1GPRS-Wind_GR.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-1WCDMA-2degrees.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-1WCDMA-o2-Tchibo.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-1WCDMA-o2.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-1WCDMA-TAM_ID.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-1WCDMA-VDF_HU.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-1WCDMA-VDF_PT.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-5WCDMA-Iusacell_MX.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-5WCDMA-Iusacell_MX236.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510-92WCDMA-EAccess.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510GPRS-NORMAL235.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510GPRS-NORMAL236.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510WCDMA-NORMAL.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8510WCDMA-NORMAL235.xml' => [ 'Huawei', 'IDEOS X3', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8800-51v100GPRS.xml' => [ 'Huawei', 'IDEOS X5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8800-51v100WCDMA-ATT.xml' => [ 'Huawei', 'IDEOS X5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8800-51v100WCDMA.xml' => [ 'Huawei', 'IDEOS X5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8800iGPRS-NORMAL.xml' => [ 'Huawei', 'IDEOS X5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8800v100C2WCDMA.xml' => [ 'Huawei', 'IDEOS X5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8800v100GPRS.xml' => [ 'Huawei', 'IDEOS X5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8800v100WCDMA.xml' => [ 'Huawei', 'IDEOS X5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_C8800_1_20110222.xml' => [ 'Huawei', 'IDEOS X5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8800proGPRS-NORMAL.xml' => [ 'Huawei', 'IDEOS X5 Pro', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8800PROiGPRS-NORMAL.xml' => [ 'Huawei', 'IDEOS X5 Pro', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8800prov100GPRS.xml' => [ 'Huawei', 'IDEOS X5 Pro', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8800prov100WCDMA.xml' => [ 'Huawei', 'IDEOS X5 Pro', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8800proWCDMA-NORMAL.xml' => [ 'Huawei', 'IDEOS X5 Pro', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiH867GGPRS-Normal.xml' => [ 'Huawei', 'Inspira', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/Huawei-M328.xml' => [ 'Huawei', 'M328', null, DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/HUAWEI-M570.xml' => [ 'Huawei', 'M570', null, DeviceType::MOBILE ], + 'http://mms.mycricket.com/HUAWEI-M615.xml' => [ 'Huawei', 'M615', null, DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/Huawei-M635.xml' => [ 'Huawei', 'M635', null, DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/Huawei-M735.xml' => [ 'Huawei', 'M735', null, DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/Huawei-M835.xml' => [ 'Huawei', 'M835', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_M835_1_20110720.xml' => [ 'Huawei', 'M835', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/Huawei-M860.xml' => [ 'Huawei', 'M860', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/Huawei-M860F.xml' => [ 'Huawei', 'M860', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_H871G.xml' => [ 'Huawei', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CRR_L09_UAProfile.xml' => [ 'Huawei', 'Mate 8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_M200_L09_UAProfile.xml' => [ 'Huawei', 'Mate 8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_NXT-AL10_UAProfile.xml' => [ 'Huawei', 'Mate 8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_NXT-TL00_UAProfile.xml' => [ 'Huawei', 'Mate 8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_NXT-UL00_UAProfile.xml' => [ 'Huawei', 'Mate 8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_NXT-CL00_1_20151102.xml' => [ 'Huawei', 'Mate 8', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CRR-UL00_UAProfile.xml' => [ 'Huawei', 'Mate S', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CRR-UL20_UAProfile.xml' => [ 'Huawei', 'Mate S', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CRR_L09_UAProfile_3G.xml' => [ 'Huawei', 'Mate S', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_CRR-CL00_1_20150310.xml' => [ 'Huawei', 'Mate S', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_CRR-CL20_1_20150310.xml' => [ 'Huawei', 'Mate S', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPadEVDODataOnly.xml' => [ 'Huawei', 'MediaPad', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPadWCDMADataOnly.xml' => [ 'Huawei', 'MediaPad', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPadWCDMA_ICS.xml' => [ 'Huawei', 'MediaPad', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPadWIFIOnly.xml' => [ 'Huawei', 'MediaPad', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPadWIFIOnly_ICS.xml' => [ 'Huawei', 'MediaPad', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_201u.xml' => [ 'Huawei', 'MediaPad 10 Link', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_201wa.xml' => [ 'Huawei', 'MediaPad 10 Link', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_S10-231L.xml' => [ 'Huawei', 'MediaPad 10 Link', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_S10-231u.xml' => [ 'Huawei', 'MediaPad 10 Link', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_S10-231w.xml' => [ 'Huawei', 'MediaPad 10 Link', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/MediaPad7LiteWCDMA_ICS.xml' => [ 'Huawei', 'MediaPad 7 Lite', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/MediaPad7LiteWIFIOnly_ICS.xml' => [ 'Huawei', 'MediaPad 7 Lite', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad71111WCDMA.xml' => [ 'Huawei', 'MediaPad 7 Vivid', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad7611WCDMA.xml' => [ 'Huawei', 'MediaPad 7 Vivid', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad7601WCDMA.xml' => [ 'Huawei', 'MediaPad 7 Vogue', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad7601WIFIOnly.xml' => [ 'Huawei', 'MediaPad 7 Vogue', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_S7-601c.xml' => [ 'Huawei', 'MediaPad 7 Vogue', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad7701WIFIOnly.xml' => [ 'Huawei', 'MediaPad 7 Youth', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad770XWCDMA.xml' => [ 'Huawei', 'MediaPad 7 Youth', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad721XWCDMA.xml' => [ 'Huawei', 'MediaPad 7 Youth 2', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_S7-721g.xml' => [ 'Huawei', 'MediaPad 7 Youth 2', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_S7-721w.xml' => [ 'Huawei', 'MediaPad 7 Youth 2', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_S7-72Xu.xml' => [ 'Huawei', 'MediaPad 7 Youth 2', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_S8-301L.xml' => [ 'Huawei', 'MediaPad 8 Vogue', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_S8-301u.xml' => [ 'Huawei', 'MediaPad M1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_S8-301u_4_4.xml' => [ 'Huawei', 'MediaPad M1', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_S8-301w.xml' => [ 'Huawei', 'MediaPad M1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_S8-301L_4_4.xml' => [ 'Huawei', 'MediaPad M1 403HW', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/LST.xml' => [ 'Huawei', 'MediaPad M2', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/7D-501w.xml' => [ 'Huawei', 'MediaPad T1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad701XWCDMA.xml' => [ 'Huawei', 'MediaPad T1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_S8-701w.xml' => [ 'Huawei', 'MediaPad T1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediapad_S8-70Xu.xml' => [ 'Huawei', 'MediaPad T1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediapad_T1-701u.xml' => [ 'Huawei', 'Mediapad T1', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiMediapad_T1-701ua.xml' => [ 'Huawei', 'MediaPad T1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediapad_T1-701w.xml' => [ 'Huawei', 'MediaPad T1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediapad_T1-702u.xml' => [ 'Huawei', 'MediaPad T1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_T1-821L.xml' => [ 'Huawei', 'MediaPad T1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_T1-A21L.xml' => [ 'Huawei', 'MediaPad T1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/T1-701u.xml' => [ 'Huawei', 'MediaPad T1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/7D-501L.xml' => [ 'Huawei', 'MediaPad X1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/7D-501L_4_4.xml' => [ 'Huawei', 'MediaPad X1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/7D-501u.xml' => [ 'Huawei', 'MediaPad X1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/7D-501u_4_4.xml' => [ 'Huawei', 'MediaPad X1', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_7D-501L.xml' => [ 'Huawei', 'MediaPad X1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad_7D-501u.xml' => [ 'Huawei', 'MediaPad X1', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/X1S-703L.xml' => [ 'Huawei', 'MediaPad X1 S', 'Android', DeviceType::MOBILE ], + 'http://mms.openmobilepr.com/uaprof/HuaweiM886.xml' => [ 'Huawei', 'Mercury', 'Android', DeviceType::MOBILE ], + 'http://provantage.cleartalk.csky.us/ua/huawei_M886.xml' => [ 'Huawei', 'Mercury', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiM886-Cricket.xml' => [ 'Huawei', 'Mercury', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-L21_5.1_UAProfile.xml' => [ 'Huawei', 'P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_ALE-UL00_6.0_UAProfile.xml' => [ 'Huawei', 'P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_ALE-CL00_6_0_UAProfile.xml' => [ 'Huawei', 'P8 Lite', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_EVA-AL00_UAProfile.xml' => [ 'Huawei', 'P9', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_EVA-AL10_UAProfile.xml' => [ 'Huawei', 'P9', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_EVA-DL00_UAProfile.xml' => [ 'Huawei', 'P9', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/Huawei-M931.xml' => [ 'Huawei', 'Premia 4G', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_HUAWEI_H891L.xml' => [ 'Huawei', 'Pronto', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HW/HW_HUAWEI_S8520_1_20110819.xml' => [ 'Huawei', 'S8520', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/HW/HW_HUAWEI_S8600_1_20110825.xml' => [ 'Huawei', 'S8600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650GPRS-Normal.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650GPRS-Normal236.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650GPRS-UNICOM.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650GPRS-Vodafone-It.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650GPRS-Yoigo.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650WCDMA-Normal.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650WCDMA-Normal236.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650WCDMA-Taiwan.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650WCDMA-Tele2-HR.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650WCDMA-Tele2-LT.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650WCDMA-Tele2-SE.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650WCDMA-UNICOM.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650WCDMA-Vodafone-It.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650WCDMA-Yoigo.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8660GPRS-Normal.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8660WCDMA-Normal.xml' => [ 'Huawei', 'Sonic', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8661GPRS.xml' => [ 'Huawei', 'Sonic+', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8661WCDMA.xml' => [ 'Huawei', 'Sonic+', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.huawei.com/uaprof/HUAWEI-T8300-1.0.xml' => [ 'Huawei', 'T8300', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.huawei.com/uaprof/HUAWEI-T8600-1.0.xml' => [ 'Huawei', 'T8600', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_T8950N_UAProfile.xml' => [ 'Huawei', 'T8950N', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8651WCDMA-VTR.xml' => [ 'Huawei', 'Talon', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8651WCDMA-WIND.xml' => [ 'Huawei', 'Talon', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8820GPRS-NII.xml' => [ 'Huawei', 'Titan', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8820WCDMA-NII.xml' => [ 'Huawei', 'Titan', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU120v100.xml' => [ 'Huawei', 'U120', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U2800A_UAProfile.xml' => [ 'Huawei', 'U2800', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U2801_UAProfile.xml' => [ 'Huawei', 'U2801', 'Brew', DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiU3100v100UNIWCDMA.xml' => [ 'Huawei', 'U3100', null, DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiU3205v100WCDMA.xml' => [ 'Huawei', 'U3205', null, DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiU3300v100GPRS.xml' => [ 'Huawei', 'U3300', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U3900_ATTNormal.xml' => [ 'Huawei', 'U3900', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U5120_UAProfile.xml' => [ 'Huawei', 'U5120', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U5200_UAProfile.xml' => [ 'Huawei', 'U5200', 'Brew', DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiU526v100.xml' => [ 'Huawei', 'U526', null, DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiU528v100.xml' => [ 'Huawei', 'U528', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U5300_UAProfile.xml' => [ 'Huawei', 'U5300', 'Brew', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U5310_UAProfile.xml' => [ 'Huawei', 'U5310', 'Brew', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU535v100GPRS.xml' => [ 'Huawei', 'U535', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U6150_UAProfile.xml' => [ 'Huawei', 'U6150', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_U6150_WIND_UAProfile.xml' => [ 'Huawei', 'U6150', 'Brew', DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiU626v100.xml' => [ 'Huawei', 'U626', null, DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiV715v100WCDMA.xml' => [ 'Huawei', 'U715', null, DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiV716v100WCDMA.xml' => [ 'Huawei', 'U716', null, DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiV720v100WCDMA.xml' => [ 'Huawei', 'U720', null, DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiV725v100GPRS.xml' => [ 'Huawei', 'U725', null, DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiV725v100WCDMA.xml' => [ 'Huawei', 'U725', null, DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiU7510v100WCDMA.xml' => [ 'Huawei', 'U7510', null, DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiV810v100GPRS.xml' => [ 'Huawei', 'U810', null, DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiV810v100WCDMA.xml' => [ 'Huawei', 'U810', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8100-9v100WCDMA.xml' => [ 'Huawei', 'U8100', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8100v100GPRSNormal.xml' => [ 'Huawei', 'U8100', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8100v100WCDMANormal.xml' => [ 'Huawei', 'U8100', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8109GPRS.xml' => [ 'Huawei', 'U8109', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8109v100WCDMA.xml' => [ 'Huawei', 'U8109', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8110v100GPRS.xml' => [ 'Huawei', 'U8110', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8110v100GPRSNormal.xml' => [ 'Huawei', 'U8110', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8110v100WCDMA.xml' => [ 'Huawei', 'U8110', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8110v100WCDMANormal.xml' => [ 'Huawei', 'U8110', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8160WCDMA-MTS.xml' => [ 'Huawei', 'U8160', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8230v100GPRS.xml' => [ 'Huawei', 'U8230', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8230v100WCDMAEclair.xml' => [ 'Huawei', 'U8230', 'Android', DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiV830v100WCDMA.xml' => [ 'Huawei', 'U830', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8300v100GPRSNormal.xml' => [ 'Huawei', 'U8300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8300v100WCDMANormal.xml' => [ 'Huawei', 'U8300', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8652-51WCDMA-Normal236.xml' => [ 'Huawei', 'U8652', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8652WCDMA-Normal.xml' => [ 'Huawei', 'U8652', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8667GPRS-NII.xml' => [ 'Huawei', 'U8667', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8667WCDMA-NII.xml' => [ 'Huawei', 'U8667', 'Android', DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiU9130v100GPRS.xml' => [ 'Huawei', 'U9130', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8850v100WCDMA.xml' => [ 'Huawei', 'Vision', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_LUNA_UAProfile.xml' => [ 'Huawei', 'Y3 II', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/LUA-U23_UAProfile.xml' => [ 'Huawei', 'Y3 II', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CANCUN_UAProfile.xml,http://wap1.huawei.com/uaprof/HUAWEI_CUN_L_UAProfile.xml'=> [ 'Huawei', 'Y5 II', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CUN_L_UAProfile.xml' => [ 'Huawei', 'Y5 II', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HUAWEI_CUN_U_UAProfile.xml' => [ 'Huawei', 'Y5 II', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HW_SCC-U21_UAProfile.xml' => [ 'Huawei', 'Y6', 'Android', DeviceType::MOBILE ], + 'http://imatemms.imate.com/gen/UAProf_8502_v1.xml' => [ 'i-mate', '8502', null, DeviceType::MOBILE ], + 'http://imatemms.imate.com/gen/UAProf_9502_v1.xml' => [ 'i-mate', '9502', null, DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/tmo/i-mate K-JAM PPC-1.3.xml' => [ 'i-mate', 'K-JAM', 'Windows Mobile', DeviceType::MOBILE ], + 'http://imatemms.imate.com/gen/UAProf_Pebble_v1.xml' => [ 'i-mate', 'Pebble', null, DeviceType::MOBILE ], + 'http://asmobile.ehosting.com.tw/uaprof/i-mobile607.xml' => [ 'i-mobile', '607', null, DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/i-mobile/i-STYLE2.9.xml' => [ 'i-Mobile', 'i-Style 2.9', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/i-mobile/i-STYLE7.6.xml' => [ 'i-Mobile', 'i-Style 7.6', 'Android', DeviceType::MOBILE ], + 'http://uap.cellon.com/i-mobile IQ X.xml' => [ 'i-Mobile', 'iQ X', 'Android', DeviceType::MOBILE ], + 'http://uap.cellon.com/i-mobile IQ X2.xml' => [ 'i-Mobile', 'iQ X2', 'Android', DeviceType::MOBILE ], + 'http://uap.cellon.com/i-mobile IQ XA.xml' => [ 'i-mobile', 'iQ XA', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/BS/Brightstar_Avvio_760.xml' => [ 'Ilium', 'Avvio 760', 'Android', DeviceType::MOBILE ], + 'http://xmlsite3.webs.com/Brightstar_Avvio_760.xml' => [ 'Ilium', 'Avvio 760', 'Android', DeviceType::MOBILE ], + 'http://ua.tinno.com/profile/latinamerica/brightstar/Avvio765_UAProf.xml' => [ 'Ilium', 'AVVIO 765', 'Android', DeviceType::MOBILE ], + 'http://ua.tinno.com/profile/latinamerica/brightstar/Avvio785_UAProf.xml' => [ 'Ilium', 'AVVIO 785', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/Brightstar/Avvio_790.xml' => [ 'Ilium', 'Avvio 790', 'Android', DeviceType::MOBILE ], + 'http://guardsys.museui.com/Avvio793_WAP_BROWSER.xml' => [ 'Ilium', 'AVVIO 793', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/N26/IN260.xml' => [ 'InFocus', 'IN260', 'Android', DeviceType::MOBILE ], + 'http://www.c2dms.com/UAProfile/IVM/IN330.xml' => [ 'InFocus', 'IN330', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/VKY/IN810.xml' => [ 'InFocus', 'IN810', 'Android', DeviceType::MOBILE ], + 'http://www.c2dms.com/UAProfile/VKY/IN810.xml' => [ 'InFocus', 'IN810', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/LSO/M2.xml' => [ 'InFocus', 'M2', 'Android', DeviceType::MOBILE ], + 'http://www.c2dms.com/UAProfile/LSO/M2.xml' => [ 'InFocus', 'M2', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/H1M/M210.xml' => [ 'InFocus', 'M210', 'Android', DeviceType::MOBILE ], + 'http://www.c2dms.com/UAProfile/H1M/M210.xml' => [ 'InFocus', 'M210', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/H1W/M310.xml' => [ 'InFocus', 'M310', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/D70/M320m.xml' => [ 'InFocus', 'M320', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/D70/M320u.xml' => [ 'InFocus', 'M320', 'Android', DeviceType::MOBILE ], + 'http://www.c2dms.com/UAProfile/D70/M320u.xml' => [ 'InFocus', 'M320', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/TID/InFocus M510t.xml' => [ 'InFocus', 'M510', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/TID/PZ_InFocus_M510t.xml' => [ 'InFocus', 'M510', 'Android', DeviceType::MOBILE ], + 'http://www.c2dms.com/UAProfile/TID_CHT/M510.xml' => [ 'InFocus', 'M510', 'Android', DeviceType::MOBILE ], + 'http://www.c2dms.com/UAProfile/TID_TWN/InFocus M511.xml' => [ 'InFocus', 'M511', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/MC2_CN/M512.xml' => [ 'InFocus', 'M512', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/VNA/M810u.xml' => [ 'InFocus', 'M810', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/VNA/PZ_M810t.xml' => [ 'Infocus', 'M810', 'Android', DeviceType::MOBILE ], + 'http://wap.innostream.com/uaprof/INNO30.xml' => [ 'Innostream', 'INNO 30', null, DeviceType::MOBILE ], + 'http://wap.innostream.com/uaprof/INNO55.xml' => [ 'Innostream', 'INNO 55', null, DeviceType::MOBILE ], + 'http://wap.innostream.com/uaprof/INNO89.xml' => [ 'Innostream', 'INNO 89', null, DeviceType::MOBILE ], + 'http://wap.innostream.com/uaprof/INNO90.xml' => [ 'Innostream', 'INNO 90', null, DeviceType::MOBILE ], + 'http://wap.innostream.com/uaprof/INNO98.xml' => [ 'Innostream', 'INNO 98', null, DeviceType::MOBILE ], + 'http://wap.innostream.com/uaprof/INNOA10.xml' => [ 'Innostream', 'INNO A10', null, DeviceType::MOBILE ], + 'http://wap.innostream.com/uaprof/INNOA10_W2.xml' => [ 'Innostream', 'INNO A10', null, DeviceType::MOBILE ], + 'http://www.inqmobile.com/ua/inq1.xml' => [ 'INQ', 'INQ1', null, DeviceType::MOBILE ], + 'http://50.18.182.85/profile/AZ210_UA_Profile.xml' => [ 'Intel', 'AZ210', 'Android', DeviceType::MOBILE ], + 'http://50.18.182.85/profile/AZ210A_UA_Profile.xml' => [ 'Intel', 'AZ210A', 'Android', DeviceType::MOBILE ], + 'http://downloadmirror.intel.com/20932/eng/AZ210A_UA_Profile.xml' => [ 'Intel', 'AZ210A', 'Android', DeviceType::MOBILE ], + 'http://downloadmirror.intel.com/20932/eng/AZ210B_UA_Profile.xml' => [ 'Intel', 'AZ210B', 'Android', DeviceType::MOBILE ], + 'http://www.ibbprof.com/uaprof/AZ210B_UA_Profile.xml' => [ 'Intel', 'AZ210B', 'Android', DeviceType::MOBILE ], + 'http://50.18.182.85/profile/AZ510_UA_Profile.xml' => [ 'Intel', 'AZ510', 'Android', DeviceType::MOBILE ], + 'http://downloadmirror.intel.com/20932/eng/AZ510_UA_Profile.xml' => [ 'Intel', 'AZ510', 'Android', DeviceType::MOBILE ], + 'http://www.ibbprof.com/uaprof/AZ510_UA_Profile.xml' => [ 'Intel', 'AZ510', 'Android', DeviceType::MOBILE ], + 'http://downloadmirror.intel.com/20932/eng/BT210_UA_Profile.xml' => [ 'Intel', 'BT210', 'Android', DeviceType::MOBILE ], + 'http://downloadmirror.intel.com/20932/eng/BT230_UA_Profile.xml' => [ 'Intel', 'BT230', 'Android', DeviceType::MOBILE ], + 'http://downloadmirror.intel.com/20932/eng/BT510_UA_Profile.xml' => [ 'Intel', 'BT510', 'Android', DeviceType::MOBILE ], + 'http://intextechnologies.com/wap/intex_Cloud-X3.xml' => [ 'Intex', 'Cloud X3', 'Android', DeviceType::MOBILE ], + 'http://www.intextechnologies.com/wap/intex_Cloud-Y1.xml' => [ 'Intex', 'Cloud Y1', 'Android', DeviceType::MOBILE ], + 'http://intextechnologies.com/wap/intex_Cloud-y2.xml' => [ 'Intex', 'Cloud Y2', 'Android', DeviceType::MOBILE ], + 'http://mobile.itelcospa.it/useragent/ITELCO-IT2500.xml' => [ 'Itelco', 'IT2500', null, DeviceType::MOBILE ], + 'http://uaprofs.scm.ixi.com:8080/UAProfs/ct-25m-scm-q0108.xml' => [ 'IXI', 'CT 25m', null, DeviceType::MOBILE ], + 'http://www.nyxmobile.com/UAProfile/zeuzhd/NYX_ZEUZ_HD.xml' => [ 'Jiayu', 'G4C', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Jiayu_G4S.xml' => [ 'Jiayu', 'G4S', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOJY-G5.xml' => [ 'Jiayu', 'G5', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/TY/TY_E619+_1_20121123.xml' => [ 'K-Touch', 'E619', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/TY/TY_K-Touch_E619+_1_20121203.xml' => [ 'K-Touch', 'E619', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/ktouch-e620.xml' => [ 'K-Touch', 'E620', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/ktouch-e650.xml' => [ 'K-Touch', 'E650', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/ktouch-e780.xml' => [ 'K-Touch', 'E780', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/ktouch-e815.xml' => [ 'K-Touch', 'E815', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S898t+_KK_UAprofile.xml' => [ 'K-Touch', 'Niburu Mars One H1', 'Android', DeviceType::MOBILE ], + 'http://www.ontim.com.cn/ua/K-Touch_T580_uaprofile.xml' => [ 'K-Touch', 'T580', 'Android', DeviceType::MOBILE ], + 'http://114.251.81.153/t660/K-Touch_T660_profile_3G.xml' => [ 'K-Touch', 'T660', 'Android', DeviceType::MOBILE ], + 'http://114.251.81.153/UAProfile/U81t/K-Touch_U81t_UAProfile.xml' => [ 'K-Touch', 'U81t', 'Android', DeviceType::MOBILE ], + 'http://218.206.177.209:8080/waptest/browser15/TC3.html' => [ 'KATA', 'i3s', 'Android', DeviceType::MOBILE ], + 'http://tsprdev.com/kazam/ua/spain/movistar/KAZAM_Trooper_450_UAprofile.xml' => [ 'KAZAM', 'Trooper 450', 'Android', DeviceType::MOBILE ], + 'http://asmobile.ehosting.com.tw/uaprof/KingcomInjoyMS02.xml' => [ 'Kingcom', 'Injoy MS02', null, DeviceType::MOBILE ], + 'http://guardsys.museui.com/KIOTO793_WAP_BROWSER.xml' => [ 'KIOTO', '793', 'Android', DeviceType::MOBILE ], + 'http://www.mobilesoft.com.cn/UAProfile/CMSMMS2003.xml' => [ 'Konka', 'C908', null, DeviceType::MOBILE ], + 'http://www.konkamobile.com/profile/konka_k3.xml' => [ 'Konka', 'K3', 'Android', DeviceType::MOBILE ], + 'http://www.konkamobile.com/uploadfile/KONKA_V926_UAProfile.xml' => [ 'Konka', 'V926', 'Android', DeviceType::MOBILE ], + 'http://www.kkcool.com/hw/KONKA_V936.xml' => [ 'Konka', 'V936', 'Android', DeviceType::MOBILE ], + 'http://www.kkcool.com/hw/KONKA_V980.xml' => [ 'Konka', 'V980', 'Android', DeviceType::MOBILE ], + 'http://www.konkamobile.com/profile/KONKA_V987.xml' => [ 'Konka', 'V987', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/KPN_Smart_300.xml' => [ 'KPN', 'Smart 300', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/KPN_Smart_400.xml' => [ 'KPN', 'Smart 400', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Kyivstar Spark.xml' => [ 'Kyivstar', 'Spark', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/S2151-BST/1.001BT.rdf' => [ 'Kyocera', 'Coast S2151', 'Brew MP', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/S2151-PLB/1.001VM.rdf' => [ 'Kyocera', 'Coast S2151', 'Brew', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/Kyocera/vmk325/VMU_Thunder_UAProf.xml' => [ 'Kyocera', 'Cyclops', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Kyocera/E4277/1308SP.rdf' => [ 'Kyocera', 'E4277', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Kyocera/M9300/1100SP.rdf' => [ 'Kyocera', 'Echo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Kyocera/M9300/2002SP.rdf' => [ 'Kyocera', 'Echo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Kyocera/M9300/2006SP.rdf' => [ 'Kyocera', 'Echo', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/JC/JC_KSP8000_3_20111228.xml' => [ 'Kyocera', 'Echo', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/JC/JC_KSP8000_3_20120209.xml' => [ 'Kyocera', 'Echo', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/JC/JC_KSP8000_4_20120308.xml' => [ 'Kyocera', 'Echo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5133-2012102201/1.020VM.rdf' => [ 'Kyocera', 'Event', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5133-Chameleon/latest' => [ 'Kyocera', 'Event', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5133-VIRGIN/1.005VM.rdf' => [ 'Kyocera', 'Event', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5133-VIRGIN/1.010VM.rdf' => [ 'Kyocera', 'Event', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5133-VIRGIN/1.020VM.rdf' => [ 'Kyocera', 'Event', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5170-2011050301/1.200BT.rdf' => [ 'Kyocera', 'Hydro', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5170-2012051001/1.001BT.rdf' => [ 'Kyocera', 'Hydro', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5170-2012102201/1.200BT.rdf' => [ 'Kyocera', 'Hydro', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5170-BOOST/1.000BT.rdf' => [ 'Kyocera', 'Hydro', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5170-BOOST/1.001BT.rdf' => [ 'Kyocera', 'Hydro', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5170-BOOST/1.006BT.rdf' => [ 'Kyocera', 'Hydro', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5170-BOOST/1.010BT.rdf' => [ 'Kyocera', 'Hydro', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5170-BOOST/1.200BT.rdf' => [ 'Kyocera', 'Hydro', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5170-BOOST/1.201BT.rdf' => [ 'Kyocera', 'Hydro', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Kyocera/C5170-BST/0510BT.rdf' => [ 'Kyocera', 'Hydro', 'Android', DeviceType::MOBILE ], + 'http://wapuaprof.mycricket.com/kyo_c5171.xml' => [ 'Kyocera', 'Hydro', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5215-BOOST/1.001.rdf' => [ 'Kyocera', 'Hydro Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5215-BOOST/1.002.rdf' => [ 'Kyocera', 'Hydro Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5215-BOOST/1.010.rdf' => [ 'Kyocera', 'Hydro Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5215-BOOST/1.020.rdf' => [ 'Kyocera', 'Hydro Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5215-Chameleon/latest' => [ 'Kyocera', 'Hydro Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5215-SPRINT/1.020.rdf' => [ 'Kyocera', 'Hydro Edge', 'Android', DeviceType::MOBILE ], + 'http://uaprof.publicmobile.ca/Kyocera/Hydro_C5216_0.200NP.rdf' => [ 'Kyocera', 'Hydro Edge', 'Android', DeviceType::MOBILE ], + 'http://uaprof.publicmobile.ca/Kyocera/Hydro_C5216_0.300NP.rdf' => [ 'Kyocera', 'Hydro Edge', 'Android', DeviceType::MOBILE ], + 'http://uaprof.publicmobile.ca/Kyocera/Hydro_C5216_0.350NP.rdf' => [ 'Kyocera', 'Hydro Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C6730-BOOST/1.003.rdf' => [ 'Kyocera', 'Hydro Icon', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C6730-BOOST/1.010.rdf' => [ 'Kyocera', 'Hydro Icon', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C6730-Chameleon/latest' => [ 'Kyocera', 'Hydro Icon', 'Android', DeviceType::MOBILE ], + 'http://www.kyocera-wireless.com/UAProf/C6530/C6530N_TM002.xml' => [ 'Kyocera', 'Hydro Life', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C6725-SPRINT/1.003.rdf' => [ 'Kyocera', 'Hydro Vibe', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C6725-VIRGIN/1.003.rdf' => [ 'Kyocera', 'Hydro Vibe', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/kyocera-C6721.xml' => [ 'Kyocera', 'Hydro XTRM', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/KYOCERA/C6721/0.920US.xml' => [ 'Kyocera', 'Hydro XTRM', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/KYOCERA/C6721/0.990US.xml' => [ 'Kyocera', 'Hydro XTRM', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/KYOCERA/C6721/1.000US.xml' => [ 'Kyocera', 'Hydro XTRM', 'Android', DeviceType::MOBILE ], + 'http://www.kyocera-wireless.com/UAProf/C6522/C6522N_TM001.xml' => [ 'Kyocera', 'Hydro XTRM', 'Android', DeviceType::MOBILE ], + 'http://www.kyocera-wireless.com/UAProf/C6522/C6522N_TM002.xml' => [ 'Kyocera', 'Hydro XTRM', 'Android', DeviceType::MOBILE ], + 'http://www.kyocera-wireless.com/UAProf/C6522/C6522_TM001.xml' => [ 'Kyocera', 'Hydro XTRM', 'Android', DeviceType::MOBILE ], + 'https://servicios.iusacell.com.mx/kyo/KX18.xml' => [ 'Kyocera', 'KX18', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Kyocera/C5120-BST/1.100BT.rdf' => [ 'Kyocera', 'Milano', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Kyocera/C5120/1007SP.rdf' => [ 'Kyocera', 'Milano', 'Android', DeviceType::MOBILE ], + 'http://mms.revol.us/uaprofs/Oblique_C5121.xml' => [ 'Kyocera', 'Milano', 'Android', DeviceType::MOBILE ], + 'http://www.kyoceramobile.com/UAProf/S1370/S1370_TB001.xml' => [ 'Kyocera', 'Rally', 'Brew MP', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5155-2011011301/1.011SP.rdf' => [ 'Kyocera', 'Rise', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5155-SPRINT/1.003SP.rdf' => [ 'Kyocera', 'Rise', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5155-SPRINT/1.005SP.rdf' => [ 'Kyocera', 'Rise', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/C5155-SPRINT/1.011SP.rdf' => [ 'Kyocera', 'Rise', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Kyocera/C5155/0401SP.rdf' => [ 'Kyocera', 'Rise', 'Android', DeviceType::MOBILE ], + 'http://profile.kyocera-wireless.com/uaprof/Rise_C5156_1.002PM.rdf' => [ 'Kyocera', 'Rise', 'Android', DeviceType::MOBILE ], + 'http://profile.kyocera-wireless.com/uaprof/Rise_C5156_1.101PM.rdf' => [ 'Kyocera', 'Rise', 'Android', DeviceType::MOBILE ], + 'http://uaprof.publicmobile.ca/Kyocera/Rise_C5156_1.101PM.rdf' => [ 'Kyocera', 'Rise', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/Kyocera/C5155-VMUB/1.0/UAProf.xml' => [ 'Kyocera', 'Rise', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/KYOCERA/K10-Royale/VMU_Royale_UAProf.xml' => [ 'Kyocera', 'Royale', null, DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/kyocera/S2000i/VMU_S2000i_UAProf.xml' => [ 'Kyocera', 'S2000i', null, DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/KYOCERA/K612/VMU_Switch_Back_UAProf.xml' => [ 'Kyocera', 'Strobe', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/E6710-Chameleon/latest' => [ 'Kyocera', 'Torque', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/E6710-SPRINT/1.005SP.rdf' => [ 'Kyocera', 'Torque', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/E6710-SPRINT/1.006SP.rdf' => [ 'Kyocera', 'Torque', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/E6710-SPRINT/1.007SP.rdf' => [ 'Kyocera', 'Torque', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/E6710-SPRINT/2.002SP.rdf' => [ 'Kyocera', 'Torque', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/E6710-SPRINT/2.300SP.rdf' => [ 'Kyocera', 'Torque', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/E6710-SPRINT/2.602SP.rdf' => [ 'Kyocera', 'Torque', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/E6710-SPRINT/3.000SP.rdf' => [ 'Kyocera', 'Torque', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/PL8600/1004PL.rdf' => [ 'Kyocera', 'Zio', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/PL8600/2103PL.rdf' => [ 'Kyocera', 'Zio', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP8600/2200SP.rdf' => [ 'Kyocera', 'Zio', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/profiles/Lanix_Ilium_L1100.xml' => [ 'Lanix', 'Ilium L1100', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/profiles/Lanix_IliumL400.xml' => [ 'Lanix', 'Ilium L400', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/profiles/Lanix_ILIUM_L820.xml' => [ 'Lanix', 'Ilium L820', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/profiles/Lanix_ILIUM_S106.xml' => [ 'Lanix', 'Ilium S106', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/Profiles/Lanix_IliumS115.xml' => [ 'Lanix', 'Ilium S115', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/Profiles/Lanix_IliumS120.xml' => [ 'Lanix', 'Ilium S120', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/profiles/Lanix_ILIUM_S130.xml' => [ 'Lanix', 'Ilium S130', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/Profiles/Lanix_iliumS200.xml' => [ 'Lanix', 'Ilium S200', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/Profiles/Lanix_IliumS210.xml' => [ 'Lanix', 'Ilium S210', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/Profiles/Lanix_iliumS400.xml' => [ 'Lanix', 'Ilium S400', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/Profiles/Lanix_IliumS410.xml' => [ 'Lanix', 'Ilium S410', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/Profiles/Lanix_iliumS50.xml' => [ 'Lanix', 'Ilium S50', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/Profiles/Lanix_IliumS500.xml' => [ 'Lanix', 'Ilium S500', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/Profiles/Lanix_IliumS700.xml' => [ 'Lanix', 'Ilium S700', 'Android', DeviceType::MOBILE ], + 'http://www.lanixmobile.com/profiles/Lanix_IliumX200.xml' => [ 'Lanix', 'Ilium X200', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/Lava/Flair%20P8.xml' => [ 'Lava', 'Flair P8', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/lava/LAVA_IRIS_355.xml' => [ 'Lava', 'Iris 355', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/lava/LAVA_IRIS356.xml' => [ 'Lava', 'Iris 356', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/Lava/LAVA_IRIS_360m_style.xml' => [ 'Lava', 'Iris 360M', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/Lava/IRIS_400C.XML' => [ 'Lava', 'Iris 400 Colour', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/lava/LAVA_IRIS402.xml' => [ 'Lava', 'Iris 402', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/Lava/LAVA_IRIS412.xml' => [ 'Lava', 'Iris 412', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/Lava/LAVA_IRIS415.xml' => [ 'Lava', 'Iris 415', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/lava/LAVA_IRIS_501.xml' => [ 'Lava', 'Iris 501', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/lava/LAVA_IRIS504Q.xml' => [ 'Lava', 'Iris 504Q', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/Lava/LAVA_IRIS504Q+.xml' => [ 'Lava', 'Iris 504QP', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/lava/LAVA_IRIS506Q.xml' => [ 'Lava', 'Iris 506Q', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/Lava/Iris_Alfa_L.xml' => [ 'Lava', 'Iris Alfa L', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/Micromax/Micromax_A107.xml' => [ 'Lava', 'Iris fuel50', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/Lava/Iris%20Fuel60.xml' => [ 'Lava', 'Iris fuel60', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/lava/LAVA_N320.xml' => [ 'Lava', 'Iris N320', 'Android', DeviceType::MOBILE ], + 'http://uap.cellon.com/M8047LAL.xml' => [ 'Lava', 'Iris Pro 20', 'Android', DeviceType::MOBILE ], + 'http://uap.cellon.com/M8047LA.xml' => [ 'Lava', 'Iris Pro 30', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/Lava/Lava_Iris_X1_Grand.xml' => [ 'Lava', 'Iris X1 Grand', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/Lava/Lava_Iris_X5.xml' => [ 'Lava', 'Iris X5', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/Lava/LAVA_IRISX8.xml' => [ 'Lava', 'Iris X8', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/Lava/X9.xml' => [ 'Lava', 'Iris X9', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/XOLO/XOLO_A500L.xml' => [ 'Lava', 'XOLO A500L', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/XOLO/XOLO_A500sLite.xml' => [ 'Lava', 'XOLO A500S Lite', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/XOLO/BLACK.xml' => [ 'Lava', 'XOLO Black', 'Android', DeviceType::MOBILE ], + 'http://msai.in/uaprof/XOLO/Play%20100.xml' => [ 'Lava', 'XOLO Play 6X-1000', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/XOLO/Play%208X-1100.xml' => [ 'Lava', 'XOLO Play 8X-1100', 'Android', DeviceType::MOBILE ], + 'http://wap.msaiuap.in/xolo/Q1000S.xml' => [ 'Lava', 'XOLO Q1000S', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/XOLO/XOLO_Q1010i.xml' => [ 'Lava', 'XOLO Q1010i', 'Android', DeviceType::MOBILE ], + 'http://msai.in/uaprof/XOLO/Q1011.xml' => [ 'Lava', 'XOLO Q1011', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/XOLO/Q2100.xml' => [ 'Lava', 'XOLO Q2100', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/XOLO/Q3000.xml' => [ 'Lava', 'XOLO Q3000', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/XOLO/XOLO_Q900T.xml' => [ 'Lava', 'XOLO Q900T', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/lava/Q700.xml' => [ 'Lava', 'XOLO X900', 'Android', DeviceType::MOBILE ], + 'http://www.lemonmobiles.com/UAP/LemonP105.xml' => [ 'Lemon', 'P105', 'Android', DeviceType::MOBILE ], + 'http://www.lemonmobiles.com/UAP/LemonP3.xml' => [ 'Lemon', 'P3', 'Android', DeviceType::MOBILE ], + 'http://www.lemonmobiles.com/UAP/LemonP5.xml' => [ 'Lemon', 'P5', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A300_UAProfile.xml' => [ 'Lenovo', 'A300', 'Android', DeviceType::MOBILE ], + 'http://10.125.33.169:8080/LNV_Lenovo_A305e_2_20130627.xml' => [ 'Lenovo', 'A305', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A319_AMX_UAProfile.xml' => [ 'Lenovo', 'A319', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A326_UAProfile.xml' => [ 'Lenovo', 'A326', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A360_UAProfile.xml' => [ 'Lenovo', 'A360', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/downfile/LNV_Lenovo_A360e_1_20130925.xml' => [ 'Lenovo', 'A360', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A366t_UAProfile.xml' => [ 'Lenovo', 'A366', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A378t_UAProfile.xml' => [ 'Lenovo', 'A378', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A500_UAProfile.xml' => [ 'Lenovo', 'A500', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A516_ROW_UAProfile.xml' => [ 'Lenovo', 'A516', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A516_UAProfile.xml' => [ 'Lenovo', 'A516', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A520_UAProfile.xml' => [ 'Lenovo', 'A520', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo%20A526_ROW_UAProfile_0120.xml' => [ 'Lenovo', 'A526', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S650_KK_ROW_UAprofile.xml' => [ 'Lenovo', 'A536', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/TYZ/LNV_Lenovo_A560e_1_20111220.xml' => [ 'Lenovo', 'A560', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A588t_UAProfile.xml' => [ 'Lenovo', 'A588', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A60_UAProfile.xml' => [ 'Lenovo', 'A60', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A630e_UAProfile.xml' => [ 'Lenovo', 'A630', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A630t_UAProfile.xml' => [ 'Lenovo', 'A630', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A65_UAProfile.xml' => [ 'Lenovo', 'A65', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A656_UAProfile.xml' => [ 'Lenovo', 'A656', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A66t_profile_3G.xml' => [ 'Lenovo', 'A66', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/A660_UAprofile.xml' => [ 'Lenovo', 'A660', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A678t_UAProfile.xml' => [ 'Lenovo', 'A678', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/LNV/LNV_Lenovo_A68e_1_20110715.xml' => [ 'Lenovo', 'A68', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A698t_UAProfile.xml' => [ 'Lenovo', 'A698', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A700e_UAProfile.xml' => [ 'Lenovo', 'A700', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A750_UAProfile.xml' => [ 'Lenovo', 'A750', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A7600-m_UAprofile.xml' => [ 'Lenovo', 'A760', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A7600_UAprofile.xml' => [ 'Lenovo', 'A7600', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A766_UAProfile.xml' => [ 'Lenovo', 'A766', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A789_UAProfile.xml' => [ 'Lenovo', 'A789', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/LNV/LNV_AE760_1_20111024.xml' => [ 'Lenovo', 'A790', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A798t_UAProfile.xml' => [ 'Lenovo', 'A798', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A800_UAProfile.xml' => [ 'Lenovo', 'A800', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A806_UAprofile.xml' => [ 'Lenovo', 'A806', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A808t-i_UAprofile.xml' => [ 'Lenovo', 'A808', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A808t_UAprofile.xml' => [ 'Lenovo', 'A808', 'Android', DeviceType::MOBILE ], + 'http://www.Lenovo.com.cn/mobile/uaprof/Lenovo_A820t.xml' => [ 'Lenovo', 'A820', 'Android', DeviceType::MOBILE ], + 'http://www.Lenovo.com.cn/mobile/uaprof/ZTE_V967S.xml' => [ 'Lenovo', 'A820', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A820t_UAProfile.xml' => [ 'Lenovo', 'A820', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A820_UAProfile.xml' => [ 'Lenovo', 'A820', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOLenovo A820.xml' => [ 'Lenovo', 'A820', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A830_UAProfile.xml' => [ 'Lenovo', 'A830', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A850+_UAprofile.xml' => [ 'Lenovo', 'A850', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A850plus_UAprofile.xml' => [ 'Lenovo', 'A850', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A850_ROW_UAProfile.xml' => [ 'Lenovo', 'A850', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A850_UAProfile.xml' => [ 'Lenovo', 'A850', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A859_ROW_UAprofile.xml' => [ 'Lenovo', 'A859', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A936_UAprofile.xml' => [ 'Lenovo', 'A936', 'Android', DeviceType::TABLET ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_A938t_UAprofile.xml' => [ 'Lenovo', 'A938', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_B6000-HV_UAProfile.xml' => [ 'Lenovo', 'B6000 Yoga Tablet 8', 'Android', DeviceType::TABLET ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_B6000-H_UAProfile.xml' => [ 'Lenovo', 'B6000 Yoga Tablet 8', 'Android', DeviceType::TABLET ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/download_20071165379380.xml' => [ 'Lenovo', 'E303', null, DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/i325wg_Profile.xml' => [ 'Lenovo', 'i325wg', null, DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/download_2006815893438.xml' => [ 'Lenovo', 'I720', null, DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/download_2007736634847.xml' => [ 'Lenovo', 'I906', null, DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/download_20075225142784.xml' => [ 'Lenovo', 'I908', null, DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_B8000-H_UAProfile.xml' => [ 'Lenovo', 'IdeaTab B8000', 'Android', DeviceType::TABLET ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S5000-H_UAProfile.xml' => [ 'Lenovo', 'IdeaTab S5000', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_K50-T5_UAprofile.xml' => [ 'Lenovo', 'K50', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_P70-A.xml' => [ 'Lenovo', 'P70', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_P70_UAProfile.xml' => [ 'Lenovo', 'P70', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/download_20071236069306.xml' => [ 'Lenovo', 'P768', null, DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_P770_ROW_UAProfile.xml' => [ 'Lenovo', 'P770', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_P770_UAProfile.xml' => [ 'Lenovo', 'P770', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/download_20067105107369.xml' => [ 'Lenovo', 'P780', null, DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_P780_KK_UAProfile.xml' => [ 'Lenovo', 'P780', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_P780_ROW_UAProfile.xml' => [ 'Lenovo', 'P780', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_P780_UAProfile.xml' => [ 'Lenovo', 'P780', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOLenovo P780.xml' => [ 'Lenovo', 'P780', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S650_KK_UAprofile.xml' => [ 'Lenovo', 'S650', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S650_ROW_UAprofile.xml' => [ 'Lenovo', 'S650', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S650_UAprofile.xml' => [ 'Lenovo', 'S650', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S658t_KK_UAprofile.xml' => [ 'Lenovo', 'S658', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S658t_UAprofile.xml' => [ 'Lenovo', 'S658', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/download_2008423595403.xml' => [ 'Lenovo', 'S707', null, DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S720i_UAProfile.xml' => [ 'Lenovo', 'S720', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S720_ROW_UAProfile.xml' => [ 'Lenovo', 'S720', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S820_KK_UAprofile.xml' => [ 'Lenovo', 'S820', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S820_ROW_UAProfile.xml' => [ 'Lenovo', 'S820', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S820_UAProfile.xml' => [ 'Lenovo', 'S820', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S850T_UAprofile.xml' => [ 'Lenovo', 'S850', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S850_KK_UAprofile.xml' => [ 'Lenovo', 'S850', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S850_UAprofile.xml' => [ 'Lenovo', 'S850', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S860t_UAprofile.xml' => [ 'Lenovo', 'S860', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S860_KK_UAprofile.xml' => [ 'Lenovo', 'S860', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S860_ROW_UAprofile.xml' => [ 'Lenovo', 'S860', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S860_UAprofile.xml' => [ 'Lenovo', 'S860', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S890i_UAProfile.xml' => [ 'Lenovo', 'S890', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S890_ROW_UAProfile.xml' => [ 'Lenovo', 'S890', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S898t+_UAProfile.xml' => [ 'Lenovo', 'S898', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S898t_UAProfile.xml' => [ 'Lenovo', 'S898', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S968t_KK_UAprofile.xml' => [ 'Lenovo', 'S898', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/download_20075256251113.xml' => [ 'Lenovo', 'S9', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Lenovo S90-A.xml' => [ 'Lenovo', 'S90', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S920_KK_UAProfile.xml' => [ 'Lenovo', 'S920', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S920_ROW_UAProfile.xml' => [ 'Lenovo', 'S920', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S920_UAProfile.xml' => [ 'Lenovo', 'S920', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S930_KK_UAprofile.xml' => [ 'Lenovo', 'S930', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S930_ROW_UAprofile.xml' => [ 'Lenovo', 'S930', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S930_UAprofile.xml' => [ 'Lenovo', 'S930', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S938t_UAprofile.xml' => [ 'Lenovo', 'S938t', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S939_KK_UAprofile.xml' => [ 'Lenovo', 'S939', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S939_UAprofile.xml' => [ 'Lenovo', 'S939', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S960_KK_UAprofile.xml' => [ 'Lenovo', 'S960', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S960_ROW_UAProfile.xml' => [ 'Lenovo', 'S960', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S960_UAprofile.xml' => [ 'Lenovo', 'S960', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_S968t_UAProfile.xml' => [ 'Lenovo', 'S968t', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/download_20069185728203.xml' => [ 'Lenovo', 'V800', null, DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_X2-CU_UAprofile.xml' => [ 'Lenovo', 'Vibe X2', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_X2-TO_UAprofile.xml' => [ 'Lenovo', 'Vibe X2', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Lenovo_X2-TR_UAprofile.xml' => [ 'Lenovo', 'Vibe X2', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/download_200710186443397.xml' => [ 'Lenovo', 'X1', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-LG306G.xml' => [ 'LG', '306G', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-A350-M3-D1.xml' => [ 'LG', 'A350', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-A380.xml' => [ 'LG', 'A380', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/oOTiaX1x1bTXYvdu/H788n-M3-D1.xml' => [ 'LG', 'AKA', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/C710h-M6-D1-GB.xml' => [ 'LG', 'Aloha', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/C710h-M6-D1.xml' => [ 'LG', 'Aloha', 'Android', DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/lg/ax245/ax245.xml' => [ 'LG', 'AX245', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/lg/ax260/ax260.xml' => [ 'LG', 'AX260 Scoop', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/lg/ax355/ax355.xml' => [ 'LG', 'AX355', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/lg/ax380/ax380.xml' => [ 'LG', 'AX380 Wave', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/lg/ax4750/ax4750.xml' => [ 'LG', 'AX4750', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/lg/ax490/ax490.xml' => [ 'LG', 'AX490', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/lg/ax830/ax830.xml' => [ 'LG', 'AX830 Glimmer', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/lg/ax8600/ax8600.xml' => [ 'LG', 'AX8600', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-B2070.xml' => [ 'LG', 'B2070', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/BL40-M6-D2CL.xml' => [ 'LG', 'BL40', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C130.xml' => [ 'LG', 'C130', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C1300.xml' => [ 'LG', 'C1300', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C1500.xml' => [ 'LG', 'C1500', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C195-M3-D1.xml' => [ 'LG', 'C195', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C195N-M3-D1.xml' => [ 'LG', 'C195N', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C199-M3-D1.xml' => [ 'LG', 'C199', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C2000.xml' => [ 'LG', 'C2000', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C205-M3-D1.xml' => [ 'LG', 'C205', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C207-M3-D1.xml' => [ 'LG', 'C207', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C2500.xml' => [ 'LG', 'C2500', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C330-M3-D1.xml' => [ 'LG', 'C330', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C360-M3-D1.xml' => [ 'LG', 'C360', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C365-M3-D1.xml' => [ 'LG', 'C365', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C395.xml' => [ 'LG', 'C395', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C397-M3-D1.xml' => [ 'LG', 'C397', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C410.xml' => [ 'LG', 'C410', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-CB630.xml' => [ 'LG', 'CB630 Invision', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-CE110.xml' => [ 'LG', 'CE110', null, DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/LG-MS840.xml' => [ 'LG', 'Connect 4G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T300-M3-D1-NS.xml' => [ 'LG', 'Cookie Light T300', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-CT810.xml' => [ 'LG', 'CT810 Incite', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-CU320.xml' => [ 'LG', 'CU320', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-CU920.xml' => [ 'LG', 'CU920 Vu', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/_ogUJjFY_IgTaMCN/LGL21G-M10-D1.xml' => [ 'LG', 'Destiny', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/C729-M10-D1.xml' => [ 'LG', 'DoublePlay', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-E300-M3-D1.xml' => [ 'LG', 'E300', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/C800G-M10-D1.xml' => [ 'LG', 'Eclypse', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS696/LS696ZVF.rdf' => [ 'LG', 'Elite', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lge/vs700/vs700.xml' => [ 'LG', 'Enlighten', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lg/vx11000/vx11000.xml' => [ 'LG', 'Env Touch', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lg/vx9200/vx9200.xml' => [ 'LG', 'Env3', 'Brew', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P870-M10-D1.xml' => [ 'LG', 'Escape', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P870-M6-D2.xml' => [ 'LG', 'Escape', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/AK1bQ_G8_-S9ccPj/H445-M10-D1.xml' => [ 'LG', 'Escape2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/LG-MS910.xml' => [ 'LG', 'Esteem', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-F2200.xml' => [ 'LG', 'F2200', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-F3000.xml' => [ 'LG', 'F3000', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/a_ygkA6q45TBK1IF/D393-M10-D1.xml' => [ 'LG', 'F60', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D392-M3-D1.xml' => [ 'LG', 'F60', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LGMS395-M10-D0.xml' => [ 'LG', 'F60', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D315-M3-D1.xml' => [ 'LG', 'F70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D315-M6-D1.xml' => [ 'LG', 'F70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D315s-M6-D1.xml' => [ 'LG', 'F70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F370L-M3-D1.xml' => [ 'LG', 'F70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/L31L-M10-D1.xml' => [ 'LG', 'F70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-F7250.xml' => [ 'LG', 'F7250', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LGLS740-Chameleon/latest' => [ 'LG', 'F90', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS740-2012071301/LS740ZV5.rdf' => [ 'LG', 'F90', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS740-BOOST/LS740ZV3.rdf' => [ 'LG', 'F90', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS740-BOOST/LS740ZV4.rdf' => [ 'LG', 'F90', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS740-BOOST/LS740ZV5.rdf' => [ 'LG', 'F90', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS740-BOOST/LS740ZV6.rdf' => [ 'LG', 'F90', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS740-Chameleon/latest' => [ 'LG', 'F90', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS740-SPRPRE/LS740ZV5.rdf' => [ 'LG', 'F90', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS740-VIRGIN/LS740ZV3.rdf' => [ 'LG', 'F90', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS740-VIRGIN/LS740ZV4.rdf' => [ 'LG', 'F90', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS740-VIRGIN/LS740ZV5.rdf' => [ 'LG', 'F90', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS740-VIRGIN/LS740ZV6.rdf' => [ 'LG', 'F90', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.comLS740.rdf' => [ 'LG', 'F90', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-F9100.xml' => [ 'LG', 'F9100', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-F9200.xml' => [ 'LG', 'F9200', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS995-Chameleon/latest' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS995-SPRINT/LS995ZV3.rdf' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS995-SPRINT/LS995ZV6.rdf' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS995-SPRINT/LS995ZV7.rdf' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS995-SPRINT/LS995ZVA.rdf' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS995-SPRINT/LS995ZVB.rdf' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS995-SPRPRE/LS995ZVA.rdf' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D950-M10-D1-KK.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D950-M10-D1.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D950-M3-D1.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D955-M10-D1.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D955-M3-D1-KK.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D955-M3-D1.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D955-M6-D1-KK.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D955-M6-D1.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D956-M3-D1.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D958-M10-D1.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D958-M3-D1-KK.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D958-M3-D1.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D959-M10-D1-KK.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D959-M10-D1.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F340L-M3-D1-KK.xml' => [ 'LG', 'G Flex', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS996-BOOST/LS996ZV9.rdf' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS996-Chameleon/latest' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS996-SPRINT/LS996ZV5.rdf' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS996-SPRINT/LS996ZV6.rdf' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS996-SPRINT/LS996ZV7.rdf' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS996-SPRINT/LS996ZV8.rdf' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS996-SPRINT/LS996ZV9.rdf' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LS996-M10-D1.xml' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MbAHlRXTX34T2a8f/H950-M10-D1.xml' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MbAHlRXTX34T2a8f/H950-M3-D1.xml' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MbAHlRXTX34T2a8f/H955-M10-D1.xml' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MbAHlRXTX34T2a8f/H955-M20-D1.xml' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MbAHlRXTX34T2a8f/H955-M3-D1.xml' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MbAHlRXTX34T2a8f/H955-M5-D1.xml' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MbAHlRXTX34T2a8f/H955-M6-D1.xml' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MbAHlRXTX34T2a8f/H959-M3-D1.xml' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://pix.cspire.com/UA/profile/lg/as995/as995.xml' => [ 'LG', 'G Flex 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/V410-D1.xml' => [ 'LG', 'G Pad 7.0', 'Android', DeviceType::TABLET ], + 'http://gsm.lge.com/html/gsm/V410GO-D1.xml' => [ 'LG', 'G Pad 7.0', 'Android', DeviceType::TABLET ], + 'http://gsm.lge.com/html/gsm/V490-M3-D1.xml' => [ 'LG', 'G Pad 7.0', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/LG/LK430-Chameleon/latest' => [ 'LG', 'G Pad F 7.0', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/LG/LK430-SPRINT/LK430ZV3.rdf' => [ 'LG', 'G Pad F 7.0', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/LG/LK430-SPRINT/LK430ZV4.rdf' => [ 'LG', 'G Pad F 7.0', 'Android', DeviceType::TABLET ], + 'http://gsm.lge.com/html/gsm/iBpgg_0u_ASxAV_F/V495-D1.xml' => [ 'LG', 'G Pad F 7.0', 'Android', DeviceType::TABLET ], + 'http://gsm.lge.com/html/gsm/rGTs_Yxuw5wT0ZyW/V495-D1.xml' => [ 'LG', 'G Pad F 8.0', 'Android', DeviceType::TABLET ], + 'http://gsm.lge.com/html/gsm/_-0_bP_4P_s73ov-/V930-D1.xml' => [ 'LG', 'G Pad X 10.1', 'Android', DeviceType::TABLET ], + 'http://gsm.lge.com/html/gsm/D830-M3-D1.xml' => [ 'LG', 'G Pro 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D838-M3-D1-KK.xml' => [ 'LG', 'G Pro 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D838-M3-D1.xml' => [ 'LG', 'G Pro 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D838-M9-D1-KK.xml' => [ 'LG', 'G Pro 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F350K-M3-D1-KK.xml' => [ 'LG', 'G Pro 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F350K-M3-D1.xml' => [ 'LG', 'G Pro 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F350L-M3-D1.xml' => [ 'LG', 'G Pro 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F350L-M9-D1.xml' => [ 'LG', 'G Pro 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F350S-M3-D1.xml' => [ 'LG', 'G Pro 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D680-M10-D1-KK.xml' => [ 'LG', 'G Pro Lite', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D680-M10-D1.xml' => [ 'LG', 'G Pro Lite', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D680-M3-D1-KK.xml' => [ 'LG', 'G Pro Lite', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D680-M3-D1.xml' => [ 'LG', 'G Pro Lite', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D681-M3-D1-KK.xml' => [ 'LG', 'G Pro Lite', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D681-M3-D1.xml' => [ 'LG', 'G Pro Lite', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D682-M3-D1.xml' => [ 'LG', 'G Pro Lite', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D682TR-M3-D1.xml' => [ 'LG', 'G Pro Lite', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D682TR-M5-D1.xml' => [ 'LG', 'G Pro Lite', 'Android', DeviceType::MOBILE ], + 'http://tool.xcdn.gdms.lge.com/html/uap/BZGZ3OH0HR/D682TR-M3-D1.xml' => [ 'LG', 'G Pro Lite', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D685-M3-D1-KK.xml' => [ 'LG', 'G Pro Lite Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D685-M3-D1.xml' => [ 'LG', 'G Pro Lite Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D686-M3-D1-KK.xml' => [ 'LG', 'G Pro Lite Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D686-M3-D1.xml' => [ 'LG', 'G Pro Lite Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D686-M5-D1-KK.xml' => [ 'LG', 'G Pro Lite Dual', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS770-BOOST/LS770ZV3.rdf' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS770-BOOST/LS770ZV4.rdf' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS770-BOOST/LS770ZV5.rdf' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS770-BOOST/LS770ZV7.rdf' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS770-BOOST/LS770ZV8.rdf' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS770-SPRINT/LS770ZV4.rdf' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS770-SPRINT/LS770ZV5.rdf' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS770-SPRINT/LS770ZV7.rdf' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS770-SPRPRE/LS770ZV3.rdf' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS770-SPRPRE/LS770ZV4.rdf' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS770-VIRGIN/LS770ZV7.rdf' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/5uyruBAm__1ZuYMa/H631-M10-D1.xml' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/b7_gceeg_u9fMBZq/H635-M5-D1.xml' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/b7_gceeg_u9fMBZq/H635-M6-D1.xml' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/b7_gceeg_u9fMBZq/H636-M10-D1.xml' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/uIJXil7N_tpYFHo7/LGMS631-M10-D1.xml' => [ 'LG', 'G Stylo', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/m9a8_OJx_S_kt06K/H740-M10-D1.xml' => [ 'LG', 'G Vista 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-G1610.xml' => [ 'LG', 'G1610', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-BOOST/LS980ZVC.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-BOOST/LS980ZVD.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-BOOST/LS980ZVG.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-BOOST/LS980ZVH.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-Chameleon/latest' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-SPRINT/LS980ZV6.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-SPRINT/LS980ZV7.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-SPRINT/LS980ZV8.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-SPRINT/LS980ZVA.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-SPRINT/LS980ZVC.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-SPRINT/LS980ZVD.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-SPRINT/LS980ZVE.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-SPRINT/LS980ZVG.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-SPRINT/LS980ZVH.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-SPRINT/LS980ZVI.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS980-SPRINT/OpTimuS.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.comLS980ZV8.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.comLS980ZVG.rdf' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/01F-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/01F-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/01F-M9-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/980 4G-M12-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D800-M10-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D800-M10-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D800-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D800-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D801-M10-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D801-M10-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D801-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D801-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M1-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M1-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M10-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M10-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M2-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M20-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M20-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M4-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M5-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M5-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M6-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M6-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802-M9-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802T-M20-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802T-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802T-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802T-M5-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802TR-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802TR-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802TR-M5-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D802TR-M5-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D803-M10-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D803-M10-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D803-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D803-M6-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D803-M6-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D805-M10-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D805-M10-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D805-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D805-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D805-M5-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D806-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D806-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F320K-M10-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F320K-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F320K-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F320L-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F320L-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F320L-M9-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F320L-M9-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F320S-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F320S-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F320S-M9-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/G2-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/l01f-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/L01F-M9-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/L22-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/L22-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LS980-M10-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LS980-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LS980-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LS980-M9-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/M-PrVgyxvfGD20R_/D802-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/VS980-M3-D1-KK.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://tool.xcdn.gdms.lge.com/html/uap/C957NUJHUE/D802TR-M3-D1.xml' => [ 'LG', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/618-M3-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/8-M3-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D610-M3-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D610AR-M3-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D610TR-M3-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D610TR-M5-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D618-M3-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D618-M4-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D620-M10-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D620-M3-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D620-M6-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D620r-M3-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D625-M10-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D625-M3-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D625-M5-D1.xml' => [ 'LG', 'G2 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-G282.xml' => [ 'LG', 'G282', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS990-BOOST/LS990ZVC.rdf' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS990-Chameleon/latest' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS990-SPRINT/LS990ZV4.rdf' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS990-SPRINT/LS990ZV6.rdf' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS990-SPRINT/LS990ZV8.rdf' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS990-SPRINT/LS990ZVA.rdf' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS990-SPRINT/LS990ZVB.rdf' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS990-SPRINT/LS990ZVC.rdf' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS995-SPRINT/LS990ZVA.rdf' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/%H:%M:%S/D855-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/%s/%s/%s/D855-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/985 4G-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D850-M10-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D850-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D851-M10-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D851-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D852-M10-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D852-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D852-M6-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D852-parrot-M10-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D852G-M10-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D852G-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D855-M1-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D855-M10-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D855-M20-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D855-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D855-M4-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D855-M5-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D855-M6-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D855A-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D855K-M20-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D856-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D858-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D858HK-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F400K-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F400L-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F400S-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/G3-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LS990-M10-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LS990-M3-D1.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/LG/LG_LG-D859_3_20140707.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://pix.cspire.com/UA/profile/lg/as990/as990.xml' => [ 'LG', 'G3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D727-M10-D1.xml' => [ 'LG', 'G3 Beat', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D728-M3-D1.xml' => [ 'LG', 'G3 Beat', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/HD_8T0W9FihEqY5S/D727-M10-D1.xml' => [ 'LG', 'G3 Beat', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/LG/LG_LG-D729_2_20140627.xml' => [ 'LG', 'G3 Beat', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS885-Chameleon/latest' => [ 'LG', 'G3 mini', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS885-SPRINT/LS885ZV4.rdf' => [ 'LG', 'G3 mini', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS885-SPRINT/LS885ZV5.rdf' => [ 'LG', 'G3 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D722-M3-D1.xml' => [ 'LG', 'G3 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D722-M5-D1.xml' => [ 'LG', 'G3 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D722-M6-D1.xml' => [ 'LG', 'G3 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D722v-M3-D1.xml' => [ 'LG', 'G3 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D723-M3-D1.xml' => [ 'LG', 'G3 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D723-M5-D1.xml' => [ 'LG', 'G3 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D724-M3-D1.xml' => [ 'LG', 'G3 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D725-M10-D1.xml' => [ 'LG', 'G3 mini', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F460K-M3-D1.xml' => [ 'LG', 'G3 Prime', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F460L-M3-D1.xml' => [ 'LG', 'G3 Prime', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F460S-M3-D1.xml' => [ 'LG', 'G3 Prime', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D722-M10-D1.xml' => [ 'LG', 'G3 S', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D722AR-M3-D1.xml' => [ 'LG', 'G3 S', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D690-M3-D1.xml' => [ 'LG', 'G3 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D690n-M3-D1.xml' => [ 'LG', 'G3 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D693-M3-D1.xml' => [ 'LG', 'G3 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D693n-M10-D1.xml' => [ 'LG', 'G3 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D693n-M3-D1.xml' => [ 'LG', 'G3 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D693TR-M5-D1.xml' => [ 'LG', 'G3 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/RNTp_ElEPgL_QrBQ/D690-M3-D1.xml' => [ 'LG', 'G3 Stylus', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS885-SPRINT/LS885ZV6.rdf' => [ 'LG', 'G3 Vigor', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D631-M10-D1.xml' => [ 'LG', 'G3 Vista', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS991-Chameleon/latest' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/H815-M3-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/H818P-M3-D1-KK.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/Qf23_I29ZbHl2AuA/H815-M5-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/Qf23_I29ZbHl2AuA/H815-M6-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/Qf23_I29ZbHl2AuA/H818-M3-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H810-M10-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H810-M3-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H811-M10-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H812-M10-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H815-M10-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H815-M20-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H815-M3-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H815-M4-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H815-M5-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H815-M6-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H815K-M20-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H815P-M3-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H818-M3-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H818-M4-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H818-M5-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/H819-M3-D1.xml' => [ 'LG', 'G4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/eNsCGw_apwMhnXPM/H900-M10-D1.xml' => [ 'LG', 'G4 Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/_W4s8Utf_eec5qYV/H900-M10-D1.xml' => [ 'LG', 'G4 Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/-pBWguyi4C2qxxHn/H540-M3-D1.xml' => [ 'LG', 'G4 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/-pBWguyi4C2qxxHn/H540-M4-D1.xml' => [ 'LG', 'G4 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/-pBWguyi4C2qxxHn/H542-M5-D1.xml' => [ 'LG', 'G4 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/b7_gceeg_u9fMBZq/H630-M3-D1.xml' => [ 'LG', 'G4 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/b7_gceeg_u9fMBZq/H630D-M3-D1.xml' => [ 'LG', 'G4 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/b7_gceeg_u9fMBZq/H635-M3-D1.xml' => [ 'LG', 'G4 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/b7_gceeg_u9fMBZq/H635A-M3-D1.xml' => [ 'LG', 'G4 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/H540-M3-D1.xml' => [ 'LG', 'G4 Stylus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MX_LG_G4015.xml' => [ 'LG', 'G4015', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-G4020.xml' => [ 'LG', 'G4020', null, DeviceType::MOBILE ], + 'http://fr.lge.com/gsm/LG-G4050.xml' => [ 'LG', 'G4050', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/3p7OIw-_p_OSTTKo/H735-M10-D1.xml' => [ 'LG', 'G4s', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/3p7OIw-_p_OSTTKo/H735-M20-D1.xml' => [ 'LG', 'G4s', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/3p7OIw-_p_OSTTKo/H735-M3-D1.xml' => [ 'LG', 'G4s', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/3p7OIw-_p_OSTTKo/H735-M5-D1.xml' => [ 'LG', 'G4s', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/3p7OIw-_p_OSTTKo/H736-M3-D1.xml' => [ 'LG', 'G4s', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/AK1bQ_G8_-S9ccPj/H735-M3-D1.xml' => [ 'LG', 'G4s', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/AK1bQ_G8_-S9ccPj/H736-M3-D1.xml' => [ 'LG', 'G4s', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-G5400.xml' => [ 'LG', 'G5400', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-G650.xml' => [ 'LG', 'G650', null, DeviceType::MOBILE ], + 'http://fr.lge.com/gsm/LG-G7050.xml' => [ 'LG', 'G7050', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-G7200.xml' => [ 'LG', 'G7200', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-G912.xml' => [ 'LG', 'G912', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GD510.xml' => [ 'LG', 'GD510 Pop', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GD880-3G-M6-D2CL.xml' => [ 'LG', 'GD880', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GD880-M3-D1.xml' => [ 'LG', 'GD880', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GD880-M6-D1.xml' => [ 'LG', 'GD880', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GD880-M6-D2CL.xml' => [ 'LG', 'GD880', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GM200.xml' => [ 'LG', 'GM200 Brio', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GM360-NS.xml' => [ 'LG', 'GM360 Viewty Snap', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GM360.xml' => [ 'LG', 'GM360 Viewty Snap', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GM630.xml' => [ 'LG', 'GM630', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GM730.xml' => [ 'LG', 'GM730', 'Windows Mobile', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GM750Q.xml' => [ 'LG', 'GM750 Smart', 'Windows Mobile', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GR500.xml' => [ 'LG', 'GR500 Xenon', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GS290.xml' => [ 'LG', 'GS290 Cookie Fresh', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GS390.xml' => [ 'LG', 'GS390 Prime', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GT400-M6-D2CL.xml' => [ 'LG', 'GT400', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GT500-TMO.xml' => [ 'LG', 'GT500 Puccini', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GT505-ORG.xml' => [ 'LG', 'GT505', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GT505.xml' => [ 'LG', 'GT505', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GW300.xml' => [ 'LG', 'GW300', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GW550.xml' => [ 'LG', 'GW550', 'Windows Mobile', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GW620-M6-D1.xml' => [ 'LG', 'GW620 Eve', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F310L-M3-D1-KK.xml' => [ 'LG', 'GX', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F310L-M3-D1.xml' => [ 'LG', 'GX', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F310L-M9-D1-KK.xml' => [ 'LG', 'GX', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F310LR-M3-D1-KK.xml' => [ 'LG', 'GX', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F310LR-M9-D1-KK.xml' => [ 'LG', 'GX', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-GX500.xml' => [ 'LG', 'GX500', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-HB620T.xml' => [ 'LG', 'HB620T', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lge/vs950/vs950.xml' => [ 'LG', 'Intuition', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LGL22C-M12-D1.xml' => [ 'LG', 'isai', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/L24-M3-D1.xml' => [ 'LG', 'isai FL', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/YSdHbanpHC5h2R_E/V32-M3-D1.xml' => [ 'LG', 'isai vivid LGV32', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/H220-M5-D1.xml' => [ 'LG', 'Joy', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/JMVnyLlmw2NR0pk1/H220-M3-D1.xml' => [ 'LG', 'Joy', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/JMVnyLlmw2NR0pk1/H220-M5-D1.xml' => [ 'LG', 'Joy', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/JMVnyLlmw2NR0pk1/H221-M10-D1.xml' => [ 'LG', 'Joy', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/JMVnyLlmw2NR0pk1/H221AR-M3-D1.xml' => [ 'LG', 'Joy', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/JMVnyLlmw2NR0pk1/H222-M3-D1.xml' => [ 'LG', 'Joy', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KB770-VDF3G.xml' => [ 'LG', 'KB770', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KC550.xml' => [ 'LG', 'KC550', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KC780.xml' => [ 'LG', 'KC780', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KC910-VDF.xml' => [ 'LG', 'KC910', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KC910-VDF3G.xml' => [ 'LG', 'KC910 Renoir', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KC910.xml' => [ 'LG', 'KC910 Renoir', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KC910i.xml' => [ 'LG', 'KC910i Renoir', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KE260-V08f.xml' => [ 'LG', 'KE260', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KE500.xml' => [ 'LG', 'KE500', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KE600E.xml' => [ 'LG', 'KE600', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KE770.xml' => [ 'LG', 'KE770 Shine', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KE820.xml' => [ 'LG', 'KE820', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KE850.xml' => [ 'LG', 'KE850 Prada', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KE970.xml' => [ 'LG', 'KE970 Shine', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KE990.xml' => [ 'LG', 'KE990 Viewty', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF240.xml' => [ 'LG', 'KF240', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF245.xml' => [ 'LG', 'KF245', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF300.xml' => [ 'LG', 'KF300', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF310-H3G.xml' => [ 'LG', 'KF310', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF310-VDF3G.xml' => [ 'LG', 'KF310', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF311-DRM-2.xml' => [ 'LG', 'KF311', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF390.xml' => [ 'LG', 'KF390', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF510.xml' => [ 'LG', 'KF510', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF600.xml' => [ 'LG', 'KF600', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF700.xml' => [ 'LG', 'KF700', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF750-OPEN1.xml' => [ 'LG', 'KF750 Secret', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF750-VDF3G.xml' => [ 'LG', 'KF750 Secret', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF755.xml' => [ 'LG', 'KF755', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KF900.xml' => [ 'LG', 'KF900 Prada II', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG119.xml' => [ 'LG', 'KG119', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG190.xml' => [ 'LG', 'KG190', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG200.xml' => [ 'LG', 'KG200', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG200j.xml' => [ 'LG', 'KG200', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG208.xml' => [ 'LG', 'KG208', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG280.xml' => [ 'LG', 'KG280', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG290UAE.xml' => [ 'LG', 'KG290', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG296.xml' => [ 'LG', 'KG296', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG300j.xml' => [ 'LG', 'KG300', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG70.xml' => [ 'LG', 'KG70 Shine', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG77.xml' => [ 'LG', 'KG77 Shine', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG90.xml' => [ 'LG', 'KG90', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG920.xml' => [ 'LG', 'KG920', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KG98.xml' => [ 'LG', 'KG98', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KM380.xml' => [ 'LG', 'KM380', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KM500.xml' => [ 'LG', 'KM500', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KM501.xml' => [ 'LG', 'KM501', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KM553.xml' => [ 'LG', 'KM553', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KM900N.xml' => [ 'LG', 'KM900', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KM900.xml' => [ 'LG', 'KM900 Arena', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP110.xml' => [ 'LG', 'KP110', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP130.xml' => [ 'LG', 'KP130', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP135.xml' => [ 'LG', 'KP135', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-UAP-KP199-v0.1.xml' => [ 'LG', 'KP199', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP202.xml' => [ 'LG', 'KP202', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP210.xml' => [ 'LG', 'KP210', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP215.xml' => [ 'LG', 'KP215', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-UAP-KP220-v0.1.xml' => [ 'LG', 'KP220', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP230.xml' => [ 'LG', 'KP230', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP233.xml' => [ 'LG', 'KP233', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP260.xml' => [ 'LG', 'KP260', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP265.xml' => [ 'LG', 'KP265', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP270-3G.xml' => [ 'LG', 'KP270', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP275.xml' => [ 'LG', 'KP275', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP320.xml' => [ 'LG', 'KP320', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP500.xml' => [ 'LG', 'KP500 Cookie', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP501.xml' => [ 'LG', 'KP500 Cookie', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KP570.xml' => [ 'LG', 'KP570 Cookie', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/KS10.xml' => [ 'LG', 'KS10 JOY', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KS20.xml' => [ 'LG', 'KS360', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KS360-V10d.xml' => [ 'LG', 'KS360', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KS360.xml' => [ 'LG', 'KS360', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KS500-VDF3G.xml' => [ 'LG', 'KS500', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KT520-OPEN1.xml' => [ 'LG', 'KT520', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KU250.xml' => [ 'LG', 'KU250', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KU380-v10a.xml' => [ 'LG', 'KU380', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KU380-v10b.xml' => [ 'LG', 'KU380', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KU580-CA.xml' => [ 'LG', 'KU580', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KU970-CA.xml' => [ 'LG', 'KU970 Shine', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KU970.xml' => [ 'LG', 'KU970 Shine', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KU990-VDF3G.xml' => [ 'LG', 'KU990 Viewty', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KU990.xml' => [ 'LG', 'KU990 Viewty', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-KU990i.xml' => [ 'LG', 'KU990 Viewty', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D335-M3-D1.xml' => [ 'LG', 'L Bello', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D337-M3-D1.xml' => [ 'LG', 'L Bello', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/RNTp_ElEPgL_QrBQ/D335-M3-D1.xml' => [ 'LG', 'L Bello', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/U_EOJw1JxwmQJceD/31-M10-D1.xml' => [ 'LG', 'L Bello', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/U_EOJw1JxwmQJceD/D331-M5-D1.xml' => [ 'LG', 'L Bello', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/U_EOJw1JxwmQJceD/D335-M3-D1.xml' => [ 'LG', 'L Bello', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/U_EOJw1JxwmQJceD/D335E-M3-D1.xml' => [ 'LG', 'L Bello', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D290-M3-D1.xml' => [ 'LG', 'L Fino', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D290-M5-D1.xml' => [ 'LG', 'L Fino', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D295-M3-D1.xml' => [ 'LG', 'L Fino', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/U_EOJw1JxwmQJceD/D337-M3-D1.xml' => [ 'LG', 'L Prime', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-L1100.xml' => [ 'LG', 'L1100', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MX_LG_L1150.xml' => [ 'LG', 'L1150', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-L1200.xml' => [ 'LG', 'L1200', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG_L1400.xml' => [ 'LG', 'L1400', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D100-M10-D1.xml' => [ 'LG', 'L20', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D100-M3-D1.xml' => [ 'LG', 'L20', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D100AR-M3-D1.xml' => [ 'LG', 'L20', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D105-M3-D1.xml' => [ 'LG', 'L20', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D107-M3-D1.xml' => [ 'LG', 'L20', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D120-M10-D1.xml' => [ 'LG', 'L30', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D120-M3-D1.xml' => [ 'LG', 'L30', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D123-M3-D1.xml' => [ 'LG', 'L30', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D125-M3-D1.xml' => [ 'LG', 'L30', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D125f-M3-D1.xml' => [ 'LG', 'L30', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D127-M3-D1.xml' => [ 'LG', 'L30', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D150-M5-D1.xml' => [ 'LG', 'L35', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D157f-M3-D1.xml' => [ 'LG', 'L35', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LGL35G-M6-D1.xml' => [ 'LG', 'L35G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/34C-M11-D1.xml' => [ 'LG', 'L40', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D160-M20-D1.xml' => [ 'LG', 'L40', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D160-M3-D1.xml' => [ 'LG', 'L40', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D160-M6-D1.xml' => [ 'LG', 'L40', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D170-M3-D1.xml' => [ 'LG', 'L40', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D175f-M3-D1.xml' => [ 'LG', 'L40', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/L34C-M12-D1.xml' => [ 'LG', 'L40', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/X130g-M10-D1.xml' => [ 'LG', 'L40', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D227-M3-D1.xml' => [ 'LG', 'L50', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D213-M10-D1.xml' => [ 'LG', 'L50 Sporty', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D213-M3-D1.xml' => [ 'LG', 'L50 Sporty', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-L5100.xml' => [ 'LG', 'L5100', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/X135-M10-D1.xml' => [ 'LG', 'L60', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/X140-M10-D1.xml' => [ 'LG', 'L60', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/X145-M10-D1.xml' => [ 'LG', 'L60', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/X147-M10-D1.xml' => [ 'LG', 'L60', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-L600V.xml' => [ 'LG', 'L600v', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/X137-M10-D1.xml' => [ 'LG', 'L60i', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D280-M10-D1.xml' => [ 'LG', 'L65', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D280-M3-D1.xml' => [ 'LG', 'L65', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D280-M5-D1.xml' => [ 'LG', 'L65', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D285-M3-D1.xml' => [ 'LG', 'L65', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/321-M10-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D320-M10-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D320-M2-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D320-M3-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D320-M5-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D320-M6-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D320AR-M3-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D320n-M3-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D321-M10-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D325-M3-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D325-M4-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D325f-M3-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LGAS323-M10-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LGL41C-M12-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LGMS323-M10-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LGMS323-M3-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MS323-M10-D1.xml' => [ 'LG', 'L70', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D373-M10-D1.xml' => [ 'LG', 'L80', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D373-M3-D1.xml' => [ 'LG', 'L80', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D380-M3-D1.xml' => [ 'LG', 'L80', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D385-M3-D1.xml' => [ 'LG', 'L80', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D331-M3-D1.xml' => [ 'LG', 'L80+', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/U_EOJw1JxwmQJceD/D331-M10-D1.xml' => [ 'LG', 'L80+', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/U_EOJw1JxwmQJceD/D331-M3-D1.xml' => [ 'LG', 'L80+', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D400-M10-D1.xml' => [ 'LG', 'L90', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D400-M3-D1.xml' => [ 'LG', 'L90', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D405-M10-D1.xml' => [ 'LG', 'L90', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D405-M3-D1.xml' => [ 'LG', 'L90', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D405-M5-D1.xml' => [ 'LG', 'L90', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D405-M6-D1.xml' => [ 'LG', 'L90', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D410-M3-D1.xml' => [ 'LG', 'L90', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D415-M10-D1.xml' => [ 'LG', 'L90', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D415-M3-D1.xml' => [ 'LG', 'L90', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LGL996L-M10-D1.xml' => [ 'LG', 'L996L', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/0W_43_22MIQ_HNMe/H340-M10-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/0W_43_22MIQ_HNMe/H340-M3-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/0W_43_22MIQ_HNMe/H340AR-M3-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/0W_43_22MIQ_HNMe/H340n-M10-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/0W_43_22MIQ_HNMe/H340n-M3-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/0W_43_22MIQ_HNMe/H340n-M5-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/0W_43_22MIQ_HNMe/H340n-M6-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/0W_43_22MIQ_HNMe/H342-M3-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/RNTp_ElEPgL_QrBQ/H320-M10-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/RNTp_ElEPgL_QrBQ/H320-M3-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/RNTp_ElEPgL_QrBQ/H320-M5-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/RNTp_ElEPgL_QrBQ/H326-M3-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/yObOcsVFUyAgTj5W/H345-M10-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/yObOcsVFUyAgTj5W/LGMS345-M10-D1.xml' => [ 'LG', 'Leon', 'Android', DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/LGE_LG160P.rdf' => [ 'LG', 'LG160', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/LGE_LG160V.rdf' => [ 'LG', 'LG160', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/LG200.rdf' => [ 'LG', 'LG200', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/LG245-0.rdf' => [ 'LG', 'LG245', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/LGE_LG260.rdf' => [ 'LG', 'LG260', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/LGE_LG280.rdf' => [ 'LG', 'LG280', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/LG285-1.rdf' => [ 'LG', 'LG285', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/LGE_LG385.rdf' => [ 'LG', 'LG385', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-LG440G.xml' => [ 'LG', 'LG440G', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/lg4600.rdf' => [ 'LG', 'LG4600', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/LG490-0.rdf' => [ 'LG', 'LG490', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-LG530G.xml' => [ 'LG', 'LG530G', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/BMC_LG_LG5400_LG540V05.rdf' => [ 'LG', 'LG5400', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/lg5450.rdf' => [ 'LG', 'LG5450', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/BMC_LGE_LG550_CX55BL10.rdf' => [ 'LG', 'LG550', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/LGE_LG570V.rdf' => [ 'LG', 'LG570', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/LGE_LG600.rdf' => [ 'LG', 'LG600', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/lg6070.rdf' => [ 'LG', 'LG6070', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/lg6190.rdf' => [ 'LG', 'LG6190', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/BMC_LG_LG6200_CX62BE07.rdf' => [ 'LG', 'LG6200', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/LGE_LG830.rdf' => [ 'LG', 'LG830', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-LG840G.xml' => [ 'LG', 'LG840G', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/LG8500-0.rdf' => [ 'LG', 'LG8500 Chocolate', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/LG8600-1.rdf' => [ 'LG', 'LG8600 Chocolate Flip', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/BMC_LGE_LG8700_CX87BL04.rdf' => [ 'LG', 'LG8700', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/LG8800-0.rdf' => [ 'LG', 'LG8800 Venus', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/LG9100-0.rdf' => [ 'LG', 'LG9100 Keybo', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/LG9700-0.rdf' => [ 'LG', 'LG9700 Dare', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LN280-PLB/LN280ZV3.rdf' => [ 'LG', 'LN280', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LX600/LX600V07.rdf' => [ 'LG', 'Lotus LX600', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LX600/LX600V08.rdf' => [ 'LG', 'Lotus LX600', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lge/vs840/vs840.xml' => [ 'LG', 'Lucid', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/Z9L2LsF6CK0ZCabE/LGL16C-M12-D1.xml' => [ 'LG', 'Lucky', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/LG/LX-140/VMU_lx140_UAProf.xml' => [ 'LG', 'LX140 Aloha', null, DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/LG/lx165/VMU_lx165_UAProf.xml' => [ 'LG', 'LX165 Flare', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LX400/LX400V13.rdf' => [ 'LG', 'LX400', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/5350/LX5350_11.rdf' => [ 'LG', 'LX5350', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LX610/LX610V05.rdf' => [ 'LG', 'LX610', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS860-2011011301/LS860ZV7.rdf' => [ 'LG', 'Mach', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS860-BOOST/LS860ZV8.rdf' => [ 'LG', 'Mach', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS860-Chameleon/latest' => [ 'LG', 'Mach', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS860-SPRINT/LS860ZV7.rdf' => [ 'LG', 'Mach', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS860-SPRINT/LS860ZV8.rdf' => [ 'LG', 'Mach', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/1XolXoCnSn7_dGTS/H520-M10-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/1XolXoCnSn7_dGTS/H520-M3-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/1XolXoCnSn7_dGTS/H522-M3-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/1XolXoCnSn7_dGTS/H525-M3-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/1XolXoCnSn7_dGTS/H525-M5-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/1XolXoCnSn7_dGTS/H525n-M3-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/1XolXoCnSn7_dGTS/H525n-M5-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/Dsi6X_y8P_In4gbf/H500-M10-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/Dsi6X_y8P_In4gbf/H500-M3-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/Dsi6X_y8P_In4gbf/H500-M6-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/Dsi6X_y8P_In4gbf/H502-M10-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/Dsi6X_y8P_In4gbf/H502-M3-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/H522-M3-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/H522F-M3-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/RNTp_ElEPgL_QrBQ/H502-M3-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/RNTp_ElEPgL_QrBQ/H522-M3-D1.xml' => [ 'LG', 'Magna', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LG855ABC/LG855ZV3.rdf' => [ 'LG', 'Marquee', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LG855ABC/LG855ZV4.rdf' => [ 'LG', 'Marquee', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS855/LS855ZV1.rdf' => [ 'LG', 'Marquee', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS855/LS855ZV9.rdf' => [ 'LG', 'Marquee', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS855/LS855ZVC.rdf' => [ 'LG', 'Marquee', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-ME591D.xml' => [ 'LG', 'ME591', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-ME770.xml' => [ 'LG', 'ME770 Shine', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-MG101.xml' => [ 'LG', 'MG101', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-MG150.xml' => [ 'LG', 'MG150', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-MG170.xml' => [ 'LG', 'MG170', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-MG200.xml' => [ 'LG', 'MG200', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-MG220.xml' => [ 'LG', 'MG220', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-MG225d.xml' => [ 'LG', 'MG225', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-MG235.xml' => [ 'LG', 'MG235', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-MG280.xml' => [ 'LG', 'MG280', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-MG800c.xml' => [ 'LG', 'MG800 Chocolate', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/MM535/MM535V24.rdf' => [ 'LG', 'MM-535', null, DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/LG-MS770.xml' => [ 'LG', 'Motion 4G', 'Android', DeviceType::MOBILE ], + 'https://servicios.iusacell.com.mx/lg/mx200v1.xml' => [ 'LG', 'MX200', null, DeviceType::MOBILE ], + 'https://servicios.iusacell.com.mx/lg/MX210/MX210v1.xml' => [ 'LG', 'MX210', null, DeviceType::MOBILE ], + 'https://servicios.iusacell.com.mx/lg/MX275/mx275v1.xml' => [ 'LG', 'MX275', null, DeviceType::MOBILE ], + 'https://servicios.iusacell.com.mx/lg/mx500v1.xml' => [ 'LG', 'MX500', null, DeviceType::MOBILE ], + 'https://servicios.iusacell.com.mx/lg/MX8500/mx8500v1.xml' => [ 'LG', 'MX8500', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P930-M6-D1-ICS.xml' => [ 'LG', 'Nitro HD', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P930-M6-D1.xml' => [ 'LG', 'Nitro HD', 'Android', DeviceType::MOBILE ], + 'http://mobileuaprof.xtra.co.nz/NX550.rdf' => [ 'LG', 'NX550', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GT540_M6_D2_CL.xml' => [ 'LG', 'Optimus', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-P990h-M10-D1.xml' => [ 'LG', 'Optimus 2X Speed', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P990-M3-D2.xml' => [ 'LG', 'Optimus 2X Speed', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P990-M6-D1-ICS.xml' => [ 'LG', 'Optimus 2X Speed', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P990-M6-D2.xml' => [ 'LG', 'Optimus 2X Speed', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P990h-M10-D1.xml' => [ 'LG', 'Optimus 2X Speed', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P990hN-M6-D1-ICS.xml' => [ 'LG', 'Optimus 2X Speed', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P990hN-M6-D1.xml' => [ 'LG', 'Optimus 2X Speed', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P920-M3-D2-ICS.xml' => [ 'LG', 'Optimus 3D', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P920-M3-D2.xml' => [ 'LG', 'Optimus 3D', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P920-M6-D2.xml' => [ 'LG', 'Optimus 3D', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P920h-M3-D2.xml' => [ 'LG', 'Optimus 3D', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P725-M3-D2.xml' => [ 'LG', 'Optimus 3D Max', 'Android', DeviceType::MOBILE ], + 'http://device.telusmobility.com/lg/LG-CX670-0.rdf' => [ 'LG', 'Optimus 3G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P880-M10-D1.xml' => [ 'LG', 'Optimus 4X HD', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P880-M3-D1.xml' => [ 'LG', 'Optimus 4X HD', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P880-M3-D2.xml' => [ 'LG', 'Optimus 4X HD', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P880-M6-D2.xml' => [ 'LG', 'Optimus 4X HD', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P880g-M10-D1.xml' => [ 'LG', 'Optimus 4X HD', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P880g-M3-D1.xml' => [ 'LG', 'Optimus 4X HD', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/L85C/LGL85CV1.rdf' => [ 'LG', 'Optimus Black', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-P970-M3-D2.xml' => [ 'LG', 'Optimus Black', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-P970-M6-D2.xml' => [ 'LG', 'Optimus Black', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-P970h-M10-D1.xml' => [ 'LG', 'Optimus Black', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-P970h-M3-D1.xml' => [ 'LG', 'Optimus Black', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-P970h-M6-D1.xml' => [ 'LG', 'Optimus Black', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P970-M10-D2.xml' => [ 'LG', 'Optimus Black', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P970-M3-D2.xml' => [ 'LG', 'Optimus Black', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P970-M6-D2.xml' => [ 'LG', 'Optimus Black', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P970g-M10-D1.xml' => [ 'LG', 'Optimus Black', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P970h-M3-D2.xml' => [ 'LG', 'Optimus Black', 'Android', DeviceType::MOBILE ], + 'http://mms.cleartalk.co/sam-r720.xml?source=web' => [ 'LG', 'Optimus C', 'Android', DeviceType::MOBILE ], + 'http://wapuaprof.wap.mycricket.com/lg/LW690.xml' => [ 'LG', 'Optimus C', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/C550-M6-D2.xml' => [ 'LG', 'Optimus Chat', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/C555-M10-D1.xml' => [ 'LG', 'Optimus Chat', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-E720-M6-D2.xml' => [ 'LG', 'Optimus Chic', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-E720b-M6-D1.xml' => [ 'LG', 'Optimus Chic', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P720-M3-D2.xml' => [ 'LG', 'Optimus Chic', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P720h-M3-D2.xml' => [ 'LG', 'Optimus Chic', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LGL38C-M12-D1.xml' => [ 'LG', 'Optimus Dynamic', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/L39C-M12-D1.xml' => [ 'LG', 'Optimus Dynamic II', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/LG/VM696-VMUB/1.0/UAProf.xml' => [ 'LG', 'Optimus Elite', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/L40g-M6-D1.xml' => [ 'LG', 'Optimus Extreme', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS720-2011011301/LS720ZV8.rdf' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS720-BOOST//LG/LS720-BOOST/LS720ZV8.rdf' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS720-BOOST/LS720ZV6.rdf' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS720-BOOST/LS720ZV8.rdf' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS720-Chameleon/latest' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS720-SPRINT/LS720Z06.rdf' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS720-SPRINT/LS720ZV7.rdf' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS720-SPRINT/LS720ZV8.rdf' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS720-VIRGIN//LG/LS720-VIRGIN/LS720ZV8.rdf' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS720-VIRGIN/LS720ZV5.rdf' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS720-VIRGIN/LS720ZV6.rdf' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS720-VIRGIN/LS720ZV7.rdf' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS720-VIRGIN/LS720ZV8.rdf' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MS659-M10-D1.xml' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P655H-M3-D1.xml' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P659-M10-D1.xml' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/LG/LS720-VIRGIN/LS720ZV6.rdf' => [ 'LG', 'Optimus F3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D520-M10-D1.xml' => [ 'LG', 'Optimus F3Q', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P875-M10-D1.xml' => [ 'LG', 'Optimus F5', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P875-M3-D1.xml' => [ 'LG', 'Optimus F5', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P875h-M3-D1.xml' => [ 'LG', 'Optimus F5', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D500-M10-D1.xml' => [ 'LG', 'Optimus F6', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D500-M3-D1-KK.xml' => [ 'LG', 'Optimus F6', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D505-M3-D1-KK.xml' => [ 'LG', 'Optimus F6', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D505-M3-D1.xml' => [ 'LG', 'Optimus F6', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D505-M6-D1-KK.xml' => [ 'LG', 'Optimus F6', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MS500-M10-D1-KK.xml' => [ 'LG', 'Optimus F6', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MS500-M10-D1.xml' => [ 'LG', 'Optimus F6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LG870-BOOST/LG870ZV1.rdf' => [ 'LG', 'Optimus F7', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LG870-BOOST/LG870ZV4.rdf' => [ 'LG', 'Optimus F7', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LG870-BOOST/LG870ZV5.rdf' => [ 'LG', 'Optimus F7', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LG870-Chameleon/latest' => [ 'LG', 'Optimus F7', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LG870-SPRINT/LG870ZV4.rdf' => [ 'LG', 'Optimus F7', 'Android', DeviceType::MOBILE ], + 'http://mms.ntwls.net/uaprofs/AS780.xml' => [ 'LG', 'Optimus F7', 'Android', DeviceType::MOBILE ], + 'http://pix.cspire.com/UA/profile/lg/as780/as780.xml' => [ 'LG', 'Optimus F7', 'Android', DeviceType::MOBILE ], + 'http://uaprof.ntelospcs.net/AS780.xml' => [ 'LG', 'Optimus F7', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS970-2011011301/LS970ZVC.rdf' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS970-Chameleon/latest' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS970-SPRINT/LS970ZV7.rdf' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS970-SPRINT/LS970ZV9.rdf' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS970-SPRINT/LS970ZVA.rdf' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS970-SPRINT/LS970ZVB.rdf' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS970-SPRINT/LS970ZVC.rdf' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/ Optimus G-M3-D1-KK.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E970-M3-D1-KK.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E970-M3-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E970-M6-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E971-M10-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E973-M10-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E973-M6-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E973-parrot-M10-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E975-M10-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E975-M3-D1-KK.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E975-M3-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E975-M5-D1-KK.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E975-M6-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E975K-M20-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E975K-M3-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E975T-M3-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E975w-M3-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E976-M10-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E976-M3-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E977-M3-D1-KK.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E977-M3-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E987-M3-D1-KK.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E987-M3-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F180-M3-D1-KK.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F180K-M10-D1-KK.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F180K-M3-D1-KK.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F180K-M9-D1-KK.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F180L-M3-D1-KK.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F180L-M3-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F180S-M3-D1-KK.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F180S-M3-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F180S-M9-D1-KK.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LS970-M3-D1.xml' => [ 'LG', 'Optimus G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/980 4G-M12-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/980 4G-M3-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/980 4G-M3-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E980-M10-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E980-M10-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E980-M3-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E980-M3-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E980-M9-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E980h-M10-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E980h-M3-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E981h-M3-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E981h-M3-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E985-M3-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E985T-M3-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E986-M3-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E986-M5-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E988-M3-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E988-M3-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E988-M5-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E988-M9-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E989-M3-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E989-M3-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F240K-M3-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F240L-M10-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F240L-M3-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F240L-M3-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F240L-M9-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F240S-M3-D1-KK.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/VS980-M10-D1.xml' => [ 'LG', 'Optimus G Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F220K-M3-D1-KK.xml' => [ 'LG', 'Optimus GK', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F220K-M9-D1-KK.xml' => [ 'LG', 'Optimus GK', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GT540.xml' => [ 'LG', 'Optimus GT540', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GT540f_M3_D1_J.xml' => [ 'LG', 'Optimus GT540', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GT540f_MR_M3_D1_J.xml' => [ 'LG', 'Optimus GT540', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GT540_M3_D2_CL.xml' => [ 'LG', 'Optimus GT540', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GT540_M6_D1_J.xml' => [ 'LG', 'Optimus GT540', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GT540_M6_D2_CL_J.xml' => [ 'LG', 'Optimus GT540', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GT540_M6_D2_CL_J_Y.xml' => [ 'LG', 'Optimus GT540', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GT540_MR_M3_D2_CL.xml' => [ 'LG', 'Optimus GT540', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GT540_MR_M3_D2_CL_J.xml' => [ 'LG', 'Optimus GT540', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GT540_MR_M6_D1_J.xml' => [ 'LG', 'Optimus GT540', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/GT540_MR_M6_D2_CL_J.xml' => [ 'LG', 'Optimus GT540', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E510-M6-D2.xml' => [ 'LG', 'Optimus Hub', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E510f-M6-D2.xml' => [ 'LG', 'Optimus Hub', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E510g-M6-D2.xml' => [ 'LG', 'Optimus Hub', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E410-M3-D1.xml' => [ 'LG', 'Optimus L1 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E410B-M6-D1.xml' => [ 'LG', 'Optimus L1 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E410f-M3-D1.xml' => [ 'LG', 'Optimus L1 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E410g-M10-D1.xml' => [ 'LG', 'Optimus L1 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E410g-M3-D1.xml' => [ 'LG', 'Optimus L1 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E410i-M3-D1.xml' => [ 'LG', 'Optimus L1 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E411g-M3-D1.xml' => [ 'LG', 'Optimus L1 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E415f-M3-D1.xml' => [ 'LG', 'Optimus L1 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E420-M3-D1.xml' => [ 'LG', 'Optimus L1 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E475f-M3-D1.xml' => [ 'LG', 'Optimus L1 II Tri', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E400-M6-D2.xml' => [ 'LG', 'Optimus L3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E400b-M10-D1.xml' => [ 'LG', 'Optimus L3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E400R-M6-D1.xml' => [ 'LG', 'Optimus L3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E405-M6-D2.xml' => [ 'LG', 'Optimus L3 Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E425-M3-D1.xml' => [ 'LG', 'Optimus L3 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E425f-M10-D1.xml' => [ 'LG', 'Optimus L3 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E425f-M20-D1.xml' => [ 'LG', 'Optimus L3 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E425f-M3-D1.xml' => [ 'LG', 'Optimus L3 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E425g-M3-D1.xml' => [ 'LG', 'Optimus L3 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E430-M10-D1.xml' => [ 'LG', 'Optimus L3 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E430-M3-D1.xml' => [ 'LG', 'Optimus L3 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E430-M5-D1.xml' => [ 'LG', 'Optimus L3 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E430-M6-D1.xml' => [ 'LG', 'Optimus L3 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E431g-M3-D1.xml' => [ 'LG', 'Optimus L3 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E435-M3-D1.xml' => [ 'LG', 'Optimus L3 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E435f-M3-D1.xml' => [ 'LG', 'Optimus L3 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E435g-M3-D1.xml' => [ 'LG', 'Optimus L3 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E435k-M3-D1.xml' => [ 'LG', 'Optimus L3 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E440-M3-D1.xml' => [ 'LG', 'Optimus L4 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E440g-M10-D1.xml' => [ 'LG', 'Optimus L4 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E465f-M3-D1.xml' => [ 'LG', 'Optimus L4 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E465g-M3-D1.xml' => [ 'LG', 'Optimus L4 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E445-M3-D1.xml' => [ 'LG', 'Optimus L4 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E467f-M3-D1.xml' => [ 'LG', 'Optimus L4 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E470f-M3-D1.xml' => [ 'LG', 'Optimus L4 II Triple', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E610-M10-D1.xml' => [ 'LG', 'Optimus L5', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E610-M3-D1.xml' => [ 'LG', 'Optimus L5', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E610-M5-D1.xml' => [ 'LG', 'Optimus L5', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E610v-M3-D1.xml' => [ 'LG', 'Optimus L5', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E612f-M10-D1.xml' => [ 'LG', 'Optimus L5', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E612f-M3-D1.xml' => [ 'LG', 'Optimus L5', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E612g-M3-D1.xml' => [ 'LG', 'Optimus L5', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E617G-M6-D1.xml' => [ 'LG', 'Optimus L5', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E615-M3-D1.xml' => [ 'LG', 'Optimus L5 Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E615f-M3-D1.xml' => [ 'LG', 'Optimus L5 Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E450-M3-D1.xml' => [ 'LG', 'Optimus L5 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E450B-M6-D1.xml' => [ 'LG', 'Optimus L5 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E450f-M10-D1.xml' => [ 'LG', 'Optimus L5 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E450f-M3-D1.xml' => [ 'LG', 'Optimus L5 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E460-M10-D1.xml' => [ 'LG', 'Optimus L5 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E460-M3-D1.xml' => [ 'LG', 'Optimus L5 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E460-M5-D1.xml' => [ 'LG', 'Optimus L5 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E460-M6-D1.xml' => [ 'LG', 'Optimus L5 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E460f-M3-D1.xml' => [ 'LG', 'Optimus L5 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E455-M3-D1-KK.xml' => [ 'LG', 'Optimus L5 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E455-M3-D1.xml' => [ 'LG', 'Optimus L5 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E455f-M3-D1.xml' => [ 'LG', 'Optimus L5 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P700-M3-D1.xml' => [ 'LG', 'Optimus L7', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P700-M6-D2.xml' => [ 'LG', 'Optimus L7', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P705-M3-D1.xml' => [ 'LG', 'Optimus L7', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P705-M6-D2.xml' => [ 'LG', 'Optimus L7', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P705f-M3-D1.xml' => [ 'LG', 'Optimus L7', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P705g-M10-D1.xml' => [ 'LG', 'Optimus L7', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P705g-M3-D1.xml' => [ 'LG', 'Optimus L7', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P705g-M6-D1.xml' => [ 'LG', 'Optimus L7', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P708g-M10-D1.xml' => [ 'LG', 'Optimus L7', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P708g-M3-D1.xml' => [ 'LG', 'Optimus L7', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P710-M10-D1.xml' => [ 'LG', 'Optimus L7 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P710-M3-D1-KK.xml' => [ 'LG', 'Optimus L7 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P710-M3-D1.xml' => [ 'LG', 'Optimus L7 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P710-M6-D1.xml' => [ 'LG', 'Optimus L7 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P712-M3-D1.xml' => [ 'LG', 'Optimus L7 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P713-M3-D1-KK.xml' => [ 'LG', 'Optimus L7 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P713-M3-D1.xml' => [ 'LG', 'Optimus L7 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P713GO-M3-D1.xml' => [ 'LG', 'Optimus L7 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P714-M10-D1-KK.xml' => [ 'LG', 'Optimus L7 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P714-M10-D1.xml' => [ 'LG', 'Optimus L7 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P714-M3-D1-KK.xml' => [ 'LG', 'Optimus L7 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P714-M3-D1.xml' => [ 'LG', 'Optimus L7 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P715-M3-D1-KK.xml' => [ 'LG', 'Optimus L7 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P715-M3-D1.xml' => [ 'LG', 'Optimus L7 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P716-M3-D1.xml' => [ 'LG', 'Optimus L7 II Dual', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D700-M6-D1.xml' => [ 'LG', 'Optimus L9', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/MS769-M10-D1.xml' => [ 'LG', 'Optimus L9', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P760-M6-D1.xml' => [ 'LG', 'Optimus L9', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P765-M6-D1.xml' => [ 'LG', 'Optimus L9', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P768-M10-D1.xml' => [ 'LG', 'Optimus L9', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P768-M3-D1.xml' => [ 'LG', 'Optimus L9', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P768-M6-D1.xml' => [ 'LG', 'Optimus L9', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P769-M10-D1.xml' => [ 'LG', 'Optimus L9', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P769-M3-D1.xml' => [ 'LG', 'Optimus L9', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P778-M3-D1.xml' => [ 'LG', 'Optimus L9', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D605-M3-D1-KK.xml' => [ 'LG', 'Optimus L9 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D605-M3-D1.xml' => [ 'LG', 'Optimus L9 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D605-M5-D1-KK.xml' => [ 'LG', 'Optimus L9 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D605-M6-D1-KK.xml' => [ 'LG', 'Optimus L9 II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P935-M10-D1-ICS.xml' => [ 'LG', 'Optimus LTE', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P935-M10-D1.xml' => [ 'LG', 'Optimus LTE', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P936-M3-D1.xml' => [ 'LG', 'Optimus LTE', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F260S-M3-D1-KK.xml' => [ 'LG', 'Optimus LTE III', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F260S-M9-D1-KK.xml' => [ 'LG', 'Optimus LTE III', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/a_ygkA6q45TBK1IF/LGMS395-M10-D1.xml' => [ 'LG', 'Optimus M', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/LG-MS690.xml' => [ 'LG', 'Optimus M', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/LG-MS695.xml' => [ 'LG', 'Optimus M+', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P350-M6-D1.xml' => [ 'LG', 'Optimus Me', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P350-M6-D2.xml' => [ 'LG', 'Optimus Me', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P350f-M6-D1.xml' => [ 'LG', 'Optimus Me', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P350g-M6-D1.xml' => [ 'LG', 'Optimus Me', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/L45C/latest' => [ 'LG', 'Optimus Net', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/L45C/LGL45CT1.rdf' => [ 'LG', 'Optimus Net', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/L45C/LGL45CT2.rdf' => [ 'LG', 'Optimus Net', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P690-M6-D2.xml' => [ 'LG', 'Optimus Net', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P690b-M6-D1.xml' => [ 'LG', 'Optimus Net', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P690f-M6-D1.xml' => [ 'LG', 'Optimus Net', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P692-M6-D2.xml' => [ 'LG', 'Optimus Net', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P698-M6-D2.xml' => [ 'LG', 'Optimus Net', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P698f-M6-D2.xml' => [ 'LG', 'Optimus Net', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P500-M6-D1.xml' => [ 'LG', 'Optimus One', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P500h-M6-D1.xml' => [ 'LG', 'Optimus One', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P500h_iw-M6-D1.xml' => [ 'LG', 'Optimus One', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P500_iw-M6-D1.xml' => [ 'LG', 'Optimus One', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P503-M6-D1.xml' => [ 'LG', 'Optimus One', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P504-M10-D1.xml' => [ 'LG', 'Optimus One', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/C660-M6-D1.xml' => [ 'LG', 'Optimus Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/C660h-M6-D1-TCL.xml' => [ 'LG', 'Optimus Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/C660h-M6-D1-USC.xml' => [ 'LG', 'Optimus Pro', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/C660h-M6-D1.xml' => [ 'LG', 'Optimus Pro', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/L55C/LGL55CV1.rdf' => [ 'LG', 'Optimus Q', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/L55C/LGL55CV3.rdf' => [ 'LG', 'Optimus Q', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS670/LS670ZV8.rdf' => [ 'LG', 'Optimus S', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS670/LS670ZV9.rdf' => [ 'LG', 'Optimus S', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS670/LS670ZVD.rdf' => [ 'LG', 'Optimus S', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS670/LS670ZVH.rdf' => [ 'LG', 'Optimus S', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS670/LS670ZVJ.rdf' => [ 'LG', 'Optimus S', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/LGE/VM701-VMUB/1.0/UAProf.xml' => [ 'LG', 'Optimus Slider', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E730-M6-D2.xml' => [ 'LG', 'Optimus Sol', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E730f-M6-D2.xml' => [ 'LG', 'Optimus Sol', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P509-M10-D1.xml' => [ 'LG', 'Optimus T', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/lg/vm670/1.0/VMU_VM670_UAProf.xml' => [ 'LG', 'Optimus V', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P895-M6-D2.xml' => [ 'LG', 'Optimus Vu', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P895qb-M10-D1.xml' => [ 'LG', 'Optimus Vu', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P895qb-M6-D2.xml' => [ 'LG', 'Optimus Vu', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F200L-M3-D1-KK.xml' => [ 'LG', 'Optimus Vu II', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P505-M6-D1.xml' => [ 'LG', 'Phoenix', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P505R-M6-D1.xml' => [ 'LG', 'Phoenix', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/PLS225/WL225V04.rdf' => [ 'LG', 'PLS225', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/PLS350/LX35VN02.rdf' => [ 'LG', 'PLS350', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/PM225/PM225V02.rdf' => [ 'LG', 'PM-225', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/PM325/PM325V16.rdf' => [ 'LG', 'PM-325', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P940-M6-D2.xml' => [ 'LG', 'PRADA 3.0', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P940h-M6-D2.xml' => [ 'LG', 'PRADA 3.0', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LGLS620-Chameleon/latest' => [ 'LG', 'Realm', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS620-BOOST/LS620ZV3.rdf' => [ 'LG', 'Realm', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS620-BOOST/LS620ZV4.rdf' => [ 'LG', 'Realm', 'Android', DeviceType::MOBILE ], + 'http://wapuaprof.wap.mycricket.com/lg/LG-LW770.xml' => [ 'LG', 'Regard', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LX260/LX260V09.rdf' => [ 'LG', 'Rumor LX260', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LX260/LX260V0a.rdf' => [ 'LG', 'Rumor LX260', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LG272/LG272ZV8.rdf' => [ 'LG', 'Rumor Reflex', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LN272/LN272ZV4.rdf' => [ 'LG', 'Rumor Reflex', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LN272/LN272ZV7.rdf' => [ 'LG', 'Rumor Reflex', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LN272/LN272ZV8.rdf' => [ 'LG', 'Rumor Reflex', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LN272S/LN272SV2.rdf' => [ 'LG', 'Rumor Reflex S', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LN510/LN510ZVD.rdf' => [ 'LG', 'Rumor Touch', 'Brew', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/lg/vm510/1.0/VMU_VM510_UAProf.xml' => [ 'LG', 'Rumor Touch', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-S5300.xml' => [ 'LG', 'S5300', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lge/vs920/vs920.xml' => [ 'LG', 'Spectrum', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lge/vs930/vs930.xml' => [ 'LG', 'Spectrum 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/AK1bQ_G8_-S9ccPj/H440-M3-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/AK1bQ_G8_-S9ccPj/H440AR-M3-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/AK1bQ_G8_-S9ccPj/H440n-M10-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/AK1bQ_G8_-S9ccPj/H440n-M20-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/AK1bQ_G8_-S9ccPj/H440n-M3-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/AK1bQ_G8_-S9ccPj/H440n-M5-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/AK1bQ_G8_-S9ccPj/H440n-M6-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/AK1bQ_G8_-S9ccPj/H442-M3-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/H440n-M3-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/ojFJqSe94jShCXCN/H443-M10-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/ojFJqSe94jShCXCN/H445-M3-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/yZxLjC9A3ey4GDAw/H420-M10-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/yZxLjC9A3ey4GDAw/H420-M3-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/yZxLjC9A3ey4GDAw/H422-M3-D1.xml' => [ 'LG', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/LG-MS870.xml' => [ 'LG', 'Spirit 4G', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/L15G-M10-D1.xml' => [ 'LG', 'Sunrise', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LGL15G-M10-D1.xml' => [ 'LG', 'Sunrise', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/Q9h6lw8rC-nijrc6/LGL15G-M10-D1.xml' => [ 'LG', 'Sunrise', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/yObOcsVFUyAgTj5W/LGL33L-M10-D1.xml' => [ 'LG', 'Sunset', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T310i-M3-D1-NS.xml' => [ 'LG', 'T310i', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T325-M3-D1.xml' => [ 'LG', 'T325', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T370-M3-D1.xml' => [ 'LG', 'T370', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T375-M3-D1.xml' => [ 'LG', 'T375', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T375.xml' => [ 'LG', 'T375', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T385.xml' => [ 'LG', 'T385', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T385b-M3-D1.xml' => [ 'LG', 'T385b', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T395.xml' => [ 'LG', 'T395', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T500-M3-D1.xml' => [ 'LG', 'T500', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T505-M3-D1.xml' => [ 'LG', 'T505', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T510-M3-D1.xml' => [ 'LG', 'T510', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T5100N.xml' => [ 'LG', 'T5100', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T5100V.xml' => [ 'LG', 'T5100', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T515-M3-D1.xml' => [ 'LG', 'T515', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T565-M3-D1.xml' => [ 'LG', 'T565', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T565b-M3-D1.xml' => [ 'LG', 'T565b', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T580-M3-D1.xml' => [ 'LG', 'T580', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T585-M3-D1.xml' => [ 'LG', 'T585', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-T595-M3-D1.xml' => [ 'LG', 'T595', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-TB200.xml' => [ 'LG', 'TB200', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P925-M6-D1-ICS.xml' => [ 'LG', 'Thrill', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P925-M6-D1.xml' => [ 'LG', 'Thrill', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P925g-M6-D1-ICS.xml' => [ 'LG', 'Thrill', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P925g-M6-D1.xml' => [ 'LG', 'Thrill', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/D857-M3-D1.xml' => [ 'LG', 'Titan', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-C333-M3-D1.xml' => [ 'LG', 'Tri Chip C333', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS660-2012071301/LS660ZV5.rdf' => [ 'LG', 'Tribute', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS660-BOOST/LS660ZV4.rdf' => [ 'LG', 'Tribute', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS660-BOOST/LS660ZV5.rdf' => [ 'LG', 'Tribute', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS660-BOOST/LS660ZV6.rdf' => [ 'LG', 'Tribute', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS660-Chameleon/latest' => [ 'LG', 'Tribute', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS660-SPRPRE/LS660ZV3.rdf' => [ 'LG', 'Tribute', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS660-SPRPRE/LS660ZV4.rdf' => [ 'LG', 'Tribute', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS660-SPRPRE/LS660ZV5.rdf' => [ 'LG', 'Tribute', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS660-VIRGIN/LS660ZV3.rdf' => [ 'LG', 'Tribute', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS660-VIRGIN/LS660ZV4.rdf' => [ 'LG', 'Tribute', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS660-VIRGIN/LS660ZV5.rdf' => [ 'LG', 'Tribute', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS660-VIRGIN/LS660ZV6.rdf' => [ 'LG', 'Tribute', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-TU575.xml' => [ 'LG', 'TU575', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-TU720.xml' => [ 'LG', 'TU720 Shine', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-TU915.xml' => [ 'LG', 'TU915 Vu', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-U300.xml' => [ 'LG', 'U300', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-U400.xml' => [ 'LG', 'U400', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-U830.xml' => [ 'LG', 'U830 Chocolate', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-U900.xml' => [ 'LG', 'U900', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-U970.xml' => [ 'LG', 'U970 Shine', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/eNsCGw_apwMhnXPM/H960-M10-D1.xml' => [ 'LG', 'V10', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/eNsCGw_apwMhnXPM/H960-M3-D1.xml' => [ 'LG', 'V10', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/eNsCGw_apwMhnXPM/H961N-M3-D1.xml' => [ 'LG', 'V10', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LG730-6100000231/LG730ZV5.rdf' => [ 'LG', 'Venice', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LG730-BOOST/LG730ZV5.rdf' => [ 'LG', 'Venice', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LG730-BOOST/LG730ZV6.rdf' => [ 'LG', 'Venice', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LG730-BOOST/LG730ZV8.rdf' => [ 'LG', 'Venice', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LG730-Chameleon/latest' => [ 'LG', 'Venice', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/VI125/VI125V10.rdf' => [ 'LG', 'VI-125', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/VI5225/LX540V08.rdf' => [ 'LG', 'VI-5225', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS840/LS840ZVC.rdf' => [ 'LG', 'Viper', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS840/LS840ZVD.rdf' => [ 'LG', 'Viper', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS840/LS840ZVI.rdf' => [ 'LG', 'Viper', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS840/LS840ZVK.rdf' => [ 'LG', 'Viper', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS740-2012071301/LS740ZV6.rdf' => [ 'LG', 'Volt', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/LG/LS751-Chameleon/latest' => [ 'LG', 'Volt 2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/F300L-M3-D1.xml' => [ 'LG', 'Vu 3', 'Android', DeviceType::MOBILE ], + 'http://mms.cellcom.com/uaprofs/lg-vx5000.xml' => [ 'LG', 'VX5000', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lg/vx8350/vx8350.xml' => [ 'LG', 'VX8350', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lg/vx8550/vx8550.xml' => [ 'LG', 'VX8550 Chocolate', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lg/vx8600/vx8600.xml' => [ 'LG', 'VX8600', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lg/vx8610/vx8610.xml' => [ 'LG', 'VX8610 Decoy', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lg/vx8700/vx8700.xml' => [ 'LG', 'VX8700', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lg/vx8800/vx8800.xml' => [ 'LG', 'VX8800 Venus', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lg/vx9100/vx9100.xml' => [ 'LG', 'VX9100 enV2', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lg/vx9400/vx9400.xml' => [ 'LG', 'VX9400', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lg/vx9700/vx9700.xml' => [ 'LG', 'VX9700 Dare', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/lg/vx9900/vx9900.xml' => [ 'LG', 'VX9900 enV', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/sMGZI_CVcpnY_oHi/H410-M3-D1.xml' => [ 'LG', 'Wine Smart', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/31L-M10-D1.xml' => [ 'LG', 'X3', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-UAP-X330-v0.1.xml' => [ 'LG', 'X330T', null, DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-X350.xml' => [ 'LG', 'X350', 'MTK', DeviceType::MOBILE ], + 'http://www.m4tel.com/product/profiles/uaprof/M4TEL_SS990GPRS.xml' => [ 'M4Tel', 'E-Motion', 'Android', DeviceType::MOBILE ], + 'http://www.m4tel.com/product/profiles/uaprof/M4TEL_SS550GPRS.xml' => [ 'M4Tel', 'Genius', 'Android', DeviceType::MOBILE ], + 'http://www.m4tel.com/product/profiles/uaprof/M4_SS1060GPRS.xml' => [ 'M4Tel', 'M4Live', 'Android', DeviceType::MOBILE ], + 'http://www.m4tel.com/product/profiles/uaprof/M4_SS1080GPRS.xml' => [ 'M4Tel', 'Max One', 'Android', DeviceType::MOBILE ], + 'http://www.m4tel.com/product/profiles/uaprof/M4_SS1090GPRS.xml' => [ 'M4Tel', 'Max Ultra', 'Android', DeviceType::MOBILE ], + 'http://www.m4tel.com/product/profiles/uaprof/M4TEL_SS880GPRS.xml' => [ 'M4Tel', 'Mirage', 'Android', DeviceType::MOBILE ], + 'http://www.m4tel.com/product/profiles/uaprof/M4_SS1070GPRS.xml' => [ 'M4Tel', 'Sense', 'Android', DeviceType::MOBILE ], + 'http://www.m4tel.com/product/profiles/uaprof/M4_SS1050GPRS.xml' => [ 'M4Tel', 'SS1050', 'Android', DeviceType::MOBILE ], + 'http://www.m4tel.com/product/profiles/uaprof/M4_SS4040GPRS.xml' => [ 'M4Tel', 'SS4040', 'Android', DeviceType::MOBILE ], + 'http://www.m4tel.com/product/profiles/uaprof/M4_SS4041GPRS.xml' => [ 'M4Tel', 'SS4041', 'Android', DeviceType::MOBILE ], + 'http://www.m4tel.com/product/profiles/uaprof/M4_SS4045GPRS.xml' => [ 'M4Tel', 'SS4045', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-SKATE.xml, http://www.zte.com.cn/mobile/uaprof/ZTE-SKATE.xml'=> [ 'Medion', 'Life P4310', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/MT7A.xml' => [ 'MegaFon', 'Login', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/MegaFon_V9+.xml' => [ 'MegaFon', 'V9+', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/smart_a17.xml' => [ 'MEO', 'Smart A17', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/MEO Smart A40.xml' => [ 'MEO', 'Smart A40', 'Android', DeviceType::MOBILE ], + 'http://mobileupdate.sdt.pt/meo/WBW5518-UAProfile.xml' => [ 'MEO', 'Smart A66', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/Micromax/Micromax_A104.xml' => [ 'Micromax', 'A104 Canvas Fire', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOA110Q.xml' => [ 'Micromax', 'A110 Canvas 2', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/Micromax/Micromax_A177.xml' => [ 'Micromax', 'A177 Canvas Juice', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/Micromax/Micromax_A190.xml' => [ 'Micromax', 'A190 Canvas HD Plus', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/Micromax/Micromax_A315.xml' => [ 'Micromax', 'A315 Canvas 4 Plus', 'Android', DeviceType::MOBILE ], + 'http://ibu.joy3g.org/ibu/MCX_A54_20121119_ua.xml' => [ 'Micromax', 'A54 Ninja', 'Android', DeviceType::MOBILE ], + 'http://ibu.joy3g.org/ibu/MCX_A56_20120522_ua.xml' => [ 'Micromax', 'A56 Ninja 2', 'Android', DeviceType::MOBILE ], + 'http://ibu.joy3g.org/ibu/MCX_A57_20120725_ua.xml' => [ 'Micromax', 'A57 Ninja 3', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/Micromax/Micromax_A064.xml' => [ 'Micromax', 'A64 Bolt', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/Micromax/Micromax_A065.xml' => [ 'Micromax', 'A65 Smarty', 'Android', DeviceType::MOBILE ], + 'http://ibu.joy3g.org/ibu/MCX_A87_20120725_ua.xml' => [ 'Micromax', 'A87 Ninja 4', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/Micromax/Micromax_A093.xml' => [ 'Micromax', 'A93 Canvas Elanza', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/Micromax/Micromax_AQ5001.xml' => [ 'Micromax', 'AQ5001 Canvas Juice 2', 'Android', DeviceType::MOBILE ], + 'http://202.58.121.191/MTK_Phone_KK_UAprofile.xml' => [ 'Micromax', 'Canvas Tab P470', 'Android', DeviceType::TABLET ], + 'http://www.1066.cn/uaprof/prof/Micromax/Micromax_Q380.xml' => [ 'Micromax', 'Q380 Canvas Spark', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/Micromax/Micromax_Q394.xml' => [ 'Micromax', 'Q394 Canvas Juice 3+', 'Android', DeviceType::MOBILE ], + 'Micromax X450' => [ 'Micromax', 'X450', null, DeviceType::MOBILE ], + 'http://go.microsoft.com/fwlink/?LinkId=164226' => [ 'Microsoft', 'Kin ONE', 'Kin OS', DeviceType::MOBILE ], + 'http://zune.net/uaprof/ZuneHD.xml' => [ 'Microsoft', 'Zune HD', null, ], + 'http://www.mio-tech.com.tw/download/smartphone/Mio8390r101.xml' => [ 'Mio', '8390', null, DeviceType::MOBILE ], + 'http://www.mio-tech.com.tw/download/smartphone/MioA700.xml' => [ 'Mio', 'A700', null, DeviceType::MOBILE ], + 'http://www.mio-tech.com.tw/download/smartphone/MioA701.xml' => [ 'Mio', 'A701', null, DeviceType::MOBILE ], + 'http://www.mitsubishi-telecom.com/profiles/eclipse.ua' => [ 'Mitsubishi', 'Trium Eclipse', null, DeviceType::MOBILE ], + 'http://www.mitsubishi-telecom.com/profiles/eclipse_mserv.ua' => [ 'Mitsubishi', 'Trium Eclipse', null, DeviceType::MOBILE ], + 'http://www.mitsubishi-telecom.com/profiles/mt560.ua' => [ 'Mitsubishi', 'Trium M 320', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/M9000.xml' => [ 'MobiFone', 'M9000', 'Android', DeviceType::MOBILE ], + 'http://imatemms.imate.com/gen/UAProf_JAMA_v1.xml' => [ 'MobileXP', 'JAMA', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/MOCHE SMART A16.xml' => [ 'Moche', 'Smart A16', 'Android', DeviceType::MOBILE ], + 'http://asmobile.ehosting.com.tw/uaprof/Virgin_1.xml' => [ 'Modelabs', 'Virgin', null, DeviceType::MOBILE ], + 'http://www.modumobile.com/ua/modu-t_1_browser.xml' => [ 'Modu', 'T', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/moii_E598.xml' => [ 'moii', 'E598', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Momodesign_MD_Droid.xml' => [ 'Momodesign', 'MD Droid', 'Android', DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/a1000/Profile/a1000.rdf' => [ 'Motorola', 'A1000', 'UIQ', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/MOT/MOT_A3300c_4_20091029.xml' => [ 'Motorola', 'A3300', 'Windows Mobile', DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/a780/Profile/a780.rdf' => [ 'Motorola', 'A780', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/a840/a840v1.xml' => [ 'Motorola', 'A840', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/MOT603KIT/551Q117PAX33.rdf' => [ 'Motorola', 'ADMIRAL', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/MOT603KIT/551Q117PAX63.rdf' => [ 'Motorola', 'ADMIRAL', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/MOT603KIT/551Q117PAX69.rdf' => [ 'Motorola', 'ADMIRAL', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/MOT603KIT/551Q117PAX79.rdf' => [ 'Motorola', 'ADMIRAL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb860/Profile/motomb860.rdf' => [ 'Motorola', 'ATRIX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb860/Profile/motomb860emara.rdf' => [ 'Motorola', 'ATRIX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb861/Profile/motomb861.rdf' => [ 'Motorola', 'ATRIX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoME860/profile/MotoME860.rdf' => [ 'Motorola', 'ATRIX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb865/Profile/motomb865.rdf' => [ 'Motorola', 'ATRIX 2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt687/Profile/xt687.rdf' => [ 'Motorola', 'ATRIX TV', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoMB300/profile/MotoMB300.rdf' => [ 'Motorola', 'BACKFLIP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb300/Profile/MotoMB300Eclair.rdf' => [ 'Motorola', 'BACKFLIP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb300/Profile/motomb300la.rdf' => [ 'Motorola', 'BACKFLIP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb520/Profile/MotoMB520.rdf' => [ 'Motorola', 'BRAVO', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb520/Profile/MotoMB520FroYo.rdf' => [ 'Motorola', 'BRAVO', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/ex118/Profile/EX118.rdf' => [ 'Motorola', 'Brea EX119', 'MTK', DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/C168/Profile/c168.rdf' => [ 'Motorola', 'C168', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/C168i/Profile/C168i-cingular.rdf' => [ 'Motorola', 'C168i', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/C290/2440.rdf' => [ 'Motorola', 'C290', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/c357/Profile/c357.rdf' => [ 'Motorola', 'C357', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb502/Profile/MotoMB502.rdf' => [ 'Motorola', 'CHARM', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoMB200/profile/MotoMB200.rdf' => [ 'Motorola', 'CLIQ', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoMB501/profile/MotoMB501.rdf' => [ 'Motorola', 'CLIQ XT', 'Android', DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/cn620/profile/cn620.rdf' => [ 'Motorola', 'CN620', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoMB525+/profile/MotoMB525+.rdf' => [ 'Motorola', 'DEFY', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoMB525/profile/MotoMB525.rdf' => [ 'Motorola', 'DEFY', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoMB525/profile/MotoMB525Telstra.rdf' => [ 'Motorola', 'DEFY', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt535/Profile/XT535.rdf' => [ 'Motorola', 'DEFY', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt535/Profile/xt535I.rdf' => [ 'Motorola', 'DEFY', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt535/Profile/xt535_TNZ.rdf' => [ 'Motorola', 'DEFY', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt536/Profile/xt536.rdf' => [ 'Motorola', 'DEFY Diana', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt536/Profile/xt536I.rdf' => [ 'Motorola', 'DEFY Diana', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt320/Profile/xt320.rdf' => [ 'Motorola', 'DEFY Mini', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt321/Profile/xt321.rdf' => [ 'Motorola', 'DEFY Mini', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt560/Profile/xt560.rdf' => [ 'Motorola', 'DEFY Pro', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt555c/Profile/xt555c.rdf' => [ 'Motorola', 'DEFY XT', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt556/Profile/xt556.rdf' => [ 'Motorola', 'DEFY XT', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt557/Profile/xt557.rdf' => [ 'Motorola', 'DEFY XT', 'Android', DeviceType::MOBILE ], + 'http://uaprof.ntelospcs.net/xt556.xml' => [ 'Motorola', 'DEFY XT', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb526/Profile/motomb526.rdf' => [ 'Motorola', 'DEFY+', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb886/Profile/motomb886.rdf' => [ 'Motorola', 'DINARA', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/a955/a955.xml' => [ 'Motorola', 'Droid 2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/a956/a956.xml' => [ 'Motorola', 'Droid 2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt682/Profile/xt682.rdf' => [ 'Motorola', 'Droid 3', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/xt862/xt862.xml' => [ 'Motorola', 'Droid 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/XT897-2011011301/771Q6SPR125ASA14.rdf' => [ 'Motorola', 'Droid 4', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/xt894/xt894.xml' => [ 'Motorola', 'Droid 4', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/xt875/xt875.xml' => [ 'Motorola', 'Droid Bionic', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motoxt610/Profile/motoxt610.rdf' => [ 'Motorola', 'Droid Pro', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/xt610/xt610.xml' => [ 'Motorola', 'Droid Pro', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motoxt912/Profile/motoxt912.rdf' => [ 'Motorola', 'Droid RAZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/xt912/xt912.xml' => [ 'Motorola', 'Droid RAZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motoxt925/Profile/motoxt925.rdf' => [ 'Motorola', 'Droid RAZR HD', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/xt926/xt926.xml' => [ 'Motorola', 'Droid RAZR HD', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/xt907/xt907.xml' => [ 'Motorola', 'Droid RAZR M', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/mb810/mb810.xml' => [ 'Motorola', 'Droid X', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/mb870/mb870.xml' => [ 'Motorola', 'Droid X2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/mz617/mz617.xml' => [ 'Motorola', 'Droid XYBOARD 10.1', 'Android', DeviceType::TABLET ], + 'http://uaprof.vtext.com/mot/mz609/mz609.xml' => [ 'Motorola', 'Droid XYBOARD 8.2', 'Android', DeviceType::TABLET ], + 'http://motorola.handango.com/phoneconfig/e365/Profile/e365.rdf' => [ 'Motorola', 'E365', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/e680i/Profile/e680i.rdf' => [ 'Motorola', 'E680i', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/E770v/Profile/E770v.rdf' => [ 'Motorola', 'E770v', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/e790/Profile/e790.rdf' => [ 'Motorola', 'E790', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/e815/Profile/e815.rdf' => [ 'Motorola', 'E815', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/BMC_Motorola_E815_BMX171P.rdf' => [ 'Motorola', 'E815', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb853/Profile/motomb853.rdf' => [ 'Motorola', 'Electrify', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/em25/Profile/em25.rdf' => [ 'Motorola', 'EM25', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/em30/Profile/em30.rdf' => [ 'Motorola', 'EM30', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/em325/Profile/em325.rdf' => [ 'Motorola', 'EM325', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/es405b/Profile/es405b.rdf' => [ 'Motorola', 'ES405B', 'Windows Mobile', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/ex116/Profile/ex116.rdf' => [ 'Motorola', 'EX116', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/ex128/Profile/EX128_27390a3c7426da5686f20302b82926e1.rdf' => [ 'Motorola', 'EX128', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/ex226/Profile/ex226.rdf' => [ 'Motorola', 'EX226', 'MTK', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt311/Profile/xt311.rdf' => [ 'Motorola', 'FIRE', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt530/Profile/xt530.rdf' => [ 'Motorola', 'FIRE XT', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/XT531/Profile/XT531.rdf' => [ 'Motorola', 'FIRE XT', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoMB511/profile/MotoMB511.rdf' => [ 'Motorola', 'FLIPOUT', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb508/Profile/MotoMB508FroYo.rdf' => [ 'Motorola', 'FLIPSIDE', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/wx308/Profile/wx308.rdf' => [ 'Motorola', 'GLEAM+ WX308', 'MTK', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/ic402/1280.rdf' => [ 'Motorola', 'ic402 Blend', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/ic502/1292.rdf' => [ 'Motorola', 'ic502 Buzz', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/ic602/1500.rdf' => [ 'Motorola', 'ic602 Buzz+', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/ic902/2610.rdf' => [ 'Motorola', 'ic902 Deluxe', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motoxt627/Profile/Motoxt627.rdf' => [ 'Motorola', 'Kairos XT627', 'Android', DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/k1/Profile/k1.rdf' => [ 'Motorola', 'KRZR K1', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/moto/k1c/k1c.xml' => [ 'Motorola', 'KRZR K1c', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/K3/Profile/K3.rdf' => [ 'Motorola', 'KRZR K3', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/l6/Profile/l6.rdf' => [ 'Motorola', 'L6', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/l6i/Profile/l6i.rdf' => [ 'Motorola', 'L6i', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/MOTOXT603/' => [ 'Motorola', 'Master XT605', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoXT605/profile/MotoXT605.rdf' => [ 'Motorola', 'Master XT605', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/mc65/Profile/mc65.rdf' => [ 'Motorola', 'MC65 Wireless Rugged Mobile Computer', 'Windows Mobile', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/milestonext720/Profile/milestonext720.rdf' => [ 'Motorola', 'Milestone', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoA953/profile/MotoA953.rdf' => [ 'Motorola', 'Milestone 2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoA953/profile/MotoA953GB.rdf' => [ 'Motorola', 'Milestone 2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motoxt860/Profile/motoxt860.rdf' => [ 'Motorola', 'Milestone 3', 'Android', DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/A1200e/profile/A1200e.rdf' => [ 'Motorola', 'Ming A1200e', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/A1200i/profile/A1200i.rdf' => [ 'Motorola', 'Ming A1200i', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/em330/Profile/em330.rdf' => [ 'Motorola', 'MOTO EM330', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motome525+/Profile/motome525+.rdf' => [ 'Motorola', 'MOTO ME525', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.motorola.com/uaprof/MOT_MT620-1.0.xml' => [ 'Motorola', 'MOTO MT620', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoMt870/profile/MotoMt870.rdf' => [ 'Motorola', 'MOTO MT870', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/SLV-L7c/0350.rdf' => [ 'Motorola', 'MOTO SLVR L7c', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motoxt316/Profile/motoxt316.rdf' => [ 'Motorola', 'MOTO XT316', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt316/Profile/xt316.rdf' => [ 'Motorola', 'MOTO XT316', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt615/Profile/motoxt615.rdf' => [ 'Motorola', 'MOTO XT615', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt615/Profile/xt615.rdf' => [ 'Motorola', 'MOTO XT615', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motoxt626/Profile/Motoxt626.rdf' => [ 'Motorola', 'MOTO XT626', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/MOT/MOT_XT681_1_20110930.XML' => [ 'Motorola', 'MOTO XT681', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/MOT/MOT_XT681_1_20111012.XML' => [ 'Motorola', 'MOTO XT681', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/Motorola-XT681.xml' => [ 'Motorola', 'MOTO XT681', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt685/Profile/xt685.rdf' => [ 'Motorola', 'MOTO XT685', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb860/Profile/motoxt882.rdf' => [ 'Motorola', 'MOTO XT882', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/w450/profile/w450.rdf' => [ 'Motorola', 'MOTOACTV W450', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/ex430/Profile/ex430.rdf' => [ 'Motorola', 'MotoGO EX430', 'MTK', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/ex108/Profile/ex108.rdf' => [ 'Motorola', 'MOTOKEY Mini EX108', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/ex225/Profile/ex225.rdf' => [ 'Motorola', 'MOTOKEY Social EX225', 'MTK', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/mt680/Profile/mt680.rdf' => [ 'Motorola', 'MOTOLUXE MT680', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt611/Profile/xt611.rdf' => [ 'Motorola', 'MOTOSMART Flip', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/MOT/MOT_XT553_1_20120309.XML' => [ 'Motorola', 'MOTOSMART MIX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt550/Profile/xt550.rdf' => [ 'Motorola', 'MOTOSMART MIX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt303/Profile/xt303.rdf' => [ 'Motorola', 'MOTOSMART XT303', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt305/Profile/xt305.rdf' => [ 'Motorola', 'MOTOSMART XT305', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt389/Profile/xt389.rdf' => [ 'Motorola', 'MOTOSMART XT389', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt389/Profile/xt389_we.rdf' => [ 'Motorola', 'MOTOSMART XT389', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt390/Profile/xt390.rdf' => [ 'Motorola', 'MOTOSMART XT390', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/q-gsm/Profile/mot-a3100.rdf' => [ 'Motorola', 'MOTOSURF A3100', 'Windows', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/zn5/Profile/zn5.rdf' => [ 'Motorola', 'MOTOZINE ZN5', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/mpx/Profile/mpx.rdf' => [ 'Motorola', 'MPx', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/mpx200/Profile/mpx200.rdf' => [ 'Motorola', 'MPx200', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/mpx220/Profile/mpx220.rdf' => [ 'Motorola', 'MPx220', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomt917/profile/motomt917.rdf' => [ 'Motorola', 'MT917', 'Android', DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/u6/Profile/u6.rdf' => [ 'Motorola', 'PEBL U6', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoMB200/profile/MotoMB200.rdf451A1.rdf' => [ 'Motorola', 'PHOTON', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/MOTOMB855/' => [ 'Motorola', 'PHOTON 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/MOTOMB855/451A1.rdf' => [ 'Motorola', 'PHOTON 4G', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motomb855/Profile/motomb855.rdf' => [ 'Motorola', 'PHOTON 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/XT897-SPRINT/771Q6SPR125ASA10.rdf' => [ 'Motorola', 'PHOTON Q', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/XT897-SPRINT/771Q6SPR125ASA14.rdf' => [ 'Motorola', 'PHOTON Q', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/XT897-SPRINT/771Q6SPR89ASA36.rdf' => [ 'Motorola', 'PHOTON Q', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/XT897/latest' => [ 'Motorola', 'PHOTON Q', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoXT621/profile/MotoXT621.rdf' => [ 'Motorola', 'Primus XT621', 'Android', DeviceType::MOBILE ], + 'http://uaporf.motorola.com/phoneconfig/MotoME632/profile/MotoME632.rdf' => [ 'Motorola', 'PRO+', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoMB632/profile/MotoMB632.rdf' => [ 'Motorola', 'PRO+', 'Android', DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/q-umts/Profile/mot-q-umts.rdf' => [ 'Motorola', 'Q', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/q-gsm/Profile/mot-q-gsm.rdf' => [ 'Motorola', 'Q', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/q-umts/Profile/mot-q-umts.rdf' => [ 'Motorola', 'Q', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/q-umts/Profile/mot-q9h.rdf' => [ 'Motorola', 'Q9h', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motoxt910/Profile/motoxt910.rdf' => [ 'Motorola', 'RAZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motoxt910k/Profile/motoxt910k.rdf' => [ 'Motorola', 'RAZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motoxt890/Profile/motoxt890.rdf' => [ 'Motorola', 'RAZR i', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motoxt890/Profile/motoxt890_jb.rdf' => [ 'Motorola', 'RAZR i', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/mt781/Profile/mt781.rdf' => [ 'Motorola', 'RAZR i', 'Android', DeviceType::MOBILE ], + 'http://uaprof.ntelospcs.net/motoxt908.xml' => [ 'Motorola', 'RAZR MAXX', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/MOT/MOT_XT889_1_20120217.XML' => [ 'Motorola', 'RAZR V', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/mt887/Profile/mt887.rdf' => [ 'Motorola', 'RAZR V', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt885/Profile/xt885.rdf' => [ 'Motorola', 'RAZR V', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt885/Profile/xt885_ca.rdf' => [ 'Motorola', 'RAZR V', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt885/Profile/xt885_ird.rdf' => [ 'Motorola', 'RAZR V', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt886/Profile/xt886.rdf' => [ 'Motorola', 'RAZR V', 'Android', DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/razrv3x/Profile/razrv3x.rdf' => [ 'Motorola', 'RAZR V3', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/razrv3xx/Profile/RAZRV3xx.rdf' => [ 'Motorola', 'RAZR V3', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/v3/Profile/v3.rdf' => [ 'Motorola', 'RAZR V3', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/BMC_Motorola_V3c_070301P.rdf' => [ 'Motorola', 'RAZR V3c', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/v3i/Profile/v3i.rdf' => [ 'Motorola', 'RAZR V3i', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/v3r/Profile/v3r.rdf' => [ 'Motorola', 'RAZR V3r', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/razrv6/Profile/RAZRv6.rdf' => [ 'Motorola', 'RAZR V6', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MOTORAZRv9x/profile/MOTORAZRv9x.rdf' => [ 'Motorola', 'RAZR V9', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/v9/profile/v9.rdf' => [ 'Motorola', 'RAZR V9', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/VE20/0570.rdf' => [ 'Motorola', 'RAZR VE20', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/motorazrV8/Profile/motorazrv8.rdf' => [ 'Motorola', 'RAZR2 V8', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/V9m/2680.rdf' => [ 'Motorola', 'RAZR2 V9m', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/motorola/V9m-1.rdf' => [ 'Motorola', 'RAZR2 V9m', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/V950/0591.rdf' => [ 'Motorola', 'Renegade V950', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motorizrz10/Profile/motorizrz10.xml' => [ 'Motorola', 'RIZR Z10', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motorizrz8/profile/motorizrz8.rdf' => [ 'Motorola', 'RIZR Z8', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/e1/Profile/e1.rdf' => [ 'Motorola', 'ROKR E1', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/motorokre6/Profile/motorokre6.rdf' => [ 'Motorola', 'ROKR E6', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motorokre6/Profile/motorokre6.rdf' => [ 'Motorola', 'ROKR E6', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/e8/Profile/e8.rdf' => [ 'Motorola', 'ROKR E8', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/W5/Profile/W5.rdf' => [ 'Motorola', 'ROKR W5', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/w6/Profile/w6.rdf' => [ 'Motorola', 'ROKR W6', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/motorokrz6/Profile/motorokrz6.rdf' => [ 'Motorola', 'ROKR Z6', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/moto/z6m/z6m.xml' => [ 'Motorola', 'ROKR Z6m', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/motoxt300/Profile/motoxt300.rdf' => [ 'Motorola', 'SPICE', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/VA76r/Profile/VA76r.rdf' => [ 'Motorola', 'Tundra VA76r', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/u9/Profile/u9.rdf' => [ 'Motorola', 'U9', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/v175/Profile/v175.rdf' => [ 'Motorola', 'V175', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/v177/profile/v177.rdf' => [ 'Motorola', 'V177', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/v190/Profile/v190.rdf' => [ 'Motorola', 'V190', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/v191/Profile/v191.rdf' => [ 'Motorola', 'V191', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/v197/Profile/v197.rdf' => [ 'Motorola', 'V197', null, DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/Motorola-V323i.xml' => [ 'Motorola', 'V323i', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/v325/v325v1.xml' => [ 'Motorola', 'V325', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/v360i/Profile/v360i.rdf' => [ 'Motorola', 'V360', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/motorola/v710.rdf' => [ 'Motorola', 'V710', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/v860/v860.xml' => [ 'Motorola', 'V860', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/ve/vev1.xml' => [ 'Motorola', 'Ve', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/ve538/Profile/ve538.rdf' => [ 'Motorola', 'VE538', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/W213/Profile/W213.rdf' => [ 'Motorola', 'W213', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/w230/Profile/w230.rdf' => [ 'Motorola', 'W230', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/W270/Profile/W270.rdf' => [ 'Motorola', 'W270', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/w360/Profile/w360.rdf' => [ 'Motorola', 'W360', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/w370/Profile/w370.rdf' => [ 'Motorola', 'W370', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/W375/Profile/W375.rdf' => [ 'Motorola', 'W375', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/w385m/Profile/w385m.rdf' => [ 'Motorola', 'W385', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/W396/Profile/W396.rdf' => [ 'Motorola', 'W396', null, DeviceType::MOBILE ], + 'http://motorola.handango.com/phoneconfig/w510/Profile/w510.rdf' => [ 'Motorola', 'W510', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/mot/w755/w755v1.xml' => [ 'Motorola', 'W755', null, DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/MotoMZ616/Profile/MotoMZ616.rdf' => [ 'Motorola', 'XOOM 2', 'Android', DeviceType::TABLET ], + 'http://uaprof.motorola.com/phoneconfig/Xoom2/Profile/xoom2.rdf' => [ 'Motorola', 'XOOM 2', 'Android', DeviceType::TABLET ], + 'http://uaprof.motorola.com/phoneconfig/Xoom2me/Profile/xoom2me.rdf' => [ 'Motorola', 'XOOM 2', 'Android', DeviceType::TABLET ], + 'http://uaprof.motorola.com/phoneconfig/motomz601/Profile/motomz601.rdf' => [ 'Motorola', 'XOOM 3G', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Motorola/MOTB612ABB/BST20.rdf' => [ 'Motorola', 'XPRT', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/MOTOMB612/451110KNS17.rdf' => [ 'Motorola', 'XPRT', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/MOTOMB612/451110KNS46.rdf' => [ 'Motorola', 'XPRT', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Motorola/MOTOMB612/KRNSX41110.rdf' => [ 'Motorola', 'XPRT', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/xt788/Profile/xt788.rdf' => [ 'Motorola', 'XT788', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/MOT/MOT_XT928_1_20110914.XML' => [ 'Motorola', 'XT928', 'Android', DeviceType::MOBILE ], + 'http://uaprof.motorola.com/phoneconfig/ZN200/Profile/ZN200.rdf' => [ 'Motorola', 'ZN200', null, DeviceType::MOBILE ], + 'http://wap.nexustelco.com/uaprofile/MovistarD5.xml' => [ 'Movistar', 'Dual D5', 'Android', DeviceType::MOBILE ], + 'http://wap.nexustelco.com/uaprofile/GO1001.xml' => [ 'Movistar', 'Go Mobile 1001', 'Android', DeviceType::MOBILE ], + 'http://wap.nexustelco.com/uaprofile/GO775.xml' => [ 'Movistar', 'Go Mobile 775', 'Android', DeviceType::MOBILE ], + 'http://wap.nexustelco.com/uaprofile/GO778.xml' => [ 'Movistar', 'Go Mobile 778', 'Android', DeviceType::MOBILE ], + 'http://wap.nexustelco.com/uaprofile/GO950.xml' => [ 'Movistar', 'Go Mobile 950', 'Android', DeviceType::MOBILE ], + 'http://wap.nexustelco.com/wap/uaprofile/GO963.xml' => [ 'Movistar', 'Go Mobile 963', 'Android', DeviceType::MOBILE ], + 'http://wap.nexustelco.com/uaprofile/GO980.xml' => [ 'Movistar', 'Go Mobile 980', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Movistar-Motion.xml' => [ 'Movistar', 'Motion', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Movistar-One.xml' => [ 'Movistar', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/MTC_1055.xml' => [ 'MTC', '1055', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/MTC_1078.xml' => [ 'MTC', '1078', 'Android', DeviceType::TABLET ], + 'http://wap1.huawei.com/uaprof/MTC_752.xml' => [ 'MTC', '752', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/MTC_916.xml' => [ 'MTC', '916', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650GPRS-MTS.xml' => [ 'MTC', '955', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650WCDMA-MTS.xml' => [ 'MTC', '955', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/MTC_960.xml' => [ 'MTC', '960', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/MTC-962.xml' => [ 'MTC', '962', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/MTC-962_3G.xml' => [ 'MTC', '962', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/MTC_968.xml' => [ 'MTC', '968', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/MTC_970.xml' => [ 'MTC', '970', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/MTC_970H.xml' => [ 'MTC', '970H', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/MTC_972.xml' => [ 'MTC', '972', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/MTC_975.xml' => [ 'MTC', '975', 'Android', DeviceType::MOBILE ], + 'http://tpsolution.ru/uaprof/MTC980.xml' => [ 'MTC', '980', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/MTC_982T.xml' => [ 'MTC', '982', 'Android', DeviceType::MOBILE ], + 'http://tpsolution.ru/uaprof/MTC982O.xml' => [ 'MTC', '982O', 'Android', DeviceType::MOBILE ], + 'http://tpsolution.ru/uaprof/mtc982o442.xml' => [ 'MTC', '982O', 'Android', DeviceType::MOBILE ], + 'http://tpsolution.ru/uaprof/SS.xml' => [ 'MTC', 'Smart Sprint', 'Android', DeviceType::MOBILE ], + 'http://www.jeekomi.com/hw/MTC_SMART_Sprint_4G.xml' => [ 'MTC', 'Smart Sprint', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8160GPRS-MTS.xml' => [ 'MTS', 'Mini', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/NATCOM_N8302GPRS-NORMAL.xml' => [ 'NATCOM', 'N8302', 'Android', DeviceType::MOBILE ], + 'http://www.nechdm.com/profiles/232/a232.rdf' => [ 'NEC', 'A232', null, DeviceType::MOBILE ], + 'http://www.nechdm.com/profiles/525/a525.rdf' => [ 'NEC', 'A525', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/e121V01.xml' => [ 'NEC', 'e121', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/232V01.xml' => [ 'NEC', 'e232', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/e238V01.xml' => [ 'NEC', 'e238', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/e242V01.xml' => [ 'NEC', 'e242', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/e353V01.xml' => [ 'NEC', 'e353', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/530V01.xml' => [ 'NEC', 'e530', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/UAPMargay.xml' => [ 'NEC', 'N110', null, DeviceType::MOBILE ], + 'http://nechdm.com/profiles/535/a535.xml' => [ 'NEC', 'N535', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/N6206V01.xml' => [ 'NEC', 'N6206', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/N700V01.xml' => [ 'NEC', 'N700', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/N710V01.xml' => [ 'NEC', 'N710', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/N820V01.xml' => [ 'NEC', 'N820', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/N840HKV01.xml' => [ 'NEC', 'N840', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/N900V01.xml' => [ 'NEC', 'N900', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/N908V01.xml' => [ 'NEC', 'N908', null, DeviceType::MOBILE ], + 'http://www.ehaier.com/download/mobile/HaierN80Wv100WCDMA.xml' => [ 'NEC', 'RPSPG3501', 'Android', DeviceType::MOBILE ], + 'http://www.n-keitai.com/uap/NE-201A1A_UAProf_v1.2.xml' => [ 'NEC', 'Terrain', 'Android', DeviceType::MOBILE ], + 'http://vfwap.jn.neic.ne.jp/profile/V802N.xml' => [ 'NEC', 'V802N', null, DeviceType::MOBILE ], + 'http://www.nexian-apps.com/UAProf/NX-G869/G869UAProf.xml' => [ 'Nexian', 'NX-G869 Cappuccino', 'MTK', DeviceType::MOBILE ], + 'http://www.nexian-apps.com/UAProf/NX-G965/G965UAProf.xml' => [ 'Nexian', 'NX-G965 Champion', 'MTK', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmfun.xml' => [ 'NGM', 'Dynamic Fun', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmjump.xml' => [ 'NGM', 'Dynamic Jump', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmracing3.xml' => [ 'NGM', 'Dynamic Jump', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmmilo.xml' => [ 'NGM', 'Dynamic Milo', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmstar.xml' => [ 'NGM', 'Dynamic Star', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmstylo.xml' => [ 'NGM', 'Dynamic Stylo', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngm5_5.xml' => [ 'NGM', 'Forward 5.5', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmendurance.xml' => [ 'NGM', 'Forward Endurance', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmprime.xml' => [ 'NGM', 'Forward Prime', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmruby.xml' => [ 'NGM', 'Forward Ruby', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmproductname.xml' => [ 'NGM', 'Forward Young', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmyoung.xml' => [ 'NGM', 'Forward Young', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmlegend2.xml' => [ 'NGM', 'Legend 2', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmmiracle.xml' => [ 'NGM', 'Miracle', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmpolaris.xml' => [ 'NGM', 'Polaris', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmjumpl.xml' => [ 'NGM', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmspirit.xml' => [ 'NGM', 'Spirit', 'Android', DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmwilco.xml' => [ 'NGM', 'WeMove Wilco', 'Android', DeviceType::MOBILE ], + 'http://www.ddmbrands.com/uaprof/niu/tek4D2.xml' => [ 'NIU', 'Tek 4D2', 'Android', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia109r100.xml' => [ 'Nokia', '109', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia110r100.xml' => [ 'Nokia', '110', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia1100r100.xml' => [ 'Nokia', '1100', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N1101r100.xml' => [ 'Nokia', '1101', null, DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia111.1r100.xml' => [ 'Nokia', '111', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia111r100.xml' => [ 'Nokia', '111', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia112r100.xml' => [ 'Nokia', '112', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia1120r100.xml' => [ 'Nokia', '1120', null, DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia113r100.xml' => [ 'Nokia', '113', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia114r100.xml' => [ 'Nokia', '114', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N1680c-2r100.xml' => [ 'Nokia', '1680 classic', null, DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia2052r100.xml' => [ 'Nokia', '2052', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia2055r100.xml' => [ 'Nokia', '2055', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia2060r100.xml' => [ 'Nokia', '2060', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia208.1r100.xml' => [ 'Nokia', '208', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia208.2r100.xml' => [ 'Nokia', '208', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia208.3r100.xml' => [ 'Nokia', '208', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia208.4r100.xml' => [ 'Nokia', '208', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia208r100.xml' => [ 'Nokia', '208', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia210.2r100.xml' => [ 'Nokia', '210', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia220r100.xml' => [ 'Nokia', '220', 'Series30', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia225r100.xml' => [ 'Nokia', '225', 'Series30', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2322cr100.xml' => [ 'Nokia', '2322 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2600c-2r100.xml' => [ 'Nokia', '2600 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2600cr100.xml' => [ 'Nokia', '2600 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N2610r100.xml' => [ 'Nokia', '2610', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N2626r100.xml' => [ 'Nokia', '2626', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2626r100.xml' => [ 'Nokia', '2626', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N2630r100.xml' => [ 'Nokia', '2630', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2630r100.xml' => [ 'Nokia', '2630', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N2650r100.xml' => [ 'Nokia', '2650', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N2650r200.xml' => [ 'Nokia', '2650', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N2650r300.xml' => [ 'Nokia', '2650', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N2660r100.xml' => [ 'Nokia', '2660', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2680s-2r100.xml' => [ 'Nokia', '2680 slide', null, DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2690r100.xml' => [ 'Nokia', '2690', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2692r100.xml' => [ 'Nokia', '2692', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2700c-2r100.xml' => [ 'Nokia', '2700 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2700cr100.xml' => [ 'Nokia', '2700 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2710c-2r100.xml' => [ 'Nokia', '2710', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2720ar100.xml' => [ 'Nokia', '2720 fold', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2730c-1br100.xml' => [ 'Nokia', '2730 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2730c-1r100.xml' => [ 'Nokia', '2730 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N2730cr100.xml' => [ 'Nokia', '2730 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N2760r100.xml' => [ 'Nokia', '2760', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/3000r100.xml' => [ 'Nokia', '3000', null, DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia301.1r100.xml' => [ 'Nokia', '301', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia301r100.xml' => [ 'Nokia', '301', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia3020r100.xml' => [ 'Nokia', '3020', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia3030r100.xml' => [ 'Nokia', '3030', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia3050r200.xml' => [ 'Nokia', '3050', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia307r100.xml' => [ 'Nokia', '307', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia3090r100.xml' => [ 'Nokia', '3090', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3100br100.xml' => [ 'Nokia', '3100', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3100r100.xml' => [ 'Nokia', '3100', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3105tlsr100.xml' => [ 'Nokia', '3105', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3108r100.xml' => [ 'Nokia', '3108', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3109cr100.xml' => [ 'Nokia', '3109 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3109cr100.xml' => [ 'Nokia', '3109 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3110cr100.xml' => [ 'Nokia', '3110 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3110cr100.xml' => [ 'Nokia', '3110 Evolve', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3120br100.xml' => [ 'Nokia', '3120', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3120r100.xml' => [ 'Nokia', '3120', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3120cr100.xml' => [ 'Nokia', '3120 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3128r100.xml' => [ 'Nokia', '3128', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3129r100.xml' => [ 'Nokia', '3129', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3155x5Ar002.xml' => [ 'Nokia', '3155', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3155x5Cr002.xml' => [ 'Nokia', '3155', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3155x7Ar004.xml' => [ 'Nokia', '3155', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3155x7Cr004.xml' => [ 'Nokia', '3155', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3200r100.xml' => [ 'Nokia', '3200', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3200r200.xml' => [ 'Nokia', '3200', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3205tlsr100.xml' => [ 'Nokia', '3205', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3208cr100.xml' => [ 'Nokia', '3208 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3220r100.xml' => [ 'Nokia', '3220', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3220r200.xml' => [ 'Nokia', '3220', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3220r100.xml' => [ 'Nokia', '3220', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3220r200.xml' => [ 'Nokia', '3220', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3230r100.xml' => [ 'Nokia', '3230', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3230r100.xml' => [ 'Nokia', '3230', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3250r100.xml' => [ 'Nokia', '3250', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3250r200.xml' => [ 'Nokia', '3250', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3250r100.xml' => [ 'Nokia', '3250', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3300r100.xml' => [ 'Nokia', '3300', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3300r200.xml' => [ 'Nokia', '3300', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3330r100.xml' => [ 'Nokia', '3330', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3350r100.xml' => [ 'Nokia', '3350', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3360r100.xml' => [ 'Nokia', '3360', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3410r100.xml' => [ 'Nokia', '3410', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3500cr100.xml' => [ 'Nokia', '3500 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3500cr100.xml' => [ 'Nokia', '3500 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3510ir100.xml' => [ 'Nokia', '3510i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3510r100.xml' => [ 'Nokia', '3510i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3520r100.xml' => [ 'Nokia', '3520', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3520_N3560r100.xml' => [ 'Nokia', '3520', null, DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3555cr100_3G.xml' => [ 'Nokia', '3555', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3555cr100.xml' => [ 'Nokia', '3555 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3555cr100_3G.xml' => [ 'Nokia', '3555 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3560r100.xml' => [ 'Nokia', '3560', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3590r100.xml' => [ 'Nokia', '3590', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3595r100.xml' => [ 'Nokia', '3595', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3600r100.xml' => [ 'Nokia', '3600', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3600slider100.xml' => [ 'Nokia', '3600 slide', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3610r100.xml' => [ 'Nokia', '3610', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3610ar100.xml' => [ 'Nokia', '3610 fold', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3620r100.xml' => [ 'Nokia', '3620', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3620r200.xml' => [ 'Nokia', '3620', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3650r100.xml' => [ 'Nokia', '3650', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3650r200.xml' => [ 'Nokia', '3650', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N3660r100.xml' => [ 'Nokia', '3660', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3710foldr100.xml' => [ 'Nokia', '3710 fold', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N3720cr100.xml' => [ 'Nokia', '3720 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N500r100-VF2G.xml' => [ 'Nokia', '500', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N500r100-VF3G.xml' => [ 'Nokia', '500', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N500r100.xml' => [ 'Nokia', '500', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N500r200.xml' => [ 'Nokia', '500', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N500r210.xml' => [ 'Nokia', '500', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5000d-2r100.xml' => [ 'Nokia', '5000', null, DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5000r100.xml' => [ 'Nokia', '5000', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5070nmr100.xml' => [ 'Nokia', '5070', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5070r100.xml' => [ 'Nokia', '5070', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5070r100.xml' => [ 'Nokia', '5070b', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5100r100.xml' => [ 'Nokia', '5100', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5100r200.xml' => [ 'Nokia', '5100', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5130c-2r100.xml' => [ 'Nokia', '5130 XpressMusic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5130r100.xml' => [ 'Nokia', '5130 XpressMusic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5140r100.xml' => [ 'Nokia', '5140', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5140ir100.xml' => [ 'Nokia', '5140i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5140ir200.xml' => [ 'Nokia', '5140i', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia515.2r100.xml' => [ 'Nokia', '515', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia515r100.xml' => [ 'Nokia', '515', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5200r100.xml' => [ 'Nokia', '5200', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5200ir200.xml' => [ 'Nokia', '5200', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5200r100.xml' => [ 'Nokia', '5200', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5210r100.xml' => [ 'Nokia', '5210', null, DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5220XpressMusicr100.xml' => [ 'Nokia', '5220 XpressMusic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5228r100-2G.xml' => [ 'Nokia', '5228', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5228r100-3G.xml' => [ 'Nokia', '5228', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5233r100-2G.xml' => [ 'Nokia', '5228', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5233r100-3G.xml' => [ 'Nokia', '5228', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/n-5230-vf3g.xml' => [ 'Nokia', '5230', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5230-1br100-3G.xml' => [ 'Nokia', '5230', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5230-1cr100-2G.xml' => [ 'Nokia', '5230', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5230-1cr100-3G.xml' => [ 'Nokia', '5230', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5230-1dr100-3G.xml' => [ 'Nokia', '5230', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5230-cr100-2G.xml' => [ 'Nokia', '5230', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5230-cr100-3G.xml' => [ 'Nokia', '5230', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5230r100-2G.xml' => [ 'Nokia', '5230', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5230r100-3G.xml' => [ 'Nokia', '5230', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5230r100-VF2G.xml' => [ 'Nokia', '5230', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5230r100-VF3G.xml' => [ 'Nokia', '5230', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5235-1br100-3G.xml' => [ 'Nokia', '5235 Ovi Music Unlimited', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5235-1dr100-3G.xml' => [ 'Nokia', '5235 Ovi Music Unlimited', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5235r100-2G.xml' => [ 'Nokia', '5235 Ovi Music Unlimited', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5235r100-3G.xml' => [ 'Nokia', '5235 Ovi Music Unlimited', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5236r100-2G.xml' => [ 'Nokia', '5236', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5238r100-3G.xml' => [ 'Nokia', '5238', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5250r100.xml' => [ 'Nokia', '5250', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5300r100.xml' => [ 'Nokia', '5300 XpressMusic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5300r100.xml' => [ 'Nokia', '5300 XpressMusic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5310r100.xml' => [ 'Nokia', '5310 XpressMusic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5310XpressMusicr100.xml' => [ 'Nokia', '5310 XpressMusic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5310r100.xml' => [ 'Nokia', '5310 XpressMusic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5310XpressMusicr100.xml' => [ 'Nokia', '5310 XpressMusic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5310XpressMusicVFr100.xml' => [ 'Nokia', '5310 XpressMusic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5320c-1r100-3G.xml' => [ 'Nokia', '5320 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5320d-1br100.xml' => [ 'Nokia', '5320 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5320d-1r100-2G.xml' => [ 'Nokia', '5320 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5320d-1r100-3G.xml' => [ 'Nokia', '5320 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5320r100-2G.xml' => [ 'Nokia', '5320 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5330-1dr100.xml' => [ 'Nokia', '5330 Mobile TV Edition', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5500dr100.xml' => [ 'Nokia', '5500 Sport', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5510r100.xml' => [ 'Nokia', '5510', null, DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5530c-2r100-2G.xml' => [ 'Nokia', '5530 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5530r100.xml' => [ 'Nokia', '5530 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5610r100.xml' => [ 'Nokia', '5610 XpressMusic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5630d-1r100-2G.xml' => [ 'Nokia', '5630 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5630d-1r100-3G.xml' => [ 'Nokia', '5630 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5700r100-2G.xml' => [ 'Nokia', '5700 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5700r100-3G.xml' => [ 'Nokia', '5700 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N5700r100.xml' => [ 'Nokia', '5700 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5700r100-2G.xml' => [ 'Nokia', '5700 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5700r100-3G.xml' => [ 'Nokia', '5700 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5700r100.xml' => [ 'Nokia', '5700 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5730s-1r100.xml' => [ 'Nokia', '5730 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N5800XpressMusicr100-2G.xml' => [ 'Nokia', '5800 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5800d-1r100-2G.xml' => [ 'Nokia', '5800 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5800d-1r100-3G.xml' => [ 'Nokia', '5800 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5800d-1r100.xml' => [ 'Nokia', '5800 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5800i-1r100-2G.xml' => [ 'Nokia', '5800 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5800i-1r100-3G.xml' => [ 'Nokia', '5800 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5800r100-2G.xml' => [ 'Nokia', '5800 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5800w-1r100-2G.xml' => [ 'Nokia', '5800 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia5800w-1r100-3G.xml' => [ 'Nokia', '5800 XpressMusic', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6020r100.xml' => [ 'Nokia', '6020', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6020r200.xml' => [ 'Nokia', '6020', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6020r200.xml' => [ 'Nokia', '6020', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6021r100.xml' => [ 'Nokia', '6021', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N603r100.xml' => [ 'Nokia', '603', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N603r200-3G.xml' => [ 'Nokia', '603', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N603r200.xml' => [ 'Nokia', '603', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N603r300.xml' => [ 'Nokia', '603', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6030r100.xml' => [ 'Nokia', '6030', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6030br100.xml' => [ 'Nokia', '6030', null, DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6030r100.xml' => [ 'Nokia', '6030', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6030br100.xml' => [ 'Nokia', '6030b', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6060r100.xml' => [ 'Nokia', '6060', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6060vr100.xml' => [ 'Nokia', '6060v', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6061r100.xml' => [ 'Nokia', '6061', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6070r100.xml' => [ 'Nokia', '6070', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6070r100.xml' => [ 'Nokia', '6070', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6080r100.xml' => [ 'Nokia', '6080', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6085r100.xml' => [ 'Nokia', '6085', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6085r100.xml' => [ 'Nokia', '6085', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6086r100.xml' => [ 'Nokia', '6086', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6086r100.xml' => [ 'Nokia', '6086', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6100r100.xml' => [ 'Nokia', '6100', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6101r100.xml' => [ 'Nokia', '6101', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6101r100.xml' => [ 'Nokia', '6101', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6102r100.xml' => [ 'Nokia', '6102', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6102ir100.xml' => [ 'Nokia', '6102i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6103r100.xml' => [ 'Nokia', '6103', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6108r100.xml' => [ 'Nokia', '6108', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6110r100.xml' => [ 'Nokia', '6110', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6110cr100.xml' => [ 'Nokia', '6110 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6110Navigatorr100-2G.xml' => [ 'Nokia', '6110 Navigator', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6110Navigatorr100-3G.xml' => [ 'Nokia', '6110 Navigator', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6110Navigatorr100.xml' => [ 'Nokia', '6110 Navigator', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6110Navigatorr100-2G.xml' => [ 'Nokia', '6110 Navigator', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6110Navigatorr100-3G.xml' => [ 'Nokia', '6110 Navigator', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6111r100.xml' => [ 'Nokia', '6111', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6111r200.xml' => [ 'Nokia', '6111', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6111r201.xml' => [ 'Nokia', '6111', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6111r300.xml' => [ 'Nokia', '6111', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6111r301.xml' => [ 'Nokia', '6111', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6111r200.xml' => [ 'Nokia', '6111', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6120c-1r100-2G.xml' => [ 'Nokia', '6120 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6120c-1r100-3G.xml' => [ 'Nokia', '6120 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6120c-1r100-CV2G.xml' => [ 'Nokia', '6120 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6120c-1r100-CV3G.xml' => [ 'Nokia', '6120 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6120cr100.xml' => [ 'Nokia', '6120 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6120c-1r100-2G.xml' => [ 'Nokia', '6120 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6120c-1r100-3G.xml' => [ 'Nokia', '6120 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6120c-1r100-CV2G.xml' => [ 'Nokia', '6120 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6120cr100.xml' => [ 'Nokia', '6120 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6122cr100.xml' => [ 'Nokia', '6122 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6124cr100-2G.xml' => [ 'Nokia', '6124 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6124cr100-3G.xml' => [ 'Nokia', '6124 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6125r100.xml' => [ 'Nokia', '6125', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6126r100.xml' => [ 'Nokia', '6126', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6126r101.xml' => [ 'Nokia', '6126', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6131r100.xml' => [ 'Nokia', '6131', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6131r101.xml' => [ 'Nokia', '6131', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6131r100.xml' => [ 'Nokia', '6131', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6133r100.xml' => [ 'Nokia', '6133', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6133r101.xml' => [ 'Nokia', '6133', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6136r100.xml' => [ 'Nokia', '6136', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r100.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r100_3G.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r101.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r101_3G.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r200.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r200_3G.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r201.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r201_3G.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r300.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r300_3G.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r301.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r301_3G.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r400.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r400_3G.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r401.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6151r401_3G.xml' => [ 'Nokia', '6151', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6170r100.xml' => [ 'Nokia', '6170', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6200r100.xml' => [ 'Nokia', '6200', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6210r100.xml' => [ 'Nokia', '6210 Navigator', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6210s-1r100-2G.xml' => [ 'Nokia', '6210 Navigator', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6210s-1r100-3G.xml' => [ 'Nokia', '6210 Navigator', 'Series60', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/nokia/nokia6215i/nokia6215i.xml' => [ 'Nokia', '6215i', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6220r100.xml' => [ 'Nokia', '6220 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6220r200.xml' => [ 'Nokia', '6220 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6220r300.xml' => [ 'Nokia', '6220 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6220c-1r100-2G.xml' => [ 'Nokia', '6220 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6220c-1r100-3G.xml' => [ 'Nokia', '6220 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6225tlsr100.xml' => [ 'Nokia', '6225', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6230r100.xml' => [ 'Nokia', '6230', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6230r200.xml' => [ 'Nokia', '6230', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6230r300.xml' => [ 'Nokia', '6230', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6230r400.xml' => [ 'Nokia', '6230', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6230ir100.xml' => [ 'Nokia', '6230i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6230ir200.xml' => [ 'Nokia', '6230i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6230ir201.xml' => [ 'Nokia', '6230i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6230ir300.xml' => [ 'Nokia', '6230i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6230ir301.xml' => [ 'Nokia', '6230i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6230ir400.xml' => [ 'Nokia', '6230i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6230ir401.xml' => [ 'Nokia', '6230i', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6230ir401.xml' => [ 'Nokia', '6230i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r100.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r100_3G.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r101.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r101_3G.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r200.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r200_3G.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r201.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r201_3G.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r300.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r300_3G.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r301.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r301_3G.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r400.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r400_3G.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r401.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r401_3G.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r500.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r500_3G.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r501.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6233r501_3G.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6233r200.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6233r400.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6233r500.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6233r500_3G.xml' => [ 'Nokia', '6233', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r100.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r100_3G.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r101.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r101_3G.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r200.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r200_3G.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r201.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r201_3G.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r300.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r300_3G.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r301.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r301_3G.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r400.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r400_3G.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r401.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r401_3G.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r500.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r500_3G.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r501.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6234r501_3G.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6234r500.xml' => [ 'Nokia', '6234', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6235x4Ar001.xml' => [ 'Nokia', '6235i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6250r100.xml' => [ 'Nokia', '6250', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6255x3Ar001.xml' => [ 'Nokia', '6255i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6260r100.xml' => [ 'Nokia', '6260', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6260s-1r100.xml' => [ 'Nokia', '6260 slide', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6263r100.xml' => [ 'Nokia', '6263', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6263r100_3G.xml' => [ 'Nokia', '6263', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6263r101.xml' => [ 'Nokia', '6263', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6263r101_3G.xml' => [ 'Nokia', '6263', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6267r100.xml' => [ 'Nokia', '6267', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6267r100_3G.xml' => [ 'Nokia', '6267', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6267r101.xml' => [ 'Nokia', '6267', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6267r101_3G.xml' => [ 'Nokia', '6267', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6270r100.xml' => [ 'Nokia', '6270', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r100.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r1000.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r1000_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r1001.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r1001_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r1100.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r1100_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r1101.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r1101_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r200.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r201.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r300.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r301.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r400.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r400_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r401.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r401_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r500.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r500_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r501.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r501_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r600.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r600_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r601.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r601_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r700.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r700_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r701.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r701_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r800.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r800_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r801.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r801_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r900.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r900_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r901.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6280r901_3G.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6280r1100.xml' => [ 'Nokia', '6280', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6282r100.xml' => [ 'Nokia', '6282', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6282r100_3G.xml' => [ 'Nokia', '6282', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6282r200.xml' => [ 'Nokia', '6282', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6282r200_3G.xml' => [ 'Nokia', '6282', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6282r300.xml' => [ 'Nokia', '6282', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6282r300_3G.xml' => [ 'Nokia', '6282', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6288r100.xml' => [ 'Nokia', '6288', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6288r100_3G.xml' => [ 'Nokia', '6288', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6288r101.xml' => [ 'Nokia', '6288', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6288r101_3G.xml' => [ 'Nokia', '6288', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6288r200.xml' => [ 'Nokia', '6288', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6288r200_3G.xml' => [ 'Nokia', '6288', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6288r201.xml' => [ 'Nokia', '6288', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6288r201_3G.xml' => [ 'Nokia', '6288', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6288r300.xml' => [ 'Nokia', '6288', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6288r300_3G.xml' => [ 'Nokia', '6288', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6288r301.xml' => [ 'Nokia', '6288', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6288r301_3G.xml' => [ 'Nokia', '6288', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6290r100-2G.xml' => [ 'Nokia', '6290', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6290r100-3G.xml' => [ 'Nokia', '6290', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6290r100.xml' => [ 'Nokia', '6290', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NokiaMMS13r100.xml' => [ 'Nokia', '6290', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6300r100.xml' => [ 'Nokia', '6300', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6300r100.xml' => [ 'Nokia', '6300', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6300ir100.xml' => [ 'Nokia', '6300i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6301r100.xml' => [ 'Nokia', '6301', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6301r100.xml' => [ 'Nokia', '6301', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6303classicr100.xml' => [ 'Nokia', '6303 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6303cr100.xml' => [ 'Nokia', '6303 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6303iclassicr100.xml' => [ 'Nokia', '6303i classic', 'Series40', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/nokia/6305/6305v1.xml' => [ 'Nokia', '6305i', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6310r100.xml' => [ 'Nokia', '6310', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/nokia/nokia6315i/nokia6315i.xml' => [ 'Nokia', '6315i', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6340r100.xml' => [ 'Nokia', '6340', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6500cr100.xml' => [ 'Nokia', '6500 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6500cr101.xml' => [ 'Nokia', '6500 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6500cVFr100.xml' => [ 'Nokia', '6500 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6500cVFr100_3G.xml' => [ 'Nokia', '6500 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6500sr100.xml' => [ 'Nokia', '6500 slide', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6500sr101.xml' => [ 'Nokia', '6500 slide', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6500sVFr100.xml' => [ 'Nokia', '6500 slide', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6500sVFr100_3G.xml' => [ 'Nokia', '6500 slide', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6500s2Gr100.xml' => [ 'Nokia', '6500 slide', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6500sr100.xml' => [ 'Nokia', '6500 slide', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6500cr100.xml' => [ 'Nokia', '6500c', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6510R100.xml' => [ 'Nokia', '6510', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6555r100.xml' => [ 'Nokia', '6555', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6555r100_3G.xml' => [ 'Nokia', '6555', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6555br100.xml' => [ 'Nokia', '6555b', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6555br100_3G.xml' => [ 'Nokia', '6555b', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6555cr100.xml' => [ 'Nokia', '6555c', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6555cr100_3G.xml' => [ 'Nokia', '6555c', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6560R100.xml' => [ 'Nokia', '6560', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6590R100.xml' => [ 'Nokia', '6590', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6590r200.xml' => [ 'Nokia', '6590', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6600r100.xml' => [ 'Nokia', '6600', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6600r100.xml' => [ 'Nokia', '6600', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6600fr100.xml' => [ 'Nokia', '6600 fold', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6600sr100.xml' => [ 'Nokia', '6600 slide', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6600ir100.xml' => [ 'Nokia', '6600i slide', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6610r100.xml' => [ 'Nokia', '6610', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6610r200.xml' => [ 'Nokia', '6610', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6610ir100.xml' => [ 'Nokia', '6610i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6620r100.xml' => [ 'Nokia', '6620', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6620r200.xml' => [ 'Nokia', '6620', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6620r200.xml' => [ 'Nokia', '6620', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6630r100-VF2G.xml' => [ 'Nokia', '6630', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6630r100-VF3G.xml' => [ 'Nokia', '6630', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6630r100-VFKK2G.xml' => [ 'Nokia', '6630', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6630r100-VFKK3G.xml' => [ 'Nokia', '6630', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6630r100.xml' => [ 'Nokia', '6630', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6650r100.xml' => [ 'Nokia', '6650', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6650r200.xml' => [ 'Nokia', '6650', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6650r300.xml' => [ 'Nokia', '6650', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6651r100.xml' => [ 'Nokia', '6651', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6670r100.xml' => [ 'Nokia', '6670', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6680r100-VF2G.xml' => [ 'Nokia', '6680', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6680r100-VF3G.xml' => [ 'Nokia', '6680', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6680r100-VFKK2G.xml' => [ 'Nokia', '6680', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6680r100-VFKK3G.xml' => [ 'Nokia', '6680', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6680r100.xml' => [ 'Nokia', '6680', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6681r100.xml' => [ 'Nokia', '6681', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6681r100.xml' => [ 'Nokia', '6681', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6682r100.xml' => [ 'Nokia', '6682', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6682r200.xml' => [ 'Nokia', '6682', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6700c-1r100.xml' => [ 'Nokia', '6700 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6700cr100.xml' => [ 'Nokia', '6700 classic', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6700sr100-VF3G.xml' => [ 'Nokia', '6700 slide', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6700sr100.xml' => [ 'Nokia', '6700 slide', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6708r100.xml' => [ 'Nokia', '6708', 'UIQ', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia6710sr100-2G.xml' => [ 'Nokia', '6710 Navigator', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia6710sr100-3G.xml' => [ 'Nokia', '6710 Navigator', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia6720c-1br100.xml' => [ 'Nokia', '6720 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia6720cr100.xml' => [ 'Nokia', '6720 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6730cr100.xml' => [ 'Nokia', '6730 classic', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6760s-1r100-2G.xml' => [ 'Nokia', '6760 slide', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N6760s-1r100-3G.xml' => [ 'Nokia', '6760 slide', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6800r100.xml' => [ 'Nokia', '6800', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6800r200.xml' => [ 'Nokia', '6800', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6810r100.xml' => [ 'Nokia', '6810', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6820r100.xml' => [ 'Nokia', '6820', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N6822r100.xml' => [ 'Nokia', '6822', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N700r100-VF2G.xml' => [ 'Nokia', '700', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N700r100-VF3G.xml' => [ 'Nokia', '700', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N700r100.xml' => [ 'Nokia', '700', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N700r200.xml' => [ 'Nokia', '700', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N700r300.xml' => [ 'Nokia', '700', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N701r100.xml' => [ 'Nokia', '701', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N701r200.xml' => [ 'Nokia', '701', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N701r300.xml' => [ 'Nokia', '701', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N701r310-3G.xml' => [ 'Nokia', '701', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N7020r100.xml' => [ 'Nokia', '7020', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N702Tr100.xml' => [ 'Nokia', '702T', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N7070d-2r100.xml' => [ 'Nokia', '7070 Prism', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7110r100.xml' => [ 'Nokia', '7110', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7160r100.xml' => [ 'Nokia', '7160', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7190r100.xml' => [ 'Nokia', '7190', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7200r100.xml' => [ 'Nokia', '7200', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7210r100.xml' => [ 'Nokia', '7210 Supernova', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7210r200.xml' => [ 'Nokia', '7210 Supernova', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N7210Supernovar100.xml' => [ 'Nokia', '7210 Supernova', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N7230-1cr100.xml' => [ 'Nokia', '7230', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N7230r100.xml' => [ 'Nokia', '7230', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7250r100.xml' => [ 'Nokia', '7250', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7250ir100.xml' => [ 'Nokia', '7250i', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7260r100.xml' => [ 'Nokia', '7260', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7260r200.xml' => [ 'Nokia', '7260', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7262r100.xml' => [ 'Nokia', '7262', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7270r100.xml' => [ 'Nokia', '7270', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7270r300.xml' => [ 'Nokia', '7270', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7280r100.xml' => [ 'Nokia', '7280', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7280r200.xml' => [ 'Nokia', '7280', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7280r300.xml' => [ 'Nokia', '7280', null, DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N7310r100.xml' => [ 'Nokia', '7310', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N7310cr100.xml' => [ 'Nokia', '7310 Supernova', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7360r100.xml' => [ 'Nokia', '7360', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7370r100.xml' => [ 'Nokia', '7370', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7373r100.xml' => [ 'Nokia', '7373', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7380r100.xml' => [ 'Nokia', '7380', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7380r101.xml' => [ 'Nokia', '7380', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7390r100.xml' => [ 'Nokia', '7390', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7390r100_3G.xml' => [ 'Nokia', '7390', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7390r101.xml' => [ 'Nokia', '7390', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7390r101_3G.xml' => [ 'Nokia', '7390', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7390r200.xml' => [ 'Nokia', '7390', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7390r200_3G.xml' => [ 'Nokia', '7390', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7390r201.xml' => [ 'Nokia', '7390', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7390r201_3G.xml' => [ 'Nokia', '7390', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7390r300.xml' => [ 'Nokia', '7390', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7390r300_3G.xml' => [ 'Nokia', '7390', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7390r301.xml' => [ 'Nokia', '7390', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7390r301_3G.xml' => [ 'Nokia', '7390', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7500r100.xml' => [ 'Nokia', '7500 Prism', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N7500r100.xml' => [ 'Nokia', '7500 Prism', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N7510ar100.xml' => [ 'Nokia', '7510', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N7510Supernovar100.xml' => [ 'Nokia', '7510 Supernova', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7600r100.xml' => [ 'Nokia', '7600', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7600r200.xml' => [ 'Nokia', '7600', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N7610r100.xml' => [ 'Nokia', '7610', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7610r100.xml' => [ 'Nokia', '7610 Supernova', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N7610Supernovar100.xml' => [ 'Nokia', '7610 Supernova', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7650r100.xml' => [ 'Nokia', '7650', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7650r200.xml' => [ 'Nokia', '7650', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N7710r100.xml' => [ 'Nokia', '7710', 'Series90', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N7900r100.xml' => [ 'Nokia', '7900 Prism', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N801Tr100.xml' => [ 'Nokia', '801T', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N808PureViewr100.xml' => [ 'Nokia', '808 PureView', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N808PureViewr200.xml' => [ 'Nokia', '808 PureView', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N808r100.xml' => [ 'Nokia', '808 PureView', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N808r200.xml' => [ 'Nokia', '808 PureView', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8310r100.xml' => [ 'Nokia', '8310', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8600dr100.xml' => [ 'Nokia', '8600 Luna', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8800r100.xml' => [ 'Nokia', '8800', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8800r101.xml' => [ 'Nokia', '8800', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8800r200.xml' => [ 'Nokia', '8800', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8800r201.xml' => [ 'Nokia', '8800', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8800r300.xml' => [ 'Nokia', '8800', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8800r301.xml' => [ 'Nokia', '8800', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8800SIr100.xml' => [ 'Nokia', '8800 Sirocco', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8800SIr101.xml' => [ 'Nokia', '8800 Sirocco', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8800SIr200.xml' => [ 'Nokia', '8800 Sirocco', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8800SIr201.xml' => [ 'Nokia', '8800 Sirocco', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8801r100.xml' => [ 'Nokia', '8801', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8801r101.xml' => [ 'Nokia', '8801', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8801r200.xml' => [ 'Nokia', '8801', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8801r201.xml' => [ 'Nokia', '8801', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8801r300.xml' => [ 'Nokia', '8801', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8801r301.xml' => [ 'Nokia', '8801', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8801r400.xml' => [ 'Nokia', '8801', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8801r401.xml' => [ 'Nokia', '8801', 'Series40', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8910r100.xml' => [ 'Nokia', '8910', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N8910ir100.xml' => [ 'Nokia', '8910i', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N9110r100.xml' => [ 'Nokia', '9110 Communicator', 'GOES', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N9210r100.xml' => [ 'Nokia', '9210 Communicator', 'Series80', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N9300r100.xml' => [ 'Nokia', '9300', 'Series80', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N9300r100.xml' => [ 'Nokia', '9300', 'Series80', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N9300ir100.xml' => [ 'Nokia', '9300i', 'Series80', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N93kir100.xml' => [ 'Nokia', '9300i', 'Series80', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N9300ir100.xml' => [ 'Nokia', '9300i', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/N9500r100.xml' => [ 'Nokia', '9500 Communicator', 'Series90', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia200r100.xml' => [ 'Nokia', 'Asha 200', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia201r100.xml' => [ 'Nokia', 'Asha 201', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/202r100.xml' => [ 'Nokia', 'Asha 202', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/203r100.xml' => [ 'Nokia', 'Asha 203', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia205.1r100.xml' => [ 'Nokia', 'Asha 205', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia205.3r100.xml' => [ 'Nokia', 'Asha 205', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia205r100.xml' => [ 'Nokia', 'Asha 205', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia206.1r100.xml' => [ 'Nokia', 'Asha 206', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia206r100.xml' => [ 'Nokia', 'Asha 206', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia210.3r100.xml' => [ 'Nokia', 'Asha 210', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia210.4r100.xml' => [ 'Nokia', 'Asha 210', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia210.5r100.xml' => [ 'Nokia', 'Asha 210', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia210r100.xml' => [ 'Nokia', 'Asha 210', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaAsha230DSr100.xml' => [ 'Nokia', 'Asha 230', 'Nokia Asha Platform', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaAsha230SSr100.xml' => [ 'Nokia', 'Asha 230', 'Nokia Asha Platform', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/300r100.xml' => [ 'Nokia', 'Asha 300', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia302r100.xml' => [ 'Nokia', 'Asha 302', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia303r100.xml' => [ 'Nokia', 'Asha 303', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/305r100.xml' => [ 'Nokia', 'Asha 305', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/305r200.xml' => [ 'Nokia', 'Asha 305', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/306r100.xml' => [ 'Nokia', 'Asha 306', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/308r100.xml' => [ 'Nokia', 'Asha 308', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/309r100.xml' => [ 'Nokia', 'Asha 309', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia310r100.xml' => [ 'Nokia', 'Asha 310', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/311r100.xml' => [ 'Nokia', 'Asha 311', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaAsha500DSr100.xml' => [ 'Nokia', 'Asha 500', 'Nokia Asha Platform', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia501.1r100.xml' => [ 'Nokia', 'Asha 501', 'Nokia Asha Platform', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia501.2r100.xml' => [ 'Nokia', 'Asha 501', 'Nokia Asha Platform', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia501r100.xml' => [ 'Nokia', 'Asha 501', 'Nokia Asha Platform', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia501sr100.xml' => [ 'Nokia', 'Asha 501', 'Nokia Asha Platform', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia502r100.xml' => [ 'Nokia', 'Asha 502', 'Nokia Asha Platform', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia503r100.xml' => [ 'Nokia', 'Asha 503', 'Nokia Asha Platform', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/Nokia503sr100.xml' => [ 'Nokia', 'Asha 503', 'Nokia Asha Platform', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC1-01.1r100.xml' => [ 'Nokia', 'C1-01', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC1-01r100.xml' => [ 'Nokia', 'C1-01', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC1-02ir100.xml' => [ 'Nokia', 'C1-02', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC1-02r100.xml' => [ 'Nokia', 'C1-02', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC1-03r100.xml' => [ 'Nokia', 'C1-03', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC2-00r100.xml' => [ 'Nokia', 'C2-00', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC2-01r100.xml' => [ 'Nokia', 'C2-01', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC2-02.1r100.xml' => [ 'Nokia', 'C2-02', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC2-02r100.xml' => [ 'Nokia', 'C2-02', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC2-03r100.xml' => [ 'Nokia', 'C2-03', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC2-05.1r100.xml' => [ 'Nokia', 'C2-05', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC2-05r100.xml' => [ 'Nokia', 'C2-05', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC2-06r100.xml' => [ 'Nokia', 'C2-06', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC3-00.1r100.xml' => [ 'Nokia', 'C3-00', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC3-00r100.xml' => [ 'Nokia', 'C3-00', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC3-01.5r100.xml' => [ 'Nokia', 'C3-01', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC3-01r100.xml' => [ 'Nokia', 'C3-01', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC5-00.2r100.xml' => [ 'Nokia', 'C5-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC5-00r100.xml' => [ 'Nokia', 'C5-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC5-03r100-3G.xml' => [ 'Nokia', 'C5-03', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC5-03r100-VF2G.xml' => [ 'Nokia', 'C5-03', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC5-03r100-VF3G.xml' => [ 'Nokia', 'C5-03', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC5-03r200-3G.xml' => [ 'Nokia', 'C5-03', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC5-05r100-2G.xml' => [ 'Nokia', 'C5-05', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC5-06r100-2G.xml' => [ 'Nokia', 'C5-06', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC6-00.1r100.xml' => [ 'Nokia', 'C6-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC6-00r100-VF2G.xml' => [ 'Nokia', 'C6-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC6-00r100-VF3G.xml' => [ 'Nokia', 'C6-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaC6-00r100.xml' => [ 'Nokia', 'C6-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC6-01.3r100.xml' => [ 'Nokia', 'C6-01', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC6-01.3r200.xml' => [ 'Nokia', 'C6-01', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC6-01.3r300.xml' => [ 'Nokia', 'C6-01', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC6-01r100.xml' => [ 'Nokia', 'C6-01', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC6-01r200.xml' => [ 'Nokia', 'C6-01', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC6-01r300.xml' => [ 'Nokia', 'C6-01', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC6-01r310.xml' => [ 'Nokia', 'C6-01', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC7-00.1r100.xml' => [ 'Nokia', 'C7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC7-00r100-VF2G.xml' => [ 'Nokia', 'C7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC7-00r100-VF3G.xml' => [ 'Nokia', 'C7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC7-00r100.xml' => [ 'Nokia', 'C7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC7-00r200.xml' => [ 'Nokia', 'C7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC7-00r300-3G.xml' => [ 'Nokia', 'C7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC7-00r300.xml' => [ 'Nokia', 'C7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC7-00r310.xml' => [ 'Nokia', 'C7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC7-00sr100.xml' => [ 'Nokia', 'C7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NC7-00sr210.xml' => [ 'Nokia', 'C7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE5-00.2r100.xml' => [ 'Nokia', 'E5-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE5-00r100-VF2G.xml' => [ 'Nokia', 'E5-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE5-00r100-VF3G.xml' => [ 'Nokia', 'E5-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE5-00r100.xml' => [ 'Nokia', 'E5-00', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE50-1r100.xml' => [ 'Nokia', 'E50', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE50-2r100-VF2G.xml' => [ 'Nokia', 'E50', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE50-2r100.xml' => [ 'Nokia', 'E50', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE51-1r100-VF3G.xml' => [ 'Nokia', 'E51', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE51-1r100.xml' => [ 'Nokia', 'E51', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE51-2r100.xml' => [ 'Nokia', 'E51', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE52-1r100-vf3g.xml' => [ 'Nokia', 'E52', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE52-1r100.xml' => [ 'Nokia', 'E52', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE55-1r100.xml' => [ 'Nokia', 'E55', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE6-00r100-VF2G.xml' => [ 'Nokia', 'E6-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE6-00r100-VF3G.xml' => [ 'Nokia', 'E6-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE6-00r100.xml' => [ 'Nokia', 'E6-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE6-00r210.xml' => [ 'Nokia', 'E6-00', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE60-1r100-VF2G.xml' => [ 'Nokia', 'E60', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE60-1r100-VF3G.xml' => [ 'Nokia', 'E60', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE60-1r100-VFKK2G.xml' => [ 'Nokia', 'E60', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE60-1r100-VFKK3G.xml' => [ 'Nokia', 'E60', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE60-1r100.xml' => [ 'Nokia', 'E60', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE61-1r100-VF2G.xml' => [ 'Nokia', 'E61', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE61-1r100-VF3G.xml' => [ 'Nokia', 'E61', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE61-1r100-VFKK2G.xml' => [ 'Nokia', 'E61', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE61-1r100-VFKK3G.xml' => [ 'Nokia', 'E61', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE61-1r100.xml' => [ 'Nokia', 'E61', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE61i-1r100-VF2G.xml' => [ 'Nokia', 'E61i', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE61i-1r100-VF2Gdrm10.xml' => [ 'Nokia', 'E61i', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE61i-1r100-VF3G.xml' => [ 'Nokia', 'E61i', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE61i-1r100-VF3Gdrm10.xml' => [ 'Nokia', 'E61i', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE61i-1r100.xml' => [ 'Nokia', 'E61i', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE61i-1r101.xml' => [ 'Nokia', 'E61i', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE61i-2r100.xml' => [ 'Nokia', 'E61i', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE61i-1r100.xml' => [ 'Nokia', 'E61i', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE62-1r100.xml' => [ 'Nokia', 'E62', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE63-1r100.xml' => [ 'Nokia', 'E63', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE63-2r100.xml' => [ 'Nokia', 'E63', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE63-3r100.xml' => [ 'Nokia', 'E63', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE63r100.xml' => [ 'Nokia', 'E63', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE65-1r100-VF2G.xml' => [ 'Nokia', 'E65', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE65-1r100-VF2Gdrm10.xml' => [ 'Nokia', 'E65', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE65-1r100-VF3G.xml' => [ 'Nokia', 'E65', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE65-1r100-VF3Gdrm10.xml' => [ 'Nokia', 'E65', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE65-1r100.xml' => [ 'Nokia', 'E65', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE65-1r101.xml' => [ 'Nokia', 'E65', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE65-2r100.xml' => [ 'Nokia', 'E65', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE66-1r100-vf3g.xml' => [ 'Nokia', 'E66', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE66-1r100.xml' => [ 'Nokia', 'E66', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE66-2r100.xml' => [ 'Nokia', 'E66', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE66r100.xml' => [ 'Nokia', 'E66', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE7-00r100-VF2G.xml' => [ 'Nokia', 'E7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE7-00r100-VF3G.xml' => [ 'Nokia', 'E7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE7-00r100.xml' => [ 'Nokia', 'E7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE7-00r200.xml' => [ 'Nokia', 'E7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE7-00r300.xml' => [ 'Nokia', 'E7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE7-00r310.xml' => [ 'Nokia', 'E7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE70-1r100-VF2G.xml' => [ 'Nokia', 'E70', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE70-1r100-VF3G.xml' => [ 'Nokia', 'E70', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE70-1r100-VFKK2G.xml' => [ 'Nokia', 'E70', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE70-1r100-VFKK3G.xml' => [ 'Nokia', 'E70', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE70-1r100.xml' => [ 'Nokia', 'E70', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE70-2r100.xml' => [ 'Nokia', 'E70', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/ne71-1r100-vf2g.xml' => [ 'Nokia', 'E71', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/ne71-1r100-vf3g.xml' => [ 'Nokia', 'E71', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE71-1r100.xml' => [ 'Nokia', 'E71', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE71-2r100.xml' => [ 'Nokia', 'E71', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE71-3r100.xml' => [ 'Nokia', 'E71', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE71r100.xml' => [ 'Nokia', 'E71', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE71xr100-2G.xml' => [ 'Nokia', 'E71x', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE71xr100-3G.xml' => [ 'Nokia', 'E71x', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE72-1r100-vf2g.xml' => [ 'Nokia', 'E72', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE72-1r100-vf3g.xml' => [ 'Nokia', 'E72', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE72-1r100.xml' => [ 'Nokia', 'E72', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE72-2r100.xml' => [ 'Nokia', 'E72', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE72r100.xml' => [ 'Nokia', 'E72', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE73r100.xml' => [ 'Nokia', 'E73 Mode', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE75-1r100.xml' => [ 'Nokia', 'E75', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE90-1r100-VF2G.xml' => [ 'Nokia', 'E90', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE90-1r100-VF3G.xml' => [ 'Nokia', 'E90', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NE90-1r100.xml' => [ 'Nokia', 'E90', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NE90-1r100.xml' => [ 'Nokia', 'E90 Communicator', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NNGager100.xml' => [ 'Nokia', 'N-Gage', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NNGageQDr100.xml' => [ 'Nokia', 'N-Gage QD', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NNGageQDr200.xml' => [ 'Nokia', 'N-Gage QD', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NNGQDr100.xml' => [ 'Nokia', 'N-Gage QD', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NNGQDr200.xml' => [ 'Nokia', 'N-Gage QD', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN70-1r100-VF2G.xml' => [ 'Nokia', 'N70', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN70-1r100-VF2GMIP.xml' => [ 'Nokia', 'N70', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN70-1r100-VF3G.xml' => [ 'Nokia', 'N70', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN70-1r100-VF3GMIP.xml' => [ 'Nokia', 'N70', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN70-1r100-VFKK2G.xml' => [ 'Nokia', 'N70', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN70-1r100-VFKK3G.xml' => [ 'Nokia', 'N70', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN70-1r100.xml' => [ 'Nokia', 'N70', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN70-5r100.xml' => [ 'Nokia', 'N70', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN70-1r100.xml' => [ 'Nokia', 'N70', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN71-1r100-VFKK2G.xml' => [ 'Nokia', 'N71', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN71-1r100-VFKK3G.xml' => [ 'Nokia', 'N71', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN71-1r100.xml' => [ 'Nokia', 'N71', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN71-1r101.xml' => [ 'Nokia', 'N71', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN72r100.xml' => [ 'Nokia', 'N72', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN72r100.xml' => [ 'Nokia', 'N72', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN73-1r100-SB2G.xml' => [ 'Nokia', 'N73', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN73-1r100-SB3G.xml' => [ 'Nokia', 'N73', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN73-1r100-VF2G.xml' => [ 'Nokia', 'N73', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN73-1r100-VF2GMIP.xml' => [ 'Nokia', 'N73', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN73-1r100-VF3G.xml' => [ 'Nokia', 'N73', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN73-1r100-VF3GMIP.xml' => [ 'Nokia', 'N73', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN73-1r100.xml' => [ 'Nokia', 'N73', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN73-2r100.xml' => [ 'Nokia', 'N73', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN73-5r100.xml' => [ 'Nokia', 'N73', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN73-6r100.xml' => [ 'Nokia', 'N73', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN73r100.xml' => [ 'Nokia', 'N73', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN75-3r100.xml' => [ 'Nokia', 'N75', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN75-3r200.xml' => [ 'Nokia', 'N75', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN75-3r300.xml' => [ 'Nokia', 'N75', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN76-1r100.xml' => [ 'Nokia', 'N76', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN76-1r100.xml' => [ 'Nokia', 'N76', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN77-1r100.xml' => [ 'Nokia', 'N77', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN77r100.xml' => [ 'Nokia', 'N77', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN78-1r100-VF2G.xml' => [ 'Nokia', 'N78', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN78-1r100-VF3G.xml' => [ 'Nokia', 'N78', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN78-1r100.xml' => [ 'Nokia', 'N78', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN79-1r100.xml' => [ 'Nokia', 'N79', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N8r200.xml' => [ 'Nokia', 'N8', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NC7-00r100.xml' => [ 'Nokia', 'N8-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN8-00.1r100-3G.xml' => [ 'Nokia', 'N8-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN8-00.1r200-3G.xml' => [ 'Nokia', 'N8-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN8-00.1r300-3G.xml' => [ 'Nokia', 'N8-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN8-00r100-3G.xml' => [ 'Nokia', 'N8-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN8-00r100-VF2G.xml' => [ 'Nokia', 'N8-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN8-00r100-VF3G.xml' => [ 'Nokia', 'N8-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN8-00r200-3G.xml' => [ 'Nokia', 'N8-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN8-00r300-3G.xml' => [ 'Nokia', 'N8-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN8-00r310-3G.xml' => [ 'Nokia', 'N8-00', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN80-1r100-VF2G.xml' => [ 'Nokia', 'N80', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN80-1r100-VF3G.xml' => [ 'Nokia', 'N80', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN80-1r100.xml' => [ 'Nokia', 'N80', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN80-3r100.xml' => [ 'Nokia', 'N80', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN81-1r100.xml' => [ 'Nokia', 'N81', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/N81r100.xml' => [ 'Nokia', 'N81', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN81-1r100-VF2G.xml' => [ 'Nokia', 'N81', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN81-1r100.xml' => [ 'Nokia', 'N81', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN81-3r100.xml' => [ 'Nokia', 'N81', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN82-1r100.xml' => [ 'Nokia', 'N82', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN85-1r100-VF2G.xml' => [ 'Nokia', 'N85', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN85-1r100-VF3G.xml' => [ 'Nokia', 'N85', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN85-1r100.xml' => [ 'Nokia', 'N85', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN85-3r100.xml' => [ 'Nokia', 'N85', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN85r100.xml' => [ 'Nokia', 'N85', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN86-1r100.xml' => [ 'Nokia', 'N86 8MP', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN86-3r100.xml' => [ 'Nokia', 'N86 8MP', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN90-1r100-VF2G.xml' => [ 'Nokia', 'N90', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN90-1r100-VF3G.xml' => [ 'Nokia', 'N90', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN90-1r100-VFKK2G.xml' => [ 'Nokia', 'N90', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN90-1r100-VFKK3G.xml' => [ 'Nokia', 'N90', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN90-1r100.xml' => [ 'Nokia', 'N90', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN91-1r100-VF2G.xml' => [ 'Nokia', 'N91', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN91-1r100-VF3G.xml' => [ 'Nokia', 'N91', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN91-1r100.xml' => [ 'Nokia', 'N91', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN91-2r100.xml' => [ 'Nokia', 'N91', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN91-5r100.xml' => [ 'Nokia', 'N91', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN91-6r100.xml' => [ 'Nokia', 'N91', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN91r100.xml' => [ 'Nokia', 'N91', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN92-1r100.xml' => [ 'Nokia', 'N92', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN92-2r100.xml' => [ 'Nokia', 'N92', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN93-1r100-VF2G.xml' => [ 'Nokia', 'N93', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN93-1r100-VF3G.xml' => [ 'Nokia', 'N93', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN93-1r100.xml' => [ 'Nokia', 'N93', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN93r100.xml' => [ 'Nokia', 'N93', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN93i-1r100-VF2G.xml' => [ 'Nokia', 'N93i', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN93i-1r100-VF3G.xml' => [ 'Nokia', 'N93i', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN93i-1r100.xml' => [ 'Nokia', 'N93i', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN93ir100.xml' => [ 'Nokia', 'N93i', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN95-1r100-VF2G.xml' => [ 'Nokia', 'N95', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN95-1r100-VF2GMIP.xml' => [ 'Nokia', 'N95', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN95-1r100-VF3G.xml' => [ 'Nokia', 'N95', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN95-1r100-VF3GMIP.xml' => [ 'Nokia', 'N95', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN95-1r100.xml' => [ 'Nokia', 'N95', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN95-3r100.xml' => [ 'Nokia', 'N95', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN95-5r100.xml' => [ 'Nokia', 'N95', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NN95_8GB-1r100.xml' => [ 'Nokia', 'N95', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN95-1r100-VF2G.xml' => [ 'Nokia', 'N95', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN95-1r100.xml' => [ 'Nokia', 'N95', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN95_8GB-1r100-VF3G.xml' => [ 'Nokia', 'N95 8GB', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN95_8GB-1r100.xml' => [ 'Nokia', 'N95 8GB', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN95_8GB-3r100.xml' => [ 'Nokia', 'N95 8GB', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN95-3r100.xml' => [ 'Nokia', 'N95-3 NAM', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN96-1r100.xml' => [ 'Nokia', 'N96', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN96-3r100.xml' => [ 'Nokia', 'N96', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN96r100.xml' => [ 'Nokia', 'N96', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97-1r100-2G.xml' => [ 'Nokia', 'N97', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97-1r100-3G.xml' => [ 'Nokia', 'N97', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97-3r100-2G.xml' => [ 'Nokia', 'N97', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97-3r100-3G.xml' => [ 'Nokia', 'N97', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97ir100-2G.xml' => [ 'Nokia', 'N97', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97r100-2G.xml' => [ 'Nokia', 'N97', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaN97-1r100-3G.xml' => [ 'Nokia', 'N97', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaN97-4r100-3G.xml' => [ 'Nokia', 'N97', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN9-00r100-R.xml' => [ 'Nokia', 'N97 Mini', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97-4r100-2G.xml' => [ 'Nokia', 'N97 Mini', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97-4r100-3G-VF2G.xml' => [ 'Nokia', 'N97 Mini', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97-4r100-3G-VF3G.xml' => [ 'Nokia', 'N97 Mini', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97-4r100-3G.xml' => [ 'Nokia', 'N97 Mini', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97-5r100-2G.xml' => [ 'Nokia', 'N97 Mini', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97-5r100-3G.xml' => [ 'Nokia', 'N97 Mini', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97minir100-2G.xml' => [ 'Nokia', 'N97 Mini', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NN97minir100-3G.xml' => [ 'Nokia', 'N97 Mini', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NSU7r100.xml' => [ 'Nokia', 'SU-7', null, DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NT7-00r100.xml' => [ 'Nokia', 'T7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NTHR880ir100.xml' => [ 'Nokia', 'THR880i', null, DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NX2-00r100.xml' => [ 'Nokia', 'X2-00', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaX2-01.1r100.xml' => [ 'Nokia', 'X2-01', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaX2-01r100.xml' => [ 'Nokia', 'X2-01', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaX2-02r100.xml' => [ 'Nokia', 'X2-02', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaX2-03r100.xml' => [ 'Nokia', 'X2-03', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaX2-05r100.xml' => [ 'Nokia', 'X2-05', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NX3-00r100.xml' => [ 'Nokia', 'X3-00', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NX3-02.5r100.xml' => [ 'Nokia', 'X3-02', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NX3-02r100.xml' => [ 'Nokia', 'X3-02', 'Series40', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NX5-00r100.xml' => [ 'Nokia', 'X5-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NX5-01r100.xml' => [ 'Nokia', 'X5-01', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaX6-00.1r100-3G.xml' => [ 'Nokia', 'X6-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaX6-00r100-2G.xml' => [ 'Nokia', 'X6-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaX6-00r100-3G.xml' => [ 'Nokia', 'X6-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NokiaX6-00r100-VF2G.xml' => [ 'Nokia', 'X6-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NX7-00.1r100-3G.xml' => [ 'Nokia', 'X7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NX7-00r100-3G.xml' => [ 'Nokia', 'X7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NX7-00r100-VF3G.xml' => [ 'Nokia', 'X7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NX7-00r200-3G.xml' => [ 'Nokia', 'X7-00', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NX7-00r210-3G.xml' => [ 'Nokia', 'X7-00', 'Series60', DeviceType::MOBILE ], + 'http://www.ztemt.com/mobile/uaprof/nubia_NX501_Z54.xml' => [ 'Nubia', 'Z5', 'Android', DeviceType::MOBILE ], + 'http://nyxmobile.com/UAProfile/fly/NYX_FLY.xml' => [ 'Nyx', 'Fly', 'Android', DeviceType::MOBILE ], + 'http://www.nyxmobile.com/UAProfile/flyii/NYX_FLY_II.xml' => [ 'NYX Mobile', 'Fly II', 'Android', DeviceType::MOBILE ], + 'http://www.nyxmobile.com/UAProfile/nobaii/NYX_NOBA_II.xml' => [ 'NYX Mobile', 'Noba II', 'Android', DeviceType::MOBILE ], + 'http://www.seeo2.com/uaprofile/uaprof-atomlife.xml' => [ 'O2', 'Comet', null, DeviceType::MOBILE ], + 'http://www.seeo2.com/uaprofile/uaprof-atomexec.xml' => [ 'O2', 'Xda Exec', null, DeviceType::MOBILE ], + 'http://www.seeo2.com/uaprofile/uaprof-stealth.xml' => [ 'O2', 'XDA Stealth', null, DeviceType::MOBILE ], + 'http://www.obimobiles.com/UAP/S500.xml' => [ 'Obi', 'Yeti S500', 'Android', DeviceType::MOBILE ], + 'http://www.okwap.com.cn/uaprof/d88/d88profile.xml' => [ 'Okwap', 'D88', null, DeviceType::MOBILE ], + 'http://www.okwap.com.cn/uaprof/km63/km63profile.xml' => [ 'Okwap', 'KM63', null, DeviceType::MOBILE ], + 'http://www.okwap.com.cn/uaprof/km65/km65profile.xml' => [ 'Okwap', 'KM65', null, DeviceType::MOBILE ], + 'http://www.ondacommunication.com/ua/N1010.xml' => [ 'Onda', 'N1010', null, DeviceType::MOBILE ], + 'http://www.ondacommunication.com/ua/N5010.xml' => [ 'Onda', 'N5010', null, DeviceType::MOBILE ], + 'http://www.ondacommunication.com/ua/TT101.xml' => [ 'Onda', 'TT101', 'Android', DeviceType::TABLET ], + 'http://www.ondacommunication.com/ua/TT102.xml' => [ 'Onda', 'TT102', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPOA0001.xml' => [ 'OnePlus', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/ONEPLUSA0001.xml' => [ 'OnePlus', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOA0001.xml' => [ 'OnePlus', 'One', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-ONIDA F970.xml' => [ 'Onida', 'F970', null, DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPO1100.xml' => [ 'Oppo', '1100', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPO1105.xml' => [ 'Oppo', '1105', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPO1107.xml' => [ 'Oppo', '1107', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPO3005.xml' => [ 'Oppo', '3005', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOA31.xml' => [ 'Oppo', 'A31', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOA31c.xml' => [ 'Oppo', 'A31c', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR827.xml' => [ 'Oppo', 'Find 5 mini R827', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR2001.xml' => [ 'Oppo', 'Find 5 mini R827T', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR827T.xml' => [ 'Oppo', 'Find 5 mini R827T', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOX909T.xml' => [ 'Oppo', 'Find 5 X909', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPOR6006.xml' => [ 'Oppo', 'Find 7 mini R6006', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPOFIND7.xml' => [ 'Oppo', 'Find 7 X9070', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOX9070.xml' => [ 'Oppo', 'Find 7 X9070', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPOX9076.xml' => [ 'Oppo', 'Find 7 X9076', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOX9077.xml' => [ 'Oppo', 'Find 7 X9077', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOX9000.xml' => [ 'Oppo', 'Find 7a X9000', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPOX9006.xml' => [ 'Oppo', 'Find 7a X9006', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOX9007.xml' => [ 'Oppo', 'Find 7a X9007', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR815.xml' => [ 'Oppo', 'Find Clover R815', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR815T.xml' => [ 'Oppo', 'Find Clover R815', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR821T.xml' => [ 'Oppo', 'Find Muse R821T', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOU707.xml' => [ 'Oppo', 'Find Way S U707', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPON1.xml' => [ 'Oppo', 'N1', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPON5111.xml' => [ 'Oppo', 'N1 mini', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPON5116.xml' => [ 'Oppo', 'N1 mini', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPON5117.xml' => [ 'Oppo', 'N1 mini', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPON5207.xml' => [ 'Oppo', 'N3', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPON5209.xml' => [ 'Oppo', 'N3', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPON828.xml' => [ 'Oppo', 'N828', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPOR831L.xml' => [ 'Oppo', 'Neo 5 R831L', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPOR831.xml' => [ 'Oppo', 'Neo R831', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR829.xml' => [ 'Oppo', 'R1 R829', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR829T.xml' => [ 'Oppo', 'R1 R829T', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR8200.xml' => [ 'Oppo', 'R1c R8200', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR8207.xml' => [ 'Oppo', 'R1c R8207', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPOR8006.xml' => [ 'Oppo', 'R1L R8006', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR8000.xml' => [ 'Oppo', 'R1S R8000', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR8007.xml' => [ 'Oppo', 'R1S R8007', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPOR8201.xml' => [ 'Oppo', 'R1x R8201', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPOR8206.xml' => [ 'Oppo', 'R1x R8206', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR2010.xml' => [ 'Oppo', 'R2010', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR2017.xml' => [ 'Oppo', 'R2017', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR7007.xml' => [ 'Oppo', 'R3 R7007', 'Android', DeviceType::MOBILE ], + 'http://ua.prof.oppo.com/resource/ua-PROF/OPPOR8106.xml' => [ 'Oppo', 'R5 R8106', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR8107.xml' => [ 'Oppo', 'R5 R8107', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR6007.xml' => [ 'Oppo', 'R6007', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOOPPO R7.xml' => [ 'Oppo', 'R7', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR7.xml' => [ 'Oppo', 'R7', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR7005.xml' => [ 'Oppo', 'R7005', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR7c.xml' => [ 'Oppo', 'R7c', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR7s.xml' => [ 'Oppo', 'R7s', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR7t.xml' => [ 'Oppo', 'R7t', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR809T.xml' => [ 'Oppo', 'R809', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR813T.xml' => [ 'Oppo', 'R813', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR819.xml' => [ 'Oppo', 'R819', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR8205.xml' => [ 'Oppo', 'R8205', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR823T.xml' => [ 'Oppo', 'R823', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR831S.xml' => [ 'Oppo', 'R831S', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR833T.xml' => [ 'Oppo', 'R833T', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR850.xml' => [ 'Oppo', 'R850', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR811.xml' => [ 'Oppo', 'Real R811', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR817T.xml' => [ 'Oppo', 'Real R817', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOR819T.xml' => [ 'Oppo', 'Real R819T', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOU707T.xml' => [ 'Oppo', 'U2S U707T', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOU705T.xml' => [ 'Oppo', 'U705T', 'Android', DeviceType::MOBILE ], + 'http://www.gigabytecm.com/ua/Boston4G.xml' => [ 'Optimus', 'Boston 4G', 'Android', DeviceType::MOBILE ], + 'http://www.qisda.com/UserFiles/uaprof_boston_4g.xml' => [ 'Optimus', 'Boston 4G', 'Android', DeviceType::MOBILE ], + 'https://s3-eu-west-1.amazonaws.com/fotabucket/uaprof/uaprof_qisda_boston.xml' => [ 'Optimus', 'Boston 4G', 'Android', DeviceType::MOBILE ], + 'http://www.opto.co.jp/win_ht/uaprof/H-21-1.0.xml' => [ 'Opto', 'H-21', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.amobile.com.cn/ua/Amoi-Berlin.xml' => [ 'Orange', 'Berlin', null, DeviceType::MOBILE ], + 'http://eip2.gigabytecm.com/BOSTON-OPO.xml' => [ 'Orange', 'Boston', 'Android', DeviceType::MOBILE ], + 'http://eip2.gigabytecm.com/BOSTON-P2.xml' => [ 'Orange', 'Boston', 'Android', DeviceType::MOBILE ], + 'http://eip2.gigabytecm.com/Orange-BOSTON.xml' => [ 'Orange', 'Boston', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Orange Covo.xml' => [ 'Orange', 'Covo', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG510-0200GPRS-Orange.xml' => [ 'Orange', 'Daytona', 'Android', DeviceType::MOBILE ], + 'http://config.51coolpad.com/UAProfile/Orange/Orange-Fova.xml' => [ 'Orange', 'Fova', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG535-L11LTE-OrangeGova.xml' => [ 'Orange', 'Gova', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Orange_Hi_4G.xml' => [ 'Orange', 'Hi', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Orange_Hiro.xml' => [ 'Orange', 'Hiro', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Orange_infinity_996.xml' => [ 'Orange', 'Infinity 996', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Infinity_X.xml' => [ 'Orange', 'Infinity X', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Orange_KLIF.xml' => [ 'Orange', 'Kilf', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Orange_KLIFD.xml' => [ 'Orange', 'Kilf', 'Firefox OS', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Orange-Kivo.xml' => [ 'Orange', 'Kivo', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY330-U01-OrangeLuno.xml' => [ 'Orange', 'Luno', 'Android', DeviceType::MOBILE ], + 'http://www.amobile.com.cn/ua/Amoi-NewYork.xml' => [ 'Orange', 'New York', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Orange_Niva.xml' => [ 'Orange', 'Nivo', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Orange_Nura.xml' => [ 'Orange', 'Nura', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Nura 2.xml' => [ 'Orange', 'Nura 2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Orange_Reyo.xml' => [ 'Orange', 'Reyo', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Orange_Rono.xml' => [ 'Orange', 'Rono', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Orange_Roya.xml' => [ 'Orange', 'Roya', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Orange-San-Francisco.xml' => [ 'Orange', 'San Francisco', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/Excal-1.0.xml' => [ 'Orange', 'SPV E600', null, DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/ph10cd-1.0.xml' => [ 'Orange', 'SPV M1500', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/gen/st21-1.0.xml' => [ 'Orange', 'SPV V550', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Orange_Tado.xml' => [ 'Orange', 'Tado', 'Android', DeviceType::MOBILE ], + 'http://www.modelabs.com/uaprofs/Orange-Tokyo.xml' => [ 'Orange', 'Tokyo', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiG740-L00LTE-OrangeYumo.xml' => [ 'Orange', 'Yumo', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Orange-Zali.xml' => [ 'Orange', 'Zali', 'Android', DeviceType::MOBILE ], + 'http://www.huaqin.com/mobile/uaprof/Zilo.xml' => [ 'Orange', 'Zilo', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/5054A.xml' => [ 'Own', 'S4035 4G', 'Android', DeviceType::MOBILE ], + 'http://support.acer.com/UAprofile/Acer_G100W_Profile.xml' => [ 'Packard Bell', 'Liberty Tab G100W', 'Android', DeviceType::MOBILE ], + 'http://www.palm.com/permalinks/mmsuaprofs/ASUS_Crown_1.xml' => [ 'Palm', 'Treo 500', 'Palm OS', DeviceType::MOBILE ], + 'http://www.handspring.com/profilespecs/Blazer300_OR.rdf' => [ 'Palm', 'Treo 600', 'Palm OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/PALMONE/POTR650HK/Blazer400103.rdf' => [ 'Palm', 'Treo 650', 'Palm OS', DeviceType::MOBILE ], + 'http://downloads.palmone.com/profiles/Blazer400.rdf' => [ 'Palm', 'Treo 650', 'Palm OS', DeviceType::MOBILE ], + 'http://downloads.palm.com/profiles/Blazer453-ROW.rdf' => [ 'Palm', 'Treo 680', 'Palm OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/PALM/PTR700PHK/Blazer450108.rdf' => [ 'Palm', 'Treo 700', 'Palm OS', DeviceType::MOBILE ], + 'http://downloads.palm.com/profiles/Blazer450.rdf' => [ 'Palm', 'Treo 700p', 'Palm OS', DeviceType::MOBILE ], + 'http://downloads.palm.com/profiles/Treo750R1.rdf' => [ 'Palm', 'Treo 750', 'Palm OS', DeviceType::MOBILE ], + 'http://downloads.palm.com/profiles/Treo750R2.rdf' => [ 'Palm', 'Treo 750', 'Palm OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/PALM/PTR755PHK/Blazer450104.rdf' => [ 'Palm', 'Treo 755', 'Palm OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/PALM/PTR800HK/IEM101.rdf' => [ 'Palm', 'Treo 800', 'Palm OS', DeviceType::MOBILE ], + 'http://downloads.palm.com/profiles/Blazer400.rdf' => [ 'Palm', 'TX', 'Palm OS', DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/A200/R1.xml' => [ 'Panasonic', 'A200', null, DeviceType::MOBILE ], + 'http://dlcache.mobile.pfota.com/Panasonic/UAProf/DL1R1.xml' => [ 'Panasonic', 'Eluga dL1', 'Android', DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/G50/R1.xml' => [ 'Panasonic', 'G50', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/G60/R1.xml' => [ 'Panasonic', 'G60', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/G70/R1.xml' => [ 'Panasonic', 'G70', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/GD67/04.xml' => [ 'Panasonic', 'GD67', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/GD67/R1.xml' => [ 'Panasonic', 'GD67', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/GD67/R2.xml' => [ 'Panasonic', 'GD67', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/GD86A/R1.xml' => [ 'Panasonic', 'GD86', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/GD87/01.xml' => [ 'Panasonic', 'GD87', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/GD87/R1.xml' => [ 'Panasonic', 'GD87', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/GD88/R1.xml' => [ 'Panasonic', 'GD88', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/GD88D/R1.xml' => [ 'Panasonic', 'GD88', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/GU87/R1.xml' => [ 'Panasonic', 'GU87', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/PANASONIC_P31.xml' => [ 'Panasonic', 'P31', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Panasonic P51.xml' => [ 'Panasonic', 'P51', 'Android', DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/SA7/RP1.xml' => [ 'Panasonic', 'SA7', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Panasonic_T31.xml' => [ 'Panasonic', 'T31', 'Android', DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/vs2/RP1.xml' => [ 'Panasonic', 'VS2', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/VS7/RP1.xml' => [ 'Panasonic', 'VS7', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/VS7aI/RJ1_3G.xml' => [ 'Panasonic', 'VS7', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/VS7aII/RJ1_3G.xml' => [ 'Panasonic', 'VS7', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/VS7x/RJ1_3G.xml' => [ 'Panasonic', 'VS7', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/VS70/RJ1_3G.xml' => [ 'Panasonic', 'VS70', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/VS8x/RJ1_3G.xml' => [ 'Panasonic', 'VS8', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X200/R1.xml' => [ 'Panasonic', 'X200', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X200/RP1.xml' => [ 'Panasonic', 'X200', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X300/R1.xml' => [ 'Panasonic', 'X300', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X400/RP1.xml' => [ 'Panasonic', 'X400', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X410/R1.xml' => [ 'Panasonic', 'X410', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X500/R1.xml' => [ 'Panasonic', 'X500', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X60/R1-D2.xml' => [ 'Panasonic', 'X60', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X60/R1.xml' => [ 'Panasonic', 'X60', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X60/R1new.xml' => [ 'Panasonic', 'X60', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X66/R1.xml' => [ 'Panasonic', 'X66', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/x68/R1.xml' => [ 'Panasonic', 'X68', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X70/R1.xml' => [ 'Panasonic', 'X70', null, DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X700/X700R1.xml' => [ 'Panasonic', 'X700', 'Series60', DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X701/X701R1.xml' => [ 'Panasonic', 'X700', 'Series60', DeviceType::MOBILE ], + 'http://mobileinternet.panasonicbox.com/UAprof/X800/X800R1.xml' => [ 'Panasonic', 'X800', 'Series60', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/adr8995/adr8995.xml' => [ 'Pantech', 'Breakout', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/STARQ/adr8995.xml' => [ 'Pantech', 'Breakout', 'Android', DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/Gsm/C520.xml' => [ 'Pantech', 'Breeze', null, DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-P9070.xml' => [ 'Pantech', 'Burst', 'Android', DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-P9070R01.xml' => [ 'Pantech', 'Burst', 'Android', DeviceType::MOBILE ], + 'http://www.pantech.com/UAPROF/GSM/PG-C150.XML' => [ 'Pantech', 'C150', null, DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/Gsm/PG-C300J.xml' => [ 'Pantech', 'C300', null, DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-C630.xml' => [ 'Pantech', 'C630', null, DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-P8000.xml' => [ 'Pantech', 'Crossover', 'Android', DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-P8000R01.xml' => [ 'Pantech', 'Crossover', 'Android', DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-C810.xml' => [ 'Pantech', 'Duo', null, DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-P4100.xml' => [ 'Pantech', 'Element', 'Android', DeviceType::TABLET ], + 'http://www.pantech.com/Uaprof/umts/PU-P4100R01.xml' => [ 'Pantech', 'Element', 'Android', DeviceType::TABLET ], + 'http://www.pantech.com/Uaprof/umts/PU-P8010.xml' => [ 'Pantech', 'Flex', 'Android', DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-P8010R01.xml' => [ 'Pantech', 'Flex', 'Android', DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-P9090.xml' => [ 'Pantech', 'Magnus', 'Android', DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-P9090R01.xml' => [ 'Pantech', 'Magnus', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/adr910l/adr910l.xml' => [ 'Pantech', 'Marauder', 'Android', DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-C740.xml' => [ 'Pantech', 'Matrix', null, DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-P6020.xml' => [ 'Pantech', 'P6020', 'Brew', DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-P6030.xml' => [ 'Pantech', 'P6030', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/pcd/adr930l/adr930l.xml' => [ 'Pantech', 'Perception', 'Android', DeviceType::MOBILE ], + 'http://device.telusmobility.com/pantech/PN3200-0.rdf' => [ 'Pantech', 'PN-3200', null, DeviceType::MOBILE ], + 'http://www.pantech.com/Uaprof/umts/PU-P9060.xml' => [ 'Pantech', 'Pocket', 'Android', DeviceType::MOBILE ], + 'http://www.pantech.co.kr/Uaprof/Gsm/S100J.xml' => [ 'Pantech', 'S100', null, DeviceType::MOBILE ], + 'http://mobileuaprof.xtra.co.nz/h_tx215c.rdf' => [ 'Pantech', 'TX215', null, DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/vega-ptl21.xml' => [ 'Pantech', 'Vega Nº6', 'Android', DeviceType::MOBILE ], + 'http://ota.phicomm.com.cn/MobileProfile/C630LwRU-UA-Profile.xml' => [ 'Phicomm', 'Clue L', 'Android', DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uap289.xml' => [ 'Philips', '289', null, DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uap330.xml' => [ 'Philips', '330', null, DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uap350.xml' => [ 'Philips', '350', null, DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uap530.xml' => [ 'Philips', '530', null, DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uap568.xml' => [ 'Philips', '568', null, DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uap650.xml' => [ 'Philips', '650', null, DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uap755.xml' => [ 'Philips', '755', null, DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uap766.xml' => [ 'Philips', '766', null, DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uap960.xml' => [ 'Philips', '960', null, DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uapCT9A9G.xml' => [ 'Philips', '9A9G', null, DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uapPHILIPS9A9W.xml' => [ 'Philips', '9A9W', null, DeviceType::MOBILE ], + 'www-ccpp.tcl-ta.com/files/PI3210G.xml' => [ 'Philips', 'Amio 7', 'Android', DeviceType::TABLET ], + 'http://www.consumer.philips.com/wbu/uapP199.xml' => [ 'Philips', 'P100', null, DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uapP598.xml' => [ 'Philips', 'P598', null, DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uapS890.XML' => [ 'Philips', 'S890', null, DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uapW3568.xml' => [ 'Philips', 'W3568', 'Android', DeviceType::MOBILE ], + 'http://www.consumer.philips.com/wbu/uapX525.xml' => [ 'Philips', 'X331', 'MTK', DeviceType::MOBILE ], + 'http://uriver.co.kr/UAprof/UAprof_M801.xml' => [ 'PhoneOne', 'M801', null, DeviceType::MOBILE ], + 'http://www.coobery.com/mobile/Suning_S90w_UAProfile.xml' => [ 'Pioneer', 'S90w', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiMediaPad7951WDWIFIOnly.xml' => [ 'PLDT', 'Telpad Dual S', 'Android', DeviceType::TABLET ], + 'http://www.diamond-electronics.com/xmlfiles/P4005A.xml' => [ 'Polaroid', 'P4005A', 'Android', DeviceType::MOBILE ], + 'http://www.gfivemobile.com/en/xml/PMID703GK.xml' => [ 'Polaroid', 'PMID 703gk', 'Android', DeviceType::MOBILE ], + 'http://www.diamond-electronics.com/xmlfiles/PMID704GK.XML' => [ 'Polaroid', 'PMID 704gk', 'Android', DeviceType::TABLET ], + 'http://www.diamond-electronics.com/xmlfiles/PSPC505.XML' => [ 'Polaroid', 'PSPC505', 'Android', DeviceType::MOBILE ], + 'http://www.diamond-electronics.com/xmlfiles/PSPT350_UAProfile.xml' => [ 'Polaroid', 'PSPT350', 'Android', DeviceType::MOBILE ], + 'http://www.diamond-electronics.com/xmlfiles/PSPT401.xml' => [ 'Polaroid', 'Turbo 401', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP7557_V1.xml' => [ 'Prestigio', 'Grace 7557', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP5670C_DUO_V1.xml' => [ 'Prestigio', 'Multipad 2 Pro Duo 7.0', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP7380D3G_QUAD_V1.xml' => [ 'Prestigio', 'Multipad 2 Pro Quad 8.0 3G', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP7280C3G_DUO_PL_V1.xml' => [ 'Prestigio', 'Multipad 2 Ultra Duo 8.0 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP7280C3G_QUAD_V1.xml' => [ 'Prestigio', 'Multipad 2 Ultra Duo 8.0 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP7110D3G_V1.xml' => [ 'Prestigio', 'Multipad 4 Diamond 10.1 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMT7177_3G_V1.xml' => [ 'Prestigio', 'Multipad 4 Diamond 10.1 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP7079D_QUAD_V1.xml' => [ 'Prestigio', 'Multipad 4 Diamond 7.85', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP7079D3G_QUAD_V1.xml' => [ 'Prestigio', 'Multipad 4 Diamond 7.85 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP7079E3G_QUAD_V1.xml' => [ 'Prestigio', 'Multipad 4 Diamond 7.85 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMT7077_3G_V1.xml' => [ 'Prestigio', 'Multipad 4 Diamond 7.85 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP5101D3G_QUAD_V1.xml' => [ 'Prestigio', 'Multipad 4 Quantum 10.1 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP5785C3G_QUAD_V1.xml' => [ 'Prestigio', 'Multipad 4 Quantum 7.85 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMT7287_3G_V1.xml' => [ 'Prestigio', 'Multipad 4 Ultra Quad 8.0 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP7100D3G_QUAD_V1.xml' => [ 'Prestigio', 'Multipad 7100', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP7280D3G_QUAD_V1.xml' => [ 'Prestigio', 'Multipad 7280', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP7480D3G_QUAD_V1.xml' => [ 'Prestigio', 'Multipad 7480', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMT5777_3G_V1.xml' => [ 'Prestigio', 'Multipad Color 7.0 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMT5887_3G_V1.xml' => [ 'Prestigio', 'Multipad Color 8.0 3G', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMT5001_3G_V1.xml' => [ 'Prestigio', 'Multipad Muze 5001 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMT5008_3G_V1.xml' => [ 'Prestigio', 'Multipad Muze 5008 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMT3277_3G_V1.xml' => [ 'Prestigio', 'Multipad Ranger 7.0 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMT3287_3G_V1.xml' => [ 'Prestigio', 'Multipad Ranger 8.0 3G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMT5287_4G_V1.xml' => [ 'Prestigio', 'Multipad Ranger 8.0 4G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMT7077_4G_V1.xml' => [ 'Prestigio', 'Multipad Ranger 8.0 4G', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP3007C_V1.xml' => [ 'Prestigio', 'Multipad Rider 7.0', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMP3007C3G_V1.xml' => [ 'Prestigio', 'Multipad Rider 7.0 3G', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/tablets/PMT5002_Wi_V1.xml' => [ 'Prestigio', 'Multipad Wize 5002', 'Android', DeviceType::TABLET ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP3350DUO_V1.xml' => [ 'Prestigio', 'Multiphone 3350 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP3400DUO_V1.xml' => [ 'Prestigio', 'Multiphone 3400 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP3404DUO_V1.xml' => [ 'Prestigio', 'Multiphone 3404 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP3405DUO_V1.xml' => [ 'Prestigio', 'Multiphone 3405 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP3450DUO_V1.xml' => [ 'Prestigio', 'Multiphone 3450 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP3502DUO_V1.xml' => [ 'Prestigio', 'Multiphone 3502 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP3540DUO_Polcomtel_V1.xml' => [ 'Prestigio', 'Multiphone 3540 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP3540DUO_V1.xml' => [ 'Prestigio', 'Multiphone 3540 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP4044DUO_V1.xml' => [ 'Prestigio', 'Multiphone 4044 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP4055DUO_V1.xml' => [ 'Prestigio', 'Multiphone 4055 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP4322DUO_V1.xml' => [ 'Prestigio', 'Multiphone 4322 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP4500TDUO_V1.XML' => [ 'Prestigio', 'Multiphone 4500 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP5000DUO_V1.XML' => [ 'Prestigio', 'Multiphone 5000 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP5000TDUO_V1.XML' => [ 'Prestigio', 'Multiphone 5000 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP5044DUO_V1.xml' => [ 'Prestigio', 'Multiphone 5044 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP5430_V1.xml' => [ 'Prestigio', 'Multiphone 5430', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP5450DUO_V1.xml' => [ 'Prestigio', 'Multiphone 5450 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP5451DUO_V1.xml' => [ 'Prestigio', 'Multiphone 5451 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP5453DUO_V1.xml' => [ 'Prestigio', 'Multiphone 5453 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP5454DUO_V1.xml' => [ 'Prestigio', 'Multiphone 5454 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP5455_DUO_V1.xml' => [ 'Prestigio', 'Multiphone 5455 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP5500DUO_V1.xml' => [ 'Prestigio', 'Multiphone 5500 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP5501_V1.xml' => [ 'Prestigio', 'Multiphone 5501', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP5504DUO_V1.xml' => [ 'Prestigio', 'Multiphone 5504 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP5505DUO_V1.xml' => [ 'Prestigio', 'Multiphone 5505 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP5507DUO_V1.xml' => [ 'Prestigio', 'Multiphone 5507 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP5508DUO_V1.xml' => [ 'Prestigio', 'Multiphone 5508 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP5517DUO_V1.xml' => [ 'Prestigio', 'Multiphone 5517 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP5550DUO_V1.xml' => [ 'Prestigio', 'Multiphone 5550 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP7500_V1.xml' => [ 'Prestigio', 'Multiphone 7500', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PAP7600DUO_V1.xml' => [ 'Prestigio', 'Multiphone 7600 Duo', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP5470DUO_V1.xml' => [ 'Prestigio', 'Multiphone Grace X5', 'Android', DeviceType::MOBILE ], + 'http://wap.dl.prestigio.com/uaprofile/smartphones/PSP3452DUO_V1.xml' => [ 'Prestigio', 'Muze A3', 'Android', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/Unknown_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/Unknown_evdo/7.1.0.rdf' => [ 'RIM', 'BlackBerry', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/5810/3.2.1.rdf' => [ 'RIM', 'BlackBerry 5810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/5810/3.3.0.rdf' => [ 'RIM', 'BlackBerry 5810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/5810/3.3.1.rdf' => [ 'RIM', 'BlackBerry 5810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/5810/3.6.0.rdf' => [ 'RIM', 'BlackBerry 5810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/5810/3.6.1.rdf' => [ 'RIM', 'BlackBerry 5810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/5810/3.7.0.rdf' => [ 'RIM', 'BlackBerry 5810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/5810/3.7.1.rdf' => [ 'RIM', 'BlackBerry 5810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/5810/3.7.2.rdf' => [ 'RIM', 'BlackBerry 5810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/5810/3.7.3.rdf' => [ 'RIM', 'BlackBerry 5810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6210/3.2.1.rdf' => [ 'RIM', 'BlackBerry 6210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6210/3.3.0.rdf' => [ 'RIM', 'BlackBerry 6210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6210/3.3.1.rdf' => [ 'RIM', 'BlackBerry 6210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6210/3.6.0.rdf' => [ 'RIM', 'BlackBerry 6210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6210/3.6.1.rdf' => [ 'RIM', 'BlackBerry 6210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6210/3.7.0.rdf' => [ 'RIM', 'BlackBerry 6210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6210/3.7.1.rdf' => [ 'RIM', 'BlackBerry 6210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6210/3.7.2.rdf' => [ 'RIM', 'BlackBerry 6210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6210/3.7.3.rdf' => [ 'RIM', 'BlackBerry 6210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6230/3.2.1.rdf' => [ 'RIM', 'BlackBerry 6230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6230/3.3.0.rdf' => [ 'RIM', 'BlackBerry 6230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6230/3.3.1.rdf' => [ 'RIM', 'BlackBerry 6230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6230/3.6.0.rdf' => [ 'RIM', 'BlackBerry 6230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6230/3.6.1.rdf' => [ 'RIM', 'BlackBerry 6230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6230/3.7.0.rdf' => [ 'RIM', 'BlackBerry 6230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6230/3.7.1.rdf' => [ 'RIM', 'BlackBerry 6230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6230/3.7.2.rdf' => [ 'RIM', 'BlackBerry 6230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6230/3.7.3.rdf' => [ 'RIM', 'BlackBerry 6230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6280/3.2.1.rdf' => [ 'RIM', 'BlackBerry 6280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6280/3.3.0.rdf' => [ 'RIM', 'BlackBerry 6280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6280/3.3.1.rdf' => [ 'RIM', 'BlackBerry 6280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6280/3.6.0.rdf' => [ 'RIM', 'BlackBerry 6280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6280/3.6.1.rdf' => [ 'RIM', 'BlackBerry 6280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6280/3.7.0.rdf' => [ 'RIM', 'BlackBerry 6280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6280/3.7.1.rdf' => [ 'RIM', 'BlackBerry 6280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6280/3.7.2.rdf' => [ 'RIM', 'BlackBerry 6280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6280/3.7.3.rdf' => [ 'RIM', 'BlackBerry 6280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6510/3.2.1.rdf' => [ 'RIM', 'BlackBerry 6510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6510/3.3.0.rdf' => [ 'RIM', 'BlackBerry 6510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6510/3.3.1.rdf' => [ 'RIM', 'BlackBerry 6510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6510/3.6.0.rdf' => [ 'RIM', 'BlackBerry 6510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6510/3.6.1.rdf' => [ 'RIM', 'BlackBerry 6510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6510/3.7.0.rdf' => [ 'RIM', 'BlackBerry 6510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6510/3.7.1.rdf' => [ 'RIM', 'BlackBerry 6510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6510/3.7.2.rdf' => [ 'RIM', 'BlackBerry 6510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6510/3.7.3.rdf' => [ 'RIM', 'BlackBerry 6510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6710/3.2.1.rdf' => [ 'RIM', 'BlackBerry 6710', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6710/3.3.0.rdf' => [ 'RIM', 'BlackBerry 6710', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6710/3.3.1.rdf' => [ 'RIM', 'BlackBerry 6710', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6710/3.6.0.rdf' => [ 'RIM', 'BlackBerry 6710', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6710/3.6.1.rdf' => [ 'RIM', 'BlackBerry 6710', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6710/3.7.0.rdf' => [ 'RIM', 'BlackBerry 6710', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6710/3.7.1.rdf' => [ 'RIM', 'BlackBerry 6710', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6710/3.7.2.rdf' => [ 'RIM', 'BlackBerry 6710', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6710/3.7.3.rdf' => [ 'RIM', 'BlackBerry 6710', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6750/3.2.1.rdf' => [ 'RIM', 'BlackBerry 6750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6750/3.3.0.rdf' => [ 'RIM', 'BlackBerry 6750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6750/3.3.1.rdf' => [ 'RIM', 'BlackBerry 6750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6750/3.6.0.rdf' => [ 'RIM', 'BlackBerry 6750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6750/3.6.1.rdf' => [ 'RIM', 'BlackBerry 6750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6750/3.7.0.rdf' => [ 'RIM', 'BlackBerry 6750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6750/3.7.1.rdf' => [ 'RIM', 'BlackBerry 6750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6750/3.7.2.rdf' => [ 'RIM', 'BlackBerry 6750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/6750/3.7.3.rdf' => [ 'RIM', 'BlackBerry 6750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7210/3.2.1.rdf' => [ 'RIM', 'BlackBerry 7210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7210/3.3.0.rdf' => [ 'RIM', 'BlackBerry 7210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7210/3.3.1.rdf' => [ 'RIM', 'BlackBerry 7210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7210/3.6.0.rdf' => [ 'RIM', 'BlackBerry 7210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7210/3.6.1.rdf' => [ 'RIM', 'BlackBerry 7210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7210/3.7.0.rdf' => [ 'RIM', 'BlackBerry 7210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7210/3.7.1.rdf' => [ 'RIM', 'BlackBerry 7210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7210/3.7.2.rdf' => [ 'RIM', 'BlackBerry 7210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7210/3.7.3.rdf' => [ 'RIM', 'BlackBerry 7210', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7230/3.2.1.rdf' => [ 'RIM', 'BlackBerry 7230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7230/3.3.0.rdf' => [ 'RIM', 'BlackBerry 7230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7230/3.3.1.rdf' => [ 'RIM', 'BlackBerry 7230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7230/3.6.0.rdf' => [ 'RIM', 'BlackBerry 7230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7230/3.6.1.rdf' => [ 'RIM', 'BlackBerry 7230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7230/3.7.0.rdf' => [ 'RIM', 'BlackBerry 7230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7230/3.7.1.rdf' => [ 'RIM', 'BlackBerry 7230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7230/3.7.2.rdf' => [ 'RIM', 'BlackBerry 7230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7230/3.7.3.rdf' => [ 'RIM', 'BlackBerry 7230', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7280/3.2.1.rdf' => [ 'RIM', 'BlackBerry 7280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7280/3.3.0.rdf' => [ 'RIM', 'BlackBerry 7280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7280/3.3.1.rdf' => [ 'RIM', 'BlackBerry 7280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7280/3.6.0.rdf' => [ 'RIM', 'BlackBerry 7280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7280/3.6.1.rdf' => [ 'RIM', 'BlackBerry 7280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7280/3.7.0.rdf' => [ 'RIM', 'BlackBerry 7280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7280/3.7.1.rdf' => [ 'RIM', 'BlackBerry 7280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7280/3.7.2.rdf' => [ 'RIM', 'BlackBerry 7280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7280/3.7.3.rdf' => [ 'RIM', 'BlackBerry 7280', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7510/3.2.1.rdf' => [ 'RIM', 'BlackBerry 7510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7510/3.3.0.rdf' => [ 'RIM', 'BlackBerry 7510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7510/3.3.1.rdf' => [ 'RIM', 'BlackBerry 7510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7510/3.6.0.rdf' => [ 'RIM', 'BlackBerry 7510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7510/3.6.1.rdf' => [ 'RIM', 'BlackBerry 7510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7510/3.7.0.rdf' => [ 'RIM', 'BlackBerry 7510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7510/3.7.1.rdf' => [ 'RIM', 'BlackBerry 7510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7510/3.7.2.rdf' => [ 'RIM', 'BlackBerry 7510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7510/3.7.3.rdf' => [ 'RIM', 'BlackBerry 7510', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7730/3.2.1.rdf' => [ 'RIM', 'BlackBerry 7730', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7730/3.3.0.rdf' => [ 'RIM', 'BlackBerry 7730', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7730/3.3.1.rdf' => [ 'RIM', 'BlackBerry 7730', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7730/3.6.0.rdf' => [ 'RIM', 'BlackBerry 7730', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7730/3.6.1.rdf' => [ 'RIM', 'BlackBerry 7730', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7730/3.7.0.rdf' => [ 'RIM', 'BlackBerry 7730', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7730/3.7.1.rdf' => [ 'RIM', 'BlackBerry 7730', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7730/3.7.2.rdf' => [ 'RIM', 'BlackBerry 7730', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7730/3.7.3.rdf' => [ 'RIM', 'BlackBerry 7730', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7750/3.2.1.rdf' => [ 'RIM', 'BlackBerry 7750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7750/3.3.0.rdf' => [ 'RIM', 'BlackBerry 7750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7750/3.3.1.rdf' => [ 'RIM', 'BlackBerry 7750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7750/3.6.0.rdf' => [ 'RIM', 'BlackBerry 7750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7750/3.6.1.rdf' => [ 'RIM', 'BlackBerry 7750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7750/3.7.0.rdf' => [ 'RIM', 'BlackBerry 7750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7750/3.7.1.rdf' => [ 'RIM', 'BlackBerry 7750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7750/3.7.2.rdf' => [ 'RIM', 'BlackBerry 7750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/7750/3.7.3.rdf' => [ 'RIM', 'BlackBerry 7750', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8500_edge/4.6.1.rdf' => [ 'RIM', 'BlackBerry 8500', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8707/4.2.2.rdf' => [ 'RIM', 'BlackBerry 8707', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8800/4.2.1.rdf' => [ 'RIM', 'BlackBerry 8800', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8820/4.2.2.rdf' => [ 'RIM', 'BlackBerry 8820', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8820/4.5.0.rdf' => [ 'RIM', 'BlackBerry 8820', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8830/4.2.2.rdf' => [ 'RIM', 'BlackBerry 8830', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9315_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry 9315', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9620_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry 9620', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9620_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry 9620', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9620_umts/7.1.0.rdf' => [ 'RIM', 'BlackBerry 9620', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9720/7.1.0.rdf' => [ 'RIM', 'BlackBerry 9720', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9720_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry 9720', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9720_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry 9720', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9720_gprs/7.1.0.rdf' => [ 'RIM', 'BlackBerry 9720', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9720_umts/7.1.0.rdf' => [ 'RIM', 'BlackBerry 9720', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9000/4.6.0.rdf' => [ 'RIM', 'BlackBerry Bold 9000', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9000/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9000', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9000_80211a/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9000', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9000_80211b/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9000', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9000_80211g/4.6.0.rdf' => [ 'RIM', 'BlackBerry Bold 9000', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9000_80211g/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9000', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9000_edge/4.6.0.rdf' => [ 'RIM', 'BlackBerry Bold 9000', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9000_edge/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9000', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9000_umts/4.6.0.rdf' => [ 'RIM', 'BlackBerry Bold 9000', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9000_umts/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9000', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry9650/6.0.0.706.rdf' => [ 'RIM', 'BlackBerry Bold 9650', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry9650/6.0.0.723.rdf' => [ 'RIM', 'BlackBerry Bold 9650', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9650/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9650', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9650_1x/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9650', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9650_80211g/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9650', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9650_80211g/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9650', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9650_edge/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9650', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9650_edge/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9650', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9650_evdo/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9650', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9650_evdo/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9650', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9650_umts/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9650', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9650_umts/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9650', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9700/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9700', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9700/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9700', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9700_80211b/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9700', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9700_80211g/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9700', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9700_80211g/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9700', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9700_edge/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9700', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9700_edge/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9700', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9700_gprs/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9700', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9700_gprs/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9700', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9700_umts/5.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9700', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9700_umts/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9700', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9780/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9780', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9780_80211b/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9780', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9780_80211g/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9780', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9780_edge/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9780', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9780_gprs/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9780', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9780_umts/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9780', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9780_usb/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9780', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9788_80211g/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9788', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9788_edge/6.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9788', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9790/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9790', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9790/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9790', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9790_80211a/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9790', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9790_80211g/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9790', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9790_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9790', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9790_edge/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9790', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9790_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9790', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9790_gprs/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9790', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9790_gprs/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9790', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9790_umts/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9790', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9790_umts/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9790', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9790_usb/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9790', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9900/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9900/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9900_80211a/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9900_80211a/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9900_80211g/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9900_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9900_edge/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9900_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9900_gprs/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9900_gprs/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9900_umts/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9900_umts/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9900_usb/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry9930/7.1.0.1066.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9930_1x/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9930_1x/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9930_80211a/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9930_80211a/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9930_80211g/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9930_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9930_edge/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9930_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9930_evdo/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9930_evdo/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9930_gprs/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9930_umts/7.0.0.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9930_umts/7.1.0.rdf' => [ 'RIM', 'BlackBerry Bold 9930', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8300/4.5.0.rdf' => [ 'RIM', 'BlackBerry Curve 8300', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8310/4.2.2.rdf' => [ 'RIM', 'BlackBerry Curve 8310', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8330/4.3.0.rdf' => [ 'RIM', 'BlackBerry Curve 8330', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8350i_80211g/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8350', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8520/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8520_80211b/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8520_80211g/4.6.1.rdf' => [ 'RIM', 'BlackBerry Curve 8520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8520_80211g/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8520_edge/4.6.1.rdf' => [ 'RIM', 'BlackBerry Curve 8520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8520_edge/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8520_gprs/4.6.1.rdf' => [ 'RIM', 'BlackBerry Curve 8520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8520_gprs/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8520_usb/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry8530/5.0.0.1000.rdf' => [ 'RIM', 'BlackBerry Curve 8530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry8530/5.0.0.1030.rdf' => [ 'RIM', 'BlackBerry Curve 8530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry8530/5.0.0.654.rdf' => [ 'RIM', 'BlackBerry Curve 8530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry8530/5.0.0.973.rdf' => [ 'RIM', 'BlackBerry Curve 8530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8530/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8530_1x/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8530_80211g/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8530_evdo/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8900/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8900_80211g/4.6.1.rdf' => [ 'RIM', 'BlackBerry Curve 8900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8900_80211g/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8900_edge/4.6.1.rdf' => [ 'RIM', 'BlackBerry Curve 8900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8900_edge/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8900_gprs/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 8900', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9220/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9220', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9220_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9220', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9220_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9220', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9220_gprs/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9220', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9300/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9300', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9300/6.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9300', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9300_80211b/6.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9300', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9300_80211g/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9300', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9300_80211g/6.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9300', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9300_edge/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9300', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9300_edge/6.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9300', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9300_gprs/6.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9300', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9300_umts/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9300', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9300_umts/6.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9300', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9310/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9310', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9310_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9310', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9310_evdo/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9310', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9315_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9315', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9315_umts/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9315', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9320/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9320', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9320_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9320', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9320_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9320', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9320_gprs/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9320', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9320_umts/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9320', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9320_usb/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9320', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry9330/6.0.0.707.rdf' => [ 'RIM', 'BlackBerry Curve 9330', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9330/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9330', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9330/6.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9330', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9330_1x/6.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9330', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9330_80211g/6.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9330', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9330_evdo/5.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9330', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9330_evdo/6.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9330', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry9350/7.1.0.580.rdf' => [ 'RIM', 'BlackBerry Curve 9350', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry9350/7.1.0.714.rdf' => [ 'RIM', 'BlackBerry Curve 9350', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry9350/7.1.0.861.rdf' => [ 'RIM', 'BlackBerry Curve 9350', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9350_1x/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9350', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9350_80211g/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9350', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9350_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9350', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9350_evdo/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9350', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9350_evdo/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9350', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9360/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9360', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9360/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9360', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9360_80211g/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9360', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9360_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9360', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9360_edge/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9360', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9360_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9360', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9360_gprs/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9360', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9360_gprs/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9360', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9360_umts/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9360', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9360_umts/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9360', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9360_usb/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9360', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9370_1x/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9370', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9370_80211g/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9370', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9370_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9370', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9370_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9370', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9370_evdo/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9370', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9370_evdo/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9370', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9380/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9380', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9380/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9380', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9380_80211g/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9380', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9380_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9380', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9380_edge/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9380', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9380_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9380', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9380_gprs/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9380', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9380_gprs/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9380', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9380_umts/7.0.0.rdf' => [ 'RIM', 'BlackBerry Curve 9380', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9380_umts/7.1.0.rdf' => [ 'RIM', 'BlackBerry Curve 9380', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8100/4.2.1.rdf' => [ 'RIM', 'BlackBerry Pearl 8100', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8120/4.3.0.rdf' => [ 'RIM', 'BlackBerry Pearl 8120', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8220_80211g/4.6.0.rdf' => [ 'RIM', 'BlackBerry Pearl 8220', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9100/4.6.0.rdf' => [ 'RIM', 'BlackBerry Pearl 9100', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9100_80211g/6.0.0.rdf' => [ 'RIM', 'BlackBerry Pearl 9100', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9100_edge/6.0.0.rdf' => [ 'RIM', 'BlackBerry Pearl 9100', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9100_umts/6.0.0.rdf' => [ 'RIM', 'BlackBerry Pearl 9100', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9105/5.0.0.rdf' => [ 'RIM', 'BlackBerry Pearl 9105', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9105/6.0.0.rdf' => [ 'RIM', 'BlackBerry Pearl 9105', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9105_80211g/5.0.0.rdf' => [ 'RIM', 'BlackBerry Pearl 9105', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9105_80211g/6.0.0.rdf' => [ 'RIM', 'BlackBerry Pearl 9105', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9105_edge/5.0.0.rdf' => [ 'RIM', 'BlackBerry Pearl 9105', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9105_edge/6.0.0.rdf' => [ 'RIM', 'BlackBerry Pearl 9105', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9105_umts/5.0.0.rdf' => [ 'RIM', 'BlackBerry Pearl 9105', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9105_umts/6.0.0.rdf' => [ 'RIM', 'BlackBerry Pearl 9105', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/8220_edge/4.6.0.rdf' => [ 'RIM', 'BlackBerry Pearl Flip 8220', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9981_80211g/7.0.0.rdf' => [ 'RIM', 'BlackBerry Porsche P 9981', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9981_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Porsche P 9981', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9981_edge/7.0.0.rdf' => [ 'RIM', 'BlackBerry Porsche P 9981', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9981_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry Porsche P 9981', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9981_gprs/7.1.0.rdf' => [ 'RIM', 'BlackBerry Porsche P 9981', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9981_umts/7.0.0.rdf' => [ 'RIM', 'BlackBerry Porsche P 9981', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9981_umts/7.1.0.rdf' => [ 'RIM', 'BlackBerry Porsche P 9981', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9500/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm 9500', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9500_edge/4.7.0.rdf' => [ 'RIM', 'BlackBerry Storm 9500', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9500_edge/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm 9500', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9500_umts/4.7.0.rdf' => [ 'RIM', 'BlackBerry Storm 9500', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9500_umts/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm 9500', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9530_edge/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm 9530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9530_evdo/4.6.0.rdf' => [ 'RIM', 'BlackBerry Storm 9530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9530_evdo/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm 9530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9530_gprs/4.7.0.rdf' => [ 'RIM', 'BlackBerry Storm 9530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9530_umts/4.7.0.rdf' => [ 'RIM', 'BlackBerry Storm 9530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9530_umts/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm 9530', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9550/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm 9550', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9550_80211g/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm 9550', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9550_edge/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm 9550', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9550_evdo/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm 9550', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9550_umts/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm 9550', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9520/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm2 9520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9520_80211g/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm2 9520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9520_edge/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm2 9520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9520_gprs/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm2 9520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9520_umts/5.0.0.rdf' => [ 'RIM', 'BlackBerry Storm2 9520', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry9670/6.0.0.706.rdf' => [ 'RIM', 'BlackBerry Style 9670', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry9670/6.0.0.707.rdf' => [ 'RIM', 'BlackBerry Style 9670', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9670/6.0.0.rdf' => [ 'RIM', 'BlackBerry Style 9670', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9670_1x/6.0.0.rdf' => [ 'RIM', 'BlackBerry Style 9670', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9670_80211b/6.0.0.rdf' => [ 'RIM', 'BlackBerry Style 9670', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9670_80211g/6.0.0.rdf' => [ 'RIM', 'BlackBerry Style 9670', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9670_evdo/6.0.0.rdf' => [ 'RIM', 'BlackBerry Style 9670', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9800/6.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9800', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9800_80211b/6.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9800', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9800_80211g/6.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9800', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9800_edge/6.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9800', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9800_gprs/6.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9800', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9800_umts/6.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9800', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9800_usb/6.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9800', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9810/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9810/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9810_80211g/6.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9810_80211g/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9810_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9810_edge/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9810_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9810_gprs/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9810_gprs/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9810_umts/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9810_umts/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9810_usb/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9810', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry9850/7.1.0.580.rdf' => [ 'RIM', 'BlackBerry Torch 9850', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9850_1x/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9850', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9850_80211g/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9850', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9850_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9850', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9850_edge/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9850', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9850_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9850', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9850_evdo/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9850', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9850_evdo/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9850', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9850_umts/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9850', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9850_umts/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9850', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9860/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9860', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9860/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9860', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9860_80211g/6.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9860', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9860_80211g/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9860', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9860_80211g/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9860', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9860_edge/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9860', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9860_edge/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9860', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9860_gprs/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9860', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9860_gprs/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9860', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9860_umts/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9860', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9860_umts/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9860', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9860_usb/7.0.0.rdf' => [ 'RIM', 'BlackBerry Torch 9860', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9860_usb/7.1.0.rdf' => [ 'RIM', 'BlackBerry Torch 9860', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/RIM/BlackBerry9630/5.0.0.624.rdf' => [ 'RIM', 'BlackBerry Tour 9630', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9630/5.0.0.rdf' => [ 'RIM', 'BlackBerry Tour 9630', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9630_edge/5.0.0.rdf' => [ 'RIM', 'BlackBerry Tour 9630', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9630_evdo/5.0.0.rdf' => [ 'RIM', 'BlackBerry Tour 9630', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/9630_umts/5.0.0.rdf' => [ 'RIM', 'BlackBerry Tour 9630', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/823044.xml' => [ 'Sagem', '3XXX', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/890054.xml' => [ 'Sagem', 'CO210', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/897807.xml' => [ 'Sagem', 'MC2007', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/896618.xml' => [ 'Sagem', 'my202C', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/897102.xml' => [ 'Sagem', 'my212X', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/897133.xml' => [ 'Sagem', 'my214X', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/897602.xml' => [ 'Sagem', 'my300C', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/892606.xml' => [ 'Sagem', 'my300X', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/898309.xml' => [ 'Sagem', 'my312X', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/894080.xml' => [ 'Sagem', 'my400X', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/896937.xml' => [ 'Sagem', 'my411X', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/899843.xml' => [ 'Sagem', 'my421Z', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/898544.xml' => [ 'Sagem', 'my511X', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/896817.xml' => [ 'Sagem', 'my600V', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/895182.xml' => [ 'Sagem', 'my600X', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/898885.xml' => [ 'Sagem', 'my721X', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/896288.xml' => [ 'Sagem', 'my750C', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/897313.xml' => [ 'Sagem', 'my850C', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/895961.xml' => [ 'Sagem', 'my901C', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/835113.xml' => [ 'Sagem', 'myC-2', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/890172.xml' => [ 'Sagem', 'myC-3b', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/890914.xml' => [ 'Sagem', 'myC-4', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/835402.xml' => [ 'Sagem', 'myC2-2', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/835618.xml' => [ 'Sagem', 'myC5-2', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/892993.xml' => [ 'Sagem', 'myMobileTV', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/893183.xml' => [ 'Sagem', 'myT-22', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/890453.xml' => [ 'Sagem', 'myV-55', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/892154.xml' => [ 'Sagem', 'myV-56', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/834495.xml' => [ 'Sagem', 'myV-65', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/834529.xml' => [ 'Sagem', 'myV-75', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/893401.xml' => [ 'Sagem', 'myV-85', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/893940.xml' => [ 'Sagem', 'myW-7', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/834525.xml' => [ 'Sagem', 'myX-1', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/834118.xml' => [ 'Sagem', 'myX-2', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/823252.xml' => [ 'Sagem', 'myX-3', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/835509.xml' => [ 'Sagem', 'myX-4', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/822962.xml' => [ 'Sagem', 'myX-5', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/823276.xml' => [ 'Sagem', 'myX-5', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/823404.xml' => [ 'Sagem', 'myX-5', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/823622.xml' => [ 'Sagem', 'myX-6', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/834530.xml' => [ 'Sagem', 'myX-7', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/891032.xml' => [ 'Sagem', 'myX-8', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/891863.xml' => [ 'Sagem', 'myX2-2', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/890118.xml' => [ 'Sagem', 'myX5-2', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/892081.xml' => [ 'Sagem', 'myX6-2', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/P9521.xml' => [ 'Sagem', 'Porsche Design P9521', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/898770.xml' => [ 'Sagem', 'VF526', null, DeviceType::MOBILE ], + 'http://extranet.sagem.com/UAProfile/899483.xml' => [ 'Sagem', 'VF533', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/740SCUAProf.xml' => [ 'Samsung', '740SC', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A157.xml' => [ 'Samsung', 'A157', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A697.xml' => [ 'Samsung', 'A697 Sunburst', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A927.xml' => [ 'Samsung', 'A927 Flight II', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A827.xml' => [ 'Samsung', 'Access', null, DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/SAMSUNG-SCH-I619_CHN_BRI.xml' => [ 'Samsung', 'Ace A+', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B6520.xml' => [ 'Samsung', 'B6520 OmniaPRO 5', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B7330.xml' => [ 'Samsung', 'B7330 OmniaPRO', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B7610.xml' => [ 'Samsung', 'B7610 OmniaPRO', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B7610_2G.xml' => [ 'Samsung', 'B7610 OmniaPRO', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B7610_3G.xml' => [ 'Samsung', 'B7610 OmniaPRO', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T539.xml' => [ 'Samsung', 'Beat', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/M3510C.xml' => [ 'Samsung', 'Beat b', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-M6710UAProf.xml' => [ 'Samsung', 'Beat Disc', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-M6710UAProf3G.xml' => [ 'Samsung', 'Beat Disc', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T919.xml' => [ 'Samsung', 'Behold', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i607_10.xml' => [ 'Samsung', 'BlackJack', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i617_10.xml' => [ 'Samsung', 'BlackJack II', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T729.xml' => [ 'Samsung', 'Blast', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c3010_10.xml' => [ 'Samsung', 'C3010', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c3050_10.xml' => [ 'Samsung', 'C3050', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c3110_10.xml' => [ 'Samsung', 'C3110', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3520I.xml' => [ 'Samsung', 'C3520', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C5010_2G.rdf' => [ 'Samsung', 'C5010 Squash', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/C5212.xml' => [ 'Samsung', 'C5212', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/C5220.rdf' => [ 'Samsung', 'C5220', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/C6620UAProf.rdf' => [ 'Samsung', 'C6620', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/C6625UAProf.xml' => [ 'Samsung', 'C6625', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/C6625UAProf2G.xml' => [ 'Samsung', 'C6625', null, DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I879_1_20130130.xml' => [ 'Samsung', 'Captivate', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I896.xml' => [ 'Samsung', 'Captivate', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I897.xml' => [ 'Samsung', 'Captivate', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I927.xml' => [ 'Samsung', 'Captivate Glide', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I927R.xml' => [ 'Samsung', 'Captivate Glide', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2220.xml' => [ 'Samsung', 'Ch@t 220', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2222.xml' => [ 'Samsung', 'Ch@t 222', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2262UAProf.xml' => [ 'Samsung', 'Ch@t 226', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3222.xml' => [ 'Samsung', 'Ch@t 322', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3222.xml.jar.jad' => [ 'Samsung', 'Ch@t 322', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3222BR.xml' => [ 'Samsung', 'Ch@t 322', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3332.xml' => [ 'Samsung', 'Ch@t 333', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3332BR.xml' => [ 'Samsung', 'Ch@t 333', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3350UAProf.xml' => [ 'Samsung', 'Ch@t 335', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3353UAProf.xml' => [ 'Samsung', 'Ch@t 335', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3500.xml' => [ 'Samsung', 'Ch@t 350', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3570.xml' => [ 'Samsung', 'Ch@t 357', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3572.xml' => [ 'Samsung', 'Ch@t 357', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5270LBR_3G.xml' => [ 'Samsung', 'Ch@t 527', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5270L_3G.xml' => [ 'Samsung', 'Ch@t 527', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5270Y_2G.xml' => [ 'Samsung', 'Ch@t 527', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5270Y_3G.xml' => [ 'Samsung', 'Ch@t 527', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5270_2G.rdf' => [ 'Samsung', 'Ch@t 527', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5270_3G.rdf' => [ 'Samsung', 'Ch@t 527', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3300i.xml' => [ 'Samsung', 'Champ', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3303.xml' => [ 'Samsung', 'Champ', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3303i.xml' => [ 'Samsung', 'Champ', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3330UAProf.xml' => [ 'Samsung', 'Champ 2', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3332UAProf.xml' => [ 'Samsung', 'Champ 2', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3770L_2G.xml' => [ 'Samsung', 'Champ 3G', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3770L_3G.xml' => [ 'Samsung', 'Champ 3G', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3770M_2G.xml' => [ 'Samsung', 'Champ 3G', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3770M_3G.xml' => [ 'Samsung', 'Champ 3G', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3770_2G.rdf' => [ 'Samsung', 'Champ 3G', 'TouchWiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3310RUAProf.xml' => [ 'Samsung', 'Champ Deluxe', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3310UAProf.xml' => [ 'Samsung', 'Champ Deluxe', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3312KUAProf.xml' => [ 'Samsung', 'Champ Deluxe Duos', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3312RUAProf.xml' => [ 'Samsung', 'Champ Deluxe Duos', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3312UAProf.xml' => [ 'Samsung', 'Champ Deluxe Duos', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2652WUAProf.xml' => [ 'Samsung', 'Champ Duos', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3262.xml' => [ 'Samsung', 'Champ Neo Duos', 'Touchwiz', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D600/FC17.rdf' => [ 'Samsung', 'Conquer 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D600/FE16.rdf' => [ 'Samsung', 'Conquer 4G', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B3310UAProf.xml' => [ 'Samsung', 'Corby', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3650.rdf' => [ 'Samsung', 'Corby', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3650.xml' => [ 'Samsung', 'Corby', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3650C.rdf' => [ 'Samsung', 'Corby', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3653.rdf' => [ 'Samsung', 'Corby', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3653W.rdf' => [ 'Samsung', 'Corby', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3370.rdf' => [ 'Samsung', 'Corby 3G', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3370_3G.rdf' => [ 'Samsung', 'Corby 3G', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-M3710.xml' => [ 'Samsung', 'Corby Beat', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-M3710TCE.xml' => [ 'Samsung', 'Corby Beat', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3850.rdf' => [ 'Samsung', 'Corby II', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3850.xml' => [ 'Samsung', 'Corby II', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3850BR.xml' => [ 'Samsung', 'Corby II', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3850_3G.rdf' => [ 'Samsung', 'Corby II', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B3313UAProf.xml' => [ 'Samsung', 'Corby Mate', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3510T.rdf' => [ 'Samsung', 'Corby Pop', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5310.rdf' => [ 'Samsung', 'Corby Pro', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5310_3G.rdf' => [ 'Samsung', 'Corby Pro', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B3210UAProf.xml' => [ 'Samsung', 'Corby TXT', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T499.xml' => [ 'Samsung', 'Dart', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I857.xml' => [ 'Samsung', 'DoubleTime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I6712BR.xml' => [ 'Samsung', 'Duos TV', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/E1310B.xml' => [ 'Samsung', 'E1310', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/E1310E.xml' => [ 'Samsung', 'E1310', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/E1360B.xml' => [ 'Samsung', 'E1360', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e1410_10.xml' => [ 'Samsung', 'E1410', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/E2210B.xml' => [ 'Samsung', 'E2210', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E3210L_3G.xml' => [ 'Samsung', 'E3210', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E3213K_3G.rdf' => [ 'Samsung', 'E3213 Hero', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E3309I.xml' => [ 'Samsung', 'E3309 Manhattan', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D700/DK28.rdf' => [ 'Samsung', 'Epic 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D700/EC05.rdf' => [ 'Samsung', 'Epic 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D700/EH17.rdf' => [ 'Samsung', 'Epic 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D700/EI22.rdf' => [ 'Samsung', 'Epic 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D700/FC09.rdf' => [ 'Samsung', 'Epic 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D700/FC19.rdf' => [ 'Samsung', 'Epic 4G', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-i907.xml' => [ 'Samsung', 'Epix', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A867.xml' => [ 'Samsung', 'Eternity', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A597.xml' => [ 'Samsung', 'Eternity II', 'TouchWiz', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M550/CL03.rdf' => [ 'Samsung', 'Exclaim', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T759.xml' => [ 'Samsung', 'Exhibit 4G', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_F839_3_20090707.xml' => [ 'Samsung', 'F839', 'Brew', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T189N.xml' => [ 'Samsung', 'Freeform M', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-G600.xml' => [ 'Samsung', 'G600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i5500.xml' => [ 'Samsung', 'Galaxy 5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i5500B.xml' => [ 'Samsung', 'Galaxy 5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i5500L.xml' => [ 'Samsung', 'Galaxy 5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i5503.xml' => [ 'Samsung', 'Galaxy 5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i5503T_Froyo.rdf' => [ 'Samsung', 'Galaxy 5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i5510.xml' => [ 'Samsung', 'Galaxy 551', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I5510BO.xml' => [ 'Samsung', 'Galaxy 551', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I5510BR.xml' => [ 'Samsung', 'Galaxy 551', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I5510L.xml' => [ 'Samsung', 'Galaxy 551', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-A3009_1_20140919.xml' => [ 'Samsung', 'Galaxy A3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A300F.xml' => [ 'Samsung', 'Galaxy A3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A300FU.xml' => [ 'Samsung', 'Galaxy A3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A300G.xml' => [ 'Samsung', 'Galaxy A3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A300H.xml' => [ 'Samsung', 'Galaxy A3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A300M.xml' => [ 'Samsung', 'Galaxy A3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A300Y.xml' => [ 'Samsung', 'Galaxy A3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A300YZ.xml' => [ 'Samsung', 'Galaxy A3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A310F.xml' => [ 'Samsung', 'Galaxy A3 (2016)', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-A5009_1_20140811.xml' => [ 'Samsung', 'Galaxy A5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A500F.xml' => [ 'Samsung', 'Galaxy A5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A500FU.xml' => [ 'Samsung', 'Galaxy A5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A500G.xml' => [ 'Samsung', 'Galaxy A5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A500H.xml' => [ 'Samsung', 'Galaxy A5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A500M.xml' => [ 'Samsung', 'Galaxy A5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A500W.xml' => [ 'Samsung', 'Galaxy A5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A500Y.xml' => [ 'Samsung', 'Galaxy A5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A510F.xml' => [ 'Samsung', 'Galaxy A5 (2016)', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A510Y.xml' => [ 'Samsung', 'Galaxy A5 (2016)', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-A7009_1_20141110.xml' => [ 'Samsung', 'Galaxy A7', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A700FD.xml' => [ 'Samsung', 'Galaxy A7', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A700H.xml' => [ 'Samsung', 'Galaxy A7', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A710F.xml' => [ 'Samsung', 'Galaxy A7 (2016)', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A710Y.xml' => [ 'Samsung', 'Galaxy A7 (2016)', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A800F.xml' => [ 'Samsung', 'Galaxy A8', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-A800IZ.xml' => [ 'Samsung', 'Galaxy A8', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I579_1_20101216.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/cooper.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5830.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5830B.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5830BO.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5830C.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5830D.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5830G.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5830i.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5830iBO.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5830L.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5830M.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5830T.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5830V.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5831i.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5839i.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5839iBO.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5839iBV.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6358.xml' => [ 'Samsung', 'Galaxy Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8160.xml' => [ 'Samsung', 'Galaxy Ace 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8160BO.xml' => [ 'Samsung', 'Galaxy Ace 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8160L.xml' => [ 'Samsung', 'Galaxy Ace 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8160P.xml' => [ 'Samsung', 'Galaxy Ace 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7270.xml' => [ 'Samsung', 'Galaxy Ace 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7270L.xml' => [ 'Samsung', 'Galaxy Ace 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7275B.xml' => [ 'Samsung', 'Galaxy Ace 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7275R.xml' => [ 'Samsung', 'Galaxy Ace 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7275RBO.xml' => [ 'Samsung', 'Galaxy Ace 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7275T.xml' => [ 'Samsung', 'Galaxy Ace 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7275Y.xml' => [ 'Samsung', 'Galaxy Ace 3', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G3139D_1_20140829.xml' => [ 'Samsung', 'Galaxy Ace 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G313F.xml' => [ 'Samsung', 'Galaxy Ace 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G313H.xml' => [ 'Samsung', 'Galaxy Ace 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G313HU.xml' => [ 'Samsung', 'Galaxy Ace 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G313HZ.xml' => [ 'Samsung', 'Galaxy Ace 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G313M.xml' => [ 'Samsung', 'Galaxy Ace 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G313ML.xml' => [ 'Samsung', 'Galaxy Ace 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G313MU.xml' => [ 'Samsung', 'Galaxy Ace 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G313U.xml' => [ 'Samsung', 'Galaxy Ace 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G316M.xml' => [ 'Samsung', 'Galaxy Ace 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G316ML.xml' => [ 'Samsung', 'Galaxy Ace 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G316MLPET.xml' => [ 'Samsung', 'Galaxy Ace 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G318H.xml' => [ 'Samsung', 'Galaxy Ace 4 Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G318HZ.xml' => [ 'Samsung', 'Galaxy Ace 4 Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G318ML.xml' => [ 'Samsung', 'Galaxy Ace 4 Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G318MZ.xml' => [ 'Samsung', 'Galaxy Ace 4 Neo', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I619_1_20120112.xml' => [ 'Samsung', 'Galaxy Ace A+', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SCH-I619.xml' => [ 'Samsung', 'Galaxy Ace A+', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_i589_1_20110504.xml' => [ 'Samsung', 'Galaxy Ace Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6352.xml' => [ 'Samsung', 'Galaxy Ace Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6802.xml' => [ 'Samsung', 'Galaxy Ace Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6802B.xml' => [ 'Samsung', 'Galaxy Ace Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7560.xml' => [ 'Samsung', 'Galaxy Ace II x', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7560BO.xml' => [ 'Samsung', 'Galaxy Ace II x', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7560M.xml' => [ 'Samsung', 'Galaxy Ace II x', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I659_1_20120627.xml' => [ 'Samsung', 'Galaxy Ace Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7500.xml' => [ 'Samsung', 'Galaxy Ace Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7500L.xml' => [ 'Samsung', 'Galaxy Ace Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7500T.xml' => [ 'Samsung', 'Galaxy Ace Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SHW-M460D.xml' => [ 'Samsung', 'Galaxy Ace Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G357FZ.xml' => [ 'Samsung', 'Galaxy Ace Style', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G357FZBO.xml' => [ 'Samsung', 'Galaxy Ace Style', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G357M.xml' => [ 'Samsung', 'Galaxy Ace Style', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G357MPET.xml' => [ 'Samsung', 'Galaxy Ace Style', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-S765C.xml' => [ 'Samsung', 'Galaxy Ace Style', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G850A.xml' => [ 'Samsung', 'Galaxy Alpha', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G850F.xml' => [ 'Samsung', 'Galaxy Alpha', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G850M.xml' => [ 'Samsung', 'Galaxy Alpha', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G850MPET.xml' => [ 'Samsung', 'Galaxy Alpha', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G850W.xml' => [ 'Samsung', 'Galaxy Alpha', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G850Y.xml' => [ 'Samsung', 'Galaxy Alpha', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I407.xml' => [ 'Samsung', 'Galaxy Amp', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i5800.xml' => [ 'Samsung', 'Galaxy Apollo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i5800L.xml' => [ 'Samsung', 'Galaxy Apollo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i5801.xml' => [ 'Samsung', 'Galaxy Apollo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I827.xml' => [ 'Samsung', 'Galaxy Appeal', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I827D.xml' => [ 'Samsung', 'Galaxy Appeal', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8530.xml' => [ 'Samsung', 'Galaxy Beam', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/EK-GC100.xml' => [ 'Samsung', 'Galaxy Camera', 'Android', ], + 'http://wap.samsungmobile.com/uaprof/SCH-S738C.xml' => [ 'Samsung', 'Galaxy Centura', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5330.xml' => [ 'Samsung', 'Galaxy Chat', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5330B.xml' => [ 'Samsung', 'Galaxy Chat', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5330L.xml' => [ 'Samsung', 'Galaxy Chat', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8260.xml' => [ 'Samsung', 'Galaxy Core', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8260L.xml' => [ 'Samsung', 'Galaxy Core', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8262.xml' => [ 'Samsung', 'Galaxy Core', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8262B.xml' => [ 'Samsung', 'Galaxy Core', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G386F.xml' => [ 'Samsung', 'Galaxy Core', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G386T.xml' => [ 'Samsung', 'Galaxy Core', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G386T1.xml' => [ 'Samsung', 'Galaxy Core', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G386W.xml' => [ 'Samsung', 'Galaxy Core', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G386WMTA.xml' => [ 'Samsung', 'Galaxy Core', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G3559_1_20140420.xml' => [ 'Samsung', 'Galaxy Core 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G355H.xml' => [ 'Samsung', 'Galaxy Core 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G355HN.xml' => [ 'Samsung', 'Galaxy Core 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G355HNBO.xml' => [ 'Samsung', 'Galaxy Core 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G355M.xml' => [ 'Samsung', 'Galaxy Core 2', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G3589W_1_20140219.xml' => [ 'Samsung', 'Galaxy Core Lite', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G5109_1_20141010.xml' => [ 'Samsung', 'Galaxy Core Max', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G350.xml' => [ 'Samsung', 'Galaxy Core Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G350BO.xml' => [ 'Samsung', 'Galaxy Core Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G350L.xml' => [ 'Samsung', 'Galaxy Core Plus', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G360P-2012071301/NL8.rdf' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G360P-2012071301/OH1.rdf' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G360P-BOOST/NL8.rdf' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G360P-BOOST/OF4.rdf' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G360P-BOOST/OH1.rdf' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G360P-Chameleon/latest' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G360P-SPRPRE/OH1.rdf' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G3609_1_20140826.xml' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G360AZ.xml' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G360F.xml' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G360G.xml' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G360GY.xml' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G360H.xml' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G360HU.xml' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G360M.xml' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G360T.xml' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G360T1.xml' => [ 'Samsung', 'Galaxy Core Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G361F.xml' => [ 'Samsung', 'Galaxy Core Prime VE', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G361H.xml' => [ 'Samsung', 'Galaxy Core Prime VE', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G361HU.xml' => [ 'Samsung', 'Galaxy Core Prime VE', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SCH-S735C.xml' => [ 'Samsung', 'Galaxy Discover', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-S730G.xml' => [ 'Samsung', 'Galaxy Discover', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-S730M.xml' => [ 'Samsung', 'Galaxy Discover', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-E500H.xml' => [ 'Samsung', 'Galaxy E5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-E500M.xml' => [ 'Samsung', 'Galaxy E5', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-E7009_1_20141208.xml' => [ 'Samsung', 'Galaxy E7', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-E700F.xml' => [ 'Samsung', 'Galaxy E7', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-E700H.xml' => [ 'Samsung', 'Galaxy E7', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-E700M.xml' => [ 'Samsung', 'Galaxy E7', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T599.xml' => [ 'Samsung', 'Galaxy Exhibit', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T599N.xml' => [ 'Samsung', 'Galaxy Exhibit', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T599V.xml' => [ 'Samsung', 'Galaxy Exhibit', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T679.xml' => [ 'Samsung', 'Galaxy Exhibit II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T679M.xml' => [ 'Samsung', 'Galaxy Exhibit II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I577.xml' => [ 'Samsung', 'Galaxy Exhilarate', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8730.xml' => [ 'Samsung', 'Galaxy Express', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8730BO.xml' => [ 'Samsung', 'Galaxy Express', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8730T.xml' => [ 'Samsung', 'Galaxy Express', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I437.xml' => [ 'Samsung', 'Galaxy Express', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I437P.xml' => [ 'Samsung', 'Galaxy Express', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I437Z.xml' => [ 'Samsung', 'Galaxy Express', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G3815.xml' => [ 'Samsung', 'Galaxy Express 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6810.xml' => [ 'Samsung', 'Galaxy Fame', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6810B.xml' => [ 'Samsung', 'Galaxy Fame', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6810E.xml' => [ 'Samsung', 'Galaxy Fame', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6810L.xml' => [ 'Samsung', 'Galaxy Fame', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6810M.xml' => [ 'Samsung', 'Galaxy Fame', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6810P.xml' => [ 'Samsung', 'Galaxy Fame', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6810PBO.xml' => [ 'Samsung', 'Galaxy Fame', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6812B.xml' => [ 'Samsung', 'Galaxy Fame', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6790L.xml' => [ 'Samsung', 'Galaxy Fame Lite', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6792L.xml' => [ 'Samsung', 'Galaxy Fame Lite Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5670.xml' => [ 'Samsung', 'Galaxy Fit', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5670B.xml' => [ 'Samsung', 'Galaxy Fit', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5670L.xml' => [ 'Samsung', 'Galaxy Fit', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I569_1_20101216.xml' => [ 'Samsung', 'Galaxy Gio', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/SAMSUNG-SCH-I569_CHN_BRI.xml' => [ 'Samsung', 'Galaxy Gio', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5660.xml' => [ 'Samsung', 'Galaxy Gio', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5660L.xml' => [ 'Samsung', 'Galaxy Gio', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5660M.xml' => [ 'Samsung', 'Galaxy Gio', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5660V.xml' => [ 'Samsung', 'Galaxy Gio', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-W2015_1_20140830.xml' => [ 'Samsung', 'Galaxy Golden 2', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-W2016_1_20151016.xml' => [ 'Samsung', 'Galaxy Golden 3', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SCH-I879E_1_20131122.xml' => [ 'Samsung', 'Galaxy Grand', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9080E.xml' => [ 'Samsung', 'Galaxy Grand', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9080L.xml' => [ 'Samsung', 'Galaxy Grand', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G7109_1_20131108.xml' => [ 'Samsung', 'Galaxy Grand 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G710.xml' => [ 'Samsung', 'Galaxy Grand 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G7102T.xml' => [ 'Samsung', 'Galaxy Grand 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G7105.xml' => [ 'Samsung', 'Galaxy Grand 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G7105H.xml' => [ 'Samsung', 'Galaxy Grand 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G7105L.xml' => [ 'Samsung', 'Galaxy Grand 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G7105PTR.xml' => [ 'Samsung', 'Galaxy Grand 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9082.xml' => [ 'Samsung', 'Galaxy Grand Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9082L.xml' => [ 'Samsung', 'Galaxy Grand Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G7102.xml' => [ 'Samsung', 'Galaxy Grand II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9060.xml' => [ 'Samsung', 'Galaxy Grand Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9060C.xml' => [ 'Samsung', 'Galaxy Grand Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9060I.xml' => [ 'Samsung', 'Galaxy Grand Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9060L.xml' => [ 'Samsung', 'Galaxy Grand Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9060M.xml' => [ 'Samsung', 'Galaxy Grand Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9063T.xml' => [ 'Samsung', 'Galaxy Grand Neo Duos', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G530P-SPRINT/OF8.rdf' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G530P-SPRINT/OG2.rdf' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G530P-SPRINT/OI1.rdf' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G530P-SPRINT/PC4.rdf' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G5309W_1_20140909.xml' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G530AZ.xml' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G530BT.xml' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G530F.xml' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G530FZ.xml' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G530FZBO.xml' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G530H.xml' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G530M.xml' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G530MU.xml' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G530T.xml' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G530T1.xml' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G530W.xml' => [ 'Samsung', 'Galaxy Grand Prime', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G531BT.xml' => [ 'Samsung', 'Galaxy Grand Prime VE', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G531FBO.xml' => [ 'Samsung', 'Galaxy Grand Prime VE', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G531H.xml' => [ 'Samsung', 'Galaxy Grand Prime VE', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G531M.xml' => [ 'Samsung', 'Galaxy Grand Prime VE', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B9150.xml' => [ 'Samsung', 'Galaxy HomeSync', 'Android', ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I759_1_20130111.xml' => [ 'Samsung', 'Galaxy Infinite', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J100H.xml' => [ 'Samsung', 'Galaxy J1', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J100M.xml' => [ 'Samsung', 'Galaxy J1', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J100ML.xml' => [ 'Samsung', 'Galaxy J1', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J100MU.xml' => [ 'Samsung', 'Galaxy J1', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J100Y.xml' => [ 'Samsung', 'Galaxy J1', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J120H.xml' => [ 'Samsung', 'Galaxy J1 (2016)', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J110F.xml' => [ 'Samsung', 'Galaxy J1 Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J110G.xml' => [ 'Samsung', 'Galaxy J1 Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J110M.xml' => [ 'Samsung', 'Galaxy J1 Ace', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J105B.xml' => [ 'Samsung', 'Galaxy J1 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J200G.xml' => [ 'Samsung', 'Galaxy J2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J200GU.xml' => [ 'Samsung', 'Galaxy J2', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-J320P-BOOST/OL2.rdf' => [ 'Samsung', 'Galaxy J3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-J320P-Chameleon/latest' => [ 'Samsung', 'Galaxy J3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-J320P-VIRGIN/OL2.rdf' => [ 'Samsung', 'Galaxy J3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J320FN.xml' => [ 'Samsung', 'Galaxy J3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J320H.xml' => [ 'Samsung', 'Galaxy J3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J320Y.xml' => [ 'Samsung', 'Galaxy J3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J500F.xml' => [ 'Samsung', 'Galaxy J5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J500FN.xml' => [ 'Samsung', 'Galaxy J5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J500G.xml' => [ 'Samsung', 'Galaxy J5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J500H.xml' => [ 'Samsung', 'Galaxy J5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J500M.xml' => [ 'Samsung', 'Galaxy J5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J500MPET.xml' => [ 'Samsung', 'Galaxy J5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J500Y.xml' => [ 'Samsung', 'Galaxy J5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J700F.xml' => [ 'Samsung', 'Galaxy J7', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J700H.xml' => [ 'Samsung', 'Galaxy J7', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-J700M.xml' => [ 'Samsung', 'Galaxy J7', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-C111.xml' => [ 'Samsung', 'Galaxy K Zoom', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-C111M.xml' => [ 'Samsung', 'Galaxy K Zoom', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-C115.xml' => [ 'Samsung', 'Galaxy K Zoom', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-C115M.xml' => [ 'Samsung', 'Galaxy K Zoom', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-C115W.xml' => [ 'Samsung', 'Galaxy K Zoom', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/SCH-I200PP/SCH-I200PP.xml' => [ 'Samsung', 'Galaxy Legend', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T399.xml' => [ 'Samsung', 'Galaxy Light', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G7509_1_20141014.xml' => [ 'Samsung', 'Galaxy Mega 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G750A.xml' => [ 'Samsung', 'Galaxy Mega 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G750F.xml' => [ 'Samsung', 'Galaxy Mega 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G750H.xml' => [ 'Samsung', 'Galaxy Mega 2', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SCH-P709E_1_20140113.xml' => [ 'Samsung', 'Galaxy Mega 5.8', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9150.xml' => [ 'Samsung', 'Galaxy Mega 5.8', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9152.xml' => [ 'Samsung', 'Galaxy Mega 5.8 Duos', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L600-SPRINT/MI6.rdf' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L600-SPRINT/MK1.rdf' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L600-SPRINT/NA7.rdf' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L600-SPRINT/ND4.rdf' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L600-SPRINT/NE4.rdf' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L600-SPRINT/NJ1.rdf' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L600-SPRINT/OH1.rdf' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_P729_1_20130510.xml' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9200.xml' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9205.xml' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9205BO.xml' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I527.xml' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I527M.xml' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I527MBMC.xml' => [ 'Samsung', 'Galaxy Mega 6.3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5570.xml' => [ 'Samsung', 'Galaxy Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5570B.xml' => [ 'Samsung', 'Galaxy Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5570I.xml' => [ 'Samsung', 'Galaxy Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5570L.xml' => [ 'Samsung', 'Galaxy Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T499V.xml' => [ 'Samsung', 'Galaxy Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T499Y.xml' => [ 'Samsung', 'Galaxy Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6500.xml' => [ 'Samsung', 'Galaxy Mini 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6500BO.xml' => [ 'Samsung', 'Galaxy Mini 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6500D.xml' => [ 'Samsung', 'Galaxy Mini 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6500DBO.xml' => [ 'Samsung', 'Galaxy Mini 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6500L.xml' => [ 'Samsung', 'Galaxy Mini 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6500T.xml' => [ 'Samsung', 'Galaxy Mini 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6010.xml' => [ 'Samsung', 'Galaxy Music', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6010L.xml' => [ 'Samsung', 'Galaxy Music', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6012B.xml' => [ 'Samsung', 'Galaxy Music Duos', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/Galaxy Nexus/Galaxy Nexus.xml' => [ 'Samsung', 'Galaxy Nexus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Galaxy Nexus.xml' => [ 'Samsung', 'Galaxy Nexus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i9250.xml' => [ 'Samsung', 'Galaxy Nexus', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_i889_1_20111028.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9220.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9228.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-N7000.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-N7000.xmlhttp://wap.samsungmobile.com/uaprof/.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-N7000B.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-N7000BO.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-N7005.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SAMSUNG-SGH-I717.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I717.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I717D.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I717M.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I717R.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I9220.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T879.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SHV-E160K.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SHV-E160L.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SHV-E160S.xml' => [ 'Samsung', 'Galaxy Note', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/SCH-I925/SCH-I925.xml' => [ 'Samsung', 'Galaxy Note 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-N8000.xml' => [ 'Samsung', 'Galaxy Note 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-N8010.xml' => [ 'Samsung', 'Galaxy Note 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-N8020.xml' => [ 'Samsung', 'Galaxy Note 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-N8020BO.xml' => [ 'Samsung', 'Galaxy Note 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-N8020T.xml' => [ 'Samsung', 'Galaxy Note 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P600.xml' => [ 'Samsung', 'Galaxy Note 10.1 (2014)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P601.xml' => [ 'Samsung', 'Galaxy Note 10.1 (2014)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P605.xml' => [ 'Samsung', 'Galaxy Note 10.1 (2014)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P605BO.xml' => [ 'Samsung', 'Galaxy Note 10.1 (2014)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P605M.xml' => [ 'Samsung', 'Galaxy Note 10.1 (2014)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P607T.xml' => [ 'Samsung', 'Galaxy Note 10.1 (2014)', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-Chameleon/AAA.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-Chameleon/latest' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-Chameleon/ML9.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-Chameleon/NC5.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-MVNO/OC5.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-MVNO/OH1.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-SPRINT/C5D.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-SPRINT/MI3.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-SPRINT/MI5.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-SPRINT/MJ4.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-SPRINT/NAB.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-SPRINT/NC5.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-SPRINT/NH7.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-SPRINT/NK4.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-SPRINT/OC5.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-SPRINT/OH1.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N900P-SPRINT/OK2.rdf' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-N9009_2_20130829.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SAMSUNG-SM-N900A.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N900.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N9005.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N9005BO.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N9005T.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N9007.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N9009.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N900A.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N900L.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N900PET.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N900PTR.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N900T.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N900V.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N900W8.xml' => [ 'Samsung', 'Galaxy Note 3', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-N7509V_1_20140204.xml' => [ 'Samsung', 'Galaxy Note 3 Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N750.xml' => [ 'Samsung', 'Galaxy Note 3 Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N7502.xml' => [ 'Samsung', 'Galaxy Note 3 Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N7505.xml' => [ 'Samsung', 'Galaxy Note 3 Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N7505L.xml' => [ 'Samsung', 'Galaxy Note 3 Neo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N910P-Chameleon/latest' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N910P-MVNO/OB7.rdf' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N910P-SPRINT/NIE.rdf' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N910P-SPRINT/NK2.rdf' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N910P-SPRINT/OB7.rdf' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N910P-SPRINT/OE1.rdf' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N910P-SPRINT/OF5.rdf' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N910P-SPRINT/OG5.rdf' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N910P-SPRINT/OJ6.rdf' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N910P-SPRINT/OK1.rdf' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N910P-SPRINT/PC1.rdf' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N910P-SPRINT/PD1.rdf' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N910P-SPRINT/PE1.rdf' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-N9109W_1_20140903.xml' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N9106W.xml' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N910A.xml' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N910C.xml' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N910F.xml' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N910FPTR.xml' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N910G.xml' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N910H.xml' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N910T.xml' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N910T3.xml' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N910U.xml' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N910W8.xml' => [ 'Samsung', 'Galaxy Note 4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N920P-Chameleon/latest' => [ 'Samsung', 'Galaxy Note 5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N920P-SPRINT/OGD.rdf' => [ 'Samsung', 'Galaxy Note 5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N920P-SPRINT/OI6.rdf' => [ 'Samsung', 'Galaxy Note 5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N920P-SPRINT/OJ6.rdf' => [ 'Samsung', 'Galaxy Note 5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N920P-SPRINT/OK3.rdf' => [ 'Samsung', 'Galaxy Note 5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N920P-SPRINT/PC3.rdf' => [ 'Samsung', 'Galaxy Note 5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N920P-SPRINT/PD1.rdf' => [ 'Samsung', 'Galaxy Note 5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N920P-SPRINT/PD2.rdf' => [ 'Samsung', 'Galaxy Note 5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N920G.xml' => [ 'Samsung', 'Galaxy Note 5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N920T.xml' => [ 'Samsung', 'Galaxy Note 5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-N5100.xml' => [ 'Samsung', 'Galaxy Note 8.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-N5110.xml' => [ 'Samsung', 'Galaxy Note 8.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-N5120.xml' => [ 'Samsung', 'Galaxy Note 8.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SGH-I467.xml' => [ 'Samsung', 'Galaxy Note 8.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SGH-I467M.xml' => [ 'Samsung', 'Galaxy Note 8.0', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-N915P-Chameleon/latest' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N915P-SPRINT/NJL.rdf' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N915P-SPRINT/NK1.rdf' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N915P-SPRINT/OC8.rdf' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N915P-SPRINT/OF6.rdf' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N915P-SPRINT/OFE.rdf' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N915P-SPRINT/OG1.rdf' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N915P-SPRINT/OJ5.rdf' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N915P-SPRINT/OK2.rdf' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N915P-SPRINT/PD1.rdf' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-N915P-SPRINT/PE2.rdf' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N9150.xml' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N915A.xml' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N915F.xml' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N915FY.xml' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N915G.xml' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N915S.xml' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N915T.xml' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-N915W8.xml' => [ 'Samsung', 'Galaxy Note Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-2011011301/MC2.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-2011011301/MK4.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-2011011301/OH3.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-Chameleon/LJC.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-Chameleon/MA7.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-Chameleon/MC2.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-Chameleon/MK4D.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-SPRINT/LJ1.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-SPRINT/LJ8.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-SPRINT/LJC.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-SPRINT/MA5.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-SPRINT/MA7.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-SPRINT/MC2.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-SPRINT/MK4.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-SPRINT/NE2.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-SPRINT/NK2.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900-SPRINT/OH3.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L900/MC2.rdf' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_N719_1_20121012.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/SCH-I605/SCH-I605.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-N7100.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-N7100BO.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-N7100T.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-N7105.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-N7105BO.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-N7105T.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/N7100T.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SAMSUNG-SGH-I317.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I317.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I317M.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T889.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T889V.xml' => [ 'Samsung', 'Galaxy Note II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SC-05D.xml' => [ 'Samsung', 'Galaxy Note LTE', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-P900.xml' => [ 'Samsung', 'Galaxy Note Pro', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P901.xml' => [ 'Samsung', 'Galaxy Note Pro', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P905.xml' => [ 'Samsung', 'Galaxy Note Pro', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P905M.xml' => [ 'Samsung', 'Galaxy Note Pro', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P907A.xml' => [ 'Samsung', 'Galaxy Note Pro', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/YP-GB70D.xml' => [ 'Samsung', 'Galaxy Player 70 Plus', 'Android', ], + 'http://wap.samsungmobile.com/uaprof/GT-S5300.xml' => [ 'Samsung', 'Galaxy Pocket', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5300B.xml' => [ 'Samsung', 'Galaxy Pocket', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5300L.xml' => [ 'Samsung', 'Galaxy Pocket', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5310.xml' => [ 'Samsung', 'Galaxy Pocket 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5310B.xml' => [ 'Samsung', 'Galaxy Pocket 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5310BO.xml' => [ 'Samsung', 'Galaxy Pocket 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5310L.xml' => [ 'Samsung', 'Galaxy Pocket 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5310T.xml' => [ 'Samsung', 'Galaxy Pocket 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5312.xml' => [ 'Samsung', 'Galaxy Pocket 2 Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5312B.xml' => [ 'Samsung', 'Galaxy Pocket 2 Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5302.xml' => [ 'Samsung', 'Galaxy Pocket Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5302B.xml' => [ 'Samsung', 'Galaxy Pocket Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5310G.xml' => [ 'Samsung', 'Galaxy Pocket Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5301.xml' => [ 'Samsung', 'Galaxy Pocket Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5301B.xml' => [ 'Samsung', 'Galaxy Pocket Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5301L.xml' => [ 'Samsung', 'Galaxy Pocket Plus', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I559_1_20101216.xml' => [ 'Samsung', 'Galaxy Pop', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/Galaxy Precedent/EJ06.rdf' => [ 'Samsung', 'Galaxy Precedent', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/Precedent/EJ06.rdf' => [ 'Samsung', 'Galaxy Precedent', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SCH-M828C/EH03.rdf' => [ 'Samsung', 'Galaxy Precedent', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SCH-M828C/EJ06.rdf' => [ 'Samsung', 'Galaxy Precedent', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SCH-M828C/FE16.rdf' => [ 'Samsung', 'Galaxy Precedent', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M820-BST/EE14.rdf' => [ 'Samsung', 'Galaxy Prevail', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M820-BST/EJ06.rdf' => [ 'Samsung', 'Galaxy Prevail', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M820-BST/FA19.rdf' => [ 'Samsung', 'Galaxy Prevail', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M820-BST/FF19.rdf' => [ 'Samsung', 'Galaxy Prevail', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SPH-M820-BST.xml' => [ 'Samsung', 'Galaxy Prevail', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B7510.xml' => [ 'Samsung', 'Galaxy Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B7510B.xml' => [ 'Samsung', 'Galaxy Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B7510L.xml' => [ 'Samsung', 'Galaxy Pro', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/i110/i110.xml' => [ 'Samsung', 'Galaxy Proclaim', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9103.xml' => [ 'Samsung', 'Galaxy R', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/Samsung/SPH-M950-VMUB/1.0/UAProf.xml' => [ 'Samsung', 'Galaxy Reverb', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M840-6100000231/OI1.rdf' => [ 'Samsung', 'Galaxy Ring', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M840-6102952738/OI1.rdf' => [ 'Samsung', 'Galaxy Ring', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M840-BOOST/MH5.rdf' => [ 'Samsung', 'Galaxy Ring', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M840-BOOST/NK1.rdf' => [ 'Samsung', 'Galaxy Ring', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M840-BOOST/OI1.rdf' => [ 'Samsung', 'Galaxy Ring', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M840-Chameleon/MH5.rdf' => [ 'Samsung', 'Galaxy Ring', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M840-VIRGIN/ME3.rdf' => [ 'Samsung', 'Galaxy Ring', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M840-VIRGIN/MH5.rdf' => [ 'Samsung', 'Galaxy Ring', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M840-VIRGIN/NK1.rdf' => [ 'Samsung', 'Galaxy Ring', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M840-VIRGIN/OI1.rdf' => [ 'Samsung', 'Galaxy Ring', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I547.xml' => [ 'Samsung', 'Galaxy Rugby Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I547C.xml' => [ 'Samsung', 'Galaxy Rugby Pro', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M830-2012042701/MD5.rdf' => [ 'Samsung', 'Galaxy Rush', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M830-2012042701/OI1.rdf' => [ 'Samsung', 'Galaxy Rush', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M830-BOOST/LK7.rdf' => [ 'Samsung', 'Galaxy Rush', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M830-BOOST/MB3.rdf' => [ 'Samsung', 'Galaxy Rush', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M830-BOOST/MD5.rdf' => [ 'Samsung', 'Galaxy Rush', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M830-Chameleon/MD5.rdf' => [ 'Samsung', 'Galaxy Rush', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_i809_1_20110307.xml' => [ 'Samsung', 'Galaxy S', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_i909_1_20100527.xml' => [ 'Samsung', 'Galaxy S', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/samsung-schi909.xml' => [ 'Samsung', 'Galaxy S', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9000.xml' => [ 'Samsung', 'Galaxy S', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i9000B.xml' => [ 'Samsung', 'Galaxy S', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9000BO.xml' => [ 'Samsung', 'Galaxy S', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9000M.xml' => [ 'Samsung', 'Galaxy S', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i9000T.rdf' => [ 'Samsung', 'Galaxy S', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9000T.xml' => [ 'Samsung', 'Galaxy S', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T959V.xml' => [ 'Samsung', 'Galaxy S 4G', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9070.xml' => [ 'Samsung', 'Galaxy S Advance', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9070BO.xml' => [ 'Samsung', 'Galaxy S Advance', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9070P.xml' => [ 'Samsung', 'Galaxy S Advance', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9070PBO.xml' => [ 'Samsung', 'Galaxy S Advance', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T769.xml' => [ 'Samsung', 'Galaxy S Blaze', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I919U_1_20120216.xml' => [ 'Samsung', 'Galaxy S Duos', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_i919_1_20110615.xml' => [ 'Samsung', 'Galaxy S Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7562.xml' => [ 'Samsung', 'Galaxy S Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7562L.xml' => [ 'Samsung', 'Galaxy S Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7582.xml' => [ 'Samsung', 'Galaxy S Duos 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7582L.xml' => [ 'Samsung', 'Galaxy S Duos 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7583T.xml' => [ 'Samsung', 'Galaxy S Duos 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G316HU.xml' => [ 'Samsung', 'Galaxy S Duos 3-VE', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T959D.xml' => [ 'Samsung', 'Galaxy S Fascinate 3G+', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T959P.xml' => [ 'Samsung', 'Galaxy S Fascinate 4G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/DPH-D710/L14.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/DPH-D710vmub/L14.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9100/LIB.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9100/LP7.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9100/LPA.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9100/LPB.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9100/LPF.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9100/LPS.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9100/LPX.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9100/LQ6.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9100/LS8.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SCH-R760X/B28.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/A10.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/B27.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/EG30.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/EK02.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/EL29.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/EL88.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/FD19.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/FD24.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/FD26.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/FE22.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/FF18.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/FH13.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/FI03.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/FI25.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/FI27.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/FL24.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/GA10.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/I23.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/K09.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/K23.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/L24.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/SPH-D710.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710/ZZ99.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710BST/C01.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710BST/FH29.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710BST/FI22.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710BST/FL24.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710VMUB/.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710VMUB/FL26.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-D710VMUBVMUB/.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9100.xml' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9100BO.xml' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9100G.xml' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9100M.xml' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9100P.xml' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9100T.xml' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9100THZ.xml' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SC-02C.xml' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I727R.xml' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I777.xml' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-S959G.xml' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T989.xml' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/soju.xml' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://­device.sprintpcs.com /­HTC/HTCPN702-SPRINT/­3046512.rdf' => [ 'Samsung', 'Galaxy S II', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_i929_1_20110901.xml' => [ 'Samsung', 'Galaxy S II Duos', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_i929_2_20120705.XML' => [ 'Samsung', 'Galaxy S II Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9210.xml' => [ 'Samsung', 'Galaxy S II LTE', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9210T.xml' => [ 'Samsung', 'Galaxy S II LTE', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SHV-E110S.xml' => [ 'Samsung', 'Galaxy S II LTE', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9105P.xml' => [ 'Samsung', 'Galaxy S II Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9105PBO.xml' => [ 'Samsung', 'Galaxy S II Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SAMSUNG-SGH-I727.xml' => [ 'Samsung', 'Galaxy S II Skyrocket', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I727.xml' => [ 'Samsung', 'Galaxy S II Skyrocket', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/soljus.xml' => [ 'Samsung', 'Galaxy S II Skyrocket', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I757.xml' => [ 'Samsung', 'Galaxy S II Skyrocket HD', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I757M.xml' => [ 'Samsung', 'Galaxy S II Skyrocket HD', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7273T.xml' => [ 'Samsung', 'Galaxy S II TV', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T989D.xml' => [ 'Samsung', 'Galaxy S II X', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9300/LF5.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9300/LH1.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9300/LI1.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9300/LI2.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9300/LIB.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9300/LID.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9300/LJ1.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9300/LK1.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9300/LL4.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9300/MA1.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9300/MB1.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9300/MB5.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SAMSUNG-SGH-I747/LK3.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SCH-S960L/MD6.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SHV-E210S/LH7.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710-2012083001/MG2.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710-BOOST/MG2.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710-BOOST/MK5.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710-BOOST/NDC.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710-BOOST/NJ3.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710-Chameleon/latest' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710-VIRGIN/MD7.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710-VIRGIN/MG2.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710-VIRGIN/MK5.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710-VIRGIN/NDC.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710-VIRGIN/NJ3.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710-VIRGIN/OJ1.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/LE5.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/LEN.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/LF9.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/LG2.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/LG8.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/LI3.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/LIF.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/LIH.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/LJ7.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/MA4.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/MA6.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/MB1.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/MB3.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/MC3.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/MD4.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/MK3.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/MK5.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/ND8.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/NJ2.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710/OH1.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-2012071301/OF2.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-2012071301/OH1.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-BOOST/NE5.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-BOOST/NF4.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-BOOST/OA3.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-BOOST/OF2.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-BOOST/OH1.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-SPRINT/NE5.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-SPRINT/OA3.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-SPRINT/OH1.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-SPRPRE/NF4.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-SPRPRE/OA3.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-SPRPRE/OF2.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L710T-VIRGIN/NF4.rdf' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I939D_1_20121031.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I939_1_20120309.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SCH-I939I_1_20140116.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/SCH-R530M.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/SAMSUNG-SCH-I939_CHN_BRI.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/GT-I9300/GT-I9300.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/r530/r530v1.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/SCH-I535/SCH-I535.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/SCH-I535PP/SCH-I535PP.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/SPH-L710/SPH-L710.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Galaxy S III.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9300.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9300BO.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9300I.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9300MIRS.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9300PCL.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9300T.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9301IBO.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9305.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9305BO.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9305T.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SAMSUNG-SGH-I747.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SCH-S968C.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I747.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I747M.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I748.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T999.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T999N.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T999V.xml' => [ 'Samsung', 'Galaxy S III', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8190.xml' => [ 'Samsung', 'Galaxy S III Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8190BO.xml' => [ 'Samsung', 'Galaxy S III Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8190L.xml' => [ 'Samsung', 'Galaxy S III Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8190N.xml' => [ 'Samsung', 'Galaxy S III Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8190NBO.xml' => [ 'Samsung', 'Galaxy S III Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8190T.xml' => [ 'Samsung', 'Galaxy S III Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G730A.xml' => [ 'Samsung', 'Galaxy S III Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G730W8.xml' => [ 'Samsung', 'Galaxy S III Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8200.xml' => [ 'Samsung', 'Galaxy S III Mini Value Edition', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8200L.xml' => [ 'Samsung', 'Galaxy S III Mini Value Edition', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8200N.xml' => [ 'Samsung', 'Galaxy S III Mini Value Edition', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G3812B.xml' => [ 'Samsung', 'Galaxy S III Slim', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9001.xml' => [ 'Samsung', 'Galaxy S Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9001BO.xml' => [ 'Samsung', 'Galaxy S Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T699.xml' => [ 'Samsung', 'Galaxy S Relay', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/YP-GI1.xml' => [ 'Samsung', 'Galaxy S WiFi 4.2', 'Android', ], + 'http://device.sprintpcs.com/Samsung/GT-I9500-Chameleon/NAE.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9500/GT-I9500.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/GT-I9505-Chameleon/NAE.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-SPRINT/NB4.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-11/NAE.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-11/OK3.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-2010122001/NAE.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-2011011301/OD2.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-2011011301/OH1.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-2012083001/NG2.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-500002419/NAE.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-Chameleon/latest' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-Chameleon/MCI.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-Chameleon/MDC.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-Chameleon/MDL.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-Chameleon/MF9.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-Chameleon/NG2.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-SPRINT/MDC.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-SPRINT/MDL.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-SPRINT/MF9.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-SPRINT/MJA.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-SPRINT/MK2.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-SPRINT/NA7.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-SPRINT/NAE.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-SPRINT/NG2.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-SPRINT/OD2.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-SPRINT/OH1.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720-SPRINT/OK3.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-BOOST/OK3.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-Chameleon/latest' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-Chameleon/NG5.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-MVNO/NC6.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-MVNO/NG5.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-MVNO/OA3.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-SPRINT/MK5.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-SPRINT/NAF.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-SPRINT/NC6.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-SPRINT/NG5.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-SPRINT/OA3.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-SPRINT/OD2.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-SPRINT/OF1.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-SPRINT/OH1.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L720T-SPRINT/OK3.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L72A-SPRINT/MF9.rdf' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/I9500-M3-D1-KK.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I959_1_20130319.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I959_2_20131021.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SCH-I959_1_20140317.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://pix.cspire.com/UA/profile/samsung/r970x/r970x.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://pix.cspire.com/UA/profile/samsung/SCH-L710/SCH-L710.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/GT-I9500/GT-I9500.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9500.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9500MIRS.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9500PCL.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9500PET.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9505.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9505BO.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9505G.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9505T.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9507.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I217.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I337.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I337M.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I337MBMC.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I337MPET.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I337Z.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-M919.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-M919N.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-M919V.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-M919VLTN.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-S975L.xml' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://www.cherrymobile.com.ph/Burst_2-0_UAprofile.XML' => [ 'Samsung', 'Galaxy S4', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9295.xml' => [ 'Samsung', 'Galaxy S4 Active', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9295BO.xml' => [ 'Samsung', 'Galaxy S4 Active', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SAMSUNG-SGH-I537.xml' => [ 'Samsung', 'Galaxy S4 Active', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I537.xml' => [ 'Samsung', 'Galaxy S4 Active', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9506.xml' => [ 'Samsung', 'Galaxy S4 Advance', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9506BO.xml' => [ 'Samsung', 'Galaxy S4 Advance', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9506T.xml' => [ 'Samsung', 'Galaxy S4 Advance', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L520-Chameleon/ME3.rdf' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L520-Chameleon/NA7.rdf' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L520-SPRINT/MI3.rdf' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L520-SPRINT/MK2.rdf' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L520-SPRINT/NA7.rdf' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L520-SPRINT/NE3.rdf' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L520-SPRINT/NJ1.rdf' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L520-SPRINT/OH1.rdf' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9190.xml' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9190PET.xml' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9195.xml' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9195BO.xml' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9195I.xml' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9195L.xml' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9195T.xml' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9197.xml' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I257.xml' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I257M.xml' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-S890L.xml' => [ 'Samsung', 'Galaxy S4 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9192.xml' => [ 'Samsung', 'Galaxy S4 Mini Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9515.xml' => [ 'Samsung', 'Galaxy S4 Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9515L.xml' => [ 'Samsung', 'Galaxy S4 Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9515LPET.xml' => [ 'Samsung', 'Galaxy S4 Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SAMSUNG-SM-C105A.xml' => [ 'Samsung', 'Galaxy S4 Zoom', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-C101.xml' => [ 'Samsung', 'Galaxy S4 Zoom', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-C105.xml' => [ 'Samsung', 'Galaxy S4 Zoom', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-C105A.xml' => [ 'Samsung', 'Galaxy S4 Zoom', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900A/SM-G900A.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-2012071301/PCA.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-BOOST/NE5.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-BOOST/OA6.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-BOOST/OD3.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-BOOST/OF6.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-BOOST/OG1.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-BOOST/OK4.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-BOOST/PCA.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-Chameleon/latest' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-Chameleon/NCB.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-MVNO/ND2.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-SPRINT/NCB.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-SPRINT/ND2.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-SPRINT/NE5.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-SPRINT/NK4.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-SPRINT/NKD.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-SPRINT/OA6.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-SPRINT/OD3.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-SPRINT/OF6.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-SPRINT/OG1.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-SPRINT/OK4.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-SPRINT/PCA.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-SPRINT/PE1.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-VIRGIN/NE5.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-VIRGIN/NK4.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-VIRGIN/OA6.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-VIRGIN/OD3.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-VIRGIN/OF6.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P-VIRGIN/OG1.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G900P/SM-G900P.rdf' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G9009D_1_20140227.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G9009W_1_20140415.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SM-G900MR621.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SAMSUNG-SM-G900A.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SCL23.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G9008W.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900A.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900AZ.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900F.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900FBO.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900FPCL.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900FPTR.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900H.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900I.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900J.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900L.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900M.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900MD.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900MPET.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900T.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900T1.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900T3.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900V.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900W8.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G900W8MTA.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G901F.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G906L.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G906S.xml' => [ 'Samsung', 'Galaxy S5', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G870A.xml' => [ 'Samsung', 'Galaxy S5 Active', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G870W.xml' => [ 'Samsung', 'Galaxy S5 Active', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G800A.xml' => [ 'Samsung', 'Galaxy S5 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G800F.xml' => [ 'Samsung', 'Galaxy S5 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G800H.xml' => [ 'Samsung', 'Galaxy S5 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G800M.xml' => [ 'Samsung', 'Galaxy S5 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G800MPET.xml' => [ 'Samsung', 'Galaxy S5 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G800Y.xml' => [ 'Samsung', 'Galaxy S5 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G903F.xml' => [ 'Samsung', 'Galaxy S5 Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G903M.xml' => [ 'Samsung', 'Galaxy S5 Neo', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G860P-Chameleon/latest' => [ 'Samsung', 'Galaxy S5 Sport', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G860P-SPRINT/latest' => [ 'Samsung', 'Galaxy S5 Sport', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G860P-SPRINT/NG2.rdf' => [ 'Samsung', 'Galaxy S5 Sport', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G860P-SPRINT/NG3.rdf' => [ 'Samsung', 'Galaxy S5 Sport', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G860P-SPRINT/NK2.rdf' => [ 'Samsung', 'Galaxy S5 Sport', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G860P-SPRINT/OC5.rdf' => [ 'Samsung', 'Galaxy S5 Sport', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G860P-SPRINT/OH1.rdf' => [ 'Samsung', 'Galaxy S5 Sport', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G860P-SPRINT/OK1.rdf' => [ 'Samsung', 'Galaxy S5 Sport', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G860P-SPRINT/PD1.rdf' => [ 'Samsung', 'Galaxy S5 Sport', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-BOOST/OCF.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-BOOST/OE2.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-BOOST/OI1.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-BOOST/PD2.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-Chameleon/latest' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-MVNO/OE2.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-SPRINT/OC9.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-SPRINT/OCF.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-SPRINT/OE2.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-SPRINT/OF7.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-SPRINT/OFE.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-SPRINT/OGA.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-SPRINT/OH1.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-SPRINT/OI1.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-SPRINT/OJ7.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-SPRINT/OL1.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-SPRINT/PB6.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-SPRINT/PD2.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G920P-SPRINT/PD3.rdf' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G9209_1_20150302.xml' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G920A.xml' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G920AZ.xml' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G920F.xml' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G920FPCL.xml' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G920FPTR.xml' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G920I.xml' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G920IPET.xml' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G920T.xml' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G920T1.xml' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G920W8.xml' => [ 'Samsung', 'Galaxy S6', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G890A.xml' => [ 'Samsung', 'Galaxy S6 Active', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-Chameleon/latest' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-SPRINT/OC9.rdf' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-SPRINT/OCF.rdf' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-SPRINT/OE2.rdf' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-SPRINT/OF7.rdf' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-SPRINT/OFE.rdf' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-SPRINT/OGA.rdf' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-SPRINT/OH1.rdf' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-SPRINT/OI1.rdf' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-SPRINT/OJ7.rdf' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-SPRINT/OL1.rdf' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-SPRINT/PB6.rdf' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-SPRINT/PD2.rdf' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G925P-SPRINT/PD3.rdf' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G925A.xml' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G925F.xml' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G925FPCL.xml' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G925FPTR.xml' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G925I.xml' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G925K.xml' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G925T.xml' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G925W8.xml' => [ 'Samsung', 'Galaxy S6 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G928P-SPRINT/OGD.rdf' => [ 'Samsung', 'Galaxy S6 Edge+', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G928P-SPRINT/OI6.rdf' => [ 'Samsung', 'Galaxy S6 Edge+', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G928P-SPRINT/OJ6.rdf' => [ 'Samsung', 'Galaxy S6 Edge+', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G928P-SPRINT/OK3.rdf' => [ 'Samsung', 'Galaxy S6 Edge+', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G928P-SPRINT/PC3.rdf' => [ 'Samsung', 'Galaxy S6 Edge+', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G928P-SPRINT/PD1.rdf' => [ 'Samsung', 'Galaxy S6 Edge+', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G928P-SPRINT/PD2.rdf' => [ 'Samsung', 'Galaxy S6 Edge+', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SAMSUNGUAPROFA.xml' => [ 'Samsung', 'Galaxy S6 Edge+', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G928F.xml' => [ 'Samsung', 'Galaxy S6 Edge+', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G928G.xml' => [ 'Samsung', 'Galaxy S6 Edge+', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SC-05G.xml' => [ 'Samsung', 'GALAXY S6 SC-05G', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G930P-Chameleon/latest' => [ 'Samsung', 'Galaxy S7', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G930P-SPRINT/PB5.rdf' => [ 'Samsung', 'Galaxy S7', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G930P-SPRINT/PC5.rdf' => [ 'Samsung', 'Galaxy S7', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G930P-SPRINT/PD3.rdf' => [ 'Samsung', 'Galaxy S7', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G930F.xml' => [ 'Samsung', 'Galaxy S7', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G935P-SPRINT/PB5.rdf' => [ 'Samsung', 'Galaxy S7 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G935P-SPRINT/PC5.rdf' => [ 'Samsung', 'Galaxy S7 Edge', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-G935P-SPRINT/PD3.rdf' => [ 'Samsung', 'Galaxy S7 Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SAMSUNGUAPROFC.xml' => [ 'Samsung', 'Galaxy S7 Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G935F.xml' => [ 'Samsung', 'Galaxy S7 Edge', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I9003.xml' => [ 'Samsung', 'Galaxy SL', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i9003L.xml' => [ 'Samsung', 'Galaxy SL', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i5700L.xml' => [ 'Samsung', 'Galaxy Spica', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i5700R.xml' => [ 'Samsung', 'Galaxy Spica', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5280.xml' => [ 'Samsung', 'Galaxy Star', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5282.xml' => [ 'Samsung', 'Galaxy Star', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7262.xml' => [ 'Samsung', 'Galaxy Star Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-S766C.xml' => [ 'Samsung', 'Galaxy Stardust', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/SCH-I200/SCH-I200.xml' => [ 'Samsung', 'Galaxy Stellar', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-P100/EA24.rdf' => [ 'Samsung', 'Galaxy Tab', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SPH-P100/EF17.rdf' => [ 'Samsung', 'Galaxy Tab', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-p1000.xml' => [ 'Samsung', 'Galaxy Tab', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P1000L.xml' => [ 'Samsung', 'Galaxy Tab', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P1000M.xml' => [ 'Samsung', 'Galaxy Tab', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P1000N.xml' => [ 'Samsung', 'Galaxy Tab', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P1000R.xml' => [ 'Samsung', 'Galaxy Tab', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P1000T.xml' => [ 'Samsung', 'Galaxy Tab', 'Android', DeviceType::TABLET ], + 'http://uaprof.vtext.com/sam/i905/i905.xml' => [ 'Samsung', 'Galaxy Tab 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P7500.xml' => [ 'Samsung', 'Galaxy Tab 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P7500BO.xml' => [ 'Samsung', 'Galaxy Tab 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P7500D.xml' => [ 'Samsung', 'Galaxy Tab 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P7500M.xml' => [ 'Samsung', 'Galaxy Tab 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P7500R.xml' => [ 'Samsung', 'Galaxy Tab 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P7500V.xml' => [ 'Samsung', 'Galaxy Tab 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P7510.xml' => [ 'Samsung', 'Galaxy Tab 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P7501BO.xml' => [ 'Samsung', 'Galaxy Tab 10.1N', 'Android', DeviceType::TABLET ], + 'http://uaprof.vtext.com/sam/SCH-I915/SCH-I915.xml' => [ 'Samsung', 'Galaxy Tab 2 (10.1)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P5100.xml' => [ 'Samsung', 'Galaxy Tab 2 (10.1)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P5100BO.xml' => [ 'Samsung', 'Galaxy Tab 2 (10.1)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P5110.xml' => [ 'Samsung', 'Galaxy Tab 2 (10.1)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P5113.xml' => [ 'Samsung', 'Galaxy Tab 2 (10.1)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SGH-I497.xml' => [ 'Samsung', 'Galaxy Tab 2 (10.1)', 'Android', DeviceType::TABLET ], + 'http://uaprof.vtext.com/sam/SCH-i705/SCH-i705.xml' => [ 'Samsung', 'Galaxy Tab 2 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P3100.xml' => [ 'Samsung', 'Galaxy Tab 2 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P3100B.xml' => [ 'Samsung', 'Galaxy Tab 2 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P3105.xml' => [ 'Samsung', 'Galaxy Tab 2 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P3110.xml' => [ 'Samsung', 'Galaxy Tab 2 (7.0)', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SPH-P500/LI6.rdf' => [ 'Samsung', 'Galaxy Tab 2 10.1', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SPH-P500/MB3.rdf' => [ 'Samsung', 'Galaxy Tab 2 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P5200.xml' => [ 'Samsung', 'Galaxy Tab 3 (10.1)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P5210.xml' => [ 'Samsung', 'Galaxy Tab 3 (10.1)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P5220.xml' => [ 'Samsung', 'Galaxy Tab 3 (10.1)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P5220BO.xml' => [ 'Samsung', 'Galaxy Tab 3 (10.1)', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T217S-Chameleon/latest' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T217S-Chameleon/NB8.rdf' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T217S-SPRINT/MH9.rdf' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T217S-SPRINT/NB8.rdf' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T217S-SPRINT/NE7.rdf' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T217S-SPRINT/NH4.rdf' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T217S-SPRINT/NK1.rdf' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T217S-SPRINT/OH1.rdf' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T210.xml' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T211.xml' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T211M.xml' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T215.xml' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T217A.xml' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T217T.xml' => [ 'Samsung', 'Galaxy Tab 3 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T310.xml' => [ 'Samsung', 'Galaxy Tab 3 (8.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T311.xml' => [ 'Samsung', 'Galaxy Tab 3 (8.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T315.xml' => [ 'Samsung', 'Galaxy Tab 3 (8.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T315BO.xml' => [ 'Samsung', 'Galaxy Tab 3 (8.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T315T.xml' => [ 'Samsung', 'Galaxy Tab 3 (8.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T110.xml' => [ 'Samsung', 'Galaxy Tab 3 Lite', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T111.xml' => [ 'Samsung', 'Galaxy Tab 3 Lite', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T111BO.xml' => [ 'Samsung', 'Galaxy Tab 3 Lite', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T111M.xml' => [ 'Samsung', 'Galaxy Tab 3 Lite', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-T535.xml' => [ 'Samsung', 'Galaxy Tab 4 (10.1)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T530.xml' => [ 'Samsung', 'Galaxy Tab 4 (10.1)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T531.xml' => [ 'Samsung', 'Galaxy Tab 4 (10.1)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T535.xml' => [ 'Samsung', 'Galaxy Tab 4 (10.1)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T535BO.xml' => [ 'Samsung', 'Galaxy Tab 4 (10.1)', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T237P-SPRINT/NG3.rdf' => [ 'Samsung', 'Galaxy Tab 4 (7.0)', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T237P-SPRINT/NL1.rdf' => [ 'Samsung', 'Galaxy Tab 4 (7.0)', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T237P-SPRINT/OH7.rdf' => [ 'Samsung', 'Galaxy Tab 4 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T230.xml' => [ 'Samsung', 'Galaxy Tab 4 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T230NT.xml' => [ 'Samsung', 'Galaxy Tab 4 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T231.xml' => [ 'Samsung', 'Galaxy Tab 4 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T235.xml' => [ 'Samsung', 'Galaxy Tab 4 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T235BO.xml' => [ 'Samsung', 'Galaxy Tab 4 (7.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T330.xml' => [ 'Samsung', 'Galaxy Tab 4 (8.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T331.xml' => [ 'Samsung', 'Galaxy Tab 4 (8.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T335.xml' => [ 'Samsung', 'Galaxy Tab 4 (8.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T335BO.xml' => [ 'Samsung', 'Galaxy Tab 4 (8.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T337A.xml' => [ 'Samsung', 'Galaxy Tab 4 (8.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T337T.xml' => [ 'Samsung', 'Galaxy Tab 4 (8.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T239.xml' => [ 'Samsung', 'Galaxy Tab 4 Lite', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T239M.xml' => [ 'Samsung', 'Galaxy Tab 4 Lite', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SGH-I987.xml' => [ 'Samsung', 'Galaxy Tab 7.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SGH-T849.xml' => [ 'Samsung', 'Galaxy Tab 7.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P6200.xml' => [ 'Samsung', 'Galaxy Tab 7.0 Plus', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P6200L.xml' => [ 'Samsung', 'Galaxy Tab 7.0 Plus', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P6210.xml' => [ 'Samsung', 'Galaxy Tab 7.0 Plus', 'Android', DeviceType::TABLET ], + 'http://uaprof.vtext.com/sam/i815/i815.xml' => [ 'Samsung', 'Galaxy Tab 7.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P6800.xml' => [ 'Samsung', 'Galaxy Tab 7.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P6810.xml' => [ 'Samsung', 'Galaxy Tab 7.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SHV-E150S.xml' => [ 'Samsung', 'Galaxy Tab 7.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P7300.xml' => [ 'Samsung', 'Galaxy Tab 8.9', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P7300B.xml' => [ 'Samsung', 'Galaxy Tab 8.9', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P7310.xml' => [ 'Samsung', 'Galaxy Tab 8.9', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P7320.xml' => [ 'Samsung', 'Galaxy Tab 8.9', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-P7320T.xml' => [ 'Samsung', 'Galaxy Tab 8.9', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SGH-I957.xml' => [ 'Samsung', 'Galaxy Tab 8.9', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SGH-I957D.xml' => [ 'Samsung', 'Galaxy Tab 8.9', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SGH-I957M.xml' => [ 'Samsung', 'Galaxy Tab 8.9', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SGH-I957R.xml' => [ 'Samsung', 'Galaxy Tab 8.9', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SHV-E140K.xml' => [ 'Samsung', 'Galaxy Tab 8.9', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SHV-E140L.xml' => [ 'Samsung', 'Galaxy Tab 8.9', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SHV-E140S.xml' => [ 'Samsung', 'Galaxy Tab 8.9', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T350.xml' => [ 'Samsung', 'Galaxy Tab A 8.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T355Y.xml' => [ 'Samsung', 'Galaxy Tab A 8.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T357T.xml' => [ 'Samsung', 'Galaxy Tab A 8.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T357W.xml' => [ 'Samsung', 'Galaxy Tab A 8.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T365Y.xml' => [ 'Samsung', 'Galaxy Tab A 9.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T550.xml' => [ 'Samsung', 'Galaxy Tab A 9.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P350.xml' => [ 'Samsung', 'Galaxy Tab A Plus 8.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P355.xml' => [ 'Samsung', 'Galaxy Tab A Plus 8.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P550.xml' => [ 'Samsung', 'Galaxy Tab A Plus 9.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P555.xml' => [ 'Samsung', 'Galaxy Tab A Plus 9.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-P555M.xml' => [ 'Samsung', 'Galaxy Tab A Plus 9.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T365.xml' => [ 'Samsung', 'Galaxy Tab Active (8.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T365M.xml' => [ 'Samsung', 'Galaxy Tab Active (8.0)', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T555.xml' => [ 'Samsung', 'Galaxy Tab AL', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T285.xml' => [ 'Samsung', 'Galaxy Tab E 7.0', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T377P-SPRINT/OJ5.rdf' => [ 'Samsung', 'Galaxy Tab E 8.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T520.xml' => [ 'Samsung', 'Galaxy Tab Pro 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T525.xml' => [ 'Samsung', 'Galaxy Tab Pro 10.1', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T320.xml' => [ 'Samsung', 'Galaxy Tab Pro 8.4', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T325.xml' => [ 'Samsung', 'Galaxy Tab Pro 8.4', 'Android', DeviceType::TABLET ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-T2519_1_20140428.xml' => [ 'Samsung', 'Galaxy Tab Q', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SM-T807P-Chameleon/latest' => [ 'Samsung', 'Galaxy Tab S 10.5', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T807P-SPRINT/NK1.rdf' => [ 'Samsung', 'Galaxy Tab S 10.5', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T807P-SPRINT/OH1.rdf' => [ 'Samsung', 'Galaxy Tab S 10.5', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T807P-SPRINT/OJ4.rdf' => [ 'Samsung', 'Galaxy Tab S 10.5', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T537A.xml' => [ 'Samsung', 'Galaxy Tab S 10.5', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T800.xml' => [ 'Samsung', 'Galaxy Tab S 10.5', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T805.xml' => [ 'Samsung', 'Galaxy Tab S 10.5', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T805M.xml' => [ 'Samsung', 'Galaxy Tab S 10.5', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T805W.xml' => [ 'Samsung', 'Galaxy Tab S 10.5', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T805Y.xml' => [ 'Samsung', 'Galaxy Tab S 10.5', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T807A.xml' => [ 'Samsung', 'Galaxy Tab S 10.5', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T807T.xml' => [ 'Samsung', 'Galaxy Tab S 10.5', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T700.xml' => [ 'Samsung', 'Galaxy Tab S 8.4', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T705.xml' => [ 'Samsung', 'Galaxy Tab S 8.4', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T705M.xml' => [ 'Samsung', 'Galaxy Tab S 8.4', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T705W.xml' => [ 'Samsung', 'Galaxy Tab S 8.4', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T705Y.xml' => [ 'Samsung', 'Galaxy Tab S 8.4', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T707A.xml' => [ 'Samsung', 'Galaxy Tab S 8.4', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T710.xml' => [ 'Samsung', 'Galaxy Tab S2 8.0', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T715Y.xml' => [ 'Samsung', 'Galaxy Tab S2 8.0', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T817P-Chameleon/latest' => [ 'Samsung', 'Galaxy Tab S2 9.7', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T817P-SPRINT/OH6.rdf' => [ 'Samsung', 'Galaxy Tab S2 9.7', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T817P-SPRINT/OJ5.rdf' => [ 'Samsung', 'Galaxy Tab S2 9.7', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/Samsung/SM-T817P-SPRINT/OL1.rdf' => [ 'Samsung', 'Galaxy Tab S2 9.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T810.xml' => [ 'Samsung', 'Galaxy Tab S2 9.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T815.xml' => [ 'Samsung', 'Galaxy Tab S2 9.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T815Y.xml' => [ 'Samsung', 'Galaxy Tab S2 9.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T817A.xml' => [ 'Samsung', 'Galaxy Tab S2 9.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T817T.xml' => [ 'Samsung', 'Galaxy Tab S2 9.7', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/SM-T817W.xml' => [ 'Samsung', 'Galaxy Tab S2 9.7', 'Android', DeviceType::TABLET ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I719_1_20120413.xml' => [ 'Samsung', 'Galaxy Trend', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7392.xml' => [ 'Samsung', 'Galaxy Trend', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7392L.xml' => [ 'Samsung', 'Galaxy Trend', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SCH-I699I.xml' => [ 'Samsung', 'Galaxy Trend', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SCH-I699I_1_20130805.xml' => [ 'Samsung', 'Galaxy Trend', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G3509_1_20130816.xml' => [ 'Samsung', 'Galaxy Trend 3', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G3509_2_20130816.xml' => [ 'Samsung', 'Galaxy Trend 3', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SM-G3509I_1_20131030.xml' => [ 'Samsung', 'Galaxy Trend 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G3502L.xml' => [ 'Samsung', 'Galaxy Trend 3', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G3502T.xml' => [ 'Samsung', 'Galaxy Trend 3', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I739_1_20130122.XML' => [ 'Samsung', 'Galaxy Trend II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7390L.xml' => [ 'Samsung', 'Galaxy Trend Lite', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7580.xml' => [ 'Samsung', 'Galaxy Trend Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7580BO.xml' => [ 'Samsung', 'Galaxy Trend Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7580L.xml' => [ 'Samsung', 'Galaxy Trend Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7580LPET.xml' => [ 'Samsung', 'Galaxy Trend Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/`per`s.xml' => [ 'Samsung', 'Galaxy Trend Plus', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L300-2012083001/MG5.rdf' => [ 'Samsung', 'Galaxy Victory 4G LTE', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L300-Chameleon/LK5.rdf' => [ 'Samsung', 'Galaxy Victory 4G LTE', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L300-Chameleon/MG5.rdf' => [ 'Samsung', 'Galaxy Victory 4G LTE', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L300-VIRGIN/MA8.rdf' => [ 'Samsung', 'Galaxy Victory 4G LTE', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L300-VIRGIN/MC1.rdf' => [ 'Samsung', 'Galaxy Victory 4G LTE', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L300-VIRGIN/MG5.rdf' => [ 'Samsung', 'Galaxy Victory 4G LTE', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L300-VIRGIN/ND4.rdf' => [ 'Samsung', 'Galaxy Victory 4G LTE', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L300/LH1.rdf' => [ 'Samsung', 'Galaxy Victory 4G LTE', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L300/LI3.rdf' => [ 'Samsung', 'Galaxy Victory 4G LTE', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L300/LJ9.rdf' => [ 'Samsung', 'Galaxy Victory 4G LTE', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L300/MC1.rdf' => [ 'Samsung', 'Galaxy Victory 4G LTE', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-L300/ND4.rdf' => [ 'Samsung', 'Galaxy Victory 4G LTE', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-T670.xml' => [ 'Samsung', 'Galaxy View', 'Android', DeviceType::TABLET ], + 'http://wap.samsungmobile.com/uaprof/GT-I8150.xml' => [ 'Samsung', 'Galaxy W', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8150B.xml' => [ 'Samsung', 'Galaxy W', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8150T.xml' => [ 'Samsung', 'Galaxy W', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-W2014_1_20130916.xml' => [ 'Samsung', 'Galaxy W2014', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I869_1_20130415.xml' => [ 'Samsung', 'Galaxy Win', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8550L.xml' => [ 'Samsung', 'Galaxy Win', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8552.xml' => [ 'Samsung', 'Galaxy Win', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8552B.xml' => [ 'Samsung', 'Galaxy Win', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G360BT.xml' => [ 'Samsung', 'Galaxy Win 2 Duos TV', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SM-G3819D_1_20130821.xml' => [ 'Samsung', 'Galaxy Win Pro', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/SAMSUNG-SM-G3819_CHN_BRI.xml' => [ 'Samsung', 'Galaxy Win Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5690.xml' => [ 'Samsung', 'Galaxy Xcover', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5690BO.xml' => [ 'Samsung', 'Galaxy Xcover', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5690L.xml' => [ 'Samsung', 'Galaxy Xcover', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5690M.xml' => [ 'Samsung', 'Galaxy Xcover', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5690R.xml' => [ 'Samsung', 'Galaxy Xcover', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5698.xml' => [ 'Samsung', 'Galaxy Xcover', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7710.xml' => [ 'Samsung', 'Galaxy Xcover 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7710BO.xml' => [ 'Samsung', 'Galaxy Xcover 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7710L.xml' => [ 'Samsung', 'Galaxy Xcover 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G388F.xml' => [ 'Samsung', 'Galaxy Xcover 3', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I509_1_20101216.xml' => [ 'Samsung', 'Galaxy Y', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/SAMSUNG-SCH-I509_CHN_BRI.xml' => [ 'Samsung', 'Galaxy Y', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5360.xml' => [ 'Samsung', 'Galaxy Y', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5360B.xml' => [ 'Samsung', 'Galaxy Y', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5360BO.xml' => [ 'Samsung', 'Galaxy Y', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5360L.xml' => [ 'Samsung', 'Galaxy Y', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5360T.xml' => [ 'Samsung', 'Galaxy Y', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5363.xml' => [ 'Samsung', 'Galaxy Y', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5369.xml' => [ 'Samsung', 'Galaxy Y', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Hamitsuka.xml' => [ 'Samsung', 'Galaxy Y', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6102.xml' => [ 'Samsung', 'Galaxy Y Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6102B.xml' => [ 'Samsung', 'Galaxy Y Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6102E.xml' => [ 'Samsung', 'Galaxy Y Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6313T.xml' => [ 'Samsung', 'Galaxy Y Duos TV', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5303B.xml' => [ 'Samsung', 'Galaxy Y Plus', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5510.xml' => [ 'Samsung', 'Galaxy Y Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5510B.xml' => [ 'Samsung', 'Galaxy Y Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5510BO.xml' => [ 'Samsung', 'Galaxy Y Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5510BV.xml' => [ 'Samsung', 'Galaxy Y Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5510L.xml' => [ 'Samsung', 'Galaxy Y Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5512.xml' => [ 'Samsung', 'Galaxy Y Pro Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5512B.xml' => [ 'Samsung', 'Galaxy Y Pro Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5367.xml' => [ 'Samsung', 'Galaxy Y TV', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6310.xml' => [ 'Samsung', 'Galaxy Young', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6310B.xml' => [ 'Samsung', 'Galaxy Young', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6310BO.xml' => [ 'Samsung', 'Galaxy Young', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6310L.xml' => [ 'Samsung', 'Galaxy Young', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6310N.xml' => [ 'Samsung', 'Galaxy Young', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6310NBO.xml' => [ 'Samsung', 'Galaxy Young', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6310T.xml' => [ 'Samsung', 'Galaxy Young', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G130BT.xml' => [ 'Samsung', 'Galaxy Young 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G130BU.xml' => [ 'Samsung', 'Galaxy Young 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G130H.xml' => [ 'Samsung', 'Galaxy Young 2', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G130HN.xml' => [ 'Samsung', 'Galaxy Young 2 Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G130HNBO.xml' => [ 'Samsung', 'Galaxy Young 2 Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-G130M.xml' => [ 'Samsung', 'Galaxy Young 2 Duos', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6293T.xml' => [ 'Samsung', 'Galaxy Young Plus', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/i100/i100v1.xml' => [ 'Samsung', 'Gem', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B7620.xml' => [ 'Samsung', 'Giorgio Armani', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/U700VUAProf2G.rdf' => [ 'Samsung', 'Gleam', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T459.xml' => [ 'Samsung', 'Gravity', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T469.xml' => [ 'Samsung', 'Gravity 2', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T289.xml' => [ 'Samsung', 'Gravity Q', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T589.xml' => [ 'Samsung', 'Gravity Smart', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T589R.xml' => [ 'Samsung', 'Gravity Smart', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T589W.xml' => [ 'Samsung', 'Gravity Smart', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B2100i.xml' => [ 'Samsung', 'GT-B2100i', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5210U-3G_10.xml' => [ 'Samsung', 'GT-B5210', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B5210U_10.xml' => [ 'Samsung', 'GT-B5210', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3010UAProf.xml' => [ 'Samsung', 'GT-C3010', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3011.xml' => [ 'Samsung', 'GT-C3011', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3060UAProf.xml' => [ 'Samsung', 'GT-C3060', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3230_2G.rdf' => [ 'Samsung', 'GT-C3230', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3313TBR.xml' => [ 'Samsung', 'GT-C3313', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3322.xml' => [ 'Samsung', 'GT-C3322 Duos', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3322iUAProf.xml' => [ 'Samsung', 'GT-C3322 Duos', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3380UAProf.xml' => [ 'Samsung', 'GT-C3380', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3520.xml' => [ 'Samsung', 'GT-C3520', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3530UAProf.xml' => [ 'Samsung', 'GT-C3530', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3560UAProf.xml' => [ 'Samsung', 'GT-C3560', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3590UAProf.xml' => [ 'Samsung', 'GT-C3590', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3592UAProf.xml' => [ 'Samsung', 'GT-C3592', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3595_3G.rdf' => [ 'Samsung', 'GT-C3595', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3750UAProf.xml' => [ 'Samsung', 'GT-C3750', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3752UAProf.xml' => [ 'Samsung', 'GT-C3752', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C5130UAProf.xml' => [ 'Samsung', 'GT-C5130', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C5510UAProf.xml' => [ 'Samsung', 'GT-C5510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C5510UAProf3G.xml' => [ 'Samsung', 'GT-C5510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2152.xml' => [ 'Samsung', 'GT-E2152 Duos', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2200.xml' => [ 'Samsung', 'GT-E2200', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2230UAProf.xml' => [ 'Samsung', 'GT-E2230', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2232UAProf.xml' => [ 'Samsung', 'GT-E2232', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2330BUAProf.xml' => [ 'Samsung', 'GT-E2330', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2330UAProf.xml' => [ 'Samsung', 'GT-E2330', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2350BUAProf.xml' => [ 'Samsung', 'GT-E2350', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2530UAProf.xml' => [ 'Samsung', 'GT-E2530', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2600UAProf.xml' => [ 'Samsung', 'GT-E2600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E3300L_3G.rdf' => [ 'Samsung', 'GT-E3300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I6410UAProf3G.rdf' => [ 'Samsung', 'GT-I6410 M1', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8240.xml' => [ 'Samsung', 'GT-I8240', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I8245.xml' => [ 'Samsung', 'GT-I8245', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3550UAProf.xml' => [ 'Samsung', 'GT-S3550', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3600i.xml' => [ 'Samsung', 'GT-S3600i', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3970C_3G.rdf' => [ 'Samsung', 'GT-S3970', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5500UAProf.xml' => [ 'Samsung', 'GT-S5500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5500UAProf3G.xml' => [ 'Samsung', 'GT-S5500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5503UAProf.xml' => [ 'Samsung', 'GT-S5503', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5503UAProf3G.xml' => [ 'Samsung', 'GT-S5503', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5510UAProf.xml' => [ 'Samsung', 'GT-S5510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5510UAProf3G.xml' => [ 'Samsung', 'GT-S5510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5611.xml' => [ 'Samsung', 'GT-S5611', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5680_3G.rdf' => [ 'Samsung', 'GT-S5680', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6700TUAProf.xml' => [ 'Samsung', 'GT-S6700', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6700UAProf.xml' => [ 'Samsung', 'GT-S6700', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S6700UAProf3G.xml' => [ 'Samsung', 'GT-S6700', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E1282T.xml' => [ 'Samsung', 'Guru', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I8320UAProf3G.rdf' => [ 'Samsung', 'H1', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M630/BI09.rdf' => [ 'Samsung', 'Highnote', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/samsung/r500/r500.xml' => [ 'Samsung', 'Hue', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-i637.xml' => [ 'Samsung', 'i637 Jack', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I7110-3G.xml' => [ 'Samsung', 'i7110', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I7110.xml' => [ 'Samsung', 'i7110', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I7110C_10.xml' => [ 'Samsung', 'i7110', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I9100.xml' => [ 'Samsung', 'Infuse 4G', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I997.xml' => [ 'Samsung', 'Infuse 4G', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I8510-3G.xml' => [ 'Samsung', 'INNOV8', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I8510.xml' => [ 'Samsung', 'INNOV8', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I8510C_10.xml' => [ 'Samsung', 'INNOV8', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I8510H-3G_10.xml' => [ 'Samsung', 'INNOV8', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I8510H_10.xml' => [ 'Samsung', 'INNOV8', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I8510T-3G_10.xml' => [ 'Samsung', 'INNOV8', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I8510T_10.xml' => [ 'Samsung', 'INNOV8', 'Series60', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M800/BE09.rdf' => [ 'Samsung', 'Instinct', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M800/BF30.rdf' => [ 'Samsung', 'Instinct', null, DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/Samsung/SPH-M910-VMUB/VMU_M910_UAProf.xml' => [ 'Samsung', 'Intercept', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/Samsung/SPH-M910/DI06/VMU_M910_UAProf.xml' => [ 'Samsung', 'Intercept', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/S8000.rdf' => [ 'Samsung', 'Jet', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/S8000OP.rdf' => [ 'Samsung', 'Jet', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/S8000_3G.rdf' => [ 'Samsung', 'Jet', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/S8003.rdf' => [ 'Samsung', 'Jet', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/S8003_3G.rdf' => [ 'Samsung', 'Jet', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S8000C.rdf' => [ 'Samsung', 'Jet S8000', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T739.xml' => [ 'Samsung', 'Katalyst', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-M5650.rdf' => [ 'Samsung', 'Lindy', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-J800_3G.rdf' => [ 'Samsung', 'Luxe', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/m2510_10.xml' => [ 'Samsung', 'M2510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/M3200.xml' => [ 'Samsung', 'M3200', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/M3510.xml' => [ 'Samsung', 'M3510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/M7500UAProf.xml' => [ 'Samsung', 'M7500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/M7500UAProf3G.xml' => [ 'Samsung', 'M7500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/M7600UAProf.xml' => [ 'Samsung', 'M7600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/M7600UAProf3G.xml' => [ 'Samsung', 'M7600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/M7603UAProf.xml' => [ 'Samsung', 'M7603', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/M7603UAProf3G.xml' => [ 'Samsung', 'M7603', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/M8000-3G.xml' => [ 'Samsung', 'M8000', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/M8000.xml' => [ 'Samsung', 'M8000', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5560.rdf' => [ 'Samsung', 'Marvel', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5560i.rdf' => [ 'Samsung', 'Marvel', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5560i.xml' => [ 'Samsung', 'Marvel', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5560LTCE.xml' => [ 'Samsung', 'Marvel', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5560_3G.rdf' => [ 'Samsung', 'Marvel', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T929.xml' => [ 'Samsung', 'Memoir', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2202.xml' => [ 'Samsung', 'Metro', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/S3310.rdf' => [ 'Samsung', 'Metro', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-E2252.xml' => [ 'Samsung', 'Metro 2252', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-B312EUAProf.xml' => [ 'Samsung', 'Metro 312', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-B313E.xml' => [ 'Samsung', 'Metro 313', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-B350E.xml' => [ 'Samsung', 'Metro 350', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-B360E.xml' => [ 'Samsung', 'Metro 360', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-i780.xml' => [ 'Samsung', 'Mirage', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-i780ORANGE.xml' => [ 'Samsung', 'Mirage', 'Windows Mobile', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M900/CJ05.rdf' => [ 'Samsung', 'Moment', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M900/DE03.rdf' => [ 'Samsung', 'Moment', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M900/DI06.rdf' => [ 'Samsung', 'Moment', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M900/DJ07.rdf' => [ 'Samsung', 'Moment', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/Samsung/SPH-M390-PLB/1.0/UAProf.xml' => [ 'Samsung', 'Montage', 'Brew', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5620_2G.rdf' => [ 'Samsung', 'Monte', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5620_3G.rdf' => [ 'Samsung', 'Monte', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3200BR.xml' => [ 'Samsung', 'Monte Bar', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3200UAProf.xml' => [ 'Samsung', 'Monte Bar', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3310iUAProf.xml' => [ 'Samsung', 'Monte Bar', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/sch_s239.xml' => [ 'Samsung', 'mPower TV', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/samsung/u706/u706.xml' => [ 'Samsung', 'Muse', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/samsung/spha523-0.rdf' => [ 'Samsung', 'Mysto', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/sojua.xml' => [ 'Samsung', 'Nexus S', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5520_3G.rdf' => [ 'Samsung', 'NORi', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-i900.xml' => [ 'Samsung', 'Omnia', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-i900V.xml' => [ 'Samsung', 'Omnia', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-i908_OPEN.XML' => [ 'Samsung', 'Omnia Deluxe', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I8910-3G.xml' => [ 'Samsung', 'Omnia HD', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I8910.xml' => [ 'Samsung', 'Omnia HD', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-i8000.xml' => [ 'Samsung', 'Omnia II', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I8315UAProf3G.rdf' => [ 'Samsung', 'Omnia W', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-M8800MR.rdf' => [ 'Samsung', 'Pixon', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-M8800MR_3G.rdf' => [ 'Samsung', 'Pixon', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-M8800_3G.rdf' => [ 'Samsung', 'Pixon', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-M8800.rdf' => [ 'Samsung', 'Pixon', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-M8800_3G.rdf' => [ 'Samsung', 'Pixon', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5600.rdf' => [ 'Samsung', 'Preston', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5600LUAProf.xml' => [ 'Samsung', 'Preston', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5600_3G.rdf' => [ 'Samsung', 'Preston', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5610_2G.rdf' => [ 'Samsung', 'Primo', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5610_3G.rdf' => [ 'Samsung', 'Primo', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SCH_W279.xml' => [ 'Samsung', 'Primo Duos', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A767.xml' => [ 'Samsung', 'Propel', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M540/BI09.rdf' => [ 'Samsung', 'Rant', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/samsung/sphm540-0.rdf' => [ 'Samsung', 'Rant', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sch/u820/u820.xml' => [ 'Samsung', 'Reality', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M580/EF27.rdf' => [ 'Samsung', 'Replenish', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M580/FA19.rdf' => [ 'Samsung', 'Replenish', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M580BST/FB03.rdf' => [ 'Samsung', 'Replenish', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3800UAProf.xml' => [ 'Samsung', 'Rex 70', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3800WUAProf.xml' => [ 'Samsung', 'Rex 70', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S3802UAProf.xml' => [ 'Samsung', 'Rex 70 Duos', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5220RUAProf.xml' => [ 'Samsung', 'Rex 80', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5222RUAProf.xml' => [ 'Samsung', 'Rex 80 Duos', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-B780AUAProf.xml' => [ 'Samsung', 'Rugby 4', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-B780WUAProf.xml' => [ 'Samsung', 'Rugby 4', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A997.xml' => [ 'Samsung', 'Rugby III', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I847.xml' => [ 'Samsung', 'Rugby Smart', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/s3500_10.xml' => [ 'Samsung', 'S3500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/S3600.xml' => [ 'Samsung', 'S3600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-S425G.xml' => [ 'Samsung', 'S425G', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/S7330UAProf.xml' => [ 'Samsung', 'S7330', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/S7330UAProf3G.xml' => [ 'Samsung', 'S7330', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/S7350UAProf3G.xml' => [ 'Samsung', 'S7350 Ultra S', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/S9500UAProf.xml' => [ 'Samsung', 'S9500', null, DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I779_1_20110615.xml' => [ 'Samsung', 'Saga', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I779_1_20120220.xml' => [ 'Samsung', 'Saga', 'Android', DeviceType::MOBILE ], + 'http://device.telusmobility.com/samsung/scha600.rdf' => [ 'Samsung', 'SCH-A600', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/samsung/a645/a645.xml' => [ 'Samsung', 'SCH-A645', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/samsung/scha650.rdf' => [ 'Samsung', 'SCH-A650', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/samsung/scha670.rdf' => [ 'Samsung', 'SCH-A670', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/samsung/scha870-0.rdf' => [ 'Samsung', 'SCH-A870', null, DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_I339_1_20120220.xml' => [ 'Samsung', 'SCH-I339', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SCH-I629_1_20131010.xml' => [ 'Samsung', 'SCH-I629', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/SCH-I665/SCH-I665.xml' => [ 'Samsung', 'SCH-I665', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_SCH-I679_1_20131211.xml' => [ 'Samsung', 'SCH-I679', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sch/n330/n330v1.xml' => [ 'Samsung', 'SCH-N330', null, DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/sam-r450.xml' => [ 'Samsung', 'SCH-R450', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/Samsung_SCH-R610.rdf' => [ 'Samsung', 'SCH-R610', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SCH-R740C.xml' => [ 'Samsung', 'SCH-R740', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_S559_1_20100515.xml' => [ 'Samsung', 'SCH-S559', 'Brew', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_S579_1_20100427.xml' => [ 'Samsung', 'SCH-S579', 'Brew', DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/samsung/u340/u340.xml' => [ 'Samsung', 'SCH-U340', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/samsung/schu410t-0.rdf' => [ 'Samsung', 'SCH-U410', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sch/u430/u430v1.xml' => [ 'Samsung', 'SCH-U430', null, DeviceType::MOBILE ], + 'http://www.alltel.net/uaprof/samsung/u520/u520.xml' => [ 'Samsung', 'SCH-U520', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sch/u540/u540v1.xml' => [ 'Samsung', 'SCH-U540', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sch/u550/u550v1.xml' => [ 'Samsung', 'SCH-U550', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sch/u740/u740v1.xml' => [ 'Samsung', 'SCH-U740', null, DeviceType::MOBILE ], + 'http://uaprof.uni-wise.com/uaprof/SAM/SAM-W109.xml' => [ 'Samsung', 'SCH-W109', null, DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_W2013_1_20120918.xml' => [ 'Samsung', 'SCH-W2013', 'Android', DeviceType::MOBILE ], + 'http://mobileuaprof.xtra.co.nz/sch_w531.rdf' => [ 'Samsung', 'SCH-W531', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SCH-W709_CTC.xml' => [ 'Samsung', 'SCH-W709', 'Brew', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_W789_1_20120309.xml' => [ 'Samsung', 'SCH-W789', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_W799_1_20091014.xml' => [ 'Samsung', 'SCH-W799', 'Brew', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_W899_1_2010816.xml' => [ 'Samsung', 'SCH-W899', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/SCH/SCH_W999_1_20110901.xml' => [ 'Samsung', 'SCH-W999', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A117.xml' => [ 'Samsung', 'SGH-A117', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/a127_10.xml' => [ 'Samsung', 'SGH-A127', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A137.xml' => [ 'Samsung', 'SGH-A137', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A157V.xml' => [ 'Samsung', 'SGH-A157V', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A237.xml' => [ 'Samsung', 'SGH-A237', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A436.xml' => [ 'Samsung', 'SGH-A436', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A437.xml' => [ 'Samsung', 'SGH-A437', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/A501.xml' => [ 'Samsung', 'SGH-A501', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A516.xml' => [ 'Samsung', 'SGH-A516', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A517.xml' => [ 'Samsung', 'SGH-A517', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/A561UAProf.rdf' => [ 'Samsung', 'SGH-A561', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/A706UAProf.xml' => [ 'Samsung', 'SGH-A706', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/A717UAProf.xml' => [ 'Samsung', 'SGH-A717', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/A727UAProf.xml' => [ 'Samsung', 'SGH-A727', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A736.xml' => [ 'Samsung', 'SGH-A736', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/A737UAProf.xml' => [ 'Samsung', 'SGH-A737', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A746.xml' => [ 'Samsung', 'SGH-A746', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/A747UAProf.xml' => [ 'Samsung', 'SGH-A747', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/L170UAProf.xml' => [ 'Samsung', 'SGH-A767', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A800.xml' => [ 'Samsung', 'SGH-A800', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A811_3G.xml' => [ 'Samsung', 'SGH-A811', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b100_10.xml' => [ 'Samsung', 'SGH-B100', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b120_10.xml' => [ 'Samsung', 'SGH-B120', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-B130.xml' => [ 'Samsung', 'SGH-B130', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-B130L.xml' => [ 'Samsung', 'SGH-B130', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b200_10.xml' => [ 'Samsung', 'SGH-B200', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b220b_10.xml' => [ 'Samsung', 'SGH-B220', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b220_10.xml' => [ 'Samsung', 'SGH-B220', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b270_10.xml' => [ 'Samsung', 'SGH-B270', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b300_10.xml' => [ 'Samsung', 'SGH-B300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b310_10.xml' => [ 'Samsung', 'SGH-B310', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b320_10.xml' => [ 'Samsung', 'SGH-B320', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b500_10.xml' => [ 'Samsung', 'SGH-B500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b510_10.xml' => [ 'Samsung', 'SGH-B510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b520b_10.xml' => [ 'Samsung', 'SGH-B520', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b520v_10.xml' => [ 'Samsung', 'SGH-B520', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b520_10.xml' => [ 'Samsung', 'SGH-B520', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/b860_10.xml' => [ 'Samsung', 'SGH-B860', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c110_10.xml' => [ 'Samsung', 'SGH-C110', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c130b_10.xml' => [ 'Samsung', 'SGH-C130', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c130_10.xml' => [ 'Samsung', 'SGH-C130', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c130_11.xml' => [ 'Samsung', 'SGH-C130', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c137_10.xml' => [ 'Samsung', 'SGH-C137', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c140_10.xml' => [ 'Samsung', 'SGH-C140', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c158_10.xml' => [ 'Samsung', 'SGH-C158', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-C160.xml' => [ 'Samsung', 'SGH-C160', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-C165.xml' => [ 'Samsung', 'SGH-C165', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-C166.xml' => [ 'Samsung', 'SGH-C166', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c170_10.xml' => [ 'Samsung', 'SGH-C170', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c178_10.xml' => [ 'Samsung', 'SGH-C178', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-C180.xml' => [ 'Samsung', 'SGH-C180', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c188_10.xml' => [ 'Samsung', 'SGH-C188', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c200.xml' => [ 'Samsung', 'SGH-C200', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c207_10.xml' => [ 'Samsung', 'SGH-C207', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c208_10.xml' => [ 'Samsung', 'SGH-C208', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c210_10.xml' => [ 'Samsung', 'SGH-C210', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c216_10.xml' => [ 'Samsung', 'SGH-C216', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c218_10.xml' => [ 'Samsung', 'SGH-C218', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c230C_10.xml' => [ 'Samsung', 'SGH-C230', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c230_10.xml' => [ 'Samsung', 'SGH-C230', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c238_10.xml' => [ 'Samsung', 'SGH-C238', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-C240.xml' => [ 'Samsung', 'SGH-C240', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c250_10.xml' => [ 'Samsung', 'SGH-C250', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c258_10.xml' => [ 'Samsung', 'SGH-C258', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c260m_10.xml' => [ 'Samsung', 'SGH-C260', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c260_10.xml' => [ 'Samsung', 'SGH-C260', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c268_10.xml' => [ 'Samsung', 'SGH-C268', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c275_10.xml' => [ 'Samsung', 'SGH-C275', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c300_10.xml' => [ 'Samsung', 'SGH-C300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c308_10.xml' => [ 'Samsung', 'SGH-C308', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c320c_10.xml' => [ 'Samsung', 'SGH-C320', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-C408.xml' => [ 'Samsung', 'SGH-C408', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-C416.xml' => [ 'Samsung', 'SGH-C416', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-C417.xml' => [ 'Samsung', 'SGH-C417', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-C425.xml' => [ 'Samsung', 'SGH-C425', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c500_10.xml' => [ 'Samsung', 'SGH-C500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c510_10.xml' => [ 'Samsung', 'SGH-C510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c516_10.xml' => [ 'Samsung', 'SGH-C516', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/c520_10.xml' => [ 'Samsung', 'SGH-C520', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-CC03.xml' => [ 'Samsung', 'SGH-CC03', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d100.xml' => [ 'Samsung', 'SGH-D100', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d100a.xml' => [ 'Samsung', 'SGH-D100', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d108.xml' => [ 'Samsung', 'SGH-D108', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d300_10.xml' => [ 'Samsung', 'SGH-D300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d307_10.xml' => [ 'Samsung', 'SGH-D307', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d347t_10.xml' => [ 'Samsung', 'SGH-D347', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d347_10.xml' => [ 'Samsung', 'SGH-D347', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d357_10.xml' => [ 'Samsung', 'SGH-D357', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d406_10.xml' => [ 'Samsung', 'SGH-D406', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d407t_10.xml' => [ 'Samsung', 'SGH-D407', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d407_10.xml' => [ 'Samsung', 'SGH-D407', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/D410.xml' => [ 'Samsung', 'SGH-D410', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d410c.xml' => [ 'Samsung', 'SGH-D410', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d415.xml' => [ 'Samsung', 'SGH-D415', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d418.xml' => [ 'Samsung', 'SGH-D418', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d428_10.xml' => [ 'Samsung', 'SGH-D428', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D488.xml' => [ 'Samsung', 'SGH-D488', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D500.xml' => [ 'Samsung', 'SGH-D500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D500C.xml' => [ 'Samsung', 'SGH-D500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D500E.xml' => [ 'Samsung', 'SGH-D500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D508.xml' => [ 'Samsung', 'SGH-D508', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D510.xml' => [ 'Samsung', 'SGH-D510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d520_10.xml' => [ 'Samsung', 'SGH-D520', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d528_10.xml' => [ 'Samsung', 'SGH-D528', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d567_10.xml' => [ 'Samsung', 'SGH-D567', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D600.xml' => [ 'Samsung', 'SGH-D600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D600E.xml' => [ 'Samsung', 'SGH-D600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D600E_FD.xml' => [ 'Samsung', 'SGH-D600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D600_FD.xml' => [ 'Samsung', 'SGH-D600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d710.xml' => [ 'Samsung', 'SGH-D710', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d720_10.xml' => [ 'Samsung', 'SGH-D720', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d728_10.xml' => [ 'Samsung', 'SGH-D728', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d730_10.xml' => [ 'Samsung', 'SGH-D730', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D780.xml' => [ 'Samsung', 'SGH-D780', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d800_10.xml' => [ 'Samsung', 'SGH-D800', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d806_10.xml' => [ 'Samsung', 'SGH-D806', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d807_10.xml' => [ 'Samsung', 'SGH-D807', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d807_11.xml' => [ 'Samsung', 'SGH-D807', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d808_10.xml' => [ 'Samsung', 'SGH-D808', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D820.xml' => [ 'Samsung', 'SGH-D820', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D828.xml' => [ 'Samsung', 'SGH-D828', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d830_10.xml' => [ 'Samsung', 'SGH-D830', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d830_11.xml' => [ 'Samsung', 'SGH-D830', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d838_10.xml' => [ 'Samsung', 'SGH-D838', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d840_10.xml' => [ 'Samsung', 'SGH-D840', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d840_11.xml' => [ 'Samsung', 'SGH-D840', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/d848_10.xml' => [ 'Samsung', 'SGH-D848', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D900-FD.xml' => [ 'Samsung', 'SGH-D900', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D900.xml' => [ 'Samsung', 'SGH-D900', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D908.xml' => [ 'Samsung', 'SGH-D908', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-D908i.xml' => [ 'Samsung', 'SGH-D908', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E100.xml' => [ 'Samsung', 'SGH-E100', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E100A.xml' => [ 'Samsung', 'SGH-E100', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e105.xml' => [ 'Samsung', 'SGH-E105', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E108.xml' => [ 'Samsung', 'SGH-E108', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e116.xml' => [ 'Samsung', 'SGH-E116', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E200.xml' => [ 'Samsung', 'SGH-E200', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e210_10.xml' => [ 'Samsung', 'SGH-E210', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e215l_10.xml' => [ 'Samsung', 'SGH-E215', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e218_10.xml' => [ 'Samsung', 'SGH-E218', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e230_10.xml' => [ 'Samsung', 'SGH-E230', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E236.xml' => [ 'Samsung', 'SGH-E236', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E250-ORANGE.xml' => [ 'Samsung', 'SGH-E250', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E250.xml' => [ 'Samsung', 'SGH-E250', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E251L.xml' => [ 'Samsung', 'SGH-E251', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E258.xml' => [ 'Samsung', 'SGH-E258', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e300.xml' => [ 'Samsung', 'SGH-E300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e300_10.xml' => [ 'Samsung', 'SGH-E300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e310c_10.xml' => [ 'Samsung', 'SGH-E310', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e310_00.xml' => [ 'Samsung', 'SGH-E310', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e310_10.xml' => [ 'Samsung', 'SGH-E310', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e315_10.xml' => [ 'Samsung', 'SGH-E315', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e316.xml' => [ 'Samsung', 'SGH-E316', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e317.xml' => [ 'Samsung', 'SGH-E317', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e318.xml' => [ 'Samsung', 'SGH-E318', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e320_10.xml' => [ 'Samsung', 'SGH-E320', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E330.xml' => [ 'Samsung', 'SGH-E330', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E330C.xml' => [ 'Samsung', 'SGH-E330', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E330N.xml' => [ 'Samsung', 'SGH-E330', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E335.xml' => [ 'Samsung', 'SGH-E335', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E338.xml' => [ 'Samsung', 'SGH-E338', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E340.xml' => [ 'Samsung', 'SGH-E340', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E350.xml' => [ 'Samsung', 'SGH-E350', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E350V.xml' => [ 'Samsung', 'SGH-E350', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E358.xml' => [ 'Samsung', 'SGH-E358', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E360.xml' => [ 'Samsung', 'SGH-E360', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E370.xml' => [ 'Samsung', 'SGH-E370', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E378.xml' => [ 'Samsung', 'SGH-E378', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E380.xml' => [ 'Samsung', 'SGH-E380', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e470_10.xml' => [ 'Samsung', 'SGH-E470', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E480.xml' => [ 'Samsung', 'SGH-E480', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e490_10.xml' => [ 'Samsung', 'SGH-E490', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e496_10.xml' => [ 'Samsung', 'SGH-E496', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e498_10.xml' => [ 'Samsung', 'SGH-E498', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e530c_10.xml' => [ 'Samsung', 'SGH-E530', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e530_10.xml' => [ 'Samsung', 'SGH-E530', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e530_11.xml' => [ 'Samsung', 'SGH-E530', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e568_10.xml' => [ 'Samsung', 'SGH-E568', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e570v_10.xml' => [ 'Samsung', 'SGH-E570', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e570_10.xml' => [ 'Samsung', 'SGH-E570', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e578_10.xml' => [ 'Samsung', 'SGH-E578', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E590.xml' => [ 'Samsung', 'SGH-E590', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e600.xml' => [ 'Samsung', 'SGH-E600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e600c.xml' => [ 'Samsung', 'SGH-E600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e608.xml' => [ 'Samsung', 'SGH-E608', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e610c_10.xml' => [ 'Samsung', 'SGH-E610', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e610_10.xml' => [ 'Samsung', 'SGH-E610', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e620_10.xml' => [ 'Samsung', 'SGH-E620', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E630.xml' => [ 'Samsung', 'SGH-E630', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E630C.xml' => [ 'Samsung', 'SGH-E630', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E638.xml' => [ 'Samsung', 'SGH-E638', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E640.xml' => [ 'Samsung', 'SGH-E640', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E700.xml' => [ 'Samsung', 'SGH-E700', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E700A.xml' => [ 'Samsung', 'SGH-E700', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E708.xml' => [ 'Samsung', 'SGH-E708', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e710_00.xml' => [ 'Samsung', 'SGH-E710', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e710_10.xml' => [ 'Samsung', 'SGH-E710', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e715.xml' => [ 'Samsung', 'SGH-E715', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e720c_10.xml' => [ 'Samsung', 'SGH-E720', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e720_00.xml' => [ 'Samsung', 'SGH-E720', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e720_10.xml' => [ 'Samsung', 'SGH-E720', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e728_10.xml' => [ 'Samsung', 'SGH-E728', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E730.xml' => [ 'Samsung', 'SGH-E730', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E736.xml' => [ 'Samsung', 'SGH-E736', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E740.xml' => [ 'Samsung', 'SGH-E740', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E747_FL.xml' => [ 'Samsung', 'SGH-E747', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E758.xml' => [ 'Samsung', 'SGH-E758', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e770_10.xml' => [ 'Samsung', 'SGH-E770', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e778_10.xml' => [ 'Samsung', 'SGH-E778', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e790_10.xml' => [ 'Samsung', 'SGH-E790', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E800.xml' => [ 'Samsung', 'SGH-E800', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E800C.xml' => [ 'Samsung', 'SGH-E800', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E808.xml' => [ 'Samsung', 'SGH-E808', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e810c_10.xml' => [ 'Samsung', 'SGH-E810', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e810_00.xml' => [ 'Samsung', 'SGH-E810', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e810_10.xml' => [ 'Samsung', 'SGH-E810', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e818.xml' => [ 'Samsung', 'SGH-E818', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E820.xml' => [ 'Samsung', 'SGH-E820', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E830.xml' => [ 'Samsung', 'SGH-E830', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e840_10.xml' => [ 'Samsung', 'SGH-E840', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e848_10.xml' => [ 'Samsung', 'SGH-E848', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e850_10.xml' => [ 'Samsung', 'SGH-E850', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e860v_10.xml' => [ 'Samsung', 'SGH-E860', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e865_10.xml' => [ 'Samsung', 'SGH-E865', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e870_10.xml' => [ 'Samsung', 'SGH-E870', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e878_10.xml' => [ 'Samsung', 'SGH-E878', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e880_10.xml' => [ 'Samsung', 'SGH-E880', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-E890.xml' => [ 'Samsung', 'SGH-E890', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e900_10.xml' => [ 'Samsung', 'SGH-E900', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e906_10.xml' => [ 'Samsung', 'SGH-E906', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e908_10.xml' => [ 'Samsung', 'SGH-E908', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e910_10.xml' => [ 'Samsung', 'SGH-E910', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e910_11.xml' => [ 'Samsung', 'SGH-E910', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e918_10.xml' => [ 'Samsung', 'SGH-E918', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e950_10.xml' => [ 'Samsung', 'SGH-E950', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/e958_10.xml' => [ 'Samsung', 'SGH-E958', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-F110.xml' => [ 'Samsung', 'SGH-F110', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/f200_10.xml' => [ 'Samsung', 'SGH-F200', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/f210_10.xml' => [ 'Samsung', 'SGH-F210', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/f218_10.xml' => [ 'Samsung', 'SGH-F218', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-F250.xml' => [ 'Samsung', 'SGH-F250', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-F250L.xml' => [ 'Samsung', 'SGH-F250', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/f300_10.xml' => [ 'Samsung', 'SGH-F300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/f308_10.xml' => [ 'Samsung', 'SGH-F308', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/f310_00.xml' => [ 'Samsung', 'SGH-F310', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/F330UAProf3G.rdf' => [ 'Samsung', 'SGH-F330', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/F338UAProf.xml' => [ 'Samsung', 'SGH-F338', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/F400UAProf.xml' => [ 'Samsung', 'SGH-F400', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-F480.rdf' => [ 'Samsung', 'SGH-F480', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-F480_3G.rdf' => [ 'Samsung', 'SGH-F480', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-F480I_3G.rdf' => [ 'Samsung', 'SGH-F480I', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-F488.rdf' => [ 'Samsung', 'SGH-F488', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/f500.xml' => [ 'Samsung', 'SGH-F500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/F700VUAProf3G.rdf' => [ 'Samsung', 'SGH-F700', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/f900_10.xml' => [ 'Samsung', 'SGH-F900', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-G608.xml' => [ 'Samsung', 'SGH-G608', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/G800UAProf3G.rdf' => [ 'Samsung', 'SGH-G800', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/G810-3G.xml' => [ 'Samsung', 'SGH-G810', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/G810.xml' => [ 'Samsung', 'SGH-G810', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/G818E_10.xml' => [ 'Samsung', 'SGH-G818', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i200OrangeUAProf.rdf' => [ 'Samsung', 'SGH-I200', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i300_10.xml' => [ 'Samsung', 'SGH-I300', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i308_10.xml' => [ 'Samsung', 'SGH-I308', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i310_10.xml' => [ 'Samsung', 'SGH-I310', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i320_10.xml' => [ 'Samsung', 'SGH-I320', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i321n_10.xml' => [ 'Samsung', 'SGH-I321', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i400_10.xml' => [ 'Samsung', 'SGH-I400', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i408_10.xml' => [ 'Samsung', 'SGH-I408', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i450.xml' => [ 'Samsung', 'SGH-I450', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i455l_10.xml' => [ 'Samsung', 'SGH-I455', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i455_10.xml' => [ 'Samsung', 'SGH-I455', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i458B-3G.xml' => [ 'Samsung', 'SGH-I458', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i458_10.xml' => [ 'Samsung', 'SGH-I458', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i520.xml' => [ 'Samsung', 'SGH-I520', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-i530.xml' => [ 'Samsung', 'SGH-i530', 'Palm OS', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i550.xml' => [ 'Samsung', 'SGH-I550', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i590_10.xml' => [ 'Samsung', 'SGH-I590', 'Series60', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-i600.xml' => [ 'Samsung', 'SGH-I600', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i601_10.xml' => [ 'Samsung', 'SGH-I601', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i608_10.xml' => [ 'Samsung', 'SGH-I608', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i620v_10.xml' => [ 'Samsung', 'SGH-I620', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-i640V_3G.xml' => [ 'Samsung', 'SGH-I640', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-i688.xml' => [ 'Samsung', 'SGH-I688', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/i700_10.xml' => [ 'Samsung', 'SGH-I700', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-i728.xml' => [ 'Samsung', 'SGH-I728', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-I750.xml' => [ 'Samsung', 'SGH-I750', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-J150.xml' => [ 'Samsung', 'SGH-J150', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/J208UAProf3G.rdf' => [ 'Samsung', 'SGH-J208', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/j600e_10.xml' => [ 'Samsung', 'SGH-J600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/j600e_11.xml' => [ 'Samsung', 'SGH-J600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/j600v_10.xml' => [ 'Samsung', 'SGH-J600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/j600_10.xml' => [ 'Samsung', 'SGH-J600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/j608_10.xml' => [ 'Samsung', 'SGH-J608', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/j610_10.xml' => [ 'Samsung', 'SGH-J610', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/j618_10.xml' => [ 'Samsung', 'SGH-J618', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-J700L.xml' => [ 'Samsung', 'SGH-J700', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-J706.xml' => [ 'Samsung', 'SGH-J706', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/J750UAProf3G.rdf' => [ 'Samsung', 'SGH-J750', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-J770.xml' => [ 'Samsung', 'SGH-J770', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/L170UAProf3G.xml' => [ 'Samsung', 'SGH-L170', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/l320_10.xml' => [ 'Samsung', 'SGH-L320', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-L700_2G.rdf' => [ 'Samsung', 'SGH-L700', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-L750_2G.rdf' => [ 'Samsung', 'SGH-L750', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/L760UAProf.rdf' => [ 'Samsung', 'SGH-L760', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/L760UAProf3G.rdf' => [ 'Samsung', 'SGH-L760', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/L770UAProf3G.rdf' => [ 'Samsung', 'SGH-L770', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-L810V_3G.rdf' => [ 'Samsung', 'SGH-L810', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-L811_3G.rdf' => [ 'Samsung', 'SGH-L811', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/L870_10.xml' => [ 'Samsung', 'SGH-L870', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/L878-3G_10.xml' => [ 'Samsung', 'SGH-L878', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/L878E_10.xml' => [ 'Samsung', 'SGH-L878', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/L878_10.xml' => [ 'Samsung', 'SGH-L878', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-M110.xml' => [ 'Samsung', 'SGH-M110', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/m120_10.xml' => [ 'Samsung', 'SGH-M120', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/m128_10.xml' => [ 'Samsung', 'SGH-M128', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-M140L.xml' => [ 'Samsung', 'SGH-M140', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-M150.xml' => [ 'Samsung', 'SGH-M150', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/m300v_10.xml' => [ 'Samsung', 'SGH-M300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/m300_10.xml' => [ 'Samsung', 'SGH-M300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/m310v_10.xml' => [ 'Samsung', 'SGH-M310', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/m310_10.xml' => [ 'Samsung', 'SGH-M310', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/m600_10.xml' => [ 'Samsung', 'SGH-M600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/m608_10.xml' => [ 'Samsung', 'SGH-M608', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/m620_10.xml' => [ 'Samsung', 'SGH-M620', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-M628.xml' => [ 'Samsung', 'SGH-M628', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-N600.xml' => [ 'Samsung', 'SGH-N600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-N620.xml' => [ 'Samsung', 'SGH-N620', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/n700_10.xml' => [ 'Samsung', 'SGH-N700', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/n707_10.xml' => [ 'Samsung', 'SGH-N707', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p100.xml' => [ 'Samsung', 'SGH-P100', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p107.xml' => [ 'Samsung', 'SGH-P107', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p110v_10.xml' => [ 'Samsung', 'SGH-P110', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-P180-ORANGE.xml' => [ 'Samsung', 'SGH-P180', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p207_10.xml' => [ 'Samsung', 'SGH-P207', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-P220-ORANGE.xml' => [ 'Samsung', 'SGH-P220', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-P260-ORANGE.xml' => [ 'Samsung', 'SGH-P260', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p300_10.xml' => [ 'Samsung', 'SGH-P300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p308_10.xml' => [ 'Samsung', 'SGH-P308', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p310_10.xml' => [ 'Samsung', 'SGH-P310', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p318plus_10.xml' => [ 'Samsung', 'SGH-P318', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p318_10.xml' => [ 'Samsung', 'SGH-P318', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p400_00.xml' => [ 'Samsung', 'SGH-P400', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/P510_UAProf.xml' => [ 'Samsung', 'SGH-P510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/resolutionP510_UAProf.xml' => [ 'Samsung', 'SGH-P510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p518.xml' => [ 'Samsung', 'SGH-P518', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p520_10.xml' => [ 'Samsung', 'SGH-P520', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p700.xml' => [ 'Samsung', 'SGH-P700', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p710.xml' => [ 'Samsung', 'SGH-P710', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p716_10.xml' => [ 'Samsung', 'SGH-P716', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p717_10.xml' => [ 'Samsung', 'SGH-P717', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p730.xml' => [ 'Samsung', 'SGH-P730', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p730c_10.xml' => [ 'Samsung', 'SGH-P730', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p730_10.xml' => [ 'Samsung', 'SGH-P730', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p735_10.xml' => [ 'Samsung', 'SGH-P735', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p738_10.xml' => [ 'Samsung', 'SGH-P738', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p777_10.xml' => [ 'Samsung', 'SGH-P777', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p777_12.xml' => [ 'Samsung', 'SGH-P777', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-P850.xml' => [ 'Samsung', 'SGH-P850', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p900_10.xml' => [ 'Samsung', 'SGH-P900', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/p908t_10.xml' => [ 'Samsung', 'SGH-P908', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/P910UAProf2G.rdf' => [ 'Samsung', 'SGH-P910', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-P960.rdf' => [ 'Samsung', 'SGH-P960', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-P960_3G.rdf' => [ 'Samsung', 'SGH-P960', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-S275G.xml' => [ 'Samsung', 'SGH-S275G', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/s300m_00.xml' => [ 'Samsung', 'SGH-S300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-S500.xml' => [ 'Samsung', 'SGH-S500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T100.xml' => [ 'Samsung', 'SGH-T100', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T109.xml' => [ 'Samsung', 'SGH-T109', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T159.xml' => [ 'Samsung', 'SGH-T159', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T199.xml' => [ 'Samsung', 'SGH-T199', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T209.xml' => [ 'Samsung', 'SGH-T209', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T219S.xml' => [ 'Samsung', 'SGH-T219', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T229.xml' => [ 'Samsung', 'SGH-T229', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T259.xml' => [ 'Samsung', 'SGH-T259', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T329.xml' => [ 'Samsung', 'SGH-T329', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T336.xml' => [ 'Samsung', 'SGH-T336', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T339.xml' => [ 'Samsung', 'SGH-T339', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T409.xml' => [ 'Samsung', 'SGH-T409', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T419.xml' => [ 'Samsung', 'SGH-T419', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T429.xml' => [ 'Samsung', 'SGH-T429', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T439.xml' => [ 'Samsung', 'SGH-T439', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T479.xml' => [ 'Samsung', 'SGH-T479', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T500.xml' => [ 'Samsung', 'SGH-T500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T509.xml' => [ 'Samsung', 'SGH-T509', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/t519_10.xml' => [ 'Samsung', 'SGH-T519', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T528G.xml' => [ 'Samsung', 'SGH-T528', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/t609_10.xml' => [ 'Samsung', 'SGH-T609', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/t609_11.xml' => [ 'Samsung', 'SGH-T609', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T619.xml' => [ 'Samsung', 'SGH-T619', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/t629_10.xml' => [ 'Samsung', 'SGH-T629', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T639.xml' => [ 'Samsung', 'SGH-T639', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/t649_10.xml' => [ 'Samsung', 'SGH-T649', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/t719_10.xml' => [ 'Samsung', 'SGH-T719', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T819.xml' => [ 'Samsung', 'SGH-T819', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/u100_10.xml' => [ 'Samsung', 'SGH-U100', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/u106_10.xml' => [ 'Samsung', 'SGH-U106', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/u108_10.xml' => [ 'Samsung', 'SGH-U108', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/U200UAProf3G.xml' => [ 'Samsung', 'SGH-U200', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/u300_10.xml' => [ 'Samsung', 'SGH-U300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/u308_10.xml' => [ 'Samsung', 'SGH-U308', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/u600_10.xml' => [ 'Samsung', 'SGH-U600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/u608_10.xml' => [ 'Samsung', 'SGH-U608', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/U708UAProf.rdf' => [ 'Samsung', 'SGH-U708', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/V200_00.xml' => [ 'Samsung', 'SGH-V200', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/V206_00.xml' => [ 'Samsung', 'SGH-V206', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X100.xml' => [ 'Samsung', 'SGH-X100', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X100A.xml' => [ 'Samsung', 'SGH-X100', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x105.xml' => [ 'Samsung', 'SGH-X105', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X108.xml' => [ 'Samsung', 'SGH-X108', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x120_10.xml' => [ 'Samsung', 'SGH-X120', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x140_10.xml' => [ 'Samsung', 'SGH-X140', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x140_11.xml' => [ 'Samsung', 'SGH-X140', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x160_10.xml' => [ 'Samsung', 'SGH-X160', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x168_10.xml' => [ 'Samsung', 'SGH-X168', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x200.xml' => [ 'Samsung', 'SGH-X200', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x200_01.xml' => [ 'Samsung', 'SGH-X200', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x200_02.xml' => [ 'Samsung', 'SGH-X200', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x208_00.xml' => [ 'Samsung', 'SGH-X208', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x210_10.xml' => [ 'Samsung', 'SGH-X210', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x218_10.xml' => [ 'Samsung', 'SGH-X218', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X300.xml' => [ 'Samsung', 'SGH-X300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x410.xml' => [ 'Samsung', 'SGH-X410', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x410_10.xml' => [ 'Samsung', 'SGH-X410', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x426.xml' => [ 'Samsung', 'SGH-X426', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x426m_10.xml' => [ 'Samsung', 'SGH-X426', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x426m_11.xml' => [ 'Samsung', 'SGH-X426', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x427m_10.xml' => [ 'Samsung', 'SGH-X427', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x430.xml' => [ 'Samsung', 'SGH-X430', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x450.xml' => [ 'Samsung', 'SGH-X450', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x458.xml' => [ 'Samsung', 'SGH-X458', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X460.xml' => [ 'Samsung', 'SGH-X460', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X460C.xml' => [ 'Samsung', 'SGH-X460', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X461.xml' => [ 'Samsung', 'SGH-X461', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x466_10.xml' => [ 'Samsung', 'SGH-X466', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X467.xml' => [ 'Samsung', 'SGH-X467', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X468.xml' => [ 'Samsung', 'SGH-X468', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x475_10.xml' => [ 'Samsung', 'SGH-X475', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x478_10.xml' => [ 'Samsung', 'SGH-X478', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X480.xml' => [ 'Samsung', 'SGH-X480', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X480C.xml' => [ 'Samsung', 'SGH-X480', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X481.xml' => [ 'Samsung', 'SGH-X481', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/X486_10.xml' => [ 'Samsung', 'SGH-X486', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x488_10.xml' => [ 'Samsung', 'SGH-X488', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X490.xml' => [ 'Samsung', 'SGH-X490', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X496.xml' => [ 'Samsung', 'SGH-X496', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X497.xml' => [ 'Samsung', 'SGH-X497', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x500_10.xml' => [ 'Samsung', 'SGH-X500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x506_10.xml' => [ 'Samsung', 'SGH-X506', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x507_10.xml' => [ 'Samsung', 'SGH-X507', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x507_11.xml' => [ 'Samsung', 'SGH-X507', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x508_10.xml' => [ 'Samsung', 'SGH-X508', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x508_11.xml' => [ 'Samsung', 'SGH-X508', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x510v_10.xml' => [ 'Samsung', 'SGH-X510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x510_10.xml' => [ 'Samsung', 'SGH-X510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x510_11.xml' => [ 'Samsung', 'SGH-X510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x518_10.xml' => [ 'Samsung', 'SGH-X518', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x520_10.xml' => [ 'Samsung', 'SGH-X520', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x526_10.xml' => [ 'Samsung', 'SGH-X526', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x528_10.xml' => [ 'Samsung', 'SGH-X528', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x530_10.xml' => [ 'Samsung', 'SGH-X530', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X550.xml' => [ 'Samsung', 'SGH-X550', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X566.xml' => [ 'Samsung', 'SGH-X566', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x568_10.xml' => [ 'Samsung', 'SGH-X568', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X576.xml' => [ 'Samsung', 'SGH-X576', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X600.xml' => [ 'Samsung', 'SGH-X600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X600A.xml' => [ 'Samsung', 'SGH-X600', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com.cn/uaprof/SGH-X608.xml' => [ 'Samsung', 'SGH-X608', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X608.xml' => [ 'Samsung', 'SGH-X608', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x610.xml' => [ 'Samsung', 'SGH-X610', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X620.xml' => [ 'Samsung', 'SGH-X620', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x630_10.xml' => [ 'Samsung', 'SGH-X630', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X636.xml' => [ 'Samsung', 'SGH-X636', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com.cn/uaprof/SGH-X640.xml' => [ 'Samsung', 'SGH-X640', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X640.xml' => [ 'Samsung', 'SGH-X640', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X650.xml' => [ 'Samsung', 'SGH-X650', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X650C.xml' => [ 'Samsung', 'SGH-X650', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x660v_10.xml' => [ 'Samsung', 'SGH-X660', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x660_10.xml' => [ 'Samsung', 'SGH-X660', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x668_10.xml' => [ 'Samsung', 'SGH-X668', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X670.xml' => [ 'Samsung', 'SGH-X670', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x680v_10.xml' => [ 'Samsung', 'SGH-X680', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x680_10.xml' => [ 'Samsung', 'SGH-X680', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x686_10.xml' => [ 'Samsung', 'SGH-X686', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x688_10.xml' => [ 'Samsung', 'SGH-X688', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x688_11.xml' => [ 'Samsung', 'SGH-X688', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X700.xml' => [ 'Samsung', 'SGH-X700', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-X708.xml' => [ 'Samsung', 'SGH-X708', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x800_10.xml' => [ 'Samsung', 'SGH-X800', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x808_10.xml' => [ 'Samsung', 'SGH-X808', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x810_10.xml' => [ 'Samsung', 'SGH-X810', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x818_10.xml' => [ 'Samsung', 'SGH-X818', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x820_10.xml' => [ 'Samsung', 'SGH-X820', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x820_11.xml' => [ 'Samsung', 'SGH-X820', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x828_10.xml' => [ 'Samsung', 'SGH-X828', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x830_10.xml' => [ 'Samsung', 'SGH-X830', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x836_10.xml' => [ 'Samsung', 'SGH-X836', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x838_10.xml' => [ 'Samsung', 'SGH-X838', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/x910_10.xml' => [ 'Samsung', 'SGH-X910', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/ZV10UAProf3G.rdf' => [ 'Samsung', 'SGH-ZV10', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/ZV30UAProf.rdf' => [ 'Samsung', 'SGH-ZV30', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/ZV60UAProf3G.rdf' => [ 'Samsung', 'SGH-ZV60', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5350UAProf.xml' => [ 'Samsung', 'Shark', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T359.xml' => [ 'Samsung', 'Smiley :)', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-A817.xml' => [ 'Samsung', 'Solstice II', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-G400_3G.rdf' => [ 'Samsung', 'Soul', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/U900UAProf.xml' => [ 'Samsung', 'Soul', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/U800UAProf.xml' => [ 'Samsung', 'Soul b', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/U800UAProf3G.xml' => [ 'Samsung', 'Soul b', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-A500/VE31.rdf' => [ 'Samsung', 'SPH-A500', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-A640/ZE12.rdf' => [ 'Samsung', 'SPH-A640', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-A660/XA28.rdf' => [ 'Samsung', 'SPH-A660', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-A680/XC15.rdf' => [ 'Samsung', 'SPH-A680', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-A700/XG23.rdf' => [ 'Samsung', 'SPH-A700', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/samsung/spha720-1.rdf' => [ 'Samsung', 'SPH-A720', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-A740/XK12.rdf' => [ 'Samsung', 'SPH-A740', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-A790/XK26.rdf' => [ 'Samsung', 'SPH-A790', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-A800/YD11.rdf' => [ 'Samsung', 'SPH-A800', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-A840/YH09.rdf' => [ 'Samsung', 'SPH-A840', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-A880/YC24.rdf' => [ 'Samsung', 'SPH-A880', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-A900P/ZH03.rdf' => [ 'Samsung', 'SPH-A900', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-A920/YK12.rdf' => [ 'Samsung', 'SPH-A920', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-i550/XE07.rdf' => [ 'Samsung', 'SPH-I550', 'Palm OS', DeviceType::MOBILE ], + 'http://device.telusmobility.com/samsung/sphm210-0.rdf' => [ 'Samsung', 'SPH-M210', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M220/BG24.rdf' => [ 'Samsung', 'SPH-M220', null, DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/samsung/m310/VMU_m310_UAProf.xml' => [ 'Samsung', 'SPH-M310', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M320/BG24.rdf' => [ 'Samsung', 'SPH-M320', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M500/ZK03.rdf' => [ 'Samsung', 'SPH-M500', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M510/AE15.rdf' => [ 'Samsung', 'SPH-M510', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/PLS-M520/AD30.rdf' => [ 'Samsung', 'SPH-M520', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/Samsung_SPH-M530.rdf' => [ 'Samsung', 'SPH-M530', null, DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/samsung/SPH-M575-VMUB/1.0/M575_VMUB_UAProf.xml' => [ 'Samsung', 'SPH-M575', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M610/ZJ29.rdf' => [ 'Samsung', 'SPH-M610', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-N400/VH27.rdf' => [ 'Samsung', 'SPH-N400', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-Z400/BE03.rdf' => [ 'Samsung', 'SPH-Z400', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5230.rdf' => [ 'Samsung', 'Star', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5230C.rdf' => [ 'Samsung', 'Star', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5230G.rdf' => [ 'Samsung', 'Star', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5230MR.rdf' => [ 'Samsung', 'Star', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5230N.rdf' => [ 'Samsung', 'Star', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5230W.rdf' => [ 'Samsung', 'Star', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5230W_3G.rdf' => [ 'Samsung', 'Star', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5233A.rdf' => [ 'Samsung', 'Star', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5233S.rdf' => [ 'Samsung', 'Star', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5233T.rdf' => [ 'Samsung', 'Star', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5233T.xml' => [ 'Samsung', 'Star', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5233TTCE.xml' => [ 'Samsung', 'Star', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5233W.rdf' => [ 'Samsung', 'Star', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5233W.xml' => [ 'Samsung', 'Star', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5220UAProf.xml' => [ 'Samsung', 'Star 3', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5222BR.xml' => [ 'Samsung', 'Star 3 Duos', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5222UAProf.xml' => [ 'Samsung', 'Star 3 Duos', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5603.rdf' => [ 'Samsung', 'Star 3G', 'TouchWiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5292UAProf.xml' => [ 'Samsung', 'Star Deluxe Duos', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B7722_2G.rdf' => [ 'Samsung', 'Star Duos', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B7722_3G.rdf' => [ 'Samsung', 'Star Duos', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5260.rdf' => [ 'Samsung', 'Star II', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5260.xml' => [ 'Samsung', 'Star II', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5260BR.xml' => [ 'Samsung', 'Star II', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5263.rdf' => [ 'Samsung', 'Star II', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C6712.rdf' => [ 'Samsung', 'Star II Duos', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/B3410.xml' => [ 'Samsung', 'Star Qwerty', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B3410.xml' => [ 'Samsung', 'Star Qwerty', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-I6230.xml' => [ 'Samsung', 'Star TV', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/i405/i405.xml' => [ 'Samsung', 'Stratosphere', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/sam/SCH-I415/SCH-I415.xml' => [ 'Samsung', 'Stratosphere II', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T839.xml' => [ 'Samsung', 'T-Mobile Sidekick', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/s3030_10.xml' => [ 'Samsung', 'Tobi', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-F480L.xml' => [ 'Samsung', 'Tocco', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5229UAProf.xml' => [ 'Samsung', 'Tocco Lite 2', 'Touchwiz', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-S390G.xml' => [ 'Samsung', 'TracFone', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M920/EB28.rdf' => [ 'Samsung', 'Transform', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M920/EF09.rdf' => [ 'Samsung', 'Transform', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M930-BST/EG29.rdf' => [ 'Samsung', 'Transform Ultra', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M930-BST/FF27.rdf' => [ 'Samsung', 'Transform Ultra', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M930-BST/FF28.rdf' => [ 'Samsung', 'Transform Ultra', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M930/FF27.rdf' => [ 'Samsung', 'Transform Ultra', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M930/FG11.rdf' => [ 'Samsung', 'Transform Ultra', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/S8300UAProf.xml' => [ 'Samsung', 'UltraTOUCH', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/S8300UAProf3G.xml' => [ 'Samsung', 'UltraTOUCH', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Samsung/SPH-M620/AC08.rdf' => [ 'Samsung', 'UpStage', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/V804SSUAProf.rdf' => [ 'Samsung', 'V804', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SGH-T959.xml' => [ 'Samsung', 'Vibrant', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/sch_w259.xml' => [ 'Samsung', 'W169 Duos', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S8500.rdf' => [ 'Samsung', 'Wave', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S8500M.rdf' => [ 'Samsung', 'Wave', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S8500R.rdf' => [ 'Samsung', 'Wave', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S8500_2G.rdf' => [ 'Samsung', 'Wave', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S8500_3G.rdf' => [ 'Samsung', 'Wave', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S8600.rdf' => [ 'Samsung', 'Wave 3', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S8600_3G.rdf' => [ 'Samsung', 'Wave 3', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5250.rdf' => [ 'Samsung', 'Wave 525', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5253.rdf' => [ 'Samsung', 'Wave 525', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5253_3G.rdf' => [ 'Samsung', 'Wave 525', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5330BR.xml' => [ 'Samsung', 'Wave 533', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5333.rdf' => [ 'Samsung', 'Wave 533', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5333_3G.rdf' => [ 'Samsung', 'Wave 533', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5750E_2G.rdf' => [ 'Samsung', 'Wave 575', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5750E_3G.rdf' => [ 'Samsung', 'Wave 575', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5753E_2G.rdf' => [ 'Samsung', 'Wave 575', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5753E_3G.rdf' => [ 'Samsung', 'Wave 575', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5780.rdf' => [ 'Samsung', 'Wave 578', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7230E.rdf' => [ 'Samsung', 'Wave 723', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7230E_3G.rdf' => [ 'Samsung', 'Wave 723', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7233E_3G.rdf' => [ 'Samsung', 'Wave 723', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S8530.rdf' => [ 'Samsung', 'Wave II', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S8530_3G.rdf' => [ 'Samsung', 'Wave II', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S7250_3G.rdf' => [ 'Samsung', 'Wave M', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5380.rdf' => [ 'Samsung', 'Wave Y', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-S5380_3G.rdf' => [ 'Samsung', 'Wave Y', 'Bada', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-C3350UAProf.xml' => [ 'Samsung', 'Xcover 2', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B2710.rdf' => [ 'Samsung', 'Xcover 271', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/GT-B2710_3G.rdf' => [ 'Samsung', 'Xcover 271', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/SM-B550H.xml' => [ 'Samsung', 'Xcover 550', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z100UAProf.rdf' => [ 'Samsung', 'Z100', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/z130_00.xml' => [ 'Samsung', 'Z130', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z150UAProf2G.rdf' => [ 'Samsung', 'Z150', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/z160_10.xml' => [ 'Samsung', 'Z160', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z170UAProf3G.rdf' => [ 'Samsung', 'Z170', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z230UAProf3G.rdf' => [ 'Samsung', 'Z230', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z240UAProf.rdf' => [ 'Samsung', 'Z240', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z240UAProf3G.rdf' => [ 'Samsung', 'Z240', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z300UAProf.rdf' => [ 'Samsung', 'Z300', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z308UAProf.rdf' => [ 'Samsung', 'Z308', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z310UAProf3G.rdf' => [ 'Samsung', 'Z310', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z400UAProf3G.rdf' => [ 'Samsung', 'Z400', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z500UAProf.rbf' => [ 'Samsung', 'Z500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z500UAProf2G.rdf' => [ 'Samsung', 'Z500', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/z510_00.xml' => [ 'Samsung', 'Z510', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z520UAProf2G.rdf' => [ 'Samsung', 'Z520', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z540UAProf2G.rdf' => [ 'Samsung', 'Z540', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z540UAProf3G.rdf' => [ 'Samsung', 'Z540', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z548UAProf.rdf' => [ 'Samsung', 'Z548', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z560UAProf3G.rdf' => [ 'Samsung', 'Z560', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/z630_00.xml' => [ 'Samsung', 'Z630', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/Z720UAProf3G.rdf' => [ 'Samsung', 'Z720', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/6760Boost/1006Boost.rdf' => [ 'Sanyo', 'Incognito', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP6760/1002SP.rdf' => [ 'Sanyo', 'Incognito', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/6780Boost/1001Boost.rdf' => [ 'Sanyo', 'Innuendo', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/6780Boost/1101Boost.rdf' => [ 'Sanyo', 'Innuendo', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/2700Boost/1001Boost.rdf' => [ 'Sanyo', 'Juno', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP8500/1000SP.rdf' => [ 'Sanyo', 'Katana DLX', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCPM1/1001SP.rdf' => [ 'Sanyo', 'M1', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/MM5600/0702SP.rdf' => [ 'Sanyo', 'MM-5600', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/MM7400/1030SP.rdf' => [ 'Sanyo', 'MM-7400', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/PL6650/1001PLS.rdf' => [ 'Sanyo', 'PL-6650', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/PLS4920/1000QW.rdf' => [ 'Sanyo', 'PLS-4920', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/PLS6600/1001QW.rdf' => [ 'Sanyo', 'PLS-6600', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/PLS6650/1002QW.rdf' => [ 'Sanyo', 'PLS-6650', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/PLS7400/1000QW.rdf' => [ 'Sanyo', 'PLS-7400', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/PLS8100/1005QW.rdf' => [ 'Sanyo', 'PLS-8100', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/PLS8200/1001QW.rdf' => [ 'Sanyo', 'PLS-8200', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/PM8200/1007SP.rdf' => [ 'Sanyo', 'PM-8200', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP-PRO700/1008SP.rdf' => [ 'Sanyo', 'PRO-700', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP2300/0501SP.rdf' => [ 'Sanyo', 'SCP-2300', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/BMC_Sanyo_SCP2300CA_1004BM.rdf' => [ 'Sanyo', 'SCP-2300', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP2400/1004SP.rdf' => [ 'Sanyo', 'SCP-2400', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP2500/1001SP.rdf' => [ 'Sanyo', 'SCP-2500', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/BMC_Sanyo_SCP2500CA_1002BM.rdf' => [ 'Sanyo', 'SCP-2500', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP3100/1005SP.rdf' => [ 'Sanyo', 'SCP-3100', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP3200/1000SP.rdf' => [ 'Sanyo', 'SCP-3200', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP3800/0700SP.rdf' => [ 'Sanyo', 'SCP-3800', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/BMC_Sanyo_SCP3800CA_1003BM.rdf' => [ 'Sanyo', 'SCP-3800', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP4920/1006SP.rdf' => [ 'Sanyo', 'SCP-4920', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP4930/1004SP.rdf' => [ 'Sanyo', 'SCP-4930', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP5300/1036SP.rdf' => [ 'Sanyo', 'SCP-5300', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP6400/1032SP.rdf' => [ 'Sanyo', 'SCP-6400', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP6600/1001SP.rdf' => [ 'Sanyo', 'SCP-6600', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/BMC_Sanyo_SCP6600CA_1001BM.rdf' => [ 'Sanyo', 'SCP-6600', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP6650/1004SP.rdf' => [ 'Sanyo', 'SCP-6650', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP6750/1002SP.rdf' => [ 'Sanyo', 'SCP-6750', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP7000/1000SP.rdf' => [ 'Sanyo', 'SCP-7000', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/BMC_Sanyo_SCP7000CA_1008BM.rdf' => [ 'Sanyo', 'SCP-7000', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP7050/1002SP.rdf' => [ 'Sanyo', 'SCP-7050', null, DeviceType::MOBILE ], + 'http://uaprof.bellmobilite.ca/BMC_Sanyo_SCP7050CA_1004BM.rdf' => [ 'Sanyo', 'SCP-7050', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP7200/2046SP.rdf' => [ 'Sanyo', 'SCP-7200', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP7300/1004SP.rdf' => [ 'Sanyo', 'SCP-7300', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP7500/1022SP.rdf' => [ 'Sanyo', 'SCP-7500', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP8100/1115SP.rdf' => [ 'Sanyo', 'SCP-8100', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP9000/0103SP.rdf' => [ 'Sanyo', 'SCP-9000', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/SCP9000/1000SP.rdf' => [ 'Sanyo', 'SCP-9000', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Sanyo/E4100/1008SP.rdf' => [ 'Sanyo', 'Taho', 'Brew', DeviceType::MOBILE ], + 'http://wap.sendo.com/uaprof/sendo_S600_r1.0.xml' => [ 'Sendo', 'S600', null, DeviceType::MOBILE ], + 'http://senseit.ru/UAProfile/SENSEIT_R390.xml' => [ 'Senseit', 'R390', 'Android', DeviceType::MOBILE ], + 'http://www.senwamobile.com/UA/S970.xml' => [ 'Senwa', 'S970', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-STARADDICTII.xml' => [ 'SFR', 'STARADDICT II', 'Android', DeviceType::MOBILE ], + 'http://sfr.51coolpad.com/UAProfile/sfr/STARADDICT-3.xml' => [ 'SFR', 'STARADDICT III', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com/mobile/uaprof/ZTE-V6600_Style_Pro_Profile.xml' => [ 'sfr', 'STARNAUTE II', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/STARXTREM II.xml' => [ 'SFR', 'STARXTREM II', 'Android', DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/880SH_G001_3g.xml' => [ 'Sharp', '880SH', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/880SH_G001_base.xml' => [ 'Sharp', '880SH', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/SH80DE.XML' => [ 'Sharp', 'Aquos SH80F', 'Android', DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/SHARP-ADS1.xml' => [ 'Sharp', 'FX Plus', 'Android', DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GXi98.xml' => [ 'Sharp', 'GX-i98', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX1.xml' => [ 'Sharp', 'GX1', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX10.xml' => [ 'Sharp', 'GX10', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX10m.xml' => [ 'Sharp', 'GX10m', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX12.xml' => [ 'Sharp', 'GX12', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX13.xml' => [ 'Sharp', 'GX13', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX15.xml' => [ 'Sharp', 'GX15', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX17.xml' => [ 'Sharp', 'GX17', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX20.xml' => [ 'Sharp', 'GX20', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX23.xml' => [ 'Sharp', 'GX23', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX25.xml' => [ 'Sharp', 'GX25', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX29.xml' => [ 'Sharp', 'GX29', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX30.xml' => [ 'Sharp', 'GX30', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX32.xml' => [ 'Sharp', 'GX32', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GX33.xml' => [ 'Sharp', 'GX33', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GZ100.xml' => [ 'Sharp', 'GZ100', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GZ100S.xml' => [ 'Sharp', 'GZ100S', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GZ200.xml' => [ 'Sharp', 'GZ200', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/GZ200S.xml' => [ 'Sharp', 'GZ200S', null, DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/MK5/SH530U.xml' => [ 'Sharp', 'SH530U', 'Android', DeviceType::MOBILE ], + 'http://www.c2dms.com/UAProfile/MK5/SH530U.xml' => [ 'Sharp', 'SH530U', 'Android', DeviceType::MOBILE ], + 'http://www.c2dms.com/UAProfile/S2U/SH631W.xml' => [ 'Sharp', 'SH631W', 'Android', DeviceType::MOBILE ], + 'http://wap1.sharp.com/uaprof/SharpSH8188U.xml' => [ 'Sharp', 'SH8188U', 'Android', DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/SHP_SH831T_3_20120214.xml' => [ 'Sharp', 'SH831T', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/S1M/SH837M.xml' => [ 'Sharp', 'SH837M', 'Android', DeviceType::MOBILE ], + 'http://www.c2dms.com/UAProfile/S1U/SH837W.xml' => [ 'Sharp', 'SH837W', 'Android', DeviceType::MOBILE ], + 'http://cn.c2dms.com/UAProfile/VKY/SH931W.xml' => [ 'Sharp', 'SH931W', 'Android', DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAprofTM/tm100.xml' => [ 'Sharp', 'TM100', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAprofTM/tm150.xml' => [ 'Sharp', 'TM150', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAprofTM/tm200.xml' => [ 'Sharp', 'TM200', null, DeviceType::MOBILE ], + 'http://sharp-mobile.com/UAprof/V750.xml' => [ 'Sharp', 'V750', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/portal/UAProf/UAP.aspx?device=A21a&v=03' => [ 'Siemens', 'A21', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/portal/UAProf/UAP.aspx?device=A31C&v=02' => [ 'Siemens', 'A31', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/A60_14.xml' => [ 'Siemens', 'A60', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/A60_20.xml' => [ 'Siemens', 'A60', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/portal/UAProf/UAP.aspx?device=AF51' => [ 'Siemens', 'AF51', null, DeviceType::MOBILE ], + 'http://communicationmarket.siemens.de/portal/UAProf/UAP.aspx?device=AL21' => [ 'Siemens', 'AL21', null, DeviceType::MOBILE ], + 'http://uap.benq.com/mb_ap75/sie_ap75_v3.xml' => [ 'Siemens', 'AP75', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/C60_10.xml' => [ 'Siemens', 'C60', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/C60_14.xml' => [ 'Siemens', 'C60', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/portal/UAProf/UAP.aspx?device=C66' => [ 'Siemens', 'C66', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/portal/UAProf/UAP.aspx?device=C72' => [ 'Siemens', 'C72', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/portal/UAProf/UAP.aspx?CF62' => [ 'Siemens', 'CF62', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/M55_01.xml' => [ 'Siemens', 'M55', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/M55_07.xml' => [ 'Siemens', 'M55', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/M55_11.xml' => [ 'Siemens', 'M55', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/MC60_10.xml' => [ 'Siemens', 'MC60', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/S55_00.xml' => [ 'Siemens', 'S55', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/S55_04.xml' => [ 'Siemens', 'S55', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/S55_05.xml' => [ 'Siemens', 'S55', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/S55_06.xml' => [ 'Siemens', 'S55', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/S55_20.xml' => [ 'Siemens', 'S55', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/portal/UAProf/UAP.aspx?SF65' => [ 'Siemens', 'SF65', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/portal/UAProf/UAP.aspx?SK65' => [ 'Siemens', 'SK65', null, DeviceType::MOBILE ], + 'http://www.blackberry.net/go/mobile/profiles/uaprof/Siemens SK65/3.8.0.rdf' => [ 'Siemens', 'SK65', 'BlackBerry OS', DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/SL55_02.xml' => [ 'Siemens', 'SL55', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/SL55_14.xml' => [ 'Siemens', 'SL55', null, DeviceType::MOBILE ], + 'http://communication-market.siemens.de/UAProf/ST55_01.xml' => [ 'Siemens', 'SL55', null, DeviceType::MOBILE ], + 'http://wap.annyway.com/UAProf/cgi-bin/UAProf?AnnyWap1.2' => [ 'Siemens', 'SX45', 'Windows Mobile', DeviceType::MOBILE ], + 'http://communication-market.siemens.de/portal/UAProf/UAP.aspx?DeviceID=SX66' => [ 'Siemens', 'SX66', null, DeviceType::MOBILE ], + 'http://skyspring.co.kr/UAprof/UAprof_Sp710_wap20.xml' => [ 'Skyspring', 'SP710', null, DeviceType::MOBILE ], + 'http://skyspring.co.kr/UAprof/UAprof_SP770.xml' => [ 'Skyspring', 'SP770', null, DeviceType::MOBILE ], + 'http://wap.my-fun.cn/tclPortal/ua/Smartfren_E781A_20110928.xml' => [ 'Smartfren', 'Xstre@m', 'Brew', DeviceType::MOBILE ], + 'http://uaprof.softbank.ne.jp/uaprof/3G_103P.xml' => [ 'Softbank', '103P', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiY300-J1-Normal.xml' => [ 'Softbank', '204HW', 'Android', DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/705SCUAProf.rdf' => [ 'Softbank', '705SC', null, DeviceType::MOBILE ], + 'http://nec-uap.com/prof/706N.xml' => [ 'Softbank', '706N', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/706SCUAProf.rdf' => [ 'Softbank', '706SC', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/707SCUAProf.rdf' => [ 'Softbank', '707SC', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/707SC2UAProf.rdf' => [ 'Softbank', '707SCII', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/708SCUAProf.rdf' => [ 'Softbank', '708SC', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/709SCUAProf.rdf' => [ 'Softbank', '709SC', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/805SCUAProf.rdf' => [ 'Softbank', '805SC', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/811SH_SHJ001_3g.xml' => [ 'Softbank', '811SH', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/SoftBank/810T_r100_3G.xml' => [ 'Softbank', '811T', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/SoftBank/811T_r100_3G.xml' => [ 'Softbank', '811T', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/SoftBank/814T_r100_3G.xml' => [ 'Softbank', '814T', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/SoftBank/815T_r100_3G.xml' => [ 'Softbank', '815T', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/820SCUAProf.xml' => [ 'Softbank', '820SC', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/821SCUAProf.xml' => [ 'Softbank', '821SC', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/910SH_SHJ001_3g.xml' => [ 'Softbank', '910SH', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/SoftBank/910T_r100_3G.xml' => [ 'Softbank', '910T', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/911SH_SHJ001_3g.xml' => [ 'Softbank', '911SH', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/SoftBank/911T_r100_3G.xml' => [ 'Softbank', '911T', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/920SCUAProf.xml' => [ 'Softbank', '920SC', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/SoftBank/920T_r100_3G.xml' => [ 'Softbank', '920T', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/SoftBank/921T_r100_3G.xml' => [ 'Softbank', '921T', null, DeviceType::MOBILE ], + 'http://omaptt.net/xp1/wap/uapM639.xml' => [ 'Sonim', 'XP1', null, DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-04ER1002.xml' => [ 'Sony', 'Xperia A', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-04ER1003.xml' => [ 'Sony', 'Xperia A', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-04FR1421.xml' => [ 'Sony', 'Xperia A2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT26wR621.xml' => [ 'Sony', 'Xperia Acro S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT26wR601.xml' => [ 'Sony', 'Xperia Acro S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT26wR611.xml' => [ 'Sony', 'Xperia Acro S', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-01ER901.xml' => [ 'Sony', 'Xperia AX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-01ER911.xml' => [ 'Sony', 'Xperia AX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C2305R401.xml' => [ 'Sony', 'Xperia C', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/S39hR401.xml' => [ 'Sony', 'Xperia C', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2502R1901.xml' => [ 'Sony', 'Xperia C3 dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/S55tR1901.xml' => [ 'Sony', 'Xperia C3 dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/S55uR1901.xml' => [ 'Sony', 'Xperia C3 dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C1504 UnavailableR402.xml' => [ 'Sony', 'Xperia E', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C1504R402.xml' => [ 'Sony', 'Xperia E', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C1505R402.xml' => [ 'Sony', 'Xperia E', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C1604JBR402.xml' => [ 'Sony', 'Xperia E dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C1604R402.xml' => [ 'Sony', 'Xperia E dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C1605JBR402.xml' => [ 'Sony', 'Xperia E dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C1605R402.xml' => [ 'Sony', 'Xperia E dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2004R2001.xml' => [ 'Sony', 'Xperia E1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2004R2011.xml' => [ 'Sony', 'Xperia E1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2005R2001.xml' => [ 'Sony', 'Xperia E1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2005R2011.xml' => [ 'Sony', 'Xperia E1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2104R2011.xml' => [ 'Sony', 'Xperia E1 dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2105R2001.xml' => [ 'Sony', 'Xperia E1 dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2114R2001.xml' => [ 'Sony', 'Xperia E1 dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2203R1801.xml' => [ 'Sony', 'Xperia E3', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2206R1801.xml' => [ 'Sony', 'Xperia E3', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2243R1801.xml' => [ 'Sony', 'Xperia E3', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D5103R1411.xml' => [ 'Sony', 'Xperia G', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LotusR620.xml' => [ 'Sony', 'Xperia Go', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/ST27aR620.xml' => [ 'Sony', 'Xperia Go', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/ST27iR620.xml' => [ 'Sony', 'Xperia Go', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST27aR601.xml' => [ 'Sony', 'Xperia Go', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST27aR611.xml' => [ 'Sony', 'Xperia Go', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST27iR601.xml' => [ 'Sony', 'Xperia Go', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST27iR611.xml' => [ 'Sony', 'Xperia Go', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-04DR701.xml' => [ 'Sony', 'Xperia GX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-04DR911.xml' => [ 'Sony', 'Xperia GX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT28hR621.xml' => [ 'Sony', 'Xperia Ion', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT28iR1002.xml' => [ 'Sony', 'Xperia Ion', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT28iR621.xml' => [ 'Sony', 'Xperia Ion', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT28atR601.xml' => [ 'Sony', 'Xperia Ion', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT28hR411.xml' => [ 'Sony', 'Xperia Ion', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT28hR601.xml' => [ 'Sony', 'Xperia Ion', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT28hR611.xml' => [ 'Sony', 'Xperia Ion', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT28iR601.xml' => [ 'Sony', 'Xperia Ion', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT28iR611.xml' => [ 'Sony', 'Xperia Ion', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/ST26aR402.xml' => [ 'Sony', 'Xperia J', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/ST26iR402.xml' => [ 'Sony', 'Xperia J', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST26R402.xml' => [ 'Sony', 'Xperia J', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C2104R401.xml' => [ 'Sony', 'Xperia L', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C2105R401.xml' => [ 'Sony', 'Xperia L', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/S36hR401.xml' => [ 'Sony', 'Xperia L', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C1904R401.xml' => [ 'Sony', 'Xperia M', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C1905R401.xml' => [ 'Sony', 'Xperia M', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C19R401.xml' => [ 'Sony', 'Xperia M', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2302R1811.xml' => [ 'Sony', 'Xperia M2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2303R1811.xml' => [ 'Sony', 'Xperia M2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2305R1811.xml' => [ 'Sony', 'Xperia M2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2306R1811.xml' => [ 'Sony', 'Xperia M2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2403R1811.xml' => [ 'Sony', 'Xperia M2 Aqua', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D2406R1811.xml' => [ 'Sony', 'Xperia M2 Aqua', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/ST23aR402.xml' => [ 'Sony', 'Xperia Miro', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/ST23iR402.xml' => [ 'Sony', 'Xperia Miro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MT25iR411.xml' => [ 'Sony', 'Xperia Neo L', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT22iR620.xml' => [ 'Sony', 'Xperia P', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT22iR601.xml' => [ 'Sony', 'Xperia P', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT22iR611.xml' => [ 'Sony', 'Xperia P', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT26iiR621.xml' => [ 'Sony', 'Xperia S', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT26iR1002.xml' => [ 'Sony', 'Xperia S', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT26iR621.xml' => [ 'Sony', 'Xperia S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Android on nozomiR601.xml' => [ 'Sony', 'Xperia S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT26iiR601.xml' => [ 'Sony', 'Xperia S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT26iiR611.xml' => [ 'Sony', 'Xperia S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT26iR301.xml' => [ 'Sony', 'Xperia S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT26iR411.xml' => [ 'Sony', 'Xperia S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT26iR601.xml' => [ 'Sony', 'Xperia S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT26iR611.xml' => [ 'Sony', 'Xperia S', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/MT27iR620.xml' => [ 'Sony', 'Xperia Sola', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MT27iR601.xml' => [ 'Sony', 'Xperia Sola', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MT27iR611.xml' => [ 'Sony', 'Xperia Sola', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/pepperR611.xml' => [ 'Sony', 'Xperia Sola', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Xperia SolaR611.xml' => [ 'Sony', 'Xperia Sola', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5302R1211.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5302R1411.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5302R401.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5303R1211.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5303R1411.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5303R401.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5303R701.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5306R1211.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5306R1401.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5306R1411.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5306R401.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/M35cR401.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/M35hR1211.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/M35hR1411.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/M35hR401.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/M35tR401.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/Xperiaâ„¢ SPR1211.xml' => [ 'Sony', 'Xperia SP', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-05DR701.xml' => [ 'Sony', 'Xperia SX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-05DR911.xml' => [ 'Sony', 'Xperia SX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT30aR1401.xml' => [ 'Sony', 'Xperia T', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT30aR1411.xml' => [ 'Sony', 'Xperia T', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT30aR701.xml' => [ 'Sony', 'Xperia T', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT30aR911.xml' => [ 'Sony', 'Xperia T', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT30pR1411.xml' => [ 'Sony', 'Xperia T', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT30pR701.xml' => [ 'Sony', 'Xperia T', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT30pR911.xml' => [ 'Sony', 'Xperia T', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT30pR921.xml' => [ 'Sony', 'Xperia T', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D5303R1411.xml' => [ 'Sony', 'Xperia T2 Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D5303R1903.xml' => [ 'Sony', 'Xperia T2 Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D5306R1903.xml' => [ 'Sony', 'Xperia T2 Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D5306R1912.xml' => [ 'Sony', 'Xperia T2 Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D5316R1903.xml' => [ 'Sony', 'Xperia T2 Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D5322R1903.xml' => [ 'Sony', 'Xperia T2 Ultra', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/XM50hR1911.xml' => [ 'Sony', 'Xperia T2 Ultra', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/XM50hR1912.xml' => [ 'Sony', 'Xperia T2 Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/XM50tR1903.xml' => [ 'Sony', 'Xperia T2 Ultra', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/XM50tR1912.xml' => [ 'Sony', 'Xperia T2 Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D5322R1912.xml' => [ 'Sony', 'Xperia T2 Ultra dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/XM50hR1903.xml' => [ 'Sony', 'Xperia T2 Ultra dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D5103R1801.xml' => [ 'Sony', 'Xperia T3', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D5106R1801.xml' => [ 'Sony', 'Xperia T3', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/M50wR1801.xml' => [ 'Sony', 'Xperia T3', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/PolluxWindyR1002.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP311R1002.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP311R1003.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP311R1004.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP311R1005.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP312R1002.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP312R1003.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP312R1004.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SGP321R1002.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP321R1003.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP321R1004.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP321R1005.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP341R1002.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP341R1003.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP341R1004.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP341R1005.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP351R1002.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SO-03ER1002.xml' => [ 'Sony', 'Xperia Tablet Z', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP412R1421.xml' => [ 'Sony', 'Xperia Tablet Z Ultra', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP511R1701.xml' => [ 'Sony', 'Xperia Tablet Z2', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP512R1701.xml' => [ 'Sony', 'Xperia Tablet Z2', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SGP521R1701.xml' => [ 'Sony', 'Xperia Tablet Z2', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SO-05FR1701.xml' => [ 'Sony', 'Xperia Tablet Z2', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/SOT21R1701.xml' => [ 'Sony', 'Xperia Tablet Z2', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/ST21aR402.xml' => [ 'Sony', 'Xperia Tipo', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/ST21iR402.xml' => [ 'Sony', 'Xperia Tipo', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST21iR402.xml' => [ 'Sony', 'Xperia Tipo', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST21R402.xml' => [ 'Sony', 'Xperia Tipo', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/ST21a2R402.xml' => [ 'Sony', 'Xperia Tipo Dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/ST21i2R402.xml' => [ 'Sony', 'Xperia Tipo Dual', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT30atR601.xml' => [ 'Sony', 'Xperia TL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT30atR701.xml' => [ 'Sony', 'Xperia TL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT30atR911.xml' => [ 'Sony', 'Xperia TL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT29iR1002.xml' => [ 'Sony', 'Xperia TX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT29iR1411.xml' => [ 'Sony', 'Xperia TX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT29iR601.xml' => [ 'Sony', 'Xperia TX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT29iR701.xml' => [ 'Sony', 'Xperia TX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT29iR911.xml' => [ 'Sony', 'Xperia TX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT29iR921.xml' => [ 'Sony', 'Xperia TX', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/HayabusaR601.xml' => [ 'Sony', 'Xperia TX', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT29iR601.xml' => [ 'Sony', 'Xperia TX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/ST25iR620.xml' => [ 'Sony', 'Xperia U', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST25aR601.xml' => [ 'Sony', 'Xperia U', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST25aR611.xml' => [ 'Sony', 'Xperia U', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST25iR601.xml' => [ 'Sony', 'Xperia U', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST25iR611.xml' => [ 'Sony', 'Xperia U', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SOL22R1002.xml' => [ 'Sony', 'Xperia UL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SOL22R1003.xml' => [ 'Sony', 'Xperia UL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT25iR1411.xml' => [ 'Sony', 'Xperia V', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT25iR701.xml' => [ 'Sony', 'Xperia V', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT25iR901.xml' => [ 'Sony', 'Xperia V', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT25iR911.xml' => [ 'Sony', 'Xperia V', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT25iR921.xml' => [ 'Sony', 'Xperia V', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT25cR901.xml' => [ 'Sony', 'Xperia VC', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT25cR911.xml' => [ 'Sony', 'Xperia VC', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SOL21R901.xml' => [ 'Sony', 'Xperia VL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SOL21R911.xml' => [ 'Sony', 'Xperia VL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SOL21R921.xml' => [ 'Sony', 'Xperia VL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6602R1002.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6602R1003.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6602R1004.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6602R1005.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6602R402.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6603R1002.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6603R1003.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6603R1004.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6603R1005.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6606R1002.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6606R1003.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6606R1004.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6616R1002.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6616R1004.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6616R1005.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L36hR1002.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L36hR1003.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L36hR1004.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L36hR1005.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L36hR911.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-02ER1002.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-02ER1003.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-02ER1005.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-02ER1411.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/C6603R611.xml' => [ 'Sony', 'Xperia Z', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6802R1002.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6802R1401.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6802R1411.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6802R1421.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6806R1401.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6806R1411.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6806R1421.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6833R1401.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6833R1411.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/C6833R1421.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SOL24R1401.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SOL24R1421.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/XL39hR1401.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::TABLET ], + 'http://uaprof.sonymobile.com/XL39hR1411.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/XL39hR1421.xml' => [ 'Sony', 'Xperia Z Ultra', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6902R1401.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6902R1411.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6902R1421.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6903R1401.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6903R1411.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6903R1421.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6906R1401.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6906R1411.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6906R1421.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6916R1411.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6943R1401.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6943R1411.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6943R1421.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L39hR1003.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L39hR1401.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L39hR1411.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L39hR1421.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L39hR911.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L39tR1401.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L39uR1401.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-01FR1401.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-01FR1411.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-01FR1421.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SOL23R1401.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SOL23R1421.xml' => [ 'Sony', 'Xperia Z1', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D5503R1411.xml' => [ 'Sony', 'Xperia Z1 Compact', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D5503R1421.xml' => [ 'Sony', 'Xperia Z1 Compact', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/M51wR1411.xml' => [ 'Sony', 'Xperia Z1 Compact', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/M51wR1421.xml' => [ 'Sony', 'Xperia Z1 Compact', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-02FR1401.xml' => [ 'Sony', 'Xperia Z1f', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-02FR1421.xml' => [ 'Sony', 'Xperia Z1f', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D6502R1701.xml' => [ 'Sony', 'Xperia Z2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D6503R1701.xml' => [ 'Sony', 'Xperia Z2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D6543R1701.xml' => [ 'Sony', 'Xperia Z2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L50tR1701.xml' => [ 'Sony', 'Xperia Z2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L50uR1701.xml' => [ 'Sony', 'Xperia Z2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L50wR1701.xml' => [ 'Sony', 'Xperia Z2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L50wR911.xml' => [ 'Sony', 'Xperia Z2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-03FR1701.xml' => [ 'Sony', 'Xperia Z2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/D6563R1701.xml' => [ 'Sony', 'Xperia Z2a', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L55tR2301.xml' => [ 'Sony', 'Xperia Z3', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L55uR2301.xml' => [ 'Sony', 'Xperia Z3', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6502R1002.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6502R1003.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6502R1004.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6502R1005.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6503R1002.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6503R1003.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6503R1004.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6503R1005.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6503R1411.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6503R701.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6506R1002.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6506R1003.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6506R1004.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C6506R1005.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L35hR1002.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L35hR1003.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/L35hR1005.xml' => [ 'Sony', 'Xperia ZL', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SOL25R1701.xml' => [ 'Sony', 'Xperia ZL2', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5502R1002.xml' => [ 'Sony', 'Xperia ZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5502R1003.xml' => [ 'Sony', 'Xperia ZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5502R1004.xml' => [ 'Sony', 'Xperia ZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5502R1005.xml' => [ 'Sony', 'Xperia ZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5503R1002.xml' => [ 'Sony', 'Xperia ZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5503R1003.xml' => [ 'Sony', 'Xperia ZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5503R1004.xml' => [ 'Sony', 'Xperia ZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/C5503R1005.xml' => [ 'Sony', 'Xperia ZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/M36hR1002.xml' => [ 'Sony', 'Xperia ZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/M36hR1003.xml' => [ 'Sony', 'Xperia ZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/M36hR1004.xml' => [ 'Sony', 'Xperia ZR', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/M36hR1005.xml' => [ 'Sony', 'Xperia ZR', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/A100iR201.xml' => [ 'Sony Ericsson', 'A100i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/A260R101.xml' => [ 'Sony Ericsson', 'A260', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/A270R101.xml' => [ 'Sony Ericsson', 'A270', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/A290iR101.xml' => [ 'Sony Ericsson', 'A290i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/A8iR101.xml' => [ 'Sony Ericsson', 'A8i', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/U100iR101.xml' => [ 'Sony Ericsson', 'Aino', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/U10iR101.xml' => [ 'Sony Ericsson', 'Aino', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ArcR402.xml' => [ 'Sony Ericsson', 'Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/M1iR101.xml' => [ 'Sony Ericsson', 'Aspen', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/C123R101.xml' => [ 'Sony Ericsson', 'C123', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/C510R101.xml' => [ 'Sony Ericsson', 'C510', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/C510aR101.xml' => [ 'Sony Ericsson', 'C510a', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/C702R101.xml' => [ 'Sony Ericsson', 'C702', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/C901R101.xml' => [ 'Sony Ericsson', 'C901', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/C902R101.xml' => [ 'Sony Ericsson', 'C902', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/C905R101.xml' => [ 'Sony Ericsson', 'C905', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/C905R101-3G.xml' => [ 'Sony Ericsson', 'C905v', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/J108aR101.xml' => [ 'Sony Ericsson', 'Cedar', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/J108iR101.xml' => [ 'Sony Ericsson', 'Cedar', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/J10i2R101.xml' => [ 'Sony Ericsson', 'Elm', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/J10iR101.xml' => [ 'Sony Ericsson', 'Elm', null, DeviceType::MOBILE ], + 'http://www.sonyericsson.com/uaprof/R300R101.xml' => [ 'Sony Ericsson', 'F300', null, DeviceType::MOBILE ], + 'http://www.sonyericsson.com/uaprof/F305R101.xml' => [ 'Sony Ericsson', 'F305', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/G502R101.xml' => [ 'Sony Ericsson', 'G502', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAProf/G700R100.xml' => [ 'Sony Ericsson', 'G700', 'UIQ', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/G705R101.xml' => [ 'Sony Ericsson', 'G705', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAProf/G900R100.xml' => [ 'Sony Ericsson', 'G900', 'UIQ', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/J20iR101.xml' => [ 'Sony Ericsson', 'Hazel', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K310iR301.xml' => [ 'Sony Ericsson', 'K310i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K530iR201.xml' => [ 'Sony Ericsson', 'K530i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K550cR201.xml' => [ 'Sony Ericsson', 'K550c', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K550iR201.xml' => [ 'Sony Ericsson', 'K550i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K610iR201.xml' => [ 'Sony Ericsson', 'K610i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K630iR101.xml' => [ 'Sony Ericsson', 'K630i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K660iR101.xml' => [ 'Sony Ericsson', 'K660i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K770iR201-3G.xml' => [ 'Sony Ericsson', 'K770i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K770iR201.xml' => [ 'Sony Ericsson', 'K770i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K790aR201.xml' => [ 'Sony Ericsson', 'K790a', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K790iR201.xml' => [ 'Sony Ericsson', 'K790i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K800iR201.xml' => [ 'Sony Ericsson', 'K800i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K810iR201.xml' => [ 'Sony Ericsson', 'K810i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/K850iR101.xml' => [ 'Sony Ericsson', 'K850i', null, DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/WT19iR1002.xml' => [ 'Sony Ericsson', 'Live with Walkman', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Live with WalkmanR411.xml' => [ 'Sony Ericsson', 'Live with Walkman', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/WT19aR402.xml' => [ 'Sony Ericsson', 'Live with Walkman', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/WT19aR411.xml' => [ 'Sony Ericsson', 'Live with Walkman', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/WT19iR402.xml' => [ 'Sony Ericsson', 'Live with Walkman', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/WT19iR411.xml' => [ 'Sony Ericsson', 'Live with Walkman', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAProf/M600iR100.xml' => [ 'Sony Ericsson', 'M600i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAProf/M608cR100.xml' => [ 'Sony Ericsson', 'M608c', 'UIQ', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/uaprof/WT13iR101.xml' => [ 'Sony Ericsson', 'Mix Walkman', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/J105aR101.xml' => [ 'Sony Ericsson', 'Naite', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/J105iR101.xml' => [ 'Sony Ericsson', 'Naite', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAProf/P1iR100.xml' => [ 'Sony Ericsson', 'P1i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/P800R101.xml' => [ 'Sony Ericsson', 'P800', 'UIQ', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/P800R102.xml' => [ 'Sony Ericsson', 'P800', 'UIQ', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/P900R101.xml' => [ 'Sony Ericsson', 'P900', 'UIQ', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/P908R101.xml' => [ 'Sony Ericsson', 'P908', 'UIQ', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAProf/P990iR100.xml' => [ 'Sony Ericsson', 'P990i', 'UIQ', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAProf/P200R100.xml' => [ 'Sony Ericsson', 'Paris', 'UIQ', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/S500iR201.xml' => [ 'Sony Ericsson', 'S500i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/U1aR000.xml' => [ 'Sony Ericsson', 'Satio', 'Series60', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/U1iR000.xml' => [ 'Sony Ericsson', 'Satio', 'Series60', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/U_1R000.xml' => [ 'Sony Ericsson', 'Satio', 'Series60', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T100R101.xml' => [ 'Sony Ericsson', 'T100', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T123iR101.xml' => [ 'Sony Ericsson', 'T123', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T200.xml' => [ 'Sony Ericsson', 'T200', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T226R101.xml' => [ 'Sony Ericsson', 'T226', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T230R101.xml' => [ 'Sony Ericsson', 'T230', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T238R101.xml' => [ 'Sony Ericsson', 'T238', null, DeviceType::MOBILE ], + 'http://www.sonyericsson.com/uaprof/T250iR101.xml' => [ 'Sony Ericsson', 'T250i', null, DeviceType::MOBILE ], + 'http://www.sonyericsson.com/uaprof/T280aR101.xml' => [ 'Sony Ericsson', 'T280a', null, DeviceType::MOBILE ], + 'http://www.sonyericsson.com/uaprof/T280iR101.xml' => [ 'Sony Ericsson', 'T280i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T300R101.xml' => [ 'Sony Ericsson', 'T300', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T300R201.xml' => [ 'Sony Ericsson', 'T300', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T302R201.xml' => [ 'Sony Ericsson', 'T302', null, DeviceType::MOBILE ], + 'http://www.sonyericsson.com/uaprof/T303R101.xml' => [ 'Sony Ericsson', 'T303', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T306R101.xml' => [ 'Sony Ericsson', 'T306', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T310R201.xml' => [ 'Sony Ericsson', 'T310', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T312R201.xml' => [ 'Sony Ericsson', 'T312', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T600R101.xml' => [ 'Sony Ericsson', 'T600', null, DeviceType::MOBILE ], + 'http://device.sprintpcs.com/SonyEricsson/SEMCT608/r1a.rdf' => [ 'Sony Ericsson', 'T608', null, DeviceType::MOBILE ], + 'http://wap.sonyericssonmobile.com/UAprof/T61.xml' => [ 'Sony Ericsson', 'T61', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T610R101.xml' => [ 'Sony Ericsson', 'T610', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T610R201.xml' => [ 'Sony Ericsson', 'T610', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T610R301.xml' => [ 'Sony Ericsson', 'T610', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T610R401.xml' => [ 'Sony Ericsson', 'T610', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T616R101.xml' => [ 'Sony Ericsson', 'T616', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T616R201.xml' => [ 'Sony Ericsson', 'T616', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T618R101.xml' => [ 'Sony Ericsson', 'T618', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T618R201.xml' => [ 'Sony Ericsson', 'T618', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T618R301.xml' => [ 'Sony Ericsson', 'T618', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T618R401.xml' => [ 'Sony Ericsson', 'T618', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T628R401.xml' => [ 'Sony Ericsson', 'T628', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T630R401.xml' => [ 'Sony Ericsson', 'T630', null, DeviceType::MOBILE ], + 'http://wap.sonyericssonmobile.com/UAprof/T65.xml' => [ 'Sony Ericsson', 'T65', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAProf/T650iR201.xml' => [ 'Sony Ericsson', 'T650i', null, DeviceType::MOBILE ], + 'http://wap.sonyericssonmobile.com/UAprof/T68R1.xml' => [ 'Sony Ericsson', 'T68', null, DeviceType::MOBILE ], + 'http://wap.sonyericssonmobile.com/UAprof/T68R201.xml' => [ 'Sony Ericsson', 'T68', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T700R101.xml' => [ 'Sony Ericsson', 'T700', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/T707R101.xml' => [ 'Sony Ericsson', 'T707', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/TM506R101.xml' => [ 'Sony Ericsson', 'TM506', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/uaprof/CK13iR101.xml' => [ 'Sony Ericsson', 'txt', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/uaprof/CK15aR101.xml' => [ 'Sony Ericsson', 'txt Pro', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/uaprof/CK15iR101.xml' => [ 'Sony Ericsson', 'txt Pro', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/V640iR101-3G.xml' => [ 'Sony Ericsson', 'V640i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/V640iR101.xml' => [ 'Sony Ericsson', 'V640i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/U5aR000.xml' => [ 'Sony Ericsson', 'Vivaz', 'Series60', DeviceType::MOBILE ], + 'http://www.sonyericsson.com/downloads/U5iR000.xml' => [ 'Sony Ericsson', 'Vivaz', 'Series60', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/U8aR000.xml' => [ 'Sony Ericsson', 'Vivaz Pro', 'Series60', DeviceType::MOBILE ], + 'http://www.sonyericsson.com/downloads/U8iR000.xml' => [ 'Sony Ericsson', 'Vivaz Pro', 'Series60', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W200iR301.xml' => [ 'Sony Ericsson', 'W200i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W20iR101.xml' => [ 'Sony Ericsson', 'W20i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W300iR301.xml' => [ 'Sony Ericsson', 'W300i', null, DeviceType::MOBILE ], + 'http://www.sonyericsson.com/uaprof/W302R101.xml' => [ 'Sony Ericsson', 'W302', null, DeviceType::MOBILE ], + 'http://www.sonyericsson.com/uaprof/W302R201.xml' => [ 'Sony Ericsson', 'W302', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W350iR201.xml' => [ 'Sony Ericsson', 'W350i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W380iR201.xml' => [ 'Sony Ericsson', 'W380i', null, DeviceType::MOBILE ], + 'http://www.sonyericsson.com/downloads/W395R101.xml' => [ 'Sony Ericsson', 'W395', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W508R101.xml' => [ 'Sony Ericsson', 'W508', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W595R101.xml' => [ 'Sony Ericsson', 'W595', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W610iR201.xml' => [ 'Sony Ericsson', 'W610i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W660iR201-3G.xml' => [ 'Sony Ericsson', 'W660i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W660iR201.xml' => [ 'Sony Ericsson', 'W660i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W705R101.xml' => [ 'Sony Ericsson', 'W705', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W715R101-HS.xml' => [ 'Sony Ericsson', 'W715', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W715R101.xml' => [ 'Sony Ericsson', 'W715', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W760iR101.xml' => [ 'Sony Ericsson', 'W760i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/E16iR202.xml' => [ 'Sony Ericsson', 'W8 Walkman', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W890iR101.xml' => [ 'Sony Ericsson', 'W890i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W902R101.xml' => [ 'Sony Ericsson', 'W902', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W908cR101.xml' => [ 'Sony Ericsson', 'W908c', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W910iR101-3G.xml' => [ 'Sony Ericsson', 'W910i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W910iR101-HS.xml' => [ 'Sony Ericsson', 'W910i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W910iR101.xml' => [ 'Sony Ericsson', 'W910i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAProf/W950iR100.xml' => [ 'Sony Ericsson', 'W950i', 'UIQ', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W995R101.xml' => [ 'Sony Ericsson', 'W995', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/W995aR101.xml' => [ 'Sony Ericsson', 'W995a', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/WT18iR101.xml' => [ 'Sony Ericsson', 'Walkman', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/IS11SR301.xml' => [ 'Sony Ericsson', 'Xperia Acro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/IS11SR402.xml' => [ 'Sony Ericsson', 'Xperia Acro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-02CR301.xml' => [ 'Sony Ericsson', 'Xperia Acro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-02CR402.xml' => [ 'Sony Ericsson', 'Xperia Acro', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/SO-03DR621.xml' => [ 'Sony Ericsson', 'Xperia Acro HD', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/IS12SR601.xml' => [ 'Sony Ericsson', 'Xperia Acro HD', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/IS12SR611.xml' => [ 'Sony Ericsson', 'Xperia Acro HD', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-03DR601.xml' => [ 'Sony Ericsson', 'Xperia Acro HD', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-03DR611.xml' => [ 'Sony Ericsson', 'Xperia Acro HD', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/ST17iR402.xml' => [ 'Sony Ericsson', 'Xperia Active', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST17aR402.xml' => [ 'Sony Ericsson', 'Xperia Active', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST17aR411.xml' => [ 'Sony Ericsson', 'Xperia Active', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST17iR402.xml' => [ 'Sony Ericsson', 'Xperia Active', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST17iR411.xml' => [ 'Sony Ericsson', 'Xperia Active', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT15iR1002.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT15iR1401.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT15aR301.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT15aR401.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT15aR402.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT15aR411.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT15iR202.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT15iR301.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT15iR401.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT15iR402.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT15iR411.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT15R301.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT15R411.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-01CR301.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-01CR402.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-01CR411.xml' => [ 'Sony Ericsson', 'Xperia Arc', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT18iR1002.xml' => [ 'Sony Ericsson', 'Xperia Arc S', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/LT18iR1401.xml' => [ 'Sony Ericsson', 'Xperia Arc S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT18aR402.xml' => [ 'Sony Ericsson', 'Xperia Arc S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT18aR411.xml' => [ 'Sony Ericsson', 'Xperia Arc S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT18iR402.xml' => [ 'Sony Ericsson', 'Xperia Arc S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT18iR411.xml' => [ 'Sony Ericsson', 'Xperia Arc S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT18iR601.xml' => [ 'Sony Ericsson', 'Xperia Arc S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT18R402.xml' => [ 'Sony Ericsson', 'Xperia Arc S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/LT18R411.xml' => [ 'Sony Ericsson', 'Xperia Arc S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Xperia Arc SR411.xml' => [ 'Sony Ericsson', 'Xperia Arc S', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/S51SER402.xml' => [ 'Sony Ericsson', 'Xperia Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST15aR401.xml' => [ 'Sony Ericsson', 'Xperia Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST15aR402.xml' => [ 'Sony Ericsson', 'Xperia Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST15aR411.xml' => [ 'Sony Ericsson', 'Xperia Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST15iR301.xml' => [ 'Sony Ericsson', 'Xperia Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST15iR401.xml' => [ 'Sony Ericsson', 'Xperia Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST15iR402.xml' => [ 'Sony Ericsson', 'Xperia Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST15iR411.xml' => [ 'Sony Ericsson', 'Xperia Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SK17aR401.xml' => [ 'Sony Ericsson', 'Xperia Mini Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SK17aR402.xml' => [ 'Sony Ericsson', 'Xperia Mini Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SK17aR411.xml' => [ 'Sony Ericsson', 'Xperia Mini Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SK17iR401.xml' => [ 'Sony Ericsson', 'Xperia Mini Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SK17iR402.xml' => [ 'Sony Ericsson', 'Xperia Mini Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SK17iR411.xml' => [ 'Sony Ericsson', 'Xperia Mini Pro', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/MT15iR1002.xml' => [ 'Sony Ericsson', 'Xperia Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MT15aR402.xml' => [ 'Sony Ericsson', 'Xperia Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MT15aR411.xml' => [ 'Sony Ericsson', 'Xperia Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MT15iR301.xml' => [ 'Sony Ericsson', 'Xperia Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MT15iR401.xml' => [ 'Sony Ericsson', 'Xperia Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MT15iR402.xml' => [ 'Sony Ericsson', 'Xperia Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MT15iR411.xml' => [ 'Sony Ericsson', 'Xperia Neo', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/XPERIA NEOR402.xml' => [ 'Sony Ericsson', 'Xperia Neo', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/MT11iR1002.xml' => [ 'Sony Ericsson', 'Xperia Neo V', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MT11aR402.xml' => [ 'Sony Ericsson', 'Xperia Neo V', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MT11aR411.xml' => [ 'Sony Ericsson', 'Xperia Neo V', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MT11iR402.xml' => [ 'Sony Ericsson', 'Xperia Neo V', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MT11iR411.xml' => [ 'Sony Ericsson', 'Xperia Neo V', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-02DR601.xml' => [ 'Sony Ericsson', 'Xperia NX', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-02DR611.xml' => [ 'Sony Ericsson', 'Xperia NX', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/R800iR1401.xml' => [ 'Sony Ericsson', 'Xperia Play', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/R800aR301.xml' => [ 'Sony Ericsson', 'Xperia Play', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/R800aR401.xml' => [ 'Sony Ericsson', 'Xperia Play', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/R800aR402.xml' => [ 'Sony Ericsson', 'Xperia Play', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/R800atR301.xml' => [ 'Sony Ericsson', 'Xperia Play', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/R800iR301.xml' => [ 'Sony Ericsson', 'Xperia Play', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/R800iR401.xml' => [ 'Sony Ericsson', 'Xperia Play', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/R800iR402.xml' => [ 'Sony Ericsson', 'Xperia Play', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/R800iR411.xml' => [ 'Sony Ericsson', 'Xperia Play', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-01DR402.xml' => [ 'Sony Ericsson', 'Xperia Play', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Z1iR301.xml' => [ 'Sony Ericsson', 'Xperia Play', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Z1iR402.xml' => [ 'Sony Ericsson', 'Xperia Play', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MK16aR401.xml' => [ 'Sony Ericsson', 'Xperia Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MK16aR402.xml' => [ 'Sony Ericsson', 'Xperia Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MK16aR411.xml' => [ 'Sony Ericsson', 'Xperia Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MK16iR301.xml' => [ 'Sony Ericsson', 'Xperia Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MK16iR402.xml' => [ 'Sony Ericsson', 'Xperia Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/MK16iR411.xml' => [ 'Sony Ericsson', 'Xperia Pro', 'Android', DeviceType::MOBILE ], + 'http://uaprof.sonymobile.com/ST18iR1002.xml' => [ 'Sony Ericsson', 'Xperia Ray', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-03CR401.xml' => [ 'Sony Ericsson', 'Xperia Ray', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-03CR402.xml' => [ 'Sony Ericsson', 'Xperia Ray', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST18aR401.xml' => [ 'Sony Ericsson', 'Xperia Ray', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST18aR402.xml' => [ 'Sony Ericsson', 'Xperia Ray', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST18aR411.xml' => [ 'Sony Ericsson', 'Xperia Ray', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST18i PremiumR402.xml' => [ 'Sony Ericsson', 'Xperia Ray', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST18iR401.xml' => [ 'Sony Ericsson', 'Xperia Ray', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST18iR402.xml' => [ 'Sony Ericsson', 'Xperia Ray', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST18iR411.xml' => [ 'Sony Ericsson', 'Xperia Ray', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/ST18R411.xml' => [ 'Sony Ericsson', 'Xperia Ray', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X1iR101.xml' => [ 'Sony Ericsson', 'Xperia X1', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-01BR101.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/SO-01BR201.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X10aR101.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X10aR201.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X10aR202.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X10aR301.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X10iR101.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X10iR201.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X10iR202.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X10iR301.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X10iR601.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X10R301.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X10R601.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X10SR301.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X10SR601.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Xperia X10R301.xml' => [ 'Sony Ericsson', 'Xperia X10', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/E10aR102.xml' => [ 'Sony Ericsson', 'Xperia X10 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/E10aR201.xml' => [ 'Sony Ericsson', 'Xperia X10 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/E10aR202.xml' => [ 'Sony Ericsson', 'Xperia X10 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/E10iR102.xml' => [ 'Sony Ericsson', 'Xperia X10 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/E10iR201.xml' => [ 'Sony Ericsson', 'Xperia X10 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/E10iR202.xml' => [ 'Sony Ericsson', 'Xperia X10 Mini', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/U20aR102.xml' => [ 'Sony Ericsson', 'Xperia X10 Mini Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/U20aR201.xml' => [ 'Sony Ericsson', 'Xperia X10 Mini Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/U20aR202.xml' => [ 'Sony Ericsson', 'Xperia X10 Mini Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/U20iR102.xml' => [ 'Sony Ericsson', 'Xperia X10 Mini Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/U20iR201.xml' => [ 'Sony Ericsson', 'Xperia X10 Mini Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/U20iR202.xml' => [ 'Sony Ericsson', 'Xperia X10 Mini Pro', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/X2R301.xml' => [ 'Sony Ericsson', 'Xperia X2', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/E15aR102.xml' => [ 'Sony Ericsson', 'Xperia X8', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/E15aR201.xml' => [ 'Sony Ericsson', 'Xperia X8', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/E15aR202.xml' => [ 'Sony Ericsson', 'Xperia X8', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/E15iR102.xml' => [ 'Sony Ericsson', 'Xperia X8', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/E15iR201.xml' => [ 'Sony Ericsson', 'Xperia X8', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/E15iR202.xml' => [ 'Sony Ericsson', 'Xperia X8', 'Android', DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/uaprof/W150iR101.xml' => [ 'Sony Ericsson', 'Yendo', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Z1010R101.xml' => [ 'Sony Ericsson', 'Z1010', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Z200R101.xml' => [ 'Sony Ericsson', 'Z200', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Z320iR101.xml' => [ 'Sony Ericsson', 'Z320i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Z558cR301.xml' => [ 'Sony Ericsson', 'Z558c', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Z600R301.xml' => [ 'Sony Ericsson', 'Z600', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Z600R401.xml' => [ 'Sony Ericsson', 'Z600', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Z608R301.xml' => [ 'Sony Ericsson', 'Z608', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Z608R401.xml' => [ 'Sony Ericsson', 'Z608', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Z750iR101.xml' => [ 'Sony Ericsson', 'Z750i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Z770iR101.xml' => [ 'Sony Ericsson', 'Z770i', null, DeviceType::MOBILE ], + 'http://wap.sonyericsson.com/UAprof/Z780iR101.xml' => [ 'Sony Ericsson', 'Z780i', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Soshphone_4G.xml' => [ 'SoshPhone', '4G', 'Android', DeviceType::MOBILE ], + 'http://wap.spicegang.in/uaprofile/SPICE-C-810.xml' => [ 'Spice', 'C-810', null, DeviceType::MOBILE ], + 'http://msai.in/uaprof/spice/M5455.xml' => [ 'Spice', 'M-5455 Flo', null, DeviceType::MOBILE ], + 'http://msai.in/uaprof/spice/M5885.xml' => [ 'Spice', 'M-5885 Cappuccino II', 'MTK', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/spice/SPICE_M6700.xml' => [ 'Spice', 'M-6700', null, DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/spice/SPICE_M-6800.xml' => [ 'Spice', 'M-6800', 'MTK', DeviceType::MOBILE ], + 'http://msai.in/uaprof/spice/M6868n.xml' => [ 'Spice', 'M-6868 Flo', 'MTK', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/Spice/Mi-315.xml' => [ 'Spice', 'Mi-315', 'Android', DeviceType::MOBILE ], + 'http://www.commtiva.com/uaprof/E500/UAProf_E500_Froyo.xml' => [ 'Spice', 'Mi-350', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/Spice_Mi350_UAProfile.xml' => [ 'Spice', 'Mi-350', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/Kyocera/KYE4255/1306SP.rdf' => [ 'Sprint', 'E4255', 'Brew', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/KYOCERA/S2151/1.000SP.rdf' => [ 'Sprint', 'S2151', 'Brew', DeviceType::MOBILE ], + 'http://uap.cellon.com/Starmobile_KNIGHT.xml' => [ 'Starmobile', 'Knight', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/starmobile/starmobile.xml' => [ 'Starmobile', 'Roar', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/tmo/ameo-1.0.xml' => [ 'T-Mobile', 'Ameo', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/tmo/ameo-1.1.xml' => [ 'T-Mobile', 'Ameo', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/G2/ua-profile.xml' => [ 'T-Mobile', 'G2', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/TMO/Hero/ua-profile.xml' => [ 'T-Mobile', 'G2', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/LG-L95G.xml' => [ 'T-Mobile', 'G2x', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/P999-M10-D1.xml' => [ 'T-Mobile', 'G2x', 'Android', DeviceType::MOBILE ], + 'http://static.garmincdn.com/uaprof/T-Mobile_Garminfone_1_0.xml' => [ 'T-Mobile', 'Garminfone', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/tmo/mdacp-1.0.xml' => [ 'T-Mobile', 'MDA Compact', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/tmo/mdacp-3.0.xml' => [ 'T-Mobile', 'MDA Compact III', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/tmo/mdapro-1.0.xml' => [ 'T-Mobile', 'MDA Pro', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/tmo/mdatouch-1.0.xml' => [ 'T-Mobile', 'MDA Touch', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/tmo/mdavario-2.0.xml' => [ 'T-Mobile', 'MDA Vario II', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/tmo/mdavario-3.0.xml' => [ 'T-Mobile', 'MDA Vario III', 'Windows Mobile', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8600WCDMA-T-Mobile.xml' => [ 'T-Mobile', 'Move Balance', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/E739-M10-D1.xml' => [ 'T-Mobile', 'myTouch', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8680GPRS-TMO.xml' => [ 'T-Mobile', 'myTouch', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8680WCDMA-TMO.xml' => [ 'T-Mobile', 'myTouch', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/myTouch3G/ua-profile.xml' => [ 'T-Mobile', 'myTouch 3G Slide', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/myTouch4G/ua-profile.xml' => [ 'T-Mobile', 'myTouch 4G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/PD15/ua-profile.xml' => [ 'T-Mobile', 'myTouch 4G', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/Android/Common/myTouch_4G_Slide/ua-profile.xml' => [ 'T-Mobile', 'myTouch 4G Slide', 'Android', DeviceType::MOBILE ], + 'http://gsm.lge.com/html/gsm/C800-M10-D1.xml' => [ 'T-Mobile', 'myTouch Q', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8730GPRS-TMO.xml' => [ 'T-Mobile', 'myTouch Q', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8730WCDMA-TMO.xml' => [ 'T-Mobile', 'myTouch Q', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8651GPRS-TMO.xml' => [ 'T-Mobile', 'Prism', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8651SWCDMA-TMO.xml' => [ 'T-Mobile', 'Prism', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8651WCDMA-TMO.xml' => [ 'T-Mobile', 'Prism', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8686GPRS-Normal.xml' => [ 'T-Mobile', 'Prism II', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8220v100GPRSEclair.xml' => [ 'T-Mobile', 'Pulse', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8220v100WCDMAEclair.xml' => [ 'T-Mobile', 'Pulse', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8220_6v100WCDMA.xml' => [ 'T-Mobile', 'Pulse', 'Android', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/tmo/sda-1.0.xml' => [ 'T-Mobile', 'SDA', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/T-Mobile_Vivacity.xml' => [ 'T-Mobile', 'Vivacity', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_TCL_309T.xml' => [ 'TCL', '309T', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_A890_2SIM.xml' => [ 'TCL', 'A890', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL-A909.xml' => [ 'TCL', 'A909', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_A919.xml' => [ 'TCL', 'A919', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_A980.xml' => [ 'TCL', 'A980', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL A986.xml' => [ 'TCL', 'A986', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_A990.xml' => [ 'TCL', 'A990', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL A998.xml' => [ 'TCL', 'A998', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_H900M.xml' => [ 'TCL', 'H900M', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_Y910T.xml' => [ 'TCL', 'Hero N3', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_i708U.xml' => [ 'TCL', 'i708U', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_i709M.xml' => [ 'TCL', 'i709M', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_i718M.xml' => [ 'TCL', 'i718M', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_i800.xml' => [ 'TCL', 'i800', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/i806.xml' => [ 'TCL', 'i806', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_i806.xml' => [ 'TCL', 'i806', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCT_J320T.xml' => [ 'TCL', 'J320', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCT_J600T.xml' => [ 'TCL', 'J600T', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCT_J630T.xml' => [ 'TCL', 'J630T', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_J720.xml' => [ 'TCL', 'J720', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_J726T.xml' => [ 'TCL', 'J726T', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_S838M.xml' => [ 'TCL', 'J738M', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_J926T.xml' => [ 'TCL', 'J926T', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_J928.xml' => [ 'TCL', 'J928', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_M2M.xml' => [ 'TCL', 'M2M', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_M2U.xml' => [ 'TCL', 'M2U', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_P301M.xml' => [ 'TCL', 'P301M', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_P331M.xml' => [ 'TCL', 'P331M', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_P600.xml' => [ 'TCL', 'P600', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_P606.xml' => [ 'TCL', 'P606', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_P606T.xml' => [ 'TCL', 'P606T', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_P620M_UA.xml' => [ 'TCL', 'P620M', 'Android', DeviceType::MOBILE ], + 'http://114.242.213.43:8080/ThundersoftMDMWeb/resources/mochagw01.xml' => [ 'TCL', 'P650', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL-P688L.xml' => [ 'TCL', 'P688L', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_P728M.xml' => [ 'TCL', 'P728', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL-S700T.xml' => [ 'TCL', 'S700', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_S720.xml' => [ 'TCL', 'S720', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_S720T.xml' => [ 'TCL', 'S720', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_S725T.xml' => [ 'TCL', 'S725', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_S820.xml' => [ 'TCL', 'S820', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_S826L.xml' => [ 'TCL', 'S826', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_S830U.xml' => [ 'TCL', 'S830U', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_S850.xml' => [ 'TCL', 'S850', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_S860.xml' => [ 'TCL', 'S860', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_S950.xml' => [ 'TCL', 'S950', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_S950T.xml' => [ 'TCL', 'S950', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOTCL S950.xml' => [ 'TCL', 'S950', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/ALCATEL_ONE_TOUCH_6043D.xml' => [ 'TCL', 'S960', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_S960.xml' => [ 'TCL', 'S960', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_S960T.xml' => [ 'TCL', 'S960', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_W939.xml' => [ 'TCL', 'W939', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_W969.xml' => [ 'TCL', 'W969', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_Y710.xml' => [ 'TCL', 'Y710', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_Y900.xml' => [ 'TCL', 'Y900', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/TCL_Y910.xml' => [ 'TCL', 'Y910', 'Android', DeviceType::MOBILE ], + 'http://www.1066.cn/uaprof/prof/Tecno/Tecno_N7.xml' => [ 'TECNO', 'N7', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/file/ALCATEL_one_touch_7018.xml' => [ 'Tecno', 'P3', 'Android', DeviceType::MOBILE ], + 'http://wap.purplelabs.com/UAprofile/UAprofileTelme_T919.xml' => [ 'Tel.Me', 'T919', null, DeviceType::MOBILE ], + 'http://www.teleepoch.com/PMI920.xml' => [ 'TeleEpoch', 'PMI920', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ Telenor Touch Plus.xml' => [ 'Telenor', 'Touch Plus', 'Android', DeviceType::MOBILE ], + 'http://download.telme.at/wap/UAprofileTelme_T919.xml' => [ 'TelMe', 'T919', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-T20.xml' => [ 'Telstra', 'FLIP', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/T3020.xml' => [ 'Telstra', 'Smart Touch', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/tmn_smart_a18.xml' => [ 'TMN', 'Smart A18', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V9800.xml' => [ 'TMN', 'Smart A60', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/tmn_smart_a7.xml' => [ 'TMN', 'Smart A7', 'Android', DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/EUR1/G500-1.0.xml' => [ 'Toshiba', 'Portégé G500', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/EUR1/G810-1.0.xml' => [ 'Toshiba', 'Portégé G810', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/EUR1/G910_G920-1.0.xml' => [ 'Toshiba', 'Portégé G910', null, DeviceType::MOBILE ], + 'http://www.fmworld.net/product/phone/is04/uapro/IS04-1.0.xml' => [ 'Toshiba', 'Regza IS04', 'Android', DeviceType::MOBILE ], + 'http://www.fmworld.net/product/phone/t-01c/uapro/T-01C-1.0.xml' => [ 'Toshiba', 'Regza T-01C', 'Android', DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/GPRS/Toshiba_TS605.xml' => [ 'Toshiba', 'TS605', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/GPRS/Toshiba_GS20.xml' => [ 'Toshiba', 'TS608', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/EUR1/Toshiba_808_r100_3G.xml' => [ 'Toshiba', 'TS808', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/EUR1/Toshiba_808_r100_GPRS.xml' => [ 'Toshiba', 'TS808', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/EUR1/TS_921_r100.xml' => [ 'Toshiba', 'TS921', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8860-rGPRS-Turkcell.xml' => [ 'Turkcell', 'MaxiPRO5', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650GPRS-Turkcell.xml' => [ 'Turkcell', 'T20', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiU8650WCDMA-Turkcell.xml' => [ 'Turkcell', 'T20', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/TURKCELL T40.xml' => [ 'Turkcell', 'T40', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/TURKCELL_T50.xml' => [ 'Turkcell', 'T50', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/A6.xml' => [ 'TWM', 'Amazing A6', 'Android', DeviceType::MOBILE ], + 'http://www.c2dms.com/UAProfile/TWM/A6S.xml' => [ 'TWM', 'Amazing A6S', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-T88.xml' => [ 'TWM', 'Amazing X2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Amazing_X5.xml' => [ 'TWM', 'Amazing X5', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/myPad_P3.xml' => [ 'TWM', 'myPad P3', 'Android', DeviceType::MOBILE ], + 'http://gsm.unc.com/html/gsm/GL8-M10-D1.xml' => [ 'Ucan', 'MJ Michael Jackson Reborn', 'Android', DeviceType::MOBILE ], + 'http://pix.cspire.com/UA/profile/unimax/u680/u680.xml' => [ 'UMX', 'U680C', 'Android', DeviceType::MOBILE ], + 'http://www.uniscope.com.cn/wapup/unipu2.xml' => [ 'Uniscope', 'PU2', null, DeviceType::MOBILE ], + 'http://uriver.co.kr/UAprof/UAprof_SP770.xml' => [ 'Uriver', 'SP770', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/Utec_S800.xml' => [ 'Utec', 'S800', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/UTStarcom/TXT8010/TXT8010.xml' => [ 'UTStarcom', 'Blitz TXT8010', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/utstar/7075/7075v1.xml' => [ 'UTStarcom', 'CDM-7075', null, DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/UTSTARCOM/cdma8074/VMU_cdma8074_UAProf.xml' => [ 'UTStarcom', 'CDM-8074', null, DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/AUDIOVOX/CDM-8915/VMU_Audiovox-CDM-8915.xml' => [ 'UTStarcom', 'CDM-8915', null, DeviceType::MOBILE ], + 'http://user.chol.com/~budelgaji/uaprof/CDM8935.xml' => [ 'UTStarcom', 'CDM-8935', null, DeviceType::MOBILE ], + 'http://pix.cellularsouth.com/UA/profile/utstarcom/cdm8955/cdm8955.xml' => [ 'UTstarcom', 'CDM-8955', null, DeviceType::MOBILE ], + 'https://servicios.iusacell.com.mx/uts/CDM8960_wap.xml' => [ 'UTStarcom', 'CDM-8960', null, DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/utstarcom/cdma8964/VMU_utstarcom-CDM-8964VM_UAProf.xml' => [ 'UTStarcom', 'CDM-8964', null, DeviceType::MOBILE ], + 'http://uaprof.vtext.com/utstar/gz1s/gz1sv1.xml' => [ 'UTStarcom', 'G\'zOne Type-S', null, DeviceType::MOBILE ], + 'http://www.bellwave.co.uk/uaprof/UAProfile_GPRS778.xml' => [ 'UTStarcom', 'GPRS778', null, DeviceType::MOBILE ], + 'http://pcdgsmlab.com/gpt380/GPT380.xml' => [ 'UTstarcom', 'GPT380', null, DeviceType::MOBILE ], + 'http://uaprof.utstar.co.kr/uaprof/gsm/UTSTARCOM-GTX75.xml' => [ 'UTStarcom', 'GTX75', null, DeviceType::MOBILE ], + 'http://uaprof.vmobl.com/UTSTARCOM/pcs1450/VMU_SliceII_UAProf.xml' => [ 'UTStarcom', 'PCS-1450', null, DeviceType::MOBILE ], + 'https://servicios.iusacell.com.mx/vacom/vt820/vt820prof.rdf' => [ 'Vacom', 'VT820', null, DeviceType::MOBILE ], + 'http://www.velocitymobile.com/resource/UAProf-103.xml' => [ 'Velicity', '103 VGA', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NVAscentr200.xml' => [ 'Vertu', 'Ascent', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NVAscentTir100.xml' => [ 'Vertu', 'Ascent Ti', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NVAscentTir100_3G.xml' => [ 'Vertu', 'Ascent Ti', null, DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NVConstellationr100.xml' => [ 'Vertu', 'Constellation', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NVConstellationQuestr100.xml' => [ 'Vertu', 'Constellation Quest', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NVConstellationTr100.xml' => [ 'Vertu', 'Constellation T', 'Series60', DeviceType::MOBILE ], + 'http://nds1.nds.nokia.com/uaprof/NVConstellationTr200.xml' => [ 'Vertu', 'Constellation T', 'Series60', DeviceType::MOBILE ], + 'http://nds.nokia.com/uaprof/NVSignaturer100.xml' => [ 'Vertu', 'Signature', null, DeviceType::MOBILE ], + 'http://www.verykool.net/Profiles/s352/s352.xml' => [ 'verykool', 's352', 'Android', DeviceType::MOBILE ], + 'http://www.verykool.net/Profiles/s354/s354.xml' => [ 'verykool', 's354', 'Android', DeviceType::MOBILE ], + 'http://www.verykool.net/Profiles/s400T/s400T.xml' => [ 'verykool', 's400', 'Android', DeviceType::MOBILE ], + 'http://www.verykool.net/Profiles/s401/s401.xml' => [ 'verykool', 's401', 'Android', DeviceType::MOBILE ], + 'http://www.verykool.net/Profiles/S4510/S4510.xml' => [ 'verykool', 's4510u', 'Android', DeviceType::MOBILE ], + 'http://www.verykool.net/Profiles/s505/s505.xml' => [ 'verykool', 's505', 'Android', DeviceType::MOBILE ], + 'http://www.verykool.net/Profiles/S732/S732.xml' => [ 'verykool', 's732', 'Android', DeviceType::MOBILE ], + 'http://www.verykool.net/Profiles/S758/S758.xml' => [ 'Verykool', 'S758', 'Android', DeviceType::MOBILE ], + 'http://www.verzioworld.com/Duplii.xml' => [ 'Verzio', 'Duplii', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Viettel-N8303.xml' => [ 'Viettel', 'N8303', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Viettel-V8403.xml' => [ 'Viettel', 'V8403', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/VIETTEL_V8404GPRS-NORMAL.xml' => [ 'Viettel', 'V8404', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/VIETTEL_V8404WCDMA-NORMAL.xml' => [ 'Viettel', 'V8404', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V8501.xml' => [ 'Viettel', 'V8501', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/VIETTELV8506.xml' => [ 'Viettel', 'V8506', 'Android', DeviceType::MOBILE ], + 'http://ap.viewsonic.com/uaprofile/V350/UAProf_V350_Gingerbread.xml' => [ 'ViewSonic', 'V350', 'Android', DeviceType::MOBILE ], + 'http://ap.viewsonic.com/uaprofile/ViewPhone3/UAProf_ViewPhone3_Gingerbread.xml' => [ 'ViewSonic', 'ViewPhone 3', 'Android', DeviceType::MOBILE ], + 'http://uaprof.purplelabs.com/UAprofile/UAprofile_VitelcomTSM100.xml' => [ 'Vitelcom', 'TSM-100', null, DeviceType::MOBILE ], + 'http://uaprof.purplelabs.com/UAprofile/UAprofile_VitelcomTSM30.xml' => [ 'Vitelcom', 'TSM-30', null, DeviceType::MOBILE ], + 'http://www.vitelcom.es/uaprof/UAprofile_VitelcomTSM340_01.xml' => [ 'Vitelcom', 'TSM-340', null, DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/vivo/vivo_V1.xml' => [ 'Vivo', 'V1', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_V3.xml' => [ 'Vivo', 'V3', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/vivo/vivo_V1Max.xml' => [ 'Vivo', 'vivo V1Max', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_X3S.xml' => [ 'Vivo', 'X3S', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/vivo/vivo-X3S.xml' => [ 'Vivo', 'X3S', 'Android', DeviceType::MOBILE ], + 'http://download0.inner.bbk.com/pro/BBG_vivo_X3V_1_20140703.xml' => [ 'Vivo', 'X3V', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_X5.xml' => [ 'Vivo', 'X5', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_X5Max.xml' => [ 'Vivo', 'X5 Max', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/vivo/vivo_X5Max.xml' => [ 'Vivo', 'X5 Max', 'Android', DeviceType::MOBILE ], + 'http://download0.inner.bbk.com/pro/VIV_vivo_X5MaxV_1_20141118.xml' => [ 'Vivo', 'X5 Max V', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_X5Pro.xml' => [ 'Vivo', 'X5 Pro', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/vivo/vivo_X5Pro.xml' => [ 'Vivo', 'X5 Pro', 'Android', DeviceType::MOBILE ], + 'http://download0.vivo.com.cn/pro/browser/VIV_vivo_X5Pro_V_1_20150427.xml' => [ 'Vivo', 'X5 Pro V', 'Android', DeviceType::MOBILE ], + 'http://download0.inner.bbk.com/pro/BBG_vivo_X5V_1_20140922.xml' => [ 'Vivo', 'X5V', 'Android', DeviceType::MOBILE ], + 'http://download0.inner.bbk.com/pro/VIV_vivo_X5V_1_20140922.xml' => [ 'Vivo', 'X5V', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_UA.xml' => [ 'Vivo', 'Xshot', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_X710.xml' => [ 'Vivo', 'Xshot', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/vivo/vivo_Y11.xml' => [ 'Vivo', 'Y11', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_Y15.xml' => [ 'Vivo', 'Y15', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/vivo/vivo-Y15.xml' => [ 'Vivo', 'Y15', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/vivo/vivo_Y15S.xml' => [ 'Vivo', 'Y15S', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_Y21.xml' => [ 'Vivo', 'Y21', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_Y22.xml' => [ 'Vivo', 'Y22', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/vivo/vivo-Y22.xml' => [ 'Vivo', 'Y22', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/vivo/vivo_Y27L.xml' => [ 'Vivo', 'Y27L', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_Y28.xml' => [ 'Vivo', 'Y28', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/vivo/vivo_Y28.xml' => [ 'Vivo', 'Y28', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_Y31.xml' => [ 'Vivo', 'Y31', 'Android', DeviceType::MOBILE ], + 'http://www.msai.in/uaprof/vivo/vivo_Y31.xml' => [ 'Vivo', 'Y31', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_Y35.xml' => [ 'Vivo', 'Y35', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_Y37.xml' => [ 'Vivo', 'Y37', 'Android', DeviceType::MOBILE ], + 'http://download.api.vivoglobal.com/pro/UA/vivo_Y51.xml' => [ 'Vivo', 'Y51', 'Android', DeviceType::MOBILE ], + 'http://wap1.mtk.com.tw/MTK_Phone_JB_UAprofile.xml' => [ 'Vivo', 'Y613', 'Android', DeviceType::MOBILE ], + 'http://download0.inner.bbk.com/pro/VIV_vivo_Y913_1_20140922.xml' => [ 'Vivo', 'Y913', 'Android', DeviceType::MOBILE ], + 'http://download0.vivo.com.cn/pro/browser/VIV_vivo_Y923_1_20150319.xml' => [ 'Vivo', 'Y923', 'Android', DeviceType::MOBILE ], + 'http://download0.inner.bbk.com/pro/VIV_vivo_Y928_1_20141008.xml' => [ 'Vivo', 'Y928', 'Android', DeviceType::MOBILE ], + 'http://download0.vivo.com.cn/pro/browser/VIV_vivo_Y937_1_20150701.xml' => [ 'Vivo', 'Y937', 'Android', DeviceType::MOBILE ], + 'http://wap.vkmobile.com/uaprof/vk5000.xml' => [ 'VK Mobile', 'VK5000', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Vodafone-1231.xml' => [ 'Vodafone', '1231', null, DeviceType::MOBILE ], + 'http://uaprofile.asus.com/uaprof/Vodafone1520-1.0.xml' => [ 'Vodafone', '1520', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com./files/Vodafone-331.rdf' => [ 'Vodafone', '331', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_355.rdf' => [ 'Vodafone', '355', null, DeviceType::MOBILE ], + 'http://wap.samsungmobile.com/uaprof/I6410UAProf2G.rdf' => [ 'Vodafone', '360 M1', 'LiMo', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/VODAFONE-455.rdf' => [ 'Vodafone', '455', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Vodafone550.xml' => [ 'Vodafone', '550', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_575.rdf' => [ 'Vodafone', '575', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_655.rdf' => [ 'Vodafone', '655', null, DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_655W.rdf' => [ 'Vodafone', '655W', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/703SH_G001_base.xml' => [ 'Vodafone', '703SH', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/V703SHf_SHJ001_3g.xml' => [ 'Vodafone', '703SH', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/V705SH_SHJ001_3g.xml' => [ 'Vodafone', '705SH', null, DeviceType::MOBILE ], + 'http://wap.huawei.com/uaprof/HuaweiV735v100WCDMA.xml' => [ 'Vodafone', '735', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/VFKK/Vodafone_803T_r100_3G.xml' => [ 'Vodafone', '803T', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/VFKK/Vodafone_803T_r100_GPRS.xml' => [ 'Vodafone', '803T', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/V804SH_SHJ001_3g.xml' => [ 'Vodafone', '804SH', null, DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Vodafone845v100GPRS.xml' => [ 'Vodafone', '845 Nova', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/Vodafone845v100WCDMA.xml' => [ 'Vodafone', '845 Nova', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiV858GPRS-Vodafone.xml' => [ 'Vodafone', '858 Smart', 'Android', DeviceType::MOBILE ], + 'http://wap1.huawei.com/uaprof/HuaweiV858WCDMA-Vodafone.xml' => [ 'Vodafone', '858 Smart', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_861.xml' => [ 'Vodafone', '861', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_875.xml' => [ 'Vodafone', '875', 'Android', DeviceType::MOBILE ], + 'http://config.51coolpad.com/UAProfile/vodafone/Vodafone-890N.xml' => [ 'Vodafone', '890', 'Android', DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/902SH_G001_base.xml' => [ 'Vodafone', '902SH', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/V902SH_J001_3g.xml' => [ 'Vodafone', '902SH', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/VFKK/Vodafone_902T_r100_3G.xml' => [ 'Vodafone', '902T', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/903SH_G001_base.xml' => [ 'Vodafone', '903SH', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/VFKK/Vodafone_903T_r100_3G.xml' => [ 'Vodafone', '903T', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/V904SH_SHJ001_3g.xml' => [ 'Vodafone', '904SH', null, DeviceType::MOBILE ], + 'http://gphone.toshiba.co.jp/tech/profiles/UAPROF/VFKK/Vodafone_904T_r100_3G.xml' => [ 'Vodafone', '904T', null, DeviceType::MOBILE ], + 'http://www.sharp-mobile.com/UAProf/V905SH_SHJ001_3g.xml' => [ 'Vodafone', '905SH', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/VF945.xml' => [ 'Vodafone', '945', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone 958.xml' => [ 'Vodafone', '958', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_975.xml' => [ 'Vodafone', '975', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_975N.xml' => [ 'Vodafone', '975', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_Chat_655W.rdf' => [ 'Vodafone', 'Chat 655', null, DeviceType::MOBILE ], + 'http://config.51coolpad.com/UAProfile/vodafone/Smart-4-baloo.xml' => [ 'Vodafone', 'Smart 4', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_785.xml' => [ 'Vodafone', 'Smart 4 Mini', 'Android', DeviceType::MOBILE ], + 'http://vodafone.51coolpad.com/UAProfile/vodafone/Smart-4G.xml' => [ 'Vodafone', 'Smart 4G', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-SmartQ-WCDMA.xml' => [ 'Vodafone', 'Smart Chat', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-SmartQ.xml' => [ 'Vodafone', 'Smart Chat', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_Smart_II.xml' => [ 'Vodafone', 'Smart II', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_Smart_II_3G.xml' => [ 'Vodafone', 'Smart II', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_Smart_Tab_3G.xml' => [ 'Vodafone', 'Smart Tab 3G', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/Vodafone_Smart_Tab_4.xml' => [ 'Vodafone', 'Smart Tab 4', 'Android', DeviceType::TABLET ], + 'http://s3.lenovomm.com/Obelix_Profile.xml' => [ 'Vodafone', 'Smart Tab III 10', 'Android', DeviceType::MOBILE ], + 'http://s3.lenovomm.com/Asterix_Profile.xml' => [ 'Vodafone', 'Smart Tab III 7', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/VodafoneSmartTab10.xml' => [ 'Vodafone', 'SmartTab 10', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/VodafoneSmartTab7.xml' => [ 'Vodafone', 'SmartTab 7', 'Android', DeviceType::TABLET ], + 'https://s3-us-west-1.amazonaws.com/lenovo-ota/Clara_Profile.xml' => [ 'Vodafone', 'SmartTab II 7', 'Android', DeviceType::TABLET ], + 'http://www.htcmms.com.tw/voda/v1415-1.0.xml' => [ 'Vodafone', 'v1415', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/voda/v1510-1.0.xml' => [ 'Vodafone', 'v1510', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/voda/v1640-2.0.xml' => [ 'Vodafone', 'v1640', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/voda/V7505-1.0.xml' => [ 'Vodafone', 'v7505', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/voda/VPACompactIV-1.0.xml' => [ 'Vodafone', 'VPA Compact IV', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.htcmms.com.tw/voda/VPA_Touch-1.0.xml' => [ 'Vodafone', 'VPA Touch', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/W1.xml' => [ 'Vodafone', 'W1', null, DeviceType::MOBILE ], + 'http://www.voxtel.ru/UAProf/Voxtel_BD40.xml' => [ 'Voxtel', 'BD40', null, DeviceType::MOBILE ], + 'http://www.voxtel.ru/UAProf/Voxtel_RX100_UAProf.xml' => [ 'Voxtel', 'RX100', null, DeviceType::MOBILE ], + 'http://www.voxtel.ru/UAProf/Voxtel_RX200_UAProf.xml' => [ 'Voxtel', 'RX200', null, DeviceType::MOBILE ], + 'http://www.voxtel.ru/UAProf/Voxtel_rx600.xml' => [ 'Voxtel', 'RX600', null, DeviceType::MOBILE ], + 'http://www.voxtel.ru/UAProf/Voxtel_rx800.xml' => [ 'Voxtel', 'RX800', null, DeviceType::MOBILE ], + 'http://www.voxtel.ru/UAProf/Voxtel_v100.xml' => [ 'Voxtel', 'V100', null, DeviceType::MOBILE ], + 'http://www.voxtel.ru/UAProf/Voxtel_v300.xml' => [ 'Voxtel', 'V300', null, DeviceType::MOBILE ], + 'http://www.voxtel.ru/UAProf/Voxtel_V310.xml' => [ 'Voxtel', 'V310', null, DeviceType::MOBILE ], + 'http://www.voxtel.ru/UAProf/Voxtel_v350.xml' => [ 'Voxtel', 'V350', null, DeviceType::MOBILE ], + 'http://www.voxtel.ru/UAProf/Voxtel_v50.xml' => [ 'Voxtel', 'V50', null, DeviceType::MOBILE ], + 'http://www.voxtel.ru/UAProf/Voxtel_vs400.xml' => [ 'Voxtel', 'VS400', null, DeviceType::MOBILE ], + 'http://www.ngm-mobile.com/UserAgentProfiles/ngmwilcojb.xml' => [ 'Walton', 'Primo G1', 'Android', DeviceType::MOBILE ], + 'http://www.fly-phone.ru/UAP/Fly_IQ4501_Quad.xml' => [ 'Walton', 'Primo HM', 'Android', DeviceType::MOBILE ], + 'http://whaminfocom.com/profiles/WG40.xml' => [ 'Wham', 'WG40', 'Android', DeviceType::MOBILE ], + 'http://www.wonutel.co.kr/UAProfile/WonuS1.xml' => [ 'Wonu', 'S1', null, DeviceType::MOBILE ], + 'http://apkupdate.miui.com/other/HM2LTE-BR_H2X_2014819_UAProfile.xml' => [ 'Xiaomi', 'Redmi 2', 'Android', DeviceType::MOBILE ], + 'http://apkupdate.miui.com/other/HM2LTE-IN_H2X_2014818_UAProfile.xml' => [ 'Xiaomi', 'Redmi 2', 'Android', DeviceType::MOBILE ], + 'http://apkupdate.miui.com/other/HM2LTE-SA_H2X_2014817_UAProfile.xml' => [ 'Xiaomi', 'Redmi 2', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOHM Note 1S.xml' => [ 'Xiaomi', 'Redmi Note 1', 'Android', DeviceType::MOBILE ], + 'http://apkupdate.miui.com/other/HM2013023_UAprofile.xml' => [ 'Xiaomi', 'Redmi Red Rice', 'Android', DeviceType::MOBILE ], + 'http://apkupdate.miui.com/other/HM2014011_UAprofile.xml' => [ 'Xiaomi', 'Redmi Red Rice', 'Android', DeviceType::MOBILE ], + 'http://apkupdate.miui.com/other/HM2014501_UAprofile.xml' => [ 'Xiaomi', 'Redmi Red Rice', 'Android', DeviceType::MOBILE ], + 'http://nmsc.ctvap.cn/uaprof/YCT/YCT_TE600_1_20101228.xml' => [ 'YCT', 'TE600', 'Android', DeviceType::MOBILE ], + 'http://www.ddmbrands.com/uaprof/yezz/andy_5EI.xml' => [ 'Yezz', 'Andy 5EI', 'Android', DeviceType::MOBILE ], + 'http://www.ddmbrands.com/uaprof/yezz/andy_5EL.xml' => [ 'Yezz', 'Andy 5EL', 'Android', DeviceType::MOBILE ], + 'http://www.ddmbrands.com/uaprof/yezz/andy_AC5EL.xml' => [ 'Yezz', 'Andy 5EL', 'Android', DeviceType::MOBILE ], + 'http://www.ddmbrands.com/uaprof/yezz/andy_C5EL.xml' => [ 'Yezz', 'Andy 5EL', 'Android', DeviceType::MOBILE ], + 'http://www.lenovomobile.com/admin/module/product/DownFile/YUSUN LA2-T_UAprofile.xml' => [ 'YUSUN', 'LA2-T', 'Android', DeviceType::MOBILE ], + 'http://uaprof.zebra.com/mc36.xml' => [ 'Zebra', 'MC36', 'Android', DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/ZMEM1070.xml' => [ 'Zonda', 'ZMEM1070', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/ZMEM1075.xml' => [ 'Zonda', 'ZMEM1075', null, DeviceType::MOBILE ], + 'http://211.42.201.70/ua_profile/ZMEM1085.xml' => [ 'Zonda', 'ZMEM1085', null, DeviceType::MOBILE ], + 'http://profile.aiko.com.br/aiko70w.xml' => [ 'ZTE', '70W', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE A2015.xml' => [ 'ZTE', 'A2015', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/A3.xml' => [ 'ZTE', 'A3', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTEA37.xml' => [ 'ZTE', 'A37', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/A4.xml' => [ 'ZTE', 'A4', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Acqua.xml' => [ 'ZTE', 'Acqua', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ARIZONA.xml' => [ 'ZTE', 'Arizona', 'Android', DeviceType::MOBILE ], + 'http://ua.musn-mobile.com/TWN/A5.xml' => [ 'ZTE', 'Blade', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/a5.xml' => [ 'ZTE', 'Blade', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_A450.xml' => [ 'ZTE', 'Blade A450', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_Apex.xml' => [ 'ZTE', 'Blade Apex', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_Apex2.xml' => [ 'ZTE', 'Blade Apex2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_C2_Plus.xml' => [ 'ZTE', 'Blade C2 Plus', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_G_Lux.xml' => [ 'ZTE', 'Blade G Lux', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V830W.xml' => [ 'ZTE', 'Blade G Lux', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_G2.xml' => [ 'ZTE', 'Blade G2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE Blade III Pro.xml' => [ 'ZTE', 'Blade III Pro', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_L2.xml' => [ 'ZTE', 'Blade L2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_L2_4.4.xml' => [ 'ZTE', 'Blade L2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Blade L2 Plus.xml' => [ 'ZTE', 'Blade L2 Plus', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Blade_L3.xml' => [ 'ZTE', 'Blade L3', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_L3.xml' => [ 'ZTE', 'Blade L3', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_Q.xml' => [ 'ZTE', 'Blade Q', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_Q_Lux.xml' => [ 'ZTE', 'Blade Q Lux', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_Q_Mini.xml' => [ 'ZTE', 'Blade Q Mini', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_Q1.xml' => [ 'ZTE', 'Blade Q1', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Blade S.xml' => [ 'ZTE', 'Blade S', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Blade_Super.xml' => [ 'ZTE', 'Blade Super', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_V2.xml' => [ 'ZTE', 'Blade V2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_V220.xml' => [ 'ZTE', 'Blade V220', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_Vec.xml' => [ 'ZTE', 'Blade Vec', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_Vec_4G.xml' => [ 'ZTE', 'Blade Vec', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Blade_Vec_Pro.xml' => [ 'ZTE', 'Blade Vec Pro', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Crescent.xml' => [ 'ZTE', 'Crescent', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-T126.xml' => [ 'ZTE', 'Cruise T126', null, DeviceType::MOBILE ], + 'http://device.telusmobility.com/zte/ZTED90-0.rdf' => [ 'ZTE', 'D90', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_N72_20090709.xml' => [ 'ZTE', 'E N72', 'Windows Mobile', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-U-E850(Movilnet).xml' => [ 'ZTE', 'E850', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F101(RDS).xml' => [ 'ZTE', 'F101', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F107(3UK).xml' => [ 'ZTE', 'F107', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F150.xml' => [ 'ZTE', 'F150', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F151.xml' => [ 'ZTE', 'F151', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F152.xml' => [ 'ZTE', 'F152', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F153.xml' => [ 'ZTE', 'F153', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F156.xml' => [ 'ZTE', 'F156', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F158.xml' => [ 'ZTE', 'F158', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F159.xml' => [ 'ZTE', 'F159', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F160(Orange-RO).xml' => [ 'ZTE', 'F160', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F160-BH-Telecom.xml' => [ 'ZTE', 'F160', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F160-Free.xml' => [ 'ZTE', 'F160', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F165.xml' => [ 'ZTE', 'F165', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F230.xml' => [ 'ZTE', 'F230', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F256.xml' => [ 'ZTE', 'F256', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F260.xml' => [ 'ZTE', 'F260', null, DeviceType::MOBILE ], + 'http://www.ztemt.com/mobile/uaprof/F310.xml' => [ 'ZTE', 'F310', 'MRE', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F852.xml' => [ 'ZTE', 'F852', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F858.xml' => [ 'ZTE', 'F858', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F880.xml' => [ 'ZTE', 'F880', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-F912.xml' => [ 'ZTE', 'F912', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-T81.xml' => [ 'ZTE', 'Fronteer 4G', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-G X760.xml' => [ 'ZTE', 'G X760', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/G717C.xml' => [ 'ZTE', 'G717', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/G718C.xml' => [ 'ZTE', 'G718', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/G719C.xml' => [ 'ZTE', 'G719', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/G720C.xml' => [ 'ZTE', 'G720', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE G720C.xml' => [ 'ZTE', 'G720', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE G721C.xml' => [ 'ZTE', 'G721 Star 3', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE S2003.xml' => [ 'ZTE', 'Geek II', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Grand Memo.xml' => [ 'ZTE', 'Grand Memo', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-V5S.xml' => [ 'ZTE', 'Grand Memo Lite', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Grand_S_Flex.xml' => [ 'ZTE', 'Grand S Flex', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/ZTE-Grand S II.xml' => [ 'ZTE', 'Grand S II', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Grand S Lite.xml' => [ 'ZTE', 'Grand S Lite', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Grand_X_Quad_Lite.xml' => [ 'ZTE', 'Grand X Quad Lite', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE Grand X2.xml' => [ 'ZTE', 'Grand X2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-A7.xml' => [ 'ZTE', 'Grand X2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Jack-3G(Orange).xml' => [ 'ZTE', 'Jack', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Kis_II_Max.xml' => [ 'ZTE', 'Kis 2 Max', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V815W.xml' => [ 'ZTE', 'Kis 2 Max', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Kis_II_Max_plus.xml' => [ 'ZTE', 'Kis 2 Max Plus', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Kis_3.xml' => [ 'ZTE', 'Kis 3', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Kis3_max.xml' => [ 'ZTE', 'Kis 3 Max', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE KIS LITE.xml' => [ 'ZTE', 'Kis Lite', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-KisPro.xml' => [ 'ZTE', 'Kis Pro', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com/mobile/uaprof/ZTE_LEO_M1.xml' => [ 'ZTE', 'LEO M1', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V765M.xml' => [ 'ZTE', 'LEO Q1', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com/mobile/uaprof/ZTE V769M.xml' => [ 'ZTE', 'LEO Q2', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com/mobile/uaprof/ZTE_LEO_S1.xml' => [ 'ZTE', 'LEO S1', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Light.xml' => [ 'ZTE', 'Light Tab', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/V9.xml' => [ 'ZTE', 'Light Tab', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/V9_VIVO.xml' => [ 'ZTE', 'Light Tab', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/Light-Tab-2.xml' => [ 'ZTE', 'Light Tab 2', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/V9A.xml' => [ 'ZTE', 'Light Tab 2', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE V9A.xml' => [ 'ZTE', 'Light Tab 2', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/V9S.xml' => [ 'ZTE', 'Light Tab 3', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/V9C.xml' => [ 'ZTE', 'Light Tab Pro', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/TNZ_V9.xml' => [ 'ZTE', 'Light Tab V9', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE V9A(Telcel).xml' => [ 'ZTE', 'Light Tab V9', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/M901C.xml' => [ 'ZTE', 'M901', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/MEM02.xml' => [ 'ZTE', 'M901 Grand Memo 2', 'Android', DeviceType::MOBILE ], + 'http://mms.mycricket.com/A415_Uaprof.xml' => [ 'ZTE', 'Memo', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/zte-N295.xml' => [ 'ZTE', 'N295', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N5.xml' => [ 'ZTE', 'N5 Grand Memo', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE N5.xml' => [ 'ZTE', 'N5 Grand Memo', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N5S.xml' => [ 'ZTE', 'N5S', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N606.xml' => [ 'ZTE', 'N600', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N700.xml' => [ 'ZTE', 'N700', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com.cn/mobile/uaprof/ZTE-U-N720-Froyo.xml' => [ 'ZTE', 'N720', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N760.xml' => [ 'ZTE', 'N760', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE N762.xml' => [ 'ZTE', 'N762', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-N780.xml' => [ 'ZTE', 'N780', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N788.xml' => [ 'ZTE', 'N788', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/ZTE N789.xml' => [ 'ZTE', 'N789', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/ZTE-N790.xml' => [ 'ZTE', 'N790', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N790.xml' => [ 'ZTE', 'N790', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N790S.xml' => [ 'ZTE', 'N790S', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N795.xml' => [ 'ZTE', 'N795', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N799D.xml' => [ 'ZTE', 'N799', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N800-Chameleon/latest' => [ 'ZTE', 'N800 Awe', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N800-Chameleon/N800V1.0.0B06.rdf' => [ 'ZTE', 'N800 Awe', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N800-VIRGIN/AWE_Inspired_Moonshine_White_V2.9.rdf' => [ 'ZTE', 'N800 Awe', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N800-VIRGIN/N800V1.0.0B04.rdf' => [ 'ZTE', 'N800 Awe', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N800-VIRGIN/N800V1.0.0B05.rdf' => [ 'ZTE', 'N800 Awe', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N800-VIRGIN/N800V1.0.0B06.rdf' => [ 'ZTE', 'N800 Awe', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N800-VIRGIN/N800V1.0.0B07.rdf' => [ 'ZTE', 'N800 Awe', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N810-VIRGIN/N810V1.0.0B06.rdf' => [ 'ZTE', 'N810 Reef', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/ZTE-N818.xml' => [ 'ZTE', 'N818', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-N850PMI.xml' => [ 'ZTE', 'N850', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/ZTEN850KT/N850V1.0.0B14.rdf' => [ 'ZTE', 'N850 Fury', 'Android', DeviceType::MOBILE ], + 'http://mms.revol.us/uaprofs/ZTE_N850.xml' => [ 'ZTE', 'N850 Fury', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N855D.xml' => [ 'ZTE', 'N855D', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N860/N860_MVNOV1.0.0B05.rdf' => [ 'ZTE', 'N860 Warp', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/ZTEN860ABC-BST/CTMod 3.68.rdf' => [ 'ZTE', 'N860 Warp', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/ZTEN860ABC-BST/CTMod 3.80.rdf' => [ 'ZTE', 'N860 Warp', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/ZTEN860ABC-BST/HaloBean 6.12 ROM.rdf' => [ 'ZTE', 'N860 Warp', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/ZTEN860ABC-BST/HaloBean Nine by Skinny.rdf' => [ 'ZTE', 'N860 Warp', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/ZTEN860ABC-BST/n00b VIII.II by MrBobo.rdf' => [ 'ZTE', 'N860 Warp', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/ZTEN860ABC-BST/N860V1.0.0B06.rdf' => [ 'ZTE', 'N860 Warp', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/ZTEN860ABC-BST/N860V1.0.0B08.rdf' => [ 'ZTE', 'N860 Warp', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/ZTEN860ABC-BST/N860V1.0.0B08c.rdf' => [ 'ZTE', 'N860 Warp', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/ZTEN860ABC-BST/N860V1.0.0B10.rdf' => [ 'ZTE', 'N860 Warp', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/ZTEN860ABC-BST/SimpleROM 0.2.0.rdf' => [ 'ZTE', 'N860 Warp', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-N860PMI.xml' => [ 'ZTE', 'N860 Warp', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N861-BOOST/N861V1.0.0B07.rdf' => [ 'ZTE', 'N861 Warp II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N861-BOOST/N861V1.0.0B07.WARP2CCP.rdf' => [ 'ZTE', 'N861 Warp II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N861-BOOST/N861V1.0.0B09.rdf' => [ 'ZTE', 'N861 Warp II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N861-BOOST/N861V1.0.0B12.rdf' => [ 'ZTE', 'N861 Warp II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N861-BOOST/N861V1.0.0B13.rdf' => [ 'ZTE', 'N861 Warp II', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N861-Chameleon/latest' => [ 'ZTE', 'N861 Warp II', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-N861PMI.xml' => [ 'ZTE', 'N861 Warp II', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N880.xml' => [ 'ZTE', 'N880 Blade', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_C_N600PLUS_1_20101223.xml' => [ 'ZTE', 'N880 Blade', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/ZTE N880E.xml' => [ 'ZTE', 'N880E', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N880E.xml' => [ 'ZTE', 'N880E', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N900.xml' => [ 'ZTE', 'N900', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/ZTE-N909.xml' => [ 'ZTE', 'N909', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N909.xml' => [ 'ZTE', 'N909', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/ZTE-N910.xml' => [ 'ZTE', 'N910 Anthem', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9100-2012083001/N9100V1.0.0B09.rdf' => [ 'ZTE', 'N9100 Force', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9100-BOOST/DroidSmith_Force_0.6_Beta.rdf' => [ 'ZTE', 'N9100 Force', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9100-BOOST/N9100V1.0.0B09.rdf' => [ 'ZTE', 'N9100 Force', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9100-BOOST/N9100V1.0.0B11.rdf' => [ 'ZTE', 'N9100 Force', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9100-BOOST/N9100V1.0.0B13.rdf' => [ 'ZTE', 'N9100 Force', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N9101.xml' => [ 'ZTE', 'N9101 Imperial', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9130-BOOST/N9130V1.0.0B05.rdf' => [ 'ZTE', 'N9130 Speed', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9130-BOOST/N9130V1.0.0B06.rdf' => [ 'ZTE', 'N9130 Speed', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9130-BOOST/N9130V1.0.0B08.rdf' => [ 'ZTE', 'N9130 Speed', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9130-BOOST/N9130V1.0.0B09.rdf' => [ 'ZTE', 'N9130 Speed', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9130-Chameleon/N9130V1.0.0B09.rdf' => [ 'ZTE', 'N9130 Speed', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9500-6105573748/N9500V1.0.0B18.rdf' => [ 'ZTE', 'N9500 Flash', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9500-BOOST/N9500V1.0.0B14.rdf' => [ 'ZTE', 'N9500 Flash', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9500-BOOST/N9500V1.0.0B18.rdf' => [ 'ZTE', 'N9500 Flash', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9500-BOOST/PV_ZTE_N9500V1.0.0B07.rdf' => [ 'ZTE', 'N9500 Flash', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9500-SPRINT/N9500V1.0.0B11.rdf' => [ 'ZTE', 'N9500 Flash', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9500-SPRINT/N9500V1.0.0B13.rdf' => [ 'ZTE', 'N9500 Flash', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9500-SPRINT/N9500V1.0.0B14.rdf' => [ 'ZTE', 'N9500 Flash', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9500-SPRINT/N9500V1.0.0B18.rdf' => [ 'ZTE', 'N9500 Flash', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/N9510V1.0.0B12.rdf' => [ 'ZTE', 'N9510 Warp', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9510-BOOST/N9510V1.0.0B07.rdf' => [ 'ZTE', 'N9510 Warp', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9510-Chameleon/latest' => [ 'ZTE', 'N9510 Warp', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_N9511.xml' => [ 'ZTE', 'N9511', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9515-BOOST/N9515V1.0.0B05.rdf' => [ 'ZTE', 'N9515', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9515-BOOST/N9515V1.0.0B06.rdf' => [ 'ZTE', 'N9515', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9515-Chameleon/latest' => [ 'ZTE', 'N9515', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9515-Chameleon/N9515V1.0.0B05.rdf' => [ 'ZTE', 'N9515', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/N9520V1.0.0B05.rdf' => [ 'ZTE', 'N9520 Stormer', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9520-BOOST/latest' => [ 'ZTE', 'N9520 Stormer', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9520-BOOST/N9520V1.0.0B05.rdf' => [ 'ZTE', 'N9520 Stormer', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9520-BOOST/N9520V1.0.0B06.rdf' => [ 'ZTE', 'N9520 Stormer', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9520-BOOST/N9520V1.0.0B07.rdf' => [ 'ZTE', 'N9520 Stormer', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9520-Chameleon/latest' => [ 'ZTE', 'N9520 Stormer', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE N901.xml' => [ 'ZTE', 'N960', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE N970.xml' => [ 'ZTE', 'N970 Grand X', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9810-Chameleon/latest' => [ 'ZTE', 'N9810 Vital', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9810-SPRINT/N9810V1.0.0B02.rdf' => [ 'ZTE', 'N9810 Vital', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9810-SPRINT/N9810V1.0.0B06.rdf' => [ 'ZTE', 'N9810 Vital', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9810-SPRINT/N9810V1.0.0B09.rdf' => [ 'ZTE', 'N9810 Vital', 'Android', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/N9810-VIRGIN/N9810V1.0.0B09.rdf' => [ 'ZTE', 'N9810 Vital', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N983.xml' => [ 'ZTE', 'N983', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N986.xml' => [ 'ZTE', 'N986', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com.cn/mobile/uaprof/nubia_NX501_Z72.xml' => [ 'ZTE', 'Nubia Z5', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/nubia-NX40X.xml' => [ 'ZTE', 'Nubia Z5 mini', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com.cn/mobile/uaprof/nubia_NX402_Z64.xml' => [ 'ZTE', 'Nubia Z5 mini', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com/mobile/uaprof/NX512J_CT.xml' => [ 'ZTE', 'Nubia Z9 Max', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com.cn/mobile/uaprof/ZTE_NX501_VE.xml' => [ 'ZTE', 'NX501', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/OPEN.xml' => [ 'ZTE', 'Open', 'Firefox OS', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/OPENC.xml' => [ 'ZTE', 'Open C', 'Firefox OS', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/OPENC2.xml' => [ 'ZTE', 'Open C2', 'Firefox OS', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/OPEN2.xml' => [ 'ZTE', 'Open II', 'Firefox OS', DeviceType::MOBILE ], + 'http://device.sprintpcs.com/ZTE/ZTESV55TAB/B03.rdf' => [ 'ZTE', 'Optik', 'Android', DeviceType::TABLET ], + 'http://device.sprintpcs.com/ZTE/ZTESV55TAB/B12.rdf' => [ 'ZTE', 'Optik', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE Q2S-C.xml' => [ 'ZTE', 'Q2S-C', 'Android', DeviceType::MOBILE ], + 'http://uaprof.qma.com.tw/ZTE-Q301C.xml' => [ 'ZTE', 'Q301C', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Q802C.xml' => [ 'ZTE', 'Q802C', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_C_R750_3_20100725.xml' => [ 'ZTE', 'R750', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/RacerII.xml' => [ 'ZTE', 'Racer II', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/SKATE-KIS.xml' => [ 'ZTE', 'Skate', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-SKATE.xml' => [ 'ZTE', 'Skate', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-SKATE.xml, http://www.zte.com.cn/mobile/uaprof/ ZTE-SKATE.xml'=> [ 'ZTE', 'Skate', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Skate4.3.xml' => [ 'ZTE', 'Skate', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Skate_TME.xml' => [ 'ZTE', 'Skate', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Skate-Pro.xml' => [ 'ZTE', 'Skate Pro', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE S2002.xml' => [ 'ZTE', 'Star 1', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Star_1.xml' => [ 'ZTE', 'Star 1', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE S2005.xml' => [ 'ZTE', 'Star 2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_Switch_X1.xml' => [ 'ZTE', 'Switch X1', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_T12.xml' => [ 'ZTE', 'T12', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-T165i.xml' => [ 'ZTE', 'T165i', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_T760.xml' => [ 'ZTE', 'T760', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-T82.xml' => [ 'ZTE', 'T82', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-T83.xml' => [ 'ZTE', 'T83', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE T86.xml' => [ 'ZTE', 'T86', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE S2004.xml' => [ 'ZTE', 'Tianji 3', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE S291.xml' => [ 'ZTE', 'Tianji 3', 'Android', DeviceType::MOBILE ], + 'http://uaprofile.zte.com/uaprof/ZTE-T-U830-1.0.xml' => [ 'ZTE', 'TU830', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-TUIRES.xml' => [ 'ZTE', 'Tuires', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-T60.xml' => [ 'ZTE', 'Tureis', 'Android', DeviceType::MOBILE ], + 'http://www.access.co.jp/uaprof/NF3Prof.rdf' => [ 'ZTE', 'U236', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTEU790.xml' => [ 'ZTE', 'U790', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_U791.xml' => [ 'ZTE', 'U791', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-T U802.xml' => [ 'ZTE', 'U802', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE U808.xml' => [ 'ZTE', 'U808', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE U879.xml' => [ 'ZTE', 'U879', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-T U880.xml' => [ 'ZTE', 'U880 Blade', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_U887_UAProfile.xml' => [ 'ZTE', 'U887', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE Grand X 4.2.xml' => [ 'ZTE', 'U930 Grand X', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Grand X In.xml' => [ 'ZTE', 'U930 Grand X IN', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOZTE U956.xml' => [ 'ZTE', 'U956', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com/mobile/uaprof/F1310.xml' => [ 'ZTE', 'Unite F1310', 'MTK', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V72.xml' => [ 'ZTE', 'V72', 'Android', DeviceType::TABLET ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-UV760.xml' => [ 'ZTE', 'V760', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-V768.xml' => [ 'ZTE', 'V768 Concord', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Kis.xml' => [ 'ZTE', 'V788 Kis', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE V788D.xml' => [ 'ZTE', 'V788 Kis', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/V790.xml' => [ 'ZTE', 'V790', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE V790.xml' => [ 'ZTE', 'V790', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V791.xml' => [ 'ZTE', 'V791', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V793.xml' => [ 'ZTE', 'V793', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V795_2.3.xml' => [ 'ZTE', 'V795', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V795_2.3_Skinny.xml' => [ 'ZTE', 'V795', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V795_4.2.xml' => [ 'ZTE', 'V795', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V807.xml' => [ 'ZTE', 'V807 Blade C', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V809.xml' => [ 'ZTE', 'V809 Blade C2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V811W.xml' => [ 'ZTE', 'V811', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com/mobile/uaprof/ZTE V8110.xml' => [ 'ZTE', 'V8110', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V816W.xml' => [ 'ZTE', 'V816W', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V818.xml' => [ 'ZTE', 'V818', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-GV821.xml' => [ 'ZTE', 'V821', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/V852.xml' => [ 'ZTE', 'V852', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_U_V856_V3_3.xml' => [ 'ZTE', 'V856 Mimosa Mini', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/zte_u_v857_v3.xml' => [ 'ZTE', 'V857', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-UV859.xml' => [ 'ZTE', 'V859', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com/mobile/uaprof/ZTE-V865M.xml' => [ 'ZTE', 'V865', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE V880.xml' => [ 'ZTE', 'V880 Blade', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE V880E.xml' => [ 'ZTE', 'V880 Blade', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE V880H.xml' => [ 'ZTE', 'V880 Blade', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-BLADE.xml' => [ 'ZTE', 'V880 Blade', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-U V880E.xml' => [ 'ZTE', 'V880 Blade', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE Blade G.xml' => [ 'ZTE', 'V880 Blade G', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/V881.xml' => [ 'ZTE', 'V881 Blade II', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-U V881.xml' => [ 'ZTE', 'V881 Blade II', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V887.xml' => [ 'ZTE', 'V887', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE V889D.xml' => [ 'ZTE', 'V889', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V889M.xml' => [ 'ZTE', 'V889', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V889S.xml' => [ 'ZTE', 'V889', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/V9+.xml' => [ 'ZTE', 'V9+', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V965.xml' => [ 'ZTE', 'V965', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V967S.xml' => [ 'ZTE', 'V967', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V969.xml' => [ 'ZTE', 'V969', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-V96A.xml' => [ 'ZTE', 'V96A', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com/mobile/uaprof/ZTE V972M.xml' => [ 'ZTE', 'V972M', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE V975.xml' => [ 'ZTE', 'V975 Geek', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE Grand Memo LTE.xml' => [ 'ZTE', 'V9815 Grand Memo', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V9820.xml' => [ 'ZTE', 'V9820', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Grand X Pro.xml' => [ 'ZTE', 'V983 Grand X Pro', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V983.xml' => [ 'ZTE', 'V983 Grand X Pro', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE V985.xml' => [ 'ZTE', 'V985 Grand Era', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOZTE V 987.xml' => [ 'ZTE', 'V987', 'Android', DeviceType::MOBILE ], + 'http://www.oppo.com/resource/UA-PROF/OPPOZTE V987.xml' => [ 'ZTE', 'V987', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V987.xml' => [ 'ZTE', 'V987', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V987_4.2.xml' => [ 'ZTE', 'V987', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE V988.xml' => [ 'ZTE', 'V988', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/N988.xml' => [ 'ZTE', 'V988 Grand S', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE Grand S.xml' => [ 'ZTE', 'V988 Grand S', 'Android', DeviceType::MOBILE ], + 'http://mmslab.mycricket.com/zte-x500.xml' => [ 'ZTE', 'X500 Score', 'Android', DeviceType::MOBILE ], + 'http://uaprof.metropcs.net/UAProf/ZTE-X500.xml' => [ 'ZTE', 'X500 Score', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE X850.xml' => [ 'ZTE', 'X850 Racer', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-RACER.xml' => [ 'ZTE', 'X850 Racer', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-U X850.xml' => [ 'ZTE', 'X850 Racer', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_U X850.xml' => [ 'ZTE', 'X850 Racer', 'Android', DeviceType::MOBILE ], + 'http://www.ztemt.com/mobile/uaprof/X990_V2_Z10.xml' => [ 'ZTE', 'X990', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE A880.xml' => [ 'ZTE', 'Xiaoxian', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Z221.xml' => [ 'ZTE', 'Z221', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Z222.xml' => [ 'ZTE', 'Z222', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Z223.xml' => [ 'ZTE', 'Z223', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Z431.xml' => [ 'ZTE', 'Z431', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Z432.xml' => [ 'ZTE', 'Z432', null, DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Z660G.xml' => [ 'ZTE', 'Z660', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/zte/wsz665c/wsz665c.xml' => [ 'ZTE', 'Z665 Valet', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z667.xml' => [ 'ZTE', 'Z667 Prelude 2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z740.xml' => [ 'ZTE', 'Z740 Radiant', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z740G.xml' => [ 'ZTE', 'Z740G Sonata 4G', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/zte/zte752c/zte752c.xml' => [ 'ZTE', 'Z752 Zephyr', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z753G.xml' => [ 'ZTE', 'Z753 Paragon', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z755.xml' => [ 'ZTE', 'Z755', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Z768G.xml' => [ 'ZTE', 'Z768', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z787.xml' => [ 'ZTE', 'Z787', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z788G.xml' => [ 'ZTE', 'Z788', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z791G.xml' => [ 'ZTE', 'Z791G', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z792.xml' => [ 'ZTE', 'Z792', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/zte/wsz793c/wsz793c.xml' => [ 'ZTE', 'Z793C', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z795G.xml' => [ 'ZTE', 'Z795 Solar', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z812.xml' => [ 'ZTE', 'Z812 Maven', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z813.xml' => [ 'ZTE', 'Z813', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z818L.xml' => [ 'ZTE', 'Z818 Allstar', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/zte/wsz819l/wsz819l.xml' => [ 'ZTE', 'Z819L', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z830.xml' => [ 'ZTE', 'Z830', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z930L.xml' => [ 'ZTE', 'Z930 Unico', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/zte/wsz932l/wsz932l.xml' => [ 'ZTE', 'Z932', 'Android', DeviceType::MOBILE ], + 'http://uaprof.vtext.com/zte/wsz936l/wsz936l.xml' => [ 'ZTE', 'Z936 Lever', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z955L.xml' => [ 'ZTE', 'Z955L', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z958.xml' => [ 'ZTE', 'Z958 Zmax 2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z970.xml' => [ 'ZTE', 'Z970', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V970.xml' => [ 'ZTE', 'Z970 Grand X', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V970M.xml' => [ 'ZTE', 'Z970 Grand X', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE_V970M_JB.xml' => [ 'ZTE', 'Z970 Grand X', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z987.xml' => [ 'ZTE', 'Z987', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Z990.xml' => [ 'ZTE', 'Z990 Roamer', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Z990G.xml' => [ 'ZTE', 'Z990 Roamer', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/ZTE-Z992.xml' => [ 'ZTE', 'Z992 Avail 2', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z993.xml' => [ 'ZTE', 'Z993 Prelude', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z995.xml' => [ 'ZTE', 'Z995 Overture', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/Z998.xml' => [ 'ZTE', 'Z998', 'Android', DeviceType::MOBILE ], + 'http://www.zte.com.cn/mobile/uaprof/MS4A.xml' => [ 'Мегафон', '4G Turbo', 'Android', DeviceType::MOBILE ], + 'http://www-ccpp.tcl-ta.com/files/MS3B.xml' => [ 'Мегафон', 'Optima', 'Android', DeviceType::MOBILE ], + 'http://downloadmirror.intel.com/20932/eng/SP-A20i_UA_Profile.xml' => [ 'Мегафон', 'SP-A20i Mint', 'Android', DeviceType::MOBILE ], +]; diff --git a/integration/whichbrowser/data/regexes/applications-bots.php b/integration/whichbrowser/data/regexes/applications-bots.php new file mode 100644 index 00000000..3660eded --- /dev/null +++ b/integration/whichbrowser/data/regexes/applications-bots.php @@ -0,0 +1,5 @@ +headers = $headers; + $this->options = (object) $options; + } + + public function setData(&$data) + { + $this->data =& $data; + } + + public function &getData() + { + return $this->data; + } + + public function analyse() + { + if (!isset($this->data)) { + $this->data = new Main(); + } + + /* Start the actual analysing steps */ + + $this->analyseHeaders() + ->deriveInformation() + ->applyCorrections() + ->detectCamouflage() + ->deriveDeviceSubType(); + } +} diff --git a/integration/whichbrowser/src/Analyser/Camouflage.php b/integration/whichbrowser/src/Analyser/Camouflage.php new file mode 100644 index 00000000..f109ac46 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Camouflage.php @@ -0,0 +1,314 @@ +getHeader('User-Agent')) { + + $this + ->detectCamouflagedAndroidBrowser($ua) + ->detectCamouflagedAndroidAsusBrowser($ua) + ->detectCamouflagedAsSafari($ua) + ->detectCamouflagedAsChrome($ua); + } + + if (!empty($this->options->useragent)) { + $this->detectCamouflagedUCBrowser($this->options->useragent); + } + + if (isset($this->options->engine)) { + $this->detectCamouflagedBasedOnEngines(); + } + + if (isset($this->options->features)) { + $this->detectCamouflagedBasedOnFeatures(); + } + + return $this; + } + + private function &detectCamouflagedAndroidBrowser($ua) + { + if (preg_match('/Mac OS X 10_6_3; ([^;]+); [a-z]{2}(?:-[a-z]{2})?\)/u', $ua, $match)) { + $this->data->browser->name = 'Android Browser'; + $this->data->browser->version = null; + $this->data->browser->mode = 'desktop'; + + $this->data->os->name = 'Android'; + $this->data->os->alias = null; + $this->data->os->version = null; + + $this->data->engine->name = 'Webkit'; + $this->data->engine->version = null; + + $this->data->device->type = 'mobile'; + + $device = Data\DeviceModels::identify('android', $match[1]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + + $this->data->features[] = 'foundDevice'; + } + + if (preg_match('/Mac OS X 10_5_7; [^\/\);]+\/([^\/\);]+)\//u', $ua, $match)) { + $this->data->browser->name = 'Android Browser'; + $this->data->browser->version = null; + $this->data->browser->mode = 'desktop'; + + $this->data->os->name = 'Android'; + $this->data->os->alias = null; + $this->data->os->version = null; + + $this->data->engine->name = 'Webkit'; + $this->data->engine->version = null; + + $this->data->device->type = 'mobile'; + + $device = Data\DeviceModels::identify('android', $match[1]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + + $this->data->features[] = 'foundDevice'; + } + + return $this; + } + + private function &detectCamouflagedAndroidAsusBrowser($ua) + { + if (preg_match('/Linux Ventana; [a-z]{2}(?:-[a-z]{2})?; (.+) Build/u', $ua, $match)) { + $this->data->browser->name = 'Android Browser'; + $this->data->browser->version = null; + $this->data->browser->channel = null; + $this->data->browser->mode = 'desktop'; + + $this->data->engine->name = 'Webkit'; + $this->data->engine->version = null; + + $this->data->features[] = 'foundDevice'; + } + + return $this; + } + + private function &detectCamouflagedAsSafari($ua) + { + if ($this->data->isBrowser('Safari') && !preg_match('/Darwin/u', $ua)) { + if ($this->data->isOs('iOS') && !preg_match('/^Mozilla/u', $ua)) { + $this->data->features[] = 'noMozillaPrefix'; + $this->data->camouflage = true; + } + + if (!preg_match('/Version\/[0-9\.]+/u', $ua)) { + $this->data->features[] = 'noVersion'; + $this->data->camouflage = true; + } + } + + return $this; + } + + private function &detectCamouflagedAsChrome($ua) + { + if ($this->data->isBrowser('Chrome')) { + if (preg_match('/(?:Chrome|CrMo|CriOS)\//u', $ua) + && !preg_match('/(?:Chrome|CrMo|CriOS)\/([0-9]{1,2}\.[0-9]\.[0-9]{3,4}\.[0-9]+)/u', $ua) + ) { + + $this->data->features[] = 'wrongVersion'; + $this->data->camouflage = true; + } + } + + return $this; + } + + private function &detectCamouflagedUCBrowser($ua) + { + if ($ua == 'Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.2.3.4) Gecko/') { + + if (!$this->data->isBrowser('UC Browser')) { + $this->data->browser->name = 'UC Browser'; + $this->data->browser->version = null; + $this->data->browser->stock = false; + } + + if ($this->data->isOs('Windows')) { + $this->data->os->reset(); + } + + $this->data->engine->reset([ 'name' => 'Gecko' ]); + $this->data->device->type = 'mobile'; + } + + if ($this->data->isBrowser('Chrome')) { + if (preg_match('/UBrowser\/?([0-9.]*)/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'UC Browser'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + unset($this->data->browser->channel); + } + } + + return $this; + } + + private function &detectCamouflagedBasedOnEngines() + { + if (isset($this->data->engine->name) && $this->data->browser->mode != 'proxy') { + + /* If it claims not to be Trident, but it is probably Trident running camouflage mode */ + if ($this->options->engine & Constants\EngineType::TRIDENT) { + $this->data->features[] = 'trident'; + + if ($this->data->engine->name && $this->data->engine->name != 'Trident') { + $this->data->camouflage = !isset($this->data->browser->name) || ($this->data->browser->name != 'Maxthon' && $this->data->browser->name != 'Motorola WebKit'); + } + } + + /* If it claims not to be Opera, but it is probably Opera running camouflage mode */ + if ($this->options->engine & Constants\EngineType::PRESTO) { + $this->data->features[] = 'presto'; + + if ($this->data->engine->name && $this->data->engine->name != 'Presto') { + $this->data->camouflage = true; + } + + if (isset($this->data->browser->name) && $this->data->browser->name == 'Internet Explorer') { + $this->data->camouflage = true; + } + } + + /* If it claims not to be Gecko, but it is probably Gecko running camouflage mode */ + if ($this->options->engine & Constants\EngineType::GECKO) { + $this->data->features[] = 'gecko'; + + if ($this->data->engine->name && $this->data->engine->name != 'Gecko') { + $this->data->camouflage = true; + } + + if (isset($this->data->browser->name) && $this->data->browser->name == 'Internet Explorer') { + $this->data->camouflage = true; + } + } + + /* If it claims not to be Webkit, but it is probably Webkit running camouflage mode */ + if ($this->options->engine & Constants\EngineType::WEBKIT) { + $this->data->features[] = 'webkit'; + + if ($this->data->engine->name && ($this->data->engine->name != 'Blink' && $this->data->engine->name != 'Webkit')) { + $this->data->camouflage = true; + } + + if (isset($this->data->browser->name) && $this->data->browser->name == 'Internet Explorer') { + $this->data->camouflage = true; + } + + /* IE 11 on mobile now supports Webkit APIs */ + if (isset($this->data->browser->name) && $this->data->browser->name == 'Mobile Internet Explorer' + && isset($this->data->browser->version) && $this->data->browser->version->toFloat() >= 11 + && isset($this->data->os->name) && $this->data->os->name == 'Windows Phone' + ) { + $this->data->camouflage = false; + } + + /* IE 11 Developer Preview now supports Webkit APIs */ + if (isset($this->data->browser->name) && $this->data->browser->name == 'Internet Explorer' + && isset($this->data->browser->version) && $this->data->browser->version->toFloat() >= 11 + && isset($this->data->os->name) && $this->data->os->name == 'Windows' + ) { + $this->data->camouflage = false; + } + + /* EdgeHTML rendering engine also appears to be WebKit */ + if (isset($this->data->engine->name) && $this->data->engine->name == 'EdgeHTML') { + $this->data->camouflage = false; + } + + /* Firefox 48+ support certain Webkit features */ + if ($this->options->engine & Constants\EngineType::GECKO) { + $this->data->camouflage = false; + } + } + + if ($this->options->engine & Constants\EngineType::CHROMIUM) { + $this->data->features[] = 'chrome'; + + if ($this->data->engine->name && ($this->data->engine->name != 'EdgeHTML' && $this->data->engine->name != 'Blink' && $this->data->engine->name != 'Webkit')) { + $this->data->camouflage = true; + } + } + + /* If it claims to be Safari and uses V8, it is probably an Android device running camouflage mode */ + if ($this->data->engine->name == 'Webkit' && $this->options->engine & Constants\EngineType::V8) { + $this->data->features[] = 'v8'; + + if (isset($this->data->browser->name) && $this->data->browser->name == 'Safari') { + $this->data->camouflage = true; + } + } + } + + return $this; + } + + private function &detectCamouflagedBasedOnFeatures() + { + if (isset($this->data->browser->name) && isset($this->data->os->name)) { + if ($this->data->os->name == 'iOS' && $this->data->browser->name != 'Opera Mini' && $this->data->browser->name != 'UC Browser' && isset($this->data->os->version)) { + + if ($this->data->os->version->toFloat() < 4.0 && $this->options->features & Constants\Feature::SANDBOX) { + $this->data->features[] = 'foundSandbox'; + $this->data->camouflage = true; + } + + if ($this->data->os->version->toFloat() < 4.2 && $this->options->features & Constants\Feature::WEBSOCKET) { + $this->data->features[] = 'foundSockets'; + $this->data->camouflage = true; + } + + if ($this->data->os->version->toFloat() < 5.0 && $this->options->features & Constants\Feature::WORKER) { + $this->data->features[] = 'foundWorker'; + $this->data->camouflage = true; + } + } + + if ($this->data->os->name != 'iOS' && $this->data->browser->name == 'Safari' && isset($this->data->browser->version)) { + + if ($this->data->browser->version->toFloat() < 4.0 && $this->options->features & Constants\Feature::APPCACHE) { + $this->data->features[] = 'foundAppCache'; + $this->data->camouflage = true; + } + + if ($this->data->browser->version->toFloat() < 4.1 && $this->options->features & Constants\Feature::HISTORY) { + $this->data->features[] = 'foundHistory'; + $this->data->camouflage = true; + } + + if ($this->data->browser->version->toFloat() < 5.1 && $this->options->features & Constants\Feature::FULLSCREEN) { + $this->data->features[] = 'foundFullscreen'; + $this->data->camouflage = true; + } + + if ($this->data->browser->version->toFloat() < 5.2 && $this->options->features & Constants\Feature::FILEREADER) { + $this->data->features[] = 'foundFileReader'; + $this->data->camouflage = true; + } + } + } + + return $this; + } +} diff --git a/integration/whichbrowser/src/Analyser/Corrections.php b/integration/whichbrowser/src/Analyser/Corrections.php new file mode 100644 index 00000000..158437e8 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Corrections.php @@ -0,0 +1,168 @@ +data->browser->name) && isset($this->data->browser->using)) { + $this->hideBrowserBasedOnUsing(); + } + + if (isset($this->data->browser->name) && isset($this->data->os->name)) { + $this->hideBrowserBasedOnOperatingSystem(); + } + + if (isset($this->data->browser->name) && $this->data->device->type == Constants\DeviceType::TELEVISION) { + $this->hideBrowserOnDeviceTypeTelevision(); + } + + if (isset($this->data->browser->name) && $this->data->device->type == Constants\DeviceType::GAMING) { + $this->hideBrowserOnDeviceTypeGaming(); + } + + if ($this->data->device->type == Constants\DeviceType::TELEVISION) { + $this->hideOsOnDeviceTypeTelevision(); + } + + if (isset($this->data->browser->name) && isset($this->data->engine->name)) { + $this->fixMidoriEngineName(); + } + + if (isset($this->data->browser->name) && isset($this->data->engine->name)) { + $this->fixNineSkyEngineName(); + } + + if (isset($this->data->browser->name) && isset($this->data->browser->family)) { + $this->hideFamilyIfEqualToBrowser(); + } + + return $this; + } + + + private function hideFamilyIfEqualToBrowser() + { + if ($this->data->browser->name == $this->data->browser->family->name) { + unset($this->data->browser->family); + } + } + + private function fixMidoriEngineName() + { + if ($this->data->browser->name == 'Midori' && $this->data->engine->name != 'Webkit') { + $this->data->engine->name = 'Webkit'; + $this->data->engine->version = null; + } + } + + private function fixNineSkyEngineName() + { + if ($this->data->browser->name == 'NineSky' && $this->data->engine->name != 'Webkit') { + $this->data->engine->name = 'Webkit'; + $this->data->engine->version = null; + } + } + + private function hideBrowserBasedOnUsing() + { + if ($this->data->browser->name == 'Chrome') { + if ($this->data->browser->isUsing('Electron') || $this->data->browser->isUsing('Qt')) { + unset($this->data->browser->name); + unset($this->data->browser->version); + } + } + } + + private function hideBrowserBasedOnOperatingSystem() + { + if ($this->data->os->name == 'Series60' && $this->data->browser->name == 'Internet Explorer') { + $this->data->browser->reset(); + $this->data->engine->reset(); + } + + if ($this->data->os->name == 'Series80' && $this->data->browser->name == 'Internet Explorer') { + $this->data->browser->reset(); + $this->data->engine->reset(); + } + + if ($this->data->os->name == 'Lindows' && $this->data->browser->name == 'Internet Explorer') { + $this->data->browser->reset(); + $this->data->engine->reset(); + } + + if ($this->data->os->name == 'Tizen' && $this->data->browser->name == 'Chrome') { + $this->data->browser->reset([ + 'family' => isset($this->data->browser->family) ? $this->data->browser->family : null + ]); + } + + if ($this->data->os->name == 'Ubuntu Touch' && $this->data->browser->name == 'Chromium') { + $this->data->browser->reset([ + 'family' => isset($this->data->browser->family) ? $this->data->browser->family : null + ]); + } + } + + private function hideBrowserOnDeviceTypeGaming() + { + if (isset($this->data->device->model) && $this->data->device->model == 'Playstation 2' && $this->data->browser->name == 'Internet Explorer') { + $this->data->browser->reset(); + } + } + + private function hideBrowserOnDeviceTypeTelevision() + { + switch ($this->data->browser->name) { + case 'Firefox': + if (!$this->data->isOs('Firefox OS')) { + unset($this->data->browser->name); + unset($this->data->browser->version); + } + break; + + case 'Internet Explorer': + $valid = false; + + if (isset($this->data->device->model) && in_array($this->data->device->model, [ 'WebTV' ])) { + $valid = true; + } + + if (!$valid) { + unset($this->data->browser->name); + unset($this->data->browser->version); + } + + break; + + case 'Chrome': + case 'Chromium': + $valid = false; + + if (isset($this->data->os->name) && in_array($this->data->os->name, [ 'Google TV', 'Android' ])) { + $valid = true; + } + if (isset($this->data->device->model) && in_array($this->data->device->model, [ 'Chromecast' ])) { + $valid = true; + } + + if (!$valid) { + unset($this->data->browser->name); + unset($this->data->browser->version); + } + + break; + } + } + + private function hideOsOnDeviceTypeTelevision() + { + if (isset($this->data->os->name) && !in_array($this->data->os->name, [ 'Aliyun OS', 'Tizen', 'Android', 'Android TV', 'FireOS', 'Google TV', 'Firefox OS', 'OpenTV', 'webOS' ])) { + $this->data->os->reset(); + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Derive.php b/integration/whichbrowser/src/Analyser/Derive.php new file mode 100644 index 00000000..75114d1a --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Derive.php @@ -0,0 +1,478 @@ +data->device->flag)) { + $this->deriveBasedOnDeviceFlag(); + } + + if (isset($this->data->os->name)) { + $this->deriveBasedOnOperatingSystem(); + } + + if (isset($this->data->browser->name)) { + $this->deriveOperaDevices(); + } + + if (isset($this->data->browser->name)) { + $this->deriveFirefoxOS(); + } + + if (isset($this->data->browser->name)) { + $this->deriveTrident(); + $this->deriveOperaRenderingEngine(); + $this->deriveOmniWebRenderingEngine(); + $this->deriveNetFrontRenderingEngine(); + } + + return $this; + } + + + + + private function &deriveDeviceSubType() + { + if ($this->data->device->type == 'mobile' && empty($this->data->device->subtype)) { + $this->data->device->subtype = 'feature'; + + if (in_array($this->data->os->getName(), [ 'Android', 'Bada', 'BlackBerry', 'BlackBerry OS', 'Firefox OS', 'iOS', 'iPhone OS', 'Kin OS', 'Maemo', 'MeeGo', 'Palm OS', 'Sailfish', 'Series60', 'Series80', 'Tizen', 'Ubuntu Touch', 'Windows Mobile', 'Windows Phone', 'webOS' ])) { + $this->data->device->subtype = 'smart'; + } + + if (isset($this->data->os->name) && in_array($this->data->os->name, [ 'Windows Phone' ])) { + $this->data->device->subtype = 'smart'; + } + + if (isset($this->data->os->family) && in_array($this->data->os->family->getName(), [ 'Android' ])) { + $this->data->device->subtype = 'smart'; + } + } + + return $this; + } + + + private function deriveOmniWebRenderingEngine() + { + if ($this->data->isBrowser('OmniWeb')) { + $version = $this->data->browser->getVersion(); + + if ($version < 5) { + $this->data->engine->reset(); + } + + if ($version >= 5 && $version < 5.5 && !$this->data->isEngine('WebCore')) { + $this->data->engine->reset([ 'name' => 'WebCore' ]); + } + + if ($version >= 5.5 && !$this->data->isEngine('WebKit')) { + $this->data->engine->reset([ 'name' => 'WebKit' ]); + } + } + } + + + private function deriveOperaRenderingEngine() + { + if ($this->data->isBrowser('Opera') || $this->data->isBrowser('Opera Mobile')) { + $version = $this->data->browser->getVersion(); + + if ($version >= 3.5 && $version < 7 && !$this->data->isEngine('Electra')) { + $this->data->engine->reset([ 'name' => 'Electra' ]); + } + + if ($version >= 7 && $version < 13 && !$this->data->isEngine('Presto')) { + $this->data->engine->reset([ 'name' => 'Presto' ]); + } + } + + if ($this->data->isBrowser('Opera Mini') && !$this->data->isOs('iOS') && !$this->data->isEngine('Presto')) { + $this->data->engine->reset([ 'name' => 'Presto' ]); + } + } + + + private function deriveNetFrontRenderingEngine() + { + if ($this->data->isBrowser('NetFront') && !$this->data->isEngine('NetFront')) { + $this->data->engine->reset([ 'name' => 'NetFront' ]); + } + } + + private function deriveTrident() + { + if ($this->data->isType('desktop') && $this->data->isBrowser('Internet Explorer') && !$this->data->engine->getName()) { + if ($this->data->isBrowser('Internet Explorer', '>=', 4)) { + $this->data->engine->set([ 'name' => 'Trident' ]); + } + } + + if ($this->data->isMobile() && $this->data->isBrowser('Mobile Internet Explorer') && !$this->data->engine->getName()) { + if ($this->data->isBrowser('Mobile Internet Explorer', '=', 6)) { + $this->data->engine->set([ 'name' => 'Trident' ]); + } + + if ($this->data->isBrowser('Mobile Internet Explorer', '=', 7)) { + $this->data->engine->set([ 'name' => 'Trident', 'version' => new Version([ 'value' => '3.1' ]) ]); + } + } + } + + + private function deriveFirefoxOS() + { + if ($this->data->browser->name == 'Firefox Mobile' && !isset($this->data->os->name)) { + $this->data->os->name = 'Firefox OS'; + } + + if (isset($this->data->os->name) && $this->data->os->name == 'Firefox OS') { + switch ($this->data->engine->getVersion()) { + case '18.0': + $this->data->os->version = new Version([ 'value' => '1.0.1' ]); + break; + case '18.1': + $this->data->os->version = new Version([ 'value' => '1.1' ]); + break; + case '26.0': + $this->data->os->version = new Version([ 'value' => '1.2' ]); + break; + case '28.0': + $this->data->os->version = new Version([ 'value' => '1.3' ]); + break; + case '30.0': + $this->data->os->version = new Version([ 'value' => '1.4' ]); + break; + case '32.0': + $this->data->os->version = new Version([ 'value' => '2.0' ]); + break; + case '34.0': + $this->data->os->version = new Version([ 'value' => '2.1' ]); + break; + case '37.0': + $this->data->os->version = new Version([ 'value' => '2.2' ]); + break; + case '44.0': + $this->data->os->version = new Version([ 'value' => '2.5' ]); + break; + } + } + } + + + private function deriveOperaDevices() + { + if ($this->data->browser->name == 'Opera' && $this->data->device->type == Constants\DeviceType::TELEVISION) { + $this->data->browser->name = 'Opera Devices'; + $this->data->browser->version = null; + + if ($this->data->engine->getName() == 'Presto') { + $data = [ + '2.12' => '3.4', + '2.11' => '3.3', + '2.10' => '3.2', + '2.9' => '3.1', + '2.8' => '3.0', + '2.7' => '2.9', + '2.6' => '2.8', + '2.4' => '10.3', + '2.3' => '10', + '2.2' => '9.7', + '2.1' => '9.6' + ]; + + $key = implode('.', array_slice(explode('.', $this->data->engine->getVersion()), 0, 2)); + + if (isset($data[$key])) { + $this->data->browser->version = new Version([ 'value' => $data[$key] ]); + } else { + unset($this->data->browser->version); + } + } + + $this->data->os->reset(); + } + } + + + + private function deriveBasedOnDeviceFlag() + { + $flag = $this->data->device->flag; + + if ($flag == Constants\Flag::NOKIAX) { + $this->data->os->name = 'Nokia X Platform'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + + unset($this->data->os->version); + unset($this->data->device->flag); + } + + if ($flag == Constants\Flag::FIREOS) { + $this->data->os->name = 'FireOS'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + + if (isset($this->data->os->version) && isset($this->data->os->version->value)) { + switch ($this->data->os->version->value) { + case '2.3.3': + case '2.3.4': + $this->data->os->version = new Version([ 'value' => '1' ]); + break; + case '4.0.3': + $this->data->os->version = new Version([ 'value' => '2' ]); + break; + case '4.2.2': + $this->data->os->version = new Version([ 'value' => '3' ]); + break; + case '4.4.2': + $this->data->os->version = new Version([ 'value' => '4' ]); + break; + case '4.4.3': + $this->data->os->version = new Version([ 'value' => '4.5' ]); + break; + case '5.1.1': + $this->data->os->version = new Version([ 'value' => '5' ]); + break; + default: + unset($this->data->os->version); + break; + } + } + + if ($this->data->isBrowser('Chrome')) { + $this->data->browser->reset(); + $this->data->browser->using = new Using([ 'name' => 'Amazon WebView' ]); + } + + if ($this->data->browser->isUsing('Chromium WebView')) { + $this->data->browser->using = new Using([ 'name' => 'Amazon WebView' ]); + } + + unset($this->data->device->flag); + } + + if ($flag == Constants\Flag::GOOGLETV) { + $this->data->os->name = 'Google TV'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + + unset($this->data->os->version); + unset($this->data->device->flag); + } + + if ($flag == Constants\Flag::ANDROIDTV) { + $this->data->os->name = 'Android TV'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + unset($this->data->device->flag); + unset($this->data->device->series); + } + + if ($flag == Constants\Flag::ANDROIDWEAR) { + $this->data->os->name = 'Android Wear'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + unset($this->data->os->version); + unset($this->data->device->flag); + + if ($this->data->browser->isUsing('Chrome Content Shell')) { + $this->data->browser->name = 'Wear Internet Browser'; + $this->data->browser->using = null; + } + } + + if ($flag == Constants\Flag::GOOGLEGLASS) { + $this->data->os->family = new Family([ 'name' => 'Android' ]); + unset($this->data->os->name); + unset($this->data->os->version); + unset($this->data->device->flag); + } + + if ($flag == Constants\Flag::UIQ) { + unset($this->data->device->flag); + + if (!$this->data->isOs('UIQ')) { + $this->data->os->name = 'UIQ'; + unset($this->data->os->version); + } + } + + if ($flag == Constants\Flag::S60) { + unset($this->data->device->flag); + + if (!$this->data->isOs('Series60')) { + $this->data->os->name = 'Series60'; + unset($this->data->os->version); + } + } + + if ($flag == Constants\Flag::MOAPS) { + unset($this->data->device->flag); + $this->data->os->name = 'MOAP(S)'; + unset($this->data->os->version); + } + } + + private function deriveBasedOnOperatingSystem() + { + /* Derive the default browser on Windows Mobile */ + + if ($this->data->os->name == 'Windows Mobile' && $this->data->isBrowser('Internet Explorer')) { + $this->data->browser->name = 'Mobile Internet Explorer'; + } + + /* Derive the default browser on Android */ + + if ($this->data->os->name == 'Android' && !isset($this->data->browser->using) && !isset($this->data->browser->name) && $this->data->browser->stock) { + $this->data->browser->name = 'Android Browser'; + } + + /* Derive the default browser on Google TV */ + + if ($this->data->os->name == 'Google TV' && !isset($this->data->browser->name) && $this->data->browser->stock) { + $this->data->browser->name = 'Chrome'; + } + + /* Derive the default browser on BlackBerry */ + + if ($this->data->os->name == 'BlackBerry' && !isset($this->data->browser->name) && $this->data->browser->stock) { + $this->data->browser->name = 'BlackBerry Browser'; + $this->data->browser->hidden = true; + } + + if ($this->data->os->name == 'BlackBerry OS' && !isset($this->data->browser->name) && $this->data->browser->stock) { + $this->data->browser->name = 'BlackBerry Browser'; + $this->data->browser->hidden = true; + } + + if ($this->data->os->name == 'BlackBerry Tablet OS' && !isset($this->data->browser->name) && $this->data->browser->stock) { + $this->data->browser->name = 'BlackBerry Browser'; + $this->data->browser->hidden = true; + } + + /* Derive the default browser on Tizen */ + + if ($this->data->os->name == 'Tizen' && !isset($this->data->browser->name) && $this->data->browser->stock && in_array($this->data->device->type, [ Constants\DeviceType::MOBILE, Constants\DeviceType::APPLIANCE ])) { + $this->data->browser->name = 'Samsung Browser'; + } + + /* Derive the default browser on Aliyun OS */ + + if ($this->data->os->name == 'Aliyun OS' && !isset($this->data->browser->using) && !isset($this->data->browser->name) && $this->data->browser->stock) { + $this->data->browser->name = 'Aliyun Browser'; + } + + if ($this->data->os->name == 'Aliyun OS' && $this->data->browser->isUsing('Chrome Content Shell')) { + $this->data->browser->name = 'Aliyun Browser'; + $this->data->browser->using = null; + $this->data->browser->stock = true; + } + + if ($this->data->os->name == 'Aliyun OS' && $this->data->browser->stock) { + $this->data->browser->hidden = true; + } + + /* Derive OS/2 nickname */ + + if ($this->data->os->name == 'OS/2') { + if (!empty($this->data->os->version)) { + if ($this->data->os->version->is('>', '2')) { + $this->data->os->version->nickname = 'Warp'; + } + } + } + + /* Derive HP TouchPad based on webOS and tablet */ + + if ($this->data->os->name == 'webOS' && $this->data->device->type == Constants\DeviceType::TABLET) { + $this->data->device->manufacturer = 'HP'; + $this->data->device->model = 'TouchPad'; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + /* Derive Windows 10 Mobile edition */ + + if ($this->data->os->name == 'Windows Phone') { + if (!empty($this->data->os->version)) { + if ($this->data->os->version->is('=', '10')) { + $this->data->os->alias = 'Windows'; + $this->data->os->edition = 'Mobile'; + $this->data->os->version->alias = '10'; + } + } + } + + /* Derive manufacturer and model based on MacOS or OS X */ + + if ($this->data->os->name == 'OS X' || $this->data->os->name == 'Mac OS') { + if (empty($this->data->device->model)) { + $this->data->device->manufacturer = 'Apple'; + $this->data->device->model = 'Macintosh'; + $this->data->device->identified |= Constants\Id::INFER; + $this->data->device->hidden = true; + } + } + + /* Derive manufacturer and model based on MacOS or OS X */ + + if ($this->data->os->name == 'iOS') { + if (empty($this->data->device->model)) { + $this->data->device->manufacturer = 'Apple'; + $this->data->device->identified |= Constants\Id::INFER; + $this->data->device->hidden = true; + } + } + + /* Derive iOS and OS X aliases */ + + if ($this->data->os->name == 'iOS') { + if (!empty($this->data->os->version)) { + if ($this->data->os->version->is('<', '4')) { + $this->data->os->alias = 'iPhone OS'; + } + } + } + + if ($this->data->os->name == 'OS X') { + if (!empty($this->data->os->version)) { + if ($this->data->os->version->is('<', '10.7')) { + $this->data->os->alias = 'Mac OS X'; + } + + if ($this->data->os->version->is('>=', '10.12')) { + $this->data->os->alias = 'macOS'; + } + + if ($this->data->os->version->is('10.7')) { + $this->data->os->version->nickname = 'Lion'; + } + + if ($this->data->os->version->is('10.8')) { + $this->data->os->version->nickname = 'Mountain Lion'; + } + + if ($this->data->os->version->is('10.9')) { + $this->data->os->version->nickname = 'Mavericks'; + } + + if ($this->data->os->version->is('10.10')) { + $this->data->os->version->nickname = 'Yosemite'; + } + + if ($this->data->os->version->is('10.11')) { + $this->data->os->version->nickname = 'El Capitan'; + } + + if ($this->data->os->version->is('10.12')) { + $this->data->os->version->nickname = 'Sierra'; + } + } + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header.php b/integration/whichbrowser/src/Analyser/Header.php new file mode 100644 index 00000000..8f9f478d --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header.php @@ -0,0 +1,148 @@ +getHeader('User-Agent')) { + $this->analyseUserAgent($header); + } + + + /* Analyse secondary useragent headers */ + + if ($header = $this->getHeader('X-Original-User-Agent')) { + $this->additionalUserAgent($header); + } + + if ($header = $this->getHeader('X-Device-User-Agent')) { + $this->additionalUserAgent($header); + } + + if ($header = $this->getHeader('Device-Stock-UA')) { + $this->additionalUserAgent($header); + } + + if ($header = $this->getHeader('X-OperaMini-Phone-UA')) { + $this->additionalUserAgent($header); + } + + if ($header = $this->getHeader('X-UCBrowser-Device-UA')) { + $this->additionalUserAgent($header); + } + + + /* Analyse browser specific headers */ + + if ($header = $this->getHeader('X-OperaMini-Phone')) { + $this->analyseOperaMiniPhone($header); + } + + if ($header = $this->getHeader('X-UCBrowser-Phone-UA')) { + $this->analyseOldUCUserAgent($header); + } + + if ($header = $this->getHeader('X-UCBrowser-UA')) { + $this->analyseNewUCUserAgent($header); + } + + if ($header = $this->getHeader('X-Puffin-UA')) { + $this->analysePuffinUserAgent($header); + } + + if ($header = $this->getHeader('Baidu-FlyFlow')) { + $this->analyseBaiduHeader($header); + } + + + /* Analyse Android WebView browser ids */ + + if ($header = $this->getHeader('X-Requested-With')) { + $this->analyseBrowserId($header); + } + + + /* Analyse WAP profile header */ + + if ($header = $this->getHeader('X-Wap-Profile')) { + $this->analyseWapProfile($header); + } + + return $this; + } + + + + private function analyseUserAgent($header) + { + new Header\Useragent($header, $this->data); + } + + private function analyseBaiduHeader($header) + { + new Header\Baidu($header, $this->data); + } + + private function analyseOperaMiniPhone($header) + { + new Header\OperaMini($header, $this->data); + } + + private function analyseBrowserId($header) + { + new Header\BrowserId($header, $this->data); + } + + private function analysePuffinUserAgent($header) + { + new Header\Puffin($header, $this->data); + } + + private function analyseNewUCUserAgent($header) + { + new Header\UCBrowserNew($header, $this->data); + } + + private function analyseOldUCUserAgent($header) + { + new Header\UCBrowserOld($header, $this->data); + } + + private function analyseWapProfile($header) + { + new Header\Wap($header, $this->data); + } + + + private function additionalUserAgent($ua) + { + $extra = new Parser($ua); + + if ($extra->device->type != Constants\DeviceType::DESKTOP) { + if (isset($extra->os->name)) { + $this->data->os = $extra->os; + } + + if ($extra->device->identified) { + $this->data->device = $extra->device; + } + } + } + + + private function getHeader($h) + { + foreach ($this->headers as $k => $v) { + if (strtolower($h) == strtolower($k)) { + return $v; + } + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Baidu.php b/integration/whichbrowser/src/Analyser/Header/Baidu.php new file mode 100644 index 00000000..09607f86 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Baidu.php @@ -0,0 +1,17 @@ +data =& $data; + + if (!isset($this->data->browser->name) || $this->data->browser->name != 'Baidu Browser') { + $this->data->browser->name = 'Baidu Browser'; + $this->data->browser->version = null; + $this->data->browser->stock = false; + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/BrowserId.php b/integration/whichbrowser/src/Analyser/Header/BrowserId.php new file mode 100644 index 00000000..26d43da6 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/BrowserId.php @@ -0,0 +1,65 @@ +data =& $data; + + /* The X-Requested-With header is send by the WebView, so our browser name is Chrome it is probably the Chromium WebView which is sometimes misidentified. */ + + if (isset($this->data->browser->name) && $this->data->browser->name == 'Chrome') { + $version = $this->data->browser->getVersion(); + + $this->data->browser->reset(); + $this->data->browser->using = new Using([ 'name' => 'Chromium WebView', 'version' => new Version([ 'value' => explode('.', $version)[0] ]) ]); + } + + /* Detect the correct browser based on the header */ + + $browser = Data\BrowserIds::identify($header); + if ($browser) { + if (!isset($this->data->browser->name)) { + $this->data->browser->name = $browser; + } else { + if (substr($this->data->browser->name, 0, strlen($browser)) != $browser) { + $this->data->browser->name = $browser; + $this->data->browser->version = null; + $this->data->browser->stock = false; + } else { + $this->data->browser->name = $browser; + } + } + } + + /* The X-Requested-With header is only send from Android devices */ + + if (!isset($this->data->os->name) || ($this->data->os->name != 'Android' && (!isset($this->data->os->family) || $this->data->os->family->getName() != 'Android'))) { + $this->data->os->name = 'Android'; + $this->data->os->alias = null; + $this->data->os->version = null; + + $this->data->device->manufacturer = null; + $this->data->device->model = null; + $this->data->device->identified = Constants\Id::NONE; + + if ($this->data->device->type != Constants\DeviceType::MOBILE && $this->data->device->type != Constants\DeviceType::TABLET) { + $this->data->device->type = Constants\DeviceType::MOBILE; + } + } + + /* The X-Requested-With header is send by the WebKit or Chromium Webview */ + + if (!isset($this->data->engine->name) || ($this->data->engine->name != 'Webkit' && $this->data->engine->name != 'Blink')) { + $this->data->engine->name = 'Webkit'; + $this->data->engine->version = null; + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/OperaMini.php b/integration/whichbrowser/src/Analyser/Header/OperaMini.php new file mode 100644 index 00000000..d8525bdf --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/OperaMini.php @@ -0,0 +1,72 @@ +data =& $data; + + $parts = explode(' # ', $header); + $manufacturer = isset($parts[0]) ? $parts[0] : ''; + $model = isset($parts[1]) ? $parts[1] : ''; + + if ($manufacturer != '?' && $model != '?') { + if ($this->data->device->identified < Constants\Id::PATTERN) { + if ($this->identifyBasedOnModel($model)) { + return; + } + + $this->data->device->manufacturer = $manufacturer; + $this->data->device->model = $model; + $this->data->device->identified = true; + } + } + } + + private function identifyBasedOnModel($model) + { + $device = Data\DeviceModels::identify('bada', $model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + + if (!isset($this->data->os->name) || $this->data->os->name != 'Bada') { + $this->data->os->name = 'Bada'; + $this->data->os->version = null; + } + + return true; + } + + $device = Data\DeviceModels::identify('blackberry', $model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + + if (!isset($this->data->os->name) || $this->data->os->name != 'BlackBerry OS') { + $this->data->os->name = 'BlackBerry OS'; + $this->data->os->version = null; + } + + return true; + } + + $device = Data\DeviceModels::identify('wm', $model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + + if (!isset($this->data->os->name) || $this->data->os->name != 'Windows Mobile') { + $this->data->os->name = 'Windows Mobile'; + $this->data->os->version = null; + } + + return true; + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Puffin.php b/integration/whichbrowser/src/Analyser/Header/Puffin.php new file mode 100644 index 00000000..fdd34891 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Puffin.php @@ -0,0 +1,50 @@ +data =& $data; + + $parts = explode('/', $header); + + if ($this->data->browser->name != 'Puffin') { + $this->data->browser->name = 'Puffin'; + $this->data->browser->version = null; + $this->data->browser->stock = false; + } + + $this->data->device->type = 'mobile'; + + if (count($parts) > 1 && $parts[0] == 'Android') { + if (!isset($this->data->os->name) || $this->data->os->name != 'Android') { + $this->data->os->name = 'Android'; + $this->data->os->version = null; + } + + $device = Data\DeviceModels::identify('android', $parts[1]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (count($parts) > 1 && $parts[0] == 'iPhone OS') { + if (!isset($this->data->os->name) || $this->data->os->name != 'iOS') { + $this->data->os->name = 'iOS'; + $this->data->os->version = null; + } + + $device = Data\DeviceModels::identify('ios', $parts[1]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/UCBrowserNew.php b/integration/whichbrowser/src/Analyser/Header/UCBrowserNew.php new file mode 100644 index 00000000..d3f20c72 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/UCBrowserNew.php @@ -0,0 +1,182 @@ +data =& $data; + + if (preg_match('/pr\(UCBrowser/u', $header)) { + if (!$this->data->isBrowser('UC Browser')) { + $this->data->browser->name = 'UC Browser'; + $this->data->browser->stock = false; + $this->data->browser->version = null; + + if (preg_match('/pr\(UCBrowser(?:\/([0-9\.]+))/u', $header, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } + } + } + + /* Find os */ + if (preg_match('/pf\(Java\)/u', $header)) { + if (preg_match('/dv\(([^\)]*)\)/u', $header, $match)) { + if ($this->identifyBasedOnModel($match[1])) { + return; + } + } + } + + if (preg_match('/pf\(Linux\)/u', $header) && preg_match('/ov\((?:Android )?([0-9\.]+)/u', $header, $match)) { + $this->data->os->name = 'Android'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/pf\(Symbian\)/u', $header) && preg_match('/ov\(S60V([0-9])/u', $header, $match)) { + if (!$this->data->isOs('Series60')) { + $this->data->os->name = 'Series60'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + } + + if (preg_match('/pf\(Windows\)/u', $header) && preg_match('/ov\(wds ([0-9]+\.[0-9]+)/u', $header, $match)) { + if (!$this->data->isOs('Windows Phone')) { + $this->data->os->name = 'Windows Phone'; + + switch ($match[1]) { + case '7.1': + $this->data->os->version = new Version([ 'value' => '7.5' ]); + break; + case '8.0': + $this->data->os->version = new Version([ 'value' => '8.0' ]); + break; + case '8.1': + $this->data->os->version = new Version([ 'value' => '8.1' ]); + break; + case '10.0': + $this->data->os->version = new Version([ 'value' => '10.0' ]); + break; + } + } + } + + if (preg_match('/pf\((?:42|44)\)/u', $header) && preg_match('/ov\((?:iPh OS )?(?:iOS )?([0-9\_]+)/u', $header, $match)) { + if (!$this->data->isOs('iOS')) { + $this->data->os->name = 'iOS'; + $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]); + } + } + + /* Find engine */ + if (preg_match('/re\(AppleWebKit\/([0-9\.]+)/u', $header, $match)) { + $this->data->engine->name = 'Webkit'; + $this->data->engine->version = new Version([ 'value' => $match[1] ]); + } + + /* Find device */ + if ($this->data->isOs('Android')) { + if (preg_match('/dv\((.*)\)/uU', $header, $match)) { + $match[1] = preg_replace("/\s+Build/u", '', $match[1]); + $device = Data\DeviceModels::identify('android', $match[1]); + + if ($device) { + $this->data->device = $device; + } + } + } + + if ($this->data->isOs('Series60')) { + if (preg_match('/dv\((?:Nokia)?([^\)]*)\)/iu', $header, $match)) { + $device = Data\DeviceModels::identify('symbian', $match[1]); + + if ($device) { + $this->data->device = $device; + } + } + } + + if ($this->data->isOs('Windows Phone')) { + if (preg_match('/dv\(([^\)]*)\)/u', $header, $match)) { + $device = Data\DeviceModels::identify('wp', substr(strstr($match[1], ' '), 1)); + + if ($device) { + $this->data->device = $device; + } + } + } + + if ($this->data->isOs('iOS')) { + if (preg_match('/dv\(([^\)]*)\)/u', $header, $match)) { + $device = Data\DeviceModels::identify('ios', $match[1]); + + if ($device) { + $this->data->device = $device; + } + } + } + } + + private function identifyBasedOnModel($model) + { + $model = preg_replace('/^Nokia/iu', '', $model); + + $device = Data\DeviceModels::identify('symbian', $model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + + if (!isset($this->data->os->name) || $this->data->os->name != 'Series60') { + $this->data->os->name = 'Series60'; + $this->data->os->version = null; + $this->data->os->family = new Family([ 'name' => 'Symbian' ]); + } + + return true; + } + + $device = Data\DeviceModels::identify('s40', $model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + + if (!isset($this->data->os->name) || $this->data->os->name != 'Series40') { + $this->data->os->name = 'Series40'; + $this->data->os->version = null; + } + + return true; + } + + $device = Data\DeviceModels::identify('bada', $model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + + if (!isset($this->data->os->name) || $this->data->os->name != 'Bada') { + $this->data->os->name = 'Bada'; + $this->data->os->version = null; + } + + return true; + } + + $device = Data\DeviceModels::identify('touchwiz', $model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + + if (!isset($this->data->os->name) || $this->data->os->name != 'Touchwiz') { + $this->data->os->name = 'Touchwiz'; + $this->data->os->version = null; + } + + return true; + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/UCBrowserOld.php b/integration/whichbrowser/src/Analyser/Header/UCBrowserOld.php new file mode 100644 index 00000000..12caa9a1 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/UCBrowserOld.php @@ -0,0 +1,39 @@ +data =& $data; + + if ($this->data->device->type == Constants\DeviceType::DESKTOP) { + $this->data->device->type = Constants\DeviceType::MOBILE; + + $this->data->os->reset(); + } + + if (!isset($this->data->browser->name) || $this->data->browser->name != 'UC Browser') { + $this->data->browser->name = 'UC Browser'; + $this->data->browser->version = null; + } + + $this->data->browser->mode = 'proxy'; + $this->data->engine->reset([ 'name' => 'Gecko' ]); + + $extra = new Parser([ 'headers' => [ 'User-Agent' => $header ]]); + + if ($extra->device->type != Constants\DeviceType::DESKTOP) { + if ($extra->os->getName() !== '' && ($this->data->os->getName() === '' || $extra->os->getVersion() !== '')) { + $this->data->os = $extra->os; + } + if ($extra->device->identified) { + $this->data->device = $extra->device; + } + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent.php b/integration/whichbrowser/src/Analyser/Header/Useragent.php new file mode 100644 index 00000000..bbc0cbac --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent.php @@ -0,0 +1,44 @@ +data =& $data; + + /* Make sure we do not have a duplicate concatenated useragent string */ + + $header = preg_replace("/^(Mozilla\/[0-9]\.[0-9].{20,})\s+Mozilla\/[0-9]\.[0-9].*$/iu", '$1', $header); + + /* Detect the basic information */ + + $this->detectOperatingSystem($header) + ->detectDevice($header) + ->detectBrowser($header) + ->detectApplication($header) + ->detectUsing($header) + ->detectEngine($header); + + /* Detect bots */ + + if (!isset($this->options->detectBots) || $this->options->detectBots === true) { + $this->detectBot($header); + } + + /* Refine some of the information */ + + $this->refineBrowser($header) + ->refineOperatingSystem($header); + } + + private function removeKnownPrefixes($ua) + { + $ua = preg_replace('/^OneBrowser\/[0-9.]+\//', '', $ua); + $ua = preg_replace('/^MQQBrowser\/[0-9.]+\//', '', $ua); + return $ua; + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Application.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Application.php new file mode 100644 index 00000000..bdc49910 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Application.php @@ -0,0 +1,451 @@ +detectSpecificApplications($ua); + $this->detectRemainingApplications($ua); + + return $this; + } + + + + private function detectSpecificApplications($ua) + { + /* Sony Updatecenter */ + + if (preg_match('/^(.*) Build\/.* (?:com.sonyericsson.updatecenter|UpdateCenter)\/[A-Z0-9\.]+$/iu', $ua, $match)) { + $this->data->browser->name = 'Sony Update Center'; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::APP; + + $this->data->os->reset([ + 'name' => 'Android' + ]); + + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->device->type = Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[1]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Sony Select SDK */ + + if (preg_match('/Android [0-9\.]+; (.*) Sony\/.*SonySelectSDK\/([0-9\.]+)/iu', $ua, $match)) { + $this->data->browser->reset(); + $this->data->browser->type = Constants\BrowserType::APP; + $this->data->browser->using = new \WhichBrowser\Model\Using([ + 'name' => 'Sony Select SDK', + 'version' => new Version([ 'value' => $match[2], 'details' => 2 ]) + ]); + + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->device->type = Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[1]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Samsung Mediahub */ + + if (preg_match('/^Stamhub [^\/]+\/([^;]+);.*:([0-9\.]+)\/[^\/]+\/[^:]+:user\/release-keys$/iu', $ua, $match)) { + $this->data->browser->name = 'Mediahub'; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::APP_MEDIAPLAYER; + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[2] ]) + ]); + + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->device->type = Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[1]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* "Android Application" */ + + if (preg_match('/^(.+) Android Application \([0-9]+, .+ v([0-9\.]+)\) - [a-z]+ (.*) [a-z]+ - [0-9A-F]{8,8}-[0-9A-F]{4,4}-[0-9A-F]{4,4}-[0-9A-F]{4,4}-[0-9A-F]{12,12}$/iu', $ua, $match)) { + $this->data->browser->name = $match[1]; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::APP; + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[2] ]) + ]); + + $this->data->device->model = $match[3]; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->device->type = Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[3]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* AiMeiTuan */ + + if (preg_match('/^AiMeiTuan \/[^\-]+\-([0-9\.]+)\-(.*)\-[0-9]+x[0-9]+\-/iu', $ua, $match)) { + $this->data->browser->name = 'AiMeiTuan'; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::APP; + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[1] ]) + ]); + + $this->data->device->model = $match[2]; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->device->type = Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[2]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Instagram */ + + if (preg_match('/^Instagram ([0-9\.]+) Android (?:IC )?\([0-9]+\/([0-9\.]+); [0-9]+dpi; [0-9]+x[0-9]+; [^;]+; ([^;]*);/iu', $ua, $match)) { + $this->data->browser->name = 'Instagram'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::APP_SOCIAL; + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[2] ]) + ]); + + $this->data->device->model = $match[3]; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->device->type = Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[3]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Pinterest */ + + if (preg_match('/^Pinterest for Android( Tablet)?\/([0-9\.]+) \(([^;]+); ([0-9\.]+)\)/iu', $ua, $match)) { + $this->data->browser->name = 'Pinterest'; + $this->data->browser->version = new Version([ 'value' => $match[2] ]); + $this->data->browser->type = Constants\BrowserType::APP_SOCIAL; + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[4] ]) + ]); + + $this->data->device->model = $match[3]; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->device->type = $match[1] == ' Tablet' ? Constants\DeviceType::TABLET : Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[3]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Dr. Web Anti-Virus */ + + if (preg_match('/Dr\.Web anti\-virus Light Version: ([0-9\.]+) Device model: (.*) Firmware version: ([0-9\.]+)/u', $ua, $match)) { + $this->data->browser->name = 'Dr. Web Light'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::APP_ANTIVIRUS; + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[3] ]) + ]); + + $this->data->device->type = Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[2]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Google Earth */ + + if (preg_match('/GoogleEarth\/([0-9\.]+)\(Android;Android \((.+)\-[^\-]+\-user-([0-9\.]+)\);/u', $ua, $match)) { + $this->data->browser->name = 'Google Earth'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::APP; + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[3] ]) + ]); + + $this->data->device->type = Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[2]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Groupon */ + + if (preg_match('/Groupon\/([0-9\.]+) \(Android ([0-9\.]+); [^\/]+ \/ [A-Z][a-z]+ ([^;]*);/u', $ua, $match)) { + $this->data->browser->name = 'Groupon'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::APP_SHOPPING; + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[2] ]) + ]); + + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->device->model = $match[3]; + + $device = Data\DeviceModels::identify('android', $match[3]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Whatsapp */ + + if (preg_match('/WhatsApp\+?\/([0-9\.]+) (Android|S60Version|WP7)\/([0-9\.\_]+) Device\/([^\-]+)\-(.*)(?:-\([0-9]+\.[0-9]+\))?(?:\-H[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)?$/uU', $ua, $match)) { + $this->data->browser->name = 'WhatsApp'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::APP_CHAT; + + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->device->manufacturer = $match[4]; + $this->data->device->model = $match[5]; + $this->data->device->identified |= Constants\Id::PATTERN; + + if ($match[2] == 'Android') { + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => str_replace('_', '.', $match[3]) ]) + ]); + + $device = Data\DeviceModels::identify('android', $match[5]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if ($match[2] == 'WP7') { + $this->data->os->reset([ + 'name' => 'Windows Phone', + 'version' => new Version([ 'value' => $match[3], 'details' => 2 ]) + ]); + + $device = Data\DeviceModels::identify('wp', $match[5]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if ($match[2] == 'S60Version') { + $this->data->os->reset([ + 'name' => 'Series60', + 'version' => new Version([ 'value' => $match[3] ]), + 'family' => new Family([ 'name' => 'Symbian' ]) + ]); + + $device = Data\DeviceModels::identify('symbian', $match[5]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if ($match[2] == 'WP7') { + $this->data->os->reset([ + 'name' => 'Windows Phone', + 'version' => new Version([ 'value' => $match[3], 'details' => 2 ]) + ]); + + $device = Data\DeviceModels::identify('wp', $match[5]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + /* Yahoo */ + + if (preg_match('/YahooMobile(?:Messenger|Mail|Weather)\/1.0 \(Android (Messenger|Mail|Weather); ([0-9\.]+)\) \([^;]+; ?[^;]+; ?([^;]+); ?([0-9\.]+)\/[^\;\)\/]+\)/u', $ua, $match)) { + $this->data->browser->name = 'Yahoo ' . $match[1]; + $this->data->browser->version = new Version([ 'value' => $match[2], 'details' => 3 ]); + + switch ($match[1]) { + case 'Messenger': + $this->data->browser->type = Constants\BrowserType::APP_CHAT; + break; + case 'Mail': + $this->data->browser->type = Constants\BrowserType::APP_EMAIL; + break; + case 'Weather': + $this->data->browser->type = Constants\BrowserType::APP_NEWS; + break; + } + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[4] ]) + ]); + + $this->data->device->type = Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[3]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Yahoo Mobile App */ + + if (preg_match('/YahooJMobileApp\/[0-9\.]+ \(Android [a-z]+; ([0-9\.]+)\) \([^;]+; ?[^;]+; ?[^;]+; ?([^;]+); ?([0-9\.]+)\/[^\;\)\/]+\)/u', $ua, $match)) { + $this->data->browser->name = 'Yahoo Mobile'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + $this->data->browser->type = Constants\BrowserType::APP_SEARCH; + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[3] ]) + ]); + + $this->data->device->type = Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[2]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* ICQ */ + + if (preg_match('/ICQ_Android\/([0-9\.]+) \(Android; [0-9]+; ([0-9\.]+); [^;]+; ([^;]+);/u', $ua, $match)) { + $this->data->browser->name = 'ICQ'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + $this->data->browser->type = Constants\BrowserType::APP_CHAT; + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[2] ]) + ]); + + $this->data->device->type = Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[3]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Facebook for Android */ + + if (preg_match('/^\[FBAN\/(FB4A|PAAA);.*FBDV\/([^;]+);.*FBSV\/([0-9\.]+);/u', $ua, $match)) { + if ($match[1] == 'FB4A') { + $this->data->browser->name = 'Facebook'; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::APP_SOCIAL; + } + + if ($match[1] == 'PAAA') { + $this->data->browser->name = 'Facebook Pages'; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::APP_SOCIAL; + } + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[3] ]) + ]); + + $this->data->device->type = Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[2]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* VK */ + + if (preg_match('/^VKAndroidApp\/([0-9\.]+)-[0-9]+ \(Android ([^;]+); SDK [^;]+; [^;]+; [a-z]+ ([^;]+);/iu', $ua, $match)) { + $this->data->browser->name = 'VK'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::APP_SOCIAL; + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[2] ]) + ]); + + $this->data->device->model = $match[3]; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->device->type = Constants\DeviceType::MOBILE; + + $device = Data\DeviceModels::identify('android', $match[3]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + private function detectRemainingApplications($ua) + { + if ($data = Data\Applications::identifyOther($ua)) { + $this->data->browser->set($data['browser']); + + if (!empty($data['device'])) { + $this->data->device->set($data['device']); + } + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Bot.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Bot.php new file mode 100644 index 00000000..ac1146a3 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Bot.php @@ -0,0 +1,47 @@ +data->browser->reset(); + $this->data->os->reset(); + $this->data->engine->reset(); + $this->data->device->reset(); + + $this->data->device->type = Constants\DeviceType::BOT; + } + + /* Detect bots based on common markers */ + + if (preg_match('/(?:Bot|Robot|Spider|Crawler)([\/\);]|$)/iu', $ua)) { + $this->data->browser->reset(); + $this->data->os->reset(); + $this->data->engine->reset(); + $this->data->device->reset(); + + $this->data->device->type = Constants\DeviceType::BOT; + } + + /* Detect based on a predefined list or markers */ + + if ($bot = Data\Applications::identifyBot($ua)) { + $this->data->browser = $bot; + $this->data->os->reset(); + $this->data->engine->reset(); + $this->data->device->reset(); + + $this->data->device->type = Constants\DeviceType::BOT; + } + + return $this; + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Browser.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Browser.php new file mode 100644 index 00000000..4b4a0475 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Browser.php @@ -0,0 +1,2311 @@ +detectSafari($ua); + $this->detectExplorer($ua); + $this->detectFirefox($ua); + $this->detectChrome($ua); + $this->detectEdge($ua); + $this->detectOpera($ua); + + /* Detect other various mobile browsers */ + $this->detectNokiaBrowser($ua); + $this->detectSilk($ua); + $this->detectSailfishBrowser($ua); + $this->detectWebOSBrowser($ua); + $this->detectDolfin($ua); + $this->detectIris($ua); + + /* Detect other browsers */ + $this->detectUC($ua); + $this->detectObigo($ua); + $this->detectNetfront($ua); + + /* Detect other specific desktop browsers */ + $this->detectSeamonkey($ua); + $this->detectModernNetscape($ua); + $this->detectMosaic($ua); + $this->detectKonqueror($ua); + $this->detectOmniWeb($ua); + + /* Detect other various television browsers */ + $this->detectEspial($ua); + $this->detectMachBlue($ua); + $this->detectAnt($ua); + $this->detectSraf($ua); + + /* Detect other browsers */ + $this->detectDesktopBrowsers($ua); + $this->detectMobileBrowsers($ua); + $this->detectTelevisionBrowsers($ua); + $this->detectRemainingBrowsers($ua); + + return $this; + } + + private function &refineBrowser($ua) + { + $this->detectUCEngine($ua); + $this->detectLegacyNetscape($ua); + + return $this; + } + + + + + /* Safari */ + + private function detectSafari($ua) + { + if (preg_match('/Safari/u', $ua)) { + $falsepositive = false; + + if (preg_match('/Qt/u', $ua)) { + $falsepositive = true; + } + + if (!$falsepositive) { + if (isset($this->data->os->name) && $this->data->os->name == 'iOS') { + $this->data->browser->name = 'Safari'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->version = null; + $this->data->browser->stock = true; + + if (preg_match('/Version\/([0-9\.]+)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'hidden' => true ]); + } + } + + if (isset($this->data->os->name) && ($this->data->os->name == 'OS X' || $this->data->os->name == 'Windows')) { + $this->data->browser->name = 'Safari'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->stock = $this->data->os->name == 'OS X'; + + if (preg_match('/Version\/([0-9\.]+)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/AppleWebKit\/[0-9\.]+\+/u', $ua)) { + $this->data->browser->name = 'WebKit Nightly Build'; + $this->data->browser->version = null; + } + } + } + } + + if (preg_match('/(?:Apple-PubSub|AppleSyndication)\//u', $ua)) { + $this->data->browser->name = 'Safari RSS'; + $this->data->browser->type = Constants\BrowserType::APP_FEEDREADER; + $this->data->browser->version = null; + $this->data->browser->stock = true; + + $this->data->os->name = 'OS X'; + $this->data->os->version = null; + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + } + + + /* Chrome */ + + private function detectChrome($ua) + { + if (preg_match('/(?:Chrome|CrMo|CriOS)\/[0-9]/u', $ua) || preg_match('/Browser\/Chrome[0-9]/u', $ua)) { + $this->data->browser->name = 'Chrome'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->stock = false; + + $version = ''; + if (preg_match('/(?:Chrome|CrMo|CriOS)\/([0-9.]*)/u', $ua, $match)) { + $version = $match[1]; + } + if (preg_match('/Browser\/Chrome([0-9.]*)/u', $ua, $match)) { + $version = $match[1]; + } + $this->data->browser->version = new Version([ 'value' => $version ]); + + if (isset($this->data->os->name) && $this->data->os->name == 'Android') { + $channel = Data\Chrome::getChannel('mobile', $this->data->browser->version->value); + + if ($channel == 'stable') { + $this->data->browser->version->details = 1; + } elseif ($channel == 'beta') { + $this->data->browser->channel = 'Beta'; + } else { + $this->data->browser->channel = 'Dev'; + } + + + /* Webview for Android 4.4 and higher */ + if (implode('.', array_slice(explode('.', $version), 1, 2)) == '0.0' && (preg_match('/Version\//u', $ua) || preg_match('/Release\//u', $ua))) { + $this->data->browser->using = new Using([ 'name' => 'Chromium WebView', 'version' => new Version([ 'value' => explode('.', $version)[0] ]) ]); + $this->data->browser->type = Constants\BrowserType::UNKNOWN; + $this->data->browser->stock = true; + $this->data->browser->name = null; + $this->data->browser->version = null; + $this->data->browser->channel = null; + } + + /* Webview for Android 5 */ + if (preg_match('/; wv\)/u', $ua)) { + $this->data->browser->using = new Using([ 'name' => 'Chromium WebView', 'version' => new Version([ 'value' => explode('.', $version)[0] ]) ]); + $this->data->browser->type = Constants\BrowserType::UNKNOWN; + $this->data->browser->stock = true; + $this->data->browser->name = null; + $this->data->browser->version = null; + $this->data->browser->channel = null; + } + + /* LG Chromium based browsers */ + if (isset($this->data->device->manufacturer) && $this->data->device->manufacturer == 'LG') { + if (in_array($version, [ '30.0.1599.103', '34.0.1847.118', '38.0.2125.0', '38.0.2125.102' ]) && preg_match('/Version\/4/u', $ua) && !preg_match('/; wv\)/u', $ua)) { + $this->data->browser->name = "LG Browser"; + $this->data->browser->channel = null; + $this->data->browser->stock = true; + $this->data->browser->version = null; + } + } + + /* Samsung Chromium based browsers */ + if (isset($this->data->device->manufacturer) && $this->data->device->manufacturer == 'Samsung') { + + /* Version 1.0 */ + if ($version == '18.0.1025.308' && preg_match('/Version\/1.0/u', $ua)) { + $this->data->browser->name = "Samsung Internet"; + $this->data->browser->channel = null; + $this->data->browser->stock = true; + $this->data->browser->version = new Version([ 'value' => '1.0' ]); + } + + /* Version 1.5 */ + if ($version == '28.0.1500.94' && preg_match('/Version\/1.5/u', $ua)) { + $this->data->browser->name = "Samsung Internet"; + $this->data->browser->channel = null; + $this->data->browser->stock = true; + $this->data->browser->version = new Version([ 'value' => '1.5' ]); + } + + /* Version 1.6 */ + if ($version == '28.0.1500.94' && preg_match('/Version\/1.6/u', $ua)) { + $this->data->browser->name = "Samsung Internet"; + $this->data->browser->channel = null; + $this->data->browser->stock = true; + $this->data->browser->version = new Version([ 'value' => '1.6' ]); + } + + /* Version 2.0 */ + if ($version == '34.0.1847.76' && preg_match('/Version\/2.0/u', $ua)) { + $this->data->browser->name = "Samsung Internet"; + $this->data->browser->channel = null; + $this->data->browser->stock = true; + $this->data->browser->version = new Version([ 'value' => '2.0' ]); + } + + /* Version 2.1 */ + if ($version == '34.0.1847.76' && preg_match('/Version\/2.1/u', $ua)) { + $this->data->browser->name = "Samsung Internet"; + $this->data->browser->channel = null; + $this->data->browser->stock = true; + $this->data->browser->version = new Version([ 'value' => '2.1' ]); + } + } + + /* Samsung Chromium based browsers */ + if (preg_match('/SamsungBrowser\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = "Samsung Internet"; + $this->data->browser->channel = null; + $this->data->browser->stock = true; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + + if (preg_match('/Mobile VR/', $ua)) { + $this->data->device->manufacturer = 'Samsung'; + $this->data->device->model = 'Gear VR'; + $this->data->device->type = Constants\DeviceType::HEADSET; + } + } + } else { + $channel = Data\Chrome::getChannel('desktop', $version); + + if ($channel == 'stable') { + if (explode('.', $version)[1] == '0') { + $this->data->browser->version->details = 1; + } else { + $this->data->browser->version->details = 2; + } + } elseif ($channel == 'beta') { + $this->data->browser->channel = 'Beta'; + } else { + $this->data->browser->channel = 'Dev'; + } + } + + if ($this->data->device->type == '') { + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + } + + /* Google Chromium */ + + if (preg_match('/Chromium/u', $ua)) { + $this->data->browser->stock = false; + $this->data->browser->channel = ''; + $this->data->browser->name = 'Chromium'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Chromium\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + + if ($this->data->device->type == '') { + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + } + + /* Chrome Content Shell */ + + if (preg_match('/Chrome\/[0-9]+\.77\.34\.5/u', $ua)) { + $this->data->browser->using = new Using([ 'name' => 'Chrome Content Shell' ]); + + $this->data->browser->type = Constants\BrowserType::UNKNOWN; + $this->data->browser->stock = false; + $this->data->browser->name = null; + $this->data->browser->version = null; + $this->data->browser->channel = null; + } + + /* Chromium WebView by Amazon */ + + if (preg_match('/AmazonWebAppPlatform\//u', $ua)) { + $this->data->browser->using = new Using([ 'name' => 'Amazon WebView' ]); + + $this->data->browser->type = Constants\BrowserType::UNKNOWN; + $this->data->browser->stock = false; + $this->data->browser->name = null; + $this->data->browser->version = null; + $this->data->browser->channel = null; + } + + /* Chromium WebView by Crosswalk */ + + if (preg_match('/Crosswalk\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->using = new Using([ 'name' => 'Crosswalk WebView', 'version' => new Version([ 'value' => $match[1], 'details' => 1 ]) ]); + + $this->data->browser->type = Constants\BrowserType::UNKNOWN; + $this->data->browser->stock = false; + $this->data->browser->name = null; + $this->data->browser->version = null; + $this->data->browser->channel = null; + } + + /* Set the browser family */ + + if ($this->data->isBrowser('Chrome') || $this->data->isBrowser('Chromium')) { + $this->data->browser->family = new Family([ + 'name' => 'Chrome', + 'version' => !empty($this->data->browser->version) ? new Version([ 'value' => $this->data->browser->version->getMajor() ]) : null + ]); + } + } + + + /* Internet Explorer */ + + private function detectExplorer($ua) + { + if (preg_match('/\(IE ([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Internet Explorer'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + if (preg_match('/Browser\/IE([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Internet Explorer'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + if (preg_match('/MSIE/u', $ua)) { + $this->data->browser->name = 'Internet Explorer'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/IEMobile/u', $ua) || preg_match('/Windows CE/u', $ua) || preg_match('/Windows Phone/u', $ua) || preg_match('/WP7/u', $ua) || preg_match('/WPDesktop/u', $ua)) { + $this->data->browser->name = 'Mobile Internet Explorer'; + + if (isset($this->data->device->model) && ($this->data->device->model == 'Xbox 360' || $this->data->device->model == 'Xbox One')) { + $this->data->browser->name = 'Internet Explorer'; + } + } + + if (preg_match('/MSIE ([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => preg_replace("/\.([0-9])([0-9])/", '.$1.$2', $match[1]) ]); + } + + if (preg_match('/Mac_/u', $ua)) { + $this->data->os->name = 'Mac OS'; + $this->data->engine->name = 'Tasman'; + $this->data->device->type = Constants\DeviceType::DESKTOP; + + if (!empty($this->data->browser->version)) { + if ($this->data->browser->version->is('>=', '5.1.1') && $this->data->browser->version->is('<=', '5.1.3')) { + $this->data->os->name = 'OS X'; + } + + if ($this->data->browser->version->is('>=', '5.2')) { + $this->data->os->name = 'OS X'; + } + } + } + } + + if (preg_match('/Trident\/[789][^\)]+; rv:([0-9.]*)\)/u', $ua, $match)) { + $this->data->browser->name = 'Internet Explorer'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + if (preg_match('/Trident\/[789][^\)]+; Touch; rv:([0-9.]*);\s+IEMobile\//u', $ua, $match)) { + $this->data->browser->name = 'Mobile Internet Explorer'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + if (preg_match('/Trident\/[789][^\)]+; Touch; rv:([0-9.]*); WPDesktop/u', $ua, $match)) { + $this->data->browser->mode = 'desktop'; + $this->data->browser->name = 'Mobile Internet Explorer'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + /* Old versions of Pocket Internet Explorer */ + + if ($this->data->isBrowser('Mobile Internet Explorer', '<', 6)) { + $this->data->browser->name = 'Pocket Internet Explorer'; + } + + if (preg_match('/Microsoft Pocket Internet Explorer\//u', $ua)) { + $this->data->browser->name = 'Pocket Internet Explorer'; + $this->data->browser->version = new Version([ 'value' => '1.0' ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + if (preg_match('/MSPIE ([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Pocket Internet Explorer2'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + /* Microsoft Mobile Explorer */ + + if (preg_match('/MMEF([0-9])([0-9])/u', $ua, $match)) { + $this->data->browser->name = 'Microsoft Mobile Explorer'; + $this->data->browser->version = new Version([ 'value' => $match[1] . '.' . $match[2] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + + /* Set the browser family */ + + if ($this->data->isBrowser('Internet Explorer') || $this->data->isBrowser('Mobile Internet Explorer') || $this->data->isBrowser('Pocket Internet Explorer')) { + unset($this->data->browser->family); + } + } + + + /* Edge */ + + private function detectEdge($ua) + { + if (preg_match('/Edge\/([0-9]+)/u', $ua, $match)) { + $this->data->browser->name = 'Edge'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->channel = ''; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 1 ]); + } + + + /* Set the browser family */ + + if ($this->data->isBrowser('Edge')) { + unset($this->data->browser->family); + } + } + + + /* Opera */ + + private function detectOpera($ua) + { + if (!preg_match('/(OPR|OMI|Opera|OPiOS|Coast|Oupeng)/ui', $ua)) { + return; + } + + if (preg_match('/OPR\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->channel = ''; + $this->data->browser->name = 'Opera'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Edition Developer/iu', $ua)) { + $this->data->browser->channel = 'Developer'; + } + + if (preg_match('/Edition Next/iu', $ua)) { + $this->data->browser->channel = 'Next'; + } + + if (preg_match('/Edition Beta/iu', $ua)) { + $this->data->browser->channel = 'Beta'; + } + + if ($this->data->device->type == Constants\DeviceType::MOBILE) { + $this->data->browser->name = 'Opera Mobile'; + } + } + + if (preg_match('/OMI\/([0-9]+\.[0-9]+)/u', $ua, $match)) { + $this->data->browser->name = 'Opera Devices'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + $this->data->device->type = Constants\DeviceType::TELEVISION; + + if (!$this->data->isOs('Android')) { + unset($this->data->os->name); + unset($this->data->os->version); + } + } + + if ((preg_match('/Opera[\/\-\s]/iu', $ua) || preg_match('/Browser\/Opera/iu', $ua)) && !preg_match('/Opera Software/iu', $ua)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'Opera'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Opera[\/| ]?([0-9.]+)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/Version\/([0-9.]+)/u', $ua, $match)) { + if (floatval($match[1]) >= 10) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + } + + if (isset($this->data->browser->version) && preg_match('/Edition Labs/u', $ua)) { + $this->data->browser->channel = 'Labs'; + } + + if (isset($this->data->browser->version) && preg_match('/Edition Next/u', $ua)) { + $this->data->browser->channel = 'Next'; + } + + if (preg_match('/Opera Tablet/u', $ua)) { + $this->data->browser->name = 'Opera Mobile'; + $this->data->device->type = Constants\DeviceType::TABLET; + } + + if (preg_match('/Opera Mobi/u', $ua)) { + $this->data->browser->name = 'Opera Mobile'; + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + if (preg_match('/Opera Mini;/u', $ua)) { + $this->data->browser->name = 'Opera Mini'; + $this->data->browser->version = null; + $this->data->browser->mode = 'proxy'; + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + if (preg_match('/Opera Mini\/(?:att\/)?([0-9.]+)/u', $ua, $match)) { + $this->data->browser->name = 'Opera Mini'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => (intval(substr(strrchr($match[1], '.'), 1)) > 99 ? -1 : null) ]); + $this->data->browser->mode = 'proxy'; + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + if ($this->data->browser->name == 'Opera' && $this->data->device->type == Constants\DeviceType::MOBILE) { + $this->data->browser->name = 'Opera Mobile'; + + if (preg_match('/BER/u', $ua)) { + $this->data->browser->name = 'Opera Mini'; + $this->data->browser->version = null; + } + } + + if (preg_match('/InettvBrowser/u', $ua)) { + $this->data->device->type = Constants\DeviceType::TELEVISION; + } + + if (preg_match('/Opera[ -]TV/u', $ua)) { + $this->data->browser->name = 'Opera'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + } + + if (preg_match('/Linux zbov/u', $ua)) { + $this->data->browser->name = 'Opera Mobile'; + $this->data->browser->mode = 'desktop'; + + $this->data->device->type = Constants\DeviceType::MOBILE; + + $this->data->os->name = null; + $this->data->os->version = null; + } + + if (preg_match('/Linux zvav/u', $ua)) { + $this->data->browser->name = 'Opera Mini'; + $this->data->browser->version = null; + $this->data->browser->mode = 'desktop'; + + $this->data->device->type = Constants\DeviceType::MOBILE; + + $this->data->os->name = null; + $this->data->os->version = null; + } + + if ($this->data->device->type == '') { + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (isset($this->data->browser->family)) { + unset($this->data->browser->family); + } + } + + if (preg_match('/OPiOS\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'Opera Mini'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + if (preg_match('/Coast\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'Coast by Opera'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + if (preg_match('/Oupeng(?:HD)?[\/-]([0-9.]*)/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'Opera Oupeng'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + } + + + /* Firefox */ + + private function detectFirefox($ua) + { + if (!preg_match('/(Firefox|GranParadiso|Namoroka|Shiretoko|Minefield|BonEcho|Fennec|Phoenix|Firebird|Minimo|FxiOS)/ui', $ua)) { + return; + } + + if (preg_match('/Firefox/u', $ua)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'Firefox'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Firefox\/([0-9ab.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + + if (preg_match('/a/u', $match[1])) { + $this->data->browser->channel = 'Aurora'; + } + + if (preg_match('/b/u', $match[1])) { + $this->data->browser->channel = 'Beta'; + } + } + + if (preg_match('/Aurora\/([0-9ab.]*)/u', $ua, $match)) { + $this->data->browser->channel = 'Aurora'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/Fennec/u', $ua)) { + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + if (preg_match('/Mobile;(?: ([^;]+);)? rv/u', $ua, $match)) { + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (isset($match[1])) { + $device = Data\DeviceModels::identify('firefoxos', $match[1]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->os->reset([ 'name' => 'Firefox OS' ]); + $this->data->device = $device; + } + } + } + + if (preg_match('/Tablet;(?: ([^;]+);)? rv/u', $ua, $match)) { + $this->data->device->type = Constants\DeviceType::TABLET; + } + + if (preg_match('/Viera;(?: ([^;]+);)? rv/u', $ua, $match)) { + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->os->reset([ 'name' => 'Firefox OS' ]); + } + + if ($this->data->device->type == Constants\DeviceType::MOBILE || $this->data->device->type == Constants\DeviceType::TABLET) { + $this->data->browser->name = 'Firefox Mobile'; + } + + if ($this->data->device->type == '') { + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + } + + + if (preg_match('/(GranParadiso|Namoroka|Shiretoko|Minefield|BonEcho)/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'Firefox'; + $this->data->browser->channel = str_replace('GranParadiso', 'Gran Paradiso', $match[1]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/' . $match[1] . '\/([0-9ab.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + } + + if (preg_match('/Fennec/u', $ua)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'Firefox Mobile'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Fennec\/([0-9ab.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->browser->channel = 'Fennec'; + } + + if (preg_match('/(Phoenix|Firebird|Minimo)/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->name = $match[1]; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/' . $match[1] . '\/([0-9ab.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + } + + if (preg_match('/FxiOS\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Firefox'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + + /* Set the browser family */ + + if ($this->data->isBrowser('Firefox') || $this->data->isBrowser('Firefox Mobile') || $this->data->isBrowser('Firebird')) { + $this->data->browser->family = new Family([ 'name' => 'Firefox', 'version' => $this->data->browser->version ]); + } + + if ($this->data->isBrowser('Minimo')) { + $this->data->browser->family = new Family([ 'name' => 'Firefox' ]); + } + } + + + /* Seamonkey */ + + private function detectSeamonkey($ua) + { + if (preg_match('/SeaMonkey/u', $ua)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'SeaMonkey'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/SeaMonkey\/([0-9ab.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + } + + if (preg_match('/PmWFx\/([0-9ab.]*)/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'SeaMonkey'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + } + + + /* Netscape */ + + private function detectLegacyNetscape($ua) + { + if ($this->data->device->type == Constants\DeviceType::DESKTOP && $this->data->browser->getName() == '') { + if (!preg_match('/compatible;/u', $ua)) { + if (preg_match('/Mozilla\/([123].[0-9]+)/u', $ua, $match)) { + $this->data->browser->name = 'Netscape Navigator'; + $this->data->browser->version = new Version([ 'value' => preg_replace("/([0-9])([0-9])/", '$1.$2', $match[1]) ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + if (preg_match('/Mozilla\/(4.[0-9]+)/u', $ua, $match)) { + $this->data->browser->name = 'Netscape Communicator'; + $this->data->browser->version = new Version([ 'value' => preg_replace("/([0-9])([0-9])/", '$1.$2', $match[1]) ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Nav\)/u', $ua)) { + $this->data->browser->name = 'Netscape Navigator'; + } + } + } + } + } + + private function detectModernNetscape($ua) + { + if (preg_match('/Netscape/u', $ua)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'Netscape'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Netscape[0-9]?\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + } + + if (preg_match('/ Navigator\/(9\.[0-9.]*)/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'Netscape Navigator'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + } + + + /* Mosaic */ + + private function detectMosaic($ua) + { + if (!preg_match('/Mosaic/ui', $ua)) { + return; + } + + if (preg_match('/(?:NCSA[ _])?Mosaic(?:\(tm\))?(?: for the X Window System| for Windows)?\/(?:Version )?([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'NCSA Mosaic'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->family = new Family([ 'name' => 'Mosaic' ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->stock = false; + } + + if (preg_match('/AIR_Mosaic(?:\(16bit\))?\/v([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'AIR Mosaic'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->family = new Family([ 'name' => 'Mosaic' ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->stock = false; + } + + if (preg_match('/(?:MosaicView|Spyglass[ _]Mosaic)\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Spyglass Mosaic'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->family = new Family([ 'name' => 'Mosaic' ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->stock = false; + } + + if (preg_match('/SPRY_Mosaic(?:\(16bit\))?\/v([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'SPRY Mosaic'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->family = new Family([ 'name' => 'Mosaic' ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->stock = false; + } + + if (preg_match('/DCL SuperMosaic\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'SuperMosaic'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->family = new Family([ 'name' => 'Mosaic' ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->stock = false; + } + + if (preg_match('/VMS_Mosaic\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'VMS Mosaic'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->family = new Family([ 'name' => 'Mosaic' ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->stock = false; + } + + if (preg_match('/mMosaic\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'mMosaic'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->family = new Family([ 'name' => 'Mosaic' ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->stock = false; + } + + if (preg_match('/Quarterdeck Mosaic Version ([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Quarterdeck Mosaic'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->family = new Family([ 'name' => 'Mosaic' ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->stock = false; + } + + if (preg_match('/WinMosaic\/Version ([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'WinMosaic'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->family = new Family([ 'name' => 'Mosaic' ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->stock = false; + } + + if (preg_match('/Device Mosaic ([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Device Mosaic'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->family = new Family([ 'name' => 'Mosaic' ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->stock = false; + + $this->data->device->type = Constants\DeviceType::TELEVISION; + } + } + + + /* UC Browser */ + + private function detectUC($ua) + { + if (!preg_match('/(UC|UBrowser)/ui', $ua)) { + return; + } + + if (preg_match('/UCWEB/u', $ua)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'UC Browser'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + unset($this->data->browser->channel); + + if (preg_match('/UCWEB\/?([0-9]*[.][0-9]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + + if (!$this->data->device->type) { + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + if (isset($this->data->os->name) && $this->data->os->name == 'Linux') { + $this->data->os->reset(); + } + + if (preg_match('/^IUC ?\(U; ?iOS ([0-9\._]+);/u', $ua, $match)) { + $this->data->os->name = 'iOS'; + $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]); + } + + if (preg_match('/^JUC ?\(Linux; ?U; ?(?:Android)? ?([0-9\.]+)[^;]*; ?[^;]+; ?([^;]*[^\s])\s*; ?[0-9]+\*[0-9]+;?\)/u', $ua, $match)) { + $this->data->os->name = 'Android'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + + $this->data->device = Data\DeviceModels::identify('android', $match[2]); + } + + if (preg_match('/\(MIDP-2.0; U; [^;]+; ([^;]*[^\s])\)/u', $ua, $match)) { + $this->data->os->name = 'Android'; + + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('android', $match[1]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (preg_match('/\((?:Linux|MIDP-2.0); U; Adr ([0-9\.]+)(?:-update[0-9])?; [^;]+; ([^;]*[^\s])\)/u', $ua, $match)) { + $this->data->os->name = 'Android'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + + $this->data->device->model = $match[2]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('android', $match[2]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (preg_match('/\((?:iOS|iPhone);/u', $ua)) { + $this->data->os->name = 'iOS'; + $this->data->os->version = new Version([ 'value' => '1.0' ]); + + if (preg_match('/OS[_ ]([0-9_]*);/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]); + } + + if (preg_match('/; ([^;]+)\)/u', $ua, $match)) { + $device = Data\DeviceModels::identify('ios', $match[1]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + if (preg_match('/\(Symbian;/u', $ua)) { + $this->data->os->name = 'Series60'; + $this->data->os->version = null; + $this->data->os->family = new Family([ 'name' => 'Symbian' ]); + + if (preg_match('/S60 V([0-9])/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/; Nokia([^;]+)\)/iu', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('symbian', $match[1]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + if (preg_match('/\(Windows;/u', $ua)) { + $this->data->os->name = 'Windows Phone'; + $this->data->os->version = null; + + if (preg_match('/wds ([0-9]+\.[0-9])/u', $ua, $match)) { + switch ($match[1]) { + case '7.1': + $this->data->os->version = new Version([ 'value' => '7.5' ]); + break; + case '8.0': + $this->data->os->version = new Version([ 'value' => '8.0' ]); + break; + case '8.1': + $this->data->os->version = new Version([ 'value' => '8.1' ]); + break; + case '10.0': + $this->data->os->version = new Version([ 'value' => '10.0' ]); + break; + } + } + + if (preg_match('/; ([^;]+); ([^;]+)\)/u', $ua, $match)) { + $this->data->device->manufacturer = $match[1]; + $this->data->device->model = $match[2]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wp', $match[2]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + } + + if (preg_match('/Ucweb\/([0-9]*[.][0-9]*)/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'UC Browser'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + if (preg_match('/ucweb-squid/u', $ua)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'UC Browser'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + unset($this->data->browser->channel); + } + + if (preg_match('/\) ?UC /u', $ua)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'UC Browser'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + unset($this->data->browser->version); + unset($this->data->browser->channel); + unset($this->data->browser->mode); + + if ($this->data->device->type == Constants\DeviceType::DESKTOP) { + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->browser->mode = 'desktop'; + } + } + + if (preg_match('/UC ?Browser\/?([0-9.]*)/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'UC Browser'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + unset($this->data->browser->channel); + + if (!$this->data->device->type) { + $this->data->device->type = Constants\DeviceType::MOBILE; + } + } + + if (preg_match('/UBrowser\/?([0-9.]*)/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'UC Browser'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + unset($this->data->browser->channel); + } + + /* U2 is the Proxy service used by UC Browser on low-end phones */ + if (preg_match('/U2\//u', $ua)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'UC Browser'; + $this->data->browser->mode = 'proxy'; + + $this->data->engine->name = 'Gecko'; + + /* UC Browser running on Windows 8 is identifing itself as U2, but instead its a Trident Webview */ + if (isset($this->data->os->name) && isset($this->data->os->version)) { + if ($this->data->os->name == 'Windows Phone' && $this->data->os->version->toFloat() >= 8) { + $this->data->engine->name = 'Trident'; + $this->data->browser->mode = ''; + } + } + + if ($this->data->device->identified < Constants\Id::MATCH_UA && preg_match('/; ([^;]*)\) U2\//u', $ua, $match)) { + $device = Data\DeviceModels::identify('android', $match[1]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + + if (!isset($this->data->os->name) || ($this->data->os->name != 'Android' && (!isset($this->data->os->family) || $this->data->os->family->getName() != 'Android'))) { + $this->data->os->name = 'Android'; + } + } + } + } + + /* U3 is the Webkit based Webview used on Android phones */ + if (preg_match('/U3\//u', $ua)) { + $this->data->engine->name = 'Webkit'; + } + } + + private function detectUCEngine($ua) + { + if (isset($this->data->browser->name)) { + if ($this->data->browser->name == 'UC Browser') { + if (!preg_match("/UBrowser\//", $ua) && ($this->data->device->type == 'desktop' || (isset($this->data->os->name) && ($this->data->os->name == 'Windows' || $this->data->os->name == 'OS X')))) { + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->browser->mode = 'desktop'; + $this->data->engine->reset(); + $this->data->os->reset(); + } elseif (!isset($this->data->os->name) || ($this->data->os->name != 'iOS' && $this->data->os->name != 'Windows Phone' && $this->data->os->name != 'Windows' && $this->data->os->name != 'Android' && (!isset($this->data->os->family) || $this->data->os->family->getName() != 'Android'))) { + $this->data->engine->name = 'Gecko'; + unset($this->data->engine->version); + $this->data->browser->mode = 'proxy'; + } + + if (isset($this->data->engine->name) && $this->data->engine->name == 'Presto') { + $this->data->engine->name = 'Webkit'; + unset($this->data->engine->version); + } + } + } + } + + + /* Netfront */ + + private function detectNetfront($ua) + { + if (!preg_match('/(CNF|NF|NetFront|NX|Ave|COM2)/ui', $ua)) { + return; + } + + /* Compact NetFront */ + + if (preg_match('/CNF\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Compact NetFront'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + /* NetFront */ + + if (preg_match('/Net[fF]ront/u', $ua) && !preg_match('/NetFrontNX/u', $ua)) { + $this->data->browser->name = 'NetFront'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + unset($this->data->browser->channel); + + if (preg_match('/NetFront[ \/]?([0-9.]*)/ui', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + + /* Detect device type based on NetFront identifier */ + + if (preg_match('/MobilePhone/u', $ua)) { + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + if (preg_match('/DigitalMediaPlayer/u', $ua)) { + $this->data->device->type = Constants\DeviceType::MEDIA; + } + + if (preg_match('/PDA/u', $ua)) { + $this->data->device->type = Constants\DeviceType::PDA; + } + + if (preg_match('/MFP/u', $ua)) { + $this->data->device->type = Constants\DeviceType::PRINTER; + } + + if (preg_match('/(InettvBrowser|HbbTV|DTV|NetworkAVTV|BDPlayer)/u', $ua)) { + $this->data->device->type = Constants\DeviceType::TELEVISION; + } + + if (preg_match('/Kindle/u', $ua)) { + $this->data->device->type = Constants\DeviceType::EREADER; + } + + if (empty($this->data->device->type)) { + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + /* Detect OS based on NetFront identifier */ + + if (preg_match('/NF[0-9][0-9](?:WMPRO|PPC)\//ui', $ua, $match)) { + if (!$this->data->isOs('Windows Mobile')) { + $this->data->os->reset([ + 'name' => 'Windows Mobile' + ]); + } + } + } + + if (preg_match('/(?:Browser\/(?:NF|NetFr?ont-)|NF-Browser\/|ACS-NF\/|NetFront FullBrowser\/)([0-9.]*)/ui', $ua, $match)) { + $this->data->browser->name = 'NetFront'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + unset($this->data->browser->channel); + + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + /* AVE-Front */ + + if (preg_match('/(?:AVE-Front|AveFront)\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'NetFront'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Category=([^\);]+)[\);]/u', $ua, $match)) { + switch ($match[1]) { + case 'WebPhone': + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->device->subtype = Constants\DeviceSubType::DESKTOP; + break; + case 'WP': + case 'Home Mail Tool': + case 'PDA': + $this->data->device->type = Constants\DeviceType::PDA; + break; + case 'STB': + $this->data->device->type = Constants\DeviceType::TELEVISION; + break; + case 'GAME': + $this->data->device->type = Constants\DeviceType::GAMING; + $this->data->device->subtype = Constants\DeviceSubType::CONSOLE; + break; + } + } + + if (preg_match('/Product=([^\);]+)[\);]/u', $ua, $match)) { + if (in_array($match[1], [ 'ACCESS/NFPS', 'SUNSOFT/EnjoyMagic' ])) { + $this->data->device->setIdentification([ + 'manufacturer' => 'Sony', + 'model' => 'Playstation 2', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + } + } + + /* Netfront NX */ + + if (preg_match('/NX\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'NetFront NX'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + unset($this->data->browser->channel); + + if (empty($this->data->device->type) || $this->data->isType('desktop')) { + if (preg_match('/(DTV|HbbTV)/iu', $ua)) { + $this->data->device->type = Constants\DeviceType::TELEVISION; + } else { + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + } + + $this->data->os->reset(); + } + + /* The Sony Mylo 2 identifies as Firefox 2, but is NetFront */ + + if (preg_match('/Sony\/COM2/u', $ua, $match)) { + $this->data->browser->reset([ + 'name' => 'NetFront', + 'type' => Constants\BrowserType::BROWSER + ]); + } + } + + + /* Obigo */ + + private function detectObigo($ua) + { + $processObigoVersion = function ($version) { + $result = [ + 'value' => $version + ]; + + if (preg_match('/[0-9.]+/', $version, $match)) { + $result['details'] = 2; + } + + if (preg_match('/([0-9])[A-Z]/', $version, $match)) { + $result['value'] = intval($match[1]); + $result['alias'] = $version; + } + + return $result; + }; + + if (preg_match('/(?:Obigo|Teleca|AU-MIC|MIC\/)/ui', $ua)) { + $this->data->browser->name = 'Obigo'; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Obigo\/0?([0-9.]+)/iu', $ua, $match)) { + $this->data->browser->version = new Version($processObigoVersion($match[1])); + } elseif (preg_match('/(?:MIC|TelecaBrowser)\/(WAP|[A-Z])?0?([0-9.]+[A-Z]?)/iu', $ua, $match)) { + $this->data->browser->version = new Version($processObigoVersion($match[2])); + if (!empty($match[1])) { + $this->data->browser->name = 'Obigo ' . strtoupper($match[1]); + } + } elseif (preg_match('/(?:Obigo(?:InternetBrowser|[- ]Browser)?|Teleca)\/(WAP|[A-Z])?[0O]?([0-9.]+[A-Z]?)/ui', $ua, $match)) { + $this->data->browser->version = new Version($processObigoVersion($match[2])); + if (!empty($match[1])) { + $this->data->browser->name = 'Obigo ' . strtoupper($match[1]); + } + } elseif (preg_match('/(?:Obigo|Teleca)[- ]([WAP|[A-Z])?0?([0-9.]+[A-Z]?)(?:[0-9])?(?:[\/;]|$)/ui', $ua, $match)) { + $this->data->browser->version = new Version($processObigoVersion($match[2])); + if (!empty($match[1])) { + $this->data->browser->name = 'Obigo ' . strtoupper($match[1]); + } + } elseif (preg_match('/Browser\/(?:Obigo|Teleca)[_-]?(?:Browser\/)?(WAP|[A-Z])?0?([0-9.]+[A-Z]?)/ui', $ua, $match)) { + $this->data->browser->version = new Version($processObigoVersion($match[2])); + if (!empty($match[1])) { + $this->data->browser->name = 'Obigo ' . strtoupper($match[1]); + } + } elseif (preg_match('/Obigo Browser (WAP|[A-Z])?0?([0-9.]+[A-Z]?)/ui', $ua, $match)) { + $this->data->browser->version = new Version($processObigoVersion($match[2])); + if (!empty($match[1])) { + $this->data->browser->name = 'Obigo ' . strtoupper($match[1]); + } + } + } + + if (preg_match('/(Q)0?([0-9][A-Z])/u', $ua, $match)) { + $this->data->browser->name = 'Obigo ' . $match[1]; + $this->data->browser->version = new Version($processObigoVersion($match[2])); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + } + + + /* ANT Galio and ANT Fresco */ + + private function detectAnt($ua) + { + if (preg_match('/ANTFresco\/([0-9.]+)/iu', $ua, $match)) { + $this->data->browser->name = 'ANT Fresco'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + if (preg_match('/ANTGalio\/([0-9.]+)/iu', $ua, $match)) { + $this->data->browser->name = 'ANT Galio'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + } + + + /* Seraphic Sraf */ + + private function detectSraf($ua) + { + if (preg_match('/sraf_tv_browser/u', $ua)) { + $this->data->browser->name = 'Seraphic Sraf'; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->device->type = Constants\DeviceType::TELEVISION; + } + + if (preg_match('/SRAF\/([0-9.]+)/iu', $ua, $match)) { + $this->data->browser->name = 'Seraphic Sraf'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->device->type = Constants\DeviceType::TELEVISION; + } + } + + + /* MachBlue */ + + private function detectMachBlue($ua) + { + if (preg_match('/mbxtWebKit\/([0-9.]*)/u', $ua, $match)) { + $this->data->os->name = ''; + $this->data->browser->name = 'MachBlue XT'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->device->type = Constants\DeviceType::TELEVISION; + } + + if ($ua == 'MachBlue') { + $this->data->os->name = ''; + $this->data->browser->name = 'MachBlue XT'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + } + + + /* Espial */ + + private function detectEspial($ua) + { + if (preg_match('/Espial/u', $ua)) { + $this->data->browser->name = 'Espial'; + $this->data->browser->channel = null; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + $this->data->os->name = ''; + $this->data->os->version = null; + + if ($this->data->device->type != Constants\DeviceType::TELEVISION) { + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->manufacturer = null; + $this->data->device->model = null; + } + + if (preg_match('/Espial(?: Browser|TVBrowser)?\/(?:sig)?([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/;(L6200|L7200)/u', $ua, $match)) { + $this->data->device->manufacturer = 'Toshiba'; + $this->data->device->model = 'Regza ' . $match[1]; + $this->data->device->series = 'Smart TV'; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + } + } + + + /* Iris */ + + private function detectIris($ua) + { + if (preg_match('/Iris\//u', $ua)) { + $this->data->browser->name = 'Iris'; + $this->data->browser->hidden = false; + $this->data->browser->stock = false; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Iris\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/ WM([0-9]) /u', $ua, $match)) { + $this->data->device->reset(); + $this->data->device->type = Constants\DeviceType::MOBILE; + + $this->data->os->reset(); + $this->data->os->name = 'Windows Mobile'; + $this->data->os->version = new Version([ 'value' => $match[1] . '.0' ]); + } + + if (preg_match('/Windows NT/u', $ua, $match)) { + $this->data->browser->mode = 'desktop'; + + $this->data->device->reset(); + $this->data->device->type = Constants\DeviceType::MOBILE; + + $this->data->os->reset(); + $this->data->os->name = 'Windows Mobile'; + } + } + } + + + /* Dolfin */ + + private function detectDolfin($ua) + { + if (preg_match('/(Dolfin|Jasmine)/u', $ua)) { + $this->data->browser->name = 'Dolfin'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/(?:Dolfin|Jasmine)\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/Browser\/Dolfin([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + } + } + + + /* WebOS */ + + private function detectWebOSBrowser($ua) + { + if (preg_match('/wOSBrowser/u', $ua)) { + $this->data->browser->name = 'webOS Browser'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if ($this->data->os->name != 'webOS') { + $this->data->os->name = 'webOS'; + } + + if (isset($this->data->device->manufacturer) && $this->data->device->manufacturer == 'Apple') { + unset($this->data->device->manufacturer); + unset($this->data->device->model); + unset($this->data->device->identifier); + $this->data->device->identified = Constants\Id::NONE; + } + } + } + + + /* Sailfish */ + + private function detectSailfishBrowser($ua) + { + if (preg_match('/Sailfish ?Browser/u', $ua)) { + $this->data->browser->name = 'Sailfish Browser'; + $this->data->browser->stock = true; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Sailfish ?Browser\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } + } + } + + + /* Silk */ + + private function detectSilk($ua) + { + if (preg_match('/Silk/u', $ua)) { + if (preg_match('/Silk-Accelerated/u', $ua) || !preg_match('/PlayStation/u', $ua)) { + $this->data->browser->name = 'Silk'; + $this->data->browser->channel = null; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Silk\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } + + if (preg_match('/; ([^;]*[^;\s])\s+Build/u', $ua, $match)) { + $this->data->device = Data\DeviceModels::identify('android', $match[1]); + } + + if (!$this->data->device->identified) { + $this->data->device->manufacturer = 'Amazon'; + $this->data->device->model = 'Kindle Fire'; + $this->data->device->type = Constants\DeviceType::TABLET; + $this->data->device->identified |= Constants\Id::INFER; + + if (isset($this->data->os->name) && ($this->data->os->name != 'Android' || $this->data->os->name != 'FireOS')) { + $this->data->os->name = 'FireOS'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + $this->data->os->alias = null; + $this->data->os->version = null; + } + } + } + } + } + + + /* Nokia */ + + private function detectNokiaBrowser($ua) + { + if (!preg_match('/(BrowserNG|Nokia|OSRE|Ovi|Maemo)/ui', $ua)) { + return; + } + + /* Nokia Browser */ + + if (preg_match('/BrowserNG/u', $ua)) { + $this->data->browser->name = 'Nokia Browser'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/BrowserNG\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3, 'builds' => false ]); + } + } + + if (preg_match('/NokiaBrowser/u', $ua)) { + $this->data->browser->name = 'Nokia Browser'; + $this->data->browser->channel = null; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/NokiaBrowser\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + } + + if (preg_match('/Nokia-Communicator-WWW-Browser/u', $ua)) { + $this->data->browser->name = 'Nokia Browser'; + $this->data->browser->channel = null; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Nokia-Communicator-WWW-Browser\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + } + + + /* Nokia Xpress for S30+, S40 and Windows Phone */ + + if (preg_match('/OSRE/u', $ua)) { + $this->data->browser->name = 'Nokia Xpress'; + $this->data->browser->mode = 'proxy'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + $this->data->device->type = Constants\DeviceType::MOBILE; + + $this->data->os->name = null; + $this->data->os->version = null; + } + + if (preg_match('/S40OviBrowser/u', $ua)) { + $this->data->browser->name = 'Nokia Xpress'; + $this->data->browser->mode = 'proxy'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/S40OviBrowser\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + + if (preg_match('/Nokia([^\/]+)\//u', $ua, $match)) { + $this->data->device->manufacturer = 'Nokia'; + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + + if (isset($this->data->device->model)) { + $device = Data\DeviceModels::identify('s40', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (isset($this->data->device->model)) { + $device = Data\DeviceModels::identify('asha', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->os->name = 'Nokia Asha Platform'; + $this->data->os->version = new Version([ 'value' => '1.0' ]); + $this->data->device = $device; + + + if (preg_match('/java_runtime_version=Nokia_Asha_([0-9_]+);/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]); + } + } + } + } + + if (preg_match('/NOKIALumia([0-9]+)/u', $ua, $match)) { + $this->data->device->manufacturer = 'Nokia'; + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wp', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + $this->data->os->name = 'Windows Phone'; + } + } + } + + + /* MicroB - the default browser for maemo */ + + if (preg_match('/Maemo[ |_]Browser/u', $ua)) { + $this->data->browser->name = 'MicroB'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Maemo[ |_]Browser[ |_]([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + } + } + + + /* Konqueror */ + + private function detectKonqueror($ua) + { + if (preg_match('/[k|K]onqueror\//u', $ua)) { + $this->data->browser->name = 'Konqueror'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/[k|K]onqueror\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + + if ($this->data->device->type == '') { + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + } + } + + + /* OmniWeb */ + + private function detectOmniWeb($ua) + { + if (preg_match('/OmniWeb/u', $ua)) { + $this->data->browser->name = 'OmniWeb'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->version = null; + + if (preg_match('/OmniWeb\/v?([0-9])[0-9][0-9]/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 1 ]); + } + + if (preg_match('/OmniWeb\/([0-9]\.[0-9\.]+)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + + $this->data->device->reset([ + 'type' => Constants\DeviceType::DESKTOP + ]); + + if (!empty($this->data->browser->version)) { + if ($this->data->browser->version->is('<', 3)) { + $this->data->os->name = 'NextStep'; + $this->data->os->version = null; + } + + if ($this->data->browser->version->is('>=', 4)) { + if (empty($this->data->os->name) || $this->data->os->name != 'OS X') { + $this->data->os->name = 'OS X'; + $this->data->os->version = null; + } + } + } + } + } + + + /* Other browsers */ + + private function detectDesktopBrowsers($ua) + { + if (!preg_match('/(WebPositive|WebExplorer|WorldWideweb|Midori|Maxthon|Browse)/ui', $ua)) { + return; + } + + /* WebPositive */ + + if (preg_match('/WebPositive/u', $ua, $match)) { + $this->data->browser->name = 'WebPositive'; + $this->data->browser->channel = ''; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/WebPositive\/([0-9]\.[0-9.]+)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + } + + /* IBM WebExplorer */ + + if (preg_match('/IBM[- ]WebExplorer[ -]?(DLL ?|Window API ?)?/u', $ua)) { + $this->data->browser->name = 'IBM WebExplorer'; + $this->data->browser->channel = ''; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/IBM[- ]WebExplorer[ -]?(?:DLL ?|Window API ?)?\/v([0-9]\.[0-9\.]+)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->os->name = 'OS/2'; + $this->data->device->type = 'desktop'; + } + + /* WorldWideweb */ + + if (preg_match('/WorldWideweb \(NEXT\)/u', $ua, $match)) { + $this->data->browser->name = 'WorldWideWeb'; + $this->data->browser->channel = ''; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + $this->data->os->name = 'NextStep'; + $this->data->device->type = 'desktop'; + } + + /* Midori */ + + if (preg_match('/Midori\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Midori'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + $this->data->device->manufacturer = null; + $this->data->device->model = null; + $this->data->device->type = Constants\DeviceType::DESKTOP; + + if (isset($this->data->os->name) && $this->data->os->name == 'OS X') { + $this->data->os->name = null; + $this->data->os->version = null; + } + } + + if (preg_match('/midori(?:\/[0-9.]*)?$/u', $ua)) { + $this->data->browser->name = 'Midori'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + $this->data->device->type = Constants\DeviceType::DESKTOP; + + if (preg_match('/midori\/([0-9.]*)$/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + } + + /* Maxthon */ + + if (preg_match('/Maxthon/iu', $ua, $match)) { + $this->data->browser->name = 'Maxthon'; + $this->data->browser->channel = ''; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Maxthon[\/\' ]\(?([0-9.]*)\)?/iu', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + + if (isset($this->data->os->name) && $this->data->browser->version && $this->data->os->name == 'Windows' && $this->data->browser->version->toFloat() < 4) { + $this->data->browser->version->details = 1; + } + } + + /* Browse for Remix OS */ + + if (preg_match('/^Browse\/([0-9.]+)/u', $ua, $match)) { + $this->data->browser->name = 'Browse'; + $this->data->browser->channel = ''; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + } + + private function detectMobileBrowsers($ua) + { + if (!preg_match('/(Ninesky|Skyfire|Dolphin|QQ|360|QHBrowser|Mercury|iBrowser|Puffin|MiniB|MxNitro|Sogou|Xiino|Palmscape|WebPro|Vision)/ui', $ua)) { + return; + } + + /* NineSky */ + + if (preg_match('/Ninesky(?:-android-mobile(?:-cn)?)?\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->reset(); + $this->data->browser->name = 'NineSky'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (isset($this->data->device->manufacturer) && $this->data->device->manufacturer == 'Apple') { + $this->data->device->reset(); + } + + if (!$this->data->os->isFamily('Android')) { + $this->data->os->reset(); + $this->data->os->name = 'Android'; + } + + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + /* Skyfire */ + + if (preg_match('/Skyfire\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Skyfire'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + $this->data->device->type = Constants\DeviceType::MOBILE; + + $this->data->os->name = 'Android'; + $this->data->os->version = null; + } + + /* Dolphin HD */ + + if (preg_match('/Dolphin(?:HDCN)?\/(?:INT|CN)?-?([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Dolphin'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + /* QQ Browser */ + + if (preg_match('/(M?QQBrowser)\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'QQ Browser'; + + $version = $match[2]; + if (preg_match('/^[0-9][0-9]$/u', $version)) { + $version = $version[0] . '.' . $version[1]; + } + + $this->data->browser->version = new Version([ 'value' => $version, 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->channel = ''; + + if (!isset($this->data->os->name) && $match[1] == 'QQBrowser') { + $this->data->os->name = 'Windows'; + } + + if (preg_match('/MQQBrowser\/[0-9\.]+\/Adr \(Linux; U; ([0-9\.]+); [^;]+; (.+) Build/u', $ua, $match)) { + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[1] ]) + ]); + + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->device->model = $match[2]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('android', $match[2]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (preg_match('/MQQBrowser\/[0-9\.]+\/WP7 \([^;]+;WPOS:([0-9]\.[0-9])[0-9\.]*;([^;]+); ([^\)]+)\)/u', $ua, $match)) { + $this->data->os->reset([ + 'name' => 'Windows Phone', + 'version' => new Version([ 'value' => $match[1] ]) + ]); + + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->device->manufacturer = $match[2]; + $this->data->device->model = $match[3]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wp', $match[3]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + if (preg_match('/MQQBrowser\/Mini([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'QQ Browser Mini'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->channel = ''; + } + + if (preg_match('/QQ\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'QQ Browser'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->channel = ''; + } + + /* 360 Phone Browser */ + + if (preg_match('/360 (?:Aphone|Android Phone) Browser \((?:Version |V)?([0-9.]*)(?:beta)?\)/u', $ua, $match)) { + $this->data->browser->name = 'Qihoo 360 Browser'; + $this->data->browser->family = null; + $this->data->browser->channel = ''; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (!$this->data->os->isFamily('Android')) { + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->os->reset([ + 'name' => 'Android' + ]); + } + } + + if (preg_match('/360%20(?:Browser|Lite)\/([0-9\.]+)/u', $ua, $match)) { + $this->data->browser->name = 'Qihoo 360 Browser'; + $this->data->browser->family = null; + $this->data->browser->channel = ''; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + if (preg_match('/QHBrowser\/([0-9\.]+)/u', $ua, $match)) { + $version = $match[1]; + if (preg_match('/^[0-9][0-9][0-9]$/u', $version)) { + $version = $version[0] . '.' . $version[1] . '.' . $version[2]; + } + + $this->data->browser->name = 'Qihoo 360 Browser'; + $this->data->browser->channel = ''; + $this->data->browser->version = new Version([ 'value' => $version ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (!$this->data->isOs('iOS')) { + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->os->reset([ + 'name' => 'iOS' + ]); + } + } + + /* Mercury */ + + if (preg_match('/(?:^| )Mercury\/([0-9\.]+)/u', $ua, $match)) { + $version = $match[1]; + if (preg_match('/^[0-9][0-9][0-9]$/u', $version)) { + $version = $version[0] . '.' . $version[1] . '.' . $version[2]; + } + + $this->data->browser->name = 'Mercury Browser'; + $this->data->browser->channel = ''; + $this->data->browser->version = new Version([ 'value' => $version ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + /* iBrowser */ + + if (preg_match('/(?:^| )iBrowser\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'iBrowser'; + + $version = $match[1]; + if (preg_match('/^[0-9][0-9]$/u', $version)) { + $version = $version[0] . '.' . $version[1]; + } + + $this->data->browser->version = new Version([ 'value' => $version, 'details' => 2 ]); + $this->data->browser->channel = ''; + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + if (preg_match('/iBrowser\/Mini([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'iBrowser Mini'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->channel = ''; + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + /* Puffin */ + + if (preg_match('/Puffin\/([0-9.]+)([IA])?([PT])?/u', $ua, $match)) { + $this->data->browser->name = 'Puffin'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => (intval(substr(strrchr($match[1], '.'), 1)) > 99 ? -1 : null) ]); + $this->data->browser->mode = 'proxy'; + $this->data->browser->channel = ''; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (isset($match[2])) { + switch ($match[2]) { + case 'A': + if (!$this->data->isOs('Android')) { + $this->data->os->reset([ 'name' => 'Android' ]); + } + break; + + case 'I': + if (!$this->data->isOs('iOS')) { + $this->data->os->reset([ 'name' => 'iOS' ]); + } + break; + } + } + + if (isset($match[3])) { + switch ($match[3]) { + case 'P': + $this->data->device->type = Constants\DeviceType::MOBILE; + if ($this->data->os->name == 'iOS' && empty($this->data->device->model)) { + $this->data->device->manufacturer = 'Apple'; + $this->data->device->model = 'iPhone'; + $this->data->device->identified = Constants\Id::MATCH_UA; + } + break; + + case 'T': + $this->data->device->type = Constants\DeviceType::TABLET; + if ($this->data->os->name == 'iOS' && empty($this->data->device->model)) { + $this->data->device->manufacturer = 'Apple'; + $this->data->device->model = 'iPad'; + $this->data->device->identified = Constants\Id::MATCH_UA; + } + break; + } + } + } + + /* MiniBrowser Mobile */ + + if (preg_match('/MiniBr?owserM(?:obile)?\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'MiniBrowser'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (!$this->data->isOs('Series60')) { + $this->data->os->name = 'Series60'; + $this->data->os->version = null; + } + } + + /* Maxthon */ + + if (preg_match('/MxNitro/iu', $ua, $match)) { + $this->data->browser->name = 'Maxthon Nitro'; + $this->data->browser->channel = ''; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/MxNitro\/([0-9.]*)/iu', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + } + + /* Sogou Mobile */ + + if (preg_match('/SogouAndroidBrowser\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Sogou Mobile'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (isset($this->data->device->manufacturer) && $this->data->device->manufacturer == 'Apple') { + unset($this->data->device->manufacturer); + unset($this->data->device->model); + unset($this->data->device->identifier); + $this->data->device->identified = Constants\Id::NONE; + } + } + + /* Xiino */ + + if (preg_match('/Xiino\/([0-9.]+)/u', $ua, $match)) { + $this->data->browser->name = 'Xiino'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + $this->data->device->type = Constants\DeviceType::PDA; + + $this->data->os->name = 'Palm OS'; + + if (preg_match('/\(v. ([0-9.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + } + + /* Palmscape */ + + if (preg_match('/Palmscape\/(?:PR)?([0-9.]+)/u', $ua, $match)) { + $this->data->browser->name = 'Palmscape'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + $this->data->device->type = Constants\DeviceType::PDA; + + $this->data->os->name = 'Palm OS'; + + if (preg_match('/\(v. ([0-9.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + } + + /* Novarra WebPro */ + + if (preg_match('/WebPro/u', $ua) && preg_match('/PalmOS/u', $ua)) { + $this->data->browser->name = 'WebPro'; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/WebPro\/?([0-9.]*)/u', $ua, $match)) { + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + } + } + + /* Novarra Vision */ + + if (preg_match('/(?:Vision-Browser|Novarra-Vision)\/?([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Novarra Vision'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->family = null; + $this->data->browser->mode = 'proxy'; + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if ($this->data->device->type != Constants\DeviceType::MOBILE) { + $this->data->os->reset(); + $this->data->device->type = Constants\DeviceType::MOBILE; + } + } + } + + private function detectTelevisionBrowsers($ua) + { + if (!preg_match('/(Roku|LG Browser|NetCast|SonyBrowserCore|Dream|Planetweb)/ui', $ua)) { + return; + } + + /* Web on Roku */ + + if (preg_match('/Roku/u', $ua) && preg_match('/Web\/([0-9.]+)/u', $ua, $match)) { + $this->data->browser->name = 'Web'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + + /* LG Browser */ + + if (preg_match('/LG Browser\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'LG Browser'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->device->type = Constants\DeviceType::TELEVISION; + } + + if (preg_match('/NetCast/u', $ua) && preg_match('/SmartTV\//u', $ua)) { + unset($this->data->browser->name); + unset($this->data->browser->version); + } + + /* Sony Browser */ + + if (preg_match('/SonyBrowserCore\/([0-9.]*)/u', $ua, $match)) { + unset($this->data->browser->name); + unset($this->data->browser->version); + $this->data->device->type = Constants\DeviceType::TELEVISION; + } + + /* Dreamkey */ + + if (preg_match('/DreamKey\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Dreamkey'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + $this->data->device->setIdentification([ + 'manufacturer' => 'Sega', + 'model' => 'Dreamcast', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + + /* Dream Passport */ + + if (preg_match('/DreamPassport\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Dream Passport'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + $this->data->device->setIdentification([ + 'manufacturer' => 'Sega', + 'model' => 'Dreamcast', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + + /* Planetweb */ + + if (preg_match('/Planetweb\/v?([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Planetweb'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + + if (preg_match('/Dreamcast/u', $ua, $match)) { + $this->data->device->setIdentification([ + 'manufacturer' => 'Sega', + 'model' => 'Dreamcast', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + + if (preg_match('/SPS/u', $ua, $match)) { + $this->data->device->setIdentification([ + 'manufacturer' => 'Sony', + 'model' => 'Playstation 2', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + } + } + + private function detectRemainingBrowsers($ua) + { + if ($data = Data\Applications::identifyBrowser($ua)) { + $this->data->browser->set($data['browser']); + + if (!empty($data['device'])) { + $this->data->device->set($data['device']); + } + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Device.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Device.php new file mode 100644 index 00000000..fdf24e32 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Device.php @@ -0,0 +1,28 @@ +detectCars($ua); + $this->detectGps($ua); + $this->detectEreader($ua); + $this->detectGaming($ua); + $this->detectTelevision($ua); + $this->detectSignage($ua); + $this->detectMedia($ua); + $this->detectPda($ua); + $this->detectPrinter($ua); + $this->detectTablet($ua); + $this->detectPhone($ua); + $this->detectMobile($ua); + + return $this; + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Cars.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Cars.php new file mode 100644 index 00000000..c329a3cd --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Cars.php @@ -0,0 +1,35 @@ +detectTesla($ua); + } + + + + + + /* Tesla S */ + + private function detectTesla($ua) + { + if (preg_match('/QtCarBrowser/u', $ua)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Tesla', + 'model' => 'Model S', + 'type' => Constants\DeviceType::CAR + ]); + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Ereader.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Ereader.php new file mode 100644 index 00000000..f89841b0 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Ereader.php @@ -0,0 +1,212 @@ +detectKindle($ua); + $this->detectNook($ua); + $this->detectBookeen($ua); + $this->detectKobo($ua); + $this->detectSonyreader($ua); + $this->detectPocketbook($ua); + $this->detectIriver($ua); + } + + + + + /* Amazon Kindle */ + + private function detectKindle($ua) + { + if (preg_match('/Kindle/u', $ua) && !preg_match('/Fire/u', $ua)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Amazon', + 'series' => 'Kindle', + 'type' => Constants\DeviceType::EREADER + ]); + + if (preg_match('/Kindle SkipStone/u', $ua)) { + $this->data->device->model = 'Kindle Touch or later'; + } elseif (preg_match('/Kindle\/3.0\+/u', $ua)) { + $this->data->device->model = 'Kindle 3 or later'; + } elseif (preg_match('/Kindle\/3.0/u', $ua)) { + $this->data->device->model = 'Kindle 3'; + } elseif (preg_match('/Kindle\/2.5/u', $ua)) { + $this->data->device->model = 'Kindle 2'; + } elseif (preg_match('/Kindle\/2.0/u', $ua)) { + $this->data->device->model = 'Kindle 2'; + } elseif (preg_match('/Kindle\/1.0/u', $ua)) { + $this->data->device->model = 'Kindle 1'; + } + + if (!empty($this->data->device->model)) { + $this->data->device->generic = false; + $this->data->device->series = null; + } + } + } + + + /* Barnes & Noble Nook */ + + private function detectNook($ua) + { + if (preg_match('/nook browser/u', $ua)) { + $this->data->os->reset([ 'name' => 'Android' ]); + $this->data->device->setIdentification([ + 'manufacturer' => 'Barnes & Noble', + 'series' => 'NOOK', + 'type' => Constants\DeviceType::EREADER + ]); + } + } + + + /* Bookeen */ + + private function detectBookeen($ua) + { + if (preg_match('/bookeen\/cybook/u', $ua)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Bookeen', + 'series' => 'Cybook', + 'type' => Constants\DeviceType::EREADER + ]); + } + } + + + /* Kobo */ + + private function detectKobo($ua) + { + if (preg_match('/Kobo (eReader|Touch)/u', $ua, $match)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Kobo', + 'series' => 'eReader', + 'type' => Constants\DeviceType::EREADER + ]); + } + } + + + /* Sony Reader */ + + private function detectSonyreader($ua) + { + if (preg_match('/EBRD([0-9]+)/u', $ua, $match)) { + $model = null; + + switch ($match[1]) { + case '1101': + $model = 'PRS-T1'; + break; + case '1102': + $model = 'PRS-G1'; + break; + case '1201': + $model = 'PRS-T2'; + break; + case '1301': + $model = 'PRS-T3'; + break; + } + + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Sony', + 'model' => $model, + 'series' => 'Reader', + 'type' => Constants\DeviceType::EREADER + ]); + + } + } + + + /* PocketBook */ + + private function detectPocketbook($ua) + { + if (preg_match('/PocketBook\/([0-9]+)/u', $ua, $match)) { + $model = null; + + switch ($match[1]) { + case '515': + $model = 'Mini'; + break; + case '614': + $model = 'Basic 2'; + break; + case '622': + $model = 'Touch'; + break; + case '623': + $model = 'Touch Lux'; + break; + case '624': + $model = 'Basic Touch'; + break; + case '626': + $model = 'Touch Lux 2'; + break; + case '630': + $model = 'Sense'; + break; + case '640': + $model = 'Aqua'; + break; + case '650': + $model = 'Ultra'; + break; + case '801': + $model = 'Color Lux'; + break; + case '840': + $model = 'InkPad'; + break; + } + + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'PocketBook', + 'model' => $model, + 'type' => Constants\DeviceType::EREADER + ]); + } + } + + + /* iRiver */ + + private function detectIriver($ua) + { + if (preg_match('/Iriver ;/u', $ua)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'iRiver', + 'series' => 'Story', + 'type' => Constants\DeviceType::EREADER + ]); + + if (preg_match('/EB07/u', $ua)) { + $this->data->device->model = 'Story HD EB07'; + $this->data->device->series = null; + $this->data->device->generic = false; + } + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Gaming.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Gaming.php new file mode 100644 index 00000000..77167aa1 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Gaming.php @@ -0,0 +1,267 @@ +detectNintendo($ua); + $this->detectPlaystation($ua); + $this->detectXbox($ua); + $this->detectSega($ua); + } + + + + + + /* Nintendo Wii and DS */ + + private function detectNintendo($ua) + { + /* Wii */ + + if (preg_match('/Nintendo Wii/u', $ua)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Nintendo', + 'model' => 'Wii', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + + /* Wii U */ + + if (preg_match('/Nintendo Wii ?U/u', $ua)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Nintendo', + 'model' => 'Wii U', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + + /* DS */ + + if (preg_match('/Nintendo DS/u', $ua) || preg_match('/Nitro.*Opera/u', $ua)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Nintendo', + 'model' => 'DS', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::PORTABLE + ]); + } + + /* DSi */ + + if (preg_match('/Nintendo DSi/u', $ua)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Nintendo', + 'model' => 'DSi', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::PORTABLE + ]); + } + + /* 3DS */ + + if (preg_match('/Nintendo 3DS/u', $ua)) { + $this->data->os->reset(); + $this->data->os->identifyVersion('/Version\/([0-9.]*[0-9])/u', $ua); + + $this->data->engine->set([ + 'name' => 'WebKit' + ]); + + $this->data->device->setIdentification([ + 'manufacturer' => 'Nintendo', + 'model' => '3DS', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::PORTABLE + ]); + } + + /* New 3DS */ + + if (preg_match('/New Nintendo 3DS/u', $ua)) { + $this->data->os->reset(); + $this->data->os->identifyVersion('/Version\/([0-9.]*[0-9])/u', $ua); + + $this->data->device->setIdentification([ + 'manufacturer' => 'Nintendo', + 'model' => 'New 3DS', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::PORTABLE + ]); + } + } + + + /* Sony PlayStation */ + + private function detectPlaystation($ua) + { + /* PlayStation Portable */ + + if (preg_match('/PlayStation Portable/u', $ua)) { + $this->data->os->reset(); + + $this->data->engine->set([ + 'name' => 'NetFront' + ]); + + $this->data->device->setIdentification([ + 'manufacturer' => 'Sony', + 'model' => 'Playstation Portable', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::PORTABLE + ]); + } + + /* PlayStation Vita */ + + if (preg_match('/PlayStation Vita/iu', $ua)) { + $this->data->os->reset(); + $this->data->os->identifyVersion('/PlayStation Vita ([0-9.]*)/u', $ua); + + $this->data->device->setIdentification([ + 'manufacturer' => 'Sony', + 'model' => 'Playstation Vita', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::PORTABLE + ]); + + if (preg_match('/VTE\//u', $ua)) { + $this->data->device->model = 'Playstation TV'; + $this->data->device->subtype = Constants\DeviceSubType::CONSOLE; + } + } + + /* PlayStation 2 */ + + if (preg_match('/Playstation2/u', $ua) || preg_match('/\(PS2/u', $ua)) { + $this->data->os->reset(); + + $this->data->device->setIdentification([ + 'manufacturer' => 'Sony', + 'model' => 'Playstation 2', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + + /* PlayStation 3 */ + + if (preg_match('/PlayStation 3/ui', $ua) || preg_match('/\(PS3/u', $ua)) { + $this->data->os->reset(); + $this->data->os->identifyVersion('/PLAYSTATION 3;? ([0-9.]*)/u', $ua); + + if (preg_match('/PLAYSTATION 3; [123]/', $ua)) { + $this->data->engine->set([ + 'name' => 'NetFront' + ]); + } + + $this->data->device->setIdentification([ + 'manufacturer' => 'Sony', + 'model' => 'Playstation 3', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + + /* PlayStation 4 */ + + if (preg_match('/PlayStation 4/ui', $ua)) { + $this->data->os->reset(); + $this->data->os->identifyVersion('/PlayStation 4 ([0-9.]*)/u', $ua); + + $this->data->device->setIdentification([ + 'manufacturer' => 'Sony', + 'model' => 'Playstation 4', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + } + + + /* Microsoft Xbox */ + + private function detectXbox($ua) + { + /* Xbox 360 */ + + if (preg_match('/Xbox\)$/u', $ua, $match)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Microsoft', + 'model' => 'Xbox 360', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + + /* Xbox One */ + + if (preg_match('/Xbox One\)/u', $ua, $match)) { + if ($this->data->isOs('Windows Phone', '=', '10')) { + $this->data->os->name = 'Windows'; + $this->data->os->version->alias = '10'; + } + + if (!$this->data->isOs('Windows', '=', '10')) { + $this->data->os->reset(); + } + + $this->data->device->setIdentification([ + 'manufacturer' => 'Microsoft', + 'model' => 'Xbox One', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + } + + + /* Sega */ + + private function detectSega($ua) + { + /* Sega Saturn */ + + if (preg_match('/SEGASATURN/u', $ua, $match)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Sega', + 'model' => 'Saturn', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + + /* Sega Dreamcast */ + + if (preg_match('/Dreamcast/u', $ua, $match)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Sega', + 'model' => 'Dreamcast', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Gps.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Gps.php new file mode 100644 index 00000000..d776b277 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Gps.php @@ -0,0 +1,34 @@ +detectGarmin($ua); + } + + + + + + /* Garmin Nuvi */ + + private function detectGarmin($ua) + { + if (preg_match('/Nuvi/u', $ua) && preg_match('/Qtopia/u', $ua)) { + $this->data->device->setIdentification([ + 'manufacturer' => 'Garmin', + 'model' => 'Nuvi', + 'type' => Constants\DeviceType::GPS + ]); + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Media.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Media.php new file mode 100644 index 00000000..3f057ade --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Media.php @@ -0,0 +1,116 @@ +detectArchos($ua); + $this->detectZune($ua); + $this->detectWalkman($ua); + } + + + + + /* Archos Generation 4, 5 and 6 */ + + private function detectArchos($ua) + { + /* Generation 4 */ + + if (preg_match('/Archos A([67]04)WIFI\//u', $ua, $match)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Archos', + 'model' => $match[1] . ' WiFi', + 'type' => Constants\DeviceType::MEDIA + ]); + } + + /* Generation 5 */ + + if (preg_match('/ARCHOS; GOGI; a([67]05f?);/u', $ua, $match)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Archos', + 'model' => $match[1] . ' WiFi', + 'type' => Constants\DeviceType::MEDIA + ]); + } + + /* Generation 6 without Android */ + + if (preg_match('/ARCHOS; GOGI; G6([SHL]);/u', $ua, $match)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Archos', + 'type' => Constants\DeviceType::MEDIA + ]); + + switch ($match[1]) { + case 'S': + case 'H': + $this->data->device->model = '5'; + break; + case 'L': + $this->data->device->model = '7'; + break; + } + } + + /* Generation 6 with Android */ + + if (preg_match('/ARCHOS; GOGI; A5[SH]; Version ([0-9]\.[0-9])/u', $ua, $match)) { + $version = new Version([ 'value' => $match[1] ]); + + $this->data->os->reset([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $version->is('<', '1.7') ? '1.5' : '1.6' ]) + ]); + + $this->data->device->setIdentification([ + 'manufacturer' => 'Archos', + 'model' => '5', + 'type' => Constants\DeviceType::MEDIA + ]); + } + } + + + /* Microsoft Zune */ + + private function detectZune($ua) + { + if (preg_match('/Microsoft ZuneHD/u', $ua)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Microsoft', + 'model' => 'Zune HD', + 'type' => Constants\DeviceType::MEDIA + ]); + } + } + + + /* Sony Walkman */ + + private function detectWalkman($ua) + { + if (preg_match('/Walkman\/(NW-[A-Z0-9]+)/u', $ua, $match)) { + $this->data->device->setIdentification([ + 'manufacturer' => 'Sony', + 'model' => $match[1] . ' Walkman', + 'type' => Constants\DeviceType::MEDIA + ]); + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Mobile.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Mobile.php new file mode 100644 index 00000000..ec6ed3fe --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Mobile.php @@ -0,0 +1,1270 @@ +detectGenericMobile($ua); + + /* Look for specific manufacturers and models */ + $this->detectKin($ua); + $this->detectNokia($ua); + $this->detectSamsung($ua); + + /* Try to parse some generic methods to store device information */ + $this->detectGenericMobileModels($ua); + $this->detectJapaneseMobileModels($ua); + + /* Try to find the model names based on id */ + $this->detectGenericMobileLocations($ua); + } + + + + + + + /* Generic markers */ + + private function detectGenericMobile($ua) + { + if (preg_match('/(MIDP|CLDC|UNTRUSTED\/|3gpp-gba)/u', $ua)) { + $this->data->device->type = Constants\DeviceType::MOBILE; + } + } + + + /* Microsoft KIN */ + + private function detectKin($ua) + { + if (preg_match('/KIN\.(One|Two) ([0-9.]*)/ui', $ua, $match)) { + $this->data->os->name = 'Kin OS'; + $this->data->os->version = new Version([ 'value' => $match[2], 'details' => 2 ]); + + switch ($match[1]) { + case 'One': + $this->data->device->manufacturer = 'Microsoft'; + $this->data->device->model = 'Kin ONE'; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + break; + + case 'Two': + $this->data->device->manufacturer = 'Microsoft'; + $this->data->device->model = 'Kin TWO'; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + break; + } + } + } + + + /* Nokia */ + + private function detectNokia($ua) + { + if (isset($this->data->device->manufacturer)) { + return; + } + + if (preg_match('/Nokia[- \/]?([^\/\);]+)/ui', $ua, $match)) { + + if ($match[1] == 'Browser') { + return; + } + + $this->data->device->manufacturer = 'Nokia'; + $this->data->device->model = Data\DeviceModels::cleanup($match[1]); + $this->data->device->identifier = $match[0]; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->device->generic = false; + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (!($this->data->device->identified & Constants\Id::MATCH_UA)) { + $device = Data\DeviceModels::identify('asha', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + + if (!isset($this->data->os->name) || $this->data->os->name != 'Nokia Asha Platform') { + $this->data->os->name = 'Nokia Asha Platform'; + $this->data->os->version = new Version([ 'value' => '1.0' ]); + + if (preg_match('/java_runtime_version=Nokia_Asha_([0-9_]+)[;\)]/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]); + } + } + } + } + + if (!($this->data->device->identified & Constants\Id::MATCH_UA)) { + $device = Data\DeviceModels::identify('s40', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + + if (!isset($this->data->os->name) || $this->data->os->name != 'Series40') { + $this->data->os->name = 'Series40'; + $this->data->os->version = null; + } + } + } + + if (!($this->data->device->identified & Constants\Id::MATCH_UA)) { + $device = Data\DeviceModels::identify('symbian', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + + if (!isset($this->data->os->name) || $this->data->os->name != 'Series60') { + $this->data->os->name = 'Series60'; + $this->data->os->version = null; + $this->data->os->family = new Family([ 'name' => 'Symbian' ]); + } + } + } + + $this->identifyBasedOnIdentifier(); + } + } + + + /* Samsung */ + + private function detectSamsung($ua) + { + if (isset($this->data->device->manufacturer)) { + return; + } + + if (preg_match('/(?:SAMSUNG; )?SAMSUNG ?[-\/]?([^;\/\)_,]+)/ui', $ua, $match)) { + $this->data->device->manufacturer = 'Samsung'; + $this->data->device->model = Data\DeviceModels::cleanup($match[1]); + $this->data->device->identifier = $match[0]; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->device->generic = false; + $this->data->device->type = Constants\DeviceType::MOBILE; + + if ($this->data->isOS('Bada')) { + $device = Data\DeviceModels::identify('bada', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if ($this->data->isOS('Series60')) { + $device = Data\DeviceModels::identify('symbian', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (!$this->data->os->isDetected()) { + if (preg_match('/Jasmine\/([0-9.]*)/u', $ua, $match)) { + $version = $match[1]; + + $device = Data\DeviceModels::identify('touchwiz', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + $this->data->os->name = 'Touchwiz'; + + switch ($version) { + case '0.8': + $this->data->os->version = new Version([ 'value' => '1.0' ]); + break; + case '1.0': + $this->data->os->version = new Version([ 'value' => '2.0', 'alias' => '2.0 or earlier' ]); + break; + } + } + } + + if (preg_match('/(?:Dolfin\/([0-9.]*)|Browser\/Dolfin([0-9.]*))/u', $ua, $match)) { + $version = !empty($match[1]) ? $match[1] : $match[2]; + + $device = Data\DeviceModels::identify('bada', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + $this->data->os->name = 'Bada'; + + switch ($version) { + case '2.0': + $this->data->os->version = new Version([ 'value' => '1.0' ]); + break; + case '2.2': + $this->data->os->version = new Version([ 'value' => '1.2' ]); + break; + } + } else { + $device = Data\DeviceModels::identify('touchwiz', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + $this->data->os->name = 'Touchwiz'; + + switch ($version) { + case '1.0': + $this->data->os->version = new Version([ 'value' => '2.0', 'alias' => '2.0 or earlier' ]); + break; + case '1.5': + $this->data->os->version = new Version([ 'value' => '2.0' ]); + break; + case '2.0': + $this->data->os->version = new Version([ 'value' => '3.0' ]); + break; + } + } + } + } + } + + $this->identifyBasedOnIdentifier(); + } + } + + + /* Generic models */ + + private function detectGenericMobileModels($ua) + { + if ($this->data->device->identified & Constants\Id::PATTERN) { + return; + } + + if (isset($this->data->device->manufacturer)) { + return; + } + + if (!preg_match('/(T-Mobile|Danger|HPiPAQ|Acer|Amoi|AIRNESS|ASUS|BenQ|maui|ALCATEL|Bird|COOLPAD|CELKON|Coship|Cricket|DESAY|Diamond|dopod|Ericsson|FLY|GIONEE|Haier|HIKe|Hisense|HS|HTC|T[0-9]{4,4}|HUAWEI|Karbonn|KWC|KONKA|KTOUCH|K-Touch|Lenovo|Lephone|LG|Micromax|MOT|Nexian|NEC|NGM|OPPO|Panasonic|Pantech|Philips|Sagem|Sanyo|Sam|SEC|SGH|SCH|SIE|Sony|SE|SHARP|Spice|Tecno|T-smart|TCL|Tiphone|Toshiba|UTStar|vk|Vodafone|Xiaomi|ZTE|WAP)/ui', $ua)) { + return; + } + + $this->data->device->identifyModel('/T-Mobile[_ ]([^\/;]+)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'T-Mobile' + ]); + + $this->data->device->identifyModel('/Danger hiptop ([0-9.]+)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Danger', + 'model' => 'Hiptop' + ]); + + $this->data->device->identifyModel('/HP(iPAQ[0-9A-Za-z]+)\//u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'HP' + ]); + + $this->data->device->identifyModel('/Acer[_-]?([^\s\/_]*)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Acer' + ]); + + $this->data->device->identifyModel('/Amoi[ -]([^\s\/_]*)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Amoi' + ]); + + $this->data->device->identifyModel('/AIRNESS-([^\/]*)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Airness' + ]); + + $this->data->device->identifyModel('/ASUS-([^\/]*)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Asus' + ]); + + $this->data->device->identifyModel('/BenQ[ -]([^\/]*)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'BenQ' + ]); + + $this->data->device->identifyModel('/ maui ([a-z0-9]+)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'BenQ', + 'model' => function ($model) { + return 'Maui ' . strtoupper($model); + } + ]); + + $this->data->device->identifyModel('/ALCATEL[_-]([^\/]*)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Alcatel', + 'model' => function ($model) { + if (preg_match('/^TRIBE ([^\s]+)/ui', $model, $match)) { + $model = 'One Touch Tribe ' . $match[1]; + } elseif (preg_match('/^ONE TOUCH ([^\s]*)/ui', $model, $match)) { + $model = 'One Touch ' . $match[1]; + } elseif (preg_match('/^OT[-\s]*([^\s]*)/ui', $model, $match)) { + $model = 'One Touch ' . $match[1]; + } + + return $model; + } + ]); + + $this->data->device->identifyModel('/Bird[ _\-\.]([^\/]*)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Bird' + ]); + + $this->data->device->identifyModel('/(?:YL-|YuLong-)?COOLPAD([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Coolpad' + ]); + + $this->data->device->identifyModel('/CELKON\.([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Celkon' + ]); + + $this->data->device->identifyModel('/Coship ([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Coship' + ]); + + $this->data->device->identifyModel('/Cricket-([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Cricket' + ]); + + $this->data->device->identifyModel('/DESAY[ _]([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'DESAY' + ]); + + $this->data->device->identifyModel('/Diamond_([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Diamond' + ]); + + $this->data->device->identifyModel('/dopod[-_]?([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Dopod' + ]); + + $this->data->device->identifyModel('/^Ericsson([^\/]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Ericsson' + ]); + + $this->data->device->identifyModel('/^(R[0-9]{3,3}) [0-9\.]+ WAP/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Ericsson' + ]); + + $this->data->device->identifyModel('/FLY_]?([^\s\/]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Fly' + ]); + + $this->data->device->identifyModel('/GIONEE[-_ ]([^\s\/;]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Gionee' + ]); + + $this->data->device->identifyModel('/GIONEE([A-Z0-9]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Gionee' + ]); + + $this->data->device->identifyModel('/HIKe_([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'HIKe' + ]); + + $this->data->device->identifyModel('/HAIER-([A-Z][0-9]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Haier' + ]); + + $this->data->device->identifyModel('/Hisense[ -](?:HS-)?([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Hisense' + ]); + + $this->data->device->identifyModel('/HS-([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Hisense' + ]); + + $this->data->device->identifyModel('/HTC[\s_-]?([^\s\/\(\);][^\/\(\);]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'HTC' + ]); + + $this->data->device->identifyModel('/(?:HTC_)?([A-Z0-9_]+_T[0-9]{4,4})/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'HTC' + ]); + + $this->data->device->identifyModel('/HUAWEI[\s_-]?([^\/\)\()]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Huawei' + ]); + + $this->data->device->identifyModel('/Karbonn ([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Karbonn' + ]); + + $this->data->device->identifyModel('/KWC-([^\s\/]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Kyocera' + ]); + + $this->data->device->identifyModel('/KONKA[-_]?([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Konka' + ]); + + $this->data->device->identifyModel('/TIANYU-KTOUCH\/([^\/]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'K-Touch' + ]); + + $this->data->device->identifyModel('/K-Touch_?([^\/]*)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'K-Touch' + ]); + + $this->data->device->identifyModel('/Lenovo[_-]?([^\/]*)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Lenovo' + ]); + + $this->data->device->identifyModel('/Lephone_([^\/]*)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Lephone' + ]); + + $this->data->device->identifyModel('/LGE?([A-Z]{2,2}[0-9]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'LG' + ]); + + $this->data->device->identifyModel('/LGE?(?:\/|-|_)([^\s\)\-\[\/]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'LG' + ]); + + $this->data->device->identifyModel('/LGE? ?([A-Z]*[0-9]+[A-Z]?)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'LG' + ]); + + $this->data->device->identifyModel('/Micromax([^\)]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Micromax' + ]); + + $this->data->device->identifyModel('/^MOTO-?([^\/_]+)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Motorola' + ]); + + $this->data->device->identifyModel('/MOT-([^\/_\.]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Motorola' + ]); + + $this->data->device->identifyModel('/Motorola-([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Motorola', + 'model' => function ($model) { + return strtoupper($model); + } + ]); + + $this->data->device->identifyModel('/Motorola[_ ]([^\/_;]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Motorola' + ]); + + $this->data->device->identifyModel('/Moto([^\/\s_;r][^\/\s_;]*)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Motorola' + ]); + + $this->data->device->identifyModel('/Nexian([^\/_]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Nexian' + ]); + + $this->data->device->identifyModel('/NEC-([^\/_]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'NEC' + ]); + + $this->data->device->identifyModel('/NGM_([^\/_]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'NGM' + ]); + + $this->data->device->identifyModel('/OPPO_([^\/_]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Oppo' + ]); + + $this->data->device->identifyModel('/Panasonic-([^\/_]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Panasonic' + ]); + + $this->data->device->identifyModel('/Pantech[-_]?([^\/_]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Pantech' + ]); + + $this->data->device->identifyModel('/Philips ?([A-Z]?[0-9@]+[a-z]?)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Philips' + ]); + + $this->data->device->identifyModel('/PHILIPS-([a-zA-Z0-9@]+(?: [0-9]+)?)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Philips', + 'model' => function ($model) { + if (preg_match('/Az@lis([0-9]{3,3})/ui', $model, $match)) { + return 'Az@lis ' . $match[1]; + } + + if (preg_match('/Fisio ?([0-9]{3,3})/ui', $model, $match)) { + return 'Fisio ' . $match[1]; + } + + return $model; + } + ]); + + $this->data->device->identifyModel('/SAGEM-([A-Z0-9\-]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Sagem' + ]); + + $this->data->device->identifyModel('/Sanyo-([A-Z0-9]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Sanyo' + ]); + + $this->data->device->identifyModel('/sam-([A-Z][0-9]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Samsung' + ]); + + $this->data->device->identifyModel('/SEC-(SGH[A-Z][0-9]+)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Samsung', + 'model' => function ($model) { + return str_replace('SGH', 'SGH-', $model); + } + ]); + + $this->data->device->identifyModel('/((?:SGH|SCH)-[A-Z][0-9]+)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Samsung' + ]); + + $this->data->device->identifyModel('/(GT-[A-Z][0-9]+[A-Z]?)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Samsung' + ]); + + $this->data->device->identifyModel('/(?:Siemens |SIE-)([A-Z]+[0-9]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Siemens' + ]); + + $this->data->device->identifyModel('/SIE-([0-9]{4,4}|[A-Z]{4,4})/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Siemens' + ]); + + $this->data->device->identifyModel('/Sony ([A-Z0-9\-]+)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Sony' + ]); + + $this->data->device->identifyModel('/SE([A-Z][0-9]+[a-z])/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Sony Ericsson' + ]); + + $this->data->device->identifyModel('/sony-ericsson ([A-Z][0-9]+[a-z])/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Sony Ericsson' + ]); + + $this->data->device->identifyModel('/SonyE?ricsson ?([^\/\);]+)/iu', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Sony Ericsson', + 'model' => function ($model) { + if (preg_match('/^([A-Z]) ([0-9]+)$/u', $model, $match)) { + $model = $match[1] . $match[2]; + } + + if (preg_match('/^[a-z][0-9]+/u', $model)) { + $model[0] = strtoupper($model[0]); + } + + return $model; + } + ]); + + $this->data->device->identifyModel('/SHARP[-_\/]([^\/\;]*)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Sharp' + ]); + + $this->data->device->identifyModel('/Spice\s([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Spice' + ]); + + $this->data->device->identifyModel('/Spice\s?([A-Z][0-9]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Spice' + ]); + + $this->data->device->identifyModel('/Tecno([^\/]*)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Tecno' + ]); + + $this->data->device->identifyModel('/T-smart_([^\/]*)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'T-smart' + ]); + + $this->data->device->identifyModel('/TCL[-_ ]([^\/\;\)]*)/ui', $ua, [ + 'manufacturer' => 'TCL' + ]); + + $this->data->device->identifyModel('/Tiphone ([^\/]*)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'TiPhone' + ]); + + $this->data->device->identifyModel('/Toshiba[-\/]([^\/-]*)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Toshiba' + ]); + + $this->data->device->identifyModel('/UTStar(?:com)?-([^\s\.\/;]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'UTStarcom' + ]); + + + $this->data->device->identifyModel('/vk-(vk[0-9]+)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'VK Mobile', + 'model' => function ($model) { + return strtoupper($model); + } + ]); + + $this->data->device->identifyModel('/Vodafone\/[0-9.]+\/(v[0-9]+)[^\/]*\//u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Vodafone' + ]); + + $this->data->device->identifyModel('/Xiaomi[_]?([^\s]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'Xiaomi' + ]); + + + $this->data->device->identifyModel('/ZTE[-_\s]?([^\s\/\)]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'manufacturer' => 'ZTE', + 'model' => function ($model) { + return preg_match('/[A-Z]+[0-9]+/iu', $model) ? strtoupper($model) : $model; + } + ]); + + $this->identifyBasedOnIdentifier(); + } + + + /* Japanese models */ + + private function detectJapaneseMobileModels($ua) + { + if (isset($this->data->device->manufacturer)) { + return; + } + + if ($this->data->os->isFamily('Android')) { + return; + } + + /* Sometimes DoCoMo UA strings are (partially) encoded */ + + if (preg_match('/^DoCoMo/u', $ua)) { + $ua = preg_replace_callback( + "#\\\x([0-9A-Fa-f]{2})#", + function ($m) { + return chr(hexdec($m[1])); + }, + $ua + ); + } + + /* First identify it based on id */ + + $model = null; + $manufacturer = null; + $carrier = null; + $falsepositive = false; + + $ids = [ + 'CA' => 'Casio', + 'DL' => 'Dell', + 'ER' => 'Ericsson', + 'HT' => 'HTC', + 'HW' => 'Huawei', + 'IA' => 'Inventec', + 'JR' => 'JRC', + 'KO' => 'Kokusai', + 'LC' => 'Longcheer', + 'NK' => 'Nokia', + 'NM' => 'Nokia', + 'KE' => 'KES', + 'SA' => 'Sanyo', + 'SC' => 'Samsung', + 'SS' => 'Samsung', + 'SH' => 'Sharp', + 'SE' => 'Sony Ericsson', + 'SO' => 'Sony', + 'ZT' => 'ZTE', + 'F' => 'Fujitsu', + 'D' => 'Mitsubishi', + 'J' => 'JRC', + 'K' => 'Kyocera', + 'L' => 'LG', + 'M' => 'Motorola', + 'N' => 'NEC', + 'P' => 'Panasonic', + 'R' => 'JRC', + 'T' => 'Toshiba', + 'Z' => 'ZTE', + ]; + + if (preg_match('/(?:^|[\s\/\-\(;])((' . implode('|', array_keys($ids)) . ')[0-9]{3,3}[a-z]+[A-Z]*)/u', $ua, $match)) { + $model = $match[1]; + $manufacturer = $match[2]; + $carrier = 'DoCoMo'; + } + + if (preg_match('/(?:; |\()((' . implode('|', array_keys($ids)) . ')[0-9]{2,2}[A-Z][0-9]?)[\);]/u', $ua, $match)) { + $model = $match[1]; + $manufacturer = $match[2]; + $carrier = 'DoCoMo'; + } + + if (preg_match('/DoCoMo\/[0-9].0 ((' . implode('|', array_keys($ids)) . ')[0-9]{2,2}[A-Z][0-9]?)(?:\s?\(|$)/u', $ua, $match)) { + $model = $match[1]; + $manufacturer = $match[2]; + $carrier = 'DoCoMo'; + } + + if (preg_match('/DoCoMo\/[0-9].0[\/\s](?:MST_v_)?((' . implode('|', array_keys($ids)) . ')[1-9][0-9]{3,3}[A-Z]?)/u', $ua, $match)) { + $model = $match[1]; + $manufacturer = $match[2]; + $carrier = 'DoCoMo'; + } + + if (preg_match('/[\/\(]([SHW][0-9]{2,2}(' . implode('|', array_keys($ids)) . '))[\/;]/u', $ua, $match)) { + $model = $match[1]; + $manufacturer = $match[2]; + $carrier = 'EMOBILE'; + } + + if (preg_match('/\) ([SHW][0-9]{2,2}(' . implode('|', array_keys($ids)) . '))$/u', $ua, $match)) { + $model = $match[1]; + $manufacturer = $match[2]; + $carrier = 'EMOBILE'; + } + + if (preg_match('/[\s\/\-\(;](J-(' . implode('|', array_keys($ids)) . ')[0-9]{2,2})/u', $ua, $match)) { + $model = $match[1]; + $manufacturer = $match[2]; + $carrier = 'Softbank'; + } + + if (preg_match('/(?:^|; |\/)([0-9]{3,3}(' . implode('|', array_keys($ids)) . '))[eps]?[\/\)]/u', $ua, $match)) { + $model = $match[1]; + $manufacturer = $match[2]; + $carrier = 'Softbank'; + } + + if (preg_match('/\(([0-9]{3,3}(' . implode('|', array_keys($ids)) . ')[eps]?);SoftBank/u', $ua, $match)) { + $model = $match[1]; + $manufacturer = $match[2]; + $carrier = 'Softbank'; + } + + if (preg_match('/(?:^|[\s\/\(;])((V|DM|W|WS|WX)[0-9]{2,3}(' . implode('|', array_keys($ids)) . '))/u', $ua, $match)) { + $model = $match[1]; + $manufacturer = $match[3]; + + switch ($match[2]) { + case 'V': + $carrier = 'Softbank'; + break; + case 'DM': + $carrier = 'Disney Mobile'; + break; + case 'W': + case 'WS': + case 'WX': + $carrier = 'Willcom'; + break; + } + } + + if (preg_match('/(AH-(' . implode('|', array_keys($ids)) . ')[1-9][0-9]{3,3}[A-Z]?)/u', $ua, $match)) { + $model = $match[1]; + $manufacturer = $match[2]; + $carrier = 'Willcom'; + } + + if (in_array($model, [ '360SE' ])) { + $falsepositive = true; + } + + if (!$falsepositive && !empty($model) && !empty($manufacturer)) { + $this->data->device->reset([ + 'type' => Constants\DeviceType::MOBILE, + 'model' => $model, + 'carrier' => $carrier + ]); + + if (array_key_exists($manufacturer, $ids)) { + $this->data->device->manufacturer = $ids[$manufacturer]; + } + + $this->data->device->identified |= Constants\Id::PATTERN; + + /* Set flags for MOAP */ + + switch ($model) { + case 'F06B': + case 'F07B': + case 'F08B': + case 'SH07B': + $this->data->os->reset([ 'family' => new Family([ 'name' => 'Symbian' ]) ]); + $this->data->device->flag = Constants\Flag::MOAPS; + break; + } + + return; + } + + /* Then KDDI model number */ + + $ids = [ + 'CA' => 'Casio', + 'DE' => 'Denso', + 'PT' => 'Pantech', + 'SA' => 'Sanyo', + 'ST' => 'Sanyo', + 'SH' => 'Sharp', + 'H' => 'Hitachi', + 'K' => 'Kyocera', + 'P' => 'Panasonic', + 'S' => 'Sony Ericsson', + 'T' => 'Toshiba' + ]; + + if (preg_match('/(?:^|KDDI-)(W[0-9]{2,2}(' . implode('|', array_keys($ids)) . '))[;\)\s\/]/u', $ua, $match)) { + $model = $match[1]; + $manufacturer = $match[2]; + + $this->data->device->reset([ + 'type' => Constants\DeviceType::MOBILE, + 'model' => $model, + 'carrier' => 'au' + ]); + + if (array_key_exists($manufacturer, $ids)) { + $this->data->device->manufacturer = $ids[$manufacturer]; + } + + $this->data->device->identified |= Constants\Id::PATTERN; + return; + } + + /* Then identify it based on KDDI id */ + + $ids = [ + 'CA' => 'Casio', + 'DN' => 'Denso', + 'ER' => 'Ericsson', + 'FJ' => 'Fujitsu', + 'HI' => 'Hitachi', + 'KC' => 'Kyocera', + 'MA' => 'Panasonic', + 'MI' => 'Mitsubishi', + 'PT' => 'Pantech', + 'SA' => 'Sanyo', + 'ST' => 'Sanyo', + 'SY' => 'Sanyo', + 'SH' => 'Sharp', + 'SN' => 'Sony Ericsson', + 'TS' => 'Toshiba' + ]; + + if (preg_match('/(?:^|KDDI-|UP\. ?Browser\/[0-9\.]+-|; )((' . implode('|', array_keys($ids)) . ')(?:[0-9][0-9]|[A-Z][0-9]|[0-9][A-Z]))($|[;\)\s])/ui', $ua, $match)) { + $model = strtoupper($match[1]); + $manufacturer = strtoupper($match[2]); + $falsepositive = false; + + if (in_array($model, [ 'MAM2', 'MAM3' ])) { + $falsepositive = true; + } + + if (!$falsepositive) { + $this->data->device->reset([ + 'type' => Constants\DeviceType::MOBILE, + 'model' => $model, + 'carrier' => 'au' + ]); + + if (array_key_exists($manufacturer, $ids)) { + $this->data->device->manufacturer = $ids[$manufacturer]; + + $device = Data\DeviceModels::identify('kddi', $model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $device->carrier = 'au'; + $this->data->device = $device; + } + } + + $this->data->device->identified |= Constants\Id::PATTERN; + return; + } + } + + + /* Finally identify it based on carrier */ + + $this->data->device->identifyModel('/\(([A-Z]+[0-9]+[A-Z])[^;]*; ?FOMA/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'carrier' => 'DoCoMo' + ]); + + $this->data->device->identifyModel('/\(FOMA ([^;]+)+;/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'carrier' => 'DoCoMo' + ]); + + $this->data->device->identifyModel('/DoCoMo\/[0-9].0[\/\s]([0-9A-Z]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'carrier' => 'DoCoMo' + ]); + + $this->data->device->identifyModel('/NTTDoCoMo ([0-9A-Z]+)/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'carrier' => 'DoCoMo' + ]); + + $this->data->device->identifyModel('/J-PHONE\/[^\/]+\/([^\/_]+)/u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'carrier' => 'Softbank' + ]); + + $this->data->device->identifyModel('/SoftBank\/[^\/]+\/([^\/]+)\//u', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'carrier' => 'Softbank' + ]); + + $this->data->device->identifyModel('/Vodafone\/[0-9.]+\/V([0-9]+[A-Z]+)[^\/]*\//ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'carrier' => 'Softbank' + ]); + + $this->data->device->identifyModel('/(KDDI-[^\s\)\.;]{4,})/ui', $ua, [ + 'type' => Constants\DeviceType::MOBILE, + 'carrier' => 'au' + ]); + + + if (!empty($this->data->device->model)) { + $this->identifyBasedOnId($this->data->device->model); + } + } + + + + /* Device models not identified by a prefix */ + + private function detectGenericMobileLocations($ua) + { + if ($this->data->device->identified & Constants\Id::PATTERN) { + return; + } + + $candidates = []; + + if (preg_match('/^([a-z0-9\.\_\+\/ ]+)_TD\//iu', $ua, $match)) { + array_push($candidates, $match[1]); + } + + if (preg_match('/^([a-z0-9\_]+)/iu', $ua, $match)) { + array_push($candidates, $match[1]); + } + + if (preg_match('/[; ]\(?([^\s\)\/;]+)[^\s;]*$/u', $ua, $match)) { + array_push($candidates, $match[1]); + } + + if (preg_match('/^([^\/\)]+)/u', $ua, $match)) { + array_push($candidates, $match[1]); + } + + if (preg_match('/MobilePhone ([^\/\)]+)/u', $ua, $match)) { + array_push($candidates, $match[1]); + } + + $candidates = array_diff($candidates, [ + 'Mobile', 'Safari', 'Version', 'GoogleTV', 'WebKit', 'NetFront', + 'Microsoft', 'ZuneWP7', 'Firefox', 'UCBrowser', 'IEMobile', 'Touch', + 'Fennec', 'Minimo', 'Gecko', 'TizenBrowser', 'Browser', 'sdk', + 'Mini', 'Fennec', 'Darwin', 'Puffin', 'Tanggula', 'Edge', + 'QHBrowser', 'BonEcho', 'Iceweasel', 'Midori', 'BeOS', 'UBrowser', + 'SeaMonkey', 'Model', 'Silk-Accelerated=true', 'Configuration', + 'UNTRUSTED', 'OSRE', 'Dolfin', 'Surf', 'Epiphany', 'Konqueror', + 'Presto', 'OWB', 'PmWFx', 'Netscape', 'Netscape6', 'Navigator', + 'Opera', 'Mozilla', 'BrightSign', 'Motorola', 'UCWEB', + 'NativeOperaMini', 'OperaMini', 'SogouMobileBrowser', 'iLunascape', + 'Sleipnir', 'MobileSafari', 'MQQBrowser', 'BREW', '?', + 'Maxthon', '360%20Browser', 'OPR', 'CFNetwork', 'JUC', 'Skyfire', + 'UP.Browser', 'DolphinHDCN', 'NintendoBrowser', 'NCSA', + 'NCSA Mosaic', 'NCSA_Mosaic', 'U', 'NetFrontNX', 'QtWebKit', + 'HtmlRenderer', 'HbbTV', 'WebAppManager', 'SmartTV', 'UPLUSTVBROWSER', + 'LG Browser', 'LG', 'LGSmartTV', 'OBIGO-T10', 'Linux', 'DLNADOC', + 'Aplix_SANYO_browser', 'Japanese', 'WebBrowser', 'Freetime', + 'OreganMediaBrowser', 'NETRANGEMMH', 'http:', 'bxapi', 'Kodi', + 'XBMC', 'KreaTVWebKit', 'MachBlue', 'Espial', 'TouchPad', + 'sharp', 'sharp wd browser', 'sharp pda browser', 'browser', + 'Palmscape', 'CorePlayer', 'Xiino', 'SONY', 'WorldTALK', 'TOPS', + 'Windows', 'Microsoft Pocket Internet Explorer', 'Explorer', + 'CE', 'Desktop', 'Maemo Browser', 'Maemo', 'baidubrowser', + 'Mercury', 'BREW-Applet', 'ucweb-squid', 'iSurf', '3gpp-gba', + 'InfoPath.2', 'UC', 'J2ME', 'IUC', 'AveFront', 'MMP', 'BaiduHD', + '360%20Lite', '360', 'AppleWebKit', 'Instagram', 'FBOP', + 'Nuanti', 'NuantiMeta', 'Silk', 'VTE', 'DreamKey', 'DreamPassport', + 'Aplix_SEGASATURN_browser', 'NWF', 'Bunjalloo', 'libwww', + 'Inferno', 'NEXT', 'I', 'Microsoft Internet Explorer', 'MAM3', + 'MAM2', '360SE', 'Ziepod', 'Vista', 'XP', 'Links', 'Syllable', + 'sun4m', 'sun4c', 'sun4u', 'i86pc', 'X11', 'NaenaraBrowser', + 'QuickTime', 'IBM', 'QQBrowser', 'x86_64', 'i686', 'i386', 'Chrome', + 'TenFourFox', 'Swing', 'NetFrontBrowserNX', 'Mac_PowerPC', + 'NetCast.TV-2012', 'NetCast.TV-2011', 'NetCast.Media-2011', + 'PaleMoon', 'Fedora', 'SUSE', 'iCab', 'Googlebot', 'Pixi', + 'Pre', 'ELinks', 'developer', 'beta', 'BingPreview', 'IBrowse', '+http:' + ]); + + $candidates = array_unique($candidates); + + foreach ($candidates as $i => $id) { + if (preg_match('/^[0-9\.]+$/u', $id)) { + unset($candidates[$i]); + continue; + } + + if (preg_match('/^[0-9]+[xX][0-9]+$/u', $id)) { + unset($candidates[$i]); + continue; + } + + if (preg_match('/^\[?[a-z]{2,2}(\-[a-z]{2,2})?\]?$/ui', $id)) { + unset($candidates[$i]); + continue; + } + + if (strlen($id) < 4) { + unset($candidates[$i]); + continue; + } + } + + foreach ($candidates as $i => $id) { + $this->identifyBasedOnIdUsingOs($id); + + if ($this->data->device->identified & Constants\Id::MATCH_UA) { + return; + } + } + } + + function identifyBasedOnIdentifier() + { + if ($this->data->device->identified & Constants\Id::MATCH_UA) { + return; + } + + $ids = []; + + if (!empty($this->data->device->identifier)) { + $ids[] = $this->data->device->identifier; + } + + if (!empty($this->data->device->model)) { + $ids[] = $this->data->device->model; + } + + foreach ($ids as $i => $id) { + $this->identifyBasedOnIdUsingOs($id); + + if ($this->data->device->identified & Constants\Id::MATCH_UA) { + return; + } + } + + foreach ($ids as $i => $id) { + $this->identifyBasedOnId($id); + + if ($this->data->device->identified & Constants\Id::MATCH_UA) { + return; + } + } + } + + function identifyBasedOnIdUsingOs($id) + { + switch ($this->data->os->getFamily()) { + + case 'Android': + $device = Data\DeviceModels::identify('android', $id); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + break; + + case 'Brew': + $device = Data\DeviceModels::identify('brew', $id); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + break; + + case 'Symbian': + $device = Data\DeviceModels::identify('symbian', $id); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + break; + + case 'Windows': + case 'Windows CE': + case 'Windows Mobile': + $device = Data\DeviceModels::identify('wm', $id); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + + if (!$this->data->isOs('Windows Mobile')) { + $this->data->os->reset([ + 'name' => 'Windows Mobile' + ]); + } + } + break; + + default: + $device = Data\DeviceModels::identify('feature', $id); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + break; + } + } + + function identifyBasedOnId($id) + { + if ($this->data->device->type != 'mobile') { + return; + } + + if (!($this->data->device->identified & Constants\Id::MATCH_UA)) { + $device = Data\DeviceModels::identify('brew', $id); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + + if (!in_array($this->data->os->name, [ 'Brew', 'Brew MP' ])) { + $this->data->os->name = 'Brew'; + } + } + } + + if (!($this->data->device->identified & Constants\Id::MATCH_UA)) { + $device = Data\DeviceModels::identify('bada', $id); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + $this->data->os->name = 'Bada'; + } + } + + if (!($this->data->device->identified & Constants\Id::MATCH_UA)) { + $device = Data\DeviceModels::identify('touchwiz', $id); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + $this->data->os->name = 'Touchwiz'; + } + } + + if (!($this->data->device->identified & Constants\Id::MATCH_UA)) { + $device = Data\DeviceModels::identify('symbian', $id); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + $this->data->os->reset([ + 'family' => new Family([ 'name' => 'Symbian' ]) + ]); + } + } + + if (!($this->data->device->identified & Constants\Id::MATCH_UA)) { + $device = Data\DeviceModels::identify('wm', $id); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + $this->data->os->name = 'Windows Mobile'; + } + } + + if (!($this->data->device->identified & Constants\Id::MATCH_UA)) { + $device = Data\DeviceModels::identify('feature', $id); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Pda.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Pda.php new file mode 100644 index 00000000..3cace601 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Pda.php @@ -0,0 +1,255 @@ +detectCasio($ua); + $this->detectPalm($ua); + $this->detectSonyMylo($ua); + $this->detectSonyAirboard($ua); + $this->detectSharpZaurus($ua); + $this->detectSharpShoin($ua); + $this->detectPanasonicPocketE($ua); + $this->detectFujitsuOasys($ua); + $this->detectNttPetitWeb($ua); + } + + + + + + /* Casio */ + + private function detectCasio($ua) + { + if (preg_match('/Product\=CASIO\/([^\);]+)[\);]/ui', $ua, $match)) { + $this->data->device->manufacturer = 'Casio'; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->type = Constants\DeviceType::PDA; + + if ($match[1] == 'CASSIOPEIA BE') { + $this->data->device->model = 'Cassiopeia'; + } + + if ($match[1] == 'PPP101') { + $this->data->device->model = 'Pocket PostPet'; + $this->data->device->carrier = 'DoCoMo'; + } + } + } + + + /* Palm */ + + private function detectPalm($ua) + { + if (preg_match('/PalmOS/iu', $ua, $match)) { + $this->data->os->name = 'Palm OS'; + $this->data->device->type = Constants\DeviceType::PDA; + + if (preg_match('/PalmOS ([0-9.]*)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/; ([^;)]+)\)/u', $ua, $match)) { + $device = Data\DeviceModels::identify('palmos', $match[1]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (preg_match('/PalmOS\/([a-z]+)\/model ([^\/]+)\//iu', $ua, $match)) { + $device = Data\DeviceModels::identify('palmos', $match[1] . '-' . $match[2]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + if (preg_match('/Palm OS ([0-9.]*)/iu', $ua, $match)) { + $this->data->os->name = 'Palm OS'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + $this->data->device->type = Constants\DeviceType::PDA; + } + + if (preg_match('/PalmSource/u', $ua, $match)) { + $this->data->os->name = 'Palm OS'; + $this->data->os->version = null; + $this->data->device->type = Constants\DeviceType::PDA; + + if (preg_match('/PalmSource\/([^;]+)/u', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->identified = Constants\Id::PATTERN; + } + + if (isset($this->data->device->model) && $this->data->device->model) { + $device = Data\DeviceModels::identify('palmos', $this->data->device->model); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + /* Some model markers */ + + if (preg_match('/PalmPilot Pro/ui', $ua, $match)) { + $this->data->device->manufacturer = 'Palm'; + $this->data->device->model = 'Pilot Professional'; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + if (preg_match('/pdQbrowser/ui', $ua, $match)) { + $this->data->device->manufacturer = 'Kyocera'; + $this->data->device->model = 'QCP-6035'; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + } + + + /* Sony Mylo */ + + private function detectSonyMylo($ua) + { + if (preg_match('/SONY\/COM([0-9])/ui', $ua, $match)) { + $this->data->device->manufacturer = 'Sony'; + $this->data->device->model = 'Mylo ' . $match[1]; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->type = Constants\DeviceType::PDA; + + $this->data->os->reset(); + + if (preg_match('/Qt embedded/ui', $ua, $match)) { + $this->data->os->name = 'Qtopia'; + } + } + } + + + /* Sony Airboard */ + + private function detectSonyAirboard($ua) + { + if (preg_match('/SONY\/airboard\/IDT-([A-Z0-9]+)/ui', $ua, $match)) { + $this->data->device->manufacturer = 'Sony'; + $this->data->device->model = 'Airboard ' . $match[1]; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->type = Constants\DeviceType::PDA; + } + + if (preg_match('/LocationFreeTV; Airboard\/(LF-[A-Z0-9]+)/ui', $ua, $match)) { + $this->data->device->manufacturer = 'Sony'; + $this->data->device->model = 'Airboard ' . $match[1]; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->type = Constants\DeviceType::PDA; + } + } + + + /* Sharp Zaurus */ + + private function detectSharpZaurus($ua) + { + if (preg_match('/sharp pda browser\/([0-9\.]+)/ui', $ua, $match)) { + $this->data->device->manufacturer = 'Sharp'; + $this->data->device->model = 'Zaurus'; + $this->data->device->type = Constants\DeviceType::PDA; + + if (preg_match('/\(([A-Z0-9\-]+)\/[0-9\.]+\)/ui', $ua, $match)) { + $this->data->device->model = 'Zaurus ' . $match[1]; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + } + + if (preg_match('/\(PDA; (SL-[A-Z][0-9]+)\/[0-9\.]/ui', $ua, $match)) { + $this->data->device->manufacturer = 'Sharp'; + $this->data->device->model = 'Zaurus ' . $match[1]; + $this->data->device->type = Constants\DeviceType::PDA; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + } + + + /* Sharp Shoin (Word Processor) */ + + private function detectSharpShoin($ua) + { + if (preg_match('/sharp wd browser\/([0-9\.]+)/ui', $ua, $match)) { + $this->data->device->manufacturer = 'Sharp'; + $this->data->device->model = 'Mobile Shoin'; + $this->data->device->type = Constants\DeviceType::PDA; + + if (preg_match('/\(([A-Z0-9\-]+)\/[0-9\.]+\)/ui', $ua, $match)) { + $this->data->device->model = 'Mobile Shoin ' . $match[1]; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + } + } + + + /* Panasonic POCKET・E */ + + private function detectPanasonicPocketE($ua) + { + if (preg_match('/Product\=Panasonic\/POCKET-E/ui', $ua, $match)) { + $this->data->device->manufacturer = 'Panasonic'; + $this->data->device->model = 'POCKET・E'; + $this->data->device->type = Constants\DeviceType::PDA; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + } + + + /* Fujitsu OASYS */ + + private function detectFujitsuOasys($ua) + { + if (preg_match('/Fujitsu; OASYS/ui', $ua, $match)) { + $this->data->device->manufacturer = 'Fujitsu'; + $this->data->device->model = 'OASYS'; + $this->data->device->type = Constants\DeviceType::PDA; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + + if (preg_match('/eNavigator/ui', $ua, $match)) { + $this->data->browser->name = 'eNavigator'; + $this->data->browser->version = null; + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + } + } + + + /* PetitWeb */ + + private function detectNttPetitWeb($ua) + { + if (preg_match('/Product\=NTT\/(PI-[0-9]+)/ui', $ua, $match)) { + $this->data->device->manufacturer = 'NTT'; + $this->data->device->model = 'PetitWeb ' . $match[1]; + $this->data->device->type = Constants\DeviceType::PDA; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Phone.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Phone.php new file mode 100644 index 00000000..171c49aa --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Phone.php @@ -0,0 +1,32 @@ +detectNttTeless($ua); + } + + + + + + /* Casio */ + + private function detectNttTeless($ua) + { + if (preg_match('/Product\=NTT\/Teless/ui', $ua, $match)) { + $this->data->device->manufacturer = 'NTT'; + $this->data->device->model = 'Teless'; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->device->subtype = Constants\DeviceSubType::DESKTOP; + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Printer.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Printer.php new file mode 100644 index 00000000..df109f66 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Printer.php @@ -0,0 +1,46 @@ +data->device->setIdentification([ + 'manufacturer' => 'Kyocera', + 'model' => 'TASKalfa ' . $match[1], + 'type' => Constants\DeviceType::PRINTER + ]); + } + + + /* Canon IJ */ + + if (preg_match('/CanonIJCL/iu', $ua, $match)) { + $this->data->device->setIdentification([ + 'manufacturer' => 'Canon', + 'model' => 'IJ Printer', + 'type' => Constants\DeviceType::PRINTER + ]); + } + + /* HP Web PrintSmart */ + + if (preg_match('/HP Web PrintSmart/iu', $ua, $match)) { + $this->data->device->setIdentification([ + 'manufacturer' => 'HP', + 'model' => 'Web PrintSmart', + 'type' => Constants\DeviceType::PRINTER + ]); + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Signage.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Signage.php new file mode 100644 index 00000000..b36aee90 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Signage.php @@ -0,0 +1,41 @@ +data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'BrightSign', + 'model' => $match[1], + 'type' => Constants\DeviceType::SIGNAGE + ]); + } + + + /* Iadea */ + + if (preg_match('/ADAPI/u', $ua) && preg_match('/\(MODEL:([^\)]+)\)/u', $ua, $match)) { + if (!$this->data->isOs('Android')) { + $this->data->os->reset(); + } + + $this->data->device->setIdentification([ + 'manufacturer' => 'IAdea', + 'model' => $match[1], + 'type' => Constants\DeviceType::SIGNAGE + ]); + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Tablet.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Tablet.php new file mode 100644 index 00000000..c7f21221 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Tablet.php @@ -0,0 +1,37 @@ +detectWebTab($ua); + } + + + + + + /* WeTab */ + + private function detectWebTab($ua) + { + if (preg_match('/WeTab-Browser /ui', $ua, $match)) { + $this->data->device->manufacturer = 'WeTab'; + $this->data->device->model = 'WeTab'; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->type = Constants\DeviceType::TABLET; + + $this->data->browser->name = 'WebTab Browser'; + $this->data->browser->version = null; + + $this->data->os->name = 'MeeGo'; + $this->data->os->version = null; + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Television.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Television.php new file mode 100644 index 00000000..512b2bbe --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Device/Television.php @@ -0,0 +1,1168 @@ +detectGenericTelevision($ua); + + /* Try to parse some generic methods to store device information */ + $this->detectGenericTelevisionModels($ua); + $this->detectGenericInettvBrowser($ua); + $this->detectGenericHbbTV($ua); + + /* Look for specific manufacturers and models */ + $this->detectPanasonicTelevision($ua); + $this->detectSharpTelevision($ua); + $this->detectSamsungTelevision($ua); + $this->detectSonyTelevision($ua); + $this->detectPhilipsTelevision($ua); + $this->detectLgTelevision($ua); + $this->detectToshibaTelevision($ua); + $this->detectSanyoTelevision($ua); + + /* Try to detect set top boxes from various manufacturers */ + $this->detectSettopboxes($ua); + + /* Improve model names */ + $this->improveModelsOnDeviceTypeTelevision(); + } + + + + + + /* Generic markers */ + + private function detectGenericTelevision($ua) + { + if (preg_match('/CE-HTML/u', $ua)) { + $this->data->device->type = Constants\DeviceType::TELEVISION; + } + + if (preg_match('/SmartTvA\//u', $ua)) { + $this->data->device->type = Constants\DeviceType::TELEVISION; + } + + if (preg_match('/NETRANGEMMH/u', $ua)) { + $this->data->device->type = Constants\DeviceType::TELEVISION; + } + } + + + /* Toshiba */ + + private function detectToshibaTelevision($ua) + { + if (preg_match('/Toshiba_?TP\//u', $ua) || preg_match('/TSBNetTV ?\//u', $ua)) { + $this->data->device->manufacturer = 'Toshiba'; + $this->data->device->series = 'Smart TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + if (preg_match('/TOSHIBA;[^;]+;([A-Z]+[0-9]+[A-Z]+);/u', $ua, $match)) { + $this->data->device->manufacturer = 'Toshiba'; + $this->data->device->model = $match[1]; + $this->data->device->series = 'Smart TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + } + + + /* LG */ + + private function detectLgTelevision($ua) + { + if (preg_match('/(LGSmartTV|LG smartTV)/u', $ua)) { + $this->data->device->manufacturer = 'LG'; + $this->data->device->series = 'Smart TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + if (preg_match('/UPLUSTVBROWSER/u', $ua)) { + $this->data->device->manufacturer = 'LG'; + $this->data->device->series = 'U+ tv'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + + /* NetCast */ + + if (preg_match('/LG NetCast\.(TV|Media)-([0-9]*)/u', $ua, $match)) { + $this->data->device->manufacturer = 'LG'; + $this->data->device->series = 'NetCast ' . $match[1] . ' ' . $match[2]; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/LG Browser\/[0-9.]+\([^;]+; LGE; ([^;]+);/u', $ua, $match)) { + if (substr($match[1], 0, 6) != 'GLOBAL' && substr($match[1], 0, 7) != 'NETCAST') { + $this->data->device->model = $match[1]; + } + } + } + + /* NetCast */ + + if ($ua == "Mozilla/5.0 (X11; Linux; ko-KR) AppleWebKit/534.26+ (KHTML, like Gecko) Version/5.0 Safari/534.26+" || + $ua == "Mozilla/5.0 (DirectFB; Linux; ko-KR) AppleWebKit/534.26 (KHTML, like Gecko) Version/5.0 Safari/534.26" || + $ua == "Mozilla/5.0 (DirectFB; Linux; ko-KR) AppleWebKit/534.26+ (KHTML, like Gecko) Version/5.0 Safari/534.26+") { + $this->data->device->manufacturer = 'LG'; + $this->data->device->series = 'NetCast TV 2012'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + + /* NetCast or WebOS */ + + if (preg_match('/NetCast/u', $ua) && preg_match('/SmartTV\/([0-9])/u', $ua, $match)) { + $this->data->device->manufacturer = 'LG'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (intval($match[1]) < 5) { + $this->data->device->series = 'NetCast TV'; + } else { + $this->data->device->series = 'webOS TV'; + + $this->data->os->reset([ + 'name' => 'webOS', + 'hidden' => true + ]); + } + } + + /* WebOS */ + + if (preg_match('/Web[O0]S/u', $ua) && preg_match('/Large Screen/u', $ua)) { + $this->data->device->manufacturer = 'LG'; + $this->data->device->series = 'webOS TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + $this->data->os->reset([ + 'name' => 'webOS', + 'hidden' => true + ]); + } + + if (preg_match('/Web[O0]S; Linux\/SmartTV/u', $ua)) { + $this->data->device->manufacturer = 'LG'; + $this->data->device->series = 'webOS TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + $this->data->os->reset([ + 'name' => 'webOS', + 'hidden' => true + ]); + } + + if (preg_match('/webOS\.TV-([0-9]+)/u', $ua, $match)) { + $this->data->device->manufacturer = 'LG'; + $this->data->device->series = 'webOS TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/LG Browser\/[0-9.]+\(LGE; ([^;]+);/u', $ua, $match)) { + if (strtoupper(substr($match[1], 0, 5)) != 'WEBOS') { + $this->data->device->model = $match[1]; + } + } + + $this->data->os->reset([ + 'name' => 'webOS', + 'hidden' => true + ]); + } + + if (preg_match('/PBRM\//u', $ua)) { + $this->data->browser->name = "Pro:Centric"; + $this->data->browser->version = null; + + $this->data->device->manufacturer = 'LG'; + $this->data->device->series = 'webOS TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/PBRM\/[0-9.]+ \( ;LGE ;([^;]+) ;/u', $ua, $match)) { + if (strtoupper(substr($match[1], 0, 5)) != 'WEBOS') { + $this->data->device->model = $match[1]; + } + } + + $this->data->os->reset([ + 'name' => 'webOS', + 'hidden' => true + ]); + } + } + + + /* Philips */ + + private function detectPhilipsTelevision($ua) + { + if (preg_match('/NETTV\//u', $ua)) { + $this->data->device->manufacturer = 'Philips'; + $this->data->device->series = 'Net TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/AquosTV/u', $ua)) { + $this->data->device->manufacturer = 'Sharp'; + $this->data->device->series = 'Aquos TV'; + } + + if (preg_match('/BANGOLUFSEN/u', $ua)) { + $this->data->device->manufacturer = 'Bang & Olufsen'; + $this->data->device->series = 'Smart TV'; + } + + if (preg_match('/PHILIPS-AVM/u', $ua)) { + $this->data->device->series = 'Blu-ray Player'; + } + } + + if (preg_match('/PHILIPS_OLS_20[0-9]+/u', $ua)) { + $this->data->device->manufacturer = 'Philips'; + $this->data->device->series = 'Net TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + } + + + /* Sony */ + + private function detectSonyTelevision($ua) + { + if (preg_match('/SonyCEBrowser/u', $ua)) { + $this->data->device->manufacturer = 'Sony'; + $this->data->device->series = 'Smart TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/SonyCEBrowser\/[0-9.]+ \((?:BDPlayer; |DTV[0-9]+\/)?([^;_]+)/u', $ua, $match)) { + if ($match[1] != 'ModelName') { + $this->data->device->model = $match[1]; + } + } + } + + if (preg_match('/SonyDTV/u', $ua)) { + $this->data->device->manufacturer = 'Sony'; + $this->data->device->series = 'Smart TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/(KDL-?[0-9]+[A-Z]+[0-9]+)/u', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->generic = false; + } + + if (preg_match('/(XBR-?[0-9]+[A-Z]+[0-9]+)/u', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->generic = false; + } + } + + if (preg_match('/SonyBDP/u', $ua)) { + $this->data->device->manufacturer = 'Sony'; + $this->data->device->series = "Blu-ray Player"; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + if (preg_match('/SmartBD/u', $ua) && preg_match('/(BDP-[A-Z][0-9]+)/u', $ua, $match)) { + $this->data->device->manufacturer = 'Sony'; + $this->data->device->model = $match[1]; + $this->data->device->series = 'Blu-ray Player'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + if (preg_match('/\s+([0-9]+)BRAVIA/u', $ua, $match)) { + $this->data->device->manufacturer = 'Sony'; + $this->data->device->model = 'Bravia'; + $this->data->device->series = 'Smart TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + } + + + /* Samsung */ + + private function detectSamsungTelevision($ua) + { + if (preg_match('/(SMART-TV|SmartHub)/u', $ua)) { + $this->data->device->manufacturer = 'Samsung'; + $this->data->device->series = 'Smart TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/Linux\/SmartTV\+([0-9]*)/u', $ua, $match)) { + $this->data->device->series = 'Smart TV ' . $match[1]; + } elseif (preg_match('/Maple([0-9]*)/u', $ua, $match)) { + $this->data->device->series = 'Smart TV ' . $match[1]; + } + } + + if (preg_match('/Maple_?([0-9][0-9][0-9][0-9])/u', $ua, $match)) { + $this->data->device->manufacturer = 'Samsung'; + $this->data->device->series = 'Smart TV ' . $match[1]; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/Linux\/(?:SmartTV)?\+([0-9]{4,4})/u', $ua, $match)) { + $this->data->device->series = 'Smart TV ' . $match[1]; + } + } + + if (preg_match('/Maple ([0-9]+\.[0-9]+)\.[0-9]+/u', $ua, $match)) { + $this->data->device->manufacturer = 'Samsung'; + $this->data->device->series = 'Smart TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + switch ($match[1]) { + case '5.0': + $this->data->device->series = 'Smart TV 2009'; + break; + case '5.1': + $this->data->device->series = 'Smart TV 2010'; + break; + case '6.0': + $this->data->device->series = 'Smart TV 2011'; + break; + } + } + + if (preg_match('/Model\/Samsung-(BD-[A-Z][0-9]+)/u', $ua, $match)) { + $this->data->device->manufacturer = 'Samsung'; + $this->data->device->model = $match[1]; + $this->data->device->series = 'Blu-ray Player'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + if (preg_match('/olleh tv;/u', $ua)) { + $this->data->device->manufacturer = 'Samsung'; + $this->data->device->model = null; + $this->data->device->series = null; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/(SMT-[A-Z0-9]+)/u', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->identifier = $match[1]; + $this->data->device->generic = false; + } + + if ($this->data->device->model == "SMT-E5015") { + $this->data->device->model = 'Olleh SkyLife Smart Settopbox'; + } + } + } + + + /* Sanyo */ + + private function detectSanyoTelevision($ua) + { + if (preg_match('/Aplix_SANYO_browser/u', $ua)) { + $this->data->device->manufacturer = 'Sanyo'; + $this->data->device->series = 'Internet TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + } + + + /* Sharp */ + + private function detectSharpTelevision($ua) + { + if (preg_match('/(AQUOSBrowser|AQUOS-(AS|DMP))/u', $ua)) { + $this->data->device->manufacturer = 'Sharp'; + $this->data->device->series = 'Aquos TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/LC\-([0-9]+[A-Z]+[0-9]+[A-Z]+)/u', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->generic = false; + } + } + } + + + /* Panasonic */ + + private function detectPanasonicTelevision($ua) + { + if (preg_match('/Viera/u', $ua)) { + $this->data->device->manufacturer = 'Panasonic'; + $this->data->device->series = 'Viera'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/Panasonic\.tv\.(?:mid\.)?([0-9]+)/u', $ua, $match)) { + $this->data->device->series = 'Viera ' . $match[1]; + } + + if (preg_match('/\(Panasonic, ([0-9]+),/u', $ua, $match)) { + $this->data->device->series = 'Viera ' . $match[1]; + } + + if (preg_match('/Viera\; rv\:34/u', $ua, $match)) { + $this->data->device->series = 'Viera 2015'; + } + } + + if (preg_match('/; Diga;/u', $ua)) { + $this->data->device->manufacturer = 'Panasonic'; + $this->data->device->series = 'Diga'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + } + + + /* Various set top boxes */ + + private function detectSettopboxes($ua) + { + if (!preg_match('/(lacleTV|LOEWE|KreaTV|ADB|Mstar|TechniSat|Technicolor|Highway|CiscoBrowser|Sunniwell|Enseo|LocationFreeTV|Winbox|DuneHD|Roku|AppleTV|Apple TV|WebTV|OpenTV|MediStream)/ui', $ua)) { + return; + } + + /* Orange La clé TV */ + + if (preg_match('/lacleTV\//u', $ua)) { + $this->data->device->manufacturer = 'Orange'; + $this->data->device->series = 'La clé TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + /* Loewe */ + + if (preg_match('/LOEWE\/TV/u', $ua)) { + $this->data->device->manufacturer = 'Loewe'; + $this->data->device->series = 'Smart TV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/((?:SL|ID)[0-9]+)/u', $ua, $match)) { + $this->data->device->model = $match[1]; + } + } + + /* KreaTV */ + + if (preg_match('/KreaTV/u', $ua)) { + $this->data->os->reset(); + + $this->data->device->series = 'KreaTV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + + if (preg_match('/Motorola/u', $ua)) { + $this->data->device->manufacturer = 'Motorola'; + } + } + + /* ADB */ + + if (preg_match('/\(ADB; ([^\)]+)\)/u', $ua, $match)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'ADB'; + $this->data->device->model = ($match[1] != 'Unknown' ? str_replace('ADB', '', $match[1]) . ' ' : '') . 'IPTV receiver'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + + /* MStar */ + + if (preg_match('/Mstar;/u', $ua)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'MStar'; + $this->data->device->model = 'PVR'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + /* TechniSat */ + + if (preg_match('/TechniSat ([^;]+);/u', $ua, $match)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'TechniSat'; + $this->data->device->model = $match[1]; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + + /* Technicolor */ + + if (preg_match('/Technicolor_([^;]+);/u', $ua, $match)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'Technicolor'; + $this->data->device->model = $match[1]; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + + /* Cisco MediaHighway */ + + if (preg_match('/(Media-Highway Evolution|CiscoBrowser\/CI)/u', $ua, $match)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'Cisco'; + $this->data->device->model = 'MediaHighway'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + + /* Sunniwell */ + + if (preg_match('/Sunniwell/u', $ua) && preg_match('/Resolution/u', $ua)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'Sunniwell'; + $this->data->device->series = 'STB'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + + /* Enseo */ + + if (preg_match('/Enseo\/([A-Z0-9]+)/u', $ua, $match)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'Enseo'; + $this->data->device->model = $match[1]; + $this->data->device->series = 'STB'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + + /* Sony LocationFreeTV */ + + if (preg_match('/LocationFreeTV\/([A-Z0-9\-]+)/u', $ua, $match)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'Sony'; + $this->data->device->model = 'LocationFreeTV ' . $match[1]; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + + /* Winbox Evo2 */ + + if (preg_match('/Winbox Evo2/u', $ua)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'Winbox'; + $this->data->device->model = 'Evo2'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + + /* DuneHD */ + + if (preg_match('/DuneHD\//u', $ua)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'Dune HD'; + $this->data->device->model = ''; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/DuneHD\/[0-9.]+ \(([^;]+);/u', $ua, $match)) { + $this->data->device->model = $match[1]; + } + } + + /* Roku */ + + if (preg_match('/^Roku\/DVP-(?:[0-9A-Z]+-)?[0-9\.]+ \(([0-9]{2,2})/u', $ua, $match)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'Roku'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + + switch ($match[1]) { + case '02': + $this->data->device->model = '2 XS'; + $this->data->device->generic = false; + break; + case '04': + $this->data->device->model = '3'; + $this->data->device->generic = false; + break; + case '07': + $this->data->device->model = 'LT'; + $this->data->device->generic = false; + break; + case '09': + $this->data->device->model = 'Streaming Stick'; + $this->data->device->generic = false; + break; + } + + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + if (preg_match('/\(Roku/u', $ua)) { + $this->data->device->manufacturer = 'Roku'; + $this->data->device->model = ''; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + /* AppleTV */ + + if (preg_match('/Apple ?TV/u', $ua)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'Apple'; + $this->data->device->model = 'AppleTV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + + /* WebTV */ + + if (preg_match('/WebTV\/[0-9.]/u', $ua)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'Microsoft'; + $this->data->device->model = 'WebTV'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + + /* MediStream */ + + if (preg_match('/MediStream/u', $ua)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'Bewatec'; + $this->data->device->model = 'MediStream'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + } + + + /* Generic model information */ + + private function detectGenericTelevisionModels($ua) + { + if (preg_match('/\(([^,\(]+),\s*([^,\(]+),\s*(?:[Ww]ired|[Ww]ireless)\)/u', $ua, $match)) { + $vendorName = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[1]); + $modelName = trim($match[2]); + + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::PATTERN; + + if (!isset($this->data->device->series)) { + $this->data->device->series = 'Smart TV'; + } + + switch ($vendorName) { + case 'ARRIS': + $this->data->device->manufacturer = 'Arris'; + $this->data->device->model = $modelName; + break; + + case 'LG': + $this->data->device->manufacturer = 'LG'; + + switch ($modelName) { + case 'WEBOS1': + case 'webOS.TV': + $this->data->device->series = 'webOS TV'; + break; + case 'NETCAST4': + case 'NetCast4.0': + case 'GLOBAL-PLAT4': + $this->data->device->series = 'NetCast TV 2013'; + break; + default: + $this->data->device->model = $modelName; + break; + } + + break; + + case 'Google Fiber': + $this->data->device->manufacturer = $vendorName; + $this->data->device->model = 'TV Box'; + break; + + case 'Sagemcom': + $this->data->device->manufacturer = $vendorName; + $this->data->device->series = 'Settopbox'; + + if (preg_match('/^([A-Z]+[0-9]+)/ui', $modelName, $match)) { + $this->data->device->model = $match[1]; + unset($this->data->device->series); + } + + break; + + case 'TiVo': + $this->data->device->manufacturer = 'TiVo'; + $this->data->device->series = 'DVR'; + break; + + default: + $this->data->device->manufacturer = $vendorName; + + if (!in_array($modelName, [ 'dvb' ])) { + $this->data->device->model = $modelName; + } + + break; + } + } + } + + + /* InettvBrowser model information */ + + private function detectGenericInettvBrowser($ua) + { + if (preg_match('/(?:DTVNetBrowser|InettvBrowser|Hybridcast)\/[0-9\.]+[A-Z]? ?\(/u', $ua, $match)) { + $this->data->device->type = Constants\DeviceType::TELEVISION; + + $vendorName = null; + $modelName = null; + $found = false; + + if (preg_match('/(?:DTVNetBrowser|InettvBrowser)\/[0-9\.]+[A-Z]? ?\(([^;]*)\s*;\s*([^;]*)\s*;/u', $ua, $match)) { + $vendorName = trim($match[1]); + $modelName = trim($match[2]); + $found = true; + } + + if (preg_match('/Hybridcast\/[0-9\.]+ ?\([^;]*;([^;]*)\s*;\s*([^;]*)\s*;/u', $ua, $match)) { + $vendorName = trim($match[1]); + $modelName = trim($match[2]); + $found = true; + } + + if ($found) { + $this->data->device->identified |= Constants\Id::PATTERN; + + $data = [ + '0003D5' => 'Advanced Communications', + '000024' => 'Connect AS', + '000087' => 'Hitachi', + '00A0B0' => 'I-O Data Device', + '00E091' => 'LG', + '0050C9' => 'Maspro Denkoh', + '002692' => 'Mitsubishi', + '38E08E' => 'Mitsubishi', + '008045' => 'Panasonic', + '00E036' => 'Pioneer', + '00E064' => 'Samsung', + '08001F' => 'Sharp', + '00014A' => 'Sony', + '000039' => 'Toshiba' + ]; + + if (isset($data[$vendorName])) { + $this->data->device->manufacturer = $data[$vendorName]; + + if ($this->data->device->manufacturer == 'LG') { + switch ($modelName) { + case 'LGE2D2012M': + $this->data->device->series = 'NetCast TV 2012'; + break; + case 'LGE3D2012M': + $this->data->device->series = 'NetCast TV 2012'; + break; + case 'LGwebOSTV': + $this->data->device->series = 'webOS TV'; + break; + } + } + + if ($this->data->device->manufacturer == 'Panasonic') { + if (substr($modelName, 0, 6) != 'PANATV') { + $this->data->device->model = $modelName; + } + } + } + + if (!isset($this->data->device->series)) { + $this->data->device->series = 'Smart TV'; + } + } + } + } + + + /* HbbTV model information */ + + private function detectGenericHbbTV($ua) + { + if (preg_match('/((HbbTV|OHTV|SmartTV)\/[0-9\.]+|CE-HTML)/iu', $ua)) { + $this->data->device->type = Constants\DeviceType::TELEVISION; + + $vendorName = null; + $modelName = null; + $found = false; + + if (preg_match('/HbbTV\/[0-9\.]+;CE-HTML\/[0-9\.]+;([A-Z]+)\s([^;]+);/iu', $ua, $match)) { + $vendorName = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[1]); + $modelName = trim($match[2]); + $found = true; + } + + if (preg_match('/UID\([a-f0-9:]+\/([^\/]+)\/([^\/]+)\/[0-9a-z\.]+\)\+CE-HTML/iu', $ua, $match)) { + $vendorName = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[2]); + $modelName = trim($match[1]); + $found = true; + } + + if (preg_match('/(?:HbbTV|OHTV)\/[0-9\.]+ \(([^;]*);\s*([^;]*)\s*;\s*([^;]*)\s*;/u', $ua, $match)) { + if (trim($match[1]) == "" || in_array(strtok($match[1], ' '), [ 'PVR', 'DL' ]) || strpos($match[1], '+') !== false) { + $vendorName = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[2]); + $modelName = trim($match[3]); + } else { + $vendorName = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[1]); + $modelName = trim($match[2]); + } + + $found = true; + } + + if (preg_match('/(?:^|\s)SmartTV\/[0-9\.]+ \(([^;]*)\s*;\s*([^;]*)\s*;/u', $ua, $match)) { + $vendorName = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[1]); + $modelName = trim($match[2]); + $found = true; + } + + if (in_array($vendorName, [ 'Access', 'ANT', 'EMSYS', 'Em-Sys', 'Opera', 'Opera Software', 'Seraphic', 'Vendor' ])) { + $found = false; + } + + if ($found) { + $this->data->device->identified |= Constants\Id::PATTERN; + + switch ($vendorName) { + case 'LG': + $this->data->device->manufacturer = 'LG'; + + switch ($modelName) { + case 'NetCast 3.0': + case 'GLOBAL_PLAT3': + $this->data->device->series = 'NetCast TV 2012'; + break; + case 'NetCast 4.0': + case 'GLOBAL-PLAT4': + $this->data->device->series = 'NetCast TV 2013'; + break; + case 'WEBOS3': + $this->data->device->series = 'webOS TV'; + break; + } + + break; + + case 'Samsung': + $this->data->device->manufacturer = 'Samsung'; + + switch ($modelName) { + case 'SmartTV2012': + $this->data->device->series = 'Smart TV 2012'; + break; + case 'SmartTV2013': + $this->data->device->series = 'Smart TV 2013'; + break; + case 'SmartTV2014': + $this->data->device->series = 'Smart TV 2014'; + break; + case 'SmartTV2015': + $this->data->device->series = 'Smart TV 2015'; + break; + case 'OTV-SMT-E5015': + $this->data->device->model = 'Olleh SkyLife Smart Settopbox'; + unset($this->data->device->series); + break; + } + + break; + + case 'Panasonic': + $this->data->device->manufacturer = 'Panasonic'; + + switch ($modelName) { + case 'VIERA 2011': + $this->data->device->series = 'Viera 2011'; + break; + case 'VIERA 2012': + $this->data->device->series = 'Viera 2012'; + break; + case 'VIERA 2013': + $this->data->device->series = 'Viera 2013'; + break; + case 'VIERA 2014': + $this->data->device->series = 'Viera 2014'; + break; + case 'VIERA 2015': + case 'Viera2015.mid': + $this->data->device->series = 'Viera 2015'; + break; + default: + $this->data->device->model = $modelName; + break; + } + + break; + + case 'TV2N': + $this->data->device->manufacturer = 'TV2N'; + + switch ($modelName) { + case 'videoweb': + $this->data->device->model = 'Videoweb'; + break; + } + + break; + + default: + if ($vendorName != '' && !in_array($vendorName, [ 'OEM', 'vendorName' ])) { + $this->data->device->manufacturer = $vendorName; + } + + if ($modelName != '' && !in_array($modelName, [ 'dvb', 'modelName', 'undefined-model-name', 'N/A' ])) { + $this->data->device->model = $modelName; + } + + break; + } + + switch ($modelName) { + case 'hdr1000s': + $this->data->device->manufacturer = 'Humax'; + $this->data->device->model = 'HDR-1000S'; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + break; + + case 'hdr4000t': + $this->data->device->manufacturer = 'Humax'; + $this->data->device->model = 'HDR-4000T'; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + break; + + case 'hgs1000s': + $this->data->device->manufacturer = 'Humax'; + $this->data->device->model = 'HGS-1000S'; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + break; + + case 'hms1000s': + case 'hms1000sph2': + $this->data->device->manufacturer = 'Humax'; + $this->data->device->model = 'HMS-1000S'; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + break; + } + } + } + + if (preg_match('/HbbTV\/[0-9.]+;CE-HTML\/[0-9.]+;([^\s;]+)\s[^\s;]+;/u', $ua, $match)) { + $this->data->device->manufacturer = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[1]); + if (!isset($this->data->device->series)) { + $this->data->device->series = 'Smart TV'; + } + } + + if (preg_match('/HbbTV\/[0-9.]+;CE-HTML\/[0-9.]+;Vendor\/([^\s;]+);/u', $ua, $match)) { + $this->data->device->manufacturer = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[1]); + if (!isset($this->data->device->series)) { + $this->data->device->series = 'Smart TV'; + } + } + } + + + /* Try to reformat some of the detected generic models */ + + private function improveModelsOnDeviceTypeTelevision() + { + if ($this->data->device->type != Constants\DeviceType::TELEVISION) { + return; + } + + + if (isset($this->data->device->model) && isset($this->data->device->manufacturer)) { + + if ($this->data->device->manufacturer == 'Dune HD') { + if (preg_match('/tv([0-9]+[a-z]?)/u', $this->data->device->model, $match)) { + $this->data->device->model = 'TV-' . strtoupper($match[1]); + } + + if ($this->data->device->model == 'connect') { + $this->data->device->model = 'Connect'; + } + } + + if ($this->data->device->manufacturer == 'Humax') { + $this->data->device->series = "Digital Receiver"; + } + + if ($this->data->device->manufacturer == 'Inverto') { + if (preg_match('/IDL[ -]?([0-9]+.*)/u', $this->data->device->model, $match)) { + $this->data->device->model = 'IDL ' . $match[1]; + } + + if (preg_match('/MBN([0-9]+)/u', $this->data->device->model, $match)) { + $this->data->device->model = 'MBN ' . $match[1]; + } + } + + if ($this->data->device->manufacturer == 'HyperPanel') { + $this->data->device->model = strtok(strtoupper($this->data->device->model), ' '); + } + + if ($this->data->device->manufacturer == 'LG') { + if (preg_match('/(?:ATSC|DVB)-(.*)/u', $this->data->device->model, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->generic = false; + } + + if (preg_match('/[0-9][0-9]([A-Z][A-Z][0-9][0-9][0-9][0-9A-Z])/u', $this->data->device->model, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->generic = false; + } + + if (preg_match('/Media\/(.*)/u', $this->data->device->model, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->generic = false; + } + } + + if ($this->data->device->manufacturer == 'Loewe') { + $this->data->device->series = 'Smart TV'; + + if (preg_match('/((?:ID|SL)[0-9]+)/u', $this->data->device->model, $match)) { + $this->data->device->model = 'Connect '. $match[1]; + $this->data->device->generic = false; + } + } + + if ($this->data->device->manufacturer == 'Philips') { + if (preg_match('/[0-9][0-9]([A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9])/u', $this->data->device->model, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->generic = false; + } + + if (preg_match('/(MT[0-9]+)/u', $this->data->device->model, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->series = "Digital Receiver"; + $this->data->device->generic = false; + } + + if (preg_match('/(BDP[0-9]+)/u', $this->data->device->model, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->series = "Blu-ray Player"; + $this->data->device->generic = false; + } + } + + if ($this->data->device->manufacturer == 'Toshiba') { + if (preg_match('/DTV_(.*)/u', $this->data->device->model, $match)) { + $this->data->device->model = 'Regza ' . $match[1]; + $this->data->device->generic = false; + } + + if (preg_match('/[0-9][0-9]([A-Z][A-Z][0-9][0-9][0-9])/u', $this->data->device->model, $match)) { + $this->data->device->model = 'Regza ' . $match[1]; + $this->data->device->generic = false; + } + + if (preg_match('/[0-9][0-9](ZL[0-9])/u', $this->data->device->model, $match)) { + $this->data->device->model = $match[1] . ' Cevo'; + $this->data->device->generic = false; + } + + if (preg_match('/(BDX[0-9]+)/u', $this->data->device->model, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->series = "Blu-ray Player"; + $this->data->device->generic = false; + } + } + + if ($this->data->device->manufacturer == 'Selevision') { + $this->data->device->model = str_replace('Selevision ', '', $this->data->device->model); + } + + if ($this->data->device->manufacturer == 'Sharp') { + if (preg_match('/[0-9][0-9]([A-Z]+[0-9]+[A-Z]+)/u', $this->data->device->model, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->generic = false; + } + } + + if ($this->data->device->manufacturer == 'Sony') { + if (preg_match('/(BDP[0-9]+G)/u', $this->data->device->model, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->series = "Blu-ray Player"; + $this->data->device->generic = false; + } + + if (preg_match('/KDL?-?[0-9]*([A-Z]+[0-9]+)[A-Z]*/u', $this->data->device->model, $match)) { + $this->data->device->model = 'Bravia ' . $match[1]; + $this->data->device->series = 'Smart TV'; + $this->data->device->generic = false; + } + } + + if ($this->data->device->manufacturer == 'Pioneer') { + if (preg_match('/(BDP-[0-9]+)/u', $this->data->device->model, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->series = "Blu-ray Player"; + $this->data->device->generic = false; + } + } + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Engine.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Engine.php new file mode 100644 index 00000000..aeb5e92f --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Engine.php @@ -0,0 +1,170 @@ +detectWebkit($ua); + $this->detectKHTML($ua); + $this->detectGecko($ua); + $this->detectServo($ua); + $this->detectGoanna($ua); + $this->detectPresto($ua); + $this->detectTrident($ua); + $this->detectEdgeHTMLUseragent($ua); + + return $this; + } + + + + + /* WebKit */ + + private function detectWebkit($ua) + { + if (preg_match('/WebKit\/([0-9.]*)/iu', $ua, $match)) { + $this->data->engine->name = 'Webkit'; + $this->data->engine->version = new Version([ 'value' => $match[1] ]); + + if (preg_match('/(?:Chrome|Chromium)\/([0-9]*)/u', $ua, $match)) { + if (intval($match[1]) >= 27) { + $this->data->engine->reset([ 'name' => 'Blink' ]); + } + } + } + + if (preg_match('/Browser\/AppleWebKit\/?([0-9.]*)/iu', $ua, $match)) { + $this->data->engine->name = 'Webkit'; + $this->data->engine->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/AppleWebkit\(like Gecko\)/iu', $ua, $match)) { + $this->data->engine->name = 'Webkit'; + } + } + + + /* KHTML */ + + private function detectKHTML($ua) + { + if (preg_match('/KHTML\/([0-9.]*)/u', $ua, $match)) { + $this->data->engine->name = 'KHTML'; + $this->data->engine->version = new Version([ 'value' => $match[1] ]); + } + } + + + /* Gecko */ + + private function detectGecko($ua) + { + if (preg_match('/Gecko/u', $ua) && !preg_match('/like Gecko/iu', $ua)) { + $this->data->engine->name = 'Gecko'; + + if (preg_match('/; rv:([^\);]+)[\);]/u', $ua, $match)) { + $this->data->engine->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + } + } + + + /* Servo */ + + private function detectServo($ua) + { + if (preg_match('/Servo\/([0-9.]*)/u', $ua, $match)) { + $this->data->engine->name = 'Servo'; + $this->data->engine->version = new Version([ 'value' => $match[1] ]); + } + } + + + /* Goanna */ + + private function detectGoanna($ua) + { + if (preg_match('/Goanna/u', $ua)) { + $this->data->engine->name = 'Goanna'; + + if (preg_match('/Goanna\/([0-9]\.[0-9.]+)/u', $ua, $match)) { + $this->data->engine->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/Goanna\/20[0-9]{6,6}/u', $ua) && preg_match('/; rv:([^\);]+)[\);]/u', $ua, $match)) { + $this->data->engine->version = new Version([ 'value' => $match[1] ]); + } + } + } + + + /* Presto */ + + private function detectPresto($ua) + { + if (preg_match('/Presto\/([0-9.]*)/u', $ua, $match)) { + $this->data->engine->name = 'Presto'; + $this->data->engine->version = new Version([ 'value' => $match[1] ]); + } + } + + + /* Trident */ + + private function detectTrident($ua) + { + if (preg_match('/Trident\/([0-9.]*)/u', $ua, $match)) { + $this->data->engine->name = 'Trident'; + $this->data->engine->version = new Version([ 'value' => $match[1] ]); + + + if (isset($this->data->browser->version) && isset($this->data->browser->name) && $this->data->browser->name == 'Internet Explorer') { + if ($this->data->engine->version->toNumber() >= 7 && $this->data->browser->version->toFloat() < 11) { + $this->data->browser->version = new Version([ 'value' => '11.0' ]); + $this->data->browser->mode = 'compat'; + } + + if ($this->data->engine->version->toNumber() == 6 && $this->data->browser->version->toFloat() < 10) { + $this->data->browser->version = new Version([ 'value' => '10.0' ]); + $this->data->browser->mode = 'compat'; + } + + if ($this->data->engine->version->toNumber() == 5 && $this->data->browser->version->toFloat() < 9) { + $this->data->browser->version = new Version([ 'value' => '9.0' ]); + $this->data->browser->mode = 'compat'; + } + + if ($this->data->engine->version->toNumber() == 4 && $this->data->browser->version->toFloat() < 8) { + $this->data->browser->version = new Version([ 'value' => '8.0' ]); + $this->data->browser->mode = 'compat'; + } + } + + if (isset($this->data->os->version) && isset($this->data->os->name) && $this->data->os->name == 'Windows Phone' && isset($this->data->browser->name) && $this->data->browser->name == 'Mobile Internet Explorer') { + if ($this->data->engine->version->toNumber() == 7 && $this->data->os->version->toFloat() < 8.1) { + $this->data->os->version = new Version([ 'value' => '8.1', 'details' => 2 ]); + } + + if ($this->data->engine->version->toNumber() == 5 && $this->data->os->version->toFloat() < 7.5) { + $this->data->os->version = new Version([ 'value' => '7.5', 'details' => 2 ]); + } + } + } + } + + + /* EdgeHTML */ + + private function detectEdgeHTMLUseragent($ua) + { + if (preg_match('/Edge\/([0-9.]*)/u', $ua, $match)) { + $this->data->engine->name = 'EdgeHTML'; + $this->data->engine->version = new Version([ 'value' => $match[1], 'hidden' => true ]); + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Os.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Os.php new file mode 100644 index 00000000..dc112ff4 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Os.php @@ -0,0 +1,2387 @@ +detectUnix($ua); + $this->detectLinux($ua); + $this->detectBsd($ua); + $this->detectDarwin($ua); + $this->detectWindows($ua); + $this->detectAndroid($ua); + $this->detectChromeos($ua); + $this->detectBlackberry($ua); + $this->detectWebos($ua); + $this->detectSymbian($ua); + $this->detectNokiaOs($ua); + $this->detectTizen($ua); + $this->detectSailfish($ua); + $this->detectBada($ua); + $this->detectBrew($ua); + $this->detectQtopia($ua); + $this->detectOpenTV($ua); + $this->detectRemainingOperatingSystems($ua); + + return $this; + } + + + private function &refineOperatingSystem($ua) + { + $this->determineAndroidVersionBasedOnBuild($ua); + + return $this; + } + + + + + + + + /* Darwin */ + + private function detectDarwin($ua) + { + /* iOS */ + + if (preg_match('/\(iOS;/u', $ua)) { + $this->data->os->name = 'iOS'; + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + if (preg_match('/(iPhone|iPad|iPod)/u', $ua) && !preg_match('/like iPhone/u', $ua)) { + $this->data->os->name = 'iOS'; + + if (preg_match('/CPU like Mac OS X/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => '1.0' ]); + } + + if (preg_match('/OS (.*) like Mac OS X/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]); + } + + if (preg_match('/iPhone OS ([0-9._]*);/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]); + } + + if (preg_match('/iPhone Simulator;/u', $ua)) { + $this->data->device->type = Constants\DeviceType::EMULATOR; + } else { + if (preg_match('/(iPad|iPhone( 3GS| 3G| 4S| 4| 5)?|iPod( touch)?)/u', $ua, $match)) { + $device = Data\DeviceModels::identify('ios', $match[0]); + + if ($device) { + $this->data->device = $device; + } + } + + if (preg_match('/(iPad|iPhone|iPod)[0-9],[0-9]/u', $ua, $match)) { + $device = Data\DeviceModels::identify('ios', $match[0]); + + if ($device) { + $this->data->device = $device; + } + } + } + } /* OS X */ + + elseif (preg_match('/Mac OS X/u', $ua) || preg_match('/;os=Mac/u', $ua)) { + $this->data->os->name = 'OS X'; + + if (preg_match('/Mac OS X (10[0-9\._]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]), 'details' => 2 ]); + } + + if (preg_match('/;os=Mac (10[0-9[\.,]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => str_replace(',', '.', $match[1]), 'details' => 2 ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + /* Darwin */ + + if (preg_match('/Darwin(?:\/([0-9]+).[0-9]+)?/u', $ua, $match)) { + if (preg_match('/\(X11;/u', $ua)) { + + /* Darwin */ + $this->data->os->name = 'Darwin'; + $this->data->device->type = Constants\DeviceType::DESKTOP; + } elseif (preg_match('/\((?:x86_64|i386|Power%20Macintosh)\)/u', $ua)) { + + /* OS X */ + $this->data->os->name = 'OS X'; + $this->data->device->type = Constants\DeviceType::DESKTOP; + + if (isset($match[1])) { + $version = Data\Darwin::getVersion('osx', $match[1]); + if ($version) { + $this->data->os->version = new Version($version); + } + + if (preg_match('/CFNetwork\/([0-9\.]+)/u', $ua, $match)) { + $version = Data\CFNetwork::getVersion('osx', $match[1]); + if ($version) { + $this->data->os->version = new Version($version); + } + } + } + } else { + + /* iOS */ + $this->data->os->name = 'iOS'; + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (isset($match[1])) { + $version = Data\Darwin::getVersion('ios', $match[1]); + if ($version) { + $this->data->os->version = new Version($version); + } + + if (preg_match('/CFNetwork\/([0-9\.]+)/u', $ua, $match)) { + $version = Data\CFNetwork::getVersion('ios', $match[1]); + if ($version) { + $this->data->os->version = new Version($version); + } + } + } + } + } + + /* Mac OS */ + + if (preg_match('/\(Macintosh;/u', $ua) && !preg_match('/OS X/u', $ua)) { + $this->data->os->name = 'Mac OS'; + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + } + + + /* Android */ + + private function detectAndroid($ua) + { + /* Android */ + + if (preg_match('/Andr[0o]id/ui', $ua)) { + $falsepositive = false; + + /* Prevent the Mobile IE 11 Franken-UA from matching Android */ + if (preg_match('/IEMobile\/1/u', $ua)) { + $falsepositive = true; + } + if (preg_match('/Windows Phone 10/u', $ua)) { + $falsepositive = true; + } + + /* Prevent from OSes that claim to be 'like' Android from matching */ + if (preg_match('/like Android/u', $ua)) { + $falsepositive = true; + } + if (preg_match('/COS like Android/u', $ua)) { + $falsepositive = false; + } + + if (!$falsepositive) { + $this->data->os->name = 'Android'; + $this->data->os->version = new Version(); + + if (preg_match('/Andr[0o]id(?: )?(?:AllPhone_|CyanogenMod_|OUYA )?(?:\/)?v?([0-9.]+)/ui', str_replace('-update', ',', $ua), $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + + if (preg_match('/Android [0-9][0-9].[0-9][0-9].[0-9][0-9]\(([^)]+)\);/u', str_replace('-update', ',', $ua), $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + + if (preg_match('/Android Eclair/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '2.0', 'details' => 3 ]); + } + + if (preg_match('/Android KeyLimePie/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '4.4', 'details' => 3 ]); + } + + if (preg_match('/Android (?:L|4.4.99);/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '5', 'details' => 3, 'alias' => 'L' ]); + } + + if (preg_match('/Android (?:M|5.[01].99);/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '6', 'details' => 3, 'alias' => 'M' ]); + } + + if (preg_match('/Android (?:N|6.0.99);/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '7', 'details' => 3, 'alias' => 'N' ]); + } + + $this->data->device->type = Constants\DeviceType::MOBILE; + + if ($this->data->os->version->toFloat() >= 3) { + $this->data->device->type = Constants\DeviceType::TABLET; + } + + if ($this->data->os->version->toFloat() >= 4 && preg_match('/Mobile/u', $ua)) { + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + $candidates = []; + + if (preg_match('/Build/ui', $ua)) { + + /* Normal Android useragent strings */ + + if (preg_match('/; [a-z][a-zA-Z][-_][a-zA-Z][a-zA-Z] ([^;]*[^;\s])\s+(?:BUILD|Build|build)/u', $ua, $match)) { + $candidates[] = $match[1]; + } + + if (preg_match('/Android [A-Za-z]+; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?) Build\/([^\/]*)\//u', $ua, $match)) { + $candidates[] = $match[1]; + } + + if (preg_match('/;\+? ?(?:\*\*)?([^;]*[^;\s]);?\s+(?:BUILD|Build|build)/u', $ua, $match)) { + $candidates[] = $match[1]; + } + } elseif (preg_match('/Release\//ui', $ua)) { + + /* WAP style useragent strings */ + + if (preg_match('/^(?U)([^\/]+)(?U)(?:(?:_CMCC_TD|_CMCC|_TD|_TDLTE|_LTE)?\/[^\/]*)? Linux\/[0-9.+]+ Android\/[0-9.]+/u', $this->removeKnownPrefixes($ua), $match)) { + $candidates[] = $match[1]; + } else if (preg_match('/^(?U)([^\/]+)(?U)(?:(?:_CMCC_TD|_CMCC|_TD|_TDLTE|_LTE)?\/[^\/]*)? Android(_OS)?\/[0-9.]+/u', $this->removeKnownPrefixes($ua), $match)) { + $candidates[] = $match[1]; + } else if (preg_match('/^(?U)([^\/]+)(?U)(?:(?:_CMCC_TD|_CMCC|_TD|_TDLTE|_LTE)?\/[^\/]*)? Release\/[0-9.]+/u', $this->removeKnownPrefixes($ua), $match)) { + $candidates[] = $match[1]; + } + } elseif (preg_match('/Mozilla\//ui', $ua)) { + + /* Old Android useragent strings */ + + if (preg_match('/Linux; (?:U; )?Android [^;]+; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; )?(?:[^;]+; ?)?([^)\/;]+)\)/u', $ua, $match)) { + $candidates[] = $match[1]; + } elseif (preg_match('/\(([^;]+);U;Android\/[^;]+;[0-9]+\*[0-9]+;CTC\/2.0\)/u', $ua, $match)) { + $candidates[] = $match[1]; + } + } else { + + /* Other applications */ + + if (preg_match('/[34]G Explorer\/[0-9.]+ \(Linux;Android [0-9.]+,([^\)]+)\)/u', $ua, $match)) { + $candidates[] = $match[1]; + } + + if (preg_match('/GetJarSDK\/.*android\/[0-9.]+ \([^;]+; [^;]+; ([^\)]+)\)$/u', $ua, $match)) { + $candidates[] = $match[1]; + } + } + + $candidates = array_unique($candidates); + + for ($c = 0; $c < count($candidates); $c++) { + if (preg_match('/^[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?$/u', $candidates[$c])) { + unset($candidates[$c]); + continue; + } + + if (preg_match('/^Android [0-9\.]+$/u', $candidates[$c])) { + unset($candidates[$c]); + continue; + } + + $candidates[$c] = preg_replace('/^[a-zA-Z][a-zA-Z][-_][a-zA-Z][a-zA-Z]\s+/u', '', $candidates[$c]); + $candidates[$c] = preg_replace('/(.*) - [0-9\.]+ - (?:with Google Apps - )?API [0-9]+ - [0-9]+x[0-9]+/', '\\1', $candidates[$c]); + $candidates[$c] = preg_replace('/^sprd-/u', '', $candidates[$c]); + } + + $candidates = array_unique($candidates); + + if (count($candidates)) { + $this->data->device->model = $candidates[0]; + $this->data->device->identified |= Constants\Id::PATTERN; + + for ($c = 0; $c < count($candidates); $c++) { + $device = Data\DeviceModels::identify('android', $candidates[$c]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + break; + } + } + } + + if (preg_match('/HP eStation/u', $ua)) { + $this->data->device->manufacturer = 'HP'; + $this->data->device->model = 'eStation'; + $this->data->device->type = Constants\DeviceType::PRINTER; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + } + } + + if (preg_match('/\(Linux; (?:U; )?(?:([0-9.]+); )?(?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; )?([^;]+) Build/u', $ua, $match)) { + $falsepositive = false; + + if ($match[2] == 'OpenTV') { + $falsepositive = true; + } + + if (!$falsepositive) { + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->device->model = $match[2]; + + $this->data->os->name = 'Android'; + + if (!empty($match[1])) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + + $device = Data\DeviceModels::identify('android', $match[2]); + if ($device->identified) { + $device->identified |= Constants\Id::PATTERN; + $device->identified |= $this->data->device->identified; + + $this->data->device = $device; + } + } + } + + if (preg_match('/Linux x86_64; ([^;\)]+)(?:; [a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?)?\) AppleWebKit\/534.24 \(KHTML, like Gecko\) Chrome\/11.0.696.34 Safari\/534.24/u', $ua, $match)) { + $device = Data\DeviceModels::identify('android', $match[1]); + if ($device->identified) { + $device->identified |= Constants\Id::PATTERN; + $device->identified |= $this->data->device->identified; + + $this->data->os->name = 'Android'; + $this->data->device = $device; + } + } + + if (preg_match('/\(Linux; U; Linux Ventana; [^;]+; ([^;]+) Build/u', $ua, $match)) { + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->device->model = $match[1]; + + $device = Data\DeviceModels::identify('android', $match[1]); + if ($device->identified) { + $device->identified |= Constants\Id::PATTERN; + $device->identified |= $this->data->device->identified; + + $this->data->os->name = 'Android'; + $this->data->device = $device; + } + } + + /* Aliyun OS */ + + if (preg_match('/Aliyun/u', $ua) || preg_match('/YunOs/ui', $ua)) { + $this->data->os->name = 'Aliyun OS'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + $this->data->os->version = new Version(); + + if (preg_match('/YunOs[ \/]([0-9.]+)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + + if (preg_match('/AliyunOS ([0-9.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (preg_match('/; ([^;]*[^;\s])\s+Build/u', $ua, $match)) { + $this->data->device->model = $match[1]; + } + + if (isset($this->data->device->model)) { + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('android', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + if (preg_match('/Android/u', $ua)) { + if (preg_match('/Android v(1.[0-9][0-9])_[0-9][0-9].[0-9][0-9]-/u', $ua, $match)) { + $this->data->os->name = 'Aliyun OS'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + + if (preg_match('/Android[ \/](1.[0-9].[0-9].[0-9]+)-R?T/u', $ua, $match)) { + $this->data->os->name = 'Aliyun OS'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + + if (preg_match('/Android ([12].[0-9].[0-9]+)-R-20[0-9]+/u', $ua, $match)) { + $this->data->os->name = 'Aliyun OS'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + } + + if (preg_match('/Android 20[0-9]+\./u', $ua, $match)) { + $this->data->os->name = 'Aliyun OS'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + $this->data->os->version = null; + } + } + + /* Baidu Yi */ + + if (preg_match('/Baidu Yi/u', $ua)) { + $this->data->os->name = 'Baidu Yi'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + $this->data->os->version = null; + } + + /* Google TV */ + + if (preg_match('/GoogleTV/u', $ua)) { + $this->data->os->name = 'Google TV'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + + $this->data->device->type = Constants\DeviceType::TELEVISION; + + if (preg_match('/GoogleTV [0-9\.]+; ?([^;]*[^;\s])\s+Build/u', $ua, $match)) { + $this->data->device->model = $match[1]; + } + + if (isset($this->data->device->model) && $this->data->device->model) { + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('android', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + /* LeOS */ + + if (preg_match('/LeOS/u', $ua)) { + $this->data->os->name = 'LeOS'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + + if (preg_match('/LeOS([0-9\.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::TABLET; + + if (preg_match('/LeOS[0-9\.]+; [^;]+; (.*) Build/u', $ua, $match)) { + $this->data->device->model = $match[1]; + } + + if (isset($this->data->device->model) && $this->data->device->model) { + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('android', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + /* WoPhone */ + + if (preg_match('/WoPhone/u', $ua)) { + $this->data->os->name = 'WoPhone'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + + if (preg_match('/WoPhone\/([0-9\.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + /* COS */ + + if (preg_match('/(COS|(China|Chinese) Operating System)/ui', $ua)) { + if (preg_match('/COS[\/ ]?([0-9]\.[0-9.]+)/ui', $ua, $match)) { + $this->data->os->name = 'COS'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } elseif (preg_match('/(?:\(|; )(?:China|Chinese) Operating System ([0-9]\.[0-9.]*);/ui', $ua, $match)) { + $this->data->os->name = 'COS'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } elseif (preg_match('/COS like Android/ui', $ua, $match)) { + $this->data->os->name = 'COS'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + $this->data->os->version = null; + $this->data->device->type = Constants\DeviceType::MOBILE; + } elseif (preg_match('/(COS like Android|COSBrowser\/|\(COS;|\(COS 998;)/ui', $ua, $match)) { + $this->data->os->name = 'COS'; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + } + } + + /* RemixOS */ + + if (preg_match('/RemixOS/u', $ua)) { + $this->data->os->name = 'Remix OS'; + $this->data->os->version = null; + $this->data->os->family = new Family([ 'name' => 'Android' ]); + + if (preg_match('/RemixOS ([0-9]\.[0-9])/u', $ua, $match)) { + switch ($match[1]) { + case '5.1': + $this->data->os->version = new Version([ 'value' => '1.0' ]); + break; + case '6.0': + $this->data->os->version = new Version([ 'value' => '2.0' ]); + break; + } + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + } + + private function determineAndroidVersionBasedOnBuild($ua) + { + if ($this->data->isOs('Android')) { + if (preg_match('/Build\/([^\);]+)/u', $ua, $match)) { + $version = Data\BuildIds::identify($match[1]); + if ($version) { + if (!isset($this->data->os->version) || $this->data->os->version == null || $this->data->os->version->value == null || $version->toFloat() < $this->data->os->version->toFloat()) { + $this->data->os->version = $version; + } + + /* Special case for Android L */ + if ($version->toFloat() == 5) { + $this->data->os->version = $version; + } + } + + $this->data->os->build = $match[1]; + } + } + } + + + /* Windows */ + + private function detectWindows($ua) + { + if (preg_match('/(Windows|WinNT|WinCE|WinMobile|Win ?[9MX]|Win(16|32))/u', $ua)) { + $this->data->os->name = 'Windows'; + $this->data->device->type = Constants\DeviceType::DESKTOP; + + + /* Windows NT */ + + if (preg_match('/Windows 2000/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '5.0', 'alias' => '2000' ]); + } + + if (preg_match('/(Windows XP|WinXP)/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '5.1', 'alias' => 'XP' ]); + } + + if (preg_match('/Windows Vista/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '6.0', 'alias' => 'Vista' ]); + } + + if (preg_match('/(?:Windows NT |WinNT)([0-9][0-9]?\.[0-9])/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + + switch ($match[1]) { + case '10.1': + case '10.0': + case '6.4': + $this->data->os->version = new Version([ 'value' => $match[1], 'alias' => '10' ]); + break; + + case '6.3': + if (preg_match('/; ARM;/u', $ua)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'alias' => 'RT 8.1' ]); + } else { + $this->data->os->version = new Version([ 'value' => $match[1], 'alias' => '8.1' ]); + } + break; + + case '6.2': + if (preg_match('/; ARM;/u', $ua)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'alias' => 'RT' ]); + } else { + $this->data->os->version = new Version([ 'value' => $match[1], 'alias' => '8' ]); + } + break; + + case '6.1': + $this->data->os->version = new Version([ 'value' => $match[1], 'alias' => '7' ]); + break; + case '6.0': + $this->data->os->version = new Version([ 'value' => $match[1], 'alias' => 'Vista' ]); + break; + case '5.2': + $this->data->os->version = new Version([ 'value' => $match[1], 'alias' => 'Server 2003' ]); + break; + case '5.1': + $this->data->os->version = new Version([ 'value' => $match[1], 'alias' => 'XP' ]); + break; + case '5.0': + $this->data->os->version = new Version([ 'value' => $match[1], 'alias' => '2000' ]); + break; + default: + $this->data->os->version = new Version([ 'value' => $match[1], 'alias' => 'NT ' . $match[1] ]); + break; + } + + $this->detectWindowsOemManufacturer($ua); + } + + + /* Windows */ + + if (preg_match('/(Windows 95|Win95)/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '4.0', 'alias' => '95' ]); + } + + if (preg_match('/(Windows 98|Win98)/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '4.1', 'alias' => '98' ]); + } + + if (preg_match('/(Windows M[eE]|WinME)/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '4.9', 'alias' => 'ME' ]); + } + + if (preg_match('/(?:Windows|Win 9x) (([1234]\.[0-9])[0-9\.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + + switch ($match[2]) { + case '4.0': + $this->data->os->version = new Version([ 'value' => '4.0', 'alias' => '95' ]); + break; + case '4.1': + $this->data->os->version = new Version([ 'value' => '4.1', 'alias' => '98' ]); + break; + case '4.9': + $this->data->os->version = new Version([ 'value' => '4.9', 'alias' => 'ME' ]); + break; + } + } + + + /* Windows Mobile and Windows Phone */ + + if (preg_match('/WPDesktop/u', $ua)) { + $this->data->os->name = 'Windows Phone'; + $this->data->os->version = new Version([ 'value' => '8.0', 'details' => 2 ]); + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->browser->mode = 'desktop'; + } + + if (preg_match('/WP7/u', $ua)) { + $this->data->os->name = 'Windows Phone'; + $this->data->os->version = new Version([ 'value' => '7', 'details' => 1 ]); + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->browser->mode = 'desktop'; + } + + if (preg_match('/WinMobile/u', $ua)) { + $this->data->os->name = 'Windows Mobile'; + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (preg_match('/WinMobile\/([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } + } + + if (preg_match('/(Windows CE|WindowsCE|WinCE)/u', $ua)) { + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (preg_match('/ IEMobile/u', $ua)) { + $this->data->os->name = 'Windows Mobile'; + + if (preg_match('/ IEMobile\/9/u', $ua)) { + $this->data->os->name = 'Windows Phone'; + $this->data->os->version = new Version([ 'value' => '7.5', 'details' => 2 ]); + } + + if (preg_match('/ IEMobile 8/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '6.5', 'details' => 2 ]); + } + + if (preg_match('/ IEMobile 7/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '6.1', 'details' => 2 ]); + } + + if (preg_match('/ IEMobile 6/u', $ua)) { + $this->data->os->version = new Version([ 'value' => '6.0', 'details' => 2 ]); + } + } else { + $this->data->os->name = 'Windows CE'; + + if (preg_match('/WindowsCEOS\/([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } + + if (preg_match('/Windows CE ([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } + } + + + $model = null; + + if (empty($model) && preg_match('/IEMobile [0-9.]+\) ?(?:PPC; |SP; |Smartphone; )?(?:[0-9]+[Xx][0-9]+;? )?(?:VZW; )?([^;\(]+)/u', $ua, $match)) { + if (!preg_match('/(Profile\/MIDP|UNTRUSTED)/u', $match[1])) { + $model = $match[1]; + } + } + + if (empty($model) && preg_match('/IEMobile [0-9.]+\) (?:PPC|SP|Smartphone); (?:[0-9]+[Xx][0-9]+;? )([^;]+) Profile\/MIDP/u', $ua, $match)) { + $model = $match[1]; + } + + if (empty($model) && preg_match('/MSIE [0-9.]+; Windows CE; (?:PPC|SP|Smartphone); [0-9]+x[0-9]+; ([^;\)]+)\)$/u', $ua, $match)) { + $model = $match[1]; + } + + if (empty($model) && preg_match('/MSIE [0-9.]+; Windows CE; (?:PPC|SP|Smartphone); [0-9]+x[0-9]+; ([^;]+); (?:PPC|OpVer)/u', $ua, $match)) { + $model = $match[1]; + } + + if (empty($model) && preg_match('/MSIE [0-9.]+; Windows CE; (?:PPC|SP|Smartphone); ([^;]+) Profile\/MIDP/u', $ua, $match)) { + $model = $match[1]; + } + + if (empty($model) && preg_match('/MSIE [0-9.]+; Windows CE; (?:PPC|SP|Smartphone) ([^;\(]+)[;\/] [0-9]+x[0-9]+/u', $ua, $match)) { + $model = $match[1]; + } + + if (empty($model) && preg_match('/MSIE [0-9.]+; Windows CE; ([^;\(]+); [0-9]+x[0-9]+\)/u', $ua, $match)) { + if (!preg_match('/^(Smartphone|PPC$)/u', $match[1])) { + $model = $match[1]; + } + } + + if (empty($model) && preg_match('/MSIE [0-9.]+; Windows CE; ([^;\(]+);? ?(?:PPC|SP|Smartphone); ?[0-9]+x[0-9]+/u', $ua, $match)) { + if (!preg_match('/^(MIDP-2.0)/u', $match[1])) { + $model = $match[1]; + } + } + + if (empty($model) && preg_match('/MSIE [0-9.]+; Windows CE; ([^;\)]+)(?:; (?:PPC|SP|Smartphone); [0-9]+x[0-9]+)?\)( \[[a-zA-Z\-]+\])?$/u', $ua, $match)) { + if (!preg_match('/^(IEMobile|MIDP-2.0|Smartphone|PPC$)/u', $match[1])) { + $model = $match[1]; + } + } + + if (!empty($model)) { + $model = preg_replace('/(HTC\/|Toshiba\/)/', '', $model); + + $this->data->device->model = $model; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->os->name = 'Windows Mobile'; + + $device = Data\DeviceModels::identify('wm', $model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } else { + if (empty($model) && preg_match('/Windows CE [^;]+; Trident\/[^;]+; IEMobile[\/ ][^;]+[\);] ([A-Z\s]+); ?([^\/\),]+)/ui', $ua, $match)) { + $model = $match[2]; + } + + if (!empty($model)) { + $this->data->device->model = $model; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->os->name = 'Windows Phone'; + + $device = Data\DeviceModels::identify('wp', $model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + } + + if (preg_match('/Microsoft Windows; (PPC|Smartphone)/u', $ua)) { + $this->data->os->name = 'Windows Mobile'; + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + if (preg_match('/Windows CE; (PPC|Smartphone)/u', $ua)) { + $this->data->os->name = 'Windows Mobile'; + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + + /* Detect models in common places */ + + if (preg_match('/Windows ?Mobile/u', $ua)) { + $this->data->os->name = 'Windows Mobile'; + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (preg_match('/Windows ?Mobile[\/ ]([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } + + if (preg_match('/Windows Mobile; (?:SHARP\/)?([^;]+); (?:PPC|Smartphone);/u', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wm', $match[1]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (preg_match('/\(([^;]+); U; Windows Mobile/u', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wm', $match[1]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + if (preg_match('/(Windows Phone|Windows NT 1[0-9]\.[0-9]; ARM|WPDesktop|ZuneWP7)/u', $ua)) { + $this->data->os->name = 'Windows Phone'; + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (preg_match('/Windows Phone(?: OS)?[ \/]([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + + if (intval($match[1]) < 7) { + $this->data->os->name = 'Windows Mobile'; + } + } + + /* Windows Mobile 6.5 */ + if (preg_match('/Windows NT 5.1; ([^;]+); Windows Phone/u', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wm', $match[1]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Windows Phone 7 (buggy) */ + if (preg_match('/Windows Phone OS [^;]+; Trident\/[^;]+; IEMobile[\/ ][^;]+[\);] ([A-Z\s]+); ?([^\/\),]+)/ui', $ua, $match)) { + $this->data->device->manufacturer = $match[1]; + $this->data->device->model = $match[2]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wp', $match[2]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Windows Phone 7 and 8 */ + if (preg_match('/IEMobile\/[^;]+;(?: ARM; Touch; )?(?:rv:[0-9]+; )?(?: WpsLondonTest; )?\s*([^;\s][^;\)]*);\s*([^;\)\s][^;\)]*)[;|\)]/u', $ua, $match)) { + $this->data->device->manufacturer = $match[1]; + $this->data->device->model = $match[2]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wp', $match[2]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Windows Phone 10 */ + if (preg_match('/Windows Phone 1[0-9]\.[0-9]; Android [0-9\.]+; (?:WebView\/[0-9\.]+; )?([^;\s][^;]*);\s*([^;\)\s][^;\)]*)[;|\)]/u', $ua, $match)) { + $this->data->device->manufacturer = $match[1]; + $this->data->device->model = $match[2]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wp', $match[2]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Windows Phone 10 Continuum */ + if (preg_match('/Windows NT 1[0-9]\.[0-9]; ARM; ([^;\)\s][^;\)]*)\)/u', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wp', $match[1]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + /* Third party browsers */ + if (preg_match('/IEMobile\/[^;]+;(?: ARM; Touch; )?\s*(?:[^\/]+\/[^\/]+);\s*([^;\s][^;]*);\s*([^;\)\s][^;\)]*)[;|\)]/u', $ua, $match)) { + $this->data->device->manufacturer = $match[1]; + $this->data->device->model = $match[2]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wp', $match[2]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (preg_match('/\(Windows Phone OS\/[0-9\.]+; ([^:]+):([^;]+); [a-z]+(?:\-[a-z]+)?\)/iu', $ua, $match)) { + $this->data->device->manufacturer = $match[1]; + $this->data->device->model = $match[2]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wp', $match[2]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Desktop mode of WP 8.1 */ + if (preg_match('/WPDesktop;\s*([^;\)]*)(?:;\s*([^;\)]*))?(?:;\s*([^;\)]*))?\) like Gecko/u', $ua, $match)) { + if (preg_match("/^[A-Z]+$/", $match[1])) { + $this->data->device->manufacturer = $match[1]; + $this->data->device->model = $match[2]; + } else { + $this->data->device->model = $match[1]; + } + + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wp', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Desktop mode of WP 7 */ + if (preg_match('/XBLWP7; ZuneWP7; ([^\)]+)\)/u', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wp', $match[1]); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + /* Desktop mode of WP 8.0 and 8.1 Update (buggy version) */ + if (preg_match('/Touch; WPDesktop;\s*([^;\)]*)(?:;\s*([^;\)]*))?(?:;\s*([^;\)]*))?\)/u', $ua, $match)) { + if (preg_match("/^[A-Z]+$/", $match[1]) && isset($match[2])) { + $this->data->device->manufacturer = $match[1]; + $this->data->device->model = $match[2]; + } else { + $this->data->device->model = $match[1]; + } + + $this->data->device->identified |= Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('wp', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (isset($this->data->device->manufacturer) && isset($this->data->device->model)) { + if ($this->data->device->manufacturer == 'ARM' && $this->data->device->model == 'Touch') { + $this->data->device->manufacturer = null; + $this->data->device->model = null; + $this->data->device->identified = Constants\Id::NONE; + } + + if ($this->data->device->model == 'XDeviceEmulator') { + $this->data->device->manufacturer = null; + $this->data->device->model = null; + $this->data->device->type = Constants\DeviceType::EMULATOR; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + } + } + } elseif (preg_match('/WMPRO/u', $ua)) { + $this->data->os->name = 'Windows Mobile'; + $this->data->device->type = Constants\DeviceType::MOBILE; + } + } + + private function detectWindowsOemManufacturer($ua) + { + $manufacturers = [ + 'MAAR' => 'Acer', + 'ASJB' => 'Asus', + 'ASU2' => 'Asus', + 'MAAU' => 'Asus', + 'NP06' => 'Asus', + 'NP07' => 'Asus', + 'NP08' => 'Asus', + 'NP09' => 'Asus', + 'CMNTDF' => 'Compaq', + 'CPDTDF' => 'Compaq', + 'CPNTDF' => 'Compaq', + 'MDDR' => 'Dell', + 'MDDC' => 'Dell', + 'MDDS' => 'Dell', + 'FSJB' => 'Fujitsu', + 'MAFS' => 'Fujitsu', + 'MAGW' => 'Gateway', + 'HPCMHP' => 'HP', + 'HPDTDF' => 'HP', + 'HPNTDF' => 'HP', + 'MANM' => 'Hyrican', + 'LCJB' => 'Lenovo', + 'LEN2' => 'Lenovo', + 'MALC' => 'Lenovo', + 'MALE' => 'Lenovo', + 'MALN' => 'Lenovo', + 'MAMD' => 'Medion', + 'MAMI' => 'MSI', + 'MAM3' => 'MSI', + 'MASM' => 'Samsung', + 'SMJB' => 'Samsung', + 'MASA' => 'Sony', + 'MASE' => 'Sony', + 'MASP' => 'Sony', + 'MATB' => 'Toshiba', + 'MATM' => 'Toshiba', + 'MATP' => 'Toshiba', + 'TAJB' => 'Toshiba', + 'TNJB' => 'Toshiba', + ]; + + $keys = array_keys($manufacturers); + + if (preg_match('/; (' . implode('|', $keys) . ')(?:JS)?[\);]/u', $ua, $match)) { + $this->data->device->manufacturer = $manufacturers[$match[1]]; + $this->data->device->hidden = true; + $this->data->device->identified |= Constants\Id::INFER; + } + } + + + /* Jolla Sailfish */ + + private function detectSailfish($ua) + { + if (preg_match('/Sailfish;/u', $ua)) { + $this->data->os->name = 'Sailfish'; + $this->data->os->version = null; + + if (preg_match('/Jolla;/u', $ua)) { + $this->data->device->manufacturer = 'Jolla'; + } + + if (preg_match('/Mobile/u', $ua)) { + $this->data->device->model = 'Phone'; + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->device->identified = Constants\Id::PATTERN; + } + + if (preg_match('/Tablet/u', $ua)) { + $this->data->device->model = 'Tablet'; + $this->data->device->type = Constants\DeviceType::TABLET; + $this->data->device->identified = Constants\Id::PATTERN; + } + } + } + + + /* Bada */ + + private function detectBada($ua) + { + if (preg_match('/[b|B]ada/u', $ua)) { + $this->data->os->name = 'Bada'; + + if (preg_match('/[b|B]ada[\/ ]([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } + + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (preg_match('/\(([^;]+); ([^\/]+)\//u', $ua, $match)) { + if ($match[1] != 'Bada') { + $this->data->device->manufacturer = $match[1]; + $this->data->device->model = $match[2]; + $this->data->device->identified = Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('bada', $match[2]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + } + } + + + /* Tizen */ + + private function detectTizen($ua) + { + if (preg_match('/Tizen/u', $ua)) { + $this->data->os->name = 'Tizen'; + + if (preg_match('/Tizen[\/ ]?([0-9.]*[0-9])/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/\(([^;]+); ([^\/]+)\//u', $ua, $match)) { + $falsepositive = false; + if (strtoupper($match[1]) == 'SMART-TV') { + $falsepositive = true; + } + if ($match[1] == 'TV') { + $falsepositive = true; + } + if ($match[1] == 'Linux') { + $falsepositive = true; + } + if ($match[1] == 'Tizen') { + $falsepositive = true; + } + + if (!$falsepositive) { + $this->data->device->manufacturer = $match[1]; + $this->data->device->model = $match[2]; + $this->data->device->identified = Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('tizen', $match[2]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + if (preg_match('/\s*([^;]+);\s+([^;\)]+)\)/u', $ua, $match)) { + $falsepositive = false; + if ($match[1] == 'U') { + $falsepositive = true; + } + if (substr($match[2], 0, 5) == 'Tizen') { + $falsepositive = true; + } + if (substr($match[2], 0, 11) == 'AppleWebKit') { + $falsepositive = true; + } + if (preg_match("/^[a-z]{2,2}(?:\-[a-z]{2,2})?$/", $match[2])) { + $falsepositive = true; + } + + if (!$falsepositive) { + $this->data->device->model = $match[2]; + $this->data->device->identified = Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('tizen', $match[2]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + + if (!$this->data->device->type && preg_match('/Mobile/iu', $ua, $match)) { + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + + if (preg_match('/\((SMART[ -])?TV;/iu', $ua, $match)) { + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->manufacturer = 'Samsung'; + $this->data->device->series = 'Smart TV'; + $this->data->device->identified = Constants\Id::PATTERN; + } + + + if (preg_match('/(?:Samsung|Tizen ?)Browser\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = "Samsung Browser"; + $this->data->browser->channel = null; + $this->data->browser->stock = true; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->channel = null; + } + } + + if (preg_match('/Linux\; U\; Android [0-9.]+\; ko\-kr\; SAMSUNG\; (NX[0-9]+[^\)]]*)/u', $ua, $match)) { + $this->data->os->name = 'Tizen'; + $this->data->os->version = null; + + $this->data->device->type = Constants\DeviceType::CAMERA; + $this->data->device->manufacturer = 'Samsung'; + $this->data->device->model = $match[1]; + $this->data->device->identified = Constants\Id::PATTERN; + } + } + + + /* Symbian */ + + private function detectSymbian($ua) + { + if (!preg_match('/(Series|Symbian|S60|UIQ)/ui', $ua)) { + return; + } + + /* Series 80 */ + + if (preg_match('/Series80\/([0-9.]*)/u', $ua, $match)) { + $this->data->os->name = 'Series80'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + $this->data->os->family = new Family([ 'name' => 'Symbian' ]); + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + /* Series 60 */ + + if (preg_match('/Symbian\/3/u', $ua)) { + $this->data->os->name = 'Series60'; + $this->data->os->version = new Version([ 'value' => '5.2' ]); + $this->data->os->family = new Family([ 'name' => 'Symbian' ]); + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + if (preg_match('/Series[ ]?60/u', $ua) || preg_match('/S60[V\/;]/u', $ua)) { + $this->data->os->name = 'Series60'; + $this->data->os->family = new Family([ 'name' => 'Symbian' ]); + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (preg_match('/Series60\/([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/S60\/([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/S60V([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + } + + /* UIQ */ + + if (preg_match('/UIQ\/([0-9.]*)/u', $ua, $match)) { + $this->data->os->name = 'UIQ'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + $this->data->os->family = new Family([ 'name' => 'Symbian' ]); + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + /* Symbian */ + + if (preg_match('/Symbian/u', $ua)) { + $this->data->os->family = new Family([ 'name' => 'Symbian' ]); + + if (preg_match('/SymbianOS\/([0-9.]*)/u', $ua, $match)) { + $this->data->os->family->version = new Version([ 'value' => $match[1] ]); + } + } + + + if ($this->data->os->isFamily('Symbian')) { + if (preg_match('/Nokia-?([^\/;\)\s]+)[\s|\/|;|\)]/u', $ua, $match)) { + if ($match[1] != 'Browser') { + $this->data->device->manufacturer = 'Nokia'; + $this->data->device->model = Data\DeviceModels::cleanup($match[1]); + $this->data->device->identified |= Constants\Id::PATTERN; + } + } + + if (preg_match('/Symbian(?:\/3)?; U; (?:Nokia)?([^;]+); [a-z][a-z](?:\-[a-z][a-z])?/u', $ua, $match)) { + $this->data->device->manufacturer = 'Nokia'; + $this->data->device->model = Data\DeviceModels::cleanup($match[1]); + $this->data->device->identified |= Constants\Id::PATTERN; + } + + if (preg_match('/Vertu([^\/;]+)[\/|;]/u', $ua, $match)) { + $this->data->device->manufacturer = 'Vertu'; + $this->data->device->model = Data\DeviceModels::cleanup($match[1]); + $this->data->device->identified |= Constants\Id::PATTERN; + } + + if (preg_match('/Samsung\/([^;]*);/u', $ua, $match)) { + $this->data->device->manufacturer = 'Samsung'; + $this->data->device->model = Data\DeviceModels::cleanup($match[1]); + $this->data->device->identified |= Constants\Id::PATTERN; + } + + if (isset($this->data->device->model)) { + $device = Data\DeviceModels::identify('symbian', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + } + + private function detectNokiaOs($ua) + { + if (!preg_match('/(Series|MeeGo|Maemo|Geos)/ui', $ua)) { + return; + } + + /* Series 40 */ + + if (preg_match('/Series40/u', $ua)) { + $this->data->os->name = 'Series40'; + + if (preg_match('/Nokia([^\/]+)\//u', $ua, $match)) { + $this->data->device->manufacturer = 'Nokia'; + $this->data->device->model = Data\DeviceModels::cleanup($match[1]); + $this->data->device->identified |= Constants\Id::PATTERN; + } + + if (isset($this->data->device->model)) { + $device = Data\DeviceModels::identify('s40', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (isset($this->data->device->model)) { + $device = Data\DeviceModels::identify('asha', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->os->name = 'Nokia Asha Platform'; + $this->data->os->version = new Version([ 'value' => '1.0' ]); + $this->data->device = $device; + } + + if (preg_match('/java_runtime_version=Nokia_Asha_([0-9_]+);/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]); + } + } + + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + /* Series 30+ */ + + if (preg_match('/Series30Plus/u', $ua)) { + $this->data->os->name = 'Series30+'; + + if (preg_match('/Nokia([^\/]+)\//u', $ua, $match)) { + $this->data->device->manufacturer = 'Nokia'; + $this->data->device->model = Data\DeviceModels::cleanup($match[1]); + $this->data->device->identified |= Constants\Id::PATTERN; + } + + if (isset($this->data->device->model)) { + $device = Data\DeviceModels::identify('s30plus', $this->data->device->model); + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + /* Meego */ + + if (preg_match('/MeeGo/u', $ua)) { + $this->data->os->name = 'MeeGo'; + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (preg_match('/Nokia([^\);]+)\)/u', $ua, $match)) { + $this->data->device->manufacturer = 'Nokia'; + $this->data->device->model = Data\DeviceModels::cleanup($match[1]); + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->device->generic = false; + } + } + + /* Maemo */ + + if (preg_match('/Maemo/u', $ua)) { + $this->data->os->name = 'Maemo'; + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (preg_match('/(N[0-9]+)/u', $ua, $match)) { + $this->data->device->manufacturer = 'Nokia'; + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->device->generic = false; + } + } + + /* GEOS */ + + if (preg_match('/Geos ([0-9.]+)/u', $ua, $match)) { + $this->data->os->name = 'GEOS'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (preg_match('/Nokia-([0-9]{4,4}[a-z]?)/u', $ua, $match)) { + $this->data->device->manufacturer = 'Nokia'; + $this->data->device->model = $match[1]; + $this->data->device->identified |= Constants\Id::PATTERN; + $this->data->device->generic = false; + } + } + } + + + /* WebOS */ + + private function detectWebos($ua) + { + if (preg_match('/(?:web|hpw)OS\/(?:HP webOS )?([0-9.]*)/u', $ua, $match)) { + $this->data->os->name = 'webOS'; + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->device->type = preg_match('/Tablet/iu', $ua) ? Constants\DeviceType::TABLET : Constants\DeviceType::MOBILE; + $this->data->device->generic = false; + } + + if (preg_match('/(?:Spark|elite)\/fzz/u', $ua, $match) || preg_match('/webOSBrowser/u', $ua, $match)) { + $this->data->os->name = 'webOS'; + $this->data->device->type = preg_match('/Tablet/iu', $ua) ? Constants\DeviceType::TABLET : Constants\DeviceType::MOBILE; + $this->data->device->generic = false; + } + + if (preg_match('/ (Pre|Pixi|TouchPad|P160UN?A?)\/[0-9\.]+$/u', $ua, $match)) { + $this->data->os->name = 'webOS'; + $this->data->device->type = $match[1] == 'TouchPad' ? Constants\DeviceType::TABLET : Constants\DeviceType::MOBILE; + $this->data->device->generic = false; + } + + if ($this->data->isOs('webOS')) { + if (preg_match('/Pre\/1.0/u', $ua)) { + $this->data->device->manufacturer = 'Palm'; + $this->data->device->model = 'Pre'; + } + if (preg_match('/Pre\/1.1/u', $ua)) { + $this->data->device->manufacturer = 'Palm'; + $this->data->device->model = 'Pre Plus'; + } + if (preg_match('/Pre\/1.2/u', $ua)) { + $this->data->device->manufacturer = 'Palm'; + $this->data->device->model = 'Pre 2'; + } + if (preg_match('/Pre\/3.0/u', $ua)) { + $this->data->device->manufacturer = 'Palm'; + $this->data->device->model = 'Pre 3'; + } + if (preg_match('/Pixi\/1.0/u', $ua)) { + $this->data->device->manufacturer = 'Palm'; + $this->data->device->model = 'Pixi'; + } + if (preg_match('/Pixi\/1.1/u', $ua)) { + $this->data->device->manufacturer = 'Palm'; + $this->data->device->model = 'Pixi Plus'; + } + if (preg_match('/P160UN?A?\/1.0/u', $ua)) { + $this->data->device->manufacturer = 'HP'; + $this->data->device->model = 'Veer'; + } + if (preg_match('/TouchPad\/1.0/u', $ua)) { + $this->data->device->manufacturer = 'HP'; + $this->data->device->model = 'TouchPad'; + } + + if (preg_match('/Emulator\//u', $ua) || preg_match('/Desktop\//u', $ua)) { + $this->data->device->type = Constants\DeviceType::EMULATOR; + $this->data->device->manufacturer = null; + $this->data->device->model = null; + } + + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + } + + + /* BlackBerry */ + + private function detectBlackberry($ua) + { + /* BlackBerry OS */ + + if (preg_match('/RIM([0-9]{3,3})/u', $ua, $match)) { + $this->data->os->name = 'BlackBerry OS'; + $this->data->device->manufacturer = 'RIM'; + $this->data->device->model = $match[1]; + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->device->identified = Constants\Id::INFER; + } + + if (preg_match('/BlackBerry/u', $ua) && !preg_match('/BlackBerry Runtime for Android Apps/u', $ua)) { + $this->data->os->name = 'BlackBerry OS'; + + $this->data->device->model = 'BlackBerry'; + $this->data->device->manufacturer = 'RIM'; + $this->data->device->type = Constants\DeviceType::MOBILE; + $this->data->device->identified = Constants\Id::INFER; + + if (!preg_match('/Opera/u', $ua)) { + if (preg_match('/BlackBerry([0-9]+[ei]?)\/([0-9.]*)/u', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->os->version = new Version([ 'value' => $match[2], 'details' => 2 ]); + } + + if (preg_match('/; BlackBerry ([0-9]*);/u', $ua, $match)) { + $this->data->device->model = $match[1]; + } + + if (preg_match('/; ([0-9]+)[^;\)]+\)/u', $ua, $match)) { + $this->data->device->model = $match[1]; + } + + if (preg_match('/Version\/([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } + + if (isset($this->data->os->version) && $this->data->os->version->toFloat() >= 10) { + $this->data->os->name = 'BlackBerry'; + } + + if ($this->data->device->model) { + $device = Data\DeviceModels::identify('blackberry', $this->data->device->model); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + } + + /* BlackBerry 10 */ + + if (preg_match('/\(BB(1[^;]+); ([^\)]+)\)/u', $ua, $match)) { + $this->data->os->name = 'BlackBerry'; + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + + $this->data->device->manufacturer = 'BlackBerry'; + $this->data->device->model = $match[2]; + + if ($this->data->device->model == 'Kbd') { + $this->data->device->model = 'Q series or Passport'; + } + + if ($this->data->device->model == 'Touch') { + $this->data->device->model = 'A or Z series'; + } + + if ($this->data->device->model == 'STL100-2') { + $this->data->device->model = 'Z10'; + } + + $this->data->device->type = preg_match('/Mobile/u', $ua) ? Constants\DeviceType::MOBILE : Constants\DeviceType::TABLET; + $this->data->device->identified |= Constants\Id::MATCH_UA; + + if (preg_match('/Version\/([0-9.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } + } + + /* BlackBerry Tablet OS */ + + if (preg_match('/RIM Tablet OS ([0-9.]*)/u', $ua, $match)) { + $this->data->os->name = 'BlackBerry Tablet OS'; + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + + $this->data->device->manufacturer = 'RIM'; + $this->data->device->model = 'BlackBerry PlayBook'; + $this->data->device->type = Constants\DeviceType::TABLET; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } elseif (preg_match('/\(PlayBook;/u', $ua) && preg_match('/PlayBook Build\/([0-9.]*)/u', $ua, $match)) { + $this->data->os->name = 'BlackBerry Tablet OS'; + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + + $this->data->device->manufacturer = 'RIM'; + $this->data->device->model = 'BlackBerry PlayBook'; + $this->data->device->type = Constants\DeviceType::TABLET; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } elseif (preg_match('/PlayBook/u', $ua) && !preg_match('/Android/u', $ua)) { + if (preg_match('/Version\/([0-9.]*)/u', $ua, $match)) { + $this->data->os->name = 'BlackBerry Tablet OS'; + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + + $this->data->device->manufacturer = 'RIM'; + $this->data->device->model = 'BlackBerry PlayBook'; + $this->data->device->type = Constants\DeviceType::TABLET; + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + } + + /* Internal versions of BlackBerry 10 running on the Playbook */ + + if ($this->data->isOs('BlackBerry Tablet OS', '>=', 10)) { + $this->data->os->name = 'BlackBerry'; + } + } + + + /* Chrome OS */ + + private function detectChromeos($ua) + { + /* ChromeCast */ + + if (preg_match('/CrKey/u', $ua) && !preg_match('/Espial/u', $ua)) { + $this->data->device->manufacturer = 'Google'; + $this->data->device->model = 'Chromecast'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + $this->data->device->identified |= Constants\Id::MATCH_UA; + $this->data->device->generic = false; + } + + /* Chrome OS */ + + if (preg_match('/CrOS/u', $ua)) { + $this->data->os->name = 'Chrome OS'; + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + } + + + /* Open TV */ + + private function detectOpenTV($ua) + { + if (preg_match('/OpenTV/ui', $ua, $match)) { + $this->data->device->type = Constants\DeviceType::TELEVISION; + + $this->data->os->name = 'OpenTV'; + $this->data->os->version = null; + + if (preg_match('/OpenTV Build\/([0-9\.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/OpenTV ([0-9\.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/Opentv([0-9]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/OTV([0-9\.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + } + } + + + /* Qtopia */ + + private function detectQtopia($ua) + { + if (preg_match('/Qtopia/u', $ua)) { + $this->data->os->name = 'Qtopia'; + + if (preg_match('/Qtopia\/([0-9.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + } + } + + + /* Unix */ + + private function detectUnix($ua) + { + if (!preg_match('/(UNIX|OSF|ULTRIX|HP-UX|SunOS|Solaris|AIX|IRIX|NEWS-OS|GENIX)/ui', $ua)) { + return; + } + + /* Unix */ + + if (preg_match('/Unix/iu', $ua)) { + $this->data->os->name = 'Unix'; + } + + /* Unix System V */ + + if (preg_match('/(?:UNIX_System_V|UNIX_SV) ([0-9.]*)/u', $ua, $match)) { + $this->data->os->name = 'UNIX System V'; + $this->data->os->family = new Family([ 'name' => 'UNIX' ]); + $this->data->os->version = new Version([ 'value' => $match[1] ]); + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + /* Digital Unix */ + + if (preg_match('/OSF1?[ _]/u', $ua)) { + $this->data->os->name = 'Digital Unix'; + $this->data->os->family = new Family([ 'name' => 'UNIX' ]); + + if (preg_match('/OSF1?[ _]V?([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + /* Digital ULTRIX */ + + if (preg_match('/ULTRIX/u', $ua)) { + $this->data->os->name = 'ULTRIX'; + $this->data->os->family = new Family([ 'name' => 'BSD' ]); + + if (preg_match('/ULTRIX ([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + /* HP-UX */ + + if (preg_match('/HP-UX/u', $ua)) { + $this->data->os->name = 'HP-UX'; + $this->data->os->family = new Family([ 'name' => 'UNIX' ]); + + if (preg_match('/HP-UX [A-Z].0?([1-9][0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + /* Solaris */ + + if (preg_match('/SunOS/u', $ua)) { + $this->data->os->name = 'Solaris'; + $this->data->os->family = new Family([ 'name' => 'UNIX' ]); + + if (preg_match('/SunOS ([1234]\.[0-9\.]+)/u', $ua, $match)) { + $this->data->os->name = 'SunOS'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + $this->data->os->family = new Family([ 'name' => 'BSD' ]); + + if (preg_match('/SunOS 4\.1\.([1234])/u', $ua, $match)) { + $this->data->os->name = 'Solaris'; + + switch ($match[1]) { + case '1': + $this->data->os->version = new Version([ 'value' => '1.0' ]); + break; + case '2': + $this->data->os->version = new Version([ 'value' => '1.0.1' ]); + break; + case '3': + $this->data->os->version = new Version([ 'value' => '1.1' ]); + break; + case '4': + $this->data->os->version = new Version([ 'value' => '1.1.2' ]); + break; + } + } + } + + if (preg_match('/SunOS 5\.([123456](?:\.[0-9\.]*)?) /u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => '2.' . $match[1] ]); + } else if (preg_match('/SunOS 5\.([0-9\.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Solaris(?: ([0-9\.]+))?;/u', $ua, $match)) { + $this->data->os->name = 'Solaris'; + $this->data->os->family = new Family([ 'name' => 'UNIX' ]); + + if (preg_match('/Solaris ([0-9\.]+);/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + /* AIX */ + + if (preg_match('/AIX/u', $ua)) { + $this->data->os->name = 'AIX'; + $this->data->os->family = new Family([ 'name' => 'UNIX' ]); + + if (preg_match('/AIX ([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + /* IRIX */ + + if (preg_match('/IRIX/u', $ua)) { + $this->data->os->name = 'IRIX'; + $this->data->os->family = new Family([ 'name' => 'UNIX' ]); + + if (preg_match('/IRIX ([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/IRIX;?(?:64|32) ([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + /* Sony NEWS OS */ + + if (preg_match('/NEWS-OS ([0-9\.]+)/u', $ua, $match)) { + $this->data->os->name = 'NEWS OS'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + $this->data->os->family = new Family([ 'name' => 'BSD' ]); + + + if (preg_match('/NEWS-OS [56]/u', $ua)) { + $this->data->os->family = new Family([ 'name' => 'UNIX' ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + /* NEC EWS-UX */ + + if (preg_match('/EWS-UNIX rev ([0-9\.]+)/u', $ua, $match)) { + $this->data->os->name = 'EWS-UX'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + $this->data->os->family = new Family([ 'name' => 'UNIX' ]); + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + /* National Semiconductors GENIX */ + + if (preg_match('/GENIX ([0-9\.]+)/u', $ua, $match)) { + $this->data->os->name = 'GENIX'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + $this->data->os->family = new Family([ 'name' => 'BSD' ]); + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + } + + + /* BSD */ + + private function detectBsd($ua) + { + if (!preg_match('/(BSD|DragonFly)/ui', $ua)) { + return; + } + + if (preg_match('/X11/u', $ua)) { + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + /* BSD/OS */ + + if (preg_match('/BSD\/386/u', $ua)) { + $this->data->os->name = 'BSD/OS'; + $this->data->os->family = new Family([ 'name' => 'BSD' ]); + } + + if (preg_match('/BSD\/OS/u', $ua)) { + $this->data->os->name = 'BSD/OS'; + $this->data->os->family = new Family([ 'name' => 'BSD' ]); + + if (preg_match('/BSD\/OS ([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + } + + /* FreeBSD */ + + if (preg_match('/FreeBSD/iu', $ua)) { + $this->data->os->name = 'FreeBSD'; + $this->data->os->family = new Family([ 'name' => 'BSD' ]); + + if (preg_match('/FreeBSD[ -\/]?([0-9.]*)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + } + + /* OpenBSD */ + + if (preg_match('/OpenBSD/iu', $ua)) { + $this->data->os->name = 'OpenBSD'; + $this->data->os->family = new Family([ 'name' => 'BSD' ]); + + if (preg_match('/OpenBSD ?([0-9.]*)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + } + + /* NetBSD */ + + if (preg_match('/NetBSD/iu', $ua)) { + $this->data->os->name = 'NetBSD'; + $this->data->os->family = new Family([ 'name' => 'BSD' ]); + + if (preg_match('/NetBSD ?([0-9.]*)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + } + + /* DragonFly */ + + if (preg_match('/DragonFly/iu', $ua)) { + $this->data->os->name = 'DragonFly BSD'; + $this->data->os->family = new Family([ 'name' => 'BSD' ]); + } + } + + + /* Linux */ + + private function detectLinux($ua) + { + if (preg_match('/Linux/u', $ua)) { + $this->data->os->name = 'Linux'; + + if (preg_match('/X11/u', $ua)) { + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Antergos Linux/u', $ua)) { + $this->data->os->name = 'Antergos Linux'; + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Arch ?Linux/u', $ua)) { + $this->data->os->name = 'Arch Linux'; + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Black Lab Linux/u', $ua)) { + $this->data->os->name = 'Black Lab Linux'; + if (preg_match('/Black Lab Linux ([0-9\.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/CentOS/u', $ua)) { + $this->data->os->name = 'CentOS'; + if (preg_match('/CentOS\/[0-9\.\-]+el([0-9_]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]); + } + + if (preg_match('/CentOS Linux release ([0-9\.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Debian/u', $ua)) { + $this->data->os->name = 'Debian'; + if (preg_match('/Debian\/([0-9.]*)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/Debian GNU\/Linux ([0-9\.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/elementary OS/u', $ua)) { + $this->data->os->name = 'elementary OS'; + if (preg_match('/elementary OS ([A-Za-z]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'alias' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Fedora/u', $ua)) { + $this->data->os->name = 'Fedora'; + if (preg_match('/Fedora\/[0-9\.\-]+fc([0-9]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]); + } + + if (preg_match('/Fedora release ([0-9\.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Gentoo/u', $ua)) { + $this->data->os->name = 'Gentoo'; + if (preg_match('/Gentoo Base System release ([0-9\.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/gNewSense/u', $ua)) { + $this->data->os->name = 'gNewSense'; + if (preg_match('/gNewSense\/[^\(]+\(([0-9\.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Kubuntu/u', $ua)) { + $this->data->os->name = 'Kubuntu'; + if (preg_match('/Kubuntu[ \/]([0-9.]*)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Linux Mint/u', $ua)) { + $this->data->os->name = 'Linux Mint'; + if (preg_match('/Linux Mint ([0-9\.]+)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Mandriva Linux/u', $ua)) { + $this->data->os->name = 'Mandriva'; + if (preg_match('/Mandriva Linux\/[0-9\.\-]+mdv([0-9]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Mageia/u', $ua)) { + $this->data->os->name = 'Mageia'; + if (preg_match('/Mageia\/[0-9\.\-]+mga([0-9]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/Mageia ([0-9\.]+)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Mandriva/u', $ua)) { + $this->data->os->name = 'Mandriva'; + if (preg_match('/Mandriva\/[0-9\.\-]+mdv([0-9]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/moonOS/u', $ua)) { + $this->data->os->name = 'moonOS'; + if (preg_match('/moonOS\/([0-9.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Red Hat/u', $ua)) { + $this->data->os->name = 'Red Hat'; + if (preg_match('/Red Hat[^\/]*\/[0-9\.\-]+el([0-9_]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Slackware/u', $ua)) { + $this->data->os->name = 'Slackware'; + if (preg_match('/Slackware[ \/](1[0-9.]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/SUSE/u', $ua)) { + $this->data->os->name = 'SUSE'; + if (preg_match('/SUSE\/([0-9]\.[0-9]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/openSUSE ([0-9\.]+)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Turbolinux/u', $ua)) { + $this->data->os->name = 'Turbolinux'; + if (preg_match('/Turbolinux\/([0-9]\.[0-9]+)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Ubuntu/u', $ua)) { + $this->data->os->name = 'Ubuntu'; + if (preg_match('/Ubuntu\/([0-9.]*)/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + if (preg_match('/Ubuntu ([0-9\.]+)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + } + + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/《붉ì€ë³„》\/([0-9.]*)/iu', $ua, $match)) { + $this->data->os->name = 'Red Star'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Fedora\/[0-9\.\-]+rs([0-9\.]+)/u', $ua, $match)) { + $this->data->os->name = 'Red Star'; + $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]); + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + + if (preg_match('/Linux\/X2\/R1/u', $ua)) { + $this->data->os->name = 'LiMo'; + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + + if (preg_match('/Linux\/SLP\/([0-9.]+)/u', $ua, $match)) { + $this->data->os->name = 'Linux SLP'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + + if (preg_match('/LinuxOS\//u', $ua) && preg_match('/Software\/R5/u', $ua)) { + $this->data->os->name = 'EZX Linux'; + $this->data->device->type = Constants\DeviceType::MOBILE; + } + } + + if (preg_match('/\(Ubuntu; (Mobile|Tablet)/u', $ua)) { + $this->data->os->name = 'Ubuntu Touch'; + + if (preg_match('/\(Ubuntu; Mobile/u', $ua)) { + $this->data->device->type = Constants\DeviceType::MOBILE; + } + if (preg_match('/\(Ubuntu; Tablet/u', $ua)) { + $this->data->device->type = Constants\DeviceType::TABLET; + } + } + + if (preg_match('/(?:\(|; )Ubuntu ([0-9.]+) like Android/u', $ua, $match)) { + $this->data->os->name = 'Ubuntu Touch'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + $this->data->device->type = Constants\DeviceType::MOBILE; + } + + if (preg_match('/Lindows ([0-9.]+)/u', $ua, $match)) { + $this->data->os->name = 'Lindows'; + $this->data->os->version = new Version([ 'value' => $match[1] ]); + $this->data->device->type = Constants\DeviceType::DESKTOP; + } + } + + + /* Brew */ + + private function detectBrew($ua) + { + if (preg_match('/REX; U/ui', $ua) || preg_match('/REXL4/ui', $ua)) { + $this->data->os->name = 'REX'; + + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (preg_match('/REX; U; [^;]+; ([^;]+); ([^;\/]+)[^;]*; NetFront/u', $ua, $match)) { + $this->data->device->manufacturer = Data\Manufacturers::identify(Constants\DeviceType::MOBILE, $match[1]); + $this->data->device->model = $match[2]; + $this->data->device->identified = Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('brew', $match[2]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + + if (preg_match('/[\(\s\-;]BREW[\s\/\-;]/ui', $ua) || preg_match('/BMP( [0-9.]*)?; U/u', $ua) || preg_match('/B(?:rew)?MP\/([0-9.]*)/u', $ua)) { + $this->data->os->name = 'Brew'; + + if (preg_match('/BREW MP/iu', $ua) || preg_match('/B(rew)?MP/iu', $ua)) { + $this->data->os->name = 'Brew MP'; + } + + if (preg_match('/; Brew ([0-9.]+);/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } elseif (preg_match('/BREW; U; ([0-9.]+)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } elseif (preg_match('/[\(;]BREW[\/ ]([0-9.]+)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } elseif (preg_match('/BREW MP ([0-9.]*)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } elseif (preg_match('/BMP ([0-9.]*); U/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } elseif (preg_match('/B(?:rew)?MP\/([0-9.]*)/iu', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + + $this->data->device->type = Constants\DeviceType::MOBILE; + + if (preg_match('/(?:Brew MP|BREW|BMP) [^;]+; U; [^;]+; ([^;]+); NetFront[^\)]+\) [^\s]+ ([^\s]+)/u', $ua, $match)) { + $this->data->device->manufacturer = Data\Manufacturers::identify(Constants\DeviceType::MOBILE, $match[1]); + $this->data->device->model = $match[2]; + $this->data->device->identified = Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('brew', $match[2]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (preg_match('/\(([^;]+);U;REX\/[^;]+;BREW\/[^;]+;(?:.*;)?[0-9]+\*[0-9]+(?:;CTC\/2.0)?\)/u', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->identified = Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('brew', $match[1]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (preg_match('/\(BREW [^;]+; U; [^;]+; [^;]+; ([^;]+); (Polaris|Netfront)\/[0-9\.]+\/(WAP|AMB|INT)\)/ui', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->identified = Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('brew', $match[1]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + + if (preg_match('/\(BREW [^;]+; U; [^;]+; [^;]+; Opera Mobi; Presto\/[0-9\.]+\/(?:WAP|AMB|INT)\) ([^\/]+) [^\/]+\//ui', $ua, $match)) { + $this->data->device->model = $match[1]; + $this->data->device->identified = Constants\Id::PATTERN; + + $device = Data\DeviceModels::identify('brew', $match[1]); + + if ($device->identified) { + $device->identified |= $this->data->device->identified; + $this->data->device = $device; + } + } + } + } + + + /* Remaining operating systems */ + + private function detectRemainingOperatingSystems($ua) + { + if (!preg_match('/(BeOS|Haiku|AmigaOS|MorphOS|AROS|VMS|RISC|Joli|OS\/2|Inferno|Syllable|Grid|MTK|MRE|MAUI|Nucleus|QNX|VRE|SpreadTrum|EPOC|ThreadX)/ui', $ua)) { + return; + } + + $patterns = [ + [ 'name' => 'BeOS', 'regexp' => [ '/BeOS/iu' ], 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Haiku', 'regexp' => [ '/Haiku/iu' ], 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'AmigaOS', 'regexp' => [ '/AmigaOS ?([0-9.]+)/iu', '/AmigaOS/iu' ], 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'MorphOS', 'regexp' => [ '/MorphOS(?: ([0-9.]*))?/iu' ], 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'AROS', 'regexp' => [ '/AROS/iu' ], 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'OpenVMS', 'regexp' => [ '/OpenVMS V([0-9.]+)/iu', '/OpenVMS/iu' ], 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'RISC OS', 'regexp' => [ '/RISC OS(?:-NC)? ([0-9.]*)/iu', '/RISC OS/iu' ], 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Joli OS', 'regexp' => [ '/Joli OS\/([0-9.]*)/iu' ], 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'OS/2', 'regexp' => [ '/OS\/2;(?: (?:U; )?Warp ([0-9.]*))?/iu' ], 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Inferno', 'regexp' => [ '/Inferno/iu' ], 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Syllable', 'regexp' => [ '/Syllable/iu' ], 'type' => Constants\DeviceType::DESKTOP ], + + [ 'name' => 'Grid OS', 'regexp' => [ '/Grid OS ([0-9.]*)/iu' ], 'type' => Constants\DeviceType::TABLET ], + + [ 'name' => 'MRE', 'regexp' => [ '/\(MTK;/iu', '/\/MTK /iu' ], 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'MRE', 'regexp' => [ '/MRE\\\\/iu' ], 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'MRE', 'regexp' => [ '/MAUI[-_ ](?:Browser|Runtime)/iu' ], 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'MRE', 'regexp' => [ '/Browser\/MAUI/iu' ], 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'MRE', 'regexp' => [ '/Nucleus RTOS\//iu' ], 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'MRE', 'regexp' => [ '/\/Nucleus/iu' ], 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'MRE', 'regexp' => [ '/Nucleus\//iu' ], 'type' => Constants\DeviceType::MOBILE ], + + [ 'name' => 'QNX', 'regexp' => [ '/QNX/iu' ], 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'VRE', 'regexp' => [ '/\(VRE;/iu' ], 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'SpreadTrum', 'regexp' => [ '/\(SpreadTrum;/iu' ], 'type' => Constants\DeviceType::MOBILE ], + + [ 'name' => 'EPOC', 'regexp' => [ '/EPOC;/iu' ], 'type' => Constants\DeviceType::PDA ], + + [ 'name' => 'ThreadX', 'regexp' => [ '/ThreadX(?:_OS)?\/([0-9.]*)/iu' ] ], + ]; + + $count = count($patterns); + for ($b = 0; $b < $count; $b++) { + for ($r = 0; $r < count($patterns[$b]['regexp']); $r++) { + + if (preg_match($patterns[$b]['regexp'][$r], $ua, $match)) { + $this->data->os->name = $patterns[$b]['name']; + + if (isset($match[1]) && $match[1]) { + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => isset($patterns[$b]['details']) ? $patterns[$b]['details'] : null ]); + } else { + $this->data->os->version = null; + } + + if (isset($patterns[$b]['type'])) { + $this->data->device->type = $patterns[$b]['type']; + } + + break; + } + } + } + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Useragent/Using.php b/integration/whichbrowser/src/Analyser/Header/Useragent/Using.php new file mode 100644 index 00000000..059c54f8 --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Useragent/Using.php @@ -0,0 +1,59 @@ + 'AdobeAIR', 'regexp' => '/AdobeAIR\/([0-9.]*)/u' ], + [ 'name' => 'Awesomium', 'regexp' => '/Awesomium\/([0-9.]*)/u' ], + [ 'name' => 'Delphi Embedded Web Browser', 'regexp' => '/EmbeddedWB ([0-9.]*)/u' ], + [ 'name' => 'Delphi Embedded Web Browser', 'regexp' => '/bsalsa\.com/u' ], + [ 'name' => 'Delphi Embedded Web Browser', 'regexp' => '/Embedded Web Browser/u' ], + [ 'name' => 'Canvace', 'regexp' => '/Canvace Standalone\/([0-9.]*)/u' ], + [ 'name' => 'Ekioh', 'regexp' => '/Ekioh\/([0-9.]*)/u' ], + [ 'name' => 'Electron', 'regexp' => '/AtomShell\/([0-9.]*)/u' ], + [ 'name' => 'Electron', 'regexp' => '/Electron\/([0-9.]*)/u' ], + [ 'name' => 'JavaFX', 'regexp' => '/JavaFX\/([0-9.]*)/u' ], + [ 'name' => 'GFXe', 'regexp' => '/GFXe\/([0-9.]*)/u' ], + [ 'name' => 'LuaKit', 'regexp' => '/luakit/u' ], + [ 'name' => 'Titanium', 'regexp' => '/Titanium\/([0-9.]*)/u' ], + [ 'name' => 'OpenWebKitSharp', 'regexp' => '/OpenWebKitSharp/u' ], + [ 'name' => 'Prism', 'regexp' => '/Prism\/([0-9.]*)/u' ], + [ 'name' => 'Qt', 'regexp' => '/Qt\/([0-9.]*)/u' ], + [ 'name' => 'Qt', 'regexp' => '/QtWebEngine\/([4-9][0-9.]*)?/u' ], + [ 'name' => 'Qt', 'regexp' => '/QtEmbedded/u' ], + [ 'name' => 'Qt', 'regexp' => '/QtEmbedded.*Qt\/([0-9.]*)/u' ], + [ 'name' => 'ReqwirelessWeb', 'regexp' => '/ReqwirelessWeb\/([0-9.]*)/u' ], + [ 'name' => 'RhoSimulator', 'regexp' => '/RhoSimulator/u' ], + [ 'name' => 'UWebKit', 'regexp' => '/UWebKit\/([0-9.]*)/u' ], + [ 'name' => 'Node-WebKit', 'regexp' => '/nw-tests\/([0-9.]*)/u' ], + [ 'name' => 'WebKit2.NET', 'regexp' => '/WebKit2.NET/u' ], + ]; + + $count = count($items); + for ($i = 0; $i < $count; $i++) { + if (preg_match($items[$i]['regexp'], $ua, $match)) { + $this->data->browser->using = new \WhichBrowser\Model\Using([ + 'name' => $items[$i]['name'] + ]); + + if (isset($match[1]) && $match[1]) { + $this->data->browser->using->version = new Version([ 'value' => $match[1], 'details' => isset($items[$i]['details']) ? $items[$i]['details'] : null ]); + } + + break; + } + } + + return $this; + } +} diff --git a/integration/whichbrowser/src/Analyser/Header/Wap.php b/integration/whichbrowser/src/Analyser/Header/Wap.php new file mode 100644 index 00000000..727feeeb --- /dev/null +++ b/integration/whichbrowser/src/Analyser/Header/Wap.php @@ -0,0 +1,41 @@ +data =& $data; + + $header = trim($header); + + if ($header[0] == '"') { + $header = explode(",", $header); + $header = trim($header[0], '"'); + } + + $result = Data\DeviceProfiles::identify($header); + + if ($result) { + $this->data->device->manufacturer = $result[0]; + $this->data->device->model = $result[1]; + $this->data->device->identified |= Constants\Id::MATCH_PROF; + + if (!empty($result[2]) && (!isset($this->data->os->name) || $this->data->os->name != $result[2])) { + $this->data->os->name = $result[2]; + $this->data->os->version = null; + + $this->data->engine->name = null; + $this->data->engine->version = null; + } + + if (isset($result[3])) { + $this->data->device->type = $result[3]; + } + } + } +} diff --git a/integration/whichbrowser/src/Cache.php b/integration/whichbrowser/src/Cache.php new file mode 100644 index 00000000..d0ea2133 --- /dev/null +++ b/integration/whichbrowser/src/Cache.php @@ -0,0 +1,110 @@ +cache = $cache; + $this->expires = $expires; + } + + + /** + * Apply cached data to the main Parser object + * + * @internal + * + * @param array $data An array with a key for every property it needs to apply + */ + + private function applyCachedData($data) + { + foreach ($data as $key => $value) { + $this->$key = $value; + } + + $this->cached = true; + } + + + /** + * Retrieve the data that can be cached from the main Parser object + * + * @internal + * + * @return array An array with a key for every property that will be cached + */ + + private function retrieveCachedData() + { + return [ + 'browser' => $this->browser, + 'engine' => $this->engine, + 'os' => $this->os, + 'device' => $this->device, + 'camouflage' => $this->camouflage, + 'features' => $this->features + ]; + } + + + /** + * Retrieve the result from the cache, or analyse and store in the cache + * + * @internal + * + * @param array|string $headers An array with all of the headers or a string with just the User-Agent header + * + * @return boolean did we actually retrieve or analyse results + */ + + private function analyseWithCache($headers, $options = []) + { + if (isset($options['cache'])) { + if (isset($options['cacheExpires'])) { + $this->setCache($options['cache'], $options['cacheExpires']); + } else { + $this->setCache($options['cache']); + } + } + + if ($this->cache instanceof CacheItemPoolInterface) { + $item = $this->cache->getItem('whichbrowser-' . md5(serialize($headers))); + + if ($item->isHit()) { + $this->applyCachedData($item->get()); + } else { + $analyser = new Analyser($headers, $options); + $analyser->setdata($this); + $analyser->analyse(); + + $item->set($this->retrieveCachedData()); + $item->expiresAfter($this->expires); + $this->cache->save($item); + } + + return true; + } + } +} diff --git a/integration/whichbrowser/src/Constants/BrowserType.php b/integration/whichbrowser/src/Constants/BrowserType.php new file mode 100644 index 00000000..987f00f5 --- /dev/null +++ b/integration/whichbrowser/src/Constants/BrowserType.php @@ -0,0 +1,28 @@ + $list) { + foreach ($list as $i => $item) { + + if (preg_match($item['regexp'], $ua, $match)) { + return [ + 'browser' => [ + 'name' => $item['name'], + 'hidden' => isset($item['hidden']) ? $item['hidden'] : false, + 'stock' => false, + 'channel' => '', + 'type' => $type, + 'version' => isset($match[1]) && $match[1] ? new Version([ 'value' => $match[1], 'details' => isset($item['details']) ? $item['details'] : null ]) : null + ], + + 'device' => isset($item['type']) ? [ + 'type' => $item['type'] + ] : null + ]; + } + } + } + } + } + + public static function identifyOther($ua) + { + require_once __DIR__ . '/../../data/regexes/applications-others.php'; + + if (preg_match(self::$OTHERS_REGEX, $ua)) { + require_once __DIR__ . '/../../data/applications-others.php'; + + foreach (self::$OTHERS as $type => $list) { + foreach ($list as $i => $item) { + + if (preg_match($item['regexp'], $ua, $match)) { + return [ + 'browser' => [ + 'name' => $item['name'], + 'hidden' => isset($item['hidden']) ? $item['hidden'] : false, + 'stock' => false, + 'channel' => '', + 'type' => $type, + 'version' => isset($match[1]) && $match[1] ? new Version([ 'value' => $match[1], 'details' => isset($item['details']) ? $item['details'] : null ]) : null + ], + + 'device' => isset($item['type']) ? [ + 'type' => $item['type'] + ] : null + ]; + } + } + } + } + } + public static function identifyBot($ua) + { + require_once __DIR__ . '/../../data/regexes/applications-bots.php'; + + if (preg_match(self::$BOTS_REGEX, $ua)) { + require_once __DIR__ . '/../../data/applications-bots.php'; + + foreach (self::$BOTS as $i => $item) { + if (preg_match($item['regexp'], $ua, $match)) { + return new Browser([ + 'name' => $item['name'], + 'stock' => false, + 'version' => isset($match[1]) && $match[1] ? new Version([ 'value' => $match[1], 'details' => isset($item['details']) ? $item['details'] : null ]) : null + ]); + } + } + } + } +} diff --git a/integration/whichbrowser/src/Data/BrowserIds.php b/integration/whichbrowser/src/Data/BrowserIds.php new file mode 100644 index 00000000..d0d27e43 --- /dev/null +++ b/integration/whichbrowser/src/Data/BrowserIds.php @@ -0,0 +1,17 @@ + BuildIds::$ANDROID_BUILDS[$id] ]); + } + } + } +} diff --git a/integration/whichbrowser/src/Data/CFNetwork.php b/integration/whichbrowser/src/Data/CFNetwork.php new file mode 100644 index 00000000..6f7ede71 --- /dev/null +++ b/integration/whichbrowser/src/Data/CFNetwork.php @@ -0,0 +1,27 @@ + Constants\DeviceType::MOBILE, + 'identified' => Constants\Id::NONE, + 'manufacturer' => null, + 'model' => $model, + 'identifier' => $original, + 'generic' => false + ]); + + if (isset(self::$IOS_MODELS[$model])) { + $match = self::$IOS_MODELS[$model]; + + $device->manufacturer = $match[0]; + $device->model = $match[1]; + $device->identified = Constants\Id::MATCH_UA; + + if (isset($match[2]) || isset($match['type'])) { + $type = isset($match[2]) ? $match[2] : $match['type']; + $device->type = $type; + } + + return $device; + } + + return $device; + } + + public static function identifyBlackBerry($model) + { + $original = $model; + + if (preg_match("/BlackBerry ?([0-9]+)/ui", $model, $match)) { + $model = $match[1]; + } + + $device = new Device([ + 'type' => Constants\DeviceType::MOBILE, + 'identified' => Constants\Id::NONE, + 'manufacturer' => null, + 'model' => $model, + 'identifier' => $original, + 'generic' => false + ]); + + if (preg_match("/^[1-9][0-9][0-9][0-9][ei]?$/u", $model)) { + $device->manufacturer = 'RIM'; + $device->model = 'BlackBerry ' . $model; + $device->identified = Constants\Id::PATTERN; + + if (isset(self::$BLACKBERRY_MODELS[$model])) { + $device->model = 'BlackBerry ' . self::$BLACKBERRY_MODELS[$model] . ' ' . $model; + $device->identified |= Constants\Id::MATCH_UA; + } + } + + return $device; + } + + public static function identifyAndroid($model) + { + $result = self::identifyList(self::$ANDROID_INDEX, self::$ANDROID_MODELS, $model); + + if (!$result->identified) { + $model = self::cleanup($model); + if (preg_match('/AndroVM/iu', $model) || $model == 'Emulator' || $model == 'x86 Emulator' || $model == 'x86 VirtualBox' || $model == 'vm') { + return new Device([ + 'type' => Constants\DeviceType::EMULATOR, + 'identified' => Constants\Id::PATTERN, + 'manufacturer' => null, + 'model' => null, + 'generic' => false + ]); + } + } + + return $result; + } + + public static function identifyList(&$index, &$list, $model, $cleanup = true) + { + $original = $model; + + if ($cleanup) { + $model = self::cleanup($model); + } + + $device = new Device([ + 'type' => Constants\DeviceType::MOBILE, + 'identified' => Constants\Id::NONE, + 'manufacturer' => null, + 'model' => $model, + 'identifier' => $original, + 'generic' => false + ]); + + $keys = [ '@' . strtoupper(substr($model, 0, 2)), '@' ]; + + $pattern = null; + $match = null; + + foreach ($keys as $k => $key) { + if (isset($index[$key])) { + foreach ($index[$key] as $m => $v) { + if (self::hasMatch($v, $model)) { + if ($v) { + if (substr($v, -2) == "!!") { + foreach ($list[$v] as $m2 => $v2) { + if (self::hasMatch($m2, $model)) { + $match = $v2; + $pattern = $m2; + break; + } + } + } else { + $match = $list[$v]; + $pattern = $v; + } + } + + if ($match) { + $device->manufacturer = $match[0]; + $device->model = self::applyMatches($match[1], $model, $pattern); + $device->identified = Constants\Id::MATCH_UA; + + if (isset($match[2]) || isset($match['type'])) { + $type = isset($match[2]) ? $match[2] : $match['type']; + if (is_array($type)) { + $device->type = $type[0]; + $device->subtype = $type[1]; + } else { + $device->type = $type; + } + } + + if (isset($match[3]) || isset($match['flag'])) { + $device->flag = isset($match[3]) ? $match[3] : $match['flag']; + } + + if (isset($match['carrier'])) { + $device->carrier = $match['carrier']; + } + + if ($device->manufacturer == null && $device->model == null) { + $device->identified = Constants\Id::PATTERN; + } + + return $device; + } + } + } + } + } + + return $device; + } + + public static function applyMatches($model, $original, $pattern) + { + if (strpos($model, '$') !== false && substr($pattern, -1) == "!") { + if (preg_match('/^' . substr($pattern, 0, -1) . '/iu', $original, $matches)) { + foreach ($matches as $k => $v) { + $model = str_replace('$' . $k, $v, $model); + } + } + } + + return $model; + } + + public static function hasMatch($pattern, $model) + { + if (substr($pattern, -2) == "!!") { + return !! preg_match('/^' . substr($pattern, 0, -2) . '/iu', $model); + } elseif (substr($pattern, -1) == "!") { + return !! preg_match('/^' . substr($pattern, 0, -1) . '/iu', $model); + } else { + return strtolower($pattern) == strtolower($model); + } + } + + public static function cleanup($s = '') + { + // var_dump($s); + + $s = preg_replace('/^phone\//', '', $s); + $s = preg_replace('/^(\/|; |;)/u', '', $s); + $s = preg_replace('/\/[^\/]+$/u', '', $s); + $s = preg_replace('/\/[^\/]+ Android\/.*/u', '', $s); + + $s = preg_replace('/UCBrowser$/u', '', $s); + + $s = preg_replace('/(_TD|_LTE|_GPRS|_BLEU|_CMCC|_CMCC_TD|_CUCC)$/u', '', $s); + $s = preg_replace('/(-BREW| MIDP).+$/u', '', $s); + $s = preg_replace('/ AU-MIC.+$/u', '', $s); + $s = preg_replace('/ (AU|UP)\.Browser$/u', '', $s); + + $s = preg_replace('/_/u', ' ', $s); + $s = preg_replace('/^\*+/u', '', $s); + $s = preg_replace('/^\s+|\s+$/u', '', $s); + + $s = preg_replace('/^De-Sensed /u', '', $s); + $s = preg_replace('/^Full JellyBean( on )?/u', '', $s); + $s = preg_replace('/^(Android|Generic Android|Baidu Yi|Buildroid|Gingerbread|ICS AOSP|AOSPA?|tita) (on |for )/u', '', $s); + $s = preg_replace('/^Full (AOSP on |Android on |Base for |Cappuccino on |MIPS Android on |Webdroid on |JellyBean on |Android)/u', '', $s); + + $s = preg_replace('/^Acer( |-)?/iu', '', $s); + $s = preg_replace('/^Iconia( Tab)? /u', '', $s); + $s = preg_replace('/^ASUS ?/u', '', $s); + $s = preg_replace('/^Ainol /u', '', $s); + $s = preg_replace('/^Coolpad-?Coolpad/iu', 'Coolpad', $s); + $s = preg_replace('/^Coolpad ?/iu', 'Coolpad ', $s); + $s = preg_replace('/^Alcatel[_ ]OT[_-](.*)/iu', 'One Touch $1', $s); + $s = preg_replace('/^ALCATEL /u', '', $s); + $s = preg_replace('/^YL-/u', '', $s); + $s = preg_replace('/^TY-K[_\- ]Touch/iu', 'K-Touch', $s); + $s = preg_replace('/^K-Touch[_\-]/u', 'K-Touch ', $s); + $s = preg_replace('/^Novo7 ?/iu', 'Novo7 ', $s); + $s = preg_replace('/^HW-HUAWEI/u', 'HUAWEI', $s); + $s = preg_replace('/^Huawei[ -]/iu', 'Huawei ', $s); + $s = preg_replace('/^SAMSUNG SAMSUNG-/iu', '', $s); + $s = preg_replace('/^SAMSUNG[ -]/iu', '', $s); + $s = preg_replace('/^(Sony ?Ericsson|Sony)/u', '', $s); + $s = preg_replace('/^(Lenovo Lenovo|LNV-Lenovo|LENOVO-Lenovo)/u', 'Lenovo', $s); + $s = preg_replace('/^Lenovo-/u', 'Lenovo', $s); + $s = preg_replace('/^Lenovo/u', 'Lenovo ', $s); + $s = preg_replace('/^ZTE-/u', 'ZTE ', $s); + $s = preg_replace('/^(LG)[ _\/]/u', '$1-', $s); + $s = preg_replace('/^(HTC.+)\s[v|V][0-9.]+$/u', '$1', $s); + $s = preg_replace('/^(HTC)[-\/]/u', '$1 ', $s); + $s = preg_replace('/^(HTC)([A-Z][0-9][0-9][0-9])/u', '$1 $2', $s); + $s = preg_replace('/^(Motorola MOT-|MOT-|Motorola[\s|-])/u', '', $s); + $s = preg_replace('/^Moto([^\s])/u', '$1', $s); + $s = preg_replace('/^(UTStar-)/u', '', $s); + + $s = preg_replace('/^VZW:/iu', '', $s); + $s = preg_replace('/^(Swisscom|Vodafone)\/1.0\//iu', '', $s); + $s = preg_replace('/-?(orange(-ls)?|vodafone|bouygues|parrot|Kust)$/iu', '', $s); + $s = preg_replace('/[ -](Mozilla|Opera|Obigo|Java|PPC)$/iu', '', $s); + $s = preg_replace('/ ?Build$/iu', '', $s); + $s = preg_replace('/ \(compatible$/iu', '', $s); + $s = preg_replace('/http:\/\/.+$/iu', '', $s); + $s = preg_replace('/^\s+|\s+$/u', '', $s); + $s = preg_replace('/\s+/u', ' ', $s); + + return $s; + } +} diff --git a/integration/whichbrowser/src/Data/DeviceProfiles.php b/integration/whichbrowser/src/Data/DeviceProfiles.php new file mode 100644 index 00000000..90cde6f6 --- /dev/null +++ b/integration/whichbrowser/src/Data/DeviceProfiles.php @@ -0,0 +1,19 @@ +channel); + unset($this->using); + unset($this->family); + + $this->stock = true; + $this->hidden = false; + $this->mode = ''; + $this->type = ''; + + if (is_array($properties)) { + $this->set($properties); + } + } + + + /** + * Get the name in a human readable format + * + * @return string + */ + + public function getName() + { + $name = !empty($this->alias) ? $this->alias : (!empty($this->name) ? $this->name : ''); + return $name ? $name . (!empty($this->channel) ? ' ' . $this->channel : '') : ''; + } + + + /** + * Is the browser from the specified family + * + * @param string $name The name of the family + * + * @return boolean + */ + + public function isFamily($name) + { + if ($this->getName() == $name) { + return true; + } + + if (isset($this->family)) { + if ($this->family->getName() == $name) { + return true; + } + } + + return false; + } + + + /** + * Is the browser using the specified webview + * + * @param string $name The name of the webview + * + * @return boolean + */ + + public function isUsing($name) + { + if (isset($this->using)) { + if ($this->using->getName() == $name) { + return true; + } + } + + return false; + } + + + /** + * Get a combined name and version number in a human readable format + * + * @return string + */ + + public function toString() + { + if ($this->hidden) { + return ''; + } + + $result = trim($this->getName() . ' ' . (!empty($this->version) && !$this->version->hidden ? $this->getVersion() : '')); + + if (empty($result) && isset($this->using)) { + return $this->using->toString(); + } + + return $result; + } + + + /** + * Get an array of all defined properties + * + * @internal + * + * @return array + */ + + public function toArray() + { + $result = []; + + if (!empty($this->name)) { + $result['name'] = $this->name; + } + + if (!empty($this->alias)) { + $result['alias'] = $this->alias; + } + + if (!empty($this->using)) { + $result['using'] = $this->using->toArray(); + } + + if (!empty($this->family)) { + $result['family'] = $this->family->toArray(); + } + + if (!empty($this->version)) { + $result['version'] = $this->version->toArray(); + } + + if (!empty($this->type)) { + $result['type'] = $this->type; + } + + if (isset($result['version']) && !count($result['version'])) { + unset($result['version']); + } + + return $result; + } +} diff --git a/integration/whichbrowser/src/Model/Device.php b/integration/whichbrowser/src/Model/Device.php new file mode 100644 index 00000000..6428f4f1 --- /dev/null +++ b/integration/whichbrowser/src/Model/Device.php @@ -0,0 +1,251 @@ +manufacturer); + unset($this->model); + unset($this->series); + unset($this->carrier); + unset($this->identifier); + + $this->type = ''; + $this->subtype = ''; + $this->identified = Constants\Id::NONE; + $this->generic = true; + $this->hidden = false; + + if (is_array($properties)) { + $this->set($properties); + } + } + + + /** + * Identify the manufacturer and model based on a pattern + * + * @param string $pattern The regular expression that defines the group that matches the model + * @param string $subject The string the regular expression is matched with + * @param array|null $defaults An optional array of properties to set together + * + * @return string + */ + + public function identifyModel($pattern, $subject, $defaults = []) + { + if (preg_match($pattern, $subject, $match)) { + $this->manufacturer = !empty($defaults['manufacturer']) ? $defaults['manufacturer'] : null; + $this->model = Data\DeviceModels::cleanup($match[1]); + $this->identifier = preg_replace('/ (Mozilla|Opera|Obigo|AU.Browser|UP.Browser|Build|Java|PPC|AU-MIC.*)$/iu', '', $match[0]); + $this->identifier = preg_replace('/_(TD|GPRS|LTE|BLEU|CMCC|CUCC)$/iu', '', $match[0]); + + if (isset($defaults['model'])) { + if (is_callable($defaults['model'])) { + $this->model = call_user_func($defaults['model'], $this->model); + } else { + $this->model = $defaults['model']; + } + } + + $this->generic = false; + $this->identified |= Constants\Id::PATTERN; + + if (!empty($defaults['carrier'])) { + $this->carrier = $defaults['carrier']; + } + + if (!empty($defaults['type'])) { + $this->type = $defaults['type']; + } + } + } + + + /** + * Declare an positive identification + * + * @param array $properties An array, the key of an element determines the name of the property + * + * @return string + */ + + public function setIdentification($properties) + { + $this->reset($properties); + + if (!empty($this->model)) { + $this->generic = false; + } + + $this->identified |= Constants\Id::MATCH_UA; + } + + + /** + * Get the name of the carrier in a human readable format + * + * @return string + */ + + public function getCarrier() + { + return $this->identified && !empty($this->carrier) ? $this->carrier : ''; + } + + + /** + * Get the name of the manufacturer in a human readable format + * + * @return string + */ + + public function getManufacturer() + { + return $this->identified && !empty($this->manufacturer) ? $this->manufacturer : ''; + } + + + /** + * Get the name of the model in a human readable format + * + * @return string + */ + + public function getModel() + { + if ($this->identified) { + return trim((!empty($this->model) ? $this->model . ' ' : '') . (!empty($this->series) ? $this->series : '')); + } + + return !empty($this->model) ? $this->model : ''; + } + + + /** + * Get the combined name of the manufacturer and model in a human readable format + * + * @return string + */ + + public function toString() + { + if ($this->hidden) { + return ''; + } + + if ($this->identified) { + $model = $this->getModel(); + $manufacturer = $this->getManufacturer(); + + if ($manufacturer != '' && strpos($model, $manufacturer) === 0) { + $manufacturer = ''; + } + + return trim($manufacturer . ' ' . $model); + } + + return !empty($this->model) ? 'unrecognized device (' . $this->model . ')' : ''; + } + + + /** + * Check if device information is detected + * + * @return boolean + */ + + public function isDetected() + { + return !empty($this->type) || !empty($this->model) || !empty($this->manufacturer); + } + + + /** + * Get an array of all defined properties + * + * @internal + * + * @return array + */ + + public function toArray() + { + $result = []; + + if (!empty($this->type)) { + $result['type'] = $this->type; + } + + if (!empty($this->subtype)) { + $result['subtype'] = $this->subtype; + } + + if (!empty($this->manufacturer)) { + $result['manufacturer'] = $this->manufacturer; + } + + if (!empty($this->model)) { + $result['model'] = $this->model; + } + + if (!empty($this->series)) { + $result['series'] = $this->series; + } + + if (!empty($this->carrier)) { + $result['carrier'] = $this->carrier; + } + + return $result; + } +} diff --git a/integration/whichbrowser/src/Model/Engine.php b/integration/whichbrowser/src/Model/Engine.php new file mode 100644 index 00000000..046964a0 --- /dev/null +++ b/integration/whichbrowser/src/Model/Engine.php @@ -0,0 +1,35 @@ +name)) { + $result['name'] = $this->name; + } + + if (!empty($this->version)) { + $result['version'] = $this->version->toArray(); + } + + if (isset($result['version']) && !count($result['version'])) { + unset($result['version']); + } + + return $result; + } +} diff --git a/integration/whichbrowser/src/Model/Family.php b/integration/whichbrowser/src/Model/Family.php new file mode 100644 index 00000000..d6aad95a --- /dev/null +++ b/integration/whichbrowser/src/Model/Family.php @@ -0,0 +1,35 @@ +name) && empty($this->version)) { + return $this->name; + } + + if (!empty($this->name)) { + $result['name'] = $this->name; + } + + if (!empty($this->version)) { + $result['version'] = $this->version->toArray(); + } + + return $result; + } +} diff --git a/integration/whichbrowser/src/Model/Main.php b/integration/whichbrowser/src/Model/Main.php new file mode 100644 index 00000000..bf011198 --- /dev/null +++ b/integration/whichbrowser/src/Model/Main.php @@ -0,0 +1,373 @@ +browser = new Browser(); + $this->engine = new Engine(); + $this->os = new Os(); + $this->device = new Device(); + } + + + /** + * Check the name of a property and optionally is a specific version + * + * @internal + * + * @param string The name of the property, such as 'browser', 'engine' or 'os' + * @param string The name of the browser that is checked + * @param string Optional, the operator, must be <, <=, =, >= or > + * @param mixed Optional, the value, can be an integer, float or string with a version number + * + * @return boolean + */ + + private function isX() + { + $arguments = func_get_args(); + $x = $arguments[0]; + + if (count($arguments) < 2) { + return false; + } + + if (empty($this->$x->name)) { + return false; + } + + if ($this->$x->name != $arguments[1]) { + return false; + } + + if (count($arguments) >= 4) { + if (empty($this->$x->version)) { + return false; + } + + if (!$this->$x->version->is($arguments[2], $arguments[3])) { + return false; + } + } + + return true; + } + + + /** + * Check the name of the browser and optionally is a specific version + * + * @param string The name of the browser that is checked + * @param string Optional, the operator, must be <, <=, =, >= or > + * @param mixed Optional, the value, can be an integer, float or string with a version number + * + * @return boolean + */ + + public function isBrowser() + { + $arguments = func_get_args(); + array_unshift($arguments, 'browser'); + return call_user_func_array([ $this, 'isX' ], $arguments); + } + + + /** + * Check the name of the rendering engine and optionally is a specific version + * + * @param string The name of the rendering engine that is checked + * @param string Optional, the operator, must be <, <=, =, >= or > + * @param mixed Optional, the value, can be an integer, float or string with a version number + * + * @return boolean + */ + + public function isEngine() + { + $arguments = func_get_args(); + array_unshift($arguments, 'engine'); + return call_user_func_array([ $this, 'isX' ], $arguments); + } + + + /** + * Check the name of the operating system and optionally is a specific version + * + * @param string The name of the operating system that is checked + * @param string Optional, the operator, must be <, <=, =, >= or > + * @param mixed Optional, the value, can be an integer, float or string with a version number + * + * @return boolean + */ + + public function isOs() + { + $arguments = func_get_args(); + array_unshift($arguments, 'os'); + return call_user_func_array([ $this, 'isX' ], $arguments); + } + + + /** + * Check if the detected browser is of the specified type + * + * @param string $model The type, or a combination of type and subtime joined with a semicolon. + * + * @return boolean + */ + + public function isDevice($model) + { + return (!empty($this->device->series) && $this->device->series == $model) || (!empty($this->device->model) && $this->device->model == $model); + } + + + /** + * Get the type and subtype, separated by a semicolon (if applicable) + * + * @return string + */ + + public function getType() + { + return $this->device->type . (!empty($this->device->subtype) ? ':' . $this->device->subtype : ''); + } + + + /** + * Check if the detected browser is of the specified type + * + * @param string The type, or a combination of type and subtype joined with a semicolon. + * @param string Unlimited optional types to check + * + * @return boolean + */ + + public function isType() + { + $arguments = func_get_args(); + + $count = count($arguments); + for ($a = 0; $a < $count; $a++) { + if (strpos($arguments[$a], ':') !== false) { + list($type, $subtype) = explode(':', $arguments[$a]); + if ($type == $this->device->type && $subtype == $this->device->subtype) { + return true; + } + } else { + if ($arguments[$a] == $this->device->type) { + return true; + } + } + } + + return false; + } + + + /** + * Check if the detected browser is a mobile device + * + * @return boolean + */ + + public function isMobile() + { + return $this->isType('mobile', 'tablet', 'ereader', 'media', 'watch', 'camera', 'gaming:portable'); + } + + + /** + * Check if a browser was detected + * + * @return boolean + */ + + public function isDetected() + { + return $this->browser->isDetected() || $this->os->isDetected() || $this->engine->isDetected() || $this->device->isDetected(); + } + + + /** + * Return the input string prefixed with 'a' or 'an' depending on the first letter of the string + * + * @internal + * + * @param string $s The string that will be prefixed + * + * @return string + */ + + private function a($s) + { + return (preg_match("/^[aeiou]/i", $s) ? 'an ' : 'a ') . $s; + } + + + /** + * Get a human readable string of the whole browser identification + * + * @return string + */ + + public function toString() + { + $prefix = $this->camouflage ? 'an unknown browser that imitates ' : ''; + $browser = $this->browser->toString(); + $os = $this->os->toString(); + $engine = $this->engine->toString(); + $device = $this->device->toString(); + + + if (empty($device) && empty($os) && $this->device->type == 'television') { + $device = 'television'; + } + + if (empty($device) && $this->device->type == 'emulator') { + $device = 'emulator'; + } + + + if (!empty($browser) && !empty($os) && !empty($device)) { + return $prefix . $browser . ' on ' . $this->a($device) . ' running ' . $os; + } + + if (!empty($browser) && empty($os) && !empty($device)) { + return $prefix . $browser . ' on ' . $this->a($device); + } + + if (!empty($browser) && !empty($os) && empty($device)) { + return $prefix . $browser . ' on ' . $os; + } + + if (empty($browser) && !empty($os) && !empty($device)) { + return $prefix . $this->a($device) . ' running ' . $os; + } + + if (!empty($browser) && empty($os) && empty($device)) { + return $prefix . $browser; + } + + if (empty($browser) && empty($os) && !empty($device)) { + return $prefix . $this->a($device); + } + + if ($this->device->type == 'desktop' && !empty($os) && !empty($engine) && empty($device)) { + return 'an unknown browser based on ' . $engine . ' running on ' . $os; + } + + if ($this->browser->stock && !empty($os) && empty($device)) { + return $os; + } + + if ($this->browser->stock && !empty($engine) && empty($device)) { + return 'an unknown browser based on ' . $engine; + } + + if ($this->device->type == 'bot') { + return 'an unknown bot'; + } + + return 'an unknown browser'; + } + + + /** + * Get a string containing a JavaScript representation of the object + * + * @return string + */ + + public function toJavaScript() + { + return "this.browser = new Browser({ " . $this->browser->toJavaScript() . " });\n" . + "this.engine = new Engine({ " . $this->engine->toJavaScript() . " });\n" . + "this.os = new Os({ " . $this->os->toJavaScript() . " });\n" . + "this.device = new Device({ " . $this->device->toJavaScript() . " });\n" . + "this.camouflage = " . ($this->camouflage ? 'true' : 'false') . ";\n" . + "this.features = " . json_encode($this->features) . ";\n"; + } + + + /** + * Get an array of all defined properties + * + * @return array + */ + + public function toArray() + { + $result = [ + 'browser' => $this->browser->toArray(), + 'engine' => $this->engine->toArray(), + 'os' => $this->os->toArray(), + 'device' => $this->device->toArray() + ]; + + if (!count($result['browser'])) { + unset($result['browser']); + } + + if (!count($result['engine'])) { + unset($result['engine']); + } + + if (!count($result['os'])) { + unset($result['os']); + } + + if (!count($result['device'])) { + unset($result['device']); + } + + if ($this->camouflage) { + $result['camouflage'] = true; + } + + return $result; + } +} diff --git a/integration/whichbrowser/src/Model/Os.php b/integration/whichbrowser/src/Model/Os.php new file mode 100644 index 00000000..09ff44c7 --- /dev/null +++ b/integration/whichbrowser/src/Model/Os.php @@ -0,0 +1,140 @@ +family); + unset($this->edition); + + $this->hidden = false; + + if (is_array($properties)) { + $this->set($properties); + } + } + + + /** + * Return the name of the operating system family + * + * @return string + */ + + public function getFamily() + { + if (isset($this->family)) { + return $this->family->getName(); + } + + return $this->getName(); + } + + + /** + * Is the operating from the specified family + * + * @param string $name The name of the family + * + * @return boolean + */ + + public function isFamily($name) + { + if ($this->getName() == $name) { + return true; + } + + if (isset($this->family)) { + if ($this->family->getName() == $name) { + return true; + } + } + + return false; + } + + + /** + * Get the name and version in a human readable format + * + * @return string + */ + + public function toString() + { + if ($this->hidden) { + return ''; + } + + return trim($this->getName() . + (!empty($this->version) && !$this->version->hidden ? ' ' . $this->getVersion() : '')) . + (!empty($this->edition) ? ' ' . $this->edition : ''); + } + + + /** + * Get an array of all defined properties + * + * @internal + * + * @return array + */ + + public function toArray() + { + $result = []; + + if (!empty($this->name)) { + $result['name'] = $this->name; + } + + if (!empty($this->family)) { + $result['family'] = $this->family->toArray(); + } + + if (!empty($this->alias)) { + $result['alias'] = $this->alias; + } + + if (!empty($this->edition)) { + $result['edition'] = $this->edition; + } + + if (!empty($this->version)) { + $result['version'] = $this->version->toArray(); + } + + if (isset($result['version']) && !count($result['version'])) { + unset($result['version']); + } + + return $result; + } +} diff --git a/integration/whichbrowser/src/Model/Primitive/Base.php b/integration/whichbrowser/src/Model/Primitive/Base.php new file mode 100644 index 00000000..35247edd --- /dev/null +++ b/integration/whichbrowser/src/Model/Primitive/Base.php @@ -0,0 +1,81 @@ +set($defaults); + } + } + + + /** + * Set the properties of the object the the values specified in the array + * + * @param array $properties An array, the key of an element determines the name of the property + * + * @internal + */ + public function set($properties) + { + foreach ($properties as $k => $v) { + $this->{$k} = $v; + } + } + + + /** + * Get a string containing a JavaScript representation of the object + * + * @internal + * + * @return string + */ + + public function toJavaScript() + { + $lines = []; + + foreach (get_object_vars($this) as $key => $value) { + if (!is_null($value)) { + $line = $key . ": "; + + if ($key == 'version') { + $line .= 'new Version({ ' . $value->toJavaScript() . ' })'; + } elseif ($key == 'family') { + $line .= 'new Family({ ' . $value->toJavaScript() . ' })'; + } elseif ($key == 'using') { + $line .= 'new Using({ ' . $value->toJavaScript() . ' })'; + } else { + switch (gettype($value)) { + case 'boolean': + $line .= $value ? 'true' : 'false'; + break; + case 'string': + $line .= '"' . addslashes($value) . '"'; + break; + case 'integer': + $line .= $value; + break; + } + } + + $lines[] = $line; + } + } + + return implode($lines, ", "); + } +} diff --git a/integration/whichbrowser/src/Model/Primitive/NameVersion.php b/integration/whichbrowser/src/Model/Primitive/NameVersion.php new file mode 100644 index 00000000..832cee03 --- /dev/null +++ b/integration/whichbrowser/src/Model/Primitive/NameVersion.php @@ -0,0 +1,121 @@ +name); + unset($this->alias); + unset($this->version); + + if (is_array($properties)) { + $this->set($properties); + } + } + + + /** + * Identify the version based on a pattern + * + * @param string $pattern The regular expression that defines the group that matches the version string + * @param string $subject The string the regular expression is matched with + * @param array|null $defaults An optional array of properties to set together with the value + * + * @return string + */ + + public function identifyVersion($pattern, $subject, $defaults = []) + { + if (preg_match($pattern, $subject, $match)) { + $version = $match[1]; + + if (isset($defaults['type'])) { + switch ($defaults['type']) { + case 'underscore': + $version = str_replace('_', '.', $version); + break; + case 'legacy': + $version = preg_replace("/([0-9])([0-9])/", '$1.$2', $version); + break; + } + } + + + $this->version = new Version(array_merge($defaults, [ 'value' => $version ])); + } + } + + + /** + * Get the name in a human readable format + * + * @return string + */ + + public function getName() + { + return !empty($this->alias) ? $this->alias : (!empty($this->name) ? $this->name : ''); + } + + + /** + * Get the version in a human readable format + * + * @return string + */ + + public function getVersion() + { + return !empty($this->version) ? $this->version->toString() : ''; + } + + + /** + * Is a name detected? + * + * @return boolean + */ + + public function isDetected() + { + return !empty($this->name); + } + + + /** + * Get the name and version in a human readable format + * + * @return string + */ + + public function toString() + { + return trim($this->getName() . ' ' . (!empty($this->version) && !$this->version->hidden ? $this->getVersion() : '')); + } +} diff --git a/integration/whichbrowser/src/Model/Using.php b/integration/whichbrowser/src/Model/Using.php new file mode 100644 index 00000000..aae64697 --- /dev/null +++ b/integration/whichbrowser/src/Model/Using.php @@ -0,0 +1,35 @@ +name) && empty($this->version)) { + return $this->name; + } + + if (!empty($this->name)) { + $result['name'] = $this->name; + } + + if (!empty($this->version)) { + $result['version'] = $this->version->toArray(); + } + + return $result; + } +} diff --git a/integration/whichbrowser/src/Model/Version.php b/integration/whichbrowser/src/Model/Version.php new file mode 100644 index 00000000..175edfe2 --- /dev/null +++ b/integration/whichbrowser/src/Model/Version.php @@ -0,0 +1,301 @@ += or > + * @param mixed The value, can be an integer, float or string with a version number + * + * @return boolean + */ + + public function is() + { + $valid = false; + + $arguments = func_get_args(); + if (count($arguments)) { + $operator = '='; + $compare = null; + + if (count($arguments) == 1) { + $compare = $arguments[0]; + } + + if (count($arguments) >= 2) { + $operator = $arguments[0]; + $compare = $arguments[1]; + } + + if (!is_null($compare)) { + $min = min(substr_count($this->value, '.'), substr_count($compare, '.')) + 1; + + $v1 = $this->toValue($this->value, $min); + $v2 = $this->toValue($compare, $min); + + switch ($operator) { + case '<': + $valid = $v1 < $v2; + break; + case '<=': + $valid = $v1 <= $v2; + break; + case '=': + $valid = $v1 == $v2; + break; + case '>': + $valid = $v1 > $v2; + break; + case '>=': + $valid = $v1 >= $v2; + break; + } + } + } + + return $valid; + } + + + /** + * Return an object with each part of the version number + * + * @return object + */ + + public function getParts() + { + $parts = explode('.', $this->value); + + return (object) [ + 'major' => !empty($parts[0]) ? intval($parts[0]) : 0, + 'minor' => !empty($parts[1]) ? intval($parts[1]) : 0, + 'patch' => !empty($parts[2]) ? intval($parts[2]) : 0, + ]; + } + + + /** + * Return the major version as an integer + * + * @return integer + */ + + public function getMajor() + { + return $this->getParts()->major; + } + + + /** + * Return the minor version as an integer + * + * @return integer + */ + + public function getMinor() + { + return $this->getParts()->minor; + } + + + /** + * Return the patch number as an integer + * + * @return integer + */ + + public function getPatch() + { + return $this->getParts()->patch; + } + + + /** + * Convert a version string seperated by dots into a float that can be compared + * + * @internal + * + * @param string Version string, with elements seperated by a dot + * @param int The maximum precision + * + * @return float + */ + + private function toValue($value = null, $count = null) + { + if (is_null($value)) { + $value = $this->value; + } + + $parts = explode('.', $value); + if (!is_null($count)) { + $parts = array_slice($parts, 0, $count); + } + + $result = $parts[0]; + + if (count($parts) > 1) { + $result .= '.'; + + $count = count($parts); + for ($p = 1; $p < $count; $p++) { + $result .= substr('0000' . $parts[$p], -4); + } + } + + return floatval($result); + } + + + /** + * Return the version as a float + * + * @return float + */ + + public function toFloat() + { + return floatval($this->value); + } + + + /** + * Return the version as an integer + * + * @return int + */ + + public function toNumber() + { + return intval($this->value); + } + + + /** + * Return the version as a human readable string + * + * @return string + */ + + public function toString() + { + if (!empty($this->alias)) { + return $this->alias; + } + + $version = ''; + + if (!empty($this->nickname)) { + $version .= $this->nickname . ' '; + } + + if (!empty($this->value)) { + if (preg_match("/([0-9]+)(?:\.([0-9]+))?(?:\.([0-9]+))?(?:\.([0-9]+))?(?:([ab])([0-9]+))?/", $this->value, $match)) { + $v = [ $match[1] ]; + + if (array_key_exists(2, $match) && strlen($match[2])) { + $v[] = $match[2]; + } + + if (array_key_exists(3, $match) && strlen($match[3])) { + $v[] = $match[3]; + } + + if (array_key_exists(4, $match) && strlen($match[4])) { + $v[] = $match[4]; + } + + if (!empty($this->details)) { + if ($this->details < 0) { + array_splice($v, $this->details, 0 - $this->details); + } + + if ($this->details > 0) { + array_splice($v, $this->details, count($v) - $this->details); + } + } + + if (isset($this->builds) && !$this->builds) { + $count = count($v); + for ($i = 0; $i < $count; $i++) { + if ($v[$i] > 999) { + array_splice($v, $i, 1); + } + } + } + + $version .= implode($v, '.'); + + if (array_key_exists(5, $match) && strlen($match[5])) { + $version .= $match[5] . (!empty($match[6]) ? $match[6] : ''); + } + } + } + + return $version; + } + + + /** + * Get an array of all defined properties + * + * @internal + * + * @return array + */ + + public function toArray() + { + $result = []; + + if (!empty($this->value)) { + if (!empty($this->details)) { + $parts = explode('.', $this->value); + $result['value'] = join('.', array_slice($parts, 0, $this->details)); + } else { + $result['value'] = $this->value; + } + } + + if (!empty($this->alias)) { + $result['alias'] = $this->alias; + } + + if (!empty($this->nickname)) { + $result['nickname'] = $this->nickname; + } + + if (isset($result['value']) && !isset($result['alias']) && !isset($result['nickname'])) { + return $result['value']; + } + + return $result; + } +} diff --git a/integration/whichbrowser/src/Parser.php b/integration/whichbrowser/src/Parser.php new file mode 100644 index 00000000..b54c4156 --- /dev/null +++ b/integration/whichbrowser/src/Parser.php @@ -0,0 +1,58 @@ +analyse($headers, $options); + } + } + + /** + * Analyse the provided headers or User-Agent string + * + * @param array|string $headers An array with all of the headers or a string with just the User-Agent header + */ + + public function analyse($headers, $options = []) + { + $o = $options; + + if (is_string($headers)) { + $h = [ 'User-Agent' => $headers ]; + } else { + if (isset($headers['headers'])) { + $h = $headers['headers']; + + unset($headers['headers']); + $o = array_merge($headers, $options); + } else { + $h = $headers; + } + } + + if ($this->analyseWithCache($h, $o)) { + return; + } + + $analyser = new Analyser($h, $o); + $analyser->setdata($this); + $analyser->analyse(); + } +} diff --git a/integration/woocommerce.php b/integration/woocommerce.php new file mode 100644 index 00000000..a1063721 --- /dev/null +++ b/integration/woocommerce.php @@ -0,0 +1,851 @@ +version, "2.1", ">=" ) ) { + wc_enqueue_js( $js ); + } else { + $woocommerce->add_inline_js( $js ); + } +} + +function gtm4wp_woocommerce_html_entity_decode( $val ) { + return html_entity_decode( $val, ENT_QUOTES, "utf-8" ); +} + +function gtm4wp_woocommerce_datalayer_filter_items( $dataLayer ) { + global $woocommerce, $gtm4wp_options, $wp_query, $gtm4wp_datalayer_name, $gtm4wp_product_counter; + + if ( is_product_category() || is_product_tag() || is_front_page() || is_shop() ) { + if ( $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCREMARKETING ] ) { + $dataLayer["ecomm_prodid"] = array(); + $dataLayer["ecomm_pagetype"] = ( is_front_page() ? "home" : "category" ); + $dataLayer["ecomm_totalvalue"] = 0; + } + } else if ( is_product() ) { + if ( ( $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCREMARKETING ] ) || ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC ] ) ) { + $prodid = get_the_ID(); + $product = get_product( $prodid ); + $product_price = $product->get_price(); + $_product_cats = get_the_terms( $product->id, 'product_cat' ); + if ( ( is_array($_product_cats) ) && ( count( $_product_cats ) > 0 ) ) { + $product_cat = array_pop( $_product_cats ); + $product_cat = $product_cat->name; + } else { + $product_cat = ""; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCREMARKETING ] ) { + $remarketing_id = (string)$prodid; + if ( $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCREMARKETINGSKU ] ) { + $product_sku = $product->get_sku(); + if ( "" != $product_sku ) { + $remarketing_id = $product_sku; + } + } + + $dataLayer["ecomm_prodid"] = $remarketing_id; + $dataLayer["ecomm_pagetype"] = "product"; + $dataLayer["ecomm_totalvalue"] = (float)$product_price; + } + + if ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC ] ) { + $dataLayer["ecommerce"] = array( + "detail" => array( + "products" => array(array( + "name" => gtm4wp_woocommerce_html_entity_decode( get_the_title() ), + "id" => $prodid, + "price" => $product_price, + "category" => $product_cat, + )) + ) + ); + } + } + } else if ( is_cart() ) { + if ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC ] ) { + gtm4wp_woocommerce_addjs(" + $( document ).on( 'click', '[name=update_cart]', function() { + $( '.product-quantity input.qty' ).each(function() { + var _original_value = $( this ).prop( 'defaultValue' ); + + var _current_value = parseInt( $( this ).val() ); + if ( isNaN( _current_value ) ) { + _current_value = _original_value; + } + + if ( _original_value != _current_value ) { + var productdata = $( this ).closest( '.cart_item' ).find( '.remove' ); + + if ( _original_value < _current_value ) { + ". $gtm4wp_datalayer_name .".push({ + 'event': 'gtm4wp.addProductToCartEEC', + 'ecommerce': { + 'currencyCode': '".get_woocommerce_currency()."', + 'add': { + 'products': [{ + 'name': productdata.data( 'gtm4wp_product_name' ), + 'id': productdata.data( 'gtm4wp_product_id' ), + 'price': productdata.data( 'gtm4wp_product_price' ), + 'category': productdata.data( 'gtm4wp_product_cat' ), + 'quantity': _current_value - _original_value + }] + } + } + }); + } else { + ". $gtm4wp_datalayer_name .".push({ + 'event': 'gtm4wp.removeFromCartEEC', + 'ecommerce': { + 'currencyCode': '".get_woocommerce_currency()."', + 'remove': { + 'products': [{ + 'name': productdata.data( 'gtm4wp_product_name' ), + 'id': productdata.data( 'gtm4wp_product_id' ), + 'price': productdata.data( 'gtm4wp_product_price' ), + 'category': productdata.data( 'gtm4wp_product_cat' ), + 'quantity': _original_value - _current_value + }] + } + } + }); + } + } + }); + }); + "); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCREMARKETING ] ) { + $products = $woocommerce->cart->get_cart(); + $product_ids = array(); + foreach( $products as $oneproduct ) { + $remarketing_id = $oneproduct['product_id']; + if ( $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCREMARKETINGSKU ] ) { + $product_sku = $oneproduct['product_sku']; + if ( "" != $product_sku ) { + $remarketing_id = $product_sku; + } + } + + $product_ids[] = $remarketing_id; + } + + $dataLayer["ecomm_prodid"] = $product_ids; + $dataLayer["ecomm_pagetype"] = "cart"; + if ( ! $woocommerce->cart->prices_include_tax ) { + $cart_total = $woocommerce->cart->cart_contents_total; + } else { + $cart_total = $woocommerce->cart->cart_contents_total + $woocommerce->cart->tax_total; + } + $dataLayer["ecomm_totalvalue"] = (float)$cart_total; + } + } else if ( is_order_received_page() ) { + $order_id = apply_filters( 'woocommerce_thankyou_order_id', empty( $_GET['order'] ) ? ($GLOBALS["wp"]->query_vars["order-received"] ? $GLOBALS["wp"]->query_vars["order-received"] : 0) : absint( $_GET['order'] ) ); + $order_key = apply_filters( 'woocommerce_thankyou_order_key', empty( $_GET['key'] ) ? '' : woocommerce_clean( $_GET['key'] ) ); + + if ( $order_id > 0 ) { + $order = new WC_Order( $order_id ); + if ( $order->order_key != $order_key ) + unset( $order ); + } + + if ( 1 == get_post_meta( $order_id, '_ga_tracked', true ) ) { + unset( $order ); + } + + if ( isset( $order ) ) { + if ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKCLASSICEC ] ) { + $dataLayer["transactionId"] = $order->get_order_number(); + $dataLayer["transactionDate"] = date("c"); + $dataLayer["transactionType"] = "sale"; + $dataLayer["transactionAffiliation"] = gtm4wp_woocommerce_html_entity_decode( get_bloginfo( 'name' ) ); + $dataLayer["transactionTotal"] = $order->get_total(); + $dataLayer["transactionShipping"] = $order->get_total_shipping(); + $dataLayer["transactionTax"] = $order->get_total_tax(); + $dataLayer["transactionPaymentType"] = $order->payment_method_title; + $dataLayer["transactionCurrency"] = get_woocommerce_currency(); + $dataLayer["transactionShippingMethod"] = $order->get_shipping_method(); + $dataLayer["transactionPromoCode"] = implode( ", ", $order->get_used_coupons() ); + } + + if ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC ] ) { + $dataLayer["ecommerce"] = array( + "currencyCode" => get_woocommerce_currency(), + "purchase" => array( + "actionField" => array( + "id" => $order->get_order_number(), + "affiliation" => gtm4wp_woocommerce_html_entity_decode( get_bloginfo( 'name' ) ), + "revenue" => $order->get_total(), + "tax" => $order->get_total_tax(), + "shipping" => $order->get_total_shipping(), + "coupon" => implode( ", ", $order->get_used_coupons() ) + ) + ) + ); + } + + $_products = array(); + $_sumprice = 0; + $_product_ids = array(); + + if ( $order->get_items() ) { + foreach ( $order->get_items() as $item ) { + $_product = $order->get_product_from_item( $item ); + + $variation_data = null; + if (get_class($_product) == "WC_Product_Variation") { + $variation_data = $_product->get_variation_attributes(); + } + + if ( isset( $variation_data ) ) { + + $_category = woocommerce_get_formatted_variation( $_product->variation_data, true ); + + } else { + $out = array(); + $categories = get_the_terms( $_product->id, 'product_cat' ); + if ( $categories ) { + foreach ( $categories as $category ) { + $out[] = $category->name; + } + } + + $_category = implode( " / ", $out ); + } + + $remarketing_id = $_product->id; + $product_sku = $_product->get_sku(); + if ( $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCREMARKETINGSKU ] && ( "" != $product_sku ) ) { + $remarketing_id = $product_sku; + } + + $_prodprice = $order->get_item_total( $item ); + $_products[] = array( + "id" => $_product->id, + "name" => $item['name'], + "sku" => $product_sku ? __( 'SKU:', 'duracelltomi-google-tag-manager' ) . ' ' . $product_sku : $_product->id, + "category" => $_category, + "price" => $_prodprice, + "currency" => get_woocommerce_currency(), + "quantity" => $item['qty'] + ); + + $_sumprice += $_prodprice * $item['qty']; + $_product_ids[] = $remarketing_id; + } + } + + if ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKCLASSICEC ] ) { + $dataLayer["transactionProducts"] = $_products; + $dataLayer["event"] = "gtm4wp.orderCompleted"; + } + + if ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC ] ) { + $dataLayer["ecommerce"]["purchase"]["products"] = $_products; + $dataLayer["event"] = "gtm4wp.orderCompletedEEC"; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCREMARKETING ] ) { + $dataLayer["ecomm_prodid"] = $_product_ids; + $dataLayer["ecomm_pagetype"] = "purchase"; + $dataLayer["ecomm_totalvalue"] = (float)$_sumprice; + } + + update_post_meta( $order_id, '_ga_tracked', 1 ); + } + } else if ( is_checkout() ) { + if ( ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC ] ) || ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCREMARKETING ] ) ) { + $gtm4wp_checkout_products = array(); + $gtm4wp_checkout_products_remarketing = array(); + $gtm4wp_totalvalue = 0; + + foreach( $woocommerce->cart->get_cart() as $cart_item_id => $cart_item_data) { + $product = apply_filters( 'woocommerce_cart_item_product', $cart_item_data["data"], $cart_item_data, $cart_item_id ); + + $_product_cats = get_the_terms($product->id, 'product_cat'); + if ( ( is_array($_product_cats) ) && ( count( $_product_cats ) > 0 ) ) { + $product_cat = array_pop( $_product_cats ); + $product_cat = $product_cat->name; + } else { + $product_cat = ""; + } + + $gtm4wp_product_price = $product->get_price(); + + $gtm4wp_checkout_products[] = array( + "id" => $product->id, + "name" => $product->post->post_title, + "price" => $gtm4wp_product_price, + "category" => $product_cat, + "quantity" => $cart_item_data["quantity"] + ); + + $gtm4wp_checkout_products_remarketing[] = $product->id; + $gtm4wp_totalvalue += $cart_item_data["quantity"] * $gtm4wp_product_price; + } // end foreach cart item + + if ( $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCREMARKETING ] ) { + $dataLayer["ecomm_prodid"] = $gtm4wp_checkout_products_remarketing; + $dataLayer["ecomm_pagetype"] = "cart"; + $dataLayer["ecomm_totalvalue"] = (float)$gtm4wp_totalvalue; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC ] ) { + $dataLayer["ecommerce"] = array( + "checkout" => array( + "actionField" => array( + "step" => 1 + ), + "products" => $gtm4wp_checkout_products + ) + ); + + gtm4wp_woocommerce_addjs(" + $( 'form[name=checkout]' ).on( 'submit', function() { + var _checkout_option = []; + + var _shipping_el = $( '#shipping_method input:checked' ); + if ( _shipping_el.length > 0 ) { + _checkout_option.push( 'Shipping: ' + _shipping_el.val() ); + } + + var _payment_el = $( '.payment_methods input:checked' ); + if ( _payment_el.length > 0 ) { + _checkout_option.push( 'Payment: ' + _payment_el.val() ); + } + + if ( _checkout_option.length > 0 ) { + ". $gtm4wp_datalayer_name .".push({ + 'event': 'gtm4wp.checkoutOptionECC', + 'ecommerce': { + 'checkout_option': { + 'actionField': { + 'step': 1, + 'option': _checkout_option.join( ', ' ) + } + } + } + }); + } + + return false; + });"); + } + } + } else { + if ( $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCREMARKETING ] ) { + $dataLayer["ecomm_pagetype"] = "other"; + } + } + + if ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC ] ) { + gtm4wp_woocommerce_addjs(" + $( document ).on( 'click', '.mini_cart_item a.remove,.product-remove a.remove', function() { + var productdata = $( this ); + + var qty = 0; + var qty_element = $( this ).closest( '.cart_item' ).find( '.product-quantity input.qty' ); + if ( 0 == qty_element.length ) { + qty_element = $( this ).closest( '.mini_cart_item' ).find( '.quantity' ); + if ( qty_element.length > 0 ) { + qty = parseInt( qty_element.text() ); + + if ( isNaN( qty ) ) { + qty = 0; + } + } + } else { + qty = qty_element.val(); + } + + if ( 0 == qty ) { + return true; + } + + ". $gtm4wp_datalayer_name .".push({ + 'event': 'gtm4wp.removeFromCartEEC', + 'ecommerce': { + 'remove': { + 'products': [{ + 'name': productdata.data( 'gtm4wp_product_name' ), + 'id': productdata.data( 'gtm4wp_product_id' ), + 'price': productdata.data( 'gtm4wp_product_price' ), + 'category': productdata.data( 'gtm4wp_product_cat' ), + 'quantity': qty + }] + } + } + }); + }); + "); + } + + return $dataLayer; +} + +function gtm4wp_woocommerce_single_add_to_cart_tracking() { + if ( ! is_single() ) { + return; + } + + global $product, $woocommerce, $gtm4wp_datalayer_name, $gtm4wp_options; + + if ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKCLASSICEC ] ) { + gtm4wp_woocommerce_addjs(" + $( '.single_add_to_cart_button' ).click(function() { + ". $gtm4wp_datalayer_name .".push({ + 'event': 'gtm4wp.addProductToCart', + 'productName': '". esc_js( $product->post->post_title ) ."', + 'productSKU': '". esc_js( $product->get_sku() ) ."', + 'productID': '". esc_js( $product->id ) ."' + }); + }); + "); + } + + if ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC ] ) { + $_product_cats = get_the_terms($product->id, 'product_cat'); + if ( ( is_array($_product_cats) ) && ( count( $_product_cats ) > 0 ) ) { + $product_cat = array_pop( $_product_cats ); + $product_cat = $product_cat->name; + } else { + $product_cat = ""; + } + + gtm4wp_woocommerce_addjs(" + $( '.single_add_to_cart_button' ).click(function() { + ". $gtm4wp_datalayer_name .".push({ + 'event': 'gtm4wp.addProductToCartEEC', + 'ecommerce': { + 'currencyCode': '".get_woocommerce_currency()."', + 'add': { + 'products': [{ + 'name': '". esc_js( $product->post->post_title ) ."', + 'id': '". esc_js( $product->id ) ."', + 'price': '". esc_js( $product->get_price() ) ."', + 'category': '". esc_js( $product_cat ) ."', + 'quantity': jQuery( 'form.cart:first input[name=quantity]' ).val() + }] + } + } + }); + }); + "); + } +} + +function gtm4wp_woocommerce_wp_footer() { + global $woocommerce, $gtm4wp_options, $gtm4wp_datalayer_name; + + if ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKCLASSICEC ] ) { + gtm4wp_woocommerce_addjs(" + $( '.add_to_cart_button:not(.product_type_variable, .product_type_grouped)' ).click(function() { + var productdata = $( this ).closest( '.product' ).find( '.gtm4wp_productdata' ); + + ". $gtm4wp_datalayer_name .".push({ + 'event': 'gtm4wp.addProductToCart', + 'productName': productdata.data( 'gtm4wp_product_name' ), + 'productSKU': $( this ).data( 'product_sku' ), + 'productID': $( this ).data( 'product_id' ), + }); + }); + "); + } + + if ( ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCREMARKETING ] ) && ( ! is_cart() ) ) { + echo " +"; + } + + if ( true === $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC ] ) { + echo " +"; + + gtm4wp_woocommerce_addjs(" + $( '.add_to_cart_button:not(.product_type_variable, .product_type_grouped)' ).click(function() { + var productdata = $( this ).closest( '.product' ).find( '.gtm4wp_productdata' ); + + ". $gtm4wp_datalayer_name .".push({ + 'event': 'gtm4wp.addProductToCartEEC', + 'ecommerce': { + 'currencyCode': '".get_woocommerce_currency()."', + 'add': { + 'products': [{ + 'name': productdata.data( 'gtm4wp_product_name' ), + 'id': productdata.data( 'gtm4wp_product_id' ), + 'price': productdata.data( 'gtm4wp_product_price' ), + 'category': productdata.data( 'gtm4wp_product_cat' ), + 'quantity': 1 + }] + } + } + }); + }); + "); + } +} + +function gtm4wp_woocommerce_enhanced_ecom_product_click() { + global $woocommerce, $gtm4wp_datalayer_name; + + gtm4wp_woocommerce_addjs(" + $( '.products li:not(.product-category) a:not(.add_to_cart_button),.widget-product-item' ).click(function( event ) { + var _productdata = $( this ).closest( '.product' ).length; + if ( _productdata > 0 ) { + var productdata = _productdata.find( '.gtm4wp_productdata' ); + } + + var ctrl_key_pressed = event.ctrlKey; + + if ( 0 == productdata.length ) { + var productdata = jQuery( this ); + + if ( '' == productdata.data( 'gtm4wp_product_id' ) ) { + return true; + } + } + + event.preventDefault(); + if ( ctrl_key_pressed ) { + // we need to open the new tab/page here so that popup blocker of the browser doesn't block our code + var _productpage = window.open( 'about:blank', '_blank' ); + } + + ". $gtm4wp_datalayer_name .".push({ + 'event': 'gtm4wp.productClickEEC', + 'ecommerce': { + 'currencyCode': '".get_woocommerce_currency()."', + 'click': { + 'actionField': {'list': productdata.data( 'gtm4wp_productlist_name' )}, + 'products': [{ + 'name': productdata.data( 'gtm4wp_product_name' ), + 'id': productdata.data( 'gtm4wp_product_id' ), + 'price': productdata.data( 'gtm4wp_product_price' ), + 'category': productdata.data( 'gtm4wp_product_cat' ), + 'position': productdata.data( 'gtm4wp_product_listposition' ) + }] + } + }, + 'eventCallback': function() { + if ( ctrl_key_pressed && _productpage ) { + _productpage.location.href= productdata.data( 'gtm4wp_product_url' ); + } else { + document.location.href = productdata.data( 'gtm4wp_product_url' ) + } + } + }); + }); + "); +} + +function gtm4wp_woocommerce_add_prod_data( $add_to_cart_link ) { + global $product, $woocommerce_loop; + + $product_price = $product->get_price(); + $_product_cats = get_the_terms($product->id, 'product_cat'); + if ( ( is_array($_product_cats) ) && ( count( $_product_cats ) > 0 ) ) { + $product_cat = array_pop( $_product_cats ); + $product_cat = $product_cat->name; + } else { + $product_cat = ""; + } + + if ( is_search() ) { + $list_name = __( "Search Results", "duracelltomi-google-tag-manager" ); + } else if ( isset( $woocommerce_loop[ "listtype" ] ) && ( $woocommerce_loop[ "listtype" ] != '' ) ) { + $list_name = $woocommerce_loop[ "listtype" ]; + } else { + $list_name = __( "General Product List", "duracelltomi-google-tag-manager" ); + } + + $cartlink_with_data = sprintf('data-gtm4wp_product_id="%s" data-gtm4wp_product_name="%s" data-gtm4wp_product_price="%s" data-gtm4wp_product_cat="%s" data-gtm4wp_product_url="%s" data-gtm4wp_product_listposition="%s" data-gtm4wp_productlist_name="%s" href="', + esc_attr( $product->id ), + esc_attr( $product->get_title() ), + esc_attr( $product_price ), + esc_attr( $product_cat ), + esc_url( get_permalink() ), + esc_attr( $woocommerce_loop[ "loop" ] ), + esc_attr( $list_name ) + ); + + return str_replace( 'href="', $cartlink_with_data, $add_to_cart_link ); +} + +$GLOBALS["gtm4wp_cart_item_proddata"] = ''; +function gtm4wp_woocommerce_cart_item_product_filter($product) { + $product_price = $product->get_price(); + $_product_cats = get_the_terms($product->id, 'product_cat'); + if ( ( is_array( $_product_cats ) ) && ( count( $_product_cats ) > 0 ) ) { + $product_cat = array_pop( $_product_cats ); + $product_cat = $product_cat->name; + } else { + $product_cat = ""; + } + + $GLOBALS["gtm4wp_cart_item_proddata"] = array( + "id" => $product->id, + "name" => $product->get_title(), + "price" => $product_price, + "category" => $product_cat, + "productlink" => get_permalink() + ); + + return $product; +} + +function gtm4wp_woocommerce_cart_item_remove_link_filter( $remove_from_cart_link ) { + if ( ! isset( $GLOBALS["gtm4wp_cart_item_proddata"] ) ) { + return $remove_from_cart_link; + } + + if ( ! is_array( $GLOBALS["gtm4wp_cart_item_proddata"] ) ) { + return $remove_from_cart_link; + } + + $cartlink_with_data = sprintf('data-gtm4wp_product_id="%s" data-gtm4wp_product_name="%s" data-gtm4wp_product_price="%s" data-gtm4wp_product_cat="%s" data-gtm4wp_product_url="%s" href="', + esc_attr( $GLOBALS["gtm4wp_cart_item_proddata"]["id"] ), + esc_attr( $GLOBALS["gtm4wp_cart_item_proddata"]["name"] ), + esc_attr( $GLOBALS["gtm4wp_cart_item_proddata"]["price"] ), + esc_attr( $GLOBALS["gtm4wp_cart_item_proddata"]["category"] ), + esc_url( $GLOBALS["gtm4wp_cart_item_proddata"]["productlink"] ) + ); + $GLOBALS["gtm4wp_cart_item_proddata"] = ''; + + return str_replace( 'href="', $cartlink_with_data, $remove_from_cart_link ); +} + +function gtp4wp_woocommerce_reset_loop() { + global $woocommerce_loop; + + $woocommerce_loop[ "listtype" ] = ""; +} + +function gtm4wp_woocommerce_add_related_to_loop( $arg ) { + global $woocommerce_loop; + + $woocommerce_loop[ "listtype" ] = __( "Related Products", "duracelltomi-google-tag-manager" ); + + return $arg; +} + +function gtm4wp_woocommerce_before_template_part( $template_name ) { + ob_start(); +} + +function gtm4wp_woocommerce_after_template_part( $template_name ) { + global $product, $gtm4wp_product_counter, $gtm4wp_last_widget_title; + + $productitem = ob_get_contents(); + ob_end_clean(); + + if ( "content-widget-product.php" == $template_name ) { + $product_price = $product->get_price(); + $_product_cats = get_the_terms($product->id, 'product_cat'); + if ( ( is_array( $_product_cats ) ) && ( count( $_product_cats ) > 0 ) ) { + $product_cat = array_pop( $_product_cats ); + $product_cat = $product_cat->name; + } else { + $product_cat = ""; + } + + $productlink_with_data = sprintf('data-gtm4wp_product_id="%s" data-gtm4wp_product_name="%s" data-gtm4wp_product_price="%s" data-gtm4wp_product_cat="%s" data-gtm4wp_product_url="%s" data-gtm4wp_productlist_name="%s" data-gtm4wp_product_listposition="%s" class="widget-product-item" href="', + esc_attr( $product->id ), + esc_attr( $product->get_title() ), + esc_attr( $product_price ), + esc_attr( $product_cat ), + esc_url( get_permalink() ), + $gtm4wp_last_widget_title, + esc_attr( $gtm4wp_product_counter ) + ); + + $gtm4wp_product_counter++; + + $productitem = str_replace( 'href="', $productlink_with_data, $productitem ); + } + + echo $productitem; +} + +function gtm4wp_widget_title_filter( $widget_title ) { + global $gtm4wp_product_counter, $gtm4wp_last_widget_title; + + $gtm4wp_product_counter = 1; + $gtm4wp_last_widget_title = $widget_title . __( " (widget)", "duracelltomi-google-tag-manager" ); + + return $widget_title; +} + +function gtm4wp_before_recent_products_loop() { + global $woocommerce_loop; + + $woocommerce_loop[ "listtype" ] = __( "Recent Products", "duracelltomi-google-tag-manager" ); +} + +function gtm4wp_before_sale_products_loop() { + global $woocommerce_loop; + + $woocommerce_loop[ "listtype" ] = __( "Sale Products", "duracelltomi-google-tag-manager" ); +} + +function gtm4wp_before_best_selling_products_loop() { + global $woocommerce_loop; + + $woocommerce_loop[ "listtype" ] = __( "Best Selling Products", "duracelltomi-google-tag-manager" ); +} + +function gtm4wp_before_top_rated_products_loop() { + global $woocommerce_loop; + + $woocommerce_loop[ "listtype" ] = __( "Top Rated Products", "duracelltomi-google-tag-manager" ); +} + +function gtm4wp_before_featured_products_loop() { + global $woocommerce_loop; + + $woocommerce_loop[ "listtype" ] = __( "Featured Products", "duracelltomi-google-tag-manager" ); +} + +function gtm4wp_before_related_products_loop() { + global $woocommerce_loop; + + $woocommerce_loop[ "listtype" ] = __( "Related Products", "duracelltomi-google-tag-manager" ); +} + +function gtm4wp_woocommerce_before_shop_loop_item() { + global $product, $woocommerce_loop; + + $product_price = $product->get_price(); + $product_cat = ""; + if ( is_product_category() ) { + global $wp_query; + $cat_obj = $wp_query->get_queried_object(); + $product_cat = $cat_obj->name; + } else { + $_product_cats = get_the_terms($product->id, 'product_cat'); + if ( ( is_array($_product_cats) ) && ( count( $_product_cats ) > 0 ) ) { + $last_product_cat = array_pop( $_product_cats ); + $product_cat = $last_product_cat->name; + } + } + + if ( is_search() ) { + $list_name = __( "Search Results", "duracelltomi-google-tag-manager" ); + } else if ( isset( $woocommerce_loop[ "listtype" ] ) && ( $woocommerce_loop[ "listtype" ] != '' ) ) { + $list_name = $woocommerce_loop[ "listtype" ]; + } else { + $list_name = __( "General Product List", "duracelltomi-google-tag-manager" ); + } + + $productlink = get_permalink(); + + printf('', + esc_attr( $product->id ), + esc_attr( $product->get_title() ), + esc_attr( $product_price ), + esc_attr( $product_cat ), + esc_url( $productlink ), + esc_attr( $woocommerce_loop[ "loop" ] ), + esc_attr( $list_name ) + ); +} + +// do not add filter if someone enabled WooCommerce integration without an activated WooCommerce plugin +if ( isset ( $GLOBALS["woocommerce"] ) ) { + add_filter( GTM4WP_WPFILTER_COMPILE_DATALAYER, "gtm4wp_woocommerce_datalayer_filter_items" ); + + add_filter( 'loop_end', 'gtp4wp_woocommerce_reset_loop' ); + + add_action( "woocommerce_before_shop_loop_item", "gtm4wp_woocommerce_before_shop_loop_item" ); + +// add_filter( "woocommerce_loop_add_to_cart_link", "gtm4wp_woocommerce_add_prod_data" ); + add_action( "woocommerce_after_add_to_cart_button", "gtm4wp_woocommerce_single_add_to_cart_tracking" ); + add_action( "wp_footer", "gtm4wp_woocommerce_wp_footer" ); + + if ( true === $GLOBALS[ "gtm4wp_options" ][ GTM4WP_OPTION_INTEGRATE_WCTRACKENHANCEDEC ] ) { + add_action( 'wp_footer', 'gtm4wp_woocommerce_enhanced_ecom_product_click' ); + add_action( 'woocommerce_before_template_part', 'gtm4wp_woocommerce_before_template_part' ); + add_action( 'woocommerce_after_template_part', 'gtm4wp_woocommerce_after_template_part' ); + add_filter( 'widget_title', 'gtm4wp_widget_title_filter' ); + + add_filter( "woocommerce_cart_item_product", "gtm4wp_woocommerce_cart_item_product_filter" ); + add_filter( "woocommerce_cart_item_remove_link", "gtm4wp_woocommerce_cart_item_remove_link_filter" ); + + add_filter( "woocommerce_related_products_args", "gtm4wp_woocommerce_add_related_to_loop" ); + + add_action( 'woocommerce_shortcode_before_recent_products_loop', 'gtm4wp_before_recent_products_loop' ); + add_action( 'woocommerce_shortcode_before_sale_products_loop', 'gtm4wp_before_sale_products_loop' ); + add_action( 'woocommerce_shortcode_before_best_selling_products_loop', 'gtm4wp_before_best_selling_products_loop' ); + add_action( 'woocommerce_shortcode_before_top_rated_products_loop', 'gtm4wp_before_top_rated_products_loop' ); + add_action( 'woocommerce_shortcode_before_featured_products_loop', 'gtm4wp_before_featured_products_loop' ); + add_action( 'woocommerce_shortcode_before_related_products_loop', 'gtm4wp_before_related_products_loop' ); + } +} diff --git a/integration/youtube.php b/integration/youtube.php new file mode 100644 index 00000000..b2ee6df4 --- /dev/null +++ b/integration/youtube.php @@ -0,0 +1,15 @@ +' + jQuery(this).text() + '' ); + + jQuery(this) + .remove(); + + if ( adminsubtabsdata[ i ] ) { + var _subtabs = []; + var _startrow = 0; + + for ( j in adminsubtabsdata[ i ] ) { + _subtabs.push( '' + adminsubtabsdata[ i ][ j ].tabtext + '' ); + _startrow += adminsubtabsdata[ i ][ j ].numitems; + } + + if ( _subtabs.length > 0 ) { + adminsubtabs.push( '
  • ' + _subtabs.join('
  • ') + '
' ); + } + } + }); + + jQuery("#wpbody form[action='options.php']") + .prepend( adminsubtabs.join('') ) + .prepend( '' ); + + jQuery( '.adminsubtabs li a' ) + .on( 'click', function() { + var jqthis = jQuery(this); + + jqthis + .parent() + .parent() + .find( 'a' ) + .removeClass( 'subtab-active' ); + + jqthis + .addClass( 'subtab-active' ); + + jQuery( '.form-table:eq(' + jqthis.data( 'formtableid' ) + ') tr' ) + .hide() + .slice( jqthis.data('startrow'), jqthis.data('endrow') ) + .show(); + + return false; + }); + + jQuery( '.nav-tab-wrapper a' ) + .on( "click", function() { + jQuery( '.nav-tab-wrapper a.nav-tab-active' ) + .removeClass( "nav-tab-active" ); + + jQuery( '#wpbody form .tabinfo,#wpbody form .form-table,.adminsubtabs' ) + .hide(); + + var tabindex = jQuery(this) + .addClass( 'nav-tab-active' ) + .index(); + + jQuery( '#wpbody form .tabinfo:eq(' + tabindex + '),#wpbody form .form-table:eq(' + tabindex + ')' ) + .show(); + + jQuery( '#wpbody #adminsubtabs' + tabindex + ':not(.subtab-activated)' ) + .find( 'a:first' ) + .trigger( 'click' ); + + jQuery( '#wpbody #adminsubtabs' + tabindex ) + .addClass( 'subtab-activated' ) + .show(); + + return false; + }); + + jQuery( '.nav-tab-wrapper a:first' ) + .trigger( 'click' ); +}); diff --git a/js/analytics-talk-content-tracking.js b/js/analytics-talk-content-tracking.js new file mode 100644 index 00000000..f11d7df5 --- /dev/null +++ b/js/analytics-talk-content-tracking.js @@ -0,0 +1,138 @@ +/* + * Source: http://cutroni.com/blog/2012/02/21/advanced-content-tracking-with-google-analytics-part-1/ + * Original authors: + * - Nick Mihailovski + * - Thomas Baekdal + * - Avinash Kaushik + * - Joost de Valk + * - Eivind Savio + * - Justin Cutroni + * + * Google Tag Manager dataLayer events added by: + * Thomas Geiger + * duracelltomi.com + */ + +if ( "undefined" == typeof console ) { + window.console = { + log: function () {} + }; +} + +jQuery( function( $ ) { + // Debug flag + var debugMode = gtm4wp_scrollerscript_debugmode; + + // Default time delay before checking location + var callBackTime = gtm4wp_scrollerscript_callbacktime; + + // # px before tracking a reader + var readerLocation = gtm4wp_scrollerscript_readerlocation; + + // Set some flags for tracking & execution + var timer = 0; + var scroller = false; + var endContent = false; + var didComplete = false; + + // Set some time variables to calculate reading time + var startTime = new Date(); + var beginning = startTime.getTime(); + var totalTime = 0; + + // Track the aticle load + if ( !debugMode ) { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.reading.articleLoaded' + }); + } else { + console.log( 'Article loaded' ); + } + + // Check the location and track user + function trackLocation() { + bottom = $( window ).height() + $( window ).scrollTop(); + height = $( document ).height(); + + // If user starts to scroll send an event + if ( bottom > readerLocation && !scroller ) { + currentTime = new Date(); + scrollStart = currentTime.getTime(); + timeToScroll = Math.round( ( scrollStart - beginning ) / 1000 ); + + if ( !debugMode ) { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.reading.startReading', + 'timeToScroll': timeToScroll + }); + } else { + console.log( 'Started reading ' + timeToScroll ); + } + scroller = true; + } + + // If user has hit the bottom of the content send an event + if ( bottom >= $( '#' + gtm4wp_scrollerscript_contentelementid ).scrollTop() + $( '#' + gtm4wp_scrollerscript_contentelementid ).innerHeight() && !endContent ) { + currentTime = new Date(); + contentScrollEnd = currentTime.getTime(); + timeToContentEnd = Math.round( ( contentScrollEnd - scrollStart ) / 1000 ); + + if ( !debugMode ) { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.reading.contentBottom', + 'timeToScroll': timeToContentEnd + }); + } else { + console.log( 'End content section ' + timeToContentEnd ); + } + + endContent = true; + } + + // If user has hit the bottom of page send an event + if ( bottom >= height && !didComplete ) { + currentTime = new Date(); + end = currentTime.getTime(); + totalTime = Math.round( ( end - scrollStart ) / 1000 ); + + if ( !debugMode ) { + if ( totalTime < gtm4wp_scrollerscript_scannertime ) { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.reading.readerType', + 'readerType': 'scanner' + }); + } else { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.reading.readerType', + 'readerType': 'reader' + }); + } + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.reading.pagebottom', + 'timeToScroll': totalTime + }); + } else { + if ( totalTime < gtm4wp_scrollerscript_scannertime ) { + console.log( 'The visitor seems to be a "scanner"' ); + } else { + console.log( 'The visitor seems to be a "reader"' ); + } + + console.log( 'Bottom of page ' + totalTime ); + } + + didComplete = true; + } + } + + // Track the scrolling and track location + $( window ).scroll(function() { + if ( timer ) { + clearTimeout( timer ); + } + + // Use a buffer so we don't call trackLocation too often. + timer = setTimeout( trackLocation, callBackTime ); + }); +}); diff --git a/js/froogaloop.js b/js/froogaloop.js new file mode 100644 index 00000000..5af44ab5 --- /dev/null +++ b/js/froogaloop.js @@ -0,0 +1,259 @@ +// Init style shamelessly stolen from jQuery http://jquery.com +var Froogaloop = (function() { + // Define a local copy of Froogaloop + function Froogaloop(iframe) { + // The Froogaloop object is actually just the init constructor + return new Froogaloop.fn.init(iframe); + } + + var eventCallbacks = {}, + hasWindowEvent = false, + isReady = false, + slice = Array.prototype.slice, + playerOrigin = '*'; + + Froogaloop.fn = Froogaloop.prototype = { + element: null, + + init: function(iframe) { + if (typeof iframe === "string") { + iframe = document.getElementById(iframe); + } + + this.element = iframe; + + return this; + }, + + /* + * Calls a function to act upon the player. + * + * @param {string} method The name of the Javascript API method to call. Eg: 'play'. + * @param {Array|Function} valueOrCallback params Array of parameters to pass when calling an API method + * or callback function when the method returns a value. + */ + api: function(method, valueOrCallback) { + if (!this.element || !method) { + return false; + } + + var self = this, + element = self.element, + target_id = element.id !== '' ? element.id : null, + params = !isFunction(valueOrCallback) ? valueOrCallback : null, + callback = isFunction(valueOrCallback) ? valueOrCallback : null; + + // Store the callback for get functions + if (callback) { + storeCallback(method, callback, target_id); + } + + postMessage(method, params, element); + return self; + }, + + /* + * Registers an event listener and a callback function that gets called when the event fires. + * + * @param eventName (String): Name of the event to listen for. + * @param callback (Function): Function that should be called when the event fires. + */ + addEvent: function(eventName, callback) { + if (!this.element) { + return false; + } + + var self = this, + element = self.element, + target_id = element.id !== '' ? element.id : null; + + + storeCallback(eventName, callback, target_id); + + // The ready event is not registered via postMessage. It fires regardless. + if (eventName != 'ready') { + postMessage('addEventListener', eventName, element); + } else if (eventName == 'ready' && isReady) { + callback.call(null, target_id); + } + + return self; + }, + + /* + * Unregisters an event listener that gets called when the event fires. + * + * @param eventName (String): Name of the event to stop listening for. + */ + removeEvent: function(eventName) { + if (!this.element) { + return false; + } + + var self = this, + element = self.element, + target_id = element.id !== '' ? element.id : null, + removed = removeCallback(eventName, target_id); + + // The ready event is not registered + if (eventName != 'ready' && removed) { + postMessage('removeEventListener', eventName, element); + } + } + }; + + /** + * Handles posting a message to the parent window. + * + * @param method (String): name of the method to call inside the player. For api calls + * this is the name of the api method (api_play or api_pause) while for events this method + * is api_addEventListener. + * @param params (Object or Array): List of parameters to submit to the method. Can be either + * a single param or an array list of parameters. + * @param target (HTMLElement): Target iframe to post the message to. + */ + + function postMessage(method, params, target) { + if (!target.contentWindow.postMessage) { + return false; + } + + var data = JSON.stringify({ + method: method, + value: params + }); + + target.contentWindow.postMessage(data, playerOrigin); + } + + /** + * Event that fires whenever the window receives a message from its parent + * via window.postMessage. + */ + + function onMessageReceived(event) { + var data, method; + + try { + data = JSON.parse(event.data); + method = data.event || data.method; + } catch (e) { + //fail silently... like a ninja! + } + + if (method == 'ready' && !isReady) { + isReady = true; + } + + // Handles messages from the vimeo player only + if (!(/^https?:\/\/player.vimeo.com/).test(event.origin)) { + return false; + } + + if (playerOrigin === '*') { + playerOrigin = event.origin; + } + + var value = data.value, + eventData = data.data, + target_id = target_id === '' ? null : data.player_id, + + callback = getCallback(method, target_id), + params = []; + + if (!callback) { + return false; + } + + if (value !== undefined) { + params.push(value); + } + + if (eventData) { + params.push(eventData); + } + + if (target_id) { + params.push(target_id); + } + + return params.length > 0 ? callback.apply(null, params) : callback.call(); + } + + + /** + * Stores submitted callbacks for each iframe being tracked and each + * event for that iframe. + * + * @param eventName (String): Name of the event. Eg. api_onPlay + * @param callback (Function): Function that should get executed when the + * event is fired. + * @param target_id (String) [Optional]: If handling more than one iframe then + * it stores the different callbacks for different iframes based on the iframe's + * id. + */ + + function storeCallback(eventName, callback, target_id) { + if (target_id) { + if (!eventCallbacks[target_id]) { + eventCallbacks[target_id] = {}; + } + eventCallbacks[target_id][eventName] = callback; + } else { + eventCallbacks[eventName] = callback; + } + } + + /** + * Retrieves stored callbacks. + */ + + function getCallback(eventName, target_id) { + if (target_id) { + return eventCallbacks[target_id][eventName]; + } else { + return eventCallbacks[eventName]; + } + } + + function removeCallback(eventName, target_id) { + if (target_id && eventCallbacks[target_id]) { + if (!eventCallbacks[target_id][eventName]) { + return false; + } + eventCallbacks[target_id][eventName] = null; + } else { + if (!eventCallbacks[eventName]) { + return false; + } + eventCallbacks[eventName] = null; + } + + return true; + } + + function isFunction(obj) { + return !!(obj && obj.constructor && obj.call && obj.apply); + } + + function isArray(obj) { + return toString.call(obj) === '[object Array]'; + } + + // Give the init function the Froogaloop prototype for later instantiation + Froogaloop.fn.init.prototype = Froogaloop.fn; + + // Listens for the message event. + // W3C + if (window.addEventListener) { + window.addEventListener('message', onMessageReceived, false); + } + // IE + else { + window.attachEvent('onmessage', onMessageReceived); + } + + // Expose froogaloop to the global object + return (window.Froogaloop = window.$f = Froogaloop); + +})(); diff --git a/js/gtm4wp-contact-form-7-tracker.js b/js/gtm4wp-contact-form-7-tracker.js new file mode 100644 index 00000000..8c914be5 --- /dev/null +++ b/js/gtm4wp-contact-form-7-tracker.js @@ -0,0 +1,14 @@ +jQuery( function() { + jQuery( ".wpcf7" ) + .on( 'wpcf7:mailsent', function(e) { + var gtm4wp_cf7formid = '(not set)'; + if ( e && e.target && e.target.id ) { + gtm4wp_cf7formid = e.target.id; + } + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.contactForm7Submitted', + 'gtm4wp.cf7formid': gtm4wp_cf7formid + }); + }); +}); diff --git a/js/gtm4wp-download-tracker.js b/js/gtm4wp-download-tracker.js new file mode 100644 index 00000000..d231c566 --- /dev/null +++ b/js/gtm4wp-download-tracker.js @@ -0,0 +1,14 @@ +function gtm4wp_track_downloads(track_extensions) { + var gtm4wp_extensions_to_track = track_extensions.split(","); + + for ( var i = 0; i < gtm4wp_extensions_to_track.length; i++ ) { + jQuery( "a[href$=\\." + gtm4wp_extensions_to_track[i].toLowerCase() + "], a[href$=\\." + gtm4wp_extensions_to_track[i].toUpperCase() + "]" ) + .on( "click", function() { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.downloadClick', + 'linkhref': jQuery( this ).attr( "href" ) + }); + }) + .attr( "target", "_blank" ); + } // end for i +}; diff --git a/js/gtm4wp-email-link-tracker.js b/js/gtm4wp-email-link-tracker.js new file mode 100644 index 00000000..b7d7f9bb --- /dev/null +++ b/js/gtm4wp-email-link-tracker.js @@ -0,0 +1,12 @@ +jQuery( function() { + jQuery( "a[href^=mailto]" ) + .on( "click", function() { + var gtm4wp_linkparts = jQuery( this ).attr( "href" ).split( ":" ); + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.emailClick', + 'linkhref': gtm4wp_linkparts + }); + }) + .attr( "target", "_blank" ); +}); diff --git a/js/gtm4wp-form-move-tracker.js b/js/gtm4wp-form-move-tracker.js new file mode 100644 index 00000000..a7b44b2b --- /dev/null +++ b/js/gtm4wp-form-move-tracker.js @@ -0,0 +1,50 @@ +jQuery( function() { + jQuery( ":input" ) + .on( "focus", function() { + var input = jQuery(this); + var inputID = input.attr("id") || "(no input ID)"; + var inputName = input.attr("name") || "(no input name)"; + var inputClass = input.attr("class") || "(no input class)"; + + var form = jQuery(this.form); + var formID = form.attr("id") || "(no form ID)"; + var formName = form.attr("name") || "(no form name)"; + var formClass = form.attr("class") || "(no form class)"; + + window[ gtm4wp_datalayer_name ].push({ + 'event' : 'gtm4wp.formElementEnter', + + 'inputID' : inputID, + 'inputName' : inputName, + 'inputClass': inputClass, + + 'formID' : formID, + 'formName' : formName, + 'formClass': formClass + }); + }) + + .on( "blur", function() { + var input = jQuery(this); + var inputID = input.attr("id") || "(no input ID)"; + var inputName = input.attr("name") || "(no input name)"; + var inputClass = input.attr("class") || "(no input class)"; + + var form = jQuery(this.form); + var formID = form.attr("id") || "(no form ID)"; + var formName = form.attr("name") || "(no form name)"; + var formClass = form.attr("class") || "(no form class)"; + + window[ gtm4wp_datalayer_name ].push({ + 'event' : 'gtm4wp.formElementLeave', + + 'inputID' : inputID, + 'inputName' : inputName, + 'inputClass': inputClass, + + 'formID' : formID, + 'formName' : formName, + 'formClass': formClass + }); + }); +}); diff --git a/js/gtm4wp-outbound-click-tracker.js b/js/gtm4wp-outbound-click-tracker.js new file mode 100644 index 00000000..34f46353 --- /dev/null +++ b/js/gtm4wp-outbound-click-tracker.js @@ -0,0 +1,19 @@ +jQuery( function() { + var gtm4wp_localdomain = window.location.hostname.replace( "www.", "" ); + + jQuery( "a[href^=http]" ) + .each( function() { + var gtm4wp_linkhref = jQuery( this ).attr( "href" ); + + if ( gtm4wp_linkhref.indexOf( gtm4wp_localdomain ) == -1 ) { + jQuery( this ) + .on( "click", function() { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.outboundClick', + 'linkhref': jQuery( this ).attr( "href" ) + }); + }) + .attr( "target", "_blank" ); + } + }); +}); diff --git a/js/gtm4wp-social-tracker.js b/js/gtm4wp-social-tracker.js new file mode 100644 index 00000000..a0564ea6 --- /dev/null +++ b/js/gtm4wp-social-tracker.js @@ -0,0 +1,97 @@ +jQuery( function() { + if ( typeof FB != "undefined" ) { + FB.Event.subscribe( 'edge.create', function( href, widget ) { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.socialAction', + 'network': 'facebook', + 'socialAction': 'like', + 'opt_target': href, + 'opt_pagePath': window.location.href + }); + }); + + FB.Event.subscribe( 'edge.remove', function( href, widget ) { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.socialAction', + 'network': 'facebook', + 'socialAction': 'unlike', + 'opt_target': href, + 'opt_pagePath': window.location.href + }); + }); + + FB.Event.subscribe( 'comment.create', function( href, commentID ) { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.socialAction', + 'network': 'facebook', + 'socialAction': 'comment', + 'opt_target': href, + 'opt_pagePath': window.location.href + }); + }); + + FB.Event.subscribe( 'comment.remove', function( href, commentID ) { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.socialAction', + 'network': 'facebook', + 'socialAction': 'uncomment', + 'opt_target': href, + 'opt_pagePath': window.location.href + }); + }); + + FB.Event.subscribe( 'message.send', function( response ) { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.socialAction', + 'network': 'facebook', + 'socialAction': 'send', + 'opt_target': response, + 'opt_pagePath': window.location.href + }); + }); + } // end of Facebook social events + + if ( typeof window.twttr == "undefined" ) { + window.twttr = (function ( d, s, id ) { + var t, js, fjs = d.getElementsByTagName(s)[0]; + if (d.getElementById(id)) return; js=d.createElement(s); js.id=id; + js.src="https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); + return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } }); + } (document, "script", "twitter-wjs")); + } // end of loading Twitter JS + + if ( typeof window.twttr != "undefined" ) { + window.twttr.ready(function ( twttr ) { + twttr.events.bind( 'tweet', function ( intent_event ) { + if ( intent_event ) { + var label = intent_event.data.tweet_id; + if ( typeof label == "label" ) { + label = window.location.href; + } + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.socialAction', + 'network': 'twitter', + 'socialAction': 'tweet', + 'opt_target': label, + 'opt_pagePath': window.location.href + }); + } + }); + + window.twttr.events.bind( 'follow', function ( intent_event ) { + if ( intent_event ) { + var label = intent_event.data.user_id + " (" + intent_event.data.screen_name + ")"; + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.socialAction', + 'network': 'twitter', + 'socialAction': 'follow', + 'opt_target': label, + 'opt_pagePath': window.location.href + }); + } + }); + }); + } +}); diff --git a/js/gtm4wp-soundcloud.js b/js/gtm4wp-soundcloud.js new file mode 100644 index 00000000..f4179205 --- /dev/null +++ b/js/gtm4wp-soundcloud.js @@ -0,0 +1,138 @@ +; +var gtm4wp_soundclound_percentage_tracking = 10; +var gtm4wp_soundclound_percentage_tracking_marks = {}; + +jQuery(function() { +// jQuery( '[id^="soundcloudplayer_"]' ).each(function() { + jQuery( 'iframe[src*="soundcloud.com"]' ).each(function() { + var iframe = this, + widget = SC.Widget( this ), + jqframe = jQuery( iframe ), + sound = {}; + + widget.bind( SC.Widget.Events.READY, function() { + widget.getCurrentSound(function( soundData ) { + + jqframe.attr( "data-player_id", soundData.id ); + jqframe.attr( "data-player_author", soundData.user.username ); + jqframe.attr( "data-player_title", soundData.title ); + jqframe.attr( "data-player_url", soundData.permalink_url ); + jqframe.attr( "data-player_duration", soundData.duration ); + + sound = soundData; + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerReady', + 'mediaType': 'soundcloud', + 'mediaData': { + 'id': soundData.id, + 'author': soundData.user.username, + 'title': soundData.title, + 'url': soundData.permalink_url, + 'duration': soundData.duration + }, + 'mediaCurrentTime': 0 + }); + }); // end of api call getDuration + + widget.bind( SC.Widget.Events.PLAY_PROGRESS, function( eventData ) { + gtm4wp_onSoundCloudPercentageChange( eventData ); + }); + + widget.bind( SC.Widget.Events.PLAY, function( eventData ) { + gtm4wp_onSoundCloudPlayerStateChange( eventData, 'play' ); + }); + + widget.bind( SC.Widget.Events.PAUSE, function( eventData ) { + gtm4wp_onSoundCloudPlayerStateChange( eventData, 'pause' ); + }); + + widget.bind( SC.Widget.Events.FINISH, function( eventData ) { + gtm4wp_onSoundCloudPlayerStateChange( eventData, 'ended' ); + }); + + widget.bind( SC.Widget.Events.SEEK, function( eventData ) { + gtm4wp_onSoundCloudPlayerStateChange( eventData, 'seeked' ); + }); + + widget.bind( SC.Widget.Events.CLICK_DOWNLOAD, function() { + gtm4wp_onSoundCloudPlayerEvent( 'click-download' ); + }); + + widget.bind( SC.Widget.Events.CLICK_BUY, function() { + gtm4wp_onSoundCloudPlayerEvent( 'click-buy' ); + }); + + widget.bind( SC.Widget.Events.OPEN_SHARE_PANEL, function() { + gtm4wp_onSoundCloudPlayerEvent( 'open-share-panel' ); + }); + + widget.bind( SC.Widget.Events.ERROR, function() { + gtm4wp_onSoundCloudPlayerEvent( 'error' ); + }); + }); + + var gtm4wp_onSoundCloudPlayerStateChange = function( eventData, playerState ) { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerStateChange', + 'mediaType': 'soundcloud', + 'mediaData': { + 'id': sound.id, + 'author': sound.user.username, + 'title': sound.title, + 'url': sound.permalink_url, + 'duration': sound.duration + }, + 'mediaCurrentTime': eventData.currentPosition, + 'mediaPlayerState': playerState + }); + } + + var gtm4wp_onSoundCloudPercentageChange = function( eventData ) { + var mediaPercentage = Math.floor( eventData.currentPosition / sound.duration * 100 ); + + if ( typeof gtm4wp_soundclound_percentage_tracking_marks[ sound.id ] == "undefined" ) { + gtm4wp_soundclound_percentage_tracking_marks[ sound.id ] = []; + } + + for( var i=0; i<100; i+=gtm4wp_soundclound_percentage_tracking ) { + if ( ( mediaPercentage > i ) && ( gtm4wp_soundclound_percentage_tracking_marks[ sound.id ].indexOf( i ) == -1 ) ) { + gtm4wp_soundclound_percentage_tracking_marks[ sound.id ].push( i ); + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlaybackPercentage', + 'mediaType': 'soundcloud', + 'mediaData': { + 'id': sound.id, + 'author': sound.user.username, + 'title': sound.title, + 'url': sound.permalink_url, + 'duration': sound.duration + }, + 'mediaCurrentTime': eventData.currentPosition, + 'mediaPercentage': i + }); + } + } + } + + var gtm4wp_onSoundCloudPlayerEvent = function( eventName ) { + widget.getPosition(function( currentPosition ) { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerEvent', + 'mediaType': 'soundcloud', + 'mediaData': { + 'id': sound.id, + 'author': sound.user.username, + 'title': sound.title, + 'url': sound.permalink_url, + 'duration': soundData.duration + }, + 'mediaCurrentTime': currentPosition, + 'mediaPlayerEvent': eventName + }); + }); + } + + }); +}); diff --git a/js/gtm4wp-vimeo-froogaloop.js b/js/gtm4wp-vimeo-froogaloop.js new file mode 100644 index 00000000..31fcd624 --- /dev/null +++ b/js/gtm4wp-vimeo-froogaloop.js @@ -0,0 +1,105 @@ +var gtm4wp_vimeo_percentage_tracking = 10; +var gtm4wp_vimeo_percentage_tracking_marks = {}; + +;jQuery(function() { + jQuery( '[id^="vimeoplayer_"]' ).each(function() { + var vimeoapi = $f( this ), + jqframe = jQuery( this ), + videourl = jqframe + .attr( "src" ) + .split( "?" ) + .shift(), + videoid = videourl.split( "/" ).pop(); + + jqframe.attr( "data-player_id", videoid ); + jqframe.attr( "data-player_url", videourl ); + + vimeoapi.addEvent( 'ready', function( player_id ) { + vimeoapi.api( 'getDuration', function( value, player_id ) { + + jqframe.attr( "data-player_duration", value ); + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerReady', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': jqframe.attr( "title" ), + 'url': videourl, + 'duration': value + }, + 'mediaCurrentTime': 0 + }); + }); // end of api call getDuration + + vimeoapi.addEvent( 'playProgress', function( value, player_id ) { + gtm4wp_onVimeoPercentageChange( value ); + }); + + vimeoapi.addEvent( 'play', function( player_id ) { + gtm4wp_onVimeoPlayerStateChange( 'play' ); + }); + + vimeoapi.addEvent( 'pause', function( player_id ) { + gtm4wp_onVimeoPlayerStateChange( 'pause' ); + }); + + vimeoapi.addEvent( 'finish', function( player_id ) { + gtm4wp_onVimeoPlayerStateChange( 'finish' ); + }); + + vimeoapi.addEvent( 'seek', function( value, player_id ) { + gtm4wp_onVimeoPlayerStateChange( 'seek' ); + }); + + var gtm4wp_onVimeoPlayerStateChange = function( player_state ) { + vimeoapi.api( 'getCurrentTime', function( value, player_id ) { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerStateChange', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': jqframe.attr( "title" ), + 'url': jqframe.attr( "data-player_url" ), + 'duration': parseInt( jqframe.attr( "data-player_duration" ) ) + }, + 'mediaPlayerState': player_state, + 'mediaCurrentTime': value + }); + }); + } + + var gtm4wp_onVimeoPercentageChange = function( data ) { + var videoDuration = parseInt( jqframe.attr( "data-player_duration" ) ); + var videoPercentage = Math.floor( data.seconds / videoDuration * 100 ); + + if ( typeof gtm4wp_vimeo_percentage_tracking_marks[ videoid ] == "undefined" ) { + gtm4wp_vimeo_percentage_tracking_marks[ videoid ] = []; + } + + for( var i=0; i<100; i+=gtm4wp_vimeo_percentage_tracking ) { + if ( ( videoPercentage > i ) && ( gtm4wp_vimeo_percentage_tracking_marks[ videoid ].indexOf( i ) == -1 ) ) { + gtm4wp_vimeo_percentage_tracking_marks[ videoid ].push( i ); + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlaybackPercentage', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': jqframe.attr( "title" ), + 'url': jqframe.attr( "data-player_url" ), + 'duration': videoDuration + }, + 'mediaCurrentTime': data.seconds, + 'mediaPercentage': i + }); + } + } + } + + }); + }); +}); diff --git a/js/gtm4wp-vimeo.js b/js/gtm4wp-vimeo.js new file mode 100644 index 00000000..972af357 --- /dev/null +++ b/js/gtm4wp-vimeo.js @@ -0,0 +1,268 @@ +var gtm4wp_vimeo_percentage_tracking = 10; +var gtm4wp_vimeo_percentage_tracking_marks = {}; + +;jQuery(function() { + jQuery( 'iframe[src*="vimeo.com"]' ).each(function() { + var vimeoapi = new Vimeo.Player( this ), + jqframe = jQuery( this ), + videourl = jqframe + .attr( "src" ) + .split( "?" ) + .shift(), + videoid = videourl.split( "/" ).pop(); + + jqframe.attr( "data-player_id", videoid ); + jqframe.attr( "data-player_url", videourl ); + + vimeoapi.getVideoTitle().then( function( title ) { + jqframe.attr( "data-player_title", title ); + + vimeoapi.getDuration().then( function( duration ) { + + jqframe.attr( "data-player_duration", duration ); + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerReady', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': jqframe.attr( "data-player_title" ), + 'url': videourl, + 'duration': duration + }, + 'mediaCurrentTime': 0 + }); + + }).catch( function( error ) { + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerEvent', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': jqframe.attr( "data-player_title" ), + 'url': videourl, + 'duration': 0 + }, + 'mediaCurrentTime': 0, + 'mediaPlayerEvent': 'error', + 'mediaPlayerEventParam': error + }); + + }); // end of api call getDuration + + }).catch( function( error ) { + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerEvent', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': "Unknown title", + 'url': videourl, + 'duration': 0 + }, + 'mediaCurrentTime': 0, + 'mediaPlayerEvent': 'error', + 'mediaPlayerEventParam': error + }); + + }); // end of api call getVideoTitle + + vimeoapi.on( 'play', function( data ) { + gtm4wp_onVimeoPlayerStateChange( 'play', data ); + }); + + vimeoapi.on( 'pause', function( data ) { + gtm4wp_onVimeoPlayerStateChange( 'pause', data ); + }); + + vimeoapi.on( 'ended', function( data ) { + gtm4wp_onVimeoPlayerStateChange( 'ended', data ); + }); + + vimeoapi.on( 'seeked', function( data ) { + gtm4wp_onVimeoPlayerStateChange( 'seeked', data ); + }); + + vimeoapi.on( 'texttrackchange', function( data ) { + + vimeoapi.getCurrentTime().then( function( seconds ) { + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerEvent', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': jqframe.attr( "data-player_title" ), + 'url': jqframe.attr( "data-player_url" ), + 'duration': jqframe.attr( "data-player_duration" ) + }, + 'mediaPlayerEvent': 'texttrackchange', + 'mediaPlayerEventParam': data, + 'mediaCurrentTime': seconds + + }).catch( function( error ) { + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerEvent', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': "Unknown title", + 'url': videourl, + 'duration': jqframe.attr( "data-player_duration" ) + }, + 'mediaCurrentTime': 0, + 'mediaPlayerEvent': 'error', + 'mediaPlayerEventParam': error + }); + + }); // end call api getCurrentTime() + + }); + + }); + + vimeoapi.on( 'volumechange', function( data ) { + + vimeoapi.getCurrentTime().then( function( seconds ) { + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerEvent', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': jqframe.attr( "data-player_title" ), + 'url': jqframe.attr( "data-player_url" ), + 'duration': jqframe.attr( "data-player_duration" ) + }, + 'mediaPlayerEvent': 'volumechange', + 'mediaPlayerEventParam': data.volume, + 'mediaCurrentTime': seconds + + }).catch( function( error ) { + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerEvent', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': "Unknown title", + 'url': videourl, + 'duration': jqframe.attr( "data-player_duration" ) + }, + 'mediaCurrentTime': 0, + 'mediaPlayerEvent': 'error', + 'mediaPlayerEventParam': error + }); + + }); // end call api getCurrentTime() + + }); + + }); + + vimeoapi.on( 'error', function( data ) { + + vimeoapi.getCurrentTime().then( function( seconds ) { + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerEvent', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': jqframe.attr( "data-player_title" ), + 'url': jqframe.attr( "data-player_url" ), + 'duration': jqframe.attr( "data-player_duration" ) + }, + 'mediaPlayerEvent': 'error', + 'mediaPlayerEventParam': data, + 'mediaCurrentTime': seconds + + }).catch( function( error ) { + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerEvent', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': "Unknown title", + 'url': videourl, + 'duration': jqframe.attr( "data-player_duration" ) + }, + 'mediaCurrentTime': 0, + 'mediaPlayerEvent': 'error', + 'mediaPlayerEventParam': error + }); + + }); // end call api getCurrentTime() + + }); + }); + + vimeoapi.on( 'timeupdate', function( data ) { + gtm4wp_onVimeoPercentageChange( data ); + }); + + var gtm4wp_onVimeoPlayerStateChange = function( player_state, data ) { + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerStateChange', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': jqframe.attr( "data-player_title" ), + 'url': jqframe.attr( "data-player_url" ), + 'duration': data.duration + }, + 'mediaPlayerState': player_state, + 'mediaCurrentTime': data.seconds + }); + + } + + var gtm4wp_onVimeoPercentageChange = function( data ) { + + var videoDuration = data.duration; + var videoPercentage = Math.floor( data.seconds / videoDuration * 100 ); + + if ( typeof gtm4wp_vimeo_percentage_tracking_marks[ videoid ] == "undefined" ) { + gtm4wp_vimeo_percentage_tracking_marks[ videoid ] = []; + } + + for( var i=0; i<100; i+=gtm4wp_vimeo_percentage_tracking ) { + if ( ( videoPercentage > i ) && ( gtm4wp_vimeo_percentage_tracking_marks[ videoid ].indexOf( i ) == -1 ) ) { + + gtm4wp_vimeo_percentage_tracking_marks[ videoid ].push( i ); + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlaybackPercentage', + 'mediaType': 'vimeo', + 'mediaData': { + 'id': videoid, + 'author': '', + 'title': jqframe.attr( "data-player_title" ), + 'url': jqframe.attr( "data-player_url" ), + 'duration': videoDuration + }, + 'mediaCurrentTime': data.seconds, + 'mediaPercentage': i + }); + + } + } + } + + }); +}); diff --git a/js/gtm4wp-woocommerce-tracker.js b/js/gtm4wp-woocommerce-tracker.js new file mode 100644 index 00000000..255839c1 --- /dev/null +++ b/js/gtm4wp-woocommerce-tracker.js @@ -0,0 +1,15 @@ +jQuery( function() { + jQuery( "body" ) + .on( "added_to_cart", function() { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.addProductToCart' + }); + }); + + if ( window.location.search.indexOf( "added-to-cart" ) > -1 ) { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.addProductToCart' + }); + } +}); + diff --git a/js/gtm4wp-youtube.js b/js/gtm4wp-youtube.js new file mode 100644 index 00000000..3e6ba60c --- /dev/null +++ b/js/gtm4wp-youtube.js @@ -0,0 +1,221 @@ +var gtm4wp_youtube_percentage_tracking = 10; +var gtm4wp_youtube_percentage_tracking_timeouts = {}; +var gtm4wp_youtube_percentage_tracking_marks = {}; + +if ( typeof onYouTubeIframeAPIReady === "undefined" ) { + window.onYouTubeIframeAPIReady = function() { + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaApiReady', + 'mediaType': 'youtube' + }); + + jQuery( "iframe[src^='https://www.youtube.com/embed']" ).each( function() { + var gtm4wp_jqthis = jQuery( this ); + var playerID = gtm4wp_jqthis.attr( "id" ); + + if ( ( playerID == undefined ) || ( playerID == "" ) ) { + var _gtm4wp_temp = gtm4wp_jqthis.attr( "src" ).split( "?" ); + var _gtm4wp_temp2 = _gtm4wp_temp[ 0 ].split( "/" ); + + var playerID = "youtubeplayer_" + _gtm4wp_temp2[ _gtm4wp_temp2.length-1 ]; + gtm4wp_jqthis.attr( "id", playerID ); + } + + var gtm4wp_yturl = gtm4wp_jqthis.attr( "src" ); + if ( gtm4wp_yturl.indexOf( "enablejsapi=1" ) == -1 ) { + if ( gtm4wp_yturl.indexOf( "?" ) == -1 ) { + gtm4wp_yturl += "?"; + } + + gtm4wp_yturl += "&enablejsapi=1&origin=" + document.location.protocol + "//" + document.location.hostname; + + gtm4wp_jqthis.attr( "src", gtm4wp_yturl ); + } + + player = new YT.Player( playerID, { + events: { + 'onReady': gtm4wp_onYouTubePlayerReady, + 'onStateChange': gtm4wp_onYouTubePlayerStateChange, + 'onPlaybackQualityChange': gtm4wp_onYouTubePlaybackQualityChange, + 'onPlaybackRateChange': gtm4wp_onYouTubePlaybackRateChange, + 'onError': gtm4wp_onYouTubeError, + 'onApiChange': gtm4wp_onYouTubeApiChange + } + }); + }); + } + + var tag = document.createElement( 'script' ); + tag.src = "//www.youtube.com/iframe_api"; + var firstScriptTag = document.getElementsByTagName( 'script' )[0]; + firstScriptTag.parentNode.insertBefore( tag, firstScriptTag ); +} else { + var gtm4wp_err = new Error( "Another code is already utilizing YouTube API, GTM4WP plugin can not load YouTube tracking!" ); + throw gtm4wp_err; +} + +function gtm4wp_onYouTubePlayerReady( event ) { + var videodata = event.target.getVideoData(); + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerReady', + 'mediaType': 'youtube', + 'mediaData': { + 'id': videodata.video_id, + 'author': videodata.author, + 'title': videodata.title, + 'url': event.target.getVideoUrl(), + 'duration': event.target.getDuration() + }, + 'mediaCurrentTime': event.target.getCurrentTime() + }); +} + +function gtm4wp_onYouTubePlayerStateChange( event ) { + var playerState = "unknown"; + switch( event.data ) { + case -1: playerState = "unstarted"; break; + case YT.PlayerState.ENDED: playerState = "ended"; break; + case YT.PlayerState.PLAYING: playerState = "play"; break; + case YT.PlayerState.PAUSED: playerState = "pause"; break; + case YT.PlayerState.BUFFERING: playerState = "buffering"; break; + case YT.PlayerState.CUED: playerState = "cued"; break; + } + + var videoId = event.target.getVideoData().video_id; + + if ( ( YT.PlayerState.PLAYING == event.data ) && ( gtm4wp_youtube_percentage_tracking > 0 ) ) { + gtm4wp_youtube_percentage_tracking_timeouts[ videoId ] = setInterval(function() { + gtm4wp_onYouTubePercentageChange( event ); + }, 1000); + } else { + if ( gtm4wp_youtube_percentage_tracking_timeouts[ videoId ] ) { + clearInterval( gtm4wp_youtube_percentage_tracking_timeouts[ videoId ] ); + } + } + + var videodata = event.target.getVideoData(); + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerStateChange', + 'mediaType': 'youtube', + 'mediaData': { + 'id': videodata.video_id, + 'author': videodata.author, + 'title': videodata.title, + 'url': event.target.getVideoUrl(), + 'duration': event.target.getDuration() + }, + 'mediaPlayerState': playerState, + 'mediaCurrentTime': event.target.getCurrentTime() + }); +} + +function gtm4wp_onYouTubePlaybackQualityChange( event ) { + var videodata = event.target.getVideoData(); + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerEvent', + 'mediaType': 'youtube', + 'mediaData': { + 'id': videodata.video_id, + 'author': videodata.author, + 'title': videodata.title, + 'url': event.target.getVideoUrl(), + 'duration': event.target.getDuration() + }, + 'mediaCurrentTime': event.target.getCurrentTime(), + 'mediaPlayerEvent': 'quality-change', + 'mediaPlayerEventParam': event.data + }); +} + +function gtm4wp_onYouTubePlaybackRateChange( event ) { + var videodata = event.target.getVideoData(); + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerEvent', + 'mediaType': 'youtube', + 'mediaData': { + 'id': videodata.video_id, + 'author': videodata.author, + 'title': videodata.title, + 'url': event.target.getVideoUrl(), + 'duration': event.target.getDuration() + }, + 'mediaCurrentTime': event.target.getCurrentTime(), + 'mediaPlayerEvent': 'ratechange', + 'mediaPlayerEventParam': event.data + }); +} + +function gtm4wp_onYouTubeError( event ) { + var videodata = event.target.getVideoData(); + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerEvent', + 'mediaType': 'youtube', + 'mediaData': { + 'id': videodata.video_id, + 'author': videodata.author, + 'title': videodata.title, + 'url': event.target.getVideoUrl(), + 'duration': event.target.getDuration() + }, + 'mediaCurrentTime': event.target.getCurrentTime(), + 'mediaPlayerEvent': 'error', + 'mediaPlayerEventParam': event.data + }); +} + +function gtm4wp_onYouTubeApiChange( event ) { + var videodata = event.target.getVideoData(); + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlayerEvent', + 'mediaType': 'youtube', + 'mediaData': { + 'id': videodata.video_id, + 'author': videodata.author, + 'title': videodata.title, + 'url': event.target.getVideoUrl(), + 'duration': event.target.getDuration() + }, + 'mediaCurrentTime': event.target.getCurrentTime(), + 'mediaPlayerEvent': 'api-change', + 'mediaPlayerEventParam': event.data + }); +} + +function gtm4wp_onYouTubePercentageChange( event ) { + var videoId = event.target.getVideoData().video_id; + var videoCurrentTime = event.target.getCurrentTime(); + var videoDuration = event.target.getDuration(); + var videoPercentage = Math.floor( videoCurrentTime / videoDuration * 100 ) + + if ( typeof gtm4wp_youtube_percentage_tracking_marks[ videoId ] == "undefined" ) { + gtm4wp_youtube_percentage_tracking_marks[ videoId ] = []; + } + + var videodata = event.target.getVideoData(); + + for( var i=0; i<100; i+=gtm4wp_youtube_percentage_tracking ) { + if ( ( videoPercentage > i ) && ( gtm4wp_youtube_percentage_tracking_marks[ videoId ].indexOf( i ) == -1 ) ) { + gtm4wp_youtube_percentage_tracking_marks[ videoId ].push( i ); + + window[ gtm4wp_datalayer_name ].push({ + 'event': 'gtm4wp.mediaPlaybackPercentage', + 'mediaType': 'youtube', + 'mediaData': { + 'id': videodata.video_id, + 'author': videodata.author, + 'title': videodata.title, + 'url': event.target.getVideoUrl(), + 'duration': event.target.getDuration() + }, + 'mediaCurrentTime': event.target.getCurrentTime(), + 'mediaPercentage': i + }); + } + } +} diff --git a/LICENSE b/license.txt similarity index 92% rename from LICENSE rename to license.txt index 9cecc1d4..94a04532 100644 --- a/LICENSE +++ b/license.txt @@ -619,56 +619,3 @@ Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - {one line to give the program's name and a brief idea of what it does.} - Copyright (C) {year} {name of author} - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - {project} Copyright (C) {year} {fullname} - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/public/frontend.php b/public/frontend.php new file mode 100644 index 00000000..e33113c4 --- /dev/null +++ b/public/frontend.php @@ -0,0 +1,642 @@ + $value ) { + if ( substr($name, 0, 5) == "HTTP_" ) { + $headers[ str_replace(' ', '-', ucwords( strtolower( str_replace( '_', ' ', substr( $name, 5 ) ) ) ) ) ] = $value; + } + } + + return $headers; + } +} + +function gtm4wp_add_basic_datalayer_data( $dataLayer ) { + global $wp_query, $gtm4wp_options; + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_SITEID ] || $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_SITENAME ] ) { + $dataLayer["siteID"] = 0; + $dataLayer["siteName"] = ""; + + if ( function_exists( 'get_blog_details' ) ) { + $gtm4wp_blogdetails = get_blog_details(); + + $dataLayer["siteID"] = $gtm4wp_blogdetails->blog_id; + $dataLayer["siteName"] = $gtm4wp_blogdetails->blogname; + } + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_LOGGEDIN ] ) { + if ( is_user_logged_in() ) { + $dataLayer["visitorLoginState"] = "logged-in"; + } else { + $dataLayer["visitorLoginState"] = "logged-out"; + } + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_USERROLE ] ) { + $current_user = wp_get_current_user(); + $dataLayer["visitorType"] = ( empty( $current_user->roles[0] ) ? "visitor-logged-out" : $current_user->roles[0] ); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_USERID ] ) { + $_gtm4wp_userid = get_current_user_id(); + if ( $_gtm4wp_userid > 0 ) { + $dataLayer["visitorId"] = $_gtm4wp_userid; + } + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_POSTTITLE ] ) { + $dataLayer["pageTitle"] = strip_tags( wp_title( "|", false, "right" ) ); + } + + if ( is_singular() ) { + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_POSTTYPE ] ) { + $dataLayer["pagePostType"] = get_post_type(); + $dataLayer["pagePostType2"] = "single-".get_post_type(); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_CATEGORIES ] ) { + $_post_cats = get_the_category(); + if ( $_post_cats ) { + $dataLayer["pageCategory"] = array(); + foreach( $_post_cats as $_one_cat ) { + $dataLayer["pageCategory"][] = $_one_cat->slug; + } + } + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_TAGS ] ) { + $_post_tags = get_the_tags(); + if ( $_post_tags ) { + $dataLayer["pageAttributes"] = array(); + foreach( $_post_tags as $_one_tag ) { + $dataLayer["pageAttributes"][] = $_one_tag->slug; + } + } + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_AUTHORID ] || $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_AUTHOR ] ) { + $postuser = get_userdata( $GLOBALS["post"]->post_author ); + + if ( false !== $postuser ) { + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_AUTHORID ] ) { + $dataLayer["pagePostAuthorID"] = $postuser->ID; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_AUTHOR ] ) { + $dataLayer["pagePostAuthor"] = $postuser->display_name; + } + } + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_POSTDATE ] ) { + $dataLayer["pagePostDate"] = get_the_date(); + $dataLayer["pagePostDateYear"] = get_the_date( "Y" ); + $dataLayer["pagePostDateMonth"] = get_the_date( "m" ); + $dataLayer["pagePostDateDay"] = get_the_date( "d" ); + } + } + + if ( is_archive() || is_post_type_archive() ) { + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_POSTTYPE ] ) { + $dataLayer["pagePostType"] = get_post_type(); + + if ( is_category() ) { + $dataLayer["pagePostType2"] = "category-".get_post_type(); + } else if ( is_tag() ) { + $dataLayer["pagePostType2"] = "tag-".get_post_type(); + } else if ( is_tax() ) { + $dataLayer["pagePostType2"] = "tax-".get_post_type(); + } else if ( is_author() ) { + $dataLayer["pagePostType2"] = "author-".get_post_type(); + } else if ( is_year() ) { + $dataLayer["pagePostType2"] = "year-".get_post_type(); + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_POSTDATE ] ) { + $dataLayer["pagePostDateYear"] = get_the_date( "Y" ); + } + } else if ( is_month() ) { + $dataLayer["pagePostType2"] = "month-".get_post_type(); + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_POSTDATE ] ) { + $dataLayer["pagePostDateYear"] = get_the_date( "Y" ); + $dataLayer["pagePostDateMonth"] = get_the_date( "m" ); + } + } else if ( is_day() ) { + $dataLayer["pagePostType2"] = "day-".get_post_type(); + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_POSTDATE ] ) { + $dataLayer["pagePostDate"] = get_the_date(); + $dataLayer["pagePostDateYear"] = get_the_date( "Y" ); + $dataLayer["pagePostDateMonth"] = get_the_date( "m" ); + $dataLayer["pagePostDateDay"] = get_the_date( "d" ); + } + } else if ( is_time() ) { + $dataLayer["pagePostType2"] = "time-".get_post_type(); + } else if ( is_date() ) { + $dataLayer["pagePostType2"] = "date-".get_post_type(); + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_POSTDATE ] ) { + $dataLayer["pagePostDate"] = get_the_date(); + $dataLayer["pagePostDateYear"] = get_the_date( "Y" ); + $dataLayer["pagePostDateMonth"] = get_the_date( "m" ); + $dataLayer["pagePostDateDay"] = get_the_date( "d" ); + } + } + } + + if ( ( is_tax() || is_category() ) && $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_CATEGORIES ] ) { + $_post_cats = get_the_category(); + $dataLayer["pageCategory"] = array(); + foreach( $_post_cats as $_one_cat ) { + $dataLayer["pageCategory"][] = $_one_cat->slug; + } + } + + if ( ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_AUTHORID ] ) && ( is_author() ) ) { + global $authordata; + $dataLayer["pagePostAuthorID"] = isset( $authordata->ID ) ? $authordata->ID : 0; + } + + if ( ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_AUTHOR ] ) && ( is_author() ) ) { + $dataLayer["pagePostAuthor"] = get_the_author(); + } + } + + if ( is_search() ) { + $dataLayer["siteSearchTerm"] = get_search_query(); + $dataLayer["siteSearchFrom"] = ( isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : "" ); + $dataLayer["siteSearchResults"] = $wp_query->post_count; + } + + if ( is_front_page() && $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_POSTTYPE ] ) { + $dataLayer["pagePostType"] = "frontpage"; + } + + if ( !is_front_page() && is_home() && $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_POSTTYPE ] ) { + $dataLayer["pagePostType"] = "bloghome"; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_BROWSERDATA ] || $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_OSDATA ] || $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_DEVICEDATA ] ) { + spl_autoload_register( function( $class ) { + $class_parts = explode( "\\", $class ); + if ( "WhichBrowser" == $class_parts[0] ) { + include dirname( __FILE__ ) . "/../integration/whichbrowser/" . str_replace( array( "WhichBrowser", "\\" ), array( "src", "/" ), $class ) . ".php"; + } + }); + + require_once( dirname( __FILE__ ) . "/../integration/whichbrowser/src/Parser.php" ); + + $gtp4wp_headers = getallheaders(); + if ( ( false === $gtp4wp_headers ) && isset( $_SERVER['HTTP_USER_AGENT'] ) ) { + $gtp4wp_headers = $_SERVER['HTTP_USER_AGENT']; + } + if ( false !== $gtp4wp_headers ) { + $detected = new WhichBrowser\Parser($gtp4wp_headers); + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_BROWSERDATA ] ) { + $dataLayer["browserName"] = isset( $detected->browser->name ) ? $detected->browser->name : ""; + $dataLayer["browserVersion"] = isset( $detected->browser->version->value ) ? $detected->browser->version->value : ""; + + $dataLayer["browserEngineName"] = isset( $detected->engine->name ) ? $detected->engine->name : ""; + $dataLayer["browserEngineVersion"] = isset( $detected->engine->version->value ) ? $detected->engine->version->value : ""; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_OSDATA ] ) { + $dataLayer["osName"] = isset( $detected->os->name ) ? $detected->os->name : ""; + $dataLayer["osVersion"] = isset( $detected->os->version->value ) ? $detected->os->version->value : ""; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_DEVICEDATA ] ) { + $dataLayer["deviceType"] = isset( $detected->device->type ) ? $detected->device->type : ""; + $dataLayer["deviceManufacturer"] = isset( $detected->device->manufacturer ) ? $detected->device->manufacturer : ""; + $dataLayer["deviceModel"] = isset( $detected->device->model ) ? $detected->device->model : ""; + } + } + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_POSTCOUNT ] ) { + $dataLayer["postCountOnPage"] = (int) $wp_query->post_count; + $dataLayer["postCountTotal"] = (int) $wp_query->found_posts; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_POSTID ] ) { + $dataLayer["postID"] = (int) get_the_ID(); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_ENABLE ] > 0 ) { + $_gtmrestrictlistitems = array(); + + // IDs from https://developers.google.com/tag-manager/devguide#security + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_ADADVISOR ] ) { + $_gtmrestrictlistitems[] = "ta"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_ADROLL ] ) { + $_gtmrestrictlistitems[] = "asp"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_AWCONV ] ) { + $_gtmrestrictlistitems[] = "awct"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_AWREMARKET ] ) { + $_gtmrestrictlistitems[] = "sp"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_BIZO ] ) { + $_gtmrestrictlistitems[] = "bzi"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_CLICKTALE ] ) { + $_gtmrestrictlistitems[] = "cts"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_COMSCORE ] ) { + $_gtmrestrictlistitems[] = "csm"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_CUSTOMHTML ] ) { + $_gtmrestrictlistitems[] = "html"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_CUSTOMIMG ] ) { + $_gtmrestrictlistitems[] = "img"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_DBLCLKCOUNT ] ) { + $_gtmrestrictlistitems[] = "flc"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_DBLCLKSALES ] ) { + $_gtmrestrictlistitems[] = "fls"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_GACLASSIC ] ) { + $_gtmrestrictlistitems[] = "ga"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MARIN ] ) { + $_gtmrestrictlistitems[] = "ms"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MPLEXIFRAME ] ) { + $_gtmrestrictlistitems[] = "mpm"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MPLEXROI ] ) { + $_gtmrestrictlistitems[] = "mpr"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MEDIA6DEG ] ) { + $_gtmrestrictlistitems[] = "m6d"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_TURNCONV ] ) { + $_gtmrestrictlistitems[] = "tc"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_TURNDATA ] ) { + $_gtmrestrictlistitems[] = "tdc"; + } + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_UA ] ) { + $_gtmrestrictlistitems[] = "ua"; + } + + $_gtmwhitelist = array(); + $_gtmblacklist = array(); + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_ENABLE ] == 1 ) { + $_gtmblacklist = array_merge($_gtmblacklist, $_gtmrestrictlistitems); + } else { + $_gtmwhitelist = array_merge($_gtmwhitelist, $_gtmrestrictlistitems); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MACRO_DOMELEMENT ] ) { + $_gtmwhitelist[] = "d"; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MACRO_CUSTOMJS ] ) { + $_gtmwhitelist[] = "jsm"; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MACRO_CONSTANT ] ) { + $_gtmwhitelist[] = "c"; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MACRO_1STCOOKIE ] ) { + $_gtmwhitelist[] = "k"; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MACRO_EVENTNAME ] ) { + $_gtmwhitelist[] = "e"; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MACRO_JSVAR ] ) { + $_gtmwhitelist[] = "j"; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MACRO_DLAYERVAR ] ) { + $_gtmwhitelist[] = "v"; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MACRO_RANDOMNUM ] ) { + $_gtmwhitelist[] = "r"; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MACRO_REFERRER ] ) { + $_gtmwhitelist[] = "f"; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MACRO_URL ] ) { + $_gtmwhitelist[] = "u"; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_BLACKLIST_MACRO_AUTOEVENT ] ) { + $_gtmwhitelist[] = "v"; + } + + $dataLayer[ "gtm.whitelist" ] = $_gtmwhitelist; + $dataLayer[ "gtm.blacklist" ] = $_gtmblacklist; + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_WEATHER ] ) { + $dataLayer[ "weatherCategory" ] = __( "(no weather data available)", 'duracelltomi-google-tag-manager' ); + $dataLayer[ "weatherDescription" ] = __( "(no weather data available)", 'duracelltomi-google-tag-manager' ); + $dataLayer[ "weatherTemp" ] = 0; + $dataLayer[ "weatherPressure" ] = 0; + $dataLayer[ "weatherWindSpeed" ] = 0; + $dataLayer[ "weatherWindDeg" ] = 0; + + $gtm4wp_sessionid = array_key_exists( "gtm4wp_sessoionid", $_COOKIE ) ? $_COOKIE[ "gtm4wp_sessoionid" ] : ""; + // this is needed so that nobody can do a hack by editing our cookie + $gtm4wp_sessionid = str_replace( "'", "", trim( basename( $gtm4wp_sessionid ) ) ); + + if ( "" !== $gtm4wp_sessionid ) { + $weatherdata = get_transient( 'gtm4wp-weatherdata-'.$gtm4wp_sessionid ); + + if ( false !== $weatherdata ) { + $dataLayer[ "weatherCategory" ] = $weatherdata->weather[0]->main; + $dataLayer[ "weatherDescription" ] = $weatherdata->weather[0]->description; + $dataLayer[ "weatherTemp" ] = $weatherdata->main->temp; + $dataLayer[ "weatherPressure" ] = $weatherdata->main->pressure; + $dataLayer[ "weatherWindSpeed" ] = $weatherdata->wind->speed; + $dataLayer[ "weatherWindDeg" ] = $weatherdata->wind->deg; + } + } + } + + return $dataLayer; +} + +function gtm4wp_wp_loaded() { + global $gtm4wp_options; + + if ( $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_WEATHER ] ) { + $gtm4wp_sessionid = array_key_exists( "gtm4wp_sessoionid", $_COOKIE ) ? $_COOKIE[ "gtm4wp_sessoionid" ] : ""; + // this is needed so that nobody can do a hack by editing our cookie + $gtm4wp_sessionid = str_replace( "'", "", trim( basename( $gtm4wp_sessionid ) ) ); + + if ( "" === $gtm4wp_sessionid ) { + $gtm4wp_sessionid = substr( md5( date( "Ymd_His" ).rand() ), 0, 20 ); + setcookie( "gtm4wp_sessoionid", $gtm4wp_sessionid, time()+(60*60*24*365*2) ); + } + + $weatherdata = get_transient( 'gtm4wp-weatherdata-'.$gtm4wp_sessionid ); + + if ( false === $weatherdata ) { + $gtm4wp_geodata = wp_remote_get( 'http://www.geoplugin.net/php.gp?ip='.$_SERVER['REMOTE_ADDR'] ); + + if ( is_array( $gtm4wp_geodata ) && ( 200 == $gtm4wp_geodata[ "response" ][ "code" ] ) ) { + $gtm4wp_geodata = unserialize( $gtm4wp_geodata[ "body" ] ); + + if ( array_key_exists( 'geoplugin_latitude', $gtm4wp_geodata ) && array_key_exists( 'geoplugin_longitude', $gtm4wp_geodata ) ) { + $weatherdata = wp_remote_get( 'http://api.openweathermap.org/data/2.5/weather?appid=' . $gtm4wp_options[ GTM4WP_OPTION_INCLUDE_WEATHEROWMAPI ] . '&lat=' . $gtm4wp_geodata[ "geoplugin_latitude" ] . '&lon=' . $gtm4wp_geodata[ "geoplugin_longitude" ] . '&units=' . ($gtm4wp_options[ GTM4WP_OPTION_INCLUDE_WEATHERUNITS ] == 0 ? 'metric' : 'imperial') ); + + if ( is_array( $weatherdata ) && ( 200 == $weatherdata[ "response" ][ "code" ] ) ) { + $weatherdata = @json_decode( $weatherdata[ "body" ] ); + + if ( is_object( $weatherdata ) ) { + set_transient( 'gtm4wp-weatherdata-'.$gtm4wp_sessionid, $weatherdata, 60 * 60 ); + } + } + } + } + } + } +} + +function gtm4wp_get_the_gtm_tag() { + global $gtm4wp_options, $gtm4wp_datalayer_name, $gtm4wp_container_code_written; + + $_gtm_tag = ''; + + if ( GTM4WP_PLACEMENT_OFF == $gtm4wp_options[ GTM4WP_OPTION_GTM_PLACEMENT ] ) { + $gtm4wp_container_code_written = true; + } + + if ( ( $gtm4wp_options[ GTM4WP_OPTION_GTM_CODE ] != "" ) && ( ! $gtm4wp_container_code_written ) ) { + $_gtm_codes = explode( ",", str_replace( array(";"," "), array(",",""), $gtm4wp_options[ GTM4WP_OPTION_GTM_CODE ] ) ); + + foreach( $_gtm_codes as $one_gtm_code ) { + $_gtm_tag .= ' + +'; + } + + $_gtm_tag .= ' +'; + + $_gtm_tag = apply_filters( GTM4WP_WPFILTER_GETTHEGTMTAG, $_gtm_tag ); + $gtm4wp_container_code_written = true; + } + + return $_gtm_tag; +} + +function gtm4wp_the_gtm_tag() { + echo gtm4wp_get_the_gtm_tag(); +} + +function gtm4wp_enqueue_scripts() { + global $gtm4wp_options, $gtp4wp_plugin_url; + + if ( $gtm4wp_options[ GTM4WP_OPTION_EVENTS_OUTBOUND ] ) { + $in_footer = apply_filters( 'gtm4wp_' . GTM4WP_OPTION_EVENTS_OUTBOUND, false); + wp_enqueue_script( "gtm4wp-outbound-click-tracker", $gtp4wp_plugin_url . "js/gtm4wp-outbound-click-tracker.js", array( "jquery" ), GTM4WP_VERSION, $in_footer ); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_EVENTS_DOWNLOADS ] ) { + $in_footer = apply_filters( 'gtm4wp_' . GTM4WP_OPTION_EVENTS_DOWNLOADS, false); + wp_enqueue_script( "gtm4wp-download-tracker", $gtp4wp_plugin_url . "js/gtm4wp-download-tracker.js", array( "jquery" ), GTM4WP_VERSION, $in_footer ); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_EVENTS_EMAILCLICKS ] ) { + $in_footer = apply_filters( 'gtm4wp_' . GTM4WP_OPTION_EVENTS_EMAILCLICKS, false); + wp_enqueue_script( "gtm4wp-email-link-tracker", $gtp4wp_plugin_url . "js/gtm4wp-email-link-tracker.js", array( "jquery" ), GTM4WP_VERSION, $in_footer ); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_INTEGRATE_WPCF7 ] ) { + $in_footer = apply_filters( 'gtm4wp_' . GTM4WP_OPTION_INTEGRATE_WPCF7, false); + wp_enqueue_script( "gtm4wp-contact-form-7-tracker", $gtp4wp_plugin_url . "js/gtm4wp-contact-form-7-tracker.js", array( "jquery" ), GTM4WP_VERSION, $in_footer ); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_EVENTS_FORMMOVE ] ) { + $in_footer = apply_filters( 'gtm4wp_' . GTM4WP_OPTION_EVENTS_FORMMOVE, false); + wp_enqueue_script( "gtm4wp-form-move-tracker", $gtp4wp_plugin_url . "js/gtm4wp-form-move-tracker.js", array( "jquery" ), GTM4WP_VERSION, $in_footer ); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_EVENTS_SOCIAL ] ) { + $in_footer = apply_filters( 'gtm4wp_' . GTM4WP_OPTION_EVENTS_SOCIAL, false); + wp_enqueue_script( "gtm4wp-social-actions", $gtp4wp_plugin_url . "js/gtm4wp-social-tracker.js", array( "jquery" ), GTM4WP_VERSION, $in_footer ); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_EVENTS_YOUTUBE ] ) { + require_once( dirname( __FILE__ ) . "/../integration/youtube.php" ); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_EVENTS_VIMEO ] ) { + require_once( dirname( __FILE__ ) . "/../integration/vimeo.php" ); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_EVENTS_SOUNDCLOUD ] ) { + require_once( dirname( __FILE__ ) . "/../integration/soundcloud.php" ); + } + + if ( $gtm4wp_options[ GTM4WP_OPTION_SCROLLER_ENABLED ] ) { + $in_footer = apply_filters( 'gtm4wp_' . GTM4WP_OPTION_SCROLLER_ENABLED, false); + wp_enqueue_script( "gtm4wp-scroll-tracking", $gtp4wp_plugin_url . "js/analytics-talk-content-tracking.js", array( "jquery" ), GTM4WP_VERSION, $in_footer ); + } +} + +function gtm4wp_wp_footer() { + global $gtm4wp_options; + + if ( GTM4WP_PLACEMENT_FOOTER == $gtm4wp_options[ GTM4WP_OPTION_GTM_PLACEMENT ] ) { + gtm4wp_the_gtm_tag(); + } +} + +function gtm4wp_wp_body_open() { + global $gtm4wp_options; + + if ( ( GTM4WP_PLACEMENT_BODYOPEN == $gtm4wp_options[ GTM4WP_OPTION_GTM_PLACEMENT ] ) || ( GTM4WP_PLACEMENT_BODYOPEN_AUTO == $gtm4wp_options[ GTM4WP_OPTION_GTM_PLACEMENT ] ) ) { + gtm4wp_the_gtm_tag(); + } +} + +function gtm4wp_wp_header_begin() { + global $gtm4wp_datalayer_name, $gtm4wp_options; + + $_gtm_header_content = ' + + +'; + + echo $_gtm_header_content; +} + +function gtm4wp_wp_header_end() { + global $gtm4wp_datalayer_name, $gtm4wp_options; + + $_gtm_tag = ''; + + if ( $gtm4wp_options[ GTM4WP_OPTION_GTM_CODE ] != "" ) { + $_gtm_tag .= ' + +'; + } + + echo $_gtm_tag; +} + +function gtm4wp_body_class( $classes ) { + global $gtm4wp_options; + + // solution is based on the code of Yaniv Friedensohn + // http://www.affectivia.com/blog/placing-the-google-tag-manager-in-wordpress-after-the-body-tag/ + if ( GTM4WP_PLACEMENT_BODYOPEN_AUTO == $gtm4wp_options[ GTM4WP_OPTION_GTM_PLACEMENT ] ) { + $classes[] = '">' . gtm4wp_get_the_gtm_tag() . '
` and edit `header.php`. +In most cases you will find the opening `` tag here. + +If you can not find it, contact the author of the theme and ask for instructions. + +In case you found the opening `` tag, open a new line just after it and insert this line of code: +`` + +Be careful not to include this line inside any `
`, `

`, `

`, `
` and so on. +It can break you theme. + +There is also a solution named "Codeless" which tries to add the container code to the right place but +without additional theme tweaking. This is still experimental, use it wisely. + += Why can not this plugin insert the container snippet after the opening body tag automatically? = + +Currently WordPress has two 'commands' or 'hooks' that a programmer can use: one for the `` section and +one for the bottom of ``. There is no way to inject any content after the opening body tag without manually editing your template files. + +Fortunately some theme authors already resolved this so in some cases you do not need to edit your template. +I suggest first to select the Custom placement and use Google Tag Assistant Chrome browser extension to check +whether the container code is placed as expected. + +If it shows an error, go and edit your theme manually. + += Facebook like/share/send button events do not fire for me, why? = + +It is a limitation of Facebook. Click event tracking is only available for html5/xfbml buttons. +If you or your social plugin inserts the Facebook buttons using IFRAMEs (like Sociable), it is not possible to track likes. + +== Screenshots == + +1. Admin panel +2. Basic settings +3. Events +4. Integration panel +5. Advanced settings +6. Scroll tracking + +== Changelog == + += 1.4 = + +* Fixed: WP CLI error message +* Fixed: wrong dynamic remarketing tagging on cart and checkout pages +* Updated: WhichBrowser library to 2.0.22 +* Updated: slightly changed container code snippet to prevent W3 Total Cache to alter the code which breaks proper code execution +* Updated: replaced file_get_contents() usage in weather tracking to wp_remote_get() so that it is more compatible with several WP instances +* Updated: YouTube/Video/Soundcloud tracking now tracks videos not embedded using oEmbed (like videos in a widget area) +* Updated: new Vimeo Player API implemented which should solve several issues +* Changed: adapted W3C HTML5 media player event names which changes some events (needs updating your existing GTM setup): + * Soundcloud: finish => ended, seek => seeked + * YouTube: playing => play, paused => pause, playback-rate-change => ratechange + * Vimeo: seek => seeked +* Added: new placement option - 'off'. This will only generate the data layer but you will need to add the proper GTM container code snippet by hand +* Added: new data layer variable: authorID +* Added: new data layer variable: siteID to be able to track based on blog ID in a multisite environment +* Added: new data layer variable: siteName to be able to track in a multisite environment + += 1.3.2 = + +* Fixed: remove cart event not fired in WooCommerce 2.6 +* Fixed: ecomm_prodid.push error message on product detail pages +* Fixed: proper tracking of cart actions on the cart page for WooCommerce 2.6 +* Fixed: 'Illegal string offset' errors in some cases in the cart +* Fixed: OpenWeatherMap requires a (free) API key now, you can now enter this to use weather data in data layer + += 1.3.1 = + +* Fixed: "json_encode() expects parameter 2 to be long, string given" on PHP 5.3 instances +* Fixed: Fatal PHP error in cart if you enabled taxes to be included in your cart + += 1.3 = + +Major changes to the Enhanced Ecommerce implementation of the WooCommerce integration! + +* Fixed: proper tracking of list positions +* Fixed: opening product detail page in a new window/tab when user pressed the CTRL key +* Fixed: ecomm_totalvalue included the total price of the cart without taxes +* Fixed: ecomm_totalvalue does not take into account the quantity of ordered products on the order received page +* Fixed: php error message on product lists when AdWords dynamic remarketing was enabled on WooCommerce 2.6 +* Fixed: added data-cfasync="false" to the GTM container code for better compatibility with CloudFlare +* Added: introducing tracking of list names (general product list, recent products list, featured products list, etc.) + * Some list names (like cross-sells) will be shown as 'General Product List'. A proposed change in WooCommerce 2.6 will solve that issue +* Added: tracking product lists in widgets +* Added: tracking checkout options (payment and shipment) +* Updated: better add-to-cart / remove-from-cart management in mini cart and while updating cart content +* Updated: added currency code to each enhanced ecommerce call so that currency reporting is OK for multi currency sites +* Updated: replaced usage of get_currentuser() to keep compatibility with WordPress 4.5 + += 1.2 = + +* Fixed: subtabs on admin page now showing in certain cases +* Fixed: error message when running the site using WP CLI (thanks Patrick Holberg Hesselberg) +* Fixed: some typos on admin page +* Fixed: dismissable notices did not disappear in some cases +* Fixed: tracking of Twitter event cased sometimes JS errors +* Fixed: site search tracking caused sometimes PHP errors when HTTP_REFERER was not set +* Updated: preparation for translate.wordpress.org +* Added: support for multiple container IDs +* Added: added form ID when sending a Contact Form 7 form. Variable name: gtm4wp.cf7formid + += 1.1.1 = + +* Fixed: PHP errors in frontend.php and admin.php + += 1.1 = + +* Added: track embedded YouTube/Vimeo/Soundcloud videos (experimental) +* Added: new checkbox - use product SKU for AdWords Dynamic Remarketing variables instead of product ID (experimental) +* Added: place your container code after the opening body tag without modifying your theme files (thx Yaniv Friedensohn) +* Added: automatic codeless container code injection for Genesis framework users +* Fixed: Possible PHP error with custom payment gateway (QuickPay) on the checkout page (thx Damiel for findig this) + += 1.0 = + +The plugin itself is now declared as stable. This means that it should work with most WordPress instances. +From now on each version will include features labeled as: + +* Beta: the feature has been proven to work for several users but it can still have some bugs +* Experimental: new feature that needs proper testing with more users +* Deprecated: this feature will be removed in a future version + +If you see any issue with beta or experimental functions just disable the checkbox. Using this error messages should disappear. +Please report all bugs found in my plugin using the [contact form on my website](https://duracelltomi.com/contact). + +* Fixed: wrong GTM container code when renaming default dataLayer variable name (thx Vassilis Papavassiliou) +* Fixed: Enhanced Ecommerce product click data was "undefined" in some cases (thx Sergio Alen) +* Fixed: wrong user role detection while adding visitorType to the dataLayer (thx Philippe Vachon-Rivard) +* Changed: only add visitorId to the dataLayer if there is a logged in user +* Added: feature labels so that you can see beta, experimental and deprecated features +* Deprecated: outbound click, email click and download click events. You should use GTM trigger events instead + += 0.9.1 = + +* Fixed: PHP error message: missing get_shipping function using WooCommerce 2.3.x + += 0.9 = + +* Added: visitorId dataLayer variable with the ID of the currently logged in user to track userID in Google Analytics +* Added: WordPress filter hook so that other templates and plugins can get access to the GTM container code before outputting it +* Fixed: 'variation incorrect' issue by Sharken03 +* Fixed: error messages in WooCommerce integration when product has no categories +* Fixed: add_inline_js errors in newer versions of WooCommerce +* Fixed: error message when some device/browser/OS data could not be set +* Fixed: tracking Twitter events was broken + += 0.8.2 = + +* Fixed: broken links when listing subcategories instead of products (thanks Jon) +* Fixed: wheather/weather typo (thanks John Hockaday) +* Fixed: wrong usage of get_the_permalink() instead of get_permalink() (thanks Szepe Viktor) + += 0.8.1 = + +* Fixed: PHP error in enhanced ecommerce implementation when using layered nav widget + += 0.8 = + +* Updated: Added subtabs to the admin UI to make room for new features :-) +* Updated: WhichBrowser library to the latest version +* Added: You can now dismiss plugin notices permanently for each user +* Added: weather data. See updated plugin description for details +* Added: Enhanced E-commerce for WooCommerce (experimental!) +* Fixed: PHP notice in frontend.php script. Credit to Daniel Sousa + += 0.7.1 = + +* Fixed: WooCommerce 2.1.x compatibility + += 0.7 = + +* Updated/Fixed: dataLayer variables are now populated at the end of the head section. Using this the container code can appear just after the opening body tag, thus Webmaster Tools verification using Tag Manager option will work +* Added: blacklist or whitelist tags and macros to increase security of your Tag Manager setup + + += 0.6 = + +* Updated: better add-to-cart events for WooCommerce, it includes now product name, SKU and ID +* Added: browser, OS and device data to dataLayer variables +* Added: postCountOnPage and postCountTotal dataLayer variables to track empty categories/tags/taxonomies + += 0.5.1 = + +* Fixed: WooCommerce integration did not work on some environments + += 0.5 = +* Added: scroll tracking +* Fixed: social tracking option on the admin panel was being shown as an edit box instead of a checkbox +* Fixed: WooCommerce transaction data was not included in the dataLayer if you selected "Custom" code placement +* Fixed: do not do anything if you enabled WooCommerce integration but did not activate WooCommerce plugin itself +* Updated: do not re-declare dataLayer variable if it already exists (because another script already created it before my plugin was run) + += 0.4 = +* Added: you can now select container code placement. This way you can insert the code snippet after the opening body tag. Please read FAQ for details +* Added: initial support for social event tracking for Facebook and Twitter buttons. Please read FAQ for details +* Updated: event name on successful WooCommerce transaction: OrderCompleted -> gtm4wp.orderCompleted +* Fixed: frontend JS codes did not load on some WordPress installs + += 0.3 = +* Updated: admin page does not show an alert box if Tag Manager ID or dataLayer variable name is incorrect. Instead it shows a warning line below the input field. +* Updated: rewritten the code for WooCommerce dynamic remarketing. Added tag for homepage and order completed page. + += 0.2 = +* ! BACKWARD INCOMPATIBLE CHANGE ! - Names of Tag Manager click events has been changed to comply with naming conventions: + * ContactFormSubmitted -> gtm4wp.contactForm7Submitted + * DownloadClick -> gtm4wp.downloadClick + * EmailClick -> gtm4wp.emailClick + * OutboundClick -> gtm4wp.outboundClick + * AddProductToCart -> gtm4wp.addProductToCart +* Updated: click events are now disabled by default to reflect recently released Tag Manager auto events. I do not plan to remove this functionality. You can decide which solution you would like to use :-) +* Updated: language template (pot) file and Hungarian translation +* Added: new form move events to track how visitors interact with your (comment, contact, etc.) forms +* Added: event names to admin options page so that you know what events to use in Google Tag Manager +* Added: Google Tag Manager icon to admin settings page +* Added: Settings link to admin plugins page +* Fixed: null value in visitorType dataLayer variable if no logged in user exists (now 'visitor-logged-out') + += 0.1 = +* First beta release + +== Upgrade Notice == + += 1.4 = + +Several additions and fixes, breaking changes on media player tracking, please read changelog before upgrade + += 1.3.2 = + +Quickfix release for 1.3.x: major changes and improvements in the enhanced ecommerce implementation for WooCommerce. If you are already using this beta feature, please read the changelog before upgrading! + += 1.3.1 = + +Quickfix release for 1.3: major changes and improvements in the enhanced ecommerce implementation for WooCommerce. If you are already using this beta feature, please read the changelog before upgrading! + += 1.3 = + +Major changes and improvements in the enhanced ecommerce implementation for WooCommerce. If you are already using this beta feature, please read the changelog before upgrading! + += 1.2 = + +New release with lots of fixes from the past months and new features like multiple container support! + += 1.1.1 = + +This is a bugfix release to address some issues with v1.1 + += 1.1 = + +New! Track popular media players embedded into your website! + += 1.0 = + +First stable release, please read changelog for details! + += 0.9.1 = + +Bugfix release for WooCommerce users with ecommerce tracking enabled + += 0.9 = + +Many bug fixes, important fixes for WooCommerce users + += 0.8.2 = + +Another bugfix release for WooCommerce users with Enhanced Ecommerce enabled + += 0.8.1 = + +Bugfix release for WooCommerce users with Enhanced Ecommerce enabled + += 0.8 = + +This version instroduces Enhanced E-commerce implementation for WooCommerce. Please note that this +feature of the plugin is still experimental and the feature of Google Analytics is still in beta. +Read the plugin FAQ for details. + += 0.7.1 = + +If you are using WooCommerce and updated to 2.1.x you SHOULD update immediatelly. +This release includes a fix so that transaction data can be passed to GTM. + += 0.7 = + +Improved code so that Webmaster Tools verification can work using your GTM container tag. +Blacklist or whitelist tags and macros to increase security of your Tag Manager setup. +Fixed: WhichBroswer library was missing from 0.6 + += 0.6 = + +Improved add-to-cart events for WooCommerce, added browser/OS/device infos and post count infos. + += 0.5.1 = + +Bug fix release for WooCommerce users. + += 0.5 = +Besides of some fixes this version includes scroll tracking events for Google Tag Manager. + += 0.4 = +Important change: Tag Manager event name of a WooCommerce successful order has been changed. +See changelog for details. + += 0.3 = +This is a minor release. If you are using WooCommerce you should update to include more accurate AdWords dynamic remarketing feature. + += 0.2 = +BACKWARD INCOMPATIBLE CHANGE: Names of Tag Manager click events has been changed to comply with naming conventions. +See changelog for details. Do not forget to update your Tag Manager container setup after upgrading this plugin! + += 0.1 = +This is the first public beta, no upgrade is needed.