fastlane-plugin-alioss 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 981fe34e7c62cfb03bd85a920e1ae094474f3f222f2d11b072574c87606fbaad
4
+ data.tar.gz: 517a60e29e26ee0a9a88d3c60f3d008fc91ab71169c1838562b0e933f0b8256d
5
+ SHA512:
6
+ metadata.gz: 55774636d73d5b0db4ae66a3c8e92edf26e6696b878c892650748d33c8aea6733c39635b3cabba496cde32c638fbd3eb45696c57ca379a2399410ba7f485e2f9
7
+ data.tar.gz: 29e9041568666684a4744ec000c178015019fb3bf2ff56adb6000baab9d0c690a715cc1946611b76632a742eac524699368ffb59c61a074c5431acaa3fcb3995
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2019 woodwu <woodwu@dotdotbuy.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,78 @@
1
+ # alioss plugin
2
+
3
+ [![fastlane Plugin Badge](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-alioss)
4
+
5
+ ## Getting Started
6
+
7
+ This project is a [_fastlane_](https://github.com/fastlane/fastlane) plugin. To get started with `fastlane-plugin-alioss`, add it to your project by running:
8
+
9
+ ```bash
10
+ fastlane add_plugin alioss
11
+ ```
12
+
13
+ ## About alioss
14
+
15
+ upload ipa/apk to aliyun oos server, and scan QRcode to install app on mobile phone.
16
+
17
+ **Note to author:** Add a more detailed description about this plugin here. If your plugin contains multiple actions, make sure to mention them here.
18
+
19
+ ## Example
20
+
21
+ Check out the [example `Fastfile`](fastlane/Fastfile) to see how to use this plugin. Try it by cloning the repo, running `fastlane install_plugins` and `bundle exec fastlane test`.
22
+
23
+ or <br>
24
+
25
+ Add <br>
26
+ `gem 'fastlane-plugin-alioss', git: 'https://github.com/woodtengfei/fastlane-plugin-alioss'` or <br>
27
+ `gem 'fastlane-plugin-alioss'` <br>
28
+ to Gemfile. running `bundle install`.
29
+
30
+
31
+ Just specify the `endpoint` , `access_key_id` , `bucket_name` associated with your pgyer account.
32
+
33
+ ```
34
+ lane :beta do
35
+ gym
36
+ alioss(endpoint: "oss-cn-shenzhen.aliyuncs.com", access_key_id: "xxx", access_key_secret: "xxx", bucket_name: "app-test")
37
+ end
38
+ ```
39
+
40
+ Set a version update description for App:
41
+
42
+ ```
43
+ lane :beta do
44
+ gym
45
+ alioss(endpoint: "oss-cn-shenzhen.aliyuncs.com", access_key_id: "xxx", access_key_secret: "xxx", bucket_name: "app-test", update_description: "update by fastlane")
46
+ end
47
+ ```
48
+
49
+ **Note to author:** Please set up a sample project to make it easy for users to explore what your plugin does. Provide everything that is necessary to try out the plugin in this project (including a sample Xcode/Android project if necessary)
50
+
51
+ ## Run tests for this plugin
52
+
53
+ To run both the tests, and code style validation, run
54
+
55
+ ```
56
+ rake
57
+ ```
58
+
59
+ To automatically fix many of the styling issues, use
60
+ ```
61
+ rubocop -a
62
+ ```
63
+
64
+ ## Issues and Feedback
65
+
66
+ For any other issues and feedback about this plugin, please submit it to this repository.
67
+
68
+ ## Troubleshooting
69
+
70
+ If you have trouble using plugins, check out the [Plugins Troubleshooting](https://docs.fastlane.tools/plugins/plugins-troubleshooting/) guide.
71
+
72
+ ## Using _fastlane_ Plugins
73
+
74
+ For more information about how the `fastlane` plugin system works, check out the [Plugins documentation](https://docs.fastlane.tools/plugins/create-plugin/).
75
+
76
+ ## About _fastlane_
77
+
78
+ _fastlane_ is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out [fastlane.tools](https://fastlane.tools).
@@ -0,0 +1 @@
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><title>Scan QRCode to download App</title><style type="text/css">body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center;background-color:#fff;min-height:100vh;display:flex;flex-direction:column;align-items:center;font-size:calc(10px + 1.5vmin);color:#000;padding:30px}.App-line{border-top:1px solid #e7ebed;width:100%;margin-top:8vmin}.App-icon{max-width:120px;max-height:120px;border-radius:20px}.App-box-0{background-color:#f2f6f8}.App-box-0,.App-box-1{cursor:pointer;width:100%;height:36px;display:flex;flex-direction:row;align-items:center;justify-content:center;font-size:calc(10px + .1vmin)}.App-box-1{background-color:#fff}.App-box-0:hover,.App-box-1:hover{background-color:#ffe4e1}.App-detail-text{font-size:calc(10px + .8vmin);color:#666}.App-install-button{cursor:pointer;background-color:#28caad;font-size:18px;font-weight:700;padding:8px 60px;margin:30px 0;border-radius:30px;color:#fff}.App-update-desc{width:80%;padding:8px;border:1px solid #e7ebed;background-color:#f7f7f7;font-size:calc(10px + .6vmin);color:#666}.App-history-version{border:1px solid #e7ebed;width:100%}.App-logo{height:40vmin}.App-link{color:#09d3ac}</style></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(a){function e(e){for(var t,r,n=e[0],o=e[1],u=e[2],l=0,i=[];l<n.length;l++)r=n[l],Object.prototype.hasOwnProperty.call(p,r)&&p[r]&&i.push(p[r][0]),p[r]=0;for(t in o)Object.prototype.hasOwnProperty.call(o,t)&&(a[t]=o[t]);for(s&&s(e);i.length;)i.shift()();return c.push.apply(c,u||[]),f()}function f(){for(var e,t=0;t<c.length;t++){for(var r=c[t],n=!0,o=1;o<r.length;o++){var u=r[o];0!==p[u]&&(n=!1)}n&&(c.splice(t--,1),e=l(l.s=r[0]))}return e}var r={},p={1:0},c=[];function l(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return a[e].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=a,l.c=r,l.d=function(e,t,r){l.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(t,e){if(1&e&&(t=l(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(l.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)l.d(r,n,function(e){return t[e]}.bind(null,n));return r},l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,"a",t),t},l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.p="/";var t=this["webpackJsonpalioss-html"]=this["webpackJsonpalioss-html"]||[],n=t.push.bind(t);t.push=e,t=t.slice();for(var o=0;o<t.length;o++)e(t[o]);var s=n;f()}([])</script><script type="text/javascript">(this["webpackJsonpalioss-html"]=this["webpackJsonpalioss-html"]||[]).push([[2],[function(e,r,o){"use strict";e.exports=o(47)},function(e,r){e.exports=function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}},function(e,r,o){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.userAgentParser=function(e,r){var o="(?:^|[^A-Z0-9-_]|[^A-Z0-9-]_|sprd-)(?:".concat(e,")");try{var t=RegExp(o,"i").exec(r);return t?t.slice(1):null}catch(n){return null}}},function(e,r,o){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.variableReplacement=function(e,r){var o=new RegExp("\\$\\d","g");return null===e?"":e.replace(o,(function(e){var o=parseInt(e.substr(1),10);return r[o-1]||""}))}},function(e,r,o){var t=o(54),n=o(55),l=o(56);e.exports=function(e,r){return t(e)||n(e,r)||l()}},function(e,r,o){"use strict";function t(e){return function(e){if(Array.isArray(e)){for(var r=0,o=new Array(e.length);r<e.length;r++)o[r]=e[r];return o}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}o.d(r,"a",(function(){return t}))},function(e,r,o){"use strict";var t=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var n=t(o(57));r.formatVersion=function(e,r){if(void 0===e)return"";var o=n.default(e,".").replace(new RegExp("_","g"),"."),t=o.split(".");return/^\d+$/.test(t.join(""))?0!==r&&Number.isInteger(parseFloat(o))?parseInt(o,10).toFixed(1):t.length>1&&null!==r?t.slice(0,r+1).join("."):o:o},r.parseBrowserEngineVersion=function(e,r){if(!r)return"";var o=new RegExp("".concat(r,"\\s*\\/?\\s*((?:(?=\\d+\\.\\d)\\d+[.\\d]*|\\d{1,7}(?=(?:\\D|$))))"),"i"),t=e.match(o);return t?t.pop():""}},function(e,r){var o,t=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];r.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return 4*e+17},r.getSymbolTotalCodewords=function(e){return t[e]},r.getBCHDigit=function(e){for(var r=0;0!==e;)r++,e>>>=1;return r},r.setToSJISFunction=function(e){if("function"!==typeof e)throw new Error('"toSJISFunc" is not a valid function.');o=e},r.isKanjiModeEnabled=function(){return"undefined"!==typeof o},r.toSJIS=function(e){return o(e)}},function(e,r,o){var t=o(33),n=o(34);r.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},r.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},r.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},r.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},r.MIXED={bit:-1},r.getCharCountIndicator=function(e,r){if(!e.ccBits)throw new Error("Invalid mode: "+e);if(!t.isValid(r))throw new Error("Invalid version: "+r);return r>=1&&r<10?e.ccBits[0]:r<27?e.ccBits[1]:e.ccBits[2]},r.getBestModeForData=function(e){return n.testNumeric(e)?r.NUMERIC:n.testAlphanumeric(e)?r.ALPHANUMERIC:n.testKanji(e)?r.KANJI:r.BYTE},r.toString=function(e){if(e&&e.id)return e.id;throw new Error("Invalid mode")},r.isValid=function(e){return e&&e.bit&&e.ccBits},r.from=function(e,o){if(r.isValid(e))return e;try{return function(e){if("string"!==typeof e)throw new Error("Param is not a string");switch(e.toLowerCase()){case"numeric":return r.NUMERIC;case"alphanumeric":return r.ALPHANUMERIC;case"kanji":return r.KANJI;case"byte":return r.BYTE;default:throw new Error("Unknown mode: "+e)}}(e)}catch(t){return o}}},function(e,r,o){"use strict";var t=o(18);l.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()}catch(r){return!1}}();var n=l.TYPED_ARRAY_SUPPORT?2147483647:1073741823;function l(e,r,o){return l.TYPED_ARRAY_SUPPORT||this instanceof l?"number"===typeof e?d(this,e):function(e,r,o,t){if("number"===typeof r)throw new TypeError('"value" argument must not be a number');if("undefined"!==typeof ArrayBuffer&&r instanceof ArrayBuffer)return function(e,r,o,t){if(o<0||r.byteLength<o)throw new RangeError("'offset' is out of bounds");if(r.byteLength<o+(t||0))throw new RangeError("'length' is out of bounds");var n;n=void 0===o&&void 0===t?new Uint8Array(r):void 0===t?new Uint8Array(r,o):new Uint8Array(r,o,t);l.TYPED_ARRAY_SUPPORT?n.__proto__=l.prototype:n=m(e,n);return n}(e,r,o,t);if("string"===typeof r)return function(e,r){var o=0|s(r),t=a(e,o),n=t.write(r);n!==o&&(t=t.slice(0,n));return t}(e,r);return function(e,r){if(l.isBuffer(r)){var o=0|i(r.length),t=a(e,o);return 0===t.length?t:(r.copy(t,0,0,o),t)}if(r){if("undefined"!==typeof ArrayBuffer&&r.buffer instanceof ArrayBuffer||"length"in r)return"number"!==typeof r.length||(n=r.length)!==n?a(e,0):m(e,r);if("Buffer"===r.type&&Array.isArray(r.data))return m(e,r.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,r)}(this,e,r,o):new l(e,r,o)}function i(e){if(e>=n)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n.toString(16)+" bytes");return 0|e}function a(e,r){var o;return l.TYPED_ARRAY_SUPPORT?(o=new Uint8Array(r)).__proto__=l.prototype:(null===(o=e)&&(o=new l(r)),o.length=r),o}function d(e,r){var o=a(e,r<0?0:0|i(r));if(!l.TYPED_ARRAY_SUPPORT)for(var t=0;t<r;++t)o[t]=0;return o}function m(e,r){for(var o=r.length<0?0:0|i(r.length),t=a(e,o),n=0;n<o;n+=1)t[n]=255&r[n];return t}function u(e,r){var o;r=r||1/0;for(var t=e.length,n=null,l=[],i=0;i<t;++i){if((o=e.charCodeAt(i))>55295&&o<57344){if(!n){if(o>56319){(r-=3)>-1&&l.push(239,191,189);continue}if(i+1===t){(r-=3)>-1&&l.push(239,191,189);continue}n=o;continue}if(o<56320){(r-=3)>-1&&l.push(239,191,189),n=o;continue}o=65536+(n-55296<<10|o-56320)}else n&&(r-=3)>-1&&l.push(239,191,189);if(n=null,o<128){if((r-=1)<0)break;l.push(o)}else if(o<2048){if((r-=2)<0)break;l.push(o>>6|192,63&o|128)}else if(o<65536){if((r-=3)<0)break;l.push(o>>12|224,o>>6&63|128,63&o|128)}else{if(!(o<1114112))throw new Error("Invalid code point");if((r-=4)<0)break;l.push(o>>18|240,o>>12&63|128,o>>6&63|128,63&o|128)}}return l}function s(e){return l.isBuffer(e)?e.length:"undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer)?e.byteLength:("string"!==typeof e&&(e=""+e),0===e.length?0:u(e).length)}l.TYPED_ARRAY_SUPPORT&&(l.prototype.__proto__=Uint8Array.prototype,l.__proto__=Uint8Array,"undefined"!==typeof Symbol&&Symbol.species&&l[Symbol.species]===l&&Object.defineProperty(l,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1})),l.prototype.write=function(e,r,o){void 0===r?(o=this.length,r=0):void 0===o&&"string"===typeof r?(o=this.length,r=0):isFinite(r)&&(r|=0,isFinite(o)?o|=0:o=void 0);var t=this.length-r;if((void 0===o||o>t)&&(o=t),e.length>0&&(o<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");return function(e,r,o,t){return function(e,r,o,t){for(var n=0;n<t&&!(n+o>=r.length||n>=e.length);++n)r[n+o]=e[n];return n}(u(r,e.length-o),e,o,t)}(this,e,r,o)},l.prototype.slice=function(e,r){var o,t=this.length;if((e=~~e)<0?(e+=t)<0&&(e=0):e>t&&(e=t),(r=void 0===r?t:~~r)<0?(r+=t)<0&&(r=0):r>t&&(r=t),r<e&&(r=e),l.TYPED_ARRAY_SUPPORT)(o=this.subarray(e,r)).__proto__=l.prototype;else{var n=r-e;o=new l(n,void 0);for(var i=0;i<n;++i)o[i]=this[i+e]}return o},l.prototype.copy=function(e,r,o,t){if(o||(o=0),t||0===t||(t=this.length),r>=e.length&&(r=e.length),r||(r=0),t>0&&t<o&&(t=o),t===o)return 0;if(0===e.length||0===this.length)return 0;if(r<0)throw new RangeError("targetStart out of bounds");if(o<0||o>=this.length)throw new RangeError("sourceStart out of bounds");if(t<0)throw new RangeError("sourceEnd out of bounds");t>this.length&&(t=this.length),e.length-r<t-o&&(t=e.length-r+o);var n,i=t-o;if(this===e&&o<r&&r<t)for(n=i-1;n>=0;--n)e[n+r]=this[n+o];else if(i<1e3||!l.TYPED_ARRAY_SUPPORT)for(n=0;n<i;++n)e[n+r]=this[n+o];else Uint8Array.prototype.set.call(e,this.subarray(o,o+i),r);return i},l.prototype.fill=function(e,r,o){if("string"===typeof e){if("string"===typeof r?(r=0,o=this.length):"string"===typeof o&&(o=this.length),1===e.length){var t=e.charCodeAt(0);t<256&&(e=t)}}else"number"===typeof e&&(e&=255);if(r<0||this.length<r||this.length<o)throw new RangeError("Out of range index");if(o<=r)return this;var n;if(r>>>=0,o=void 0===o?this.length:o>>>0,e||(e=0),"number"===typeof e)for(n=r;n<o;++n)this[n]=e;else{var i=l.isBuffer(e)?e:new l(e),a=i.length;for(n=0;n<o-r;++n)this[n+r]=i[n%a]}return this},l.concat=function(e,r){if(!t(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return a(null,0);var o;if(void 0===r)for(r=0,o=0;o<e.length;++o)r+=e[o].length;var n=d(null,r),i=0;for(o=0;o<e.length;++o){var m=e[o];if(!l.isBuffer(m))throw new TypeError('"list" argument must be an Array of Buffers');m.copy(n,i),i+=m.length}return n},l.byteLength=s,l.prototype._isBuffer=!0,l.isBuffer=function(e){return!(null==e||!e._isBuffer)},e.exports.alloc=function(e){var r=new l(e);return r.fill(0),r},e.exports.from=function(e){return new l(e)}},function(e,r,o){"use strict";function t(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}o.d(r,"a",(function(){return t}))},function(e,r,o){var t=o(30)(Object,"create");e.exports=t},function(e,r,o){var t=o(127);e.exports=function(e,r){for(var o=e.length;o--;)if(t(e[o][0],r))return o;return-1}},function(e,r,o){var t=o(133);e.exports=function(e,r){var o=e.__data__;return t(r)?o["string"==typeof r?"string":"hash"]:o.map}},function(e,r,o){var t=o(15).Symbol;e.exports=t},function(e,r,o){var t=o(58),n="object"==typeof self&&self&&self.Object===Object&&self,l=t||n||Function("return this")();e.exports=l},function(e,r){var o=Array.isArray;e.exports=o},function(e,r,o){var t=o(25),n=o(62),l="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||n(e)&&t(e)==l}},function(e,r){var o={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==o.call(e)}},function(e,r){r.L={bit:1},r.M={bit:0},r.Q={bit:3},r.H={bit:2},r.isValid=function(e){return e&&"undefined"!==typeof e.bit&&e.bit>=0&&e.bit<4},r.from=function(e,o){if(r.isValid(e))return e;try{return function(e){if("string"!==typeof e)throw new Error("Param is not a string");switch(e.toLowerCase()){case"l":case"low":return r.L;case"m":case"medium":return r.M;case"q":case"quartile":return r.Q;case"h":case"high":return r.H;default:throw new Error("Unknown EC Level: "+e)}}(e)}catch(t){return o}}},function(e,r,o){"use strict";function t(e,r){for(var o=e.toString();o.length<r;)o="0"+o;return o}function n(e){return t(e,2)}function l(r,o){"string"!==typeof r&&(o=r,r=e.exports.ISO8601_FORMAT),o||(o=e.exports.now());var l=n(o.getDate()),i=n(o.getMonth()+1),a=n(o.getFullYear()),d=n(a.substring(2,4)),m=r.indexOf("yyyy")>-1?a:d,u=n(o.getHours()),s=n(o.getMinutes()),g=n(o.getSeconds()),c=t(o.getMilliseconds(),3),x=function(e){var r=Math.abs(e),o=String(Math.floor(r/60)),t=String(r%60);return 1===o.length&&(o="0"+o),1===t.length&&(t="0"+t),e<0?"+"+o+t:"-"+o+t}(o.getTimezoneOffset());return r.replace(/dd/g,l).replace(/MM/g,i).replace(/y{1,4}/g,m).replace(/hh/g,u).replace(/mm/g,s).replace(/ss/g,g).replace(/SSS/g,c).replace(/O/g,x)}function i(e,r,o,t){e["set"+(t?"":"UTC")+r](o)}e.exports=l,e.exports.asString=l,e.exports.parse=function(r,o,t){if(!r)throw new Error("pattern must be supplied");return function(r,o,t){var n=r.indexOf("O")<0,l=[{pattern:/y{1,4}/,regexp:"\\d{1,4}",fn:function(e,r){i(e,"FullYear",r,n)}},{pattern:/MM/,regexp:"\\d{1,2}",fn:function(e,r){i(e,"Month",r-1,n)}},{pattern:/dd/,regexp:"\\d{1,2}",fn:function(e,r){i(e,"Date",r,n)}},{pattern:/hh/,regexp:"\\d{1,2}",fn:function(e,r){i(e,"Hours",r,n)}},{pattern:/mm/,regexp:"\\d\\d",fn:function(e,r){i(e,"Minutes",r,n)}},{pattern:/ss/,regexp:"\\d\\d",fn:function(e,r){i(e,"Seconds",r,n)}},{pattern:/SSS/,regexp:"\\d\\d\\d",fn:function(e,r){i(e,"Milliseconds",r,n)}},{pattern:/O/,regexp:"[+-]\\d{3,4}|Z",fn:function(e,r){"Z"===r&&(r=0);var o=Math.abs(r),t=(r>0?-1:1)*(o%100+60*Math.floor(o/100));e.setUTCMinutes(e.getUTCMinutes()+t)}}],a=l.reduce((function(e,r){return r.pattern.test(e.regexp)?(r.index=e.regexp.match(r.pattern).index,e.regexp=e.regexp.replace(r.pattern,"("+r.regexp+")")):r.index=-1,e}),{regexp:r,index:[]}),d=l.filter((function(e){return e.index>-1}));d.sort((function(e,r){return e.index-r.index}));var m=new RegExp(a.regexp).exec(o);if(m){var u=t||e.exports.now();return d.forEach((function(e,r){e.fn(u,m[r+1])})),u}throw new Error("String '"+o+"' could not be parsed as '"+r+"'")}(r,o,t)},e.exports.now=function(){return new Date},e.exports.ISO8601_FORMAT="yyyy-MM-ddThh:mm:ss.SSS",e.exports.ISO8601_WITH_TZ_OFFSET_FORMAT="yyyy-MM-ddThh:mm:ss.SSSO",e.exports.DATETIME_FORMAT="dd MM yyyy hh:mm:ss.SSS",e.exports.ABSOLUTETIME_FORMAT="hh:mm:ss.SSS"},function(e,r,o){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;function i(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var r={},o=0;o<10;o++)r["_"+String.fromCharCode(o)]=o;if("0123456789"!==Object.getOwnPropertyNames(r).map((function(e){return r[e]})).join(""))return!1;var t={};return"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},t)).join("")}catch(n){return!1}}()?Object.assign:function(e,r){for(var o,a,d=i(e),m=1;m<arguments.length;m++){for(var u in o=Object(arguments[m]))n.call(o,u)&&(d[u]=o[u]);if(t){a=t(o);for(var s=0;s<a.length;s++)l.call(o,a[s])&&(d[a[s]]=o[a[s]])}}return d}},function(e,r,o){"use strict";var t=o(4),n=o(1);Object.defineProperty(r,"__esModule",{value:!0});var l=o(6),i=o(3),a=o(2),d=o(74),m=o(75),u={36:"360 Phone Browser","3B":"360 Browser",AA:"Avant Browser",AB:"ABrowse",AF:"ANT Fresco",AG:"ANTGalio",AL:"Aloha Browser",AM:"Amaya",AO:"Amigo",AN:"Android Browser",AR:"Arora",AV:"Amiga Voyager",AW:"Amiga Aweb",AT:"Atomic Web Browser",AS:"Avast Secure Browser",BB:"BlackBerry Browser",BD:"Baidu Browser",BS:"Baidu Spark",BE:"Beonex",BJ:"Bunjalloo",BL:"B-Line",BR:"Brave",BK:"BriskBard",BX:"BrowseX",CA:"Camino",CC:"Coc Coc",CD:"Comodo Dragon",C1:"Coast",CX:"Charon",CF:"Chrome Frame",HC:"Headless Chrome",CH:"Chrome",CI:"Chrome Mobile iOS",CK:"Conkeror",CM:"Chrome Mobile",CN:"CoolNovo",CO:"CometBird",CP:"ChromePlus",CR:"Chromium",CY:"Cyberfox",CS:"Cheshire",CU:"Cunaguaro",DB:"dbrowser",DE:"Deepnet Explorer",DF:"Dolphin",DO:"Dorado",DL:"Dooble",DI:"Dillo",EI:"Epic",EL:"Elinks",EB:"Element Browser",EP:"GNOME Web",ES:"Espial TV Browser",FB:"Firebird",FD:"Fluid",FE:"Fennec",FF:"Firefox",FK:"Firefox Focus",FL:"Flock",FM:"Firefox Mobile",FW:"Fireweb",FN:"Fireweb Navigator",GA:"Galeon",GE:"Google Earth",HJ:"HotJava",IA:"Iceape",IB:"IBrowse",IC:"iCab",I2:"iCab Mobile",I1:"Iridium",ID:"IceDragon",IV:"Isivioo",IW:"Iceweasel",IE:"Internet Explorer",IM:"IE Mobile",IR:"Iron",JS:"Jasmine",JI:"Jig Browser",KI:"Kindle Browser",KM:"K-meleon",KO:"Konqueror",KP:"Kapiko",KY:"Kylo",KZ:"Kazehakase",LB:"Liebao",LG:"LG Browser",LI:"Links",LU:"LuaKit",LS:"Lunascape",LX:"Lynx",MB:"MicroB",MC:"NCSA Mosaic",ME:"Mercury",MF:"Mobile Safari",MI:"Midori",MU:"MIUI Browser",MS:"Mobile Silk",MX:"Maxthon",NB:"Nokia Browser",NO:"Nokia OSS Browser",NV:"Nokia Ovi Browser",NE:"NetSurf",NF:"NetFront",NL:"NetFront Life",NP:"NetPositive",NS:"Netscape",NT:"NTENT Browser",OB:"Obigo",OD:"Odyssey Web Browser",OF:"Off By One",OE:"ONE Browser",OI:"Opera Mini",OM:"Opera Mobile",OP:"Opera",ON:"Opera Next",OO:"Opera Touch",OR:"Oregano",OV:"Openwave Mobile Browser",OW:"OmniWeb",OT:"Otter Browser",PL:"Palm Blazer",PM:"Pale Moon",PP:"Oppo Browser",PR:"Palm Pre",PU:"Puffin",PW:"Palm WebPro",PA:"Palmscape",PX:"Phoenix",PO:"Polaris",PT:"Polarity",PS:"Microsoft Edge",QQ:"QQ Browser",QT:"Qutebrowser",QZ:"QupZilla",RK:"Rekonq",RM:"RockMelt",SB:"Samsung Browser",SA:"Sailfish Browser",SC:"SEMC-Browser",SE:"Sogou Explorer",SF:"Safari",SH:"Shiira",SK:"Skyfire",SS:"Seraphic Sraf",SL:"Sleipnir",SM:"SeaMonkey",SN:"Snowshoe",SR:"Sunrise",SP:"SuperBird",ST:"Streamy",SX:"Swiftfox",TZ:"Tizen Browser",TS:"TweakStyle",UC:"UC Browser",VI:"Vivaldi",VB:"Vision Mobile Browser",WE:"WebPositive",WF:"Waterfox",WO:"wOSBrowser",WT:"WeTab Browser",YA:"Yandex Browser",XI:"Xiino"},s=["36","PU","SK","MF","OI","OM","DB","ST","BL","IV","FM","C1","AL","SA"],g=function e(r){var o=this;n(this,e),this.options={versionTruncation:1},this.parse=function(e){var r={type:"",name:"",version:"",engine:"",engineVersion:""},n=!0,u=!1,s=void 0;try{for(var g,c=d[Symbol.iterator]();!(n=(g=c.next()).done);n=!0){var x=g.value,p=a.userAgentParser(x.regex,e);if(p){var f=i.variableReplacement(x.version,p),S=l.formatVersion(f,o.options.versionTruncation),h=S&&parseFloat(l.formatVersion(f,1))||"";if(x.engine&&(r.engine=x.engine.default,x.engine&&x.engine.versions&&h)){var v=Object.entries(x.engine.versions).sort((function(e,r){return parseFloat(e[0])>parseFloat(r[0])?1:-1})),A=!0,b=!1,T=void 0;try{for(var M,P=v[Symbol.iterator]();!(A=(M=P.next()).done);A=!0){var y=M.value,L=t(y,2),E=L[0],_=L[1];parseFloat(E)<=h&&(r.engine=_)}}catch(I){b=!0,T=I}finally{try{A||null==P.return||P.return()}finally{if(b)throw T}}}r.type="browser",r.name=i.variableReplacement(x.name,p),r.version=S;break}}}catch(I){u=!0,s=I}finally{try{n||null==c.return||c.return()}finally{if(u)throw s}}if(!r.engine){var w=!0,B=!1,C=void 0;try{for(var G,N=m[Symbol.iterator]();!(w=(G=N.next()).done);w=!0){var O=G.value;if(RegExp(O.regex,"i").exec(e)){r.engine=O.name;break}}}catch(I){B=!0,C=I}finally{try{w||null==N.return||N.return()}finally{if(B)throw C}}}return r.engineVersion=l.formatVersion(l.parseBrowserEngineVersion(e,r.engine),o.options.versionTruncation),r},this.options=Object.assign({},this.options,r)};g.getBrowserShortName=function(e){for(var r=0,o=Object.entries(u);r<o.length;r++){var n=o[r],l=t(n,2),i=l[0];if(l[1]===e)return i}return""},g.isMobileOnlyBrowser=function(e){return s.includes(g.getBrowserShortName(e))},r.default=g},function(e,r,o){var t=o(14),n=o(59),l=o(16),i=o(17),a=1/0,d=t?t.prototype:void 0,m=d?d.toString:void 0;e.exports=function e(r){if("string"==typeof r)return r;if(l(r))return n(r,e)+"";if(i(r))return m?m.call(r):"";var o=r+"";return"0"==o&&1/r==-a?"-0":o}},function(e,r){var o;o=function(){return this}();try{o=o||new Function("return this")()}catch(t){"object"===typeof window&&(o=window)}e.exports=o},function(e,r,o){var t=o(14),n=o(60),l=o(61),i="[object Null]",a="[object Undefined]",d=t?t.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?a:i:d&&d in Object(e)?n(e):l(e)}},function(e,r,o){var t=o(66),n=o(67),l=o(68);e.exports=function(e,r,o){return r===r?l(e,r,o):t(e,n,o)}},function(e,r,o){var t=o(23);e.exports=function(e){return null==e?"":t(e)}},function(e,r,o){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.buildModel=function(e){return"Build"===(e=(e=e.replace(/_/g," ")).replace(RegExp(" TD$","i"),""))?"":e}},function(e,r,o){var t=o(104);e.exports=function(e,r,o){var n=null==e?void 0:t(e,r);return void 0===n?o:n}},function(e,r,o){var t=o(114),n=o(119);e.exports=function(e,r){var o=n(e,r);return t(o)?o:void 0}},function(e,r){e.exports=function(e){var r=typeof e;return null!=e&&("object"==r||"function"==r)}},function(e,r,o){var t=o(19),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],l=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];r.getBlocksCount=function(e,r){switch(r){case t.L:return n[4*(e-1)+0];case t.M:return n[4*(e-1)+1];case t.Q:return n[4*(e-1)+2];case t.H:return n[4*(e-1)+3];default:return}},r.getTotalCodewordsCount=function(e,r){switch(r){case t.L:return l[4*(e-1)+0];case t.M:return l[4*(e-1)+1];case t.Q:return l[4*(e-1)+2];case t.H:return l[4*(e-1)+3];default:return}}},function(e,r){r.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}},function(e,r){var o="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+",t="(?:(?![A-Z0-9 $%*+\\-./:]|"+(o=o.replace(/u/g,"\\u"))+")(?:.|[\r\n]))+";r.KANJI=new RegExp(o,"g"),r.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),r.BYTE=new RegExp(t,"g"),r.NUMERIC=new RegExp("[0-9]+","g"),r.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");var n=new RegExp("^"+o+"$"),l=new RegExp("^[0-9]+$"),i=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");r.testKanji=function(e){return n.test(e)},r.testNumeric=function(e){return l.test(e)},r.testAlphanumeric=function(e){return i.test(e)}},function(e,r){function o(e){if("number"===typeof e&&(e=e.toString()),"string"!==typeof e)throw new Error("Color should be defined as hex string");var r=e.slice().replace("#","").split("");if(r.length<3||5===r.length||r.length>8)throw new Error("Invalid hex color: "+e);3!==r.length&&4!==r.length||(r=Array.prototype.concat.apply([],r.map((function(e){return[e,e]})))),6===r.length&&r.push("F","F");var o=parseInt(r.join(""),16);return{r:o>>24&255,g:o>>16&255,b:o>>8&255,a:255&o,hex:"#"+r.slice(0,6).join("")}}r.getOptions=function(e){e||(e={}),e.color||(e.color={});var r="undefined"===typeof e.margin||null===e.margin||e.margin<0?4:e.margin,t=e.width&&e.width>=21?e.width:void 0,n=e.scale||4;return{width:t,scale:t?4:n,margin:r,color:{dark:o(e.color.dark||"#000000ff"),light:o(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}},r.getScale=function(e,r){return r.width&&r.width>=e+2*r.margin?r.width/(e+2*r.margin):r.scale},r.getImageWidth=function(e,o){var t=r.getScale(e,o);return Math.floor((e+2*o.margin)*t)},r.qrToImageData=function(e,o,t){for(var n=o.modules.size,l=o.modules.data,i=r.getScale(n,t),a=Math.floor((n+2*t.margin)*i),d=t.margin*i,m=[t.color.light,t.color.dark],u=0;u<a;u++)for(var s=0;s<a;s++){var g=4*(u*a+s),c=t.color.light;if(u>=d&&s>=d&&u<a-d&&s<a-d)c=m[l[Math.floor((u-d)/i)*n+Math.floor((s-d)/i)]?1:0];e[g++]=c.r,e[g++]=c.g,e[g++]=c.b,e[g]=c.a}}},function(e,r,o){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(r){console.error(r)}}}(),e.exports=o(48)},function(e,r,o){"use strict";function t(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}o.d(r,"a",(function(){return t}))},function(e,r,o){"use strict";function t(e,r){for(var o=0;o<r.length;o++){var t=r[o];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}function n(e,r,o){return r&&t(e.prototype,r),o&&t(e,o),e}o.d(r,"a",(function(){return n}))},function(e,r,o){"use strict";function t(e){return(t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}o.d(r,"a",(function(){return t}))},function(e,r,o){"use strict";var t=function(){if("undefined"!==typeof self)return self;if("undefined"!==typeof window)return window;if("undefined"!==typeof t)return t;throw new Error("unable to locate global object")}();e.exports=r=t.fetch,r.default=t.fetch.bind(t),r.Headers=t.Headers,r.Request=t.Request,r.Response=t.Response},function(e,r,o){"use strict";var t=o(1),n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},l=n(o(53)),i=n(o(86)),a=n(o(99)),d=n(o(101)),m=n(o(22)),u=o(103),s=n(o(29)),g=o(2),c=o(139);e.exports=function e(r){var o=this;t(this,e),this.options={skipBotDetection:!1,versionTruncation:1},this.parse=function(e){var r={client:o.clientParser.parse(e),os:o.operatingSystemParser.parse(e),device:o.deviceParser.parse(e),bot:o.options.skipBotDetection?null:o.botParser.parse(e)};if(!s.default(r,"device.brand")){var t=o.vendorFragmentParser.parse(e);t&&(r.device||(r.device=o.createDeviceObject()),r.device.brand=t)}var n=s.default(r,"os.name"),l=s.default(r,"os.version"),i=a.default.getOsFamily(s.default(r,"os.name"));return!s.default(r,"device.brand")&&["Apple TV","iOS","Mac"].includes(n)&&(r.device||(r.device=o.createDeviceObject()),r.device.brand="Apple"),!s.default(r,"device.type")&&"Android"===i&&["Chrome","Chrome Mobile"].includes(s.default(r,"client.name"))&&(g.userAgentParser("Chrome/[.0-9]* Mobile",e)?(r.device||(r.device=o.createDeviceObject()),r.device.type="smartphone"):g.userAgentParser("Chrome/[.0-9]* (?!Mobile)",e)&&(r.device||(r.device=o.createDeviceObject()),r.device.type="tablet")),(!s.default(r,"device.type")&&o.hasAndroidTabletFragment(e)||g.userAgentParser("Opera Tablet",e))&&(r.device||(r.device=o.createDeviceObject()),r.device.type="tablet"),!s.default(r,"device.type")&&o.hasAndroidMobileFragment(e)&&(r.device||(r.device=o.createDeviceObject()),r.device.type="smartphone"),s.default(r,"device.type")||"Android"!==n||""===l||(-1===c.versionCompare(l,"2.0")?(r.device||(r.device=o.createDeviceObject()),r.device.type="smartphone"):c.versionCompare(l,"3.0")>=0&&-1===c.versionCompare(l,"4.0")&&(r.device||(r.device=o.createDeviceObject()),r.device.type="tablet")),r.device&&"feature phone"===s.default(r,"device.type")&&"Android"===i&&(r.device.type="smartphone"),!s.default(r,"device.type")&&o.isToucheEnabled(e)&&("Windows RT"===n||"Windows"===n&&c.versionCompare(l,"8.0")>=0)&&(r.device||(r.device=o.createDeviceObject()),r.device.type="tablet"),g.userAgentParser("Opera TV Store",e)&&(r.device||(r.device=o.createDeviceObject()),r.device.type="television"),!s.default(r,"device.type")&&["Kylo","Espial TV Browser"].includes(s.default(r,"client.name"))&&(r.device||(r.device=o.createDeviceObject()),r.device.type="television"),!s.default(r,"device.type")&&o.isDesktop(r,i)&&(r.device||(r.device=o.createDeviceObject()),r.device.type="desktop"),r},this.hasAndroidMobileFragment=function(e){return g.userAgentParser("Android( [.0-9]+)?; Mobile;",e)},this.hasAndroidTabletFragment=function(e){return g.userAgentParser("Android( [.0-9]+)?; Tablet;",e)},this.isDesktop=function(e,r){return!!e.os&&(!o.usesMobileBrowser(e.client)&&a.default.getDesktopOsArray().includes(r))},this.usesMobileBrowser=function(e){return!!e&&("browser"===s.default(e,"type")&&m.default.isMobileOnlyBrowser(s.default(e,"name")))},this.isToucheEnabled=function(e){return g.userAgentParser("Touch",e)},this.createDeviceObject=function(){return{type:"",brand:"",model:""}},this.options=Object.assign({},this.options,r),this.clientParser=new l.default(this.options),this.deviceParser=new i.default,this.operatingSystemParser=new a.default(this.options),this.vendorFragmentParser=new d.default,this.botParser=new u}},function(e,r,o){"use strict";var t=o(43);var n,l=(n=o.n(t).a.toCanvas,function(){var e=Array.prototype.slice.call(arguments);return new Promise((function(r,o){e.push((function(e,t){e?o(e):r(t)})),n.apply(null,e)}))}),i=function(e){var r=e.canvas,o=e.content,t=e.width,n=void 0===t?0:t,i=e.nodeQrCodeOptions,m=void 0===i?{}:i;return m.errorCorrectionLevel=m.errorCorrectionLevel||d(o),a(o,m).then((function(e){return m.scale=0===n?void 0:n/e*4,l(r,o,m)}))},a=function(e,r){var o=document.createElement("canvas");return l(o,e,r).then((function(){return o.width}))},d=function(e){return e.length>36?"M":e.length>16?"Q":"H"},m=function(e){var r=e.canvas,o=(e.content,e.logo);if(o){var t=r.width,n=o.logoSize,l=void 0===n?.15:n,i=o.borderColor,a=o.bgColor,d=void 0===a?i||"#ffffff":a,m=o.borderSize,s=void 0===m?.05:m,g=o.crossOrigin,c=o.borderRadius,x=void 0===c?8:c,p=o.logoRadius,f=void 0===p?0:p,S="string"===typeof o?o:o.src,h=t*l,v=t*(1-l)/2,A=t*(l+s),b=t*(1-l-s)/2,T=r.getContext("2d");u(T)(b,b,A,A,x),T.fillStyle=d,T.fill();var M=new Image;(g||f)&&M.setAttribute("crossOrigin",g||"anonymous"),M.src=S;return new Promise((function(e,r){M.onload=function(){f?function(e){var r=document.createElement("canvas");r.width=v+h,r.height=v+h,r.getContext("2d").drawImage(e,v,v,h,h),u(T)(v,v,h,h,f),T.fillStyle=T.createPattern(r,"no-repeat"),T.fill()}(M):function(e){T.drawImage(e,v,v,h,h)}(M),e()}}))}},u=function(e){return function(r,o,t,n,l){var i=Math.min(t,n);return l>i/2&&(l=i/2),e.beginPath(),e.moveTo(r+l,o),e.arcTo(r+t,o,r+t,o+n,l),e.arcTo(r+t,o+n,r,o+n,l),e.arcTo(r,o+n,r,o,l),e.arcTo(r,o,r+t,o,l),e.closePath(),e}},s=function(e){return i(e).then((function(){return e})).then(m)},g=function(e,r){var o=e.src,t=document.createElement("a");t.download=r,t.href=o,document.body.appendChild(t),t.click(),document.body.removeChild(t)},c={toCanvas:s,toImage:function(e){var r=document.createElement("canvas");return e.canvas=r,e.logo&&("string"===typeof e.logo&&(e.logo={src:e.logo}),e.logo.crossOrigin="Anonymous"),s(e).then((function(){var o=e.image,t=void 0===o?new Image:o,n=e.downloadName,l=void 0===n?"qr-code":n,i=e.download;if(t.src=r.toDataURL(),!0===i||function(e){return"function"===typeof e}(i)){(i=!0===i?function(e){return e()}:i)((function(){g(t,l)}))}}))}};r.a=c},function(e,r,o){var t=o(140),n=o(141),l=o(162),i=o(163);function a(e,r,o,l,i){var a=[].slice.call(arguments,1),d=a.length,m="function"===typeof a[d-1];if(!m&&!t())throw new Error("Callback required as last argument");if(!m){if(d<1)throw new Error("Too few arguments provided");return 1===d?(o=r,r=l=void 0):2!==d||r.getContext||(l=o,o=r,r=void 0),new Promise((function(t,i){try{var a=n.create(o,l);t(e(a,r,l))}catch(d){i(d)}}))}if(d<2)throw new Error("Too few arguments provided");2===d?(i=o,o=r,r=l=void 0):3===d&&(r.getContext&&"undefined"===typeof i?(i=l,l=void 0):(i=l,l=o,o=r,r=void 0));try{var u=n.create(o,l);i(null,e(u,r,l))}catch(s){i(s)}}r.create=n.create,r.toCanvas=a.bind(null,l.render),r.toDataURL=a.bind(null,l.renderToDataURL),r.toString=a.bind(null,(function(e,r,o){return i.render(e,o)}))},function(e,r,o){"use strict";function t(e){return(t="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(e){return(n="function"===typeof Symbol&&"symbol"===t(Symbol.iterator)?function(e){return t(e)}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":t(e)})(e)}var l=o(10);function i(e,r){return!r||"object"!==n(r)&&"function"!==typeof r?Object(l.a)(e):r}o.d(r,"a",(function(){return i}))},function(e,r,o){"use strict";function t(e,r){return(t=Object.setPrototypeOf||function(e,r){return e.__proto__=r,e})(e,r)}function n(e,r){if("function"!==typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),r&&t(e,r)}o.d(r,"a",(function(){return n}))},,function(e,r,o){"use strict";var t=o(21),n="function"===typeof Symbol&&Symbol.for,l=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,d=n?Symbol.for("react.strict_mode"):60108,m=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,g=n?Symbol.for("react.forward_ref"):60112,c=n?Symbol.for("react.suspense"):60113;n&&Symbol.for("react.suspense_list");var x=n?Symbol.for("react.memo"):60115,p=n?Symbol.for("react.lazy"):60116;n&&Symbol.for("react.fundamental"),n&&Symbol.for("react.responder"),n&&Symbol.for("react.scope");var f="function"===typeof Symbol&&Symbol.iterator;function S(e){for(var r="https://reactjs.org/docs/error-decoder.html?invariant="+e,o=1;o<arguments.length;o++)r+="&args[]="+encodeURIComponent(arguments[o]);return"Minified React error #"+e+"; visit "+r+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v={};function A(e,r,o){this.props=e,this.context=r,this.refs=v,this.updater=o||h}function b(){}function T(e,r,o){this.props=e,this.context=r,this.refs=v,this.updater=o||h}A.prototype.isReactComponent={},A.prototype.setState=function(e,r){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error(S(85));this.updater.enqueueSetState(this,e,r,"setState")},A.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=A.prototype;var M=T.prototype=new b;M.constructor=T,t(M,A.prototype),M.isPureReactComponent=!0;var P={current:null},y={current:null},L=Object.prototype.hasOwnProperty,E={key:!0,ref:!0,__self:!0,__source:!0};function _(e,r,o){var t,n={},i=null,a=null;if(null!=r)for(t in void 0!==r.ref&&(a=r.ref),void 0!==r.key&&(i=""+r.key),r)L.call(r,t)&&!E.hasOwnProperty(t)&&(n[t]=r[t]);var d=arguments.length-2;if(1===d)n.children=o;else if(1<d){for(var m=Array(d),u=0;u<d;u++)m[u]=arguments[u+2];n.children=m}if(e&&e.defaultProps)for(t in d=e.defaultProps)void 0===n[t]&&(n[t]=d[t]);return{$$typeof:l,type:e,key:i,ref:a,props:n,_owner:y.current}}function w(e){return"object"===typeof e&&null!==e&&e.$$typeof===l}var B=/\/+/g,C=[];function G(e,r,o,t){if(C.length){var n=C.pop();return n.result=e,n.keyPrefix=r,n.func=o,n.context=t,n.count=0,n}return{result:e,keyPrefix:r,func:o,context:t,count:0}}function N(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>C.length&&C.push(e)}function O(e,r,o){return null==e?0:function e(r,o,t,n){var a=typeof r;"undefined"!==a&&"boolean"!==a||(r=null);var d=!1;if(null===r)d=!0;else switch(a){case"string":case"number":d=!0;break;case"object":switch(r.$$typeof){case l:case i:d=!0}}if(d)return t(n,r,""===o?"."+I(r,0):o),1;if(d=0,o=""===o?".":o+":",Array.isArray(r))for(var m=0;m<r.length;m++){var u=o+I(a=r[m],m);d+=e(a,u,t,n)}else if(null===r||"object"!==typeof r?u=null:u="function"===typeof(u=f&&r[f]||r["@@iterator"])?u:null,"function"===typeof u)for(r=u.call(r),m=0;!(a=r.next()).done;)d+=e(a=a.value,u=o+I(a,m++),t,n);else if("object"===a)throw t=""+r,Error(S(31,"[object Object]"===t?"object with keys {"+Object.keys(r).join(", ")+"}":t,""));return d}(e,"",r,o)}function I(e,r){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var r={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return r[e]}))}(e.key):r.toString(36)}function X(e,r){e.func.call(e.context,r,e.count++)}function D(e,r,o){var t=e.result,n=e.keyPrefix;e=e.func.call(e.context,r,e.count++),Array.isArray(e)?F(e,t,o,(function(e){return e})):null!=e&&(w(e)&&(e=function(e,r){return{$$typeof:l,type:e.type,key:r,ref:e.ref,props:e.props,_owner:e._owner}}(e,n+(!e.key||r&&r.key===e.key?"":(""+e.key).replace(B,"$&/")+"/")+o)),t.push(e))}function F(e,r,o,t,n){var l="";null!=o&&(l=(""+o).replace(B,"$&/")+"/"),O(e,D,r=G(r,l,t,n)),N(r)}function $(){var e=P.current;if(null===e)throw Error(S(321));return e}var R={Children:{map:function(e,r,o){if(null==e)return e;var t=[];return F(e,t,null,r,o),t},forEach:function(e,r,o){if(null==e)return e;O(e,X,r=G(null,null,r,o)),N(r)},count:function(e){return O(e,(function(){return null}),null)},toArray:function(e){var r=[];return F(e,r,null,(function(e){return e})),r},only:function(e){if(!w(e))throw Error(S(143));return e}},createRef:function(){return{current:null}},Component:A,PureComponent:T,createContext:function(e,r){return void 0===r&&(r=null),(e={$$typeof:s,_calculateChangedBits:r,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:u,_context:e},e.Consumer=e},forwardRef:function(e){return{$$typeof:g,render:e}},lazy:function(e){return{$$typeof:p,_ctor:e,_status:-1,_result:null}},memo:function(e,r){return{$$typeof:x,type:e,compare:void 0===r?null:r}},useCallback:function(e,r){return $().useCallback(e,r)},useContext:function(e,r){return $().useContext(e,r)},useEffect:function(e,r){return $().useEffect(e,r)},useImperativeHandle:function(e,r,o){return $().useImperativeHandle(e,r,o)},useDebugValue:function(){},useLayoutEffect:function(e,r){return $().useLayoutEffect(e,r)},useMemo:function(e,r){return $().useMemo(e,r)},useReducer:function(e,r,o){return $().useReducer(e,r,o)},useRef:function(e){return $().useRef(e)},useState:function(e){return $().useState(e)},Fragment:a,Profiler:m,StrictMode:d,Suspense:c,createElement:_,cloneElement:function(e,r,o){if(null===e||void 0===e)throw Error(S(267,e));var n=t({},e.props),i=e.key,a=e.ref,d=e._owner;if(null!=r){if(void 0!==r.ref&&(a=r.ref,d=y.current),void 0!==r.key&&(i=""+r.key),e.type&&e.type.defaultProps)var m=e.type.defaultProps;for(u in r)L.call(r,u)&&!E.hasOwnProperty(u)&&(n[u]=void 0===r[u]&&void 0!==m?m[u]:r[u])}var u=arguments.length-2;if(1===u)n.children=o;else if(1<u){m=Array(u);for(var s=0;s<u;s++)m[s]=arguments[s+2];n.children=m}return{$$typeof:l,type:e.type,key:i,ref:a,props:n,_owner:d}},createFactory:function(e){var r=_.bind(null,e);return r.type=e,r},isValidElement:w,version:"16.12.0",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentDispatcher:P,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:y,IsSomeRendererActing:{current:!1},assign:t}},k={default:R},U=k&&R||k;e.exports=U.default||U},function(e,r,o){"use strict";var t=o(0),n=o(21),l=o(49);function i(e){for(var r="https://reactjs.org/docs/error-decoder.html?invariant="+e,o=1;o<arguments.length;o++)r+="&args[]="+encodeURIComponent(arguments[o]);return"Minified React error #"+e+"; visit "+r+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!t)throw Error(i(227));var a=null,d={};function m(){if(a)for(var e in d){var r=d[e],o=a.indexOf(e);if(!(-1<o))throw Error(i(96,e));if(!s[o]){if(!r.extractEvents)throw Error(i(97,e));for(var t in s[o]=r,o=r.eventTypes){var n=void 0,l=o[t],m=r,c=t;if(g.hasOwnProperty(c))throw Error(i(99,c));g[c]=l;var x=l.phasedRegistrationNames;if(x){for(n in x)x.hasOwnProperty(n)&&u(x[n],m,c);n=!0}else l.registrationName?(u(l.registrationName,m,c),n=!0):n=!1;if(!n)throw Error(i(98,t,e))}}}}function u(e,r,o){if(c[e])throw Error(i(100,e));c[e]=r,x[e]=r.eventTypes[o].dependencies}var s=[],g={},c={},x={};function p(e,r,o,t,n,l,i,a,d){var m=Array.prototype.slice.call(arguments,3);try{r.apply(o,m)}catch(u){this.onError(u)}}var f=!1,S=null,h=!1,v=null,A={onError:function(e){f=!0,S=e}};function b(e,r,o,t,n,l,i,a,d){f=!1,S=null,p.apply(A,arguments)}var T=null,M=null,P=null;function y(e,r,o){var t=e.type||"unknown-event";e.currentTarget=P(o),function(e,r,o,t,n,l,a,d,m){if(b.apply(this,arguments),f){if(!f)throw Error(i(198));var u=S;f=!1,S=null,h||(h=!0,v=u)}}(t,r,void 0,e),e.currentTarget=null}function L(e,r){if(null==r)throw Error(i(30));return null==e?r:Array.isArray(e)?Array.isArray(r)?(e.push.apply(e,r),e):(e.push(r),e):Array.isArray(r)?[e].concat(r):[e,r]}function E(e,r,o){Array.isArray(e)?e.forEach(r,o):e&&r.call(o,e)}var _=null;function w(e){if(e){var r=e._dispatchListeners,o=e._dispatchInstances;if(Array.isArray(r))for(var t=0;t<r.length&&!e.isPropagationStopped();t++)y(e,r[t],o[t]);else r&&y(e,r,o);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}function B(e){if(null!==e&&(_=L(_,e)),e=_,_=null,e){if(E(e,w),_)throw Error(i(95));if(h)throw e=v,h=!1,v=null,e}}var C={injectEventPluginOrder:function(e){if(a)throw Error(i(101));a=Array.prototype.slice.call(e),m()},injectEventPluginsByName:function(e){var r,o=!1;for(r in e)if(e.hasOwnProperty(r)){var t=e[r];if(!d.hasOwnProperty(r)||d[r]!==t){if(d[r])throw Error(i(102,r));d[r]=t,o=!0}}o&&m()}};function G(e,r){var o=e.stateNode;if(!o)return null;var t=T(o);if(!t)return null;o=t[r];e:switch(r){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":(t=!t.disabled)||(t=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!t;break e;default:e=!1}if(e)return null;if(o&&"function"!==typeof o)throw Error(i(231,r,typeof o));return o}var N=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;N.hasOwnProperty("ReactCurrentDispatcher")||(N.ReactCurrentDispatcher={current:null}),N.hasOwnProperty("ReactCurrentBatchConfig")||(N.ReactCurrentBatchConfig={suspense:null});var O=/^(.*)[\\\/]/,I="function"===typeof Symbol&&Symbol.for,X=I?Symbol.for("react.element"):60103,D=I?Symbol.for("react.portal"):60106,F=I?Symbol.for("react.fragment"):60107,$=I?Symbol.for("react.strict_mode"):60108,R=I?Symbol.for("react.profiler"):60114,k=I?Symbol.for("react.provider"):60109,U=I?Symbol.for("react.context"):60110,V=I?Symbol.for("react.concurrent_mode"):60111,H=I?Symbol.for("react.forward_ref"):60112,Y=I?Symbol.for("react.suspense"):60113,W=I?Symbol.for("react.suspense_list"):60120,K=I?Symbol.for("react.memo"):60115,z=I?Symbol.for("react.lazy"):60116;I&&Symbol.for("react.fundamental"),I&&Symbol.for("react.responder"),I&&Symbol.for("react.scope");var Q="function"===typeof Symbol&&Symbol.iterator;function Z(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=Q&&e[Q]||e["@@iterator"])?e:null}function J(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case F:return"Fragment";case D:return"Portal";case R:return"Profiler";case $:return"StrictMode";case Y:return"Suspense";case W:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case U:return"Context.Consumer";case k:return"Context.Provider";case H:var r=e.render;return r=r.displayName||r.name||"",e.displayName||(""!==r?"ForwardRef("+r+")":"ForwardRef");case K:return J(e.type);case z:if(e=1===e._status?e._result:null)return J(e)}return null}function j(e){var r="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var o="";break e;default:var t=e._debugOwner,n=e._debugSource,l=J(e.type);o=null,t&&(o=J(t.type)),t=l,l="",n?l=" (at "+n.fileName.replace(O,"")+":"+n.lineNumber+")":o&&(l=" (created by "+o+")"),o="\n in "+(t||"Unknown")+l}r+=o,e=e.return}while(e);return r}var q=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),ee=null,re=null,oe=null;function te(e){if(e=M(e)){if("function"!==typeof ee)throw Error(i(280));var r=T(e.stateNode);ee(e.stateNode,e.type,r)}}function ne(e){re?oe?oe.push(e):oe=[e]:re=e}function le(){if(re){var e=re,r=oe;if(oe=re=null,te(e),r)for(e=0;e<r.length;e++)te(r[e])}}function ie(e,r){return e(r)}function ae(e,r,o,t){return e(r,o,t)}function de(){}var me=ie,ue=!1,se=!1;function ge(){null===re&&null===oe||(de(),le())}new Map;var ce=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,xe=Object.prototype.hasOwnProperty,pe={},fe={};function Se(e,r,o,t,n,l){this.acceptsBooleans=2===r||3===r||4===r,this.attributeName=t,this.attributeNamespace=n,this.mustUseProperty=o,this.propertyName=e,this.type=r,this.sanitizeURL=l}var he={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){he[e]=new Se(e,0,!1,e,null,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var r=e[0];he[r]=new Se(r,1,!1,e[1],null,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){he[e]=new Se(e,2,!1,e.toLowerCase(),null,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){he[e]=new Se(e,2,!1,e,null,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){he[e]=new Se(e,3,!1,e.toLowerCase(),null,!1)})),["checked","multiple","muted","selected"].forEach((function(e){he[e]=new Se(e,3,!0,e,null,!1)})),["capture","download"].forEach((function(e){he[e]=new Se(e,4,!1,e,null,!1)})),["cols","rows","size","span"].forEach((function(e){he[e]=new Se(e,6,!1,e,null,!1)})),["rowSpan","start"].forEach((function(e){he[e]=new Se(e,5,!1,e.toLowerCase(),null,!1)}));var ve=/[\-:]([a-z])/g;function Ae(e){return e[1].toUpperCase()}function be(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Te(e,r,o,t){var n=he.hasOwnProperty(r)?he[r]:null;(null!==n?0===n.type:!t&&(2<r.length&&("o"===r[0]||"O"===r[0])&&("n"===r[1]||"N"===r[1])))||(function(e,r,o,t){if(null===r||"undefined"===typeof r||function(e,r,o,t){if(null!==o&&0===o.type)return!1;switch(typeof r){case"function":case"symbol":return!0;case"boolean":return!t&&(null!==o?!o.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,r,o,t))return!0;if(t)return!1;if(null!==o)switch(o.type){case 3:return!r;case 4:return!1===r;case 5:return isNaN(r);case 6:return isNaN(r)||1>r}return!1}(r,o,n,t)&&(o=null),t||null===n?function(e){return!!xe.call(fe,e)||!xe.call(pe,e)&&(ce.test(e)?fe[e]=!0:(pe[e]=!0,!1))}(r)&&(null===o?e.removeAttribute(r):e.setAttribute(r,""+o)):n.mustUseProperty?e[n.propertyName]=null===o?3!==n.type&&"":o:(r=n.attributeName,t=n.attributeNamespace,null===o?e.removeAttribute(r):(o=3===(n=n.type)||4===n&&!0===o?"":""+o,t?e.setAttributeNS(t,r,o):e.setAttribute(r,o))))}function Me(e){var r=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===r||"radio"===r)}function Pe(e){e._valueTracker||(e._valueTracker=function(e){var r=Me(e)?"checked":"value",o=Object.getOwnPropertyDescriptor(e.constructor.prototype,r),t=""+e[r];if(!e.hasOwnProperty(r)&&"undefined"!==typeof o&&"function"===typeof o.get&&"function"===typeof o.set){var n=o.get,l=o.set;return Object.defineProperty(e,r,{configurable:!0,get:function(){return n.call(this)},set:function(e){t=""+e,l.call(this,e)}}),Object.defineProperty(e,r,{enumerable:o.enumerable}),{getValue:function(){return t},setValue:function(e){t=""+e},stopTracking:function(){e._valueTracker=null,delete e[r]}}}}(e))}function ye(e){if(!e)return!1;var r=e._valueTracker;if(!r)return!0;var o=r.getValue(),t="";return e&&(t=Me(e)?e.checked?"true":"false":e.value),(e=t)!==o&&(r.setValue(e),!0)}function Le(e,r){var o=r.checked;return n({},r,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=o?o:e._wrapperState.initialChecked})}function Ee(e,r){var o=null==r.defaultValue?"":r.defaultValue,t=null!=r.checked?r.checked:r.defaultChecked;o=be(null!=r.value?r.value:o),e._wrapperState={initialChecked:t,initialValue:o,controlled:"checkbox"===r.type||"radio"===r.type?null!=r.checked:null!=r.value}}function _e(e,r){null!=(r=r.checked)&&Te(e,"checked",r,!1)}function we(e,r){_e(e,r);var o=be(r.value),t=r.type;if(null!=o)"number"===t?(0===o&&""===e.value||e.value!=o)&&(e.value=""+o):e.value!==""+o&&(e.value=""+o);else if("submit"===t||"reset"===t)return void e.removeAttribute("value");r.hasOwnProperty("value")?Ce(e,r.type,o):r.hasOwnProperty("defaultValue")&&Ce(e,r.type,be(r.defaultValue)),null==r.checked&&null!=r.defaultChecked&&(e.defaultChecked=!!r.defaultChecked)}function Be(e,r,o){if(r.hasOwnProperty("value")||r.hasOwnProperty("defaultValue")){var t=r.type;if(!("submit"!==t&&"reset"!==t||void 0!==r.value&&null!==r.value))return;r=""+e._wrapperState.initialValue,o||r===e.value||(e.value=r),e.defaultValue=r}""!==(o=e.name)&&(e.name=""),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!!e._wrapperState.initialChecked,""!==o&&(e.name=o)}function Ce(e,r,o){"number"===r&&e.ownerDocument.activeElement===e||(null==o?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+o&&(e.defaultValue=""+o))}function Ge(e,r){return e=n({children:void 0},r),(r=function(e){var r="";return t.Children.forEach(e,(function(e){null!=e&&(r+=e)})),r}(r.children))&&(e.children=r),e}function Ne(e,r,o,t){if(e=e.options,r){r={};for(var n=0;n<o.length;n++)r["$"+o[n]]=!0;for(o=0;o<e.length;o++)n=r.hasOwnProperty("$"+e[o].value),e[o].selected!==n&&(e[o].selected=n),n&&t&&(e[o].defaultSelected=!0)}else{for(o=""+be(o),r=null,n=0;n<e.length;n++){if(e[n].value===o)return e[n].selected=!0,void(t&&(e[n].defaultSelected=!0));null!==r||e[n].disabled||(r=e[n])}null!==r&&(r.selected=!0)}}function Oe(e,r){if(null!=r.dangerouslySetInnerHTML)throw Error(i(91));return n({},r,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Ie(e,r){var o=r.value;if(null==o){if(o=r.defaultValue,null!=(r=r.children)){if(null!=o)throw Error(i(92));if(Array.isArray(r)){if(!(1>=r.length))throw Error(i(93));r=r[0]}o=r}null==o&&(o="")}e._wrapperState={initialValue:be(o)}}function Xe(e,r){var o=be(r.value),t=be(r.defaultValue);null!=o&&((o=""+o)!==e.value&&(e.value=o),null==r.defaultValue&&e.defaultValue!==o&&(e.defaultValue=o)),null!=t&&(e.defaultValue=""+t)}function De(e){var r=e.textContent;r===e._wrapperState.initialValue&&""!==r&&null!==r&&(e.value=r)}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var r=e.replace(ve,Ae);he[r]=new Se(r,1,!1,e,null,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var r=e.replace(ve,Ae);he[r]=new Se(r,1,!1,e,"http://www.w3.org/1999/xlink",!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var r=e.replace(ve,Ae);he[r]=new Se(r,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)})),["tabIndex","crossOrigin"].forEach((function(e){he[e]=new Se(e,1,!1,e.toLowerCase(),null,!1)})),he.xlinkHref=new Se("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach((function(e){he[e]=new Se(e,1,!1,e.toLowerCase(),null,!0)}));var Fe={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function $e(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Re(e,r){return null==e||"http://www.w3.org/1999/xhtml"===e?$e(r):"http://www.w3.org/2000/svg"===e&&"foreignObject"===r?"http://www.w3.org/1999/xhtml":e}var ke,Ue=function(e){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(r,o,t,n){MSApp.execUnsafeLocalFunction((function(){return e(r,o)}))}:e}((function(e,r){if(e.namespaceURI!==Fe.svg||"innerHTML"in e)e.innerHTML=r;else{for((ke=ke||document.createElement("div")).innerHTML="<svg>"+r.valueOf().toString()+"</svg>",r=ke.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;r.firstChild;)e.appendChild(r.firstChild)}}));function Ve(e,r){if(r){var o=e.firstChild;if(o&&o===e.lastChild&&3===o.nodeType)return void(o.nodeValue=r)}e.textContent=r}function He(e,r){var o={};return o[e.toLowerCase()]=r.toLowerCase(),o["Webkit"+e]="webkit"+r,o["Moz"+e]="moz"+r,o}var Ye={animationend:He("Animation","AnimationEnd"),animationiteration:He("Animation","AnimationIteration"),animationstart:He("Animation","AnimationStart"),transitionend:He("Transition","TransitionEnd")},We={},Ke={};function ze(e){if(We[e])return We[e];if(!Ye[e])return e;var r,o=Ye[e];for(r in o)if(o.hasOwnProperty(r)&&r in Ke)return We[e]=o[r];return e}q&&(Ke=document.createElement("div").style,"AnimationEvent"in window||(delete Ye.animationend.animation,delete Ye.animationiteration.animation,delete Ye.animationstart.animation),"TransitionEvent"in window||delete Ye.transitionend.transition);var Qe=ze("animationend"),Ze=ze("animationiteration"),Je=ze("animationstart"),je=ze("transitionend"),qe="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" ");function er(e){var r=e,o=e;if(e.alternate)for(;r.return;)r=r.return;else{e=r;do{0!==(1026&(r=e).effectTag)&&(o=r.return),e=r.return}while(e)}return 3===r.tag?o:null}function rr(e){if(13===e.tag){var r=e.memoizedState;if(null===r&&(null!==(e=e.alternate)&&(r=e.memoizedState)),null!==r)return r.dehydrated}return null}function or(e){if(er(e)!==e)throw Error(i(188))}function tr(e){if(!(e=function(e){var r=e.alternate;if(!r){if(null===(r=er(e)))throw Error(i(188));return r!==e?null:e}for(var o=e,t=r;;){var n=o.return;if(null===n)break;var l=n.alternate;if(null===l){if(null!==(t=n.return)){o=t;continue}break}if(n.child===l.child){for(l=n.child;l;){if(l===o)return or(n),e;if(l===t)return or(n),r;l=l.sibling}throw Error(i(188))}if(o.return!==t.return)o=n,t=l;else{for(var a=!1,d=n.child;d;){if(d===o){a=!0,o=n,t=l;break}if(d===t){a=!0,t=n,o=l;break}d=d.sibling}if(!a){for(d=l.child;d;){if(d===o){a=!0,o=l,t=n;break}if(d===t){a=!0,t=l,o=n;break}d=d.sibling}if(!a)throw Error(i(189))}}if(o.alternate!==t)throw Error(i(190))}if(3!==o.tag)throw Error(i(188));return o.stateNode.current===o?e:r}(e)))return null;for(var r=e;;){if(5===r.tag||6===r.tag)return r;if(r.child)r.child.return=r,r=r.child;else{if(r===e)break;for(;!r.sibling;){if(!r.return||r.return===e)return null;r=r.return}r.sibling.return=r.return,r=r.sibling}}return null}var nr,lr,ir,ar=!1,dr=[],mr=null,ur=null,sr=null,gr=new Map,cr=new Map,xr=[],pr="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit".split(" "),fr="focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" ");function Sr(e,r,o,t){return{blockedOn:e,topLevelType:r,eventSystemFlags:32|o,nativeEvent:t}}function hr(e,r){switch(e){case"focus":case"blur":mr=null;break;case"dragenter":case"dragleave":ur=null;break;case"mouseover":case"mouseout":sr=null;break;case"pointerover":case"pointerout":gr.delete(r.pointerId);break;case"gotpointercapture":case"lostpointercapture":cr.delete(r.pointerId)}}function vr(e,r,o,t,n){return null===e||e.nativeEvent!==n?(e=Sr(r,o,t,n),null!==r&&(null!==(r=ct(r))&&lr(r)),e):(e.eventSystemFlags|=t,e)}function Ar(e){var r=gt(e.target);if(null!==r){var o=er(r);if(null!==o)if(13===(r=o.tag)){if(null!==(r=rr(o)))return e.blockedOn=r,void l.unstable_runWithPriority(e.priority,(function(){ir(o)}))}else if(3===r&&o.stateNode.hydrate)return void(e.blockedOn=3===o.tag?o.stateNode.containerInfo:null)}e.blockedOn=null}function br(e){if(null!==e.blockedOn)return!1;var r=Co(e.topLevelType,e.eventSystemFlags,e.nativeEvent);if(null!==r){var o=ct(r);return null!==o&&lr(o),e.blockedOn=r,!1}return!0}function Tr(e,r,o){br(e)&&o.delete(r)}function Mr(){for(ar=!1;0<dr.length;){var e=dr[0];if(null!==e.blockedOn){null!==(e=ct(e.blockedOn))&&nr(e);break}var r=Co(e.topLevelType,e.eventSystemFlags,e.nativeEvent);null!==r?e.blockedOn=r:dr.shift()}null!==mr&&br(mr)&&(mr=null),null!==ur&&br(ur)&&(ur=null),null!==sr&&br(sr)&&(sr=null),gr.forEach(Tr),cr.forEach(Tr)}function Pr(e,r){e.blockedOn===r&&(e.blockedOn=null,ar||(ar=!0,l.unstable_scheduleCallback(l.unstable_NormalPriority,Mr)))}function yr(e){function r(r){return Pr(r,e)}if(0<dr.length){Pr(dr[0],e);for(var o=1;o<dr.length;o++){var t=dr[o];t.blockedOn===e&&(t.blockedOn=null)}}for(null!==mr&&Pr(mr,e),null!==ur&&Pr(ur,e),null!==sr&&Pr(sr,e),gr.forEach(r),cr.forEach(r),o=0;o<xr.length;o++)(t=xr[o]).blockedOn===e&&(t.blockedOn=null);for(;0<xr.length&&null===(o=xr[0]).blockedOn;)Ar(o),null===o.blockedOn&&xr.shift()}function Lr(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function Er(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function _r(e,r,o){(r=G(e,o.dispatchConfig.phasedRegistrationNames[r]))&&(o._dispatchListeners=L(o._dispatchListeners,r),o._dispatchInstances=L(o._dispatchInstances,e))}function wr(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var r=e._targetInst,o=[];r;)o.push(r),r=Er(r);for(r=o.length;0<r--;)_r(o[r],"captured",e);for(r=0;r<o.length;r++)_r(o[r],"bubbled",e)}}function Br(e,r,o){e&&o&&o.dispatchConfig.registrationName&&(r=G(e,o.dispatchConfig.registrationName))&&(o._dispatchListeners=L(o._dispatchListeners,r),o._dispatchInstances=L(o._dispatchInstances,e))}function Cr(e){e&&e.dispatchConfig.registrationName&&Br(e._targetInst,null,e)}function Gr(e){E(e,wr)}function Nr(){return!0}function Or(){return!1}function Ir(e,r,o,t){for(var n in this.dispatchConfig=e,this._targetInst=r,this.nativeEvent=o,e=this.constructor.Interface)e.hasOwnProperty(n)&&((r=e[n])?this[n]=r(o):"target"===n?this.target=t:this[n]=o[n]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?Nr:Or,this.isPropagationStopped=Or,this}function Xr(e,r,o,t){if(this.eventPool.length){var n=this.eventPool.pop();return this.call(n,e,r,o,t),n}return new this(e,r,o,t)}function Dr(e){if(!(e instanceof this))throw Error(i(279));e.destructor(),10>this.eventPool.length&&this.eventPool.push(e)}function Fr(e){e.eventPool=[],e.getPooled=Xr,e.release=Dr}n(Ir.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=Nr)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Nr)},persist:function(){this.isPersistent=Nr},isPersistent:Or,destructor:function(){var e,r=this.constructor.Interface;for(e in r)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=Or,this._dispatchInstances=this._dispatchListeners=null}}),Ir.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},Ir.extend=function(e){function r(){}function o(){return t.apply(this,arguments)}var t=this;r.prototype=t.prototype;var l=new r;return n(l,o.prototype),o.prototype=l,o.prototype.constructor=o,o.Interface=n({},t.Interface,e),o.extend=t.extend,Fr(o),o},Fr(Ir);var $r=Ir.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Rr=Ir.extend({clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kr=Ir.extend({view:null,detail:null}),Ur=kr.extend({relatedTarget:null});function Vr(e){var r=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===r&&(e=13):e=r,10===e&&(e=13),32<=e||13===e?e:0}var Hr={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Yr={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Wr={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Kr(e){var r=this.nativeEvent;return r.getModifierState?r.getModifierState(e):!!(e=Wr[e])&&!!r[e]}function zr(){return Kr}for(var Qr=kr.extend({key:function(e){if(e.key){var r=Hr[e.key]||e.key;if("Unidentified"!==r)return r}return"keypress"===e.type?13===(e=Vr(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?Yr[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:zr,charCode:function(e){return"keypress"===e.type?Vr(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?Vr(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Zr=0,Jr=0,jr=!1,qr=!1,eo=kr.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:zr,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},movementX:function(e){if("movementX"in e)return e.movementX;var r=Zr;return Zr=e.screenX,jr?"mousemove"===e.type?e.screenX-r:0:(jr=!0,0)},movementY:function(e){if("movementY"in e)return e.movementY;var r=Jr;return Jr=e.screenY,qr?"mousemove"===e.type?e.screenY-r:0:(qr=!0,0)}}),ro=eo.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),oo=eo.extend({dataTransfer:null}),to=kr.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:zr}),no=Ir.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),lo=eo.extend({deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),io=[["blur","blur",0],["cancel","cancel",0],["click","click",0],["close","close",0],["contextmenu","contextMenu",0],["copy","copy",0],["cut","cut",0],["auxclick","auxClick",0],["dblclick","doubleClick",0],["dragend","dragEnd",0],["dragstart","dragStart",0],["drop","drop",0],["focus","focus",0],["input","input",0],["invalid","invalid",0],["keydown","keyDown",0],["keypress","keyPress",0],["keyup","keyUp",0],["mousedown","mouseDown",0],["mouseup","mouseUp",0],["paste","paste",0],["pause","pause",0],["play","play",0],["pointercancel","pointerCancel",0],["pointerdown","pointerDown",0],["pointerup","pointerUp",0],["ratechange","rateChange",0],["reset","reset",0],["seeked","seeked",0],["submit","submit",0],["touchcancel","touchCancel",0],["touchend","touchEnd",0],["touchstart","touchStart",0],["volumechange","volumeChange",0],["drag","drag",1],["dragenter","dragEnter",1],["dragexit","dragExit",1],["dragleave","dragLeave",1],["dragover","dragOver",1],["mousemove","mouseMove",1],["mouseout","mouseOut",1],["mouseover","mouseOver",1],["pointermove","pointerMove",1],["pointerout","pointerOut",1],["pointerover","pointerOver",1],["scroll","scroll",1],["toggle","toggle",1],["touchmove","touchMove",1],["wheel","wheel",1],["abort","abort",2],[Qe,"animationEnd",2],[Ze,"animationIteration",2],[Je,"animationStart",2],["canplay","canPlay",2],["canplaythrough","canPlayThrough",2],["durationchange","durationChange",2],["emptied","emptied",2],["encrypted","encrypted",2],["ended","ended",2],["error","error",2],["gotpointercapture","gotPointerCapture",2],["load","load",2],["loadeddata","loadedData",2],["loadedmetadata","loadedMetadata",2],["loadstart","loadStart",2],["lostpointercapture","lostPointerCapture",2],["playing","playing",2],["progress","progress",2],["seeking","seeking",2],["stalled","stalled",2],["suspend","suspend",2],["timeupdate","timeUpdate",2],[je,"transitionEnd",2],["waiting","waiting",2]],ao={},mo={},uo=0;uo<io.length;uo++){var so=io[uo],go=so[0],co=so[1],xo=so[2],po="on"+(co[0].toUpperCase()+co.slice(1)),fo={phasedRegistrationNames:{bubbled:po,captured:po+"Capture"},dependencies:[go],eventPriority:xo};ao[co]=fo,mo[go]=fo}var So={eventTypes:ao,getEventPriority:function(e){return void 0!==(e=mo[e])?e.eventPriority:2},extractEvents:function(e,r,o,t){var n=mo[e];if(!n)return null;switch(e){case"keypress":if(0===Vr(o))return null;case"keydown":case"keyup":e=Qr;break;case"blur":case"focus":e=Ur;break;case"click":if(2===o.button)return null;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":e=eo;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":e=oo;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":e=to;break;case Qe:case Ze:case Je:e=$r;break;case je:e=no;break;case"scroll":e=kr;break;case"wheel":e=lo;break;case"copy":case"cut":case"paste":e=Rr;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":e=ro;break;default:e=Ir}return Gr(r=e.getPooled(n,r,o,t)),r}},ho=l.unstable_UserBlockingPriority,vo=l.unstable_runWithPriority,Ao=So.getEventPriority,bo=10,To=[];function Mo(e){var r=e.targetInst,o=r;do{if(!o){e.ancestors.push(o);break}var t=o;if(3===t.tag)t=t.stateNode.containerInfo;else{for(;t.return;)t=t.return;t=3!==t.tag?null:t.stateNode.containerInfo}if(!t)break;5!==(r=o.tag)&&6!==r||e.ancestors.push(o),o=gt(t)}while(o);for(o=0;o<e.ancestors.length;o++){r=e.ancestors[o];var n=Lr(e.nativeEvent);t=e.topLevelType;for(var l=e.nativeEvent,i=e.eventSystemFlags,a=null,d=0;d<s.length;d++){var m=s[d];m&&(m=m.extractEvents(t,r,l,n,i))&&(a=L(a,m))}B(a)}}var Po=!0;function yo(e,r){Lo(r,e,!1)}function Lo(e,r,o){switch(Ao(r)){case 0:var t=Eo.bind(null,r,1);break;case 1:t=_o.bind(null,r,1);break;default:t=Bo.bind(null,r,1)}o?e.addEventListener(r,t,!0):e.addEventListener(r,t,!1)}function Eo(e,r,o){ue||de();var t=Bo,n=ue;ue=!0;try{ae(t,e,r,o)}finally{(ue=n)||ge()}}function _o(e,r,o){vo(ho,Bo.bind(null,e,r,o))}function wo(e,r,o,t){if(To.length){var n=To.pop();n.topLevelType=e,n.eventSystemFlags=r,n.nativeEvent=o,n.targetInst=t,e=n}else e={topLevelType:e,eventSystemFlags:r,nativeEvent:o,targetInst:t,ancestors:[]};try{if(r=Mo,o=e,se)r(o,void 0);else{se=!0;try{me(r,o,void 0)}finally{se=!1,ge()}}}finally{e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,To.length<bo&&To.push(e)}}function Bo(e,r,o){if(Po)if(0<dr.length&&-1<pr.indexOf(e))e=Sr(null,e,r,o),dr.push(e);else{var t=Co(e,r,o);null===t?hr(e,o):-1<pr.indexOf(e)?(e=Sr(t,e,r,o),dr.push(e)):function(e,r,o,t){switch(r){case"focus":return mr=vr(mr,e,r,o,t),!0;case"dragenter":return ur=vr(ur,e,r,o,t),!0;case"mouseover":return sr=vr(sr,e,r,o,t),!0;case"pointerover":var n=t.pointerId;return gr.set(n,vr(gr.get(n)||null,e,r,o,t)),!0;case"gotpointercapture":return n=t.pointerId,cr.set(n,vr(cr.get(n)||null,e,r,o,t)),!0}return!1}(t,e,r,o)||(hr(e,o),wo(e,r,o,null))}}function Co(e,r,o){var t=Lr(o);if(null!==(t=gt(t))){var n=er(t);if(null===n)t=null;else{var l=n.tag;if(13===l){if(null!==(t=rr(n)))return t;t=null}else if(3===l){if(n.stateNode.hydrate)return 3===n.tag?n.stateNode.containerInfo:null;t=null}else n!==t&&(t=null)}}return wo(e,r,o,t),null}function Go(e){if(!q)return!1;var r=(e="on"+e)in document;return r||((r=document.createElement("div")).setAttribute(e,"return;"),r="function"===typeof r[e]),r}var No=new("function"===typeof WeakMap?WeakMap:Map);function Oo(e){var r=No.get(e);return void 0===r&&(r=new Set,No.set(e,r)),r}function Io(e,r,o){if(!o.has(e)){switch(e){case"scroll":Lo(r,"scroll",!0);break;case"focus":case"blur":Lo(r,"focus",!0),Lo(r,"blur",!0),o.add("blur"),o.add("focus");break;case"cancel":case"close":Go(e)&&Lo(r,e,!0);break;case"invalid":case"submit":case"reset":break;default:-1===qe.indexOf(e)&&yo(e,r)}o.add(e)}}var Xo={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Do=["Webkit","ms","Moz","O"];function Fo(e,r,o){return null==r||"boolean"===typeof r||""===r?"":o||"number"!==typeof r||0===r||Xo.hasOwnProperty(e)&&Xo[e]?(""+r).trim():r+"px"}function $o(e,r){for(var o in e=e.style,r)if(r.hasOwnProperty(o)){var t=0===o.indexOf("--"),n=Fo(o,r[o],t);"float"===o&&(o="cssFloat"),t?e.setProperty(o,n):e[o]=n}}Object.keys(Xo).forEach((function(e){Do.forEach((function(r){r=r+e.charAt(0).toUpperCase()+e.substring(1),Xo[r]=Xo[e]}))}));var Ro=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ko(e,r){if(r){if(Ro[e]&&(null!=r.children||null!=r.dangerouslySetInnerHTML))throw Error(i(137,e,""));if(null!=r.dangerouslySetInnerHTML){if(null!=r.children)throw Error(i(60));if(!("object"===typeof r.dangerouslySetInnerHTML&&"__html"in r.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=r.style&&"object"!==typeof r.style)throw Error(i(62,""))}}function Uo(e,r){if(-1===e.indexOf("-"))return"string"===typeof r.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Vo(e,r){var o=Oo(e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument);r=x[r];for(var t=0;t<r.length;t++)Io(r[t],e,o)}function Ho(){}function Yo(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(r){return e.body}}function Wo(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Ko(e,r){var o,t=Wo(e);for(e=0;t;){if(3===t.nodeType){if(o=e+t.textContent.length,e<=r&&o>=r)return{node:t,offset:r-e};e=o}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=Wo(t)}}function zo(){for(var e=window,r=Yo();r instanceof e.HTMLIFrameElement;){try{var o="string"===typeof r.contentWindow.location.href}catch(t){o=!1}if(!o)break;r=Yo((e=r.contentWindow).document)}return r}function Qo(e){var r=e&&e.nodeName&&e.nodeName.toLowerCase();return r&&("input"===r&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===r||"true"===e.contentEditable)}var Zo="$",Jo="/$",jo="$?",qo="$!",et=null,rt=null;function ot(e,r){switch(e){case"button":case"input":case"select":case"textarea":return!!r.autoFocus}return!1}function tt(e,r){return"textarea"===e||"option"===e||"noscript"===e||"string"===typeof r.children||"number"===typeof r.children||"object"===typeof r.dangerouslySetInnerHTML&&null!==r.dangerouslySetInnerHTML&&null!=r.dangerouslySetInnerHTML.__html}var nt="function"===typeof setTimeout?setTimeout:void 0,lt="function"===typeof clearTimeout?clearTimeout:void 0;function it(e){for(;null!=e;e=e.nextSibling){var r=e.nodeType;if(1===r||3===r)break}return e}function at(e){e=e.previousSibling;for(var r=0;e;){if(8===e.nodeType){var o=e.data;if(o===Zo||o===qo||o===jo){if(0===r)return e;r--}else o===Jo&&r++}e=e.previousSibling}return null}var dt=Math.random().toString(36).slice(2),mt="__reactInternalInstance$"+dt,ut="__reactEventHandlers$"+dt,st="__reactContainere$"+dt;function gt(e){var r=e[mt];if(r)return r;for(var o=e.parentNode;o;){if(r=o[st]||o[mt]){if(o=r.alternate,null!==r.child||null!==o&&null!==o.child)for(e=at(e);null!==e;){if(o=e[mt])return o;e=at(e)}return r}o=(e=o).parentNode}return null}function ct(e){return!(e=e[mt]||e[st])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function xt(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function pt(e){return e[ut]||null}var ft=null,St=null,ht=null;function vt(){if(ht)return ht;var e,r,o=St,t=o.length,n="value"in ft?ft.value:ft.textContent,l=n.length;for(e=0;e<t&&o[e]===n[e];e++);var i=t-e;for(r=1;r<=i&&o[t-r]===n[l-r];r++);return ht=n.slice(e,1<r?1-r:void 0)}var At=Ir.extend({data:null}),bt=Ir.extend({data:null}),Tt=[9,13,27,32],Mt=q&&"CompositionEvent"in window,Pt=null;q&&"documentMode"in document&&(Pt=document.documentMode);var yt=q&&"TextEvent"in window&&!Pt,Lt=q&&(!Mt||Pt&&8<Pt&&11>=Pt),Et=String.fromCharCode(32),_t={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},wt=!1;function Bt(e,r){switch(e){case"keyup":return-1!==Tt.indexOf(r.keyCode);case"keydown":return 229!==r.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function Ct(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Gt=!1;var Nt={eventTypes:_t,extractEvents:function(e,r,o,t){var n;if(Mt)e:{switch(e){case"compositionstart":var l=_t.compositionStart;break e;case"compositionend":l=_t.compositionEnd;break e;case"compositionupdate":l=_t.compositionUpdate;break e}l=void 0}else Gt?Bt(e,o)&&(l=_t.compositionEnd):"keydown"===e&&229===o.keyCode&&(l=_t.compositionStart);return l?(Lt&&"ko"!==o.locale&&(Gt||l!==_t.compositionStart?l===_t.compositionEnd&&Gt&&(n=vt()):(St="value"in(ft=t)?ft.value:ft.textContent,Gt=!0)),l=At.getPooled(l,r,o,t),n?l.data=n:null!==(n=Ct(o))&&(l.data=n),Gr(l),n=l):n=null,(e=yt?function(e,r){switch(e){case"compositionend":return Ct(r);case"keypress":return 32!==r.which?null:(wt=!0,Et);case"textInput":return(e=r.data)===Et&&wt?null:e;default:return null}}(e,o):function(e,r){if(Gt)return"compositionend"===e||!Mt&&Bt(e,r)?(e=vt(),ht=St=ft=null,Gt=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(r.ctrlKey||r.altKey||r.metaKey)||r.ctrlKey&&r.altKey){if(r.char&&1<r.char.length)return r.char;if(r.which)return String.fromCharCode(r.which)}return null;case"compositionend":return Lt&&"ko"!==r.locale?null:r.data;default:return null}}(e,o))?((r=bt.getPooled(_t.beforeInput,r,o,t)).data=e,Gr(r)):r=null,null===n?r:null===r?n:[n,r]}},Ot={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function It(e){var r=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===r?!!Ot[e.type]:"textarea"===r}var Xt={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}};function Dt(e,r,o){return(e=Ir.getPooled(Xt.change,e,r,o)).type="change",ne(o),Gr(e),e}var Ft=null,$t=null;function Rt(e){B(e)}function kt(e){if(ye(xt(e)))return e}function Ut(e,r){if("change"===e)return r}var Vt=!1;function Ht(){Ft&&(Ft.detachEvent("onpropertychange",Yt),$t=Ft=null)}function Yt(e){if("value"===e.propertyName&&kt($t))if(e=Dt($t,e,Lr(e)),ue)B(e);else{ue=!0;try{ie(Rt,e)}finally{ue=!1,ge()}}}function Wt(e,r,o){"focus"===e?(Ht(),$t=o,(Ft=r).attachEvent("onpropertychange",Yt)):"blur"===e&&Ht()}function Kt(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return kt($t)}function zt(e,r){if("click"===e)return kt(r)}function Qt(e,r){if("input"===e||"change"===e)return kt(r)}q&&(Vt=Go("input")&&(!document.documentMode||9<document.documentMode));var Zt,Jt={eventTypes:Xt,_isInputEventSupported:Vt,extractEvents:function(e,r,o,t){var n=r?xt(r):window,l=n.nodeName&&n.nodeName.toLowerCase();if("select"===l||"input"===l&&"file"===n.type)var i=Ut;else if(It(n))if(Vt)i=Qt;else{i=Kt;var a=Wt}else(l=n.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===n.type||"radio"===n.type)&&(i=zt);if(i&&(i=i(e,r)))return Dt(i,o,t);a&&a(e,n,r),"blur"===e&&(e=n._wrapperState)&&e.controlled&&"number"===n.type&&Ce(n,"number",n.value)}},jt={mouseEnter:{registrationName:"onMouseEnter",dependencies:["mouseout","mouseover"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["mouseout","mouseover"]},pointerEnter:{registrationName:"onPointerEnter",dependencies:["pointerout","pointerover"]},pointerLeave:{registrationName:"onPointerLeave",dependencies:["pointerout","pointerover"]}},qt={eventTypes:jt,extractEvents:function(e,r,o,t,n){var l="mouseover"===e||"pointerover"===e,i="mouseout"===e||"pointerout"===e;if(l&&0===(32&n)&&(o.relatedTarget||o.fromElement)||!i&&!l)return null;if(n=t.window===t?t:(n=t.ownerDocument)?n.defaultView||n.parentWindow:window,i?(i=r,null!==(r=(r=o.relatedTarget||o.toElement)?gt(r):null)&&(r!==(l=er(r))||5!==r.tag&&6!==r.tag)&&(r=null)):i=null,i===r)return null;if("mouseout"===e||"mouseover"===e)var a=eo,d=jt.mouseLeave,m=jt.mouseEnter,u="mouse";else"pointerout"!==e&&"pointerover"!==e||(a=ro,d=jt.pointerLeave,m=jt.pointerEnter,u="pointer");if(e=null==i?n:xt(i),n=null==r?n:xt(r),(d=a.getPooled(d,i,o,t)).type=u+"leave",d.target=e,d.relatedTarget=n,(t=a.getPooled(m,r,o,t)).type=u+"enter",t.target=n,t.relatedTarget=e,u=r,(a=i)&&u)e:{for(e=u,i=0,r=m=a;r;r=Er(r))i++;for(r=0,n=e;n;n=Er(n))r++;for(;0<i-r;)m=Er(m),i--;for(;0<r-i;)e=Er(e),r--;for(;i--;){if(m===e||m===e.alternate)break e;m=Er(m),e=Er(e)}m=null}else m=null;for(e=m,m=[];a&&a!==e&&(null===(i=a.alternate)||i!==e);)m.push(a),a=Er(a);for(a=[];u&&u!==e&&(null===(i=u.alternate)||i!==e);)a.push(u),u=Er(u);for(u=0;u<m.length;u++)Br(m[u],"bubbled",d);for(u=a.length;0<u--;)Br(a[u],"captured",t);return o===Zt?(Zt=null,[d]):(Zt=o,[d,t])}};var en="function"===typeof Object.is?Object.is:function(e,r){return e===r&&(0!==e||1/e===1/r)||e!==e&&r!==r},rn=Object.prototype.hasOwnProperty;function on(e,r){if(en(e,r))return!0;if("object"!==typeof e||null===e||"object"!==typeof r||null===r)return!1;var o=Object.keys(e),t=Object.keys(r);if(o.length!==t.length)return!1;for(t=0;t<o.length;t++)if(!rn.call(r,o[t])||!en(e[o[t]],r[o[t]]))return!1;return!0}var tn=q&&"documentMode"in document&&11>=document.documentMode,nn={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},ln=null,an=null,dn=null,mn=!1;function un(e,r){var o=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;return mn||null==ln||ln!==Yo(o)?null:("selectionStart"in(o=ln)&&Qo(o)?o={start:o.selectionStart,end:o.selectionEnd}:o={anchorNode:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset},dn&&on(dn,o)?null:(dn=o,(e=Ir.getPooled(nn.select,an,e,r)).type="select",e.target=ln,Gr(e),e))}var sn={eventTypes:nn,extractEvents:function(e,r,o,t){var n,l=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;if(!(n=!l)){e:{l=Oo(l),n=x.onSelect;for(var i=0;i<n.length;i++)if(!l.has(n[i])){l=!1;break e}l=!0}n=!l}if(n)return null;switch(l=r?xt(r):window,e){case"focus":(It(l)||"true"===l.contentEditable)&&(ln=l,an=r,dn=null);break;case"blur":dn=an=ln=null;break;case"mousedown":mn=!0;break;case"contextmenu":case"mouseup":case"dragend":return mn=!1,un(o,t);case"selectionchange":if(tn)break;case"keydown":case"keyup":return un(o,t)}return null}};C.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),T=pt,M=ct,P=xt,C.injectEventPluginsByName({SimpleEventPlugin:So,EnterLeaveEventPlugin:qt,ChangeEventPlugin:Jt,SelectEventPlugin:sn,BeforeInputEventPlugin:Nt}),new Set;var gn=[],cn=-1;function xn(e){0>cn||(e.current=gn[cn],gn[cn]=null,cn--)}function pn(e,r){cn++,gn[cn]=e.current,e.current=r}var fn={},Sn={current:fn},hn={current:!1},vn=fn;function An(e,r){var o=e.type.contextTypes;if(!o)return fn;var t=e.stateNode;if(t&&t.__reactInternalMemoizedUnmaskedChildContext===r)return t.__reactInternalMemoizedMaskedChildContext;var n,l={};for(n in o)l[n]=r[n];return t&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=r,e.__reactInternalMemoizedMaskedChildContext=l),l}function bn(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Tn(e){xn(hn),xn(Sn)}function Mn(e){xn(hn),xn(Sn)}function Pn(e,r,o){if(Sn.current!==fn)throw Error(i(168));pn(Sn,r),pn(hn,o)}function yn(e,r,o){var t=e.stateNode;if(e=r.childContextTypes,"function"!==typeof t.getChildContext)return o;for(var l in t=t.getChildContext())if(!(l in e))throw Error(i(108,J(r)||"Unknown",l));return n({},o,{},t)}function Ln(e){var r=e.stateNode;return r=r&&r.__reactInternalMemoizedMergedChildContext||fn,vn=Sn.current,pn(Sn,r),pn(hn,hn.current),!0}function En(e,r,o){var t=e.stateNode;if(!t)throw Error(i(169));o?(r=yn(e,r,vn),t.__reactInternalMemoizedMergedChildContext=r,xn(hn),xn(Sn),pn(Sn,r)):xn(hn),pn(hn,o)}var _n=l.unstable_runWithPriority,wn=l.unstable_scheduleCallback,Bn=l.unstable_cancelCallback,Cn=l.unstable_shouldYield,Gn=l.unstable_requestPaint,Nn=l.unstable_now,On=l.unstable_getCurrentPriorityLevel,In=l.unstable_ImmediatePriority,Xn=l.unstable_UserBlockingPriority,Dn=l.unstable_NormalPriority,Fn=l.unstable_LowPriority,$n=l.unstable_IdlePriority,Rn={},kn=void 0!==Gn?Gn:function(){},Un=null,Vn=null,Hn=!1,Yn=Nn(),Wn=1e4>Yn?Nn:function(){return Nn()-Yn};function Kn(){switch(On()){case In:return 99;case Xn:return 98;case Dn:return 97;case Fn:return 96;case $n:return 95;default:throw Error(i(332))}}function zn(e){switch(e){case 99:return In;case 98:return Xn;case 97:return Dn;case 96:return Fn;case 95:return $n;default:throw Error(i(332))}}function Qn(e,r){return e=zn(e),_n(e,r)}function Zn(e,r,o){return e=zn(e),wn(e,r,o)}function Jn(e){return null===Un?(Un=[e],Vn=wn(In,qn)):Un.push(e),Rn}function jn(){if(null!==Vn){var e=Vn;Vn=null,Bn(e)}qn()}function qn(){if(!Hn&&null!==Un){Hn=!0;var e=0;try{var r=Un;Qn(99,(function(){for(;e<r.length;e++){var o=r[e];do{o=o(!0)}while(null!==o)}})),Un=null}catch(o){throw null!==Un&&(Un=Un.slice(e+1)),wn(In,jn),o}finally{Hn=!1}}}var el=3;function rl(e,r,o){return 1073741821-(1+((1073741821-e+r/10)/(o/=10)|0))*o}function ol(e,r){if(e&&e.defaultProps)for(var o in r=n({},r),e=e.defaultProps)void 0===r[o]&&(r[o]=e[o]);return r}var tl={current:null},nl=null,ll=null,il=null;function al(){il=ll=nl=null}function dl(e,r){var o=e.type._context;pn(tl,o._currentValue),o._currentValue=r}function ml(e){var r=tl.current;xn(tl),e.type._context._currentValue=r}function ul(e,r){for(;null!==e;){var o=e.alternate;if(e.childExpirationTime<r)e.childExpirationTime=r,null!==o&&o.childExpirationTime<r&&(o.childExpirationTime=r);else{if(!(null!==o&&o.childExpirationTime<r))break;o.childExpirationTime=r}e=e.return}}function sl(e,r){nl=e,il=ll=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(e.expirationTime>=r&&(Yi=!0),e.firstContext=null)}function gl(e,r){if(il!==e&&!1!==r&&0!==r)if("number"===typeof r&&1073741823!==r||(il=e,r=1073741823),r={context:e,observedBits:r,next:null},null===ll){if(null===nl)throw Error(i(308));ll=r,nl.dependencies={expirationTime:0,firstContext:r,responders:null}}else ll=ll.next=r;return e._currentValue}var cl=!1;function xl(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function pl(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function fl(e,r){return{expirationTime:e,suspenseConfig:r,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Sl(e,r){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=r:(e.lastUpdate.next=r,e.lastUpdate=r)}function hl(e,r){var o=e.alternate;if(null===o){var t=e.updateQueue,n=null;null===t&&(t=e.updateQueue=xl(e.memoizedState))}else t=e.updateQueue,n=o.updateQueue,null===t?null===n?(t=e.updateQueue=xl(e.memoizedState),n=o.updateQueue=xl(o.memoizedState)):t=e.updateQueue=pl(n):null===n&&(n=o.updateQueue=pl(t));null===n||t===n?Sl(t,r):null===t.lastUpdate||null===n.lastUpdate?(Sl(t,r),Sl(n,r)):(Sl(t,r),n.lastUpdate=r)}function vl(e,r){var o=e.updateQueue;null===(o=null===o?e.updateQueue=xl(e.memoizedState):Al(e,o)).lastCapturedUpdate?o.firstCapturedUpdate=o.lastCapturedUpdate=r:(o.lastCapturedUpdate.next=r,o.lastCapturedUpdate=r)}function Al(e,r){var o=e.alternate;return null!==o&&r===o.updateQueue&&(r=e.updateQueue=pl(r)),r}function bl(e,r,o,t,l,i){switch(o.tag){case 1:return"function"===typeof(e=o.payload)?e.call(i,t,l):e;case 3:e.effectTag=-4097&e.effectTag|64;case 0:if(null===(l="function"===typeof(e=o.payload)?e.call(i,t,l):e)||void 0===l)break;return n({},t,l);case 2:cl=!0}return t}function Tl(e,r,o,t,n){cl=!1;for(var l=(r=Al(e,r)).baseState,i=null,a=0,d=r.firstUpdate,m=l;null!==d;){var u=d.expirationTime;u<n?(null===i&&(i=d,l=m),a<u&&(a=u)):(Ed(u,d.suspenseConfig),m=bl(e,0,d,m,o,t),null!==d.callback&&(e.effectTag|=32,d.nextEffect=null,null===r.lastEffect?r.firstEffect=r.lastEffect=d:(r.lastEffect.nextEffect=d,r.lastEffect=d))),d=d.next}for(u=null,d=r.firstCapturedUpdate;null!==d;){var s=d.expirationTime;s<n?(null===u&&(u=d,null===i&&(l=m)),a<s&&(a=s)):(m=bl(e,0,d,m,o,t),null!==d.callback&&(e.effectTag|=32,d.nextEffect=null,null===r.lastCapturedEffect?r.firstCapturedEffect=r.lastCapturedEffect=d:(r.lastCapturedEffect.nextEffect=d,r.lastCapturedEffect=d))),d=d.next}null===i&&(r.lastUpdate=null),null===u?r.lastCapturedUpdate=null:e.effectTag|=32,null===i&&null===u&&(l=m),r.baseState=l,r.firstUpdate=i,r.firstCapturedUpdate=u,_d(a),e.expirationTime=a,e.memoizedState=m}function Ml(e,r,o){null!==r.firstCapturedUpdate&&(null!==r.lastUpdate&&(r.lastUpdate.next=r.firstCapturedUpdate,r.lastUpdate=r.lastCapturedUpdate),r.firstCapturedUpdate=r.lastCapturedUpdate=null),Pl(r.firstEffect,o),r.firstEffect=r.lastEffect=null,Pl(r.firstCapturedEffect,o),r.firstCapturedEffect=r.lastCapturedEffect=null}function Pl(e,r){for(;null!==e;){var o=e.callback;if(null!==o){e.callback=null;var t=r;if("function"!==typeof o)throw Error(i(191,o));o.call(t)}e=e.nextEffect}}var yl=N.ReactCurrentBatchConfig,Ll=(new t.Component).refs;function El(e,r,o,t){o=null===(o=o(t,r=e.memoizedState))||void 0===o?r:n({},r,o),e.memoizedState=o,null!==(t=e.updateQueue)&&0===e.expirationTime&&(t.baseState=o)}var _l={isMounted:function(e){return!!(e=e._reactInternalFiber)&&er(e)===e},enqueueSetState:function(e,r,o){e=e._reactInternalFiber;var t=xd(),n=yl.suspense;(n=fl(t=pd(t,e,n),n)).payload=r,void 0!==o&&null!==o&&(n.callback=o),hl(e,n),fd(e,t)},enqueueReplaceState:function(e,r,o){e=e._reactInternalFiber;var t=xd(),n=yl.suspense;(n=fl(t=pd(t,e,n),n)).tag=1,n.payload=r,void 0!==o&&null!==o&&(n.callback=o),hl(e,n),fd(e,t)},enqueueForceUpdate:function(e,r){e=e._reactInternalFiber;var o=xd(),t=yl.suspense;(t=fl(o=pd(o,e,t),t)).tag=2,void 0!==r&&null!==r&&(t.callback=r),hl(e,t),fd(e,o)}};function wl(e,r,o,t,n,l,i){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(t,l,i):!r.prototype||!r.prototype.isPureReactComponent||(!on(o,t)||!on(n,l))}function Bl(e,r,o){var t=!1,n=fn,l=r.contextType;return"object"===typeof l&&null!==l?l=gl(l):(n=bn(r)?vn:Sn.current,l=(t=null!==(t=r.contextTypes)&&void 0!==t)?An(e,n):fn),r=new r(o,l),e.memoizedState=null!==r.state&&void 0!==r.state?r.state:null,r.updater=_l,e.stateNode=r,r._reactInternalFiber=e,t&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=l),r}function Cl(e,r,o,t){e=r.state,"function"===typeof r.componentWillReceiveProps&&r.componentWillReceiveProps(o,t),"function"===typeof r.UNSAFE_componentWillReceiveProps&&r.UNSAFE_componentWillReceiveProps(o,t),r.state!==e&&_l.enqueueReplaceState(r,r.state,null)}function Gl(e,r,o,t){var n=e.stateNode;n.props=o,n.state=e.memoizedState,n.refs=Ll;var l=r.contextType;"object"===typeof l&&null!==l?n.context=gl(l):(l=bn(r)?vn:Sn.current,n.context=An(e,l)),null!==(l=e.updateQueue)&&(Tl(e,l,o,n,t),n.state=e.memoizedState),"function"===typeof(l=r.getDerivedStateFromProps)&&(El(e,r,l,o),n.state=e.memoizedState),"function"===typeof r.getDerivedStateFromProps||"function"===typeof n.getSnapshotBeforeUpdate||"function"!==typeof n.UNSAFE_componentWillMount&&"function"!==typeof n.componentWillMount||(r=n.state,"function"===typeof n.componentWillMount&&n.componentWillMount(),"function"===typeof n.UNSAFE_componentWillMount&&n.UNSAFE_componentWillMount(),r!==n.state&&_l.enqueueReplaceState(n,n.state,null),null!==(l=e.updateQueue)&&(Tl(e,l,o,n,t),n.state=e.memoizedState)),"function"===typeof n.componentDidMount&&(e.effectTag|=4)}var Nl=Array.isArray;function Ol(e,r,o){if(null!==(e=o.ref)&&"function"!==typeof e&&"object"!==typeof e){if(o._owner){if(o=o._owner){if(1!==o.tag)throw Error(i(309));var t=o.stateNode}if(!t)throw Error(i(147,e));var n=""+e;return null!==r&&null!==r.ref&&"function"===typeof r.ref&&r.ref._stringRef===n?r.ref:((r=function(e){var r=t.refs;r===Ll&&(r=t.refs={}),null===e?delete r[n]:r[n]=e})._stringRef=n,r)}if("string"!==typeof e)throw Error(i(284));if(!o._owner)throw Error(i(290,e))}return e}function Il(e,r){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(r)?"object with keys {"+Object.keys(r).join(", ")+"}":r,""))}function Xl(e){function r(r,o){if(e){var t=r.lastEffect;null!==t?(t.nextEffect=o,r.lastEffect=o):r.firstEffect=r.lastEffect=o,o.nextEffect=null,o.effectTag=8}}function o(o,t){if(!e)return null;for(;null!==t;)r(o,t),t=t.sibling;return null}function t(e,r){for(e=new Map;null!==r;)null!==r.key?e.set(r.key,r):e.set(r.index,r),r=r.sibling;return e}function n(e,r,o){return(e=zd(e,r)).index=0,e.sibling=null,e}function l(r,o,t){return r.index=t,e?null!==(t=r.alternate)?(t=t.index)<o?(r.effectTag=2,o):t:(r.effectTag=2,o):o}function a(r){return e&&null===r.alternate&&(r.effectTag=2),r}function d(e,r,o,t){return null===r||6!==r.tag?((r=Jd(o,e.mode,t)).return=e,r):((r=n(r,o)).return=e,r)}function m(e,r,o,t){return null!==r&&r.elementType===o.type?((t=n(r,o.props)).ref=Ol(e,r,o),t.return=e,t):((t=Qd(o.type,o.key,o.props,null,e.mode,t)).ref=Ol(e,r,o),t.return=e,t)}function u(e,r,o,t){return null===r||4!==r.tag||r.stateNode.containerInfo!==o.containerInfo||r.stateNode.implementation!==o.implementation?((r=jd(o,e.mode,t)).return=e,r):((r=n(r,o.children||[])).return=e,r)}function s(e,r,o,t,l){return null===r||7!==r.tag?((r=Zd(o,e.mode,t,l)).return=e,r):((r=n(r,o)).return=e,r)}function g(e,r,o){if("string"===typeof r||"number"===typeof r)return(r=Jd(""+r,e.mode,o)).return=e,r;if("object"===typeof r&&null!==r){switch(r.$$typeof){case X:return(o=Qd(r.type,r.key,r.props,null,e.mode,o)).ref=Ol(e,null,r),o.return=e,o;case D:return(r=jd(r,e.mode,o)).return=e,r}if(Nl(r)||Z(r))return(r=Zd(r,e.mode,o,null)).return=e,r;Il(e,r)}return null}function c(e,r,o,t){var n=null!==r?r.key:null;if("string"===typeof o||"number"===typeof o)return null!==n?null:d(e,r,""+o,t);if("object"===typeof o&&null!==o){switch(o.$$typeof){case X:return o.key===n?o.type===F?s(e,r,o.props.children,t,n):m(e,r,o,t):null;case D:return o.key===n?u(e,r,o,t):null}if(Nl(o)||Z(o))return null!==n?null:s(e,r,o,t,null);Il(e,o)}return null}function x(e,r,o,t,n){if("string"===typeof t||"number"===typeof t)return d(r,e=e.get(o)||null,""+t,n);if("object"===typeof t&&null!==t){switch(t.$$typeof){case X:return e=e.get(null===t.key?o:t.key)||null,t.type===F?s(r,e,t.props.children,n,t.key):m(r,e,t,n);case D:return u(r,e=e.get(null===t.key?o:t.key)||null,t,n)}if(Nl(t)||Z(t))return s(r,e=e.get(o)||null,t,n,null);Il(r,t)}return null}function p(n,i,a,d){for(var m=null,u=null,s=i,p=i=0,f=null;null!==s&&p<a.length;p++){s.index>p?(f=s,s=null):f=s.sibling;var S=c(n,s,a[p],d);if(null===S){null===s&&(s=f);break}e&&s&&null===S.alternate&&r(n,s),i=l(S,i,p),null===u?m=S:u.sibling=S,u=S,s=f}if(p===a.length)return o(n,s),m;if(null===s){for(;p<a.length;p++)null!==(s=g(n,a[p],d))&&(i=l(s,i,p),null===u?m=s:u.sibling=s,u=s);return m}for(s=t(n,s);p<a.length;p++)null!==(f=x(s,n,p,a[p],d))&&(e&&null!==f.alternate&&s.delete(null===f.key?p:f.key),i=l(f,i,p),null===u?m=f:u.sibling=f,u=f);return e&&s.forEach((function(e){return r(n,e)})),m}function f(n,a,d,m){var u=Z(d);if("function"!==typeof u)throw Error(i(150));if(null==(d=u.call(d)))throw Error(i(151));for(var s=u=null,p=a,f=a=0,S=null,h=d.next();null!==p&&!h.done;f++,h=d.next()){p.index>f?(S=p,p=null):S=p.sibling;var v=c(n,p,h.value,m);if(null===v){null===p&&(p=S);break}e&&p&&null===v.alternate&&r(n,p),a=l(v,a,f),null===s?u=v:s.sibling=v,s=v,p=S}if(h.done)return o(n,p),u;if(null===p){for(;!h.done;f++,h=d.next())null!==(h=g(n,h.value,m))&&(a=l(h,a,f),null===s?u=h:s.sibling=h,s=h);return u}for(p=t(n,p);!h.done;f++,h=d.next())null!==(h=x(p,n,f,h.value,m))&&(e&&null!==h.alternate&&p.delete(null===h.key?f:h.key),a=l(h,a,f),null===s?u=h:s.sibling=h,s=h);return e&&p.forEach((function(e){return r(n,e)})),u}return function(e,t,l,d){var m="object"===typeof l&&null!==l&&l.type===F&&null===l.key;m&&(l=l.props.children);var u="object"===typeof l&&null!==l;if(u)switch(l.$$typeof){case X:e:{for(u=l.key,m=t;null!==m;){if(m.key===u){if(7===m.tag?l.type===F:m.elementType===l.type){o(e,m.sibling),(t=n(m,l.type===F?l.props.children:l.props)).ref=Ol(e,m,l),t.return=e,e=t;break e}o(e,m);break}r(e,m),m=m.sibling}l.type===F?((t=Zd(l.props.children,e.mode,d,l.key)).return=e,e=t):((d=Qd(l.type,l.key,l.props,null,e.mode,d)).ref=Ol(e,t,l),d.return=e,e=d)}return a(e);case D:e:{for(m=l.key;null!==t;){if(t.key===m){if(4===t.tag&&t.stateNode.containerInfo===l.containerInfo&&t.stateNode.implementation===l.implementation){o(e,t.sibling),(t=n(t,l.children||[])).return=e,e=t;break e}o(e,t);break}r(e,t),t=t.sibling}(t=jd(l,e.mode,d)).return=e,e=t}return a(e)}if("string"===typeof l||"number"===typeof l)return l=""+l,null!==t&&6===t.tag?(o(e,t.sibling),(t=n(t,l)).return=e,e=t):(o(e,t),(t=Jd(l,e.mode,d)).return=e,e=t),a(e);if(Nl(l))return p(e,t,l,d);if(Z(l))return f(e,t,l,d);if(u&&Il(e,l),"undefined"===typeof l&&!m)switch(e.tag){case 1:case 0:throw e=e.type,Error(i(152,e.displayName||e.name||"Component"))}return o(e,t)}}var Dl=Xl(!0),Fl=Xl(!1),$l={},Rl={current:$l},kl={current:$l},Ul={current:$l};function Vl(e){if(e===$l)throw Error(i(174));return e}function Hl(e,r){pn(Ul,r),pn(kl,e),pn(Rl,$l);var o=r.nodeType;switch(o){case 9:case 11:r=(r=r.documentElement)?r.namespaceURI:Re(null,"");break;default:r=Re(r=(o=8===o?r.parentNode:r).namespaceURI||null,o=o.tagName)}xn(Rl),pn(Rl,r)}function Yl(e){xn(Rl),xn(kl),xn(Ul)}function Wl(e){Vl(Ul.current);var r=Vl(Rl.current),o=Re(r,e.type);r!==o&&(pn(kl,e),pn(Rl,o))}function Kl(e){kl.current===e&&(xn(Rl),xn(kl))}var zl={current:0};function Ql(e){for(var r=e;null!==r;){if(13===r.tag){var o=r.memoizedState;if(null!==o&&(null===(o=o.dehydrated)||o.data===jo||o.data===qo))return r}else if(19===r.tag&&void 0!==r.memoizedProps.revealOrder){if(0!==(64&r.effectTag))return r}else if(null!==r.child){r.child.return=r,r=r.child;continue}if(r===e)break;for(;null===r.sibling;){if(null===r.return||r.return===e)return null;r=r.return}r.sibling.return=r.return,r=r.sibling}return null}function Zl(e,r){return{responder:e,props:r}}var Jl=N.ReactCurrentDispatcher,jl=N.ReactCurrentBatchConfig,ql=0,ei=null,ri=null,oi=null,ti=null,ni=null,li=null,ii=0,ai=null,di=0,mi=!1,ui=null,si=0;function gi(){throw Error(i(321))}function ci(e,r){if(null===r)return!1;for(var o=0;o<r.length&&o<e.length;o++)if(!en(e[o],r[o]))return!1;return!0}function xi(e,r,o,t,n,l){if(ql=l,ei=r,oi=null!==e?e.memoizedState:null,Jl.current=null===oi?Ni:Oi,r=o(t,n),mi){do{mi=!1,si+=1,oi=null!==e?e.memoizedState:null,li=ti,ai=ni=ri=null,Jl.current=Oi,r=o(t,n)}while(mi);ui=null,si=0}if(Jl.current=Gi,(e=ei).memoizedState=ti,e.expirationTime=ii,e.updateQueue=ai,e.effectTag|=di,e=null!==ri&&null!==ri.next,ql=0,li=ni=ti=oi=ri=ei=null,ii=0,ai=null,di=0,e)throw Error(i(300));return r}function pi(){Jl.current=Gi,ql=0,li=ni=ti=oi=ri=ei=null,ii=0,ai=null,di=0,mi=!1,ui=null,si=0}function fi(){var e={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return null===ni?ti=ni=e:ni=ni.next=e,ni}function Si(){if(null!==li)li=(ni=li).next,oi=null!==(ri=oi)?ri.next:null;else{if(null===oi)throw Error(i(310));var e={memoizedState:(ri=oi).memoizedState,baseState:ri.baseState,queue:ri.queue,baseUpdate:ri.baseUpdate,next:null};ni=null===ni?ti=e:ni.next=e,oi=ri.next}return ni}function hi(e,r){return"function"===typeof r?r(e):r}function vi(e){var r=Si(),o=r.queue;if(null===o)throw Error(i(311));if(o.lastRenderedReducer=e,0<si){var t=o.dispatch;if(null!==ui){var n=ui.get(o);if(void 0!==n){ui.delete(o);var l=r.memoizedState;do{l=e(l,n.action),n=n.next}while(null!==n);return en(l,r.memoizedState)||(Yi=!0),r.memoizedState=l,r.baseUpdate===o.last&&(r.baseState=l),o.lastRenderedState=l,[l,t]}}return[r.memoizedState,t]}t=o.last;var a=r.baseUpdate;if(l=r.baseState,null!==a?(null!==t&&(t.next=null),t=a.next):t=null!==t?t.next:null,null!==t){var d=n=null,m=t,u=!1;do{var s=m.expirationTime;s<ql?(u||(u=!0,d=a,n=l),s>ii&&_d(ii=s)):(Ed(s,m.suspenseConfig),l=m.eagerReducer===e?m.eagerState:e(l,m.action)),a=m,m=m.next}while(null!==m&&m!==t);u||(d=a,n=l),en(l,r.memoizedState)||(Yi=!0),r.memoizedState=l,r.baseUpdate=d,r.baseState=n,o.lastRenderedState=l}return[r.memoizedState,o.dispatch]}function Ai(e){var r=fi();return"function"===typeof e&&(e=e()),r.memoizedState=r.baseState=e,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:hi,lastRenderedState:e}).dispatch=Ci.bind(null,ei,e),[r.memoizedState,e]}function bi(e){return vi(hi)}function Ti(e,r,o,t){return e={tag:e,create:r,destroy:o,deps:t,next:null},null===ai?(ai={lastEffect:null}).lastEffect=e.next=e:null===(r=ai.lastEffect)?ai.lastEffect=e.next=e:(o=r.next,r.next=e,e.next=o,ai.lastEffect=e),e}function Mi(e,r,o,t){var n=fi();di|=e,n.memoizedState=Ti(r,o,void 0,void 0===t?null:t)}function Pi(e,r,o,t){var n=Si();t=void 0===t?null:t;var l=void 0;if(null!==ri){var i=ri.memoizedState;if(l=i.destroy,null!==t&&ci(t,i.deps))return void Ti(0,o,l,t)}di|=e,n.memoizedState=Ti(r,o,l,t)}function yi(e,r){return Mi(516,192,e,r)}function Li(e,r){return Pi(516,192,e,r)}function Ei(e,r){return"function"===typeof r?(e=e(),r(e),function(){r(null)}):null!==r&&void 0!==r?(e=e(),r.current=e,function(){r.current=null}):void 0}function _i(){}function wi(e,r){return fi().memoizedState=[e,void 0===r?null:r],e}function Bi(e,r){var o=Si();r=void 0===r?null:r;var t=o.memoizedState;return null!==t&&null!==r&&ci(r,t[1])?t[0]:(o.memoizedState=[e,r],e)}function Ci(e,r,o){if(!(25>si))throw Error(i(301));var t=e.alternate;if(e===ei||null!==t&&t===ei)if(mi=!0,e={expirationTime:ql,suspenseConfig:null,action:o,eagerReducer:null,eagerState:null,next:null},null===ui&&(ui=new Map),void 0===(o=ui.get(r)))ui.set(r,e);else{for(r=o;null!==r.next;)r=r.next;r.next=e}else{var n=xd(),l=yl.suspense;l={expirationTime:n=pd(n,e,l),suspenseConfig:l,action:o,eagerReducer:null,eagerState:null,next:null};var a=r.last;if(null===a)l.next=l;else{var d=a.next;null!==d&&(l.next=d),a.next=l}if(r.last=l,0===e.expirationTime&&(null===t||0===t.expirationTime)&&null!==(t=r.lastRenderedReducer))try{var m=r.lastRenderedState,u=t(m,o);if(l.eagerReducer=t,l.eagerState=u,en(u,m))return}catch(s){}fd(e,n)}}var Gi={readContext:gl,useCallback:gi,useContext:gi,useEffect:gi,useImperativeHandle:gi,useLayoutEffect:gi,useMemo:gi,useReducer:gi,useRef:gi,useState:gi,useDebugValue:gi,useResponder:gi,useDeferredValue:gi,useTransition:gi},Ni={readContext:gl,useCallback:wi,useContext:gl,useEffect:yi,useImperativeHandle:function(e,r,o){return o=null!==o&&void 0!==o?o.concat([e]):null,Mi(4,36,Ei.bind(null,r,e),o)},useLayoutEffect:function(e,r){return Mi(4,36,e,r)},useMemo:function(e,r){var o=fi();return r=void 0===r?null:r,e=e(),o.memoizedState=[e,r],e},useReducer:function(e,r,o){var t=fi();return r=void 0!==o?o(r):r,t.memoizedState=t.baseState=r,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:r}).dispatch=Ci.bind(null,ei,e),[t.memoizedState,e]},useRef:function(e){return e={current:e},fi().memoizedState=e},useState:Ai,useDebugValue:_i,useResponder:Zl,useDeferredValue:function(e,r){var o=Ai(e),t=o[0],n=o[1];return yi((function(){l.unstable_next((function(){var o=jl.suspense;jl.suspense=void 0===r?null:r;try{n(e)}finally{jl.suspense=o}}))}),[e,r]),t},useTransition:function(e){var r=Ai(!1),o=r[0],t=r[1];return[wi((function(r){t(!0),l.unstable_next((function(){var o=jl.suspense;jl.suspense=void 0===e?null:e;try{t(!1),r()}finally{jl.suspense=o}}))}),[e,o]),o]}},Oi={readContext:gl,useCallback:Bi,useContext:gl,useEffect:Li,useImperativeHandle:function(e,r,o){return o=null!==o&&void 0!==o?o.concat([e]):null,Pi(4,36,Ei.bind(null,r,e),o)},useLayoutEffect:function(e,r){return Pi(4,36,e,r)},useMemo:function(e,r){var o=Si();r=void 0===r?null:r;var t=o.memoizedState;return null!==t&&null!==r&&ci(r,t[1])?t[0]:(e=e(),o.memoizedState=[e,r],e)},useReducer:vi,useRef:function(){return Si().memoizedState},useState:bi,useDebugValue:_i,useResponder:Zl,useDeferredValue:function(e,r){var o=bi(),t=o[0],n=o[1];return Li((function(){l.unstable_next((function(){var o=jl.suspense;jl.suspense=void 0===r?null:r;try{n(e)}finally{jl.suspense=o}}))}),[e,r]),t},useTransition:function(e){var r=bi(),o=r[0],t=r[1];return[Bi((function(r){t(!0),l.unstable_next((function(){var o=jl.suspense;jl.suspense=void 0===e?null:e;try{t(!1),r()}finally{jl.suspense=o}}))}),[e,o]),o]}},Ii=null,Xi=null,Di=!1;function Fi(e,r){var o=Wd(5,null,null,0);o.elementType="DELETED",o.type="DELETED",o.stateNode=r,o.return=e,o.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=o,e.lastEffect=o):e.firstEffect=e.lastEffect=o}function $i(e,r){switch(e.tag){case 5:var o=e.type;return null!==(r=1!==r.nodeType||o.toLowerCase()!==r.nodeName.toLowerCase()?null:r)&&(e.stateNode=r,!0);case 6:return null!==(r=""===e.pendingProps||3!==r.nodeType?null:r)&&(e.stateNode=r,!0);case 13:default:return!1}}function Ri(e){if(Di){var r=Xi;if(r){var o=r;if(!$i(e,r)){if(!(r=it(o.nextSibling))||!$i(e,r))return e.effectTag=-1025&e.effectTag|2,Di=!1,void(Ii=e);Fi(Ii,o)}Ii=e,Xi=it(r.firstChild)}else e.effectTag=-1025&e.effectTag|2,Di=!1,Ii=e}}function ki(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Ii=e}function Ui(e){if(e!==Ii)return!1;if(!Di)return ki(e),Di=!0,!1;var r=e.type;if(5!==e.tag||"head"!==r&&"body"!==r&&!tt(r,e.memoizedProps))for(r=Xi;r;)Fi(e,r),r=it(r.nextSibling);if(ki(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,r=0;e;){if(8===e.nodeType){var o=e.data;if(o===Jo){if(0===r){Xi=it(e.nextSibling);break e}r--}else o!==Zo&&o!==qo&&o!==jo||r++}e=e.nextSibling}Xi=null}}else Xi=Ii?it(e.stateNode.nextSibling):null;return!0}function Vi(){Xi=Ii=null,Di=!1}var Hi=N.ReactCurrentOwner,Yi=!1;function Wi(e,r,o,t){r.child=null===e?Fl(r,null,o,t):Dl(r,e.child,o,t)}function Ki(e,r,o,t,n){o=o.render;var l=r.ref;return sl(r,n),t=xi(e,r,o,t,l,n),null===e||Yi?(r.effectTag|=1,Wi(e,r,t,n),r.child):(r.updateQueue=e.updateQueue,r.effectTag&=-517,e.expirationTime<=n&&(e.expirationTime=0),ua(e,r,n))}function zi(e,r,o,t,n,l){if(null===e){var i=o.type;return"function"!==typeof i||Kd(i)||void 0!==i.defaultProps||null!==o.compare||void 0!==o.defaultProps?((e=Qd(o.type,null,t,null,r.mode,l)).ref=r.ref,e.return=r,r.child=e):(r.tag=15,r.type=i,Qi(e,r,i,t,n,l))}return i=e.child,n<l&&(n=i.memoizedProps,(o=null!==(o=o.compare)?o:on)(n,t)&&e.ref===r.ref)?ua(e,r,l):(r.effectTag|=1,(e=zd(i,t)).ref=r.ref,e.return=r,r.child=e)}function Qi(e,r,o,t,n,l){return null!==e&&on(e.memoizedProps,t)&&e.ref===r.ref&&(Yi=!1,n<l)?ua(e,r,l):Ji(e,r,o,t,l)}function Zi(e,r){var o=r.ref;(null===e&&null!==o||null!==e&&e.ref!==o)&&(r.effectTag|=128)}function Ji(e,r,o,t,n){var l=bn(o)?vn:Sn.current;return l=An(r,l),sl(r,n),o=xi(e,r,o,t,l,n),null===e||Yi?(r.effectTag|=1,Wi(e,r,o,n),r.child):(r.updateQueue=e.updateQueue,r.effectTag&=-517,e.expirationTime<=n&&(e.expirationTime=0),ua(e,r,n))}function ji(e,r,o,t,n){if(bn(o)){var l=!0;Ln(r)}else l=!1;if(sl(r,n),null===r.stateNode)null!==e&&(e.alternate=null,r.alternate=null,r.effectTag|=2),Bl(r,o,t),Gl(r,o,t,n),t=!0;else if(null===e){var i=r.stateNode,a=r.memoizedProps;i.props=a;var d=i.context,m=o.contextType;"object"===typeof m&&null!==m?m=gl(m):m=An(r,m=bn(o)?vn:Sn.current);var u=o.getDerivedStateFromProps,s="function"===typeof u||"function"===typeof i.getSnapshotBeforeUpdate;s||"function"!==typeof i.UNSAFE_componentWillReceiveProps&&"function"!==typeof i.componentWillReceiveProps||(a!==t||d!==m)&&Cl(r,i,t,m),cl=!1;var g=r.memoizedState;d=i.state=g;var c=r.updateQueue;null!==c&&(Tl(r,c,t,i,n),d=r.memoizedState),a!==t||g!==d||hn.current||cl?("function"===typeof u&&(El(r,o,u,t),d=r.memoizedState),(a=cl||wl(r,o,a,t,g,d,m))?(s||"function"!==typeof i.UNSAFE_componentWillMount&&"function"!==typeof i.componentWillMount||("function"===typeof i.componentWillMount&&i.componentWillMount(),"function"===typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"===typeof i.componentDidMount&&(r.effectTag|=4)):("function"===typeof i.componentDidMount&&(r.effectTag|=4),r.memoizedProps=t,r.memoizedState=d),i.props=t,i.state=d,i.context=m,t=a):("function"===typeof i.componentDidMount&&(r.effectTag|=4),t=!1)}else i=r.stateNode,a=r.memoizedProps,i.props=r.type===r.elementType?a:ol(r.type,a),d=i.context,"object"===typeof(m=o.contextType)&&null!==m?m=gl(m):m=An(r,m=bn(o)?vn:Sn.current),(s="function"===typeof(u=o.getDerivedStateFromProps)||"function"===typeof i.getSnapshotBeforeUpdate)||"function"!==typeof i.UNSAFE_componentWillReceiveProps&&"function"!==typeof i.componentWillReceiveProps||(a!==t||d!==m)&&Cl(r,i,t,m),cl=!1,d=r.memoizedState,g=i.state=d,null!==(c=r.updateQueue)&&(Tl(r,c,t,i,n),g=r.memoizedState),a!==t||d!==g||hn.current||cl?("function"===typeof u&&(El(r,o,u,t),g=r.memoizedState),(u=cl||wl(r,o,a,t,d,g,m))?(s||"function"!==typeof i.UNSAFE_componentWillUpdate&&"function"!==typeof i.componentWillUpdate||("function"===typeof i.componentWillUpdate&&i.componentWillUpdate(t,g,m),"function"===typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(t,g,m)),"function"===typeof i.componentDidUpdate&&(r.effectTag|=4),"function"===typeof i.getSnapshotBeforeUpdate&&(r.effectTag|=256)):("function"!==typeof i.componentDidUpdate||a===e.memoizedProps&&d===e.memoizedState||(r.effectTag|=4),"function"!==typeof i.getSnapshotBeforeUpdate||a===e.memoizedProps&&d===e.memoizedState||(r.effectTag|=256),r.memoizedProps=t,r.memoizedState=g),i.props=t,i.state=g,i.context=m,t=u):("function"!==typeof i.componentDidUpdate||a===e.memoizedProps&&d===e.memoizedState||(r.effectTag|=4),"function"!==typeof i.getSnapshotBeforeUpdate||a===e.memoizedProps&&d===e.memoizedState||(r.effectTag|=256),t=!1);return qi(e,r,o,t,l,n)}function qi(e,r,o,t,n,l){Zi(e,r);var i=0!==(64&r.effectTag);if(!t&&!i)return n&&En(r,o,!1),ua(e,r,l);t=r.stateNode,Hi.current=r;var a=i&&"function"!==typeof o.getDerivedStateFromError?null:t.render();return r.effectTag|=1,null!==e&&i?(r.child=Dl(r,e.child,null,l),r.child=Dl(r,null,a,l)):Wi(e,r,a,l),r.memoizedState=t.state,n&&En(r,o,!0),r.child}function ea(e){var r=e.stateNode;r.pendingContext?Pn(0,r.pendingContext,r.pendingContext!==r.context):r.context&&Pn(0,r.context,!1),Hl(e,r.containerInfo)}var ra,oa,ta,na,la={dehydrated:null,retryTime:0};function ia(e,r,o){var t,n=r.mode,l=r.pendingProps,i=zl.current,a=!1;if((t=0!==(64&r.effectTag))||(t=0!==(2&i)&&(null===e||null!==e.memoizedState)),t?(a=!0,r.effectTag&=-65):null!==e&&null===e.memoizedState||void 0===l.fallback||!0===l.unstable_avoidThisFallback||(i|=1),pn(zl,1&i),null===e){if(void 0!==l.fallback&&Ri(r),a){if(a=l.fallback,(l=Zd(null,n,0,null)).return=r,0===(2&r.mode))for(e=null!==r.memoizedState?r.child.child:r.child,l.child=e;null!==e;)e.return=l,e=e.sibling;return(o=Zd(a,n,o,null)).return=r,l.sibling=o,r.memoizedState=la,r.child=l,o}return n=l.children,r.memoizedState=null,r.child=Fl(r,null,n,o)}if(null!==e.memoizedState){if(n=(e=e.child).sibling,a){if(l=l.fallback,(o=zd(e,e.pendingProps)).return=r,0===(2&r.mode)&&(a=null!==r.memoizedState?r.child.child:r.child)!==e.child)for(o.child=a;null!==a;)a.return=o,a=a.sibling;return(n=zd(n,l,n.expirationTime)).return=r,o.sibling=n,o.childExpirationTime=0,r.memoizedState=la,r.child=o,n}return o=Dl(r,e.child,l.children,o),r.memoizedState=null,r.child=o}if(e=e.child,a){if(a=l.fallback,(l=Zd(null,n,0,null)).return=r,l.child=e,null!==e&&(e.return=l),0===(2&r.mode))for(e=null!==r.memoizedState?r.child.child:r.child,l.child=e;null!==e;)e.return=l,e=e.sibling;return(o=Zd(a,n,o,null)).return=r,l.sibling=o,o.effectTag|=2,l.childExpirationTime=0,r.memoizedState=la,r.child=l,o}return r.memoizedState=null,r.child=Dl(r,e,l.children,o)}function aa(e,r){e.expirationTime<r&&(e.expirationTime=r);var o=e.alternate;null!==o&&o.expirationTime<r&&(o.expirationTime=r),ul(e.return,r)}function da(e,r,o,t,n,l){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:r,rendering:null,last:t,tail:o,tailExpiration:0,tailMode:n,lastEffect:l}:(i.isBackwards=r,i.rendering=null,i.last=t,i.tail=o,i.tailExpiration=0,i.tailMode=n,i.lastEffect=l)}function ma(e,r,o){var t=r.pendingProps,n=t.revealOrder,l=t.tail;if(Wi(e,r,t.children,o),0!==(2&(t=zl.current)))t=1&t|2,r.effectTag|=64;else{if(null!==e&&0!==(64&e.effectTag))e:for(e=r.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&aa(e,o);else if(19===e.tag)aa(e,o);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===r)break e;for(;null===e.sibling;){if(null===e.return||e.return===r)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}t&=1}if(pn(zl,t),0===(2&r.mode))r.memoizedState=null;else switch(n){case"forwards":for(o=r.child,n=null;null!==o;)null!==(e=o.alternate)&&null===Ql(e)&&(n=o),o=o.sibling;null===(o=n)?(n=r.child,r.child=null):(n=o.sibling,o.sibling=null),da(r,!1,n,o,l,r.lastEffect);break;case"backwards":for(o=null,n=r.child,r.child=null;null!==n;){if(null!==(e=n.alternate)&&null===Ql(e)){r.child=n;break}e=n.sibling,n.sibling=o,o=n,n=e}da(r,!0,o,null,l,r.lastEffect);break;case"together":da(r,!1,null,null,void 0,r.lastEffect);break;default:r.memoizedState=null}return r.child}function ua(e,r,o){null!==e&&(r.dependencies=e.dependencies);var t=r.expirationTime;if(0!==t&&_d(t),r.childExpirationTime<o)return null;if(null!==e&&r.child!==e.child)throw Error(i(153));if(null!==r.child){for(o=zd(e=r.child,e.pendingProps,e.expirationTime),r.child=o,o.return=r;null!==e.sibling;)e=e.sibling,(o=o.sibling=zd(e,e.pendingProps,e.expirationTime)).return=r;o.sibling=null}return r.child}function sa(e){e.effectTag|=4}function ga(e,r){switch(e.tailMode){case"hidden":r=e.tail;for(var o=null;null!==r;)null!==r.alternate&&(o=r),r=r.sibling;null===o?e.tail=null:o.sibling=null;break;case"collapsed":o=e.tail;for(var t=null;null!==o;)null!==o.alternate&&(t=o),o=o.sibling;null===t?r||null===e.tail?e.tail=null:e.tail.sibling=null:t.sibling=null}}function ca(e){switch(e.tag){case 1:bn(e.type)&&Tn();var r=e.effectTag;return 4096&r?(e.effectTag=-4097&r|64,e):null;case 3:if(Yl(),Mn(),0!==(64&(r=e.effectTag)))throw Error(i(285));return e.effectTag=-4097&r|64,e;case 5:return Kl(e),null;case 13:return xn(zl),4096&(r=e.effectTag)?(e.effectTag=-4097&r|64,e):null;case 19:return xn(zl),null;case 4:return Yl(),null;case 10:return ml(e),null;default:return null}}function xa(e,r){return{value:e,source:r,stack:j(r)}}ra=function(e,r){for(var o=r.child;null!==o;){if(5===o.tag||6===o.tag)e.appendChild(o.stateNode);else if(4!==o.tag&&null!==o.child){o.child.return=o,o=o.child;continue}if(o===r)break;for(;null===o.sibling;){if(null===o.return||o.return===r)return;o=o.return}o.sibling.return=o.return,o=o.sibling}},oa=function(){},ta=function(e,r,o,t,l){var i=e.memoizedProps;if(i!==t){var a,d,m=r.stateNode;switch(Vl(Rl.current),e=null,o){case"input":i=Le(m,i),t=Le(m,t),e=[];break;case"option":i=Ge(m,i),t=Ge(m,t),e=[];break;case"select":i=n({},i,{value:void 0}),t=n({},t,{value:void 0}),e=[];break;case"textarea":i=Oe(m,i),t=Oe(m,t),e=[];break;default:"function"!==typeof i.onClick&&"function"===typeof t.onClick&&(m.onclick=Ho)}for(a in ko(o,t),o=null,i)if(!t.hasOwnProperty(a)&&i.hasOwnProperty(a)&&null!=i[a])if("style"===a)for(d in m=i[a])m.hasOwnProperty(d)&&(o||(o={}),o[d]="");else"dangerouslySetInnerHTML"!==a&&"children"!==a&&"suppressContentEditableWarning"!==a&&"suppressHydrationWarning"!==a&&"autoFocus"!==a&&(c.hasOwnProperty(a)?e||(e=[]):(e=e||[]).push(a,null));for(a in t){var u=t[a];if(m=null!=i?i[a]:void 0,t.hasOwnProperty(a)&&u!==m&&(null!=u||null!=m))if("style"===a)if(m){for(d in m)!m.hasOwnProperty(d)||u&&u.hasOwnProperty(d)||(o||(o={}),o[d]="");for(d in u)u.hasOwnProperty(d)&&m[d]!==u[d]&&(o||(o={}),o[d]=u[d])}else o||(e||(e=[]),e.push(a,o)),o=u;else"dangerouslySetInnerHTML"===a?(u=u?u.__html:void 0,m=m?m.__html:void 0,null!=u&&m!==u&&(e=e||[]).push(a,""+u)):"children"===a?m===u||"string"!==typeof u&&"number"!==typeof u||(e=e||[]).push(a,""+u):"suppressContentEditableWarning"!==a&&"suppressHydrationWarning"!==a&&(c.hasOwnProperty(a)?(null!=u&&Vo(l,a),e||m===u||(e=[])):(e=e||[]).push(a,u))}o&&(e=e||[]).push("style",o),l=e,(r.updateQueue=l)&&sa(r)}},na=function(e,r,o,t){o!==t&&sa(r)};var pa="function"===typeof WeakSet?WeakSet:Set;function fa(e,r){var o=r.source,t=r.stack;null===t&&null!==o&&(t=j(o)),null!==o&&J(o.type),r=r.value,null!==e&&1===e.tag&&J(e.type);try{console.error(r)}catch(n){setTimeout((function(){throw n}))}}function Sa(e){var r=e.ref;if(null!==r)if("function"===typeof r)try{r(null)}catch(o){Rd(e,o)}else r.current=null}function ha(e,r){switch(r.tag){case 0:case 11:case 15:va(2,0,r);break;case 1:if(256&r.effectTag&&null!==e){var o=e.memoizedProps,t=e.memoizedState;r=(e=r.stateNode).getSnapshotBeforeUpdate(r.elementType===r.type?o:ol(r.type,o),t),e.__reactInternalSnapshotBeforeUpdate=r}break;case 3:case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}function va(e,r,o){if(null!==(o=null!==(o=o.updateQueue)?o.lastEffect:null)){var t=o=o.next;do{if(0!==(t.tag&e)){var n=t.destroy;t.destroy=void 0,void 0!==n&&n()}0!==(t.tag&r)&&(n=t.create,t.destroy=n()),t=t.next}while(t!==o)}}function Aa(e,r,o){switch("function"===typeof Hd&&Hd(r),r.tag){case 0:case 11:case 14:case 15:if(null!==(e=r.updateQueue)&&null!==(e=e.lastEffect)){var t=e.next;Qn(97<o?97:o,(function(){var e=t;do{var o=e.destroy;if(void 0!==o){var n=r;try{o()}catch(l){Rd(n,l)}}e=e.next}while(e!==t)}))}break;case 1:Sa(r),"function"===typeof(o=r.stateNode).componentWillUnmount&&function(e,r){try{r.props=e.memoizedProps,r.state=e.memoizedState,r.componentWillUnmount()}catch(o){Rd(e,o)}}(r,o);break;case 5:Sa(r);break;case 4:Pa(e,r,o)}}function ba(e){var r=e.alternate;e.return=null,e.child=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.alternate=null,e.firstEffect=null,e.lastEffect=null,e.pendingProps=null,e.memoizedProps=null,null!==r&&ba(r)}function Ta(e){return 5===e.tag||3===e.tag||4===e.tag}function Ma(e){e:{for(var r=e.return;null!==r;){if(Ta(r)){var o=r;break e}r=r.return}throw Error(i(160))}switch(r=o.stateNode,o.tag){case 5:var t=!1;break;case 3:case 4:r=r.containerInfo,t=!0;break;default:throw Error(i(161))}16&o.effectTag&&(Ve(r,""),o.effectTag&=-17);e:r:for(o=e;;){for(;null===o.sibling;){if(null===o.return||Ta(o.return)){o=null;break e}o=o.return}for(o.sibling.return=o.return,o=o.sibling;5!==o.tag&&6!==o.tag&&18!==o.tag;){if(2&o.effectTag)continue r;if(null===o.child||4===o.tag)continue r;o.child.return=o,o=o.child}if(!(2&o.effectTag)){o=o.stateNode;break e}}for(var n=e;;){var l=5===n.tag||6===n.tag;if(l){var a=l?n.stateNode:n.stateNode.instance;if(o)if(t){var d=a;a=o,8===(l=r).nodeType?l.parentNode.insertBefore(d,a):l.insertBefore(d,a)}else r.insertBefore(a,o);else t?(8===(d=r).nodeType?(l=d.parentNode).insertBefore(a,d):(l=d).appendChild(a),null!==(d=d._reactRootContainer)&&void 0!==d||null!==l.onclick||(l.onclick=Ho)):r.appendChild(a)}else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function Pa(e,r,o){for(var t,n,l=r,a=!1;;){if(!a){a=l.return;e:for(;;){if(null===a)throw Error(i(160));switch(t=a.stateNode,a.tag){case 5:n=!1;break e;case 3:case 4:t=t.containerInfo,n=!0;break e}a=a.return}a=!0}if(5===l.tag||6===l.tag){e:for(var d=e,m=l,u=o,s=m;;)if(Aa(d,s,u),null!==s.child&&4!==s.tag)s.child.return=s,s=s.child;else{if(s===m)break;for(;null===s.sibling;){if(null===s.return||s.return===m)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}n?(d=t,m=l.stateNode,8===d.nodeType?d.parentNode.removeChild(m):d.removeChild(m)):t.removeChild(l.stateNode)}else if(4===l.tag){if(null!==l.child){t=l.stateNode.containerInfo,n=!0,l.child.return=l,l=l.child;continue}}else if(Aa(e,l,o),null!==l.child){l.child.return=l,l=l.child;continue}if(l===r)break;for(;null===l.sibling;){if(null===l.return||l.return===r)return;4===(l=l.return).tag&&(a=!1)}l.sibling.return=l.return,l=l.sibling}}function ya(e,r){switch(r.tag){case 0:case 11:case 14:case 15:va(4,8,r);break;case 1:break;case 5:var o=r.stateNode;if(null!=o){var t=r.memoizedProps,n=null!==e?e.memoizedProps:t;e=r.type;var l=r.updateQueue;if(r.updateQueue=null,null!==l){for(o[ut]=t,"input"===e&&"radio"===t.type&&null!=t.name&&_e(o,t),Uo(e,n),r=Uo(e,t),n=0;n<l.length;n+=2){var a=l[n],d=l[n+1];"style"===a?$o(o,d):"dangerouslySetInnerHTML"===a?Ue(o,d):"children"===a?Ve(o,d):Te(o,a,d,r)}switch(e){case"input":we(o,t);break;case"textarea":Xe(o,t);break;case"select":r=o._wrapperState.wasMultiple,o._wrapperState.wasMultiple=!!t.multiple,null!=(e=t.value)?Ne(o,!!t.multiple,e,!1):r!==!!t.multiple&&(null!=t.defaultValue?Ne(o,!!t.multiple,t.defaultValue,!0):Ne(o,!!t.multiple,t.multiple?[]:"",!1))}}}break;case 6:if(null===r.stateNode)throw Error(i(162));r.stateNode.nodeValue=r.memoizedProps;break;case 3:(r=r.stateNode).hydrate&&(r.hydrate=!1,yr(r.containerInfo));break;case 12:break;case 13:if(o=r,null===r.memoizedState?t=!1:(t=!0,o=r.child,rd=Wn()),null!==o)e:for(e=o;;){if(5===e.tag)l=e.stateNode,t?"function"===typeof(l=l.style).setProperty?l.setProperty("display","none","important"):l.display="none":(l=e.stateNode,n=void 0!==(n=e.memoizedProps.style)&&null!==n&&n.hasOwnProperty("display")?n.display:null,l.style.display=Fo("display",n));else if(6===e.tag)e.stateNode.nodeValue=t?"":e.memoizedProps;else{if(13===e.tag&&null!==e.memoizedState&&null===e.memoizedState.dehydrated){(l=e.child.sibling).return=e,e=l;continue}if(null!==e.child){e.child.return=e,e=e.child;continue}}if(e===o)break e;for(;null===e.sibling;){if(null===e.return||e.return===o)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}La(r);break;case 19:La(r);break;case 17:case 20:case 21:break;default:throw Error(i(163))}}function La(e){var r=e.updateQueue;if(null!==r){e.updateQueue=null;var o=e.stateNode;null===o&&(o=e.stateNode=new pa),r.forEach((function(r){var t=Ud.bind(null,e,r);o.has(r)||(o.add(r),r.then(t,t))}))}}var Ea="function"===typeof WeakMap?WeakMap:Map;function _a(e,r,o){(o=fl(o,null)).tag=3,o.payload={element:null};var t=r.value;return o.callback=function(){nd||(nd=!0,ld=t),fa(e,r)},o}function wa(e,r,o){(o=fl(o,null)).tag=3;var t=e.type.getDerivedStateFromError;if("function"===typeof t){var n=r.value;o.payload=function(){return fa(e,r),t(n)}}var l=e.stateNode;return null!==l&&"function"===typeof l.componentDidCatch&&(o.callback=function(){"function"!==typeof t&&(null===id?id=new Set([this]):id.add(this),fa(e,r));var o=r.stack;this.componentDidCatch(r.value,{componentStack:null!==o?o:""})}),o}var Ba,Ca=Math.ceil,Ga=N.ReactCurrentDispatcher,Na=N.ReactCurrentOwner,Oa=0,Ia=8,Xa=16,Da=32,Fa=0,$a=1,Ra=2,ka=3,Ua=4,Va=5,Ha=Oa,Ya=null,Wa=null,Ka=0,za=Fa,Qa=null,Za=1073741823,Ja=1073741823,ja=null,qa=0,ed=!1,rd=0,od=500,td=null,nd=!1,ld=null,id=null,ad=!1,dd=null,md=90,ud=null,sd=0,gd=null,cd=0;function xd(){return(Ha&(Xa|Da))!==Oa?1073741821-(Wn()/10|0):0!==cd?cd:cd=1073741821-(Wn()/10|0)}function pd(e,r,o){if(0===(2&(r=r.mode)))return 1073741823;var t=Kn();if(0===(4&r))return 99===t?1073741823:1073741822;if((Ha&Xa)!==Oa)return Ka;if(null!==o)e=rl(e,0|o.timeoutMs||5e3,250);else switch(t){case 99:e=1073741823;break;case 98:e=rl(e,150,100);break;case 97:case 96:e=rl(e,5e3,250);break;case 95:e=2;break;default:throw Error(i(326))}return null!==Ya&&e===Ka&&--e,e}function fd(e,r){if(50<sd)throw sd=0,gd=null,Error(i(185));if(null!==(e=Sd(e,r))){var o=Kn();1073741823===r?(Ha&Ia)!==Oa&&(Ha&(Xa|Da))===Oa?bd(e):(vd(e),Ha===Oa&&jn()):vd(e),(4&Ha)===Oa||98!==o&&99!==o||(null===ud?ud=new Map([[e,r]]):(void 0===(o=ud.get(e))||o>r)&&ud.set(e,r))}}function Sd(e,r){e.expirationTime<r&&(e.expirationTime=r);var o=e.alternate;null!==o&&o.expirationTime<r&&(o.expirationTime=r);var t=e.return,n=null;if(null===t&&3===e.tag)n=e.stateNode;else for(;null!==t;){if(o=t.alternate,t.childExpirationTime<r&&(t.childExpirationTime=r),null!==o&&o.childExpirationTime<r&&(o.childExpirationTime=r),null===t.return&&3===t.tag){n=t.stateNode;break}t=t.return}return null!==n&&(Ya===n&&(_d(r),za===Ua&&rm(n,Ka)),om(n,r)),n}function hd(e){var r=e.lastExpiredTime;return 0!==r?r:em(e,r=e.firstPendingTime)?(r=e.lastPingedTime)>(e=e.nextKnownPendingLevel)?r:e:r}function vd(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=Jn(bd.bind(null,e));else{var r=hd(e),o=e.callbackNode;if(0===r)null!==o&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var t=xd();if(1073741823===r?t=99:1===r||2===r?t=95:t=0>=(t=10*(1073741821-r)-10*(1073741821-t))?99:250>=t?98:5250>=t?97:95,null!==o){var n=e.callbackPriority;if(e.callbackExpirationTime===r&&n>=t)return;o!==Rn&&Bn(o)}e.callbackExpirationTime=r,e.callbackPriority=t,r=1073741823===r?Jn(bd.bind(null,e)):Zn(t,Ad.bind(null,e),{timeout:10*(1073741821-r)-Wn()}),e.callbackNode=r}}}function Ad(e,r){if(cd=0,r)return tm(e,r=xd()),vd(e),null;var o=hd(e);if(0!==o){if(r=e.callbackNode,(Ha&(Xa|Da))!==Oa)throw Error(i(327));if(Dd(),e===Ya&&o===Ka||Pd(e,o),null!==Wa){var t=Ha;Ha|=Xa;for(var n=Ld();;)try{Bd();break}catch(d){yd(e,d)}if(al(),Ha=t,Ga.current=n,za===$a)throw r=Qa,Pd(e,o),rm(e,o),vd(e),r;if(null===Wa)switch(n=e.finishedWork=e.current.alternate,e.finishedExpirationTime=o,t=za,Ya=null,t){case Fa:case $a:throw Error(i(345));case Ra:tm(e,2<o?2:o);break;case ka:if(rm(e,o),o===(t=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=Nd(n)),1073741823===Za&&10<(n=rd+od-Wn())){if(ed){var l=e.lastPingedTime;if(0===l||l>=o){e.lastPingedTime=o,Pd(e,o);break}}if(0!==(l=hd(e))&&l!==o)break;if(0!==t&&t!==o){e.lastPingedTime=t;break}e.timeoutHandle=nt(Od.bind(null,e),n);break}Od(e);break;case Ua:if(rm(e,o),o===(t=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=Nd(n)),ed&&(0===(n=e.lastPingedTime)||n>=o)){e.lastPingedTime=o,Pd(e,o);break}if(0!==(n=hd(e))&&n!==o)break;if(0!==t&&t!==o){e.lastPingedTime=t;break}if(1073741823!==Ja?t=10*(1073741821-Ja)-Wn():1073741823===Za?t=0:(t=10*(1073741821-Za)-5e3,0>(t=(n=Wn())-t)&&(t=0),(o=10*(1073741821-o)-n)<(t=(120>t?120:480>t?480:1080>t?1080:1920>t?1920:3e3>t?3e3:4320>t?4320:1960*Ca(t/1960))-t)&&(t=o)),10<t){e.timeoutHandle=nt(Od.bind(null,e),t);break}Od(e);break;case Va:if(1073741823!==Za&&null!==ja){l=Za;var a=ja;if(0>=(t=0|a.busyMinDurationMs)?t=0:(n=0|a.busyDelayMs,t=(l=Wn()-(10*(1073741821-l)-(0|a.timeoutMs||5e3)))<=n?0:n+t-l),10<t){rm(e,o),e.timeoutHandle=nt(Od.bind(null,e),t);break}}Od(e);break;default:throw Error(i(329))}if(vd(e),e.callbackNode===r)return Ad.bind(null,e)}}return null}function bd(e){var r=e.lastExpiredTime;if(r=0!==r?r:1073741823,e.finishedExpirationTime===r)Od(e);else{if((Ha&(Xa|Da))!==Oa)throw Error(i(327));if(Dd(),e===Ya&&r===Ka||Pd(e,r),null!==Wa){var o=Ha;Ha|=Xa;for(var t=Ld();;)try{wd();break}catch(n){yd(e,n)}if(al(),Ha=o,Ga.current=t,za===$a)throw o=Qa,Pd(e,r),rm(e,r),vd(e),o;if(null!==Wa)throw Error(i(261));e.finishedWork=e.current.alternate,e.finishedExpirationTime=r,Ya=null,Od(e),vd(e)}}return null}function Td(e,r){var o=Ha;Ha|=1;try{return e(r)}finally{(Ha=o)===Oa&&jn()}}function Md(e,r){var o=Ha;Ha&=-2,Ha|=Ia;try{return e(r)}finally{(Ha=o)===Oa&&jn()}}function Pd(e,r){e.finishedWork=null,e.finishedExpirationTime=0;var o=e.timeoutHandle;if(-1!==o&&(e.timeoutHandle=-1,lt(o)),null!==Wa)for(o=Wa.return;null!==o;){var t=o;switch(t.tag){case 1:var n=t.type.childContextTypes;null!==n&&void 0!==n&&Tn();break;case 3:Yl(),Mn();break;case 5:Kl(t);break;case 4:Yl();break;case 13:case 19:xn(zl);break;case 10:ml(t)}o=o.return}Ya=e,Wa=zd(e.current,null),Ka=r,za=Fa,Qa=null,Ja=Za=1073741823,ja=null,qa=0,ed=!1}function yd(e,r){for(;;){try{if(al(),pi(),null===Wa||null===Wa.return)return za=$a,Qa=r,null;e:{var o=e,t=Wa.return,n=Wa,l=r;if(r=Ka,n.effectTag|=2048,n.firstEffect=n.lastEffect=null,null!==l&&"object"===typeof l&&"function"===typeof l.then){var i=l,a=0!==(1&zl.current),d=t;do{var m;if(m=13===d.tag){var u=d.memoizedState;if(null!==u)m=null!==u.dehydrated;else{var s=d.memoizedProps;m=void 0!==s.fallback&&(!0!==s.unstable_avoidThisFallback||!a)}}if(m){var g=d.updateQueue;if(null===g){var c=new Set;c.add(i),d.updateQueue=c}else g.add(i);if(0===(2&d.mode)){if(d.effectTag|=64,n.effectTag&=-2981,1===n.tag)if(null===n.alternate)n.tag=17;else{var x=fl(1073741823,null);x.tag=2,hl(n,x)}n.expirationTime=1073741823;break e}l=void 0,n=r;var p=o.pingCache;if(null===p?(p=o.pingCache=new Ea,l=new Set,p.set(i,l)):void 0===(l=p.get(i))&&(l=new Set,p.set(i,l)),!l.has(n)){l.add(n);var f=kd.bind(null,o,i,n);i.then(f,f)}d.effectTag|=4096,d.expirationTime=r;break e}d=d.return}while(null!==d);l=Error((J(n.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display."+j(n))}za!==Va&&(za=Ra),l=xa(l,n),d=t;do{switch(d.tag){case 3:i=l,d.effectTag|=4096,d.expirationTime=r,vl(d,_a(d,i,r));break e;case 1:i=l;var S=d.type,h=d.stateNode;if(0===(64&d.effectTag)&&("function"===typeof S.getDerivedStateFromError||null!==h&&"function"===typeof h.componentDidCatch&&(null===id||!id.has(h)))){d.effectTag|=4096,d.expirationTime=r,vl(d,wa(d,i,r));break e}}d=d.return}while(null!==d)}Wa=Gd(Wa)}catch(v){r=v;continue}break}}function Ld(){var e=Ga.current;return Ga.current=Gi,null===e?Gi:e}function Ed(e,r){e<Za&&2<e&&(Za=e),null!==r&&e<Ja&&2<e&&(Ja=e,ja=r)}function _d(e){e>qa&&(qa=e)}function wd(){for(;null!==Wa;)Wa=Cd(Wa)}function Bd(){for(;null!==Wa&&!Cn();)Wa=Cd(Wa)}function Cd(e){var r=Ba(e.alternate,e,Ka);return e.memoizedProps=e.pendingProps,null===r&&(r=Gd(e)),Na.current=null,r}function Gd(e){Wa=e;do{var r=Wa.alternate;if(e=Wa.return,0===(2048&Wa.effectTag)){e:{var o=r,t=Ka,l=(r=Wa).pendingProps;switch(r.tag){case 2:case 16:break;case 15:case 0:break;case 1:bn(r.type)&&Tn();break;case 3:Yl(),Mn(),(l=r.stateNode).pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),(null===o||null===o.child)&&Ui(r)&&sa(r),oa(r);break;case 5:Kl(r),t=Vl(Ul.current);var a=r.type;if(null!==o&&null!=r.stateNode)ta(o,r,a,l,t),o.ref!==r.ref&&(r.effectTag|=128);else if(l){var d=Vl(Rl.current);if(Ui(r)){var m=(l=r).stateNode;o=l.type;var u=l.memoizedProps,s=t;switch(m[mt]=l,m[ut]=u,a=void 0,t=m,o){case"iframe":case"object":case"embed":yo("load",t);break;case"video":case"audio":for(m=0;m<qe.length;m++)yo(qe[m],t);break;case"source":yo("error",t);break;case"img":case"image":case"link":yo("error",t),yo("load",t);break;case"form":yo("reset",t),yo("submit",t);break;case"details":yo("toggle",t);break;case"input":Ee(t,u),yo("invalid",t),Vo(s,"onChange");break;case"select":t._wrapperState={wasMultiple:!!u.multiple},yo("invalid",t),Vo(s,"onChange");break;case"textarea":Ie(t,u),yo("invalid",t),Vo(s,"onChange")}for(a in ko(o,u),m=null,u)u.hasOwnProperty(a)&&(d=u[a],"children"===a?"string"===typeof d?t.textContent!==d&&(m=["children",d]):"number"===typeof d&&t.textContent!==""+d&&(m=["children",""+d]):c.hasOwnProperty(a)&&null!=d&&Vo(s,a));switch(o){case"input":Pe(t),Be(t,u,!0);break;case"textarea":Pe(t),De(t);break;case"select":case"option":break;default:"function"===typeof u.onClick&&(t.onclick=Ho)}a=m,l.updateQueue=a,(l=null!==a)&&sa(r)}else{o=r,s=a,u=l,m=9===t.nodeType?t:t.ownerDocument,d===Fe.html&&(d=$e(s)),d===Fe.html?"script"===s?((u=m.createElement("div")).innerHTML="<script><\/script>",m=u.removeChild(u.firstChild)):"string"===typeof u.is?m=m.createElement(s,{is:u.is}):(m=m.createElement(s),"select"===s&&(s=m,u.multiple?s.multiple=!0:u.size&&(s.size=u.size))):m=m.createElementNS(d,s),(u=m)[mt]=o,u[ut]=l,ra(u,r,!1,!1),r.stateNode=u;var g=t,x=Uo(s=a,o=l);switch(s){case"iframe":case"object":case"embed":yo("load",u),t=o;break;case"video":case"audio":for(t=0;t<qe.length;t++)yo(qe[t],u);t=o;break;case"source":yo("error",u),t=o;break;case"img":case"image":case"link":yo("error",u),yo("load",u),t=o;break;case"form":yo("reset",u),yo("submit",u),t=o;break;case"details":yo("toggle",u),t=o;break;case"input":Ee(u,o),t=Le(u,o),yo("invalid",u),Vo(g,"onChange");break;case"option":t=Ge(u,o);break;case"select":u._wrapperState={wasMultiple:!!o.multiple},t=n({},o,{value:void 0}),yo("invalid",u),Vo(g,"onChange");break;case"textarea":Ie(u,o),t=Oe(u,o),yo("invalid",u),Vo(g,"onChange");break;default:t=o}ko(s,t),m=void 0,d=s;var p=u,f=t;for(m in f)if(f.hasOwnProperty(m)){var S=f[m];"style"===m?$o(p,S):"dangerouslySetInnerHTML"===m?null!=(S=S?S.__html:void 0)&&Ue(p,S):"children"===m?"string"===typeof S?("textarea"!==d||""!==S)&&Ve(p,S):"number"===typeof S&&Ve(p,""+S):"suppressContentEditableWarning"!==m&&"suppressHydrationWarning"!==m&&"autoFocus"!==m&&(c.hasOwnProperty(m)?null!=S&&Vo(g,m):null!=S&&Te(p,m,S,x))}switch(s){case"input":Pe(u),Be(u,o,!1);break;case"textarea":Pe(u),De(u);break;case"option":null!=o.value&&u.setAttribute("value",""+be(o.value));break;case"select":(t=u).multiple=!!o.multiple,null!=(u=o.value)?Ne(t,!!o.multiple,u,!1):null!=o.defaultValue&&Ne(t,!!o.multiple,o.defaultValue,!0);break;default:"function"===typeof t.onClick&&(u.onclick=Ho)}(l=ot(a,l))&&sa(r)}null!==r.ref&&(r.effectTag|=128)}else if(null===r.stateNode)throw Error(i(166));break;case 6:if(o&&null!=r.stateNode)na(o,r,o.memoizedProps,l);else{if("string"!==typeof l&&null===r.stateNode)throw Error(i(166));t=Vl(Ul.current),Vl(Rl.current),Ui(r)?(a=(l=r).stateNode,t=l.memoizedProps,a[mt]=l,(l=a.nodeValue!==t)&&sa(r)):(a=r,(l=(9===t.nodeType?t:t.ownerDocument).createTextNode(l))[mt]=a,r.stateNode=l)}break;case 11:break;case 13:if(xn(zl),l=r.memoizedState,0!==(64&r.effectTag)){r.expirationTime=t;break e}l=null!==l,a=!1,null===o?void 0!==r.memoizedProps.fallback&&Ui(r):(a=null!==(t=o.memoizedState),l||null===t||null!==(t=o.child.sibling)&&(null!==(u=r.firstEffect)?(r.firstEffect=t,t.nextEffect=u):(r.firstEffect=r.lastEffect=t,t.nextEffect=null),t.effectTag=8)),l&&!a&&0!==(2&r.mode)&&(null===o&&!0!==r.memoizedProps.unstable_avoidThisFallback||0!==(1&zl.current)?za===Fa&&(za=ka):(za!==Fa&&za!==ka||(za=Ua),0!==qa&&null!==Ya&&(rm(Ya,Ka),om(Ya,qa)))),(l||a)&&(r.effectTag|=4);break;case 7:case 8:case 12:break;case 4:Yl(),oa(r);break;case 10:ml(r);break;case 9:case 14:break;case 17:bn(r.type)&&Tn();break;case 19:if(xn(zl),null===(l=r.memoizedState))break;if(a=0!==(64&r.effectTag),null===(u=l.rendering)){if(a)ga(l,!1);else if(za!==Fa||null!==o&&0!==(64&o.effectTag))for(o=r.child;null!==o;){if(null!==(u=Ql(o))){for(r.effectTag|=64,ga(l,!1),null!==(a=u.updateQueue)&&(r.updateQueue=a,r.effectTag|=4),null===l.lastEffect&&(r.firstEffect=null),r.lastEffect=l.lastEffect,l=t,a=r.child;null!==a;)o=l,(t=a).effectTag&=2,t.nextEffect=null,t.firstEffect=null,t.lastEffect=null,null===(u=t.alternate)?(t.childExpirationTime=0,t.expirationTime=o,t.child=null,t.memoizedProps=null,t.memoizedState=null,t.updateQueue=null,t.dependencies=null):(t.childExpirationTime=u.childExpirationTime,t.expirationTime=u.expirationTime,t.child=u.child,t.memoizedProps=u.memoizedProps,t.memoizedState=u.memoizedState,t.updateQueue=u.updateQueue,o=u.dependencies,t.dependencies=null===o?null:{expirationTime:o.expirationTime,firstContext:o.firstContext,responders:o.responders}),a=a.sibling;pn(zl,1&zl.current|2),r=r.child;break e}o=o.sibling}}else{if(!a)if(null!==(o=Ql(u))){if(r.effectTag|=64,a=!0,null!==(t=o.updateQueue)&&(r.updateQueue=t,r.effectTag|=4),ga(l,!0),null===l.tail&&"hidden"===l.tailMode&&!u.alternate){null!==(r=r.lastEffect=l.lastEffect)&&(r.nextEffect=null);break}}else Wn()>l.tailExpiration&&1<t&&(r.effectTag|=64,a=!0,ga(l,!1),r.expirationTime=r.childExpirationTime=t-1);l.isBackwards?(u.sibling=r.child,r.child=u):(null!==(t=l.last)?t.sibling=u:r.child=u,l.last=u)}if(null!==l.tail){0===l.tailExpiration&&(l.tailExpiration=Wn()+500),t=l.tail,l.rendering=t,l.tail=t.sibling,l.lastEffect=r.lastEffect,t.sibling=null,l=zl.current,pn(zl,l=a?1&l|2:1&l),r=t;break e}break;case 20:case 21:break;default:throw Error(i(156,r.tag))}r=null}if(l=Wa,1===Ka||1!==l.childExpirationTime){for(a=0,t=l.child;null!==t;)(o=t.expirationTime)>a&&(a=o),(u=t.childExpirationTime)>a&&(a=u),t=t.sibling;l.childExpirationTime=a}if(null!==r)return r;null!==e&&0===(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=Wa.firstEffect),null!==Wa.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=Wa.firstEffect),e.lastEffect=Wa.lastEffect),1<Wa.effectTag&&(null!==e.lastEffect?e.lastEffect.nextEffect=Wa:e.firstEffect=Wa,e.lastEffect=Wa))}else{if(null!==(r=ca(Wa)))return r.effectTag&=2047,r;null!==e&&(e.firstEffect=e.lastEffect=null,e.effectTag|=2048)}if(null!==(r=Wa.sibling))return r;Wa=e}while(null!==Wa);return za===Fa&&(za=Va),null}function Nd(e){var r=e.expirationTime;return r>(e=e.childExpirationTime)?r:e}function Od(e){var r=Kn();return Qn(99,Id.bind(null,e,r)),null}function Id(e,r){do{Dd()}while(null!==dd);if((Ha&(Xa|Da))!==Oa)throw Error(i(327));var o=e.finishedWork,t=e.finishedExpirationTime;if(null===o)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,o===e.current)throw Error(i(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var n=Nd(o);if(e.firstPendingTime=n,t<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t<=e.firstSuspendedTime&&(e.firstSuspendedTime=t-1),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===Ya&&(Wa=Ya=null,Ka=0),1<o.effectTag?null!==o.lastEffect?(o.lastEffect.nextEffect=o,n=o.firstEffect):n=o:n=o.firstEffect,null!==n){var l=Ha;Ha|=Da,Na.current=null,et=Po;var a=zo();if(Qo(a)){if("selectionStart"in a)var d={start:a.selectionStart,end:a.selectionEnd};else e:{var m=(d=(d=a.ownerDocument)&&d.defaultView||window).getSelection&&d.getSelection();if(m&&0!==m.rangeCount){d=m.anchorNode;var u=m.anchorOffset,s=m.focusNode;m=m.focusOffset;try{d.nodeType,s.nodeType}catch(I){d=null;break e}var g=0,c=-1,x=-1,p=0,f=0,S=a,h=null;r:for(;;){for(var v;S!==d||0!==u&&3!==S.nodeType||(c=g+u),S!==s||0!==m&&3!==S.nodeType||(x=g+m),3===S.nodeType&&(g+=S.nodeValue.length),null!==(v=S.firstChild);)h=S,S=v;for(;;){if(S===a)break r;if(h===d&&++p===u&&(c=g),h===s&&++f===m&&(x=g),null!==(v=S.nextSibling))break;h=(S=h).parentNode}S=v}d=-1===c||-1===x?null:{start:c,end:x}}else d=null}d=d||{start:0,end:0}}else d=null;rt={focusedElem:a,selectionRange:d},Po=!1,td=n;do{try{Xd()}catch(I){if(null===td)throw Error(i(330));Rd(td,I),td=td.nextEffect}}while(null!==td);td=n;do{try{for(a=e,d=r;null!==td;){var A=td.effectTag;if(16&A&&Ve(td.stateNode,""),128&A){var b=td.alternate;if(null!==b){var T=b.ref;null!==T&&("function"===typeof T?T(null):T.current=null)}}switch(1038&A){case 2:Ma(td),td.effectTag&=-3;break;case 6:Ma(td),td.effectTag&=-3,ya(td.alternate,td);break;case 1024:td.effectTag&=-1025;break;case 1028:td.effectTag&=-1025,ya(td.alternate,td);break;case 4:ya(td.alternate,td);break;case 8:Pa(a,u=td,d),ba(u)}td=td.nextEffect}}catch(I){if(null===td)throw Error(i(330));Rd(td,I),td=td.nextEffect}}while(null!==td);if(T=rt,b=zo(),A=T.focusedElem,d=T.selectionRange,b!==A&&A&&A.ownerDocument&&function e(r,o){return!(!r||!o)&&(r===o||(!r||3!==r.nodeType)&&(o&&3===o.nodeType?e(r,o.parentNode):"contains"in r?r.contains(o):!!r.compareDocumentPosition&&!!(16&r.compareDocumentPosition(o))))}(A.ownerDocument.documentElement,A)){null!==d&&Qo(A)&&(b=d.start,void 0===(T=d.end)&&(T=b),"selectionStart"in A?(A.selectionStart=b,A.selectionEnd=Math.min(T,A.value.length)):(T=(b=A.ownerDocument||document)&&b.defaultView||window).getSelection&&(T=T.getSelection(),u=A.textContent.length,a=Math.min(d.start,u),d=void 0===d.end?a:Math.min(d.end,u),!T.extend&&a>d&&(u=d,d=a,a=u),u=Ko(A,a),s=Ko(A,d),u&&s&&(1!==T.rangeCount||T.anchorNode!==u.node||T.anchorOffset!==u.offset||T.focusNode!==s.node||T.focusOffset!==s.offset)&&((b=b.createRange()).setStart(u.node,u.offset),T.removeAllRanges(),a>d?(T.addRange(b),T.extend(s.node,s.offset)):(b.setEnd(s.node,s.offset),T.addRange(b))))),b=[];for(T=A;T=T.parentNode;)1===T.nodeType&&b.push({element:T,left:T.scrollLeft,top:T.scrollTop});for("function"===typeof A.focus&&A.focus(),A=0;A<b.length;A++)(T=b[A]).element.scrollLeft=T.left,T.element.scrollTop=T.top}rt=null,Po=!!et,et=null,e.current=o,td=n;do{try{for(A=t;null!==td;){var M=td.effectTag;if(36&M){var P=td.alternate;switch(T=A,(b=td).tag){case 0:case 11:case 15:va(16,32,b);break;case 1:var y=b.stateNode;if(4&b.effectTag)if(null===P)y.componentDidMount();else{var L=b.elementType===b.type?P.memoizedProps:ol(b.type,P.memoizedProps);y.componentDidUpdate(L,P.memoizedState,y.__reactInternalSnapshotBeforeUpdate)}var E=b.updateQueue;null!==E&&Ml(0,E,y);break;case 3:var _=b.updateQueue;if(null!==_){if(a=null,null!==b.child)switch(b.child.tag){case 5:a=b.child.stateNode;break;case 1:a=b.child.stateNode}Ml(0,_,a)}break;case 5:var w=b.stateNode;null===P&&4&b.effectTag&&ot(b.type,b.memoizedProps)&&w.focus();break;case 6:case 4:case 12:break;case 13:if(null===b.memoizedState){var B=b.alternate;if(null!==B){var C=B.memoizedState;if(null!==C){var G=C.dehydrated;null!==G&&yr(G)}}}break;case 19:case 17:case 20:case 21:break;default:throw Error(i(163))}}if(128&M){b=void 0;var N=td.ref;if(null!==N){var O=td.stateNode;switch(td.tag){case 5:b=O;break;default:b=O}"function"===typeof N?N(b):N.current=b}}td=td.nextEffect}}catch(I){if(null===td)throw Error(i(330));Rd(td,I),td=td.nextEffect}}while(null!==td);td=null,kn(),Ha=l}else e.current=o;if(ad)ad=!1,dd=e,md=r;else for(td=n;null!==td;)r=td.nextEffect,td.nextEffect=null,td=r;if(0===(r=e.firstPendingTime)&&(id=null),1073741823===r?e===gd?sd++:(sd=0,gd=e):sd=0,"function"===typeof Vd&&Vd(o.stateNode,t),vd(e),nd)throw nd=!1,e=ld,ld=null,e;return(Ha&Ia)!==Oa?null:(jn(),null)}function Xd(){for(;null!==td;){var e=td.effectTag;0!==(256&e)&&ha(td.alternate,td),0===(512&e)||ad||(ad=!0,Zn(97,(function(){return Dd(),null}))),td=td.nextEffect}}function Dd(){if(90!==md){var e=97<md?97:md;return md=90,Qn(e,Fd)}}function Fd(){if(null===dd)return!1;var e=dd;if(dd=null,(Ha&(Xa|Da))!==Oa)throw Error(i(331));var r=Ha;for(Ha|=Da,e=e.current.firstEffect;null!==e;){try{var o=e;if(0!==(512&o.effectTag))switch(o.tag){case 0:case 11:case 15:va(128,0,o),va(0,64,o)}}catch(t){if(null===e)throw Error(i(330));Rd(e,t)}o=e.nextEffect,e.nextEffect=null,e=o}return Ha=r,jn(),!0}function $d(e,r,o){hl(e,r=_a(e,r=xa(o,r),1073741823)),null!==(e=Sd(e,1073741823))&&vd(e)}function Rd(e,r){if(3===e.tag)$d(e,e,r);else for(var o=e.return;null!==o;){if(3===o.tag){$d(o,e,r);break}if(1===o.tag){var t=o.stateNode;if("function"===typeof o.type.getDerivedStateFromError||"function"===typeof t.componentDidCatch&&(null===id||!id.has(t))){hl(o,e=wa(o,e=xa(r,e),1073741823)),null!==(o=Sd(o,1073741823))&&vd(o);break}}o=o.return}}function kd(e,r,o){var t=e.pingCache;null!==t&&t.delete(r),Ya===e&&Ka===o?za===Ua||za===ka&&1073741823===Za&&Wn()-rd<od?Pd(e,Ka):ed=!0:em(e,o)&&(0!==(r=e.lastPingedTime)&&r<o||(e.lastPingedTime=o,e.finishedExpirationTime===o&&(e.finishedExpirationTime=0,e.finishedWork=null),vd(e)))}function Ud(e,r){var o=e.stateNode;null!==o&&o.delete(r),0===(r=0)&&(r=pd(r=xd(),e,null)),null!==(e=Sd(e,r))&&vd(e)}Ba=function(e,r,o){var t=r.expirationTime;if(null!==e){var n=r.pendingProps;if(e.memoizedProps!==n||hn.current)Yi=!0;else{if(t<o){switch(Yi=!1,r.tag){case 3:ea(r),Vi();break;case 5:if(Wl(r),4&r.mode&&1!==o&&n.hidden)return r.expirationTime=r.childExpirationTime=1,null;break;case 1:bn(r.type)&&Ln(r);break;case 4:Hl(r,r.stateNode.containerInfo);break;case 10:dl(r,r.memoizedProps.value);break;case 13:if(null!==r.memoizedState)return 0!==(t=r.child.childExpirationTime)&&t>=o?ia(e,r,o):(pn(zl,1&zl.current),null!==(r=ua(e,r,o))?r.sibling:null);pn(zl,1&zl.current);break;case 19:if(t=r.childExpirationTime>=o,0!==(64&e.effectTag)){if(t)return ma(e,r,o);r.effectTag|=64}if(null!==(n=r.memoizedState)&&(n.rendering=null,n.tail=null),pn(zl,zl.current),!t)return null}return ua(e,r,o)}Yi=!1}}else Yi=!1;switch(r.expirationTime=0,r.tag){case 2:if(t=r.type,null!==e&&(e.alternate=null,r.alternate=null,r.effectTag|=2),e=r.pendingProps,n=An(r,Sn.current),sl(r,o),n=xi(null,r,t,e,n,o),r.effectTag|=1,"object"===typeof n&&null!==n&&"function"===typeof n.render&&void 0===n.$$typeof){if(r.tag=1,pi(),bn(t)){var l=!0;Ln(r)}else l=!1;r.memoizedState=null!==n.state&&void 0!==n.state?n.state:null;var a=t.getDerivedStateFromProps;"function"===typeof a&&El(r,t,a,e),n.updater=_l,r.stateNode=n,n._reactInternalFiber=r,Gl(r,t,e,o),r=qi(null,r,t,!0,l,o)}else r.tag=0,Wi(null,r,n,o),r=r.child;return r;case 16:if(n=r.elementType,null!==e&&(e.alternate=null,r.alternate=null,r.effectTag|=2),e=r.pendingProps,function(e){if(-1===e._status){e._status=0;var r=e._ctor;r=r(),e._result=r,r.then((function(r){0===e._status&&(r=r.default,e._status=1,e._result=r)}),(function(r){0===e._status&&(e._status=2,e._result=r)}))}}(n),1!==n._status)throw n._result;switch(n=n._result,r.type=n,l=r.tag=function(e){if("function"===typeof e)return Kd(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===H)return 11;if(e===K)return 14}return 2}(n),e=ol(n,e),l){case 0:r=Ji(null,r,n,e,o);break;case 1:r=ji(null,r,n,e,o);break;case 11:r=Ki(null,r,n,e,o);break;case 14:r=zi(null,r,n,ol(n.type,e),t,o);break;default:throw Error(i(306,n,""))}return r;case 0:return t=r.type,n=r.pendingProps,Ji(e,r,t,n=r.elementType===t?n:ol(t,n),o);case 1:return t=r.type,n=r.pendingProps,ji(e,r,t,n=r.elementType===t?n:ol(t,n),o);case 3:if(ea(r),null===(t=r.updateQueue))throw Error(i(282));if(n=null!==(n=r.memoizedState)?n.element:null,Tl(r,t,r.pendingProps,null,o),(t=r.memoizedState.element)===n)Vi(),r=ua(e,r,o);else{if((n=r.stateNode.hydrate)&&(Xi=it(r.stateNode.containerInfo.firstChild),Ii=r,n=Di=!0),n)for(o=Fl(r,null,t,o),r.child=o;o;)o.effectTag=-3&o.effectTag|1024,o=o.sibling;else Wi(e,r,t,o),Vi();r=r.child}return r;case 5:return Wl(r),null===e&&Ri(r),t=r.type,n=r.pendingProps,l=null!==e?e.memoizedProps:null,a=n.children,tt(t,n)?a=null:null!==l&&tt(t,l)&&(r.effectTag|=16),Zi(e,r),4&r.mode&&1!==o&&n.hidden?(r.expirationTime=r.childExpirationTime=1,r=null):(Wi(e,r,a,o),r=r.child),r;case 6:return null===e&&Ri(r),null;case 13:return ia(e,r,o);case 4:return Hl(r,r.stateNode.containerInfo),t=r.pendingProps,null===e?r.child=Dl(r,null,t,o):Wi(e,r,t,o),r.child;case 11:return t=r.type,n=r.pendingProps,Ki(e,r,t,n=r.elementType===t?n:ol(t,n),o);case 7:return Wi(e,r,r.pendingProps,o),r.child;case 8:case 12:return Wi(e,r,r.pendingProps.children,o),r.child;case 10:e:{if(t=r.type._context,n=r.pendingProps,a=r.memoizedProps,dl(r,l=n.value),null!==a){var d=a.value;if(0===(l=en(d,l)?0:0|("function"===typeof t._calculateChangedBits?t._calculateChangedBits(d,l):1073741823))){if(a.children===n.children&&!hn.current){r=ua(e,r,o);break e}}else for(null!==(d=r.child)&&(d.return=r);null!==d;){var m=d.dependencies;if(null!==m){a=d.child;for(var u=m.firstContext;null!==u;){if(u.context===t&&0!==(u.observedBits&l)){1===d.tag&&((u=fl(o,null)).tag=2,hl(d,u)),d.expirationTime<o&&(d.expirationTime=o),null!==(u=d.alternate)&&u.expirationTime<o&&(u.expirationTime=o),ul(d.return,o),m.expirationTime<o&&(m.expirationTime=o);break}u=u.next}}else a=10===d.tag&&d.type===r.type?null:d.child;if(null!==a)a.return=d;else for(a=d;null!==a;){if(a===r){a=null;break}if(null!==(d=a.sibling)){d.return=a.return,a=d;break}a=a.return}d=a}}Wi(e,r,n.children,o),r=r.child}return r;case 9:return n=r.type,t=(l=r.pendingProps).children,sl(r,o),t=t(n=gl(n,l.unstable_observedBits)),r.effectTag|=1,Wi(e,r,t,o),r.child;case 14:return l=ol(n=r.type,r.pendingProps),zi(e,r,n,l=ol(n.type,l),t,o);case 15:return Qi(e,r,r.type,r.pendingProps,t,o);case 17:return t=r.type,n=r.pendingProps,n=r.elementType===t?n:ol(t,n),null!==e&&(e.alternate=null,r.alternate=null,r.effectTag|=2),r.tag=1,bn(t)?(e=!0,Ln(r)):e=!1,sl(r,o),Bl(r,t,n),Gl(r,t,n,o),qi(null,r,t,!0,e,o);case 19:return ma(e,r,o)}throw Error(i(156,r.tag))};var Vd=null,Hd=null;function Yd(e,r,o,t){this.tag=e,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=r,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=t,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Wd(e,r,o,t){return new Yd(e,r,o,t)}function Kd(e){return!(!(e=e.prototype)||!e.isReactComponent)}function zd(e,r){var o=e.alternate;return null===o?((o=Wd(e.tag,r,e.key,e.mode)).elementType=e.elementType,o.type=e.type,o.stateNode=e.stateNode,o.alternate=e,e.alternate=o):(o.pendingProps=r,o.effectTag=0,o.nextEffect=null,o.firstEffect=null,o.lastEffect=null),o.childExpirationTime=e.childExpirationTime,o.expirationTime=e.expirationTime,o.child=e.child,o.memoizedProps=e.memoizedProps,o.memoizedState=e.memoizedState,o.updateQueue=e.updateQueue,r=e.dependencies,o.dependencies=null===r?null:{expirationTime:r.expirationTime,firstContext:r.firstContext,responders:r.responders},o.sibling=e.sibling,o.index=e.index,o.ref=e.ref,o}function Qd(e,r,o,t,n,l){var a=2;if(t=e,"function"===typeof e)Kd(e)&&(a=1);else if("string"===typeof e)a=5;else e:switch(e){case F:return Zd(o.children,n,l,r);case V:a=8,n|=7;break;case $:a=8,n|=1;break;case R:return(e=Wd(12,o,r,8|n)).elementType=R,e.type=R,e.expirationTime=l,e;case Y:return(e=Wd(13,o,r,n)).type=Y,e.elementType=Y,e.expirationTime=l,e;case W:return(e=Wd(19,o,r,n)).elementType=W,e.expirationTime=l,e;default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case k:a=10;break e;case U:a=9;break e;case H:a=11;break e;case K:a=14;break e;case z:a=16,t=null;break e}throw Error(i(130,null==e?e:typeof e,""))}return(r=Wd(a,o,r,n)).elementType=e,r.type=t,r.expirationTime=l,r}function Zd(e,r,o,t){return(e=Wd(7,e,t,r)).expirationTime=o,e}function Jd(e,r,o){return(e=Wd(6,e,null,r)).expirationTime=o,e}function jd(e,r,o){return(r=Wd(4,null!==e.children?e.children:[],e.key,r)).expirationTime=o,r.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},r}function qd(e,r,o){this.tag=r,this.current=null,this.containerInfo=e,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=o,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function em(e,r){var o=e.firstSuspendedTime;return e=e.lastSuspendedTime,0!==o&&o>=r&&e<=r}function rm(e,r){var o=e.firstSuspendedTime,t=e.lastSuspendedTime;o<r&&(e.firstSuspendedTime=r),(t>r||0===o)&&(e.lastSuspendedTime=r),r<=e.lastPingedTime&&(e.lastPingedTime=0),r<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function om(e,r){r>e.firstPendingTime&&(e.firstPendingTime=r);var o=e.firstSuspendedTime;0!==o&&(r>=o?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:r>=e.lastSuspendedTime&&(e.lastSuspendedTime=r+1),r>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=r))}function tm(e,r){var o=e.lastExpiredTime;(0===o||o>r)&&(e.lastExpiredTime=r)}function nm(e,r,o,t){var n=r.current,l=xd(),a=yl.suspense;l=pd(l,n,a);e:if(o){r:{if(er(o=o._reactInternalFiber)!==o||1!==o.tag)throw Error(i(170));var d=o;do{switch(d.tag){case 3:d=d.stateNode.context;break r;case 1:if(bn(d.type)){d=d.stateNode.__reactInternalMemoizedMergedChildContext;break r}}d=d.return}while(null!==d);throw Error(i(171))}if(1===o.tag){var m=o.type;if(bn(m)){o=yn(o,m,d);break e}}o=d}else o=fn;return null===r.context?r.context=o:r.pendingContext=o,(r=fl(l,a)).payload={element:e},null!==(t=void 0===t?null:t)&&(r.callback=t),hl(n,r),fd(n,l),l}function lm(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function im(e,r){null!==(e=e.memoizedState)&&null!==e.dehydrated&&e.retryTime<r&&(e.retryTime=r)}function am(e,r){im(e,r),(e=e.alternate)&&im(e,r)}function dm(e,r,o){var t=new qd(e,r,o=null!=o&&!0===o.hydrate),n=Wd(3,null,null,2===r?7:1===r?3:0);t.current=n,n.stateNode=t,e[st]=t.current,o&&0!==r&&function(e){var r=Oo(e);pr.forEach((function(o){Io(o,e,r)})),fr.forEach((function(o){Io(o,e,r)}))}(9===e.nodeType?e:e.ownerDocument),this._internalRoot=t}function mm(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function um(e,r,o,t,n){var l=o._reactRootContainer;if(l){var i=l._internalRoot;if("function"===typeof n){var a=n;n=function(){var e=lm(i);a.call(e)}}nm(r,i,e,n)}else{if(l=o._reactRootContainer=function(e,r){if(r||(r=!(!(r=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==r.nodeType||!r.hasAttribute("data-reactroot"))),!r)for(var o;o=e.lastChild;)e.removeChild(o);return new dm(e,0,r?{hydrate:!0}:void 0)}(o,t),i=l._internalRoot,"function"===typeof n){var d=n;n=function(){var e=lm(i);d.call(e)}}Md((function(){nm(r,i,e,n)}))}return lm(i)}function sm(e,r){var o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!mm(r))throw Error(i(200));return function(e,r,o){var t=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:D,key:null==t?null:""+t,children:e,containerInfo:r,implementation:o}}(e,r,null,o)}dm.prototype.render=function(e,r){nm(e,this._internalRoot,null,void 0===r?null:r)},dm.prototype.unmount=function(e){var r=this._internalRoot,o=void 0===e?null:e,t=r.containerInfo;nm(null,r,null,(function(){t[st]=null,null!==o&&o()}))},nr=function(e){if(13===e.tag){var r=rl(xd(),150,100);fd(e,r),am(e,r)}},lr=function(e){if(13===e.tag){xd();var r=el++;fd(e,r),am(e,r)}},ir=function(e){if(13===e.tag){var r=xd();fd(e,r=pd(r,e,null)),am(e,r)}},ee=function(e,r,o){switch(r){case"input":if(we(e,o),r=o.name,"radio"===o.type&&null!=r){for(o=e;o.parentNode;)o=o.parentNode;for(o=o.querySelectorAll("input[name="+JSON.stringify(""+r)+'][type="radio"]'),r=0;r<o.length;r++){var t=o[r];if(t!==e&&t.form===e.form){var n=pt(t);if(!n)throw Error(i(90));ye(t),we(t,n)}}}break;case"textarea":Xe(e,o);break;case"select":null!=(r=o.value)&&Ne(e,!!o.multiple,r,!1)}},ie=Td,ae=function(e,r,o,t){var n=Ha;Ha|=4;try{return Qn(98,e.bind(null,r,o,t))}finally{(Ha=n)===Oa&&jn()}},de=function(){(Ha&(1|Xa|Da))===Oa&&(function(){if(null!==ud){var e=ud;ud=null,e.forEach((function(e,r){tm(r,e),vd(r)})),jn()}}(),Dd())},me=function(e,r){var o=Ha;Ha|=2;try{return e(r)}finally{(Ha=o)===Oa&&jn()}};var gm={createPortal:sm,findDOMNode:function(e){if(null==e)return null;if(1===e.nodeType)return e;var r=e._reactInternalFiber;if(void 0===r){if("function"===typeof e.render)throw Error(i(188));throw Error(i(268,Object.keys(e)))}return e=null===(e=tr(r))?null:e.stateNode},hydrate:function(e,r,o){if(!mm(r))throw Error(i(200));return um(null,e,r,!0,o)},render:function(e,r,o){if(!mm(r))throw Error(i(200));return um(null,e,r,!1,o)},unstable_renderSubtreeIntoContainer:function(e,r,o,t){if(!mm(o))throw Error(i(200));if(null==e||void 0===e._reactInternalFiber)throw Error(i(38));return um(e,r,o,!1,t)},unmountComponentAtNode:function(e){if(!mm(e))throw Error(i(40));return!!e._reactRootContainer&&(Md((function(){um(null,null,e,!1,(function(){e._reactRootContainer=null,e[st]=null}))})),!0)},unstable_createPortal:function(){return sm.apply(void 0,arguments)},unstable_batchedUpdates:Td,flushSync:function(e,r){if((Ha&(Xa|Da))!==Oa)throw Error(i(187));var o=Ha;Ha|=1;try{return Qn(99,e.bind(null,r))}finally{Ha=o,jn()}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[ct,xt,pt,C.injectEventPluginsByName,g,Gr,function(e){E(e,Cr)},ne,le,Bo,B,Dd,{current:!1}]}};!function(e){var r=e.findFiberByHostInstance;(function(e){if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var r=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(r.isDisabled||!r.supportsFiber)return!0;try{var o=r.inject(e);Vd=function(e){try{r.onCommitFiberRoot(o,e,void 0,64===(64&e.current.effectTag))}catch(t){}},Hd=function(e){try{r.onCommitFiberUnmount(o,e)}catch(t){}}}catch(t){}})(n({},e,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:N.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=tr(e))?null:e.stateNode},findFiberByHostInstance:function(e){return r?r(e):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))}({findFiberByHostInstance:gt,bundleType:0,version:"16.12.0",rendererPackageName:"react-dom"});var cm={default:gm},xm=cm&&gm||cm;e.exports=xm.default||xm},function(e,r,o){"use strict";e.exports=o(50)},function(e,r,o){"use strict";var t,n,l,i,a;if(Object.defineProperty(r,"__esModule",{value:!0}),"undefined"===typeof window||"function"!==typeof MessageChannel){var d=null,m=null,u=function e(){if(null!==d)try{var o=r.unstable_now();d(!0,o),d=null}catch(t){throw setTimeout(e,0),t}},s=Date.now();r.unstable_now=function(){return Date.now()-s},t=function(e){null!==d?setTimeout(t,0,e):(d=e,setTimeout(u,0))},n=function(e,r){m=setTimeout(e,r)},l=function(){clearTimeout(m)},i=function(){return!1},a=r.unstable_forceFrameRate=function(){}}else{var g=window.performance,c=window.Date,x=window.setTimeout,p=window.clearTimeout;if("undefined"!==typeof console){var f=window.cancelAnimationFrame;"function"!==typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!==typeof f&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if("object"===typeof g&&"function"===typeof g.now)r.unstable_now=function(){return g.now()};else{var S=c.now();r.unstable_now=function(){return c.now()-S}}var h=!1,v=null,A=-1,b=5,T=0;i=function(){return r.unstable_now()>=T},a=function(){},r.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):b=0<e?Math.floor(1e3/e):5};var M=new MessageChannel,P=M.port2;M.port1.onmessage=function(){if(null!==v){var e=r.unstable_now();T=e+b;try{v(!0,e)?P.postMessage(null):(h=!1,v=null)}catch(o){throw P.postMessage(null),o}}else h=!1},t=function(e){v=e,h||(h=!0,P.postMessage(null))},n=function(e,o){A=x((function(){e(r.unstable_now())}),o)},l=function(){p(A),A=-1}}function y(e,r){var o=e.length;e.push(r);e:for(;;){var t=Math.floor((o-1)/2),n=e[t];if(!(void 0!==n&&0<_(n,r)))break e;e[t]=r,e[o]=n,o=t}}function L(e){return void 0===(e=e[0])?null:e}function E(e){var r=e[0];if(void 0!==r){var o=e.pop();if(o!==r){e[0]=o;e:for(var t=0,n=e.length;t<n;){var l=2*(t+1)-1,i=e[l],a=l+1,d=e[a];if(void 0!==i&&0>_(i,o))void 0!==d&&0>_(d,i)?(e[t]=d,e[a]=o,t=a):(e[t]=i,e[l]=o,t=l);else{if(!(void 0!==d&&0>_(d,o)))break e;e[t]=d,e[a]=o,t=a}}}return r}return null}function _(e,r){var o=e.sortIndex-r.sortIndex;return 0!==o?o:e.id-r.id}var w=[],B=[],C=1,G=null,N=3,O=!1,I=!1,X=!1;function D(e){for(var r=L(B);null!==r;){if(null===r.callback)E(B);else{if(!(r.startTime<=e))break;E(B),r.sortIndex=r.expirationTime,y(w,r)}r=L(B)}}function F(e){if(X=!1,D(e),!I)if(null!==L(w))I=!0,t($);else{var r=L(B);null!==r&&n(F,r.startTime-e)}}function $(e,o){I=!1,X&&(X=!1,l()),O=!0;var t=N;try{for(D(o),G=L(w);null!==G&&(!(G.expirationTime>o)||e&&!i());){var a=G.callback;if(null!==a){G.callback=null,N=G.priorityLevel;var d=a(G.expirationTime<=o);o=r.unstable_now(),"function"===typeof d?G.callback=d:G===L(w)&&E(w),D(o)}else E(w);G=L(w)}if(null!==G)var m=!0;else{var u=L(B);null!==u&&n(F,u.startTime-o),m=!1}return m}finally{G=null,N=t,O=!1}}function R(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var k=a;r.unstable_ImmediatePriority=1,r.unstable_UserBlockingPriority=2,r.unstable_NormalPriority=3,r.unstable_IdlePriority=5,r.unstable_LowPriority=4,r.unstable_runWithPriority=function(e,r){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var o=N;N=e;try{return r()}finally{N=o}},r.unstable_next=function(e){switch(N){case 1:case 2:case 3:var r=3;break;default:r=N}var o=N;N=r;try{return e()}finally{N=o}},r.unstable_scheduleCallback=function(e,o,i){var a=r.unstable_now();if("object"===typeof i&&null!==i){var d=i.delay;d="number"===typeof d&&0<d?a+d:a,i="number"===typeof i.timeout?i.timeout:R(e)}else i=R(e),d=a;return e={id:C++,callback:o,priorityLevel:e,startTime:d,expirationTime:i=d+i,sortIndex:-1},d>a?(e.sortIndex=d,y(B,e),null===L(w)&&e===L(B)&&(X?l():X=!0,n(F,d-a))):(e.sortIndex=i,y(w,e),I||O||(I=!0,t($))),e},r.unstable_cancelCallback=function(e){e.callback=null},r.unstable_wrapCallback=function(e){var r=N;return function(){var o=N;N=r;try{return e.apply(this,arguments)}finally{N=o}}},r.unstable_getCurrentPriorityLevel=function(){return N},r.unstable_shouldYield=function(){var e=r.unstable_now();D(e);var o=L(w);return o!==G&&null!==G&&null!==o&&null!==o.callback&&o.startTime<=e&&o.expirationTime<G.expirationTime||i()},r.unstable_requestPaint=k,r.unstable_continueExecution=function(){I||O||(I=!0,t($))},r.unstable_pauseExecution=function(){},r.unstable_getFirstCallbackNode=function(){return L(w)},r.unstable_Profiling=null},,,function(e,r,o){"use strict";var t=o(1),n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var l=n(o(22)),i=n(o(76)),a=n(o(78)),d=n(o(80)),m=n(o(82)),u=n(o(84)),s=[a.default,i.default,m.default,u.default,l.default,d.default];r.default=function e(r){var o=this;t(this,e),this.options={versionTruncation:1},this.parse=function(e){var r=!0,t=!1,n=void 0;try{for(var l,i=s[Symbol.iterator]();!(r=(l=i.next()).done);r=!0){var a=new(0,l.value)(o.options).parse(e);if(""!==a.type)return a}}catch(d){t=!0,n=d}finally{try{r||null==i.return||i.return()}finally{if(t)throw n}}return null},this.options=Object.assign({},this.options,r)}},function(e,r){e.exports=function(e){if(Array.isArray(e))return e}},function(e,r){e.exports=function(e,r){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var o=[],t=!0,n=!1,l=void 0;try{for(var i,a=e[Symbol.iterator]();!(t=(i=a.next()).done)&&(o.push(i.value),!r||o.length!==r);t=!0);}catch(d){n=!0,l=d}finally{try{t||null==a.return||a.return()}finally{if(n)throw l}}return o}}},function(e,r){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,r,o){var t=o(23),n=o(63),l=o(65),i=o(69),a=o(70),d=o(27),m=/^\s+|\s+$/g;e.exports=function(e,r,o){if((e=d(e))&&(o||void 0===r))return e.replace(m,"");if(!e||!(r=t(r)))return e;var u=a(e),s=a(r),g=i(u,s),c=l(u,s)+1;return n(u,g,c).join("")}},function(e,r,o){(function(r){var o="object"==typeof r&&r&&r.Object===Object&&r;e.exports=o}).call(this,o(24))},function(e,r){e.exports=function(e,r){for(var o=-1,t=null==e?0:e.length,n=Array(t);++o<t;)n[o]=r(e[o],o,e);return n}},function(e,r,o){var t=o(14),n=Object.prototype,l=n.hasOwnProperty,i=n.toString,a=t?t.toStringTag:void 0;e.exports=function(e){var r=l.call(e,a),o=e[a];try{e[a]=void 0;var t=!0}catch(d){}var n=i.call(e);return t&&(r?e[a]=o:delete e[a]),n}},function(e,r){var o=Object.prototype.toString;e.exports=function(e){return o.call(e)}},function(e,r){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,r,o){var t=o(64);e.exports=function(e,r,o){var n=e.length;return o=void 0===o?n:o,!r&&o>=n?e:t(e,r,o)}},function(e,r){e.exports=function(e,r,o){var t=-1,n=e.length;r<0&&(r=-r>n?0:n+r),(o=o>n?n:o)<0&&(o+=n),n=r>o?0:o-r>>>0,r>>>=0;for(var l=Array(n);++t<n;)l[t]=e[t+r];return l}},function(e,r,o){var t=o(26);e.exports=function(e,r){for(var o=e.length;o--&&t(r,e[o],0)>-1;);return o}},function(e,r){e.exports=function(e,r,o,t){for(var n=e.length,l=o+(t?1:-1);t?l--:++l<n;)if(r(e[l],l,e))return l;return-1}},function(e,r){e.exports=function(e){return e!==e}},function(e,r){e.exports=function(e,r,o){for(var t=o-1,n=e.length;++t<n;)if(e[t]===r)return t;return-1}},function(e,r,o){var t=o(26);e.exports=function(e,r){for(var o=-1,n=e.length;++o<n&&t(r,e[o],0)>-1;);return o}},function(e,r,o){var t=o(71),n=o(72),l=o(73);e.exports=function(e){return n(e)?l(e):t(e)}},function(e,r){e.exports=function(e){return e.split("")}},function(e,r){var o=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return o.test(e)}},function(e,r){var o="[\\ud800-\\udfff]",t="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",l="[^\\ud800-\\udfff]",i="(?:\\ud83c[\\udde6-\\uddff]){2}",a="[\\ud800-\\udbff][\\udc00-\\udfff]",d="(?:"+t+"|"+n+")"+"?",m="[\\ufe0e\\ufe0f]?"+d+("(?:\\u200d(?:"+[l,i,a].join("|")+")[\\ufe0e\\ufe0f]?"+d+")*"),u="(?:"+[l+t+"?",t,i,a,o].join("|")+")",s=RegExp(n+"(?="+n+")|"+u+m,"g");e.exports=function(e){return e.match(s)||[]}},function(e){e.exports=JSON.parse('[{"regex":"Hawk/TurboBrowser(?:/v?(\\\\d+[\\\\.\\\\d]+))?","name":"Hawk Turbo Browser","version":"$1","engine":{"default":"Blink"}},{"regex":"FreeU(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"FreeU","version":"$1","engine":{"default":"Blink"}},{"regex":"NoxBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Nox Browser","version":"$1","engine":{"default":"Blink"}},{"regex":"Basilisk(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Basilisk","version":"$1","engine":{"default":"Gecko"}},{"regex":"SputnikBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Sputnik Browser","version":"$1","engine":{"default":"Blink"}},{"regex":"TNSBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"K.Browser","version":"$1","engine":{"default":"Blink"}},{"regex":"OculusBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Oculus Browser","version":"$1"},{"regex":"JioBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Jio Browser","version":"$1","engine":{"default":"Blink"}},{"regex":"Hola(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"hola! Browser","version":"$1","engine":{"default":"Blink"}},{"regex":"HuaweiBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Huawei Browser","version":"$1"},{"regex":"VivoBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"vivo Browser","version":"$1"},{"regex":"RealmeBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Realme Browser","version":"$1"},{"regex":"Beaker ?Browser(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Beaker Browser","version":"$1","engine":{"default":"Blink"}},{"regex":"QwantMobile(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Qwant Mobile","version":"$1","engine":{"default":"Gecko"}},{"regex":"Qwant/(\\\\d+[\\\\.\\\\d]+)","name":"Qwant Mobile","version":"$1","engine":{"default":"Gecko"}},{"regex":"TenFourFox(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"TenFourFox","version":"$1","engine":{"default":"Gecko"}},{"regex":"AOLShield(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"AOL Shield","version":"$1","engine":{"default":"Gecko"}},{"regex":"Edge[ /](\\\\d+[\\\\.\\\\d]+)","name":"Microsoft Edge","version":"$1","engine":{"default":"Edge"}},{"regex":"EdgiOS[ /](\\\\d+[\\\\.\\\\d]+)","name":"Microsoft Edge","version":"$1","engine":{"default":"WebKit"}},{"regex":"EdgA[ /](\\\\d+[\\\\.\\\\d]+)","name":"Microsoft Edge","version":"$1","engine":{"default":"Blink"}},{"regex":"Edg[ /](\\\\d+[\\\\.\\\\d]+)","name":"Microsoft Edge","version":"$1","engine":{"default":"Blink"}},{"regex":"QIHU 360[ES]E","name":"360 Browser","version":""},{"regex":"360 Aphone Browser(?: \\\\((\\\\d+[\\\\.\\\\d]+)(?:beta)?\\\\))?","name":"360 Phone Browser","version":"$1","engine":{"default":"WebKit"}},{"regex":"SailfishBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Sailfish Browser","version":"$1","engine":{"default":"Gecko"}},{"regex":"IceCat(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"IceCat","version":"$1","engine":{"default":"Gecko"}},{"regex":"Mobicip","name":"Mobicip","version":"","engine":{"default":"Gecko"}},{"regex":"Camino(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Camino","version":"$1","engine":{"default":"Gecko"}},{"regex":"Waterfox(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Waterfox","version":"$1","engine":{"default":"Gecko"}},{"regex":"AlohaBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Aloha Browser","version":"$1"},{"regex":"Avast(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Avast Secure Browser","version":"$1"},{"regex":"Epic(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Epic","version":"$1","engine":{"default":"Gecko"}},{"regex":"Fennec(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Fennec","version":"$1","engine":{"default":"Gecko"}},{"regex":"Firefox.*Tablet browser (\\\\d+[\\\\.\\\\d]+)","name":"MicroB","version":"$1","engine":{"default":"Gecko"}},{"regex":"Maemo Browser(?: (\\\\d+[\\\\.\\\\d]+))?","name":"MicroB","version":"$1","engine":{"default":"Gecko"}},{"regex":"Deepnet Explorer (\\\\d+[\\\\.\\\\d]+)?","name":"Deepnet Explorer","version":"$1"},{"regex":"Avant Browser","name":"Avant Browser","version":"","engine":{"default":""}},{"regex":"OppoBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Oppo Browser","version":"$1"},{"regex":"Chrome/(\\\\d+[\\\\.\\\\d]+).*MRCHROME","name":"Amigo","version":"$1","engine":{"default":"WebKit","versions":{"28":"Blink"}}},{"regex":"AtomicBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Atomic Web Browser","version":"$1"},{"regex":"Bunjalloo(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Bunjalloo","version":"$1"},{"regex":"Brave(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Brave","version":"$1","engine":{"default":"Blink"}},{"regex":"Iridium(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Iridium","version":"$1"},{"regex":"Iceweasel(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Iceweasel","version":"$1","engine":{"default":"Gecko"}},{"regex":"WebPositive","name":"WebPositive","version":"","engine":{"default":"WebKit"}},{"regex":"PaleMoon(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Pale Moon","version":"$1","engine":{"default":"Gecko"}},{"regex":"CometBird(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"CometBird","version":"$1","engine":{"default":"Gecko"}},{"regex":"IceDragon(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"IceDragon","version":"$1","engine":{"default":"Gecko"}},{"regex":"Flock(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Flock","version":"$1","engine":{"default":"Gecko","versions":{"3":"WebKit"}}},{"regex":"jig browser(?: web;|9i?)?(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Jig Browser","version":"$1"},{"regex":"Kapiko(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Kapiko","version":"$1","engine":{"default":"Gecko"}},{"regex":"Kylo(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Kylo","version":"$1","engine":{"default":"Gecko"}},{"regex":"Cunaguaro(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Cunaguaro","version":"$1"},{"regex":"(?:Focus|Klar)(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Firefox Focus","version":"$1"},{"regex":"Cyberfox(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Cyberfox","version":"$1","engine":{"default":"Gecko"}},{"regex":"Firefox/(\\\\d+[\\\\.\\\\d]+).*\\\\(Swiftfox\\\\)","name":"Swiftfox","version":"$1","engine":{"default":"Gecko"}},{"regex":"(?:Mobile|Tablet).*Firefox(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Firefox Mobile","version":"$1","engine":{"default":"Gecko"}},{"regex":"FxiOS/(\\\\d+[\\\\.\\\\d]+)","name":"Firefox Mobile iOS","version":"$1","engine":{"default":"WebKit"}},{"regex":"Firefox(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Firefox","version":"$1","engine":{"default":"Gecko"}},{"regex":"(?:BonEcho|GranParadiso|Lorentz|Minefield|Namoroka|Shiretoko)/(\\\\d+[\\\\.\\\\d]+)","name":"Firefox","version":"$1","engine":{"default":"Gecko"}},{"regex":"ANTFresco(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"ANT Fresco","version":"$1"},{"regex":"ANTGalio(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"ANTGalio","version":"$1"},{"regex":"(?:Espial|Escape)(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Espial TV Browser","version":"$1"},{"regex":"RockMelt(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"RockMelt","version":"$1","engine":{"default":"WebKit"}},{"regex":"Fireweb Navigator(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Fireweb Navigator","version":"$1"},{"regex":"Fireweb(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Fireweb","version":"$1"},{"regex":"(?:Navigator|Netscape6?)(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Netscape","version":"$1","engine":{"default":""}},{"regex":"(?:Polarity)(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Polarity","version":"$1"},{"regex":"(?:QupZilla)(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"QupZilla","version":"$1"},{"regex":"(?:Dooble)(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Dooble","version":"$1"},{"regex":"Whale/(\\\\d+[\\\\.\\\\d]+)","name":"Whale Browser","version":"$1","engine":{"default":"Blink"}},{"regex":"Obigo[ ]?(?:InternetBrowser|Browser)?(?:[ /]([a-z0-9]*))?","name":"Obigo","version":"$1"},{"regex":"Obigo|Teleca","name":"Obigo","version":""},{"regex":"UCMini(?:[ /]?(\\\\d+[\\\\.\\\\d]+))?","name":"UC Browser Mini","version":"$1"},{"regex":"UC[ ]?Browser.* \\\\(UCMini\\\\)","name":"UC Browser Mini","version":""},{"regex":"(?:Opera Tablet.*Version|Opera/.+Opera Mobi.+Version|Mobile.+OPR)/(\\\\d+[\\\\.\\\\d]+)","name":"Opera Mobile","version":"$1","engine":{"default":"Presto","versions":{"15":"Blink"}}},{"regex":"MMS/(\\\\d+[\\\\.\\\\d]+)","name":"Opera Neon","version":"$1","engine":{"default":"Blink"}},{"regex":"OMI/(\\\\d+[\\\\.\\\\d]+)","name":"Opera Devices","version":"$1","engine":{"default":"Blink"}},{"regex":"OPT/(\\\\d+[\\\\.\\\\d]+)","name":"Opera Touch","version":"$1","engine":{"default":"Blink"}},{"regex":"Opera/(\\\\d+[\\\\.\\\\d]+).+Opera Mobi","name":"Opera Mobile","version":"$1","engine":{"default":"Presto","versions":{"15":"Blink"}}},{"regex":"Opera ?Mini/(?:att/)?(\\\\d+[\\\\.\\\\d]+)","name":"Opera Mini","version":"$1","engine":{"default":"Presto"}},{"regex":"Opera ?Mini.+Version/(\\\\d+[\\\\.\\\\d]+)","name":"Opera Mini","version":"$1","engine":{"default":"Presto"}},{"regex":"OPiOS/(\\\\d+[\\\\.\\\\d]+)","name":"Opera Mini iOS","version":"$1","engine":{"default":"WebKit"}},{"regex":"Opera.+Edition Next.+Version/(\\\\d+[\\\\.\\\\d]+)","name":"Opera Next","version":"$1","engine":{"default":"Presto","versions":{"15":"Blink"}}},{"regex":"(?:Opera|OPR)[/ ](?:9.80.*Version/)?(\\\\d+[\\\\.\\\\d]+).+Edition Next","name":"Opera Next","version":"$1","engine":{"default":"Presto","versions":{"15":"Blink"}}},{"regex":"(?:Opera[/ ]?|OPR[/ ])(?:9.80.*Version/)?(\\\\d+[\\\\.\\\\d]+)","name":"Opera","version":"$1","engine":{"default":"","versions":{"7":"Presto","15":"Blink","3.5":"Elektra"}}},{"regex":"rekonq(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Rekonq","version":"$1","engine":{"default":"WebKit"}},{"regex":"CoolNovo(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"CoolNovo","version":"$1","engine":{"default":""}},{"regex":"(?:Comodo[ _])?Dragon(?!fruit)(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Comodo Dragon","version":"$1","engine":{"default":"WebKit","versions":{"28":"Blink"}}},{"regex":"ChromePlus(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"ChromePlus","version":"$1","engine":{"default":""}},{"regex":"Conkeror(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Conkeror","version":"$1","engine":{"default":"Gecko"}},{"regex":"Konqueror(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Konqueror","version":"$1","engine":{"default":"KHTML","versions":{"4":""}}},{"regex":"baidubrowser(?:[/ ](\\\\d+[\\\\.\\\\d]*))?","name":"Baidu Browser","version":"$1"},{"regex":"FlyFlow(?:[/ ](\\\\d+[\\\\.\\\\d]*))?","name":"Baidu Browser","version":"$1"},{"regex":"(?:(?:BD)?Spark|BIDUBrowser)[/ ](\\\\d+[\\\\.\\\\d]*)","name":"Baidu Spark","version":"$1"},{"regex":"YaBrowser(?:/(\\\\d+[\\\\.\\\\d]*))?","name":"Yandex Browser","version":"$1","engine":{"default":"Blink"}},{"regex":"Vivaldi(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Vivaldi","version":"$1","engine":{"default":"Blink"}},{"regex":"TweakStyle(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"TweakStyle","version":"$1","engine":{"default":"Blink"}},{"regex":"Midori(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Midori","version":"$1","engine":{"default":"WebKit"}},{"regex":"Mercury(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Mercury","version":"$1"},{"regex":"(?:Maxthon|MxBrowser)[ /](\\\\d+[\\\\.\\\\d]+)","name":"Maxthon","version":"$1","engine":{"default":"","versions":{"3":"WebKit"}}},{"regex":"(?:Maxthon|MyIE2|Uzbl)","name":"Maxthon","version":"","engine":{"default":""}},{"regex":"Puffin(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Puffin","version":"$1"},{"regex":"MobileIron(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Iron Mobile","version":"$1","engine":{"default":"Blink"}},{"regex":"Iron(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Iron","version":"$1","engine":{"default":"WebKit","versions":{"28":"Blink"}}},{"regex":"Epiphany(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"GNOME Web","version":"$1","engine":{"default":"Gecko","versions":{"2.9.16":"","2.28":"WebKit"}}},{"regex":"LieBaoFast(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"LieBaoFast","version":"$1"},{"regex":"LBBrowser(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"Cheetah Browser","version":"$1"},{"regex":"SE (\\\\d+[\\\\.\\\\d]+)","name":"Sogou Explorer","version":"$1"},{"regex":"M?QQBrowser/Mini([\\\\.\\\\d]+)?","name":"QQ Browser Mini","version":"$1","engine":{"default":""}},{"regex":"M?QQBrowser(?:/([\\\\.\\\\d]+))?","name":"QQ Browser","version":"$1","engine":{"default":""}},{"regex":"(?:MIUIBrowser|MiuiBrowser)(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"MIUI Browser","version":"$1","engine":{"default":""}},{"regex":"coc_coc_browser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Coc Coc","version":"$1","engine":{"default":"WebKit","versions":{"28":"Blink"}}},{"regex":"DuckDuckGo/(\\\\d+[\\\\.\\\\d]*)","name":"DuckDuckGo Privacy Browser","version":"$1","engine":{"default":"Blink"}},{"regex":"Samsung ?Browser(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Samsung Browser","version":"$1"},{"regex":"Streamy(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Streamy","version":"$1","engine":{"default":"WebKit"}},{"regex":"isivioo","name":"Isivioo","version":"","engine":{"default":"WebKit"}},{"regex":"UC[ ]?Browser(?:[ /]?(\\\\d+[\\\\.\\\\d]+))?","name":"UC Browser","version":"$1"},{"regex":"UCWEB(?:[ /]?(\\\\d+[\\\\.\\\\d]+))?","name":"UC Browser","version":"$1"},{"regex":"UC AppleWebKit","name":"UC Browser","version":""},{"regex":"Tenta/(\\\\d+[\\\\.\\\\d]+)","name":"Tenta Browser","version":"$1","engine":{"default":"Webkit"}},{"regex":"Rocket/(\\\\d+[\\\\.\\\\d]+)","name":"Firefox Rocket","version":"$1","engine":{"default":"Webkit"}},{"regex":"Web Explorer/(\\\\d+[\\\\.\\\\d]+).*Chrome","name":"Web Explorer","version":"$1","engine":{"default":"Webkit"}},{"regex":"SznProhlizec/(\\\\d+[\\\\.\\\\d]+)","name":"Seznam Browser","version":"$1","engine":{"default":"Blink"}},{"regex":"SogouMobileBrowser/(\\\\d+[\\\\.\\\\d]+)","name":"Sogou Mobile Browser","version":"$1","engine":{"default":""}},{"regex":"Mint Browser/(\\\\d+[\\\\.\\\\d]+)","name":"Mint Browser","version":"$1","engine":{"default":""}},{"regex":"Ecosia (?:android|ios)@(\\\\d+[\\\\.\\\\d]+)","name":"Ecosia","version":"$1","engine":{"default":""}},{"regex":"ACHEETAHI","name":"CM Browser","version":"","engine":{"default":""}},{"regex":"Kiwi Chrome","name":"Kiwi","version":"","engine":{"default":""}},{"regex":"Mb2345Browser/(\\\\d+[\\\\.\\\\d]+)","name":"2345 Browser","version":"$1","engine":{"default":""}},{"regex":"QtWebEngine/(\\\\d+[\\\\.\\\\d]+)","name":"QtWebEngine","version":"$1","engine":{"default":""}},{"regex":"Silk/(\\\\d+[\\\\.\\\\d]+) like Chrome","name":"Mobile Silk","version":"$1","engine":{"default":"Blink"}},{"regex":"Silk(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Mobile Silk","version":"$1","engine":{"default":"WebKit"}},{"regex":"Version/.* Chrome(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Chrome Webview","version":"$1","engine":{"default":"WebKit","versions":{"28":"Blink"}}},{"regex":"CrMo(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Chrome Mobile","version":"$1","engine":{"default":"WebKit","versions":{"28":"Blink"}}},{"regex":"CriOS(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Chrome Mobile iOS","version":"$1","engine":{"default":"WebKit"}},{"regex":"Chrome(?:/(\\\\d+[\\\\.\\\\d]+))? Mobile","name":"Chrome Mobile","version":"$1","engine":{"default":"WebKit","versions":{"28":"Blink"}}},{"regex":"chromeframe(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Chrome Frame","version":"$1","engine":{"default":"WebKit"}},{"regex":"Chromium(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Chromium","version":"$1","engine":{"default":"WebKit","versions":{"28":"Blink"}}},{"regex":"HeadlessChrome(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Headless Chrome","version":"$1","engine":{"default":"Blink"}},{"regex":"Chrome(?!book)(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Chrome","version":"$1","engine":{"default":"WebKit","versions":{"28":"Blink"}}},{"regex":"(?:Tizen|SLP) Browser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Tizen Browser","version":"$1"},{"regex":"Blazer(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Palm Blazer","version":"$1"},{"regex":"Pre/(\\\\d+[\\\\.\\\\d]+)","name":"Palm Pre","version":"$1"},{"regex":"(?:hpw|web)OS/(\\\\d+[\\\\.\\\\d]+)","name":"wOSBrowser","version":"$1"},{"regex":"WebPro(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"Palm WebPro","version":"$1"},{"regex":"Palmscape(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"Palmscape","version":"$1"},{"regex":"Jasmine(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"Jasmine","version":"$1"},{"regex":"Lynx(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Lynx","version":"$1","engine":{"default":"Text-based"}},{"regex":"NCSA_Mosaic(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"NCSA Mosaic","version":"$1"},{"regex":"ABrowse(?: (\\\\d+[\\\\.\\\\d]+))?","name":"ABrowse","version":"$1"},{"regex":"amaya(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Amaya","version":"$1"},{"regex":"AmigaVoyager(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Amiga Voyager","version":"$1"},{"regex":"Amiga-Aweb(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Amiga Aweb","version":"$1"},{"regex":"Arora(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Arora","version":"$1","engine":{"default":"WebKit"}},{"regex":"Beonex(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Beonex","version":"$1","engine":{"default":"Gecko"}},{"regex":"bline(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"B-Line","version":"$1","engine":{"default":"WebKit"}},{"regex":"BrowseX \\\\((\\\\d+[\\\\.\\\\d]+)","name":"BrowseX","version":"$1"},{"regex":"Charon(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Charon","version":"$1"},{"regex":"Cheshire(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Cheshire","version":"$1"},{"regex":"dbrowser","name":"dbrowser","version":"","engine":{"default":"WebKit"}},{"regex":"Dillo(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Dillo","version":"$1","engine":{"default":"Dillo"}},{"regex":"Dolfin(?:/(\\\\d+[\\\\.\\\\d]+))?|dolphin","name":"Dolphin","version":"$1","engine":{"default":"WebKit"}},{"regex":"Elinks(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Elinks","version":"$1","engine":{"default":"Text-based"}},{"regex":"Element Browser(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"Element Browser","version":"$1"},{"regex":"Firebird(?! Build)(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Firebird","version":"$1","engine":{"default":"Gecko"}},{"regex":"Fluid(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Fluid","version":"$1","engine":{"default":"WebKit"}},{"regex":"Galeon(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Galeon","version":"$1","engine":{"default":"Gecko"}},{"regex":"Google Earth(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Google Earth","version":"$1","engine":{"default":"WebKit"}},{"regex":"HotJava(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"HotJava","version":"$1"},{"regex":"IBrowse(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"IBrowse","version":"$1"},{"regex":"iCabMobile(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"iCab Mobile","version":"$1","engine":{"default":"WebKit"}},{"regex":"iCab(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"iCab","version":"$1","engine":{"default":"iCab","versions":{"4":"WebKit"}}},{"regex":"Sleipnir(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"Sleipnir","version":"$1","engine":{"default":""}},{"regex":"Lunascape(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Lunascape","version":"$1","engine":{"default":""}},{"regex":"IEMobile[ /](\\\\d+[\\\\.\\\\d]+)","name":"IE Mobile","version":"$1","engine":{"default":"Trident"}},{"regex":"MSIE (\\\\d+[\\\\.\\\\d]+).*XBLWP7","name":"IE Mobile","version":"$1","engine":{"default":"Trident"}},{"regex":"MSIE.*Trident/4.0","name":"Internet Explorer","version":"8.0","engine":{"default":"Trident"}},{"regex":"MSIE.*Trident/5.0","name":"Internet Explorer","version":"9.0","engine":{"default":"Trident"}},{"regex":"MSIE.*Trident/6.0","name":"Internet Explorer","version":"10.0","engine":{"default":"Trident"}},{"regex":"Trident/[78].0","name":"Internet Explorer","version":"11.0","engine":{"default":"Trident"}},{"regex":"MSIE (\\\\d+[\\\\.\\\\d]+)","name":"Internet Explorer","version":"$1","engine":{"default":"Trident"}},{"regex":"IE[ /](\\\\d+[\\\\.\\\\d]+)","name":"Internet Explorer","version":"$1","engine":{"default":"Trident"}},{"regex":"Kazehakase(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Kazehakase","version":"$1","engine":{"default":""}},{"regex":"Kindle/(\\\\d+[\\\\.\\\\d]+)","name":"Kindle Browser","version":"$1"},{"regex":"K-meleon(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"K-meleon","version":"$1","engine":{"default":"Gecko"}},{"regex":"Links(?: \\\\((\\\\d+[\\\\.\\\\d]+))?","name":"Links","version":"$1","engine":{"default":"Text-based"}},{"regex":"LG Browser(?:/(\\\\d+[\\\\.\\\\d]+))","name":"LG Browser","version":"$1"},{"regex":"LuaKit(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"LuaKit","version":"$1"},{"regex":"UP.Browser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Openwave Mobile Browser","version":"$1"},{"regex":"Openwave(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Openwave Mobile Browser","version":"$1"},{"regex":"OmniWeb(?:/[v]?(\\\\d+[\\\\.\\\\d]+))?","name":"OmniWeb","version":"$1","engine":{"default":"WebKit"}},{"regex":"Phoenix(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Phoenix","version":"$1"},{"regex":"NetFrontLifeBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"NetFront Life","version":"$1","engine":{"default":"NetFront"}},{"regex":"NetFront(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"NetFront","version":"$1","engine":{"default":"NetFront"}},{"regex":"PLAYSTATION|NINTENDO 3|AppleWebKit.+ NX/\\\\d+\\\\.\\\\d+\\\\.\\\\d+","name":"NetFront","version":""},{"regex":"NetPositive(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"NetPositive","version":"$1"},{"regex":"NTENTBrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"NTENT Browser","version":"$1"},{"regex":"Odyssey Web Browser(?:.*OWB/(\\\\d+[\\\\.\\\\d]+))?","name":"Odyssey Web Browser","version":"$1"},{"regex":"OffByOne","name":"Off By One","version":""},{"regex":"OneBrowser(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"ONE Browser","version":"$1","engine":{"default":"WebKit"}},{"regex":"Oregano(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"Oregano","version":"$1"},{"regex":"Otter(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"Otter Browser","version":"$1"},{"regex":"(?:Polaris|Embider)(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Polaris","version":"$1"},{"regex":"SEMC-Browser(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"SEMC-Browser","version":"$1"},{"regex":"Sraf(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Seraphic Sraf","version":"$1","engine":{"default":"Blink"}},{"regex":"Shiira(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Shiira","version":"$1","engine":{"default":"WebKit"}},{"regex":"Skyfire(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Skyfire","version":"$1"},{"regex":"Snowshoe(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Snowshoe","version":"$1","engine":{"default":"WebKit"}},{"regex":"Sunrise(?:Browser)?(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Sunrise","version":"$1"},{"regex":"SuperBird(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"SuperBird","version":"$1"},{"regex":"Vision-Browser(?:/(\\\\d+[\\\\.\\\\d]+))","name":"Vision Mobile Browser","version":"$1"},{"regex":"WeTab-Browser","name":"WeTab Browser","version":""},{"regex":"Xiino(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Xiino","version":"$1"},{"regex":"(?:NokiaBrowser|BrowserNG)(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Nokia Browser","version":"$1"},{"regex":"Series60/5\\\\.0","name":"Nokia Browser","version":"7.0"},{"regex":"Series60/(\\\\d+[\\\\.\\\\d]+)","name":"Nokia OSS Browser","version":"$1"},{"regex":"S40OviBrowser/(\\\\d+[\\\\.\\\\d]+)","name":"Nokia Ovi Browser","version":"$1"},{"regex":"^Nokia|Nokia[EN]?\\\\d+","name":"Nokia Browser","version":""},{"regex":"BlackBerry|PlayBook|BB10","name":"BlackBerry Browser","version":""},{"regex":"BriskBard(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"BriskBard","version":"$1"},{"regex":"Android","name":"Android Browser","version":"","engine":{"default":"WebKit"}},{"regex":"Coast(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Coast","version":"$1"},{"regex":"qutebrowser(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Qutebrowser","version":"$1"},{"regex":"(?:(?:iPod|iPad|iPhone).+Version|MobileSafari)/(\\\\d+[\\\\.\\\\d]+)","name":"Mobile Safari","version":"$1","engine":{"default":"WebKit"}},{"regex":"(?:Version/(\\\\d+[\\\\.\\\\d]+).*)?Mobile.*Safari/","name":"Mobile Safari","version":"$1","engine":{"default":"WebKit"}},{"regex":"(?:iPod|iPhone|iPad)","name":"Mobile Safari","version":"","engine":{"default":"WebKit"}},{"regex":"Version/(\\\\d+[\\\\.\\\\d]+).*Safari/|Safari/\\\\d+","name":"Safari","version":"$1","engine":{"default":"WebKit"}},{"regex":"Dorado WAP-Browser[/ ](\\\\d+[\\\\.\\\\d]+)","name":"Dorado","version":"$1"},{"regex":"NetSurf(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"NetSurf","version":"$1","engine":{"default":"NetSurf"}}]')},function(e){e.exports=JSON.parse('[{"regex":"NetFront","name":"NetFront"},{"regex":"Edge","name":"Edge"},{"regex":"Trident","name":"Trident"},{"regex":"Blink","name":"Blink"},{"regex":"(?:Apple)?WebKit","name":"WebKit"},{"regex":"Presto","name":"Presto"},{"regex":"(?<!like )Gecko","name":"Gecko"},{"regex":"KHTML","name":"KHTML"},{"regex":"NetSurf","name":"NetSurf"}]')},function(e,r,o){"use strict";var t=o(1);Object.defineProperty(r,"__esModule",{value:!0});var n=o(6),l=o(3),i=o(2),a=o(77);r.default=function e(r){var o=this;t(this,e),this.options={versionTruncation:1},this.parse=function(e){var r={type:"",name:"",version:""},t=!0,d=!1,m=void 0;try{for(var u,s=a[Symbol.iterator]();!(t=(u=s.next()).done);t=!0){var g=u.value,c=i.userAgentParser(g.regex,e);if(c){r.type="mobile app",r.name=l.variableReplacement(g.name,c),r.version=n.formatVersion(l.variableReplacement(g.version,c),o.options.versionTruncation);break}}}catch(x){d=!0,m=x}finally{try{t||null==s.return||s.return()}finally{if(d)throw m}}return r},this.options=Object.assign({},this.options,r)}},function(e){e.exports=JSON.parse('[{"regex":"AndroidDownloadManager(?:[ /]([\\\\d\\\\.]+))?","name":"AndroidDownloadManager","version":"$1"},{"regex":"(?:Apple)?News(?:[ /][\\\\d\\\\.]+)? Version(?:[ /]([\\\\d\\\\.]+))?","name":"Apple News","version":"$1"},{"regex":"bPod","name":"bPod","version":""},{"regex":"(?:MessengerForiOS|MESSENGER).(?:FBAV)(?:[ /]([\\\\d\\\\.]+))?","name":"Facebook Messenger","version":"$1"},{"regex":"(?:FBAV|com.facebook.katana)(?:[ /]([\\\\d\\\\.]+))?","name":"Facebook","version":"$1"},{"regex":"FeedR(?:/([\\\\d\\\\.]+))?","name":"FeedR","version":"$1"},{"regex":"com.google.android.apps.magazines","name":"Google Play Newsstand","version":""},{"regex":"com.google.GooglePlus","name":"Google Plus","version":""},{"regex":"MicroMessenger/([^ ]+)","name":"WeChat","version":"$1"},{"regex":".*__weibo__([0-9\\\\.]+)__","name":"Sina Weibo","version":"$1"},{"regex":"Pinterest(?:/([\\\\d\\\\.]+))?","name":"Pinterest","version":"$1"},{"regex":"Podcatcher Deluxe","name":"Podcatcher Deluxe","version":""},{"regex":"com.google.android.youtube(?:/([\\\\d\\\\.]+))?","name":"YouTube","version":"$1"},{"regex":"([^/]+)/(\\\\d+(?:\\\\.\\\\d+)+) \\\\((?:iPhone|iPad); iOS [0-9\\\\.]+; Scale/[0-9\\\\.]+\\\\)","name":"$1","version":"$2"},{"regex":"WhatsApp(?:[ /]([\\\\d\\\\.]+))?","name":"WhatsApp","version":"$1"},{"regex":"Line(?:[ /]([\\\\d\\\\.]+))","name":"Line","version":"$1"},{"regex":"Instacast(?:HD)?/(\\\\d\\\\.[\\\\d\\\\.abc]+) CFNetwork/([\\\\d\\\\.]+) Darwin/([\\\\d\\\\.]+)","name":"Instacast","version":"$1"},{"regex":"Podcasts/([\\\\d\\\\.]+)","name":"Podcasts","version":"$1"},{"regex":"Pocket Casts(?:, (?:Android|iOS) v([\\\\d\\\\.]+))?","name":"Pocket Casts","version":"$1"},{"regex":"Podcat/([\\\\d\\\\.]+)","name":"Podcat","version":"$1"},{"regex":"BeyondPod","name":"BeyondPod","version":null},{"regex":"AntennaPod/?([\\\\d\\\\.]+)?","name":"AntennaPod","version":"$1"},{"regex":"Overcast/([\\\\d\\\\.]+)","name":"Overcast","version":"$1"},{"regex":"Player FM","name":"Player FM","version":""},{"regex":"Podkicker(?: Pro)?/([\\\\d\\\\.]+)","name":"Podkicker","version":"$1"},{"regex":"PodcastRepublic/([\\\\d\\\\.]+)","name":"Podcast Republic","version":"$1"},{"regex":"Castro/(\\\\d+)","name":"Castro","version":"$1"},{"regex":"Castro 2 ([\\\\d\\\\.]+)/[\\\\d]+ Like iTunes","name":"Castro 2","version":"$1"},{"regex":"Castro 2","name":"Castro 2","version":""},{"regex":"DoggCatcher","name":"DoggCatcher","version":null},{"regex":"PodcastAddict/v([\\\\d]+)","name":"Podcast & Radio Addict","version":"$1"},{"regex":"Podcat/([\\\\d]+) CFNetwork/([\\\\d\\\\.]+) Darwin/([\\\\d\\\\.]+)","name":"Podcat","version":"$1"},{"regex":"i[cC]atcher[^\\\\d]+([\\\\d\\\\.]+)","name":"iCatcher","version":"$1"},{"regex":"YelpApp/([\\\\d\\\\.]+)","name":"Yelp Mobile","version":"$1"},{"regex":"jp.co.yahoo.android.yjtop/([\\\\d\\\\.]+)","name":"Yahoo! Japan","version":"$1"},{"regex":"RSSRadio/([\\\\d]+)?","name":"RSSRadio","version":"$1"},{"regex":"SogouSearch Android[\\\\d\\\\.]+ version([\\\\d\\\\.]+)?","name":"SogouSearch App","version":"$1"},{"regex":"NewsArticle/([\\\\d\\\\.]+)?","name":"NewsArticle App","version":"$1"},{"regex":"tieba/([\\\\d\\\\.]+)?","name":"tieba","version":"$1"},{"regex":"com\\\\.douban\\\\.group/([\\\\d\\\\.]+)?","name":"douban App","version":"$1"},{"regex":"BingWeb/([\\\\d\\\\.]+)?","name":"BingWebApp","version":"$1"},{"regex":"GSA/([\\\\d\\\\.]+)?","name":"Google Search App","version":"$1"},{"regex":"Flipboard/([\\\\d\\\\.]+)?","name":"Flipboard App","version":"$1"},{"regex":"Instagram[ /]([\\\\d\\\\.]+)?","name":"Instagram App","version":"$1"},{"regex":"baiduboxapp/([\\\\d\\\\.]+)?","name":"Baidu Box App","version":"$1"},{"regex":"Crosswalk(?!.*Streamy)/([\\\\d\\\\.]+)?","name":"CrosswalkApp","version":"$1"}]')},function(e,r,o){"use strict";var t=o(1);Object.defineProperty(r,"__esModule",{value:!0});var n=o(6),l=o(3),i=o(2),a=o(79);r.default=function e(r){var o=this;t(this,e),this.options={versionTruncation:1},this.parse=function(e){var r={type:"",name:"",version:"",url:""},t=!0,d=!1,m=void 0;try{for(var u,s=a[Symbol.iterator]();!(t=(u=s.next()).done);t=!0){var g=u.value,c=i.userAgentParser(g.regex,e);if(c){r.type="feed reader",r.name=l.variableReplacement(g.name,c),r.version=n.formatVersion(l.variableReplacement(g.version,c),o.options.versionTruncation),r.url=g.url;break}}}catch(x){d=!0,m=x}finally{try{t||null==s.return||s.return()}finally{if(d)throw m}}return r},this.options=Object.assign({},this.options,r)}},function(e){e.exports=JSON.parse('[{"regex":"Akregator(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Akregator","version":"$1","url":"http://userbase.kde.org/Akregator","type":"Feed Reader"},{"regex":"Apple-PubSub(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Apple PubSub","version":"$1","url":"https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/pubsub.1.html","type":"Feed Reader"},{"regex":"BashPodder","name":"BashPodder","version":"","url":"http://lincgeek.org/bashpodder/","type":"Feed Reader"},{"regex":"Breaker/v([\\\\d\\\\.]+)","name":"Breaker","version":"$1","url":"https://www.breaker.audio/","type":"Feed Reader App"},{"regex":"Downcast/([\\\\d\\\\.]+)","name":"Downcast","version":"$1","url":"http://downcastapp.com/","type":"Feed Reader App"},{"regex":"FeedDemon(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"FeedDemon","version":"$1","url":"http://www.feeddemon.com/","type":"Feed Reader"},{"regex":"Feeddler(?:RSS|PRO)(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Feeddler RSS Reader","version":"$1","url":"http://www.chebinliu.com/projects/iphone/feeddler-rss-reader/","type":"Feed Reader App"},{"regex":"gPodder/([\\\\d\\\\.]+)","name":"gPodder","version":"$1","url":"http://gpodder.org/","type":"Feed Reader App"},{"regex":"JetBrains Omea Reader(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"JetBrains Omea Reader","version":"$1","url":"http://www.jetbrains.com/omea/reader/","type":"Feed Reader"},{"regex":"Liferea(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Liferea","version":"$1","url":"http://liferea.sf.net/","type":"Feed Reader"},{"regex":"NetNewsWire(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"NetNewsWire","version":"$1","url":"http://netnewswireapp.com/","type":"Feed Reader"},{"regex":"NewsBlur (?:iPhone|iPad) App(?: v(\\\\d+[\\\\.\\\\d]+))?","name":"NewsBlur Mobile App","version":"$1","url":"http://www.newsblur.com","type":"Feed Reader App"},{"regex":"NewsBlur(?:/(\\\\d+[\\\\.\\\\d]+))","name":"NewsBlur","version":"$1","url":"http://www.newsblur.com","type":"Feed Reader"},{"regex":"newsbeuter(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Newsbeuter","version":"$1","url":"http://www.newsbeuter.org/","type":"Feed Reader"},{"regex":"PritTorrent/([\\\\d\\\\.]+)","name":"PritTorrent","version":"$1","url":"http://bitlove.org","type":"Feed Reader"},{"regex":"Pulp[/ ](\\\\d+[\\\\.\\\\d]+)","name":"Pulp","version":"$1","url":"http://www.acrylicapps.com/pulp/","type":"Feed Reader App"},{"regex":"ReadKit(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"ReadKit","version":"$1","url":"http://readkitapp.com/","type":"Feed Reader App"},{"regex":"Reeder(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Reeder","version":"$1","url":"http://reederapp.com/","type":"Feed Reader App"},{"regex":"RSSBandit(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"RSS Bandit","version":"$1","url":"http://www.rssbandit.org)","type":"Feed Reader"},{"regex":"RSS Junkie(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"RSS Junkie","version":"$1","url":"https://play.google.com/store/apps/details?id=com.bitpowder.rssjunkie","type":"Feed Reader App"},{"regex":"RSSOwl(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"RSSOwl","version":"$1","url":"http://www.rssowl.org/","type":"Feed Reader"},{"regex":"Stringer","name":"Stringer","version":"","url":"https://github.com/swanson/stringer","type":"Feed Reader"}]')},function(e,r,o){"use strict";var t=o(1);Object.defineProperty(r,"__esModule",{value:!0});var n=o(6),l=o(3),i=o(2),a=o(81);r.default=function e(r){var o=this;t(this,e),this.options={versionTruncation:1},this.parse=function(e){var r={type:"",name:"",version:"",url:""},t=!0,d=!1,m=void 0;try{for(var u,s=a[Symbol.iterator]();!(t=(u=s.next()).done);t=!0){var g=u.value,c=i.userAgentParser(g.regex,e);if(c){r.type="library",r.name=l.variableReplacement(g.name,c),r.version=n.formatVersion(l.variableReplacement(g.version,c),o.options.versionTruncation),r.url=g.url||"";break}}}catch(x){d=!0,m=x}finally{try{t||null==s.return||s.return()}finally{if(d)throw m}}return r},this.options=Object.assign({},this.options,r)}},function(e){e.exports=JSON.parse('[{"regex":"Wget(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Wget","version":"$1"},{"regex":"Guzzle(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Guzzle (PHP HTTP Client)","version":"$1"},{"regex":"(?:lib)?curl(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"curl","version":"$1"},{"regex":"python-requests(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Python Requests","version":"$1"},{"regex":"Python-urllib(?:/?(\\\\d+[\\\\.\\\\d]+))?","name":"Python urllib","version":"$1"},{"regex":"Java(?:/?(\\\\d+[\\\\.\\\\d]+))?","name":"Java","version":"$1"},{"regex":"(?:perlclient|libwww-perl)(?:/?(\\\\d+[\\\\.\\\\d]+))?","name":"Perl","version":"$1"},{"regex":"okhttp/([\\\\d\\\\.]+)","name":"OkHttp","version":"$1"},{"regex":"HTTP_Request2(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"HTTP_Request2","version":"$1"},{"regex":"HTTP_Request2(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"HTTP_Request2","version":"$1","url":"http://pear.php.net/package/http_request2"},{"regex":"Mechanize(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Mechanize","version":"$1","url":"http://github.com/sparklemotion/mechanize/"},{"regex":"aiohttp(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"aiohttp","version":"$1"},{"regex":"Google-HTTP-Java-Client(?:/(\\\\d+[\\\\.\\\\d\\\\w-]+))?","name":"Google HTTP Java Client","version":"$1"},{"regex":"WWW-Mechanize(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"WWW-Mechanize","version":"$1"},{"regex":"Faraday(?: v(\\\\d+[\\\\.\\\\d]+))?","name":"Faraday","version":"$1"},{"regex":"(?:Go-http-client|Go )/?(?:(\\\\d+[\\\\.\\\\d]+))?(?: package http)?","name":"Go-http-client","version":"$1"},{"regex":"urlgrabber(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"urlgrabber (yum)","version":"$1"},{"regex":"libdnf(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"libdnf","version":"$1"},{"regex":"HTTPie(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"HTTPie","version":"$1"}]')},function(e,r,o){"use strict";var t=o(1);Object.defineProperty(r,"__esModule",{value:!0});var n=o(6),l=o(3),i=o(2),a=o(83);r.default=function e(r){var o=this;t(this,e),this.options={versionTruncation:1},this.parse=function(e){var r={type:"",name:"",version:""},t=!0,d=!1,m=void 0;try{for(var u,s=a[Symbol.iterator]();!(t=(u=s.next()).done);t=!0){var g=u.value,c=i.userAgentParser(g.regex,e);if(c){r.type="media player",r.name=l.variableReplacement(g.name,c),r.version=n.formatVersion(l.variableReplacement(g.version,c),o.options.versionTruncation);break}}}catch(x){d=!0,m=x}finally{try{t||null==s.return||s.return()}finally{if(d)throw m}}return r},this.options=Object.assign({},this.options,r)}},function(e){e.exports=JSON.parse('[{"regex":"Audacious(?:[ /]([\\\\d\\\\.]+))?","name":"Audacious","version":"$1"},{"regex":"Banshee(?:[ /]([\\\\d\\\\.]+))?","name":"Banshee","version":"$1"},{"regex":"Boxee(?:[ /]([\\\\d\\\\.]+))?","name":"Boxee","version":"$1"},{"regex":"Clementine(?:[ /]([\\\\d\\\\.]+))?","name":"Clementine","version":"$1"},{"regex":"Deezer(?:/([\\\\d\\\\.]+))?","name":"Deezer","version":"$1"},{"regex":"iTunes(?:-iPhone|-iPad)?(?:/([\\\\d\\\\.]+))?","name":"iTunes","version":"$1"},{"regex":"FlyCast(?:/([\\\\d\\\\.]+))?","name":"FlyCast","version":"$1"},{"regex":"foobar2000(?:/([\\\\d\\\\.]+))?","name":"Foobar2000","version":"$1"},{"regex":"MediaMonkey(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"MediaMonkey","version":"$1"},{"regex":"Miro(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Miro","version":"$1"},{"regex":"NexPlayer(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"NexPlayer","version":"$1"},{"regex":"Nightingale(?:/([\\\\d\\\\.]+))?","name":"Nightingale","version":"$1"},{"regex":"QuickTime(?:(?:(?:.+qtver=)|(?:(?: E-)?[\\\\./]))([\\\\d\\\\.]+))?","name":"QuickTime","version":"$1"},{"regex":"Songbird(?:/([\\\\d\\\\.]+))?","name":"Songbird","version":"$1"},{"regex":"SubStream(?:/([\\\\d\\\\.]+))?","name":"SubStream","version":"$1"},{"regex":"(?:Lib)?VLC(?:/([\\\\d\\\\.]+))?","name":"VLC","version":"$1"},{"regex":"Winamp(?:MPEG)?(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Winamp","version":"$1"},{"regex":"(?:Windows-Media-Player|NSPlayer)(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Windows Media Player","version":"$1"},{"regex":"XBMC(?:/([\\\\d\\\\.]+))?","name":"XBMC","version":"$1"},{"regex":"Kodi(?:/([\\\\d\\\\.]+))?","name":"Kodi","version":"$1"},{"regex":"stagefright(?:/([\\\\d\\\\.]+))?","name":"Stagefright","version":"$1"}]')},function(e,r,o){"use strict";var t=o(1);Object.defineProperty(r,"__esModule",{value:!0});var n=o(6),l=o(3),i=o(2),a=o(85);r.default=function e(r){var o=this;t(this,e),this.options={versionTruncation:1},this.parse=function(e){var r={type:"",name:"",version:""},t=!0,d=!1,m=void 0;try{for(var u,s=a[Symbol.iterator]();!(t=(u=s.next()).done);t=!0){var g=u.value,c=i.userAgentParser(g.regex,e);if(c){r.type="personal information manager",r.name=l.variableReplacement(g.name,c),r.version=n.formatVersion(l.variableReplacement(g.version,c),o.options.versionTruncation);break}}}catch(x){d=!0,m=x}finally{try{t||null==s.return||s.return()}finally{if(d)throw m}}return r},this.options=Object.assign({},this.options,r)}},function(e){e.exports=JSON.parse('[{"regex":"Outlook-Express(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Outlook Express","version":"$1"},{"regex":"Microsoft Outlook(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Microsoft Outlook","version":"$1"},{"regex":"(?:Thunderbird|Icedove|Shredder)(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Thunderbird","version":"$1"},{"regex":"Airmail(?: (\\\\d+[\\\\.\\\\d]+))?","name":"Airmail","version":"$1"},{"regex":"Lotus-Notes(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"Lotus Notes","version":"$1"},{"regex":"Barca(?:Pro)?(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Barca","version":"$1"},{"regex":"Postbox(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Postbox","version":"$1"},{"regex":"MailBar(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"MailBar","version":"$1"},{"regex":"The Bat!(?: Voyager)?(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"The Bat!","version":"$1"},{"regex":"DAVdroid(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"DAVdroid","version":"$1"},{"regex":"(?:SeaMonkey|Iceape)(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"SeaMonkey","version":"$1"}]')},function(e,r,o){"use strict";var t=o(1),n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var l=n(o(87)),i=n(o(89)),a=n(o(91)),d=n(o(93)),m=n(o(95)),u=n(o(97)),s=[m.default,d.default,l.default,a.default,u.default,i.default];r.default=function e(){t(this,e),this.parse=function(e){var r=!0,o=!1,t=void 0;try{for(var n,l=s[Symbol.iterator]();!(r=(n=l.next()).done);r=!0){var i=(new(0,n.value)).parse(e);if(""!==i.type)return i}}catch(a){o=!0,t=a}finally{try{r||null==l.return||l.return()}finally{if(o)throw t}}return null}}},function(e,r,o){"use strict";var t=o(4),n=o(1);Object.defineProperty(r,"__esModule",{value:!0});var l=o(3),i=o(2),a=o(88);r.default=function e(){n(this,e),this.parse=function(e){for(var r={type:"",brand:"",model:""},o=0,n=Object.entries(a);o<n.length;o++){var d=n[o],m=t(d,2),u=m[0],s=m[1],g=i.userAgentParser(s.regex,e);if(g){if(r.type="camera",r.brand=u,s.model)r.model=l.variableReplacement(s.model,g).trim();else if(s.models){var c=!0,x=!1,p=void 0;try{for(var f,S=s.models[Symbol.iterator]();!(c=(f=S.next()).done);c=!0){var h=f.value,v=i.userAgentParser(h.regex,e);if(v){r.model=l.variableReplacement(h.model,v).trim();break}}}catch(A){x=!0,p=A}finally{try{c||null==S.return||S.return()}finally{if(x)throw p}}}break}}return r}}},function(e){e.exports=JSON.parse('{"Nikon":{"regex":"Coolpix S800c","device":"camera","model":"Coolpix S800c"},"Samsung":{"regex":"EK-G[CN][0-9]{3}","device":"camera","models":[{"regex":"EK-GN120","model":"GALAXY NX"},{"regex":"EK-GC100","model":"GALAXY Camera"},{"regex":"EK-GC110","model":"GALAXY Camera WiFi only"},{"regex":"EK-GC200","model":"GALAXY Camera 2"},{"regex":"EK-GC([0-9]{3})","model":"GALAXY Camera $1"}]}}')},function(e,r,o){"use strict";var t=o(4),n=o(1);Object.defineProperty(r,"__esModule",{value:!0});var l=o(3),i=o(2),a=o(28),d=o(90);r.default=function e(){n(this,e),this.parse=function(e){for(var r={type:"",brand:"",model:""},o=0,n=Object.entries(d);o<n.length;o++){var m=n[o],u=t(m,2),s=u[0],g=u[1],c=i.userAgentParser(g.regex,e);if(c){if(r.type=g.device,r.brand=s,g.model)r.model=a.buildModel(l.variableReplacement(g.model,c)).trim();else if(g.models){var x=!0,p=!1,f=void 0;try{for(var S,h=g.models[Symbol.iterator]();!(x=(S=h.next()).done);x=!0){var v=S.value,A=i.userAgentParser(v.regex,e);if(A){r.model=a.buildModel(l.variableReplacement(v.model,A)).trim(),v.device&&(r.type=v.device),v.brand&&(r.brand=v.brand);break}}}catch(b){p=!0,f=b}finally{try{x||null==h.return||h.return()}finally{if(p)throw f}}}break}}return"tv"===r.type&&(r.type=r.type.replace("tv","television")),"Unknown"===r.brand&&(r.brand=""),r}}},function(e){e.exports=JSON.parse('{"Tunisie Telecom":{"regex":"StarTrail TT[);/ ]","device":"smartphone","model":"StarTrail by TT"},"SFR":{"regex":"StarShine|StarTrail|STARADDICT|StarText|StarNaute|StarXtrem|StarTab","device":"smartphone","models":[{"regex":"StarXtrem[);/ ]","model":"StarXtrem"},{"regex":"StarTrail ?4[);/ ]","model":"StarTrail 4"},{"regex":"StarTrail III[);/ ]","model":"StarTrail 3"},{"regex":"StarTrail II[);/ ]","model":"StarTrail 2"},{"regex":"StarTrail[);/ ]","model":"StarTrail"},{"regex":"StarShine II[);/ ]","model":"StarShine 2"},{"regex":"StarShine[);/ ]","model":"StarShine"},{"regex":"STARADDICT 4[);/ ]","model":"Staraddict 4"},{"regex":"STARADDICT III[);/ ]","model":"Staraddict 3"},{"regex":"STARADDICT II Plus[);/ ]","model":"Staraddict 2 Plus"},{"regex":"STARADDICT II[);/ ]","model":"Staraddict 2"},{"regex":"STARADDICT[);/ ]","model":"Staraddict"},{"regex":"StarText II[);/ ]","model":"StarText 2"},{"regex":"StarText[);/ ]","model":"StarText"},{"regex":"StarNaute II[);/ ]","model":"StarNaute 2"},{"regex":"StarNaute[);/ ]","model":"StarNaute"},{"regex":"StarTab","model":"StarTab","device":"tablet"},{"regex":"((?:StarShine|StarTrail|STARADDICT|StarText|StarNaute|StarXtrem)[^;/]*) Build","model":"$1"}]},"HTC":{"regex":"HTC|Sprint (?:APA|ATP)|ADR(?!910L)[a-z0-9]+|NexusHD2|Amaze[ _]4G[);/ ]|(Desire|Sensation|Evo ?3D|IncredibleS|Wildfire|Butterfly)[ _]?([^;/]+) Build|(Amaze[ _]4G|One ?[XELSV\\\\+]+)[);/ ]|SPV E6[05]0|One M8|X525a|PG86100|PC36100|XV6975|PJ83100[);/ ]|2PYB2|2PZC5|0PJA10|0PJA2","device":"smartphone","models":[{"regex":"2PZC5[);/ ]","model":"U11"},{"regex":"XV6975[);/ ]","model":"Imagio"},{"regex":"PG86100[);/ ]","model":"Evo 3G"},{"regex":"PC36100[);/ ]","model":"Evo 4G"},{"regex":"PJ83100[);/ ]","model":"One X"},{"regex":"(?:0PJA2|0PJA10)[);/ ]","model":"One M9"},{"regex":"ADR6300","model":"Droid Incredible"},{"regex":"ADR6400L","model":"ThunderBolt"},{"regex":"ADR6410LRA","model":"Droid Incredible 3"},{"regex":"SPV E600","model":"Excalibur"},{"regex":"SPV E650","model":"Vox"},{"regex":"X525a","model":"One X+"},{"regex":"2PYB2","model":"Bolt"},{"regex":"NexusHD2","model":"HD2"},{"regex":"HTC[ _\\\\-]P715a","device":"tablet","model":"P715a"},{"regex":"HTC[ _\\\\-]Flyer Build","device":"tablet","model":"Flyer"},{"regex":"HTC[ _\\\\-]Flyer[ _\\\\-]([\\\\w]{1,5})","device":"tablet","model":"Flyer $1"},{"regex":"HTC[ _\\\\-]One[ _\\\\-]max[);/ ]","device":"phablet","model":"One max"},{"regex":"HTC[ _]([^/;]+) [0-9]+(?:\\\\.[0-9]+)+ Build","model":"$1"},{"regex":"HTC[ _]([^/;]+) Build","model":"$1"},{"regex":"HTC[ _]([a-z0-9]+[ _\\\\-]?(?:[a-z0-9_+\\\\-])*)","model":"$1"},{"regex":"USCCHTC(\\\\d+)","model":"$1"},{"regex":"Sprint (ATP.*) Build","device":"tablet","model":"$1 (Sprint)"},{"regex":"Sprint (APA.*) Build","model":"$1 (Sprint)"},{"regex":"HTC(?:[\\\\-/ ])?([a-z0-9\\\\-_]+)","model":"$1"},{"regex":"HTC;(?: )?([a-z0-9 ]+)","model":"$1"},{"regex":"(Desire|Sensation|Evo ?3D|IncredibleS|Wildfire|Butterfly)[ _]?([^;/]+) Build","model":"$1 $2"},{"regex":"(Amaze[ _]4G|One ?[XELSV\\\\+]*) Build","model":"$1"},{"regex":"(ADR[^;/]+) Build","model":"$1"},{"regex":"(ADR[a-z0-9]+)","model":"$1"},{"regex":"(One M8)","model":"$1"}]},"Microsoft":{"regex":"KIN\\\\.(One|Two)|RM-(?:1031|106[57]|109[02]|1096|1099|1109|1114|1127|1141|1154)|Microsoft; Lumia","device":"smartphone","models":[{"regex":"KIN\\\\.(One|Two)","device":"feature phone","model":"Kin $1"},{"regex":"RM-1031","model":"Lumia 532"},{"regex":"RM-106[57]","model":"Lumia 640 XL"},{"regex":"RM-1096","model":"Lumia 640 XL"},{"regex":"RM-109[02]","model":"Lumia 535"},{"regex":"RM-1099","model":"Lumia 430"},{"regex":"RM-1109","model":"Lumia 640"},{"regex":"RM-1114","model":"Lumia 435"},{"regex":"RM-1127","model":"Lumia 550"},{"regex":"RM-1141","model":"Lumia 540"},{"regex":"RM-1154","model":"Lumia 650"},{"regex":"Microsoft; Lumia ([^;/)]+)[;/)]","model":"Lumia $1"}]},"Nokia":{"regex":"Nokia|Lumia|Maemo RX|portalmmm/2\\\\.0 N7|portalmmm/2\\\\.0 NK|nok[0-9]+|Symbian.*\\\\s([a-z0-9]+)$|RX-51 N900|TA-[0-9]{4}","device":"smartphone","models":[{"regex":"TA-10(07|23|29|35)","model":"2"},{"regex":"TA-10(20|28|32|38)","model":"3"},{"regex":"TA-10(24|27|44|53)","model":"5"},{"regex":"TA-10(00|03|21|25|33|39|54)","model":"6"},{"regex":"TA-1041","model":"7"},{"regex":"TA-10(04|12|52)","model":"8"},{"regex":"Nokia ([A-Za-z0-9\\\\. ]+) Build","model":"$1"},{"regex":"RX-51 N900","model":"N900"},{"regex":"Nokia(N[0-9]+)","model":"$1"},{"regex":"Nokia-([a-z0-9]+)","model":"N$1"},{"regex":"NOKIA; (?!Qt;)([a-z0-9\\\\- ]+)","model":"$1"},{"regex":"NOKIA[ _]?([a-z0-9\\\\-]+)","model":"$1"},{"regex":"NOKIA/([a-z0-9 ]+)","model":"$1"},{"regex":"(Lumia [a-z0-9\\\\-]+ XL)","device":"phablet","model":"$1"},{"regex":"(Lumia [a-z0-9\\\\-]+)","model":"$1"},{"regex":"Maemo RX-51 ([a-z0-9]+)","model":"$1"},{"regex":"Maemo RX-34","model":"N800"},{"regex":"NokiaInternal|Nokia-WAP-Toolkit|Nokia-MIT-Browser|Nokia Mobile|Nokia Browser|Nokia/Series","model":""},{"regex":"portalmmm/2\\\\.0 (N7[37]|NK[a-z0-9]+)","model":"$1"},{"regex":"nok([0-9]+)","model":"$1"},{"regex":"Symbian.*\\\\s([a-z0-9]+)$","device":"feature phone","model":"$1"}]},"CnM":{"regex":"CnM","device":"tablet","models":[{"regex":"CnM[ \\\\-](?:Touchpad|TP)[ \\\\-]([0-9\\\\.]+)","model":"Touchpad $1"}]},"RIM":{"regex":"BB10;|BlackBerry|rim[0-9]+|PlayBook|STV100-[1234]|STH100-[12]|BBA100-[12]|BBB100-[1234567]|BBC100-1|BBD100-[126]|BBE100-[123456789]|BBF100-[123456789]|BBG100-1|BBH100-1","device":"smartphone","models":[{"regex":"BBA100-[12]","model":"BlackBerry DTEK60"},{"regex":"BBB100-[1234567]","model":"KEYone"},{"regex":"BBC100-1","model":"Aurora"},{"regex":"BBD100-[126]","model":"Motion"},{"regex":"BBE100-[123456789]","model":"KEY2 LE"},{"regex":"BBF100-[1234567]","model":"KEY2"},{"regex":"BBF100-8","model":"KEY2 Silver"},{"regex":"BBF100-9","model":"KEY2 Black"},{"regex":"BBG100-1","model":"Evolve"},{"regex":"BBH100-1","model":"Evolve X"},{"regex":"STV100-[1234]","model":"BlackBerry Priv"},{"regex":"STH100-[12]","model":"BlackBerry DTEK50"},{"regex":"BB10; ([a-z0-9\\\\- ]+)\\\\)","model":"BlackBerry $1"},{"regex":"PlayBook.+RIM Tablet OS","model":"BlackBerry Playbook","device":"tablet"},{"regex":"BlackBerry(?: )?([a-z0-9]+)","model":"BlackBerry $1"},{"regex":"rim([0-9]+)","model":"BlackBerry $1"},{"regex":"BlackBerry","model":"BlackBerry"}]},"Palm":{"regex":"(?:Pre|Pixi)/(\\\\d+)\\\\.(\\\\d+)|Palm|Treo|Xiino","device":"smartphone","models":[{"regex":"((?:Pre|Pixi))/(\\\\d+\\\\.\\\\d+)","model":"$1 $2"},{"regex":"Palm(?:[ \\\\-])?((?!OS|Source|scape)[a-z0-9]+)","model":"$1"},{"regex":"Treo([a-z0-9]+)","model":"Treo $1"},{"regex":"Tungsten","model":"Tungsten"},{"regex":"Xiino|Palmscape","model":""}]},"HP":{"regex":"TouchPad/\\\\d+\\\\.\\\\d+|hp-tablet|HP ?iPAQ|webOS.*P160U|HP Slate|HP [78]|Compaq [7|8]|HP; [^;/)]+","device":"smartphone","models":[{"regex":"HP Slate 6 Voice Tab","model":"Slate 6 VoiceTab","device":"phablet"},{"regex":"HP ([78][^/;]*) Build","model":"Slate $1","device":"tablet"},{"regex":"Compaq ([78][^/;]*) Build","model":"Compaq $1","device":"tablet"},{"regex":"HP Slate ?(.+) Build","model":"Slate $1","device":"tablet"},{"regex":"HP Slate ?([0-9]+)","model":"Slate $1","device":"tablet"},{"regex":"TouchPad/(\\\\d+\\\\.\\\\d+)|hp-tablet","model":"TouchPad","device":"tablet"},{"regex":"HP; ([^;/)]+)","model":"$1"},{"regex":"HP(?: )?iPAQ(?: )?([a-z0-9]+)","model":"iPAQ $1"},{"regex":"webOS.*(P160U)","model":"Veer"}]},"TiPhone":{"regex":"TiPhone ?([a-z0-9]+)","device":"smartphone","model":"$1"},"Apple":{"regex":"(?:iTunes-)?Apple[ _]?TV|(?:Apple-|iTunes-)?(?<!like )(?:iPad|iPhone)|iPh[0-9],[0-9]|CFNetwork","models":[{"regex":"(?:Apple-)?iPh(?:one)?1[C,_]1","model":"iPhone","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?1[C,_]2","model":"iPhone 3G","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?2[C,_]1","model":"iPhone 3GS","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?3[C,_][123]","model":"iPhone 4","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?4[C,_]1|1C2%254enohPi","model":"iPhone 4S","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?5[C,_][12]","model":"iPhone 5","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?5[C,_][34]","model":"iPhone 5C","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?6[C,_][12]","model":"iPhone 5S","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?7[C,_]1|1C2%257enohPi","model":"iPhone 6 Plus","device":"phablet"},{"regex":"(?:Apple-)?iPh(?:one)?7[C,_]2","model":"iPhone 6","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?8[C,_]2","model":"iPhone 6s Plus","device":"phablet"},{"regex":"(?:Apple-)?iPh(?:one)?8[C,_]1|iPhone 6s","model":"iPhone 6s","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?8[C,_]4","model":"iPhone SE","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?9[C,_][13]","model":"iPhone 7","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?9[C,_][24]","model":"iPhone 7 Plus","device":"phablet"},{"regex":"(?:Apple-)?iPh(?:one)?10[C,_][14]","model":"iPhone 8","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?10[C,_][25]","model":"iPhone 8 Plus","device":"phablet"},{"regex":"(?:Apple-)?iPh(?:one)?10[C,_][36]|iPhone X","model":"iPhone X","device":"phablet"},{"regex":"(?:Apple-)?iPh(?:one)?11[C,_][2]","model":"iPhone XS","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?11[C,_][46]","model":"iPhone XS Max","device":"phablet"},{"regex":"(?:Apple-)?iPh(?:one)?11[C,_][8]","model":"iPhone XR","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?12[C,_][1]","model":"iPhone 11","device":"smartphone"},{"regex":"(?:Apple-)?iPh(?:one)?12[C,_][3]","model":"iPhone 11 Pro","device":"phablet"},{"regex":"(?:Apple-)?iPh(?:one)?12[C,_][5]","model":"iPhone 11 Pro Max","device":"phablet"},{"regex":"(?:Apple-)?iPad1[C,_]1","model":"iPad","device":"tablet"},{"regex":"(?:Apple-)?iPad2[C,_][1234]","model":"iPad 2","device":"tablet"},{"regex":"(?:Apple-)?iPad2[C,_][567]","model":"iPad Mini","device":"tablet"},{"regex":"(?:Apple-)?iPad3[C,_][123]","model":"iPad 3","device":"tablet"},{"regex":"(?:Apple-)?iPad3[C,_][456]","model":"iPad 4","device":"tablet"},{"regex":"(?:Apple-)?iPad4[C,_][123]","model":"iPad Air","device":"tablet"},{"regex":"(?:Apple-)?iPad4[C,_][456]","model":"iPad Mini 2","device":"tablet"},{"regex":"(?:Apple-)?iPad4[C,_][789]","model":"iPad Mini 3","device":"tablet"},{"regex":"(?:Apple-)?iPad5[C,_][12]","model":"iPad Mini 4","device":"tablet"},{"regex":"(?:Apple-)?iPad5[C,_][34]","model":"iPad Air 2","device":"tablet"},{"regex":"(?:Apple-)?iPad6[C,_][34]","model":"iPad Pro 9.7","device":"tablet"},{"regex":"(?:Apple-)?iPad6[C,_][78]","model":"iPad Pro 12.9","device":"tablet"},{"regex":"(?:Apple-)?iPad6[C,_](?:11|12)","model":"iPad 5 9.7","device":"tablet"},{"regex":"(?:Apple-)?iPad7[C,_][12]","model":"iPad Pro 2 12.9","device":"tablet"},{"regex":"(?:Apple-)?iPad7[C,_][34]","model":"iPad Pro 10.5","device":"tablet"},{"regex":"(?:Apple-)?iPad7[C,_][56]","model":"iPad 6 9.7","device":"tablet"},{"regex":"(?:Apple-)?iPad7[C,_](?:11|12)","model":"iPad 7 10.2","device":"tablet"},{"regex":"(?:Apple-)?iPad8[C,_][1-4]","model":"iPad Pro 3 11.0","device":"tablet"},{"regex":"(?:Apple-)?iPad8[C,_][5-8]","model":"iPad Pro 3 12.9","device":"tablet"},{"regex":"Apple-?TV2[C,_]1","model":"Apple TV 2","device":"tv"},{"regex":"Apple-?TV3[C,_][12]","model":"Apple TV 3","device":"tv"},{"regex":"Apple-?TV5[C,_]3","model":"Apple TV 4","device":"tv"},{"regex":"Apple-?TV6[C,_]2","model":"Apple TV 4K","device":"tv"},{"regex":"(?:iTunes-)?Apple[ _]?TV","model":"Apple TV","device":"tv"},{"regex":"HomePod","model":"HomePod","device":"smart speaker"},{"regex":"iTunes-iPad/[0-9]+(?:\\\\.[0-9]+)* \\\\(([^;]+);","model":"iPad $1","device":"tablet"},{"regex":"(?:Apple-)?iPad","model":"iPad","device":"tablet"},{"regex":"iTunes-iPhone/[0-9]+(?:\\\\.[0-9]+)* \\\\(([^;]+);","model":"iPhone $1","device":"smartphone"},{"regex":"(?:Apple-)?iPhone ?(3GS?|4S?|5[CS]?|6(:? Plus)?)?","model":"iPhone $1","device":"smartphone"}]},"MicroMax":{"regex":"(?:MicroMax[ \\\\-\\\\_]?[a-z0-9]+|Q327)|P70221 Build","device":"smartphone","models":[{"regex":"AQ5001","model":"Canvas Juice 2"},{"regex":"E481","model":"Canvas 5"},{"regex":"P70221 Build","model":"Canvas Tab","device":"tablet"},{"regex":"Q327","model":"Bolt"},{"regex":"Q417","model":"Canvas Mega"},{"regex":"Q424","model":"Bolt Selfie"},{"regex":"Q426","model":"Canvas Mega 2"},{"regex":"MicroMax(?:[ \\\\-\\\\_])?(P[a-z0-9]+)","model":"$1","device":"tablet"},{"regex":"MicroMax(?:[ \\\\-\\\\_])?([a-z0-9]+)","model":"$1"}]},"3Q":{"regex":"AC0731B|AC1024C|AC7803C|BC9710AM|EL72B|LC0720C|LC0723B|LC0725B|LC0804B|LC0808B|LC0809B|LC0810C|LC0816C|LC0901D|LC1016C|MT0724B|MT0729[BD]|MT0811B|OC1020A|RC0709B|RC0710B|RC0718C|RC0719H|RC0721B|RC0722C|RC0726B|RC0734H|RC0743H|RC0817C|RC1018C|RC1019G|RC1025F|RC1301C|RC7802F|RC9711B|RC9712C|RC9716B|RC9717B|RC9724C|RC9726C|RC9727F|RC9730C|RC9731C|TS0807B|TS1013B|VM0711A|VM1017A|RC0813C|QS9719D|QS9718C|QS9715F|QS1023H|QS0815C|QS0730C|QS0728C|QS0717D|QS0716D|QS0715C|MT7801C|TS9708B|AC0732C|MT0739D|MT0812E|(?:3Q_)?ER71B","device":"tablet","models":[{"regex":"MT0724B|LC0901D|LC0816C|LC0810C|LC0809B|LC0808B|LC0804B|LC0725B|LC0723B","model":"Qoo! P-Pad"},{"regex":"VM1017A|TS1013B|TS0807B|RC9731C|RC9730C|RC9727F|RC9726C|RC9724C|RC9717B|RC9716B|RC9712C|RC9711B|RC1301C|RC1025F|RC1019G|RC1018C|RC0817C|RC0813C|RC0743H|RC0734H|RC0726B|RC0722C|RC0721B|RC0719H|RC0718C|RC0710B|RC0709B|QS9715F|QS1023H|QS0815C|QS0730C|QS0728C|QS0717D|QS0716D|QS0715C|MT0811B|MT0739D|MT0729[BD]|LC1016C|LC0720C|BC9710AM|AC1024C|AC0731B","model":"Qoo! Q-Pad"},{"regex":"MT7801C|QS9718C|QS9719D|VM0711A|OC1020A","model":"Qoo! Surf"},{"regex":"TS9708B","model":"Surf TS1009B"},{"regex":"AC7803C|AC0732C","model":"Qoo! Lite"},{"regex":"MT0812E|RC7802F","model":"Qoo! Meta"},{"regex":"EL72B|(?:3Q_)?ER71B","model":"Qoo! Q-Book"}]},"4Good":{"regex":"4Good[ _]|(?:4Good)?(S450m [43]G|S555m 4G|S501m 3G|T700i_3G|Light A103)","device":"smartphone","models":[{"regex":"T700i_3G","model":"T700i 3G","device":"tablet"},{"regex":"S555m[_ ]4G","model":"People"},{"regex":"(S(?:450m|501m)[_ ][43]G|Light A103)","model":"$1"},{"regex":"4Good[ _]([^;/]+) Build","model":"$1"},{"regex":"4Good[ _]([^);/ ]+)","model":"$1"}]},"AllCall":{"regex":"AllCall_|Heat[34]|Hot ?[125][^;/]+ Build","device":"smartphone","models":[{"regex":"AllCall_(Alpha|Atom|Bro|Madrid)","model":"$1"},{"regex":"AllCall_S1_X","model":"S1 X"},{"regex":"AllCall_S1","model":"S1"},{"regex":"AllCall_RIO_S","model":"Rio S"},{"regex":"AllCall_RIO_PRO","model":"Rio Pro"},{"regex":"AllCall_RIO","model":"Rio"},{"regex":"Heat([34])","model":"Heat $1"},{"regex":"Hot ?([125][^;/]+) Build","model":"Hot $1"}]},"Bravis":{"regex":"Bravis[ _]|A501 Bright|NB(?:106M|10[1-8]|751|7[145]|8[57]1|76)|NP101|NP 104 3G|B501|N1-570 Space","device":"smartphone","models":[{"regex":"A501 Bright","model":"A501 Bright"},{"regex":"Bravis[_ ]X500","model":"Trace Pro"},{"regex":"Bravis[_ ]A506","model":"Crystal"},{"regex":"Bravis[_ ]A553","model":"Discovery"},{"regex":"BRAVIS[ _]TAU","model":"Tau"},{"regex":"BRAVIS[ _]DELTA","model":"Delta"},{"regex":"BRAVIS[ _]TREND","model":"Trend"},{"regex":"B501","model":"Easy"},{"regex":"N1-570","model":"Space"},{"regex":"BRAVIS[ ]A554","model":"A554 Grand"},{"regex":"BRAVIS[ _]SLIM[ _]3G","model":"Slim 3G","device":"tablet"},{"regex":"Bravis[_ ]([^;\\\\)]+) Build","model":"$1"},{"regex":"(NB(?:106M|10[1-8]|751|7[145]|8[57]1|76)|NP101)","model":"$1","device":"tablet"},{"regex":"NP 104 3G","model":"NP104 3G","device":"tablet"}]},"Acer":{"regex":"acer|(?<!ZTE BLADE |ImSmart |ERGO |X-Style Tab )a(?:101|110|2[10]0|211|50[10]|51[10]|70[10])[);/ ]|Android.*V3[67]0[);/ ]|Android.*Z1[23456]0 Build|Android.*Z5\\\\d{2} Build|Android.*T0[234678] Build|Android.*S55[);/ ]|A1-830|A1-81[01]|A1-7[23]4|A3-A[1234][01]|B1-7[1235678][01]|B1-7[23]3|B1-8[1235]0|B1-A71|B3-A[12]0|B3-A3[02]|E39[);/ ]|S5[12]0 Build|DA[0-9]+HQ?L[);/ ]|Aspire V5-121|Predator G9-793|GT-810","device":"smartphone","models":[{"regex":"DA220HQL[);/ ]","model":"DA220HQL","device":"smart display"},{"regex":"DA241HL[);/ ]","model":"DA241HL","device":"smart display"},{"regex":"(DA[0-9]+HQ?L)[);/ ]","model":"$1","device":"smart display"},{"regex":"A1-81[01]","model":"Iconia A","device":"tablet"},{"regex":"A1-830","model":"Iconia A1","device":"tablet"},{"regex":"A1-7[23]4","model":"Iconia Talk S","device":"tablet"},{"regex":"A3-A[12][01]","model":"Iconia A3","device":"tablet"},{"regex":"A3-A[34]0","model":"Iconia Tab 10","device":"tablet"},{"regex":"B1-7[5678]0|B1-730HD","model":"Iconia One 7","device":"tablet"},{"regex":"B1-7[123][01]|B1-A71","model":"Iconia B1","device":"tablet"},{"regex":"B1-7[23]3","model":"Iconia Talk 7","device":"tablet"},{"regex":"B1-8[1235]0","model":"Iconia One 8","device":"tablet"},{"regex":"B3-A[12]0|B3-A3[02]","model":"Iconia One 10","device":"tablet"},{"regex":"A101","model":"Vangogh","device":"tablet"},{"regex":"A200","model":"Picasso E","device":"tablet"},{"regex":"A50[01]","model":"Picasso","device":"tablet"},{"regex":"Acer One 7","model":"One 7","device":"tablet"},{"regex":"GT-810","model":"Predator 8","device":"tablet"},{"regex":"E39[);/ ]","model":"Liquid E700"},{"regex":"E310[);/ ]","model":"Liquid Mini"},{"regex":"E320(?:-orange)?[);/ ]","model":"Liquid Express"},{"regex":"E310[);/ ]","model":"beTouch E210"},{"regex":"Android.*V360[);/ ]","model":"Liquid E1 Duo"},{"regex":"Android.*V370[);/ ]","model":"Liquid E2 Duo"},{"regex":"S510[);/ ]","model":"Liquid S1"},{"regex":"S520[);/ ]","model":"Liquid S2"},{"regex":"(?:Acer_)?P400[);/ ]","model":"neoTouch P400"},{"regex":"(?:Acer_)?P300[);/ ]","model":"neoTouch P300"},{"regex":"(?:Acer_)?S200[);/ ]","model":"neoTouch S200"},{"regex":"(?:Acer_)?E100[);/ ]","model":"beTouch E100"},{"regex":"Android.*Z1([234])0[);/ ]","model":"Liquid Z$1"},{"regex":"Android.*Z110[);/ ]","model":"Liquid Z110"},{"regex":"Android.*Z150[);/ ]","model":"Liquid Z5 Duo"},{"regex":"Android.*Z160[);/ ]","model":"Liquid Z4 Duo"},{"regex":"Android.*Z(5\\\\d{2})[);/ ]","model":"Liquid Z$1"},{"regex":"Android.*S57[);/ ]","model":"Liquid Jade Z"},{"regex":"Android.*T02[);/ ]","model":"Liquid Z530"},{"regex":"Android.*T03[);/ ]","model":"Liquid Z630"},{"regex":"Android.*T04[);/ ]","model":"Liquid Z630S"},{"regex":"Android.*T06[);/ ]","model":"Liquid Zest"},{"regex":"Android.*T07[);/ ]","model":"Liquid Zest 4G"},{"regex":"Android.*T08[);/ ]","model":"Liquid Zest Plus"},{"regex":"TM01[);/ ]","model":"Liquid M330"},{"regex":"M220[);/ ]","model":"Liquid M220"},{"regex":"AcerTD600","model":"TD600"},{"regex":"Android.*S55[);/ ]","model":"Liquid Jade"},{"regex":"(?:Acer )?(Chromebook R1[13])","model":"$1","device":"desktop"},{"regex":"(?:Acer )?(Chromebook 14)","model":"$1","device":"desktop"},{"regex":"(Aspire V5-121)","model":"$1","device":"desktop"},{"regex":"(Predator G9-793)","model":"$1","device":"desktop"},{"regex":"Acer; ?([^;\\\\(\\\\)/]+)","model":"$1"},{"regex":"Acer(?! ?inc)[ _\\\\-]?([^;\\\\(\\\\)/]+)[();/ ]","model":"$1"},{"regex":"acer[\\\\-_]([a-z0-9]+)","model":"$1"},{"regex":"a(101|110|2[10]0|211|50[10]|51[10]|70[10])[);/ ]","model":"Iconia Tab A$1","device":"tablet"}]},"Advan":{"regex":"(i7U|S45E|5061|S50H|I7D|i55[KD]|i4U|S7D|S4Z|i5[KE]|S5E[ _]NXT) Build","device":"smartphone","models":[{"regex":"i7U","model":"I Lite i7U"},{"regex":"S5E[ _]NXT","model":"S5E NXT"},{"regex":"i(55[KD]|5[KE])","model":"I$1"},{"regex":"i4U","model":"I4U"},{"regex":"(S45E|5061|S50H|I7D|S7D|S4Z)","model":"$1"}]},"Advance":{"regex":"Hollogram|HL6246|IntroTr3544|Tr3845","device":"smartphone","models":[{"regex":"IntroTr3544|Tr3845","model":"Intro","device":"tablet"},{"regex":"HL6246","model":"Hollogram HL6246"},{"regex":"Hollogram ([^;\\\\)]+) Build","model":"Hollogram $1"}]},"AGM":{"regex":"AGM ([^/;\\\\)]+)(?: Build|\\\\))","device":"smartphone","models":[{"regex":"AGM ([^/;\\\\)]+)(?: Build|\\\\))","model":"$1"}]},"Airness":{"regex":"AIRNESS-([\\\\w]+)","device":"feature phone","model":"$1"},"Aiwa":{"regex":"AW790|M300","device":"smartphone","models":[{"regex":"AW790","model":"AW790"},{"regex":"M300","model":"M300","device":"phablet"}]},"Akai":{"regex":"Akai[ _-]|Eco[ _]E2|Glory[ _](?:G[1235]|L[123]|O[125])|TAB-[79]8[03]0Q?|X6 METAL|AKTB-703MZ","device":"smartphone","models":[{"regex":"TAB-([79]8[03]0Q?)","device":"tablet","model":"TAB $1"},{"regex":"(AKTB-703MZ)","device":"tablet","model":"$1"},{"regex":"X6 METAL","model":"iLike"},{"regex":"Glory[ _](G[1235]|L[123]|O[125])","model":"Glory $1"},{"regex":"Eco[ _]E2","model":"Eco E2"},{"regex":"Akai[ _-]([^;/]+) Build","model":"$1"},{"regex":"Akai[ _-]([^;/]+)[;/)]","model":"$1"}]},"Arian Space":{"regex":"Arian Space","device":"tablet","models":[{"regex":"100 ST1004PG","model":"100"},{"regex":"80 SS8003PG","model":"80"},{"regex":"71 ST7002PG","model":"71"},{"regex":"70 ST7001RW","model":"70"}]},"Alcatel":{"regex":"Alcatel|Alc(?!or )[a-z0-9]+|One[ _]?Touch|idol3|(?:4003[AJ]|4009[ADEFIKMSX]|4013[DEJKMX]|4014[ADEKMX]|4015[ADNTX]|4016[ADX]|4017[ADEFSX]|4018[ADEFMX]|4024[EDX]|4027[ADNX]|4028[AEJS]|4032[ADEX]|4034[ADEFGX]|4035[ADXY]|4045[ADEX]|4047[ADFGNX]|4049[DEGMX]|4060[SW]|4114E|5009[AD]|5010[DEGSUX]|5011A|5012[DFG]|5015[ADEX]|5016[AXJ]|5017[ABDEOX]|5019D|5022[EDX]|5023[EF]|5024A|5025[DEG]|5026[AD]|5027B|5033[AX]|5033D[ _]RU|5034D|5038[ADEX]|5041C|5042[ADEFGWX]|5044[ADGIKOPSTY]|5045[ADFGIJTXY]|5046[ADGIJSTUY]|5047[DIUY]|5049[EGSWZ]|5050[ASXY]|5051[ADEJMTWX]|5052[AD]|5054[ADNSTWX]|5056[ADEGIJMNTUWX]|5057M|5058[AIY]|5059[ADXYZ]|5065[ADNWX]|5070D|5080[ADFQUX]|5085[ABCDGHIJNOQY]|5086[ADY]|5090[AIY]|5095[IKY]|5098[OS]|5099[ADYUI]|5116J|5145A|6016[ADEX]|6036[AXY]|6037[BKY]|6039[AHJKY]|6043[AD]|6044D|6045[BFIKOY]|6050[AFY]|6055[ABDHIKPUYZ]|6058[ADX]|6060S|6062W|6070K|7040[ADEFKRT]|7041[DX]|7043[AEKY]|7044[AX]|7045Y|7048[ASWX]|7055A|7070X|8030Y|8050[DEGX]|8063|9001[DIX]|9002X|9003[AX]|9024O|9005X|9007[ATX]|9008[ADIJNTUX]|9010X|9022X|9203A|A570BL|I213|I216X)[);/ ]|TIMXL","device":"smartphone","models":[{"regex":"(?:5022[EDX]|5070D)[);/ ]","model":"One Touch Pop Star"},{"regex":"6044D[);/ ]","model":"One Touch Pop Up"},{"regex":"(?:4015[ATX]|4016A)[);/ ]","model":"One Touch Pop C1"},{"regex":"(?:4015[DN]|4016[DX])[);/ ]","model":"One Touch Pop C1 Dual SIM"},{"regex":"4032[AX][);/ ]","model":"One Touch Pop C2"},{"regex":"4032[DE][);/ ]","model":"One Touch Pop C2 Dual SIM"},{"regex":"(?:7040[AFK]|7041X)[);/ ]","model":"One Touch Pop C7"},{"regex":"(?:7040[DE]|7041D)[);/ ]","model":"One Touch Pop C7 Dual SIM"},{"regex":"4018[ADEFMX][);/ ]","model":"One Touch Pop D1"},{"regex":"4035[ADXY][);/ ]","model":"One Touch Pop D3"},{"regex":"5038[ADEX][);/ ]","model":"One Touch Pop D5"},{"regex":"4045[AX][);/ ]","model":"One Touch Pop 2 4\\""},{"regex":"4045[DE][);/ ]","model":"One Touch Pop 2 4\\" Dual SIM"},{"regex":"5042[AFGWX][);/ ]","model":"One Touch Pop 2 4.5\\""},{"regex":"5042[DE][);/ ]","model":"One Touch Pop 2 4.5\\" Dual SIM"},{"regex":"(?:7043[AY]|7044[AX])[);/ ]","model":"One Touch Pop 2 5\\""},{"regex":"7043[EK][);/ ]","model":"One Touch Pop 2 5\\" Dual SIM"},{"regex":"50[16]5X[);/ ]","model":"One Touch Pop 3"},{"regex":"(?:5015[AE]|5016[AJ]|5065[ADWX]|5116J)[);/ ]","model":"One Touch Pop 3 5\\""},{"regex":"(?:5025[DEG]|5054[ADSTX])[);/ ]","model":"One Touch Pop 3 5.5\\""},{"regex":"5015D[);/ ]","model":"One Touch Pop 3 Dual SIM"},{"regex":"5051[AEJMTWX][);/ ]","model":"One Touch Pop 4"},{"regex":"5051D[);/ ]","model":"One Touch Pop 4 Dual SIM"},{"regex":"5033D[ _]RU","model":"One Touch 5033D"},{"regex":"5095[IKY][);/ ]","model":"One Touch Pop 4S"},{"regex":"5056[ADEGJMTUX][);/ ]","model":"One Touch Pop 4+"},{"regex":"7070X[);/ ]","model":"One Touch Pop 4 6\\""},{"regex":"5057M[);/ ]","model":"One Touch Pop Mirage"},{"regex":"5050[ASXY][);/ ]","model":"One Touch Pop S3"},{"regex":"7045Y[);/ ]","model":"One Touch Pop S7"},{"regex":"6037[BKY][);/ ]","model":"One Touch Idol 2"},{"regex":"5027B[);/ ]","model":"One Touch Dawn"},{"regex":"5024A[);/ ]","model":"1S"},{"regex":"5034D[);/ ]","model":"3L"},{"regex":"7040[RT][);/ ]","model":"One Touch Fierce 2"},{"regex":"5056[NW]","model":"One Touch Fierce 4"},{"regex":"5054[NW]","model":"One Touch Fierce XL"},{"regex":"6016[AX][);/ ]","model":"One Touch Idol 2 mini"},{"regex":"6016[DE][);/ ]","model":"One Touch Idol 2 mini Dual SIM"},{"regex":"6036[AXY][);/ ]","model":"One Touch Idol 2 mini S"},{"regex":"6050[AFY][);/ ]","model":"One Touch Idol 2S"},{"regex":"6039[AHJKY][);/ ]|idol3","model":"One Touch Idol 3"},{"regex":"6045[BFIKOY][);/ ]","model":"One Touch Idol 3 5.5\\""},{"regex":"6055[ABDHIKPUYZ][);/ ]","model":"One Touch Idol 4"},{"regex":"6070K[);/ ]","model":"One Touch Idol 4S"},{"regex":"6058[ADX][);/ ]","model":"One Touch Idol 5"},{"regex":"6060S[);/ ]","model":"One Touch Idol 5S"},{"regex":"6043[AD][);/ ]","model":"One Touch Idol X+"},{"regex":"8030Y[);/ ]","model":"One Touch Hero 2"},{"regex":"7055A[);/ ]","model":"One Touch Hero 2C"},{"regex":"5065N[);/ ]","model":"TRU"},{"regex":"5056I","model":"One Touch Optus X Smart"},{"regex":"A570BL","model":"One Touch Pixi Avion LTE"},{"regex":"4024[DEX][);/ ]","model":"One Touch Pixi First"},{"regex":"4014D[);/ ]","model":"One Touch Pixi 2"},{"regex":"4009[AFIKMSX][);/ ]","model":"One Touch Pixi 3 3.5\\""},{"regex":"4009[DE][);/ ]","model":"One Touch Pixi 3 3.5\\" Dual SIM"},{"regex":"(?:4003[AJ]|4013[DEJKMX]|4014[AEKMX]|4114E)[);/ ]","model":"One Touch Pixi 3 4\\""},{"regex":"(?:4027[ADNX]|4028[AEJS]|5019D)[);/ ]","model":"One Touch Pixi 3 4.5\\""},{"regex":"5017[ABDEOX][);/ ]","model":"One Touch Pixi 3 4.5\\" 4G"},{"regex":"9002X[);/ ]","model":"One Touch Pixi 3 7\\"","device":"phablet"},{"regex":"9007A[);/ ]","model":"One Touch Pixi 3 7\\"","device":"tablet"},{"regex":"9007[TX][);/ ]","model":"One Touch Pixi 3 7\\" 4G","device":"tablet"},{"regex":"9022X[);/ ]","model":"One Touch Pixi 3 8\\"","device":"phablet"},{"regex":"9010X[);/ ]","model":"One Touch Pixi 3 10\\"","device":"tablet"},{"regex":"4017[ADEFSX][);/ ]","model":"One Touch Pixi 4 3.5\\""},{"regex":"4034[ADEFGX][);/ ]","model":"One Touch Pixi 4 4\\""},{"regex":"4060[SW][);/ ]","model":"One Touch Pixi 4 4.5\\""},{"regex":"5023[EF][);/ ]","model":"One Touch Pixi 4 Plus Power"},{"regex":"5010[DEGSUX][);/ ]","model":"One Touch Pixi 4 5\\" 3G"},{"regex":"5012[DFG][);/ ]","model":"One Touch Pixi 4 5.5\\" 3G"},{"regex":"(?:5045[ADFGIJTXY]|5145A)[);/ ]","model":"One Touch Pixi 4 5\\" 4G"},{"regex":"5098O[);/ ]","model":"One Touch Pixi Theatre"},{"regex":"5046[ADIJTUY][);/ ]","model":"A3"},{"regex":"(?:5011A|5049[EG])[);/ ]","model":"A3 Plus"},{"regex":"9008[ADIJNTUX]","model":"A3 XL"},{"regex":"9203A[);/ ]","model":"A3 7\\" 3G","device":"tablet"},{"regex":"5085[BQ][);/ ]","model":"A5"},{"regex":"5085[ADHIJY][);/ ]","model":"A5 LED"},{"regex":"5085N[);/ ]","model":"A5 Max LED"},{"regex":"5090[AIY][);/ ]","model":"A7"},{"regex":"5046[GS][);/ ]","model":"A30"},{"regex":"5049S[);/ ]","model":"A30 Plus"},{"regex":"5049Z[);/ ]","model":"A30 Fierce"},{"regex":"5085[GO]","model":"A50"},{"regex":"5049W[);/ ]","model":"Revvl"},{"regex":"8050[GX][);/ ]","model":"One Touch Pixi 4 6\\" 3G"},{"regex":"8050[ED][);/ ]","model":"One Touch Pixi 4 6\\" 3G Dual SIM"},{"regex":"(?:5098S|9001[DIX])[);/ ]","model":"One Touch Pixi 4 6\\" 4G"},{"regex":"9003[AX][);/ ]","model":"One Touch Pixi 4 7\\" 3G","device":"tablet"},{"regex":"8063[);/ ]","model":"One Touch Pixi 4 7\\" WiFi","device":"tablet"},{"regex":"9024O[);/ ]","model":"One Touch Pixi 5","device":"tablet"},{"regex":"I216X[);/ ]","model":"One Touch Pixi 7","device":"tablet"},{"regex":"I213[);/ ]","model":"One Touch Pixi 7","device":"tablet"},{"regex":"9005X[);/ ]","model":"One Touch Pixi 8","device":"tablet"},{"regex":"P320X","model":"One Touch POP 8","device":"tablet"},{"regex":"P310X","model":"One Touch POP 7","device":"tablet"},{"regex":"7048[ASWX][);/ ]","model":"One Touch Go Play"},{"regex":"(?:Alcatel-)?OT-802[);/ ]","model":"Wave"},{"regex":"ALCATEL_ONE_TOUCH_768T[);/ ]","model":"Island"},{"regex":"(?:TRIBE_)?3075A[);/ ]","model":"One Touch Tribe"},{"regex":"ALCATEL_one_touch_585[);/ ]","model":"One Touch 585"},{"regex":"ALCATEL_ONE_TOUCH_838[);/ ]","model":"One Touch 838"},{"regex":"ALCATEL_one_touch_813d[);/ ]","model":"One Touch 813D"},{"regex":"ALCATEL_one_touch_813[);/ ]","model":"One Touch 813"},{"regex":"OT871A","model":"One Touch 871A"},{"regex":"(?:Alcatel[ _])?One[ _]?Touch[ _]((?:T[0-9]+|TAB[^/;]+|EVO[78](?:HD)?)) Build","device":"tablet","model":"One Touch $1"},{"regex":"(?:Alcatel[ _])?One[ _]?Touch([^/;]*) Build","model":"One Touch$1"},{"regex":"(?:Alcatel[ _])?One[ _]?Touch([^/;\\\\)]*)\\\\)","model":"One Touch$1"},{"regex":"5080[ADFQUX][);/ ]","model":"Shine Lite"},{"regex":"TIMXL","model":"TIM XL"},{"regex":"5085C","model":"PulseMix"},{"regex":"4049[DEGMX][);/ ]","model":"U3"},{"regex":"5044[ADIKOPTY][);/ ]","model":"U5"},{"regex":"4047[DFXN][);/ ]","model":"U5 3G"},{"regex":"5047[DIUY][);/ ]","model":"U5 HD"},{"regex":"4047G[);/ ]","model":"U5 Lite"},{"regex":"4047A[);/ ]","model":"U5 Plus"},{"regex":"4044[CV][);/ ]","model":"Quick Flip"},{"regex":"4044O[);/ ]","model":"Cingular Flip 2"},{"regex":"4044[MNT][);/ ]","model":"Go Flip"},{"regex":"5044[GS][);/ ]","model":"U50"},{"regex":"5033[AX][);/ ]","model":"1"},{"regex":"5009[AD][);/ ]","model":"1C"},{"regex":"5059[ADXYZ][);/ ]","model":"1X"},{"regex":"5052[AD][);/ ]","model":"3"},{"regex":"5099[ADYUI][);/ ]","model":"3V"},{"regex":"5026[AD][);/ ]","model":"3C"},{"regex":"5058[AIY][);/ ]","model":"3X"},{"regex":"5086[ADY][);/ ]","model":"5"},{"regex":"6062W[);/ ]","model":"7"},{"regex":"Alcatel UP","model":""},{"regex":"(?:ALCATEL_)?A383G[);/ ]","model":"Big Easy Plus"},{"regex":"5041C","model":"TETRA"},{"regex":"ALCATEL([^/;]+) Build","model":"$1"},{"regex":"ALCATEL[ \\\\-]?([^/;\\\\)]+)","model":"$1"},{"regex":"ALCATEL_([^/;\\\\)]+)","model":"$1"},{"regex":"Alc([a-z0-9]+)","model":"$1"}]},"Allview":{"regex":"Allview|A4You|A5_(?:Easy(?:_TM)?|Ready(?:_TM)?|Quad|Quad_Plus_TM)|A[56789]_Lite|A5Smiley|A6_Duo|AX2_Frenzy|AX4Nano|AX5NanoQ|C6_Duo|E[23]_Living|E3_(?:Jump|Sign)|E4_Lite|M9_Connect|P(?:43_Easy|[5689]_Energy|6_Energy_Lite|[68]_Energy_Mini(?:_TM)?|(41|[458])_eMagic(?:_TM)?|[589](?:_)?Life(?:_TM)?|[567]_Lite(?:_TM)?|6_plus|[45678]_Pro|7_Seon|10_Style|7_Xtreme|6_Qmax|4_Quad)|V(?:[13]_Viper|1_Viper_I|2_Viper_(?:E|I|S|X|X_plus|Xe))|X(?:[1234]_Soul_Xtreme|[12345]_Soul|3_Soul_Lite|[24]Soul_Mini(?:_TM)?|4_Soul_Mini_S(?:_TM)?|[234]_Soul_Style(?:_TM)?|2_Soul_Style_Plus|2_Twin)|Viva_H801","device":"smartphone","models":[{"regex":"A4You","model":"A4 You"},{"regex":"AX2_Frenzy","model":"AX2 Frenzy","device":"tablet"},{"regex":"AX4Nano","model":"AX4 Nano"},{"regex":"AX5NanoQ","model":"AX5 Nano Q","device":"tablet"},{"regex":"C6_Duo","model":"C6 Duo"},{"regex":"E([23])_Living","model":"E$1 Living"},{"regex":"E3_Jump","model":"E3 Jump"},{"regex":"E3_Sign","model":"E3 Sign"},{"regex":"E4_Lite","model":"E4 Lite"},{"regex":"M9_Connect","model":"M9 Connect"},{"regex":"P43_Easy","model":"P43 Easy"},{"regex":"P(41|[458])_eMagic(?:_TM)?","model":"P$1 eMagic"},{"regex":"P([567])_Lite(?:_TM)?","model":"P$1 Lite"},{"regex":"P6_plus","model":"P6 Plus"},{"regex":"P6_Qmax","model":"P6 Qmax"},{"regex":"P([45678])_Pro","model":"P$1 Pro"},{"regex":"P4_Quad","model":"P4 Quad"},{"regex":"P9_Energy_Lite_2017","model":"P9 Energy Lite (2017)"},{"regex":"P9_Energy_S","model":"P9 Energy S"},{"regex":"P([69])_Energy_Lite","model":"P$1 Energy Lite"},{"regex":"P8_Energy_PRO","model":"P8 Energy Pro"},{"regex":"P([689])_Energy_mini(?:_TM)?","model":"P$1 Energy Mini"},{"regex":"P([5689])_Energy","model":"P$1 Energy"},{"regex":"P7_Seon","model":"P7 Seon"},{"regex":"P7_Xtreme","model":"P7 Xtreme"},{"regex":"P([589])(?:_)?Life(?:_TM)?","model":"P$1 Life"},{"regex":"P10_Style","model":"P10 Style"},{"regex":"V([12])_Viper_I4G(?:_TM)?","model":"V$1 Viper I 4G"},{"regex":"V1_Viper_I","model":"V1 Viper I"},{"regex":"V([13])_Viper","model":"V$1 Viper"},{"regex":"V2_Viper_X_plus","model":"V2 Viper X Plus"},{"regex":"V2_Viper_(E|I|S|X(?:e)?)","model":"V2 Viper $1"},{"regex":"X([124])_Soul_Xtreme","model":"X$1 Soul Xtreme"},{"regex":"X4_Soul_Infinity_(L|N|S|Z)","model":"X4 Soul Infinity $1"},{"regex":"X([34])_Soul_Lite","model":"X$1 Soul Lite"},{"regex":"X4_Soul_Mini_S(?:_TM)?","model":"X4 Soul Mini S"},{"regex":"X([2345])_Soul_Mini(?:_TM)?","model":"X$1 Soul Mini"},{"regex":"X3_Soul_PLUS","model":"X3 Soul Plus"},{"regex":"X([35])_Soul_Pro","model":"X$1 Soul Pro"},{"regex":"X2_Soul_Style_Plus","model":"X2 Soul Style Plus"},{"regex":"X([234])_Soul_Style(?:_TM)?","model":"X$1 Soul Style"},{"regex":"X([12345])_Soul","model":"X$1 Soul"},{"regex":"X2_Twin","model":"X2 Twin"},{"regex":"A5_Easy(?:_TM)?","model":"A5 Easy"},{"regex":"A([56789])_Lite","model":"A$1 Lite"},{"regex":"A5_Ready(?:_TM)?","model":"A5 Ready"},{"regex":"A5Smiley","model":"A5 Smiley"},{"regex":"A5_Quad_Plus_TM","model":"A5 Quad Plus"},{"regex":"A5_Quad","model":"A5 Quad"},{"regex":"A6_Duo","model":"A6 Duo"},{"regex":"Impera S","model":"Impera S"},{"regex":"ALLVIEW P4i","model":"AllDro P4"},{"regex":"Allview_P2","model":"AllDro"},{"regex":"AllviewCityPlus","device":"tablet","model":"City Plus"},{"regex":"AllviewCity","device":"tablet","model":"City"},{"regex":"AllviewAX2Frenzy","device":"tablet","model":"AX2 Frenzy"},{"regex":"Allview2SpeedDuo","device":"tablet","model":"Alldro 2 Speed Duo"},{"regex":"Allview3SpeedQuad","device":"tablet","model":"Alldro 3 Speed Quad"},{"regex":"Viva_H801","device":"tablet","model":"Viva H801"},{"regex":"ALLVIEW ?SPEEDI","device":"tablet","model":"Speed I"},{"regex":"ALLVIEW ?SPEED","device":"tablet","model":"Speed"},{"regex":"ALLVIEWSPEED","device":"tablet","model":"Speed"},{"regex":"AX4Nano","device":"tablet","model":"AX4 Nano"},{"regex":"ALLVIEW_TX1_Quasar","device":"tablet","model":"TX1 Quasar"},{"regex":"Allview[ _-]([^;/]+) Build","model":"$1"},{"regex":"Allview[ _-]([^;/]+)[;/)]","model":"$1"}]},"Allwinner":{"regex":"QUAD-CORE A64 p3","device":"tablet","model":"A64 QUAD-CORE p3"},"altron":{"regex":"AL-555|GI-626","device":"smartphone","models":[{"regex":"AL-555","model":"AL-555"},{"regex":"GI-626","device":"phablet","model":"GI-626"}]},"AMGOO":{"regex":"AM(350|355|40[257]|41[05]|450|50[89]|52[037]|51[58]|53[05])","device":"smartphone","models":[{"regex":"AM350","model":"Jack Pro"},{"regex":"AM(355|407)","model":"Tigo"},{"regex":"AM402","model":"Pronto"},{"regex":"AM410","model":"Unico"},{"regex":"AM450","model":"Swift"},{"regex":"AM508","model":"Fuego"},{"regex":"AM509","model":"Uno"},{"regex":"AM515","model":"D1"},{"regex":"AM518","model":"C1"},{"regex":"AM520","model":"Pro"},{"regex":"AM523","model":"Plus"},{"regex":"AM527","model":"Geo"},{"regex":"AM530","model":"A1"},{"regex":"AM535","model":"P1"},{"regex":"AM([0-9]{3})","model":"AM$1"}]},"Amoi":{"regex":"Amoi|A862W","device":"smartphone","models":[{"regex":"A862W","model":"A862W"},{"regex":"Amoi[\\\\- /]([a-z0-9]+)","model":"$1"},{"regex":"Amoisonic-([a-z0-9]+)","model":"$1"}]},"Ainol":{"regex":"Numy|novo[0-9]","device":"tablet","models":[{"regex":"Numy 3G AX1","model":"Novo 7 Numy AX1 3G"},{"regex":"Numy_3G_AX3","model":"Numy AX3 Sword"},{"regex":"Numy_3G_BW1","model":"Numy 3G Talos 2"},{"regex":"Numy[ _]([^;/]+) Build","model":"Numy $1"},{"regex":"Novo([0-9]+)[ \\\\-]([^;/]+) Build","model":"Novo $1 $2"}]},"Archos":{"regex":"(?:YL-)?Archos","device":"smartphone","models":[{"regex":"Archos (Oxygen 63)[);/ ]","model":"$1"},{"regex":"Archos ?5[);/ ]","device":"tablet","model":"5"},{"regex":"(?:YL-)?Archos ([^/;]*(?:PAD)[^/;]*) Build","device":"tablet","model":"$1"},{"regex":"Archos ((?:[789]|10)[0-9]?[a-z]* ?(?:G9|G10|Helium|Titanium|Cobalt|Platinum|Xenon|Carbon|Neon|XS|IT)[^/;]*) Build","device":"tablet","model":"$1"},{"regex":"(?:YL-)?Archos ([a-z0-9 ]+) Build","model":"$1"},{"regex":"(?:YL-)?Archos ([a-z0-9]+)","model":"$1"}]},"Axxion":{"regex":"Axxion ATAB-[0-9]+[);/ ]","device":"tablet","models":[{"regex":"Axxion ATAB-([0-9]+)[);/ ]","model":"ATAB-$1"}]},"MEU":{"regex":"MEU ([a-z0-9]+) Build","device":"smartphone","model":"$1"},"Arnova":{"regex":"arnova|ARCHM901|AN7CG2|AN7G2(DTE|I)?|AN7[BCDFH]?G3|A80KSC|AN8G2|AN8[BC]?G3|AN9G2I?|AN9G3|A101[BC]|AN10G2|AN10BG2(DT|I)?|AN10BG3(DT)?|AN10[CD]G3","device":"tablet","models":[{"regex":"ARCHM901","model":"M901"},{"regex":"AN7CG2","model":"7c G2"},{"regex":"AN7G2I|AN7G2|AN7G2DTE","model":"7 G2"},{"regex":"AN7G3","model":"7 G3"},{"regex":"AN7BG3","model":"7b G3"},{"regex":"AN7CG3","model":"7c G3"},{"regex":"AN7DG3-CP","model":"Childpad"},{"regex":"AN7DG3","model":"7d G3"},{"regex":"AN7FG3","model":"7f G3"},{"regex":"AN7HG3","model":"7h G3"},{"regex":"A80KSC","model":"8"},{"regex":"AN8G2","model":"8 G2"},{"regex":"AN8G3","model":"8 G3"},{"regex":"AN8BG3","model":"8b G3"},{"regex":"AN8CG3","model":"8c G3"},{"regex":"AN9G2I","model":"9i G2"},{"regex":"AN9G2","model":"9 G2"},{"regex":"AN9G3","model":"9 G3"},{"regex":"A101B2|A101C|AN10G2","model":"10 G2"},{"regex":"A101B","model":"10"},{"regex":"AN10BG2|AN10BG2DT|AN10BG2I","model":"10b G2"},{"regex":"AN10BG3|AN10BG3DT|AN10BG3-LZ","model":"10b G3"},{"regex":"AN10CG3","model":"10c G3"},{"regex":"AN10DG3","model":"10d G3"},{"regex":"ARNOVA 90G3","model":"90 G3"},{"regex":"ARNOVA 90 G4","model":"90 G4"},{"regex":"ARNOVA 97G4","model":"97 G4"},{"regex":"ARNOVA 101 G4","model":"101 G4"},{"regex":"Arnova ([^/;]*) Build","model":"$1"}]},"ARRIS":{"regex":"ARRIS","device":"tv","models":[{"regex":"ARRIS[,;] ([^),;/]+)","model":"$1"}]},"Ask":{"regex":"ASK ","device":"smartphone","models":[{"regex":"SP618","model":"SP618"}]},"ANS":{"regex":"UL40 Build","device":"smartphone","model":"UL40"},"Assistant":{"regex":"(AS[-_](?:543[1-6]|44[12]1|541[12]|54[23]1|6431|401L)|AP-(?:721N|7[25]7G|106|941))[;/)_ ]","device":"smartphone","models":[{"regex":"AS[-_]401L ","model":"Asper"},{"regex":"AS-5432 ","model":"Agio"},{"regex":"AS-5433 Secret","model":"Secret"},{"regex":"AS-5433 ","model":"Max Secret"},{"regex":"AS-5421","model":"Surf"},{"regex":"AS-44[12]1","model":"Unami"},{"regex":"AS-5431","model":"Prima"},{"regex":"AS-5435","model":"Shine"},{"regex":"AS-5436[ _]","model":"Grid"},{"regex":"AS-6431","model":"Rider"},{"regex":"AS-5411[_ ]","model":"Max Ritm"},{"regex":"AS-5412 Max","model":"AS-5412 Max"},{"regex":"AP-721N","model":"AP-721N Force","device":"tablet"},{"regex":"AP-941","model":"AP-941","device":"tablet"},{"regex":"AP-106","model":"AP-106 Force","device":"tablet"},{"regex":"(AP-7[25]7G)[/;) ]","device":"tablet","model":"$1"}]},"Ark":{"regex":"(ARK[_ -])?Benefit[_ -]([^/;]*) Build|EDGE A5HD|ICON (R40\\\\+|R45)|Impulse[ _](P[12])|Wizard_1[/;) ]","device":"smartphone","models":[{"regex":"(?:ARK[_ -])?Benefit[_ -]([^/;]*) Build","model":"Benefit $1"},{"regex":"Impulse[ _]P1\\\\+","model":"Impulse P1 Plus"},{"regex":"Impulse[ _](P[12])","model":"Impulse $1"},{"regex":"EDGE (A5HD)","model":"Edge $1"},{"regex":"ICON (R40\\\\+|R45)","model":"Icon $1"},{"regex":"Wizard_1","model":"Wizard 1"}]},"Garmin-Asus":{"regex":"Garmin-Asus|Garminfone","device":"smartphone","models":[{"regex":"Garminfone[ \\\\-_]([^;/]*)Build","model":"Garminfone $1"},{"regex":"Garmin-Asus[ \\\\-_]([^;/]+)Build","model":"$1"},{"regex":"Garmin-Asus[ \\\\-_]([^;/]+)[\\\\)/]","model":"$1"}]},"Asus":{"regex":"Asus|Transformer|TF300T|Slider SL101|PadFone|ME302(?:C|KL)|ME301T|ME371MG|ME17(?:1|2V|3X)|(?:K0[01][0-9a-z]|P(?:00[18ACIL]|01[MTVWYZ]|01MA|01T_1|02[13478])(?: Build|\\\\))|X015D|X018D|X003|X00[7ABT]D|Z00D|Z00[MTY]D|Z01[7FGHKMR]D)[);/ ]|ZB(631|602|633|55[135]|50[01])KL|ZC(55[134]|520|600)KL|ZA550KL|ZE(520|620|55[2345])KL|ZD55[23]KL|ZS6[23]0KL|ZB(500KG|601KL)","device":"smartphone","models":[{"regex":"ME171[);/ ]","model":"Eee Pad MeMO 171","device":"tablet"},{"regex":"ME172V","model":"MeMO Pad","device":"tablet"},{"regex":"ME302C[);/ ]","model":"MeMO Pad FHD 10","device":"tablet"},{"regex":"ME302KL[);/ ]","model":"MeMO Pad FHD 10 LTE","device":"tablet"},{"regex":"ME301T[);/ ]","model":"MeMO Pad Smart 10","device":"tablet"},{"regex":"X Pad 10 LTE[);/ ]","model":"X Pad 10 LTE","device":"tablet"},{"regex":"(?:K01[3A]|K007|K00R)[);/ ]|MeMO Pad 7","model":"MeMO Pad 7","device":"tablet"},{"regex":"K01E[);/ ]","model":"MeMO Pad 10 ME103K","device":"tablet"},{"regex":"K00U|ME173X[);/ ]","model":"MeMO Pad HD 7","device":"tablet"},{"regex":"(?:K011|K00L)[);/ ]","model":"MeMO Pad 8","device":"tablet"},{"regex":"K014[);/ ]","model":"MeMO Pad 8.9","device":"tablet"},{"regex":"K00S[);/ ]","model":"MeMO Pad HD 7 Dual SIM","device":"tablet"},{"regex":"K00F[);/ ]","model":"MeMO Pad 10","device":"tablet"},{"regex":"K00C[);/ ]","model":"Transformer Pad TF701T","device":"tablet"},{"regex":"K010[);/ ]","model":"Transformer Pad TF103C","device":"tablet"},{"regex":"K018[);/ ]","model":"Transformer Pad TF103CG","device":"tablet"},{"regex":"TF300T[);/ ]","model":"Transformer Pad TF300T","device":"tablet"},{"regex":"K01B[);/ ]","model":"Transformer Pad TF303K","device":"tablet"},{"regex":"Slider SL101","model":"Eee Pad Slider SL101","device":"tablet"},{"regex":"P01[YZ]","model":"ZenPad C 7.0","device":"tablet"},{"regex":"P008 Build","model":"ZenPad Z8","device":"tablet"},{"regex":"P001","model":"ZenPad Z10","device":"tablet"},{"regex":"(?:ASUS_)?P00J","model":"ZenPad Z8s","device":"tablet"},{"regex":"P01[VW]","model":"ZenPad 7.0","device":"tablet"},{"regex":"P024 Build|P00A","model":"ZenPad 8.0","device":"tablet"},{"regex":"P01MA(?: Build|\\\\))|P01M(?: Build|\\\\))","model":"ZenPad S 8.0","device":"tablet"},{"regex":"P027","model":"ZenPad 3S 10","device":"tablet"},{"regex":"(?:ASUS_)?P00I","model":"ZenPad 3S 10 LTE","device":"tablet"},{"regex":"(?:ASUS_)?P00C|P02[138]|P00L|P01T_1","model":"ZenPad 10","device":"tablet"},{"regex":"ME371MG[);/ ]","model":"Fonepad","device":"phablet"},{"regex":"K00G[);/ ]","model":"Fonepad Note 6","device":"phablet"},{"regex":"(?:K012|K00E)[);/ ]","model":"Fonepad 7","device":"phablet"},{"regex":"K00Z[);/ ]","model":"Fonepad 7 Dual SIM","device":"phablet"},{"regex":"K016[);/ ]","model":"Fonepad 8","device":"phablet"},{"regex":"(?:ASUS_)?T00N","model":"PadFone S"},{"regex":"(?:ASUS_)?A002(A)?","model":"ZenFone AR"},{"regex":"(?:ASUS_)?A006","model":"ZenFone V"},{"regex":"(?:ASUS_)?A009","model":"ZenFone V Live"},{"regex":"(?:ASUS_)?Z007","model":"ZenFone C"},{"regex":"(?:ASUS_)?(X00PD|ZB555KL)","model":"ZenFone Max M1"},{"regex":"(?:ASUS_)?(ZB601KL)","model":"ZenFone Max Pro M1"},{"regex":"(?:ASUS_)?(X01AD|ZB633KL)","model":"ZenFone Max M2"},{"regex":"(?:ASUS_)?(?:Z00[AD]|Z008D|Z008|Z00AD[AB]?)","model":"ZenFone 2"},{"regex":"(?:ASUS_)?A007|ZA550KL|ZB553KL|ZB501KL","model":"ZenFone Live"},{"regex":"(?:ASUS_)?X00RD","model":"ZenFone Live L1"},{"regex":"(?:ASUS_)Z00YD","model":"Live"},{"regex":"(?:ASUS_)?(?:Z00[ERLMT]D|Z011D)","model":"ZenFone 2 Laser"},{"regex":"(?:ASUS_)?(?:T00[IQ1]|Z01KD)","model":"ZenFone 4"},{"regex":"(?:ASUS_)?(?:T00[JF]|X00QD|X00QSA|ZE620KL)","model":"ZenFone 5"},{"regex":"(?:ASUS_)?T00P","model":"ZenFone 5 LTE"},{"regex":"(?:ASUS_)?(?:T00K|X017DA|X017D|ZC600KL)","model":"ZenFone 5 Lite"},{"regex":"(?:ASUS_)?(?:Z01RD|ZS620KL)","model":"ZenFone 5Z"},{"regex":"(?:ASUS_)?(?:T00G|Z002|ZS630KL)","model":"ZenFone 6"},{"regex":"(?:ASUS_)?Z010D","model":"ZenFone Max"},{"regex":"(?:ASUS_)?X018D","model":"ZenFone Max Plus M1"},{"regex":"(?:ASUS_)?X00TD","model":"ZenFone Max Pro M1"},{"regex":"(?:ASUS_)?X01BDA|ZB631KL","model":"ZenFone Max Pro M2"},{"regex":"(?:ASUS_)?X014D","model":"ZenFone Go Plus"},{"regex":"(?:ASUS_)?(L001|X00[7AB]D|X009[DB][DA]|Z00[SV]D|ZB500K[LG]|ZB551KL)","model":"ZenFone Go"},{"regex":"(?:ASUS_)?X013D","model":"ZenFone Go Life"},{"regex":"(?:ASUS_)?(X003)","model":"ZenFone Pegasus"},{"regex":"(?:ASUS_)?X005","model":"ZenFone Pegasus 5000"},{"regex":"(?:ASUS_)?X550","model":"ZenFone Pegasus 2 Plus"},{"regex":"(?:ASUS_)?(X00GD)","model":"ZenFone Pegasus 3S Max"},{"regex":"(?:ASUS_)?(X008)","model":"ZenFone 3 Pegasus"},{"regex":"(?:ASUS_)?(ZE553KL|Z01HD)","model":"ZenFone 3 Zoom"},{"regex":"(?:ASUS_)?Z00UD","model":"ZenFone Selfie"},{"regex":"(?:ASUS_)?(Z016[DS]|Z01FD)","model":"ZenFone 3 Deluxe"},{"regex":"(?:ASUS_)?(Z017DA|ZE520KL|ZE552KL|Z017D|Z012(D|S))","model":"ZenFone 3"},{"regex":"(?:ASUS_)?Z01B[DS]|ZC551KL","model":"ZenFone 3 Laser"},{"regex":"(?:ASUS_)?X00DD|ZC553KL","model":"ZenFone 3 Max"},{"regex":"(?:ASUS_)?A001","model":"ZenFone 3 Ultra"},{"regex":"(?:ASUS_)?(X00LDA|Z01MD)","model":"ZenFone 4 Selfie"},{"regex":"(?:ASUS_)?(?:X00LD|Z01KS|Z01KDA|ZE554KL)","model":"ZenFone 4"},{"regex":"(?:ASUS_)?X00[HIK]D|ZC554KL|ZC520KL","model":"ZenFone 4 Max"},{"regex":"(?:ASUS_)?X015D","model":"ZenFone 4 Max Plus"},{"regex":"ZD552KL","model":"ZenFone 4 Selfie Pro"},{"regex":"ZD553KL","model":"ZenFone 4 Selfie"},{"regex":"(?:ASUS_)?Z01GD","model":"ZenFone 4 Pro"},{"regex":"(?:ASUS_)?ZB602KL","model":"ZenFone Max Pro"},{"regex":"(?:ASUS_)?Z00XS","model":"ZenFone Zoom"},{"regex":"(?:ASUS_)?Z01QD","model":"ROG Phone"},{"regex":"(?:ASUS_)?I001DA","model":"ROG Phone 2"},{"regex":"Asus(?:-|;)?([a-z0-9]+)","model":"$1"},{"regex":"(PadFone(?: [^;/]+)?) Build","model":"$1"},{"regex":"(PadFone(?: [a-z0-9]+)?)","model":"$1"},{"regex":"(?:Asus|Transformer) ((?:Pad |Prime )?TF[0-9a-z]+)","device":"tablet","model":"Transformer $1"},{"regex":"Chromebook Flip C100PA","device":"tablet","model":"Chromebook Flip C100PA"}]},"Audiovox":{"regex":"Audiovox|CDM|UTS(?:TARCOM)?\\\\-|audio[a-z0-9\\\\-]+","device":"smartphone","models":[{"regex":"Audiovox[_\\\\-]([a-z0-9\\\\-]+)","model":"$1"},{"regex":"CDM(?:-)?([a-z0-9]+)","model":"CDM-$1"},{"regex":"UTS(?:TARCOM)?-([a-z0-9\\\\-]+)","model":"CDM-$1"},{"regex":"audio([a-z0-9\\\\-]+)","model":"CDM-$1"}]},"AVH":{"regex":"Excer_10_PRO","device":"smartphone","models":[{"regex":"Excer_10_PRO","device":"tablet","model":"Excer 10 Pro"}]},"Avvio":{"regex":"Avvio[ _]?([a-z0-9\\\\-]+)","device":"smartphone","models":[{"regex":"Avvio[ _]PAD","model":"PAD","device":"tablet"},{"regex":"Avvio[ _]?([a-z0-9\\\\-]+)","model":"$1"}]},"Azumi Mobile":{"regex":"Azumi[_ ]","device":"smartphone","models":[{"regex":"Azumi[_ ]([^/;]+) Build","model":"$1"},{"regex":"Azumi[_ ]([a-z0-9_]+)","model":"$1"}]},"Barnes & Noble":{"regex":"Nook|BN[TR]V[0-9]+","device":"tablet","models":[{"regex":"Nook([a-z0-9]+)","model":"Nook $1"},{"regex":"Nook[ _]([^/;]+)[ _]Build","model":"Nook $1"},{"regex":"(BN[TR]V[0-9]+)","model":"Nook $1"}]},"BGH":{"regex":"(?!Positivo )BGH ([^/;\\\\)]+)(?: Build|\\\\))","device":"smartphone","models":[{"regex":"Y([17]00|2[01]0|1010)","device":"tablet","model":"Y$1"},{"regex":"BGH (\\\\+Simple|Mini)","device":"tablet","model":"$1"},{"regex":"Y710 KIDS","device":"tablet","model":"Y710 Kids"},{"regex":"JOY X2","model":"Joy X2"},{"regex":"BGH ([^/;\\\\)]+)(?: Build|\\\\))","model":"$1"}]},"Bitel":{"regex":"Bitel[ _-]([^/;]+) Build|B(840[5789]|841[0456]|850[2346]|860[146]|9401|950[12345])","device":"smartphone","models":[{"regex":"(B(840[5789]|841[0456]|850[2346]|860[146]|9401|950[12345]))","model":"$1"},{"regex":"Bitel[ _-]([^/;]+) Build","model":"$1"}]},"Blu":{"regex":"BLU |(?:blu|Dash)[ _]([^/;]+) Build|Studio (5.5|View XL|Mega|C 8\\\\+8|C HD|C|G|Selfie LTE|Touch|M HD|M5 Plus|J[1258]|X|X8 HD)|Advance (4.0 ?[LM]|5.0(?: HD)?|A4)|ENERGY (DIAMOND|XL)|LIFE XL|Dash XL|PURE XL|Life One X2|GRAND 5.5 HD|R1 (HD|PLUS)|Tank Xtreme 5.0|Tank Xtreme Pro","device":"smartphone","models":[{"regex":"Advance (4.0 ?[LM]|4.0|5.0(?: HD)?|A4)","model":"Advance $1"},{"regex":"Studio (5.0 C|5.5|View XL|Mega|C 8\\\\+8|C HD|C|G|Touch|M HD|M5 Plus|J[1258]|X|X8 HD)","model":"Studio $1"},{"regex":"STUDIO SELFIE LTE","model":"Studio Selfie LTE"},{"regex":"STUDIO ONE","model":"Studio One"},{"regex":"STUDIO SELFIE (2|LTE)","model":"Studio Selfie $1"},{"regex":"ENERGY DIAMOND","model":"Energy Diamond"},{"regex":"ENERGY XL","model":"Energy XL"},{"regex":"ENERGY X PLUS 2","model":"Energy X Plus 2"},{"regex":"ENERGY X PLUS","model":"Energy X Plus"},{"regex":"LIFE XL","model":"Life XL"},{"regex":"Dash XL","model":"Dash XL"},{"regex":"PURE XL","model":"Pure XL"},{"regex":"Life One X2","model":"Life One X2"},{"regex":"LIFE ONE","model":"Life One"},{"regex":"NEO X PLUS","model":"Neo X Plus"},{"regex":"NEO (XL|X)","model":"Neo $1"},{"regex":"GRAND 5.5 HD","model":"Grand 5.5 HD"},{"regex":"Grand X LTE","model":"Grand X LTE"},{"regex":"R1 HD","model":"R1 HD"},{"regex":"R1 PLUS","model":"R1 Plus"},{"regex":"Tank Xtreme 5.0","model":"Tank Xtreme 5.0"},{"regex":"Tank Xtreme Pro","model":"Tank Xtreme Pro"},{"regex":"VIVO AIR LTE","model":"Vivo Air LTE"},{"regex":"DASH[ _]([^/;]+) Build","model":"Dash $1"},{"regex":"DASH (5.0|L|M|X2|X)","model":"Dash $1"},{"regex":"blu[ _]([^/;]+) Build","model":"$1"}]},"Bluegood":{"regex":"BLUEGOOD","device":"smartphone","models":[{"regex":"V6","model":"V6"}]},"Blackview":{"regex":"(BV([2456789]000|(5[58]|9[56])00)(?:[ _](?:PRO))?|(P10000(?:[ _](?:PRO))?)|omega[ _]pro|Alife[ _][PS]1|Heatwave|DM550|BV9700Pro)","device":"smartphone","models":[{"regex":"(BV6000S)","model":"$1"},{"regex":"(BV9700)Pro","model":"$1 Pro"},{"regex":"BV9000Pro-F","model":"BV9000 Pro F"},{"regex":"(BV([48]000|9[56]00))Pro","model":"$1 Pro"},{"regex":"(BV([2456789]000|(5[58]|95)00)(?:[ _](?:PRO))?)","model":"$1"},{"regex":"(P10000(?:[ _](?:PRO))?)","model":"$1"},{"regex":"omega[ _]pro","model":"Omega Pro"},{"regex":"(Alife[ _][PS]1|DM550|Heatwave)","model":"$1"}]},"Bluboo":{"regex":"Bluboo|Xfire|Maya Build","device":"smartphone","models":[{"regex":"Maya Build","model":"Maya"},{"regex":"Xfire2","model":"Xfire 2"},{"regex":"Xfire","model":"Xfire"},{"regex":"Bluboo[ _-]?([^;/)]+) Build","model":"$1"},{"regex":"Bluboo[ _-]?([^;/)]+)","model":"$1"}]},"Black Fox":{"regex":"BMM[ _-]?((44[123]D|431D|533D|54[12]S|541[AB]|54[123]D|531[ABD]))[;/) ]","device":"smartphone","models":[{"regex":"BMM443D","model":"B7 Fox+"},{"regex":"BMM442D","model":"B7"},{"regex":"BMM531D","model":"B6"},{"regex":"BMM531A","model":"B5"},{"regex":"BMM541A","model":"B5+"},{"regex":"BMM543D","model":"B4"},{"regex":"BMM441D","model":"B4 Mini"},{"regex":"BMM541B","model":"B4 Mini NFC"},{"regex":"BMM531B","model":"B4 Mini (2019)"},{"regex":"BMM542D","model":"B3+"},{"regex":"BMM541D","model":"B3"},{"regex":"BMM[ _-]?(533D|431D|54[12]S)[;/) ]","model":"BMM $1"}]},"bogo":{"regex":"BO-(FRSP4|LFSPBS5)","device":"smartphone","models":[{"regex":"BO-(FRSP4|LFSPBS5)","model":"$1"}]},"Boway":{"regex":"(?:sprd-)?(BOWAY)","device":"smartphone","models":[{"regex":"BOWAY[ _-]([^/;]+)[ _]Build","model":"$1"},{"regex":"([^/;]+) Build/BOWAY","model":"$1"},{"regex":".*BOWAY[ _-]([^/;]+)/","model":"$1"}]},"Brondi":{"regex":"(?:CENTURION|GLADIATOR| GLORY|LUXURY|SENSUELLE|VICTORY)(?:[ _-]?[2-6])?[);/ ]|Surfing Tab","device":"smartphone","models":[{"regex":"CENTURION(?:[ _-]?([2-6]))?[);/ ]","model":"CENTURION $1"},{"regex":"GLADIATOR(?:[ _-]?([2-6]))?[);/ ]","model":"GLADIATOR $1"},{"regex":"GLORY(?:[ _-]?([2-6]))?[);/ ]","model":"GLORY $1"},{"regex":"LUXURY(?:[ _-]?([2-6]))?[);/ ]","model":"LUXURY $1"},{"regex":"SENSUELLE(?:[ _-]?([2-6]))?[);/ ]","model":"SENSUELLE $1"},{"regex":"VICTORY(?:[ _-]?([2-6]))?[);/ ]","model":"VICTORY $1"},{"regex":"Surfing Tab ([^;/]+) Build","model":"SURFING TAB $1","device":"tablet"},{"regex":"Surfing Tab ([^;/]+)[);/ ]","model":"SURFING TAB $1","device":"tablet"}]},"VGO TEL":{"regex":"Venture V8","device":"smartphone","models":[{"regex":"Venture V8","model":"Venture V8"}]},"Vivo":{"regex":"((?:VIV-|BBG-)?vivo)|V1813BA|V1818T|V1731CA|V1809T|V1813T|V1818A","device":"smartphone","models":[{"regex":"(?:VIV-|BBG-)?vivo[ _]1601 Build","model":"V5"},{"regex":"V1813BA","model":"Z3"},{"regex":"V1809T","model":"X23"},{"regex":"V1818T","model":"Y93"},{"regex":"V1813T","model":"Y97"},{"regex":"V1731CA","model":"Y73"},{"regex":"vivo 1816","model":"Y91i"},{"regex":"vivo 1817","model":"Y91"},{"regex":"V1818A","model":"Y93"},{"regex":"vivo 1812","model":"Y81i"},{"regex":"(?:VIV-|BBG-)?vivo[ _]([^/;]+) Build","model":"$1"},{"regex":"(?:VIV-|BBG-)?vivo[ _]([^);/]+)[);/]+","model":"$1"}]},"Vinsoc":{"regex":"(XA Pro) Build","device":"smartphone","model":"$1"},"Bird":{"regex":"BIRD[\\\\-. _]([^;/]+)","device":"feature phone","models":[{"regex":"BIRD[\\\\-. _]([^;/]+) Build","model":"$1"},{"regex":"BIRD[\\\\-. _]([^;/]+)","model":"$1"}]},"Becker":{"regex":"Becker-([a-z0-9]+)","device":"feature phone","model":"$1"},"Beeline":{"regex":"Beeline","device":"smartphone","models":[{"regex":"Beeline[_ ]Pro[_ ]([26])","model":"Pro $1"},{"regex":"Tab (Fast|Pro)","model":"Tab $1","device":"tablet"},{"regex":"Tab ([0-9])","model":"Tab $1","device":"tablet"},{"regex":"Tab","model":"Tab","device":"tablet"},{"regex":"E700","model":"E700"},{"regex":"Smart2","model":"Smart 2"},{"regex":"Smart ([0-9])","model":"Smart $1"},{"regex":"Smart Dual","model":"Smart Dual"}]},"Beetel":{"regex":"Beetel ([a-z0-9]+)","device":"feature phone","model":"$1"},"BenQ-Siemens":{"regex":"BENQ-SIEMENS - ([a-z0-9]+)","device":"feature phone","model":"$1"},"BenQ":{"regex":"BENQ(?:[ \\\\-])?([a-z0-9]+)","device":"feature phone","model":"$1"},"Blaupunkt":{"regex":"Blaupunkt|Atlantis[_ ](?:1001A|1010A|A10\\\\.G402)|Discovery[_ ](?:111C|1000C|1001A?)|Endeavour[_ ](?:785|101[GLM]|1000|1001|101[03]|1100)|Polaris[_ ]803","device":"tablet","models":[{"regex":"Discovery[_ ]111C","model":"Discovery 111C"},{"regex":"Discovery[_ ]1000C","model":"Discovery 1000C"},{"regex":"Discovery[_ ]1001A","model":"Discovery 1001A"},{"regex":"Discovery[_ ]1001","model":"Discovery 1001"},{"regex":"Endeavour[_ ](101[GLM]|785|100[01]|101[03]|1100)","model":"Endeavour $1"},{"regex":"Polaris[_ ](803)","model":"Polaris $1"},{"regex":"Atlantis[_ ](1001A|1010A|A10\\\\.G402)","model":"Atlantis $1"},{"regex":"Blaupunkt (SL 0[24]|SM 01)","device":"smartphone","model":"$1"}]},"Bmobile":{"regex":"Bmobile[_ ]|AX-?([1-9][0-9]{2,3}[eEO+]?|7OO)","device":"smartphone","models":[{"regex":"AX-?([1-9][0-9]{2,3}[eEO+]?)","model":"AX$1"},{"regex":"AX7OO","model":"AX700"},{"regex":"Bmobile[_ ]([^/;]+) Build","model":"$1"},{"regex":"Bmobile[_ ]([a-z0-9]+)","model":"$1"}]},"bq":{"regex":"Aquaris|bq [^/;]+ Build|BQS-([0-9]{4})|(BQ(ru)?[_ -][0-9]{3,4})","device":"smartphone","models":[{"regex":"BQ(ru)?-(5209L|5044)","model":"Strike LTE"},{"regex":"BQ(S|ru)?-(5070|6040L)","model":"Magic"},{"regex":"BQ-9011(G)?","model":"Vision","device":"tablet"},{"regex":"BQ-8068L","model":"Hornet Plus Pro"},{"regex":"BQ-8067L","model":"Hornet Plus","device":"tablet"},{"regex":"BQ-8052G","model":"BQ-8052G","device":"tablet"},{"regex":"BQ-8041L","model":"Art","device":"tablet"},{"regex":"BQ-7084G","model":"Simple","device":"tablet"},{"regex":"BQ-7061G","model":"Andros","device":"tablet"},{"regex":"BQ-7051G","model":"Elba","device":"tablet"},{"regex":"BQ-7036L","model":"Hornet","device":"tablet"},{"regex":"BQ-7022(G)?","model":"Canion","device":"tablet"},{"regex":"BQ-7021G","model":"Hit","device":"tablet"},{"regex":"BQ-7010G","model":"Max","device":"tablet"},{"regex":"BQ-7006G","model":"Union","device":"tablet"},{"regex":"BQ-7003","model":"Jamaica","device":"tablet"},{"regex":"BQ-6200L|BQ-6000L","model":"Aurora"},{"regex":"BQ(ru)?[ -]6015L","model":"Universe"},{"regex":"BQ-6010G","model":"Practic"},{"regex":"BQ-6001L|BQ-6050","model":"Jumbo"},{"regex":"BQ-5707G","model":"Next Music"},{"regex":"BQ-5702","model":"Spring"},{"regex":"BQ-5700L","model":"Space X"},{"regex":"BQ-5594","model":"Strike Power Max"},{"regex":"BQ-5591","model":"Jeans"},{"regex":"BQ-5522","model":"Next"},{"regex":"BQ(ru)?-5521","model":"Strike Power Max"},{"regex":"BQ-5520L","model":"Silk"},{"regex":"BQ-5519L","model":"Fast Plus"},{"regex":"BQ-5517L","model":"Twin Pro"},{"regex":"BQ-5516L","model":"Twin"},{"regex":"BQS-5515","model":"Wide"},{"regex":"BQ-5515(L)?","model":"Fast"},{"regex":"BQ-5512L|BQ-5528L","model":"Strike Forward"},{"regex":"BQ-5511L","model":"Bliss"},{"regex":"BQ(ru)?-5510","model":"Strike Power Max 4G"},{"regex":"BQ-5508L","model":"Next LTE"},{"regex":"BQ-5507L","model":"Iron Max"},{"regex":"BQ(ru)?-5504","model":"Strike Selfie Max"},{"regex":"BQ(ru)?-5503","model":"Nice 2"},{"regex":"BQS-5502","model":"Hammer"},{"regex":"BQS-5501","model":"Kawasaki"},{"regex":"BQS-5500","model":"Vancouver"},{"regex":"BQ-5500L","model":"Advance"},{"regex":"BQ-5302G","model":"Velvet 2"},{"regex":"BQ-5301","model":"Strike View"},{"regex":"BQ-5300G","model":"Velvet View"},{"regex":"BQ(ru)?-5211|BQS-5020","model":"Strike"},{"regex":"BQ-5206L","model":"Balance"},{"regex":"BQ(ru)?-5204|BQS-5050","model":"Strike Selfie"},{"regex":"BQ(ru)?-5203","model":"Vision"},{"regex":"BQ(ru)?-5202","model":"Space Lite"},{"regex":"BQ(ru)?-5201","model":"Space"},{"regex":"BQ-5082","model":"Sense 2"},{"regex":"BQ-5071","model":"Belief"},{"regex":"BQS-5065|BQ-5340","model":"Choice"},{"regex":"BQ(ru)?-5059|BQ-5514G","model":"Strike Power"},{"regex":"BQ-5058","model":"Strike Power Easy"},{"regex":"BQ(ru)?-5057","model":"Strike 2"},{"regex":"BQ-5056|BQS-5030","model":"Fresh"},{"regex":"BQS-5055","model":"Turbo Plus"},{"regex":"BQ(ru)?-5054","model":"Crystal"},{"regex":"BQ-5052","model":"Sense"},{"regex":"BQ(S)?-5045","model":"Fast"},{"regex":"BQ(ru)?-5037|BQ-5514L","model":"Strike Power 4G"},{"regex":"BQ(ru)?-5035","model":"Velvet"},{"regex":"BQ(ru)?-5033","model":"Shark"},{"regex":"BQ-5032","model":"Element"},{"regex":"BQS-5025","model":"High Way"},{"regex":"BQ(ru)?-5022","model":"Bond"},{"regex":"BQ-5015L","model":"First"},{"regex":"BQ-5012L","model":"Rich"},{"regex":"BQS-5011","model":"Monte Carlo"},{"regex":"BQ-5010G","model":"Spot"},{"regex":"BQS-5010","model":"Prague"},{"regex":"BQ-5009L","model":"Trend"},{"regex":"BQS-500[59]","model":"Sydney"},{"regex":"BQ-5008L","model":"Brave"},{"regex":"BQ-5007L","model":"Iron"},{"regex":"BQS-5006","model":"Los Angeles"},{"regex":"BQ-5005L","model":"Intense"},{"regex":"BQS-5004","model":"Paris"},{"regex":"BQ-5003L","model":"Shark Pro"},{"regex":"BQ-5002G","model":"Fun"},{"regex":"BQS-5002","model":"Colombo"},{"regex":"BQ-5001L","model":"Contact"},{"regex":"BQS-5001","model":"Milan"},{"regex":"BQ(ru|S)?-5000","model":"Tokyo"},{"regex":"BQS-4800","model":"Blade"},{"regex":"BQS-4707","model":"Montreal"},{"regex":"BQS-4702","model":"\u041esaka"},{"regex":"BQS-4701","model":"Venice"},{"regex":"BQ-(?:4585|5011G)","model":"Fox View"},{"regex":"BQS-4570","model":"Drive"},{"regex":"BQS-4560","model":"Golf"},{"regex":"BQS-4555","model":"Turbo"},{"regex":"BQS-4550","model":"Richmond"},{"regex":"BQ-(?:4526|5004G)","model":"Fox"},{"regex":"BQS-4525","model":"Vienna"},{"regex":"BQS-4516","model":"Singapore"},{"regex":"BQS-4515","model":"Moscow"},{"regex":"BQS-4510","model":"Florence"},{"regex":"BQS-4505","model":"Santiago"},{"regex":"BQS-4503","model":"Dubai"},{"regex":"BQS-4502","model":"Kingston"},{"regex":"BQS-4501 Bristol","model":"Bristol"},{"regex":"BQ-4501G","model":"Fox Easy"},{"regex":"BQ-4077","model":"Shark Mini"},{"regex":"BQ(ru)?-4072","model":"Strike Mini"},{"regex":"BQ(ru)?[- ]402[68]","model":"Up!"},{"regex":"BQS-4010","model":"Aspen"},{"regex":"BQS-4009","model":"Orleans"},{"regex":"BQS-4008","model":"Shanghai"},{"regex":"BQS-4007","model":"Valencia"},{"regex":"BQS-4005","model":"Seoul"},{"regex":"BQS-4004","model":"Dusseldorf"},{"regex":"BQS-4003","model":"Verona"},{"regex":"BQ-4001G","model":"Cool"},{"regex":"BQS-4001","model":"Oxford"},{"regex":"BQS-3510","model":"Aspen Mini"},{"regex":"BQS-3503","model":"Bombay"},{"regex":"BQ-1085L","model":"Hornet Max Pro","device":"tablet"},{"regex":"BQ-1084L","model":"Hornet Max","device":"tablet"},{"regex":"BQ-1083G","model":"Armor Pro Plus","device":"tablet"},{"regex":"BQ-1082G","model":"Armor Pro","device":"tablet"},{"regex":"BQ-1077L","model":"Armor Pro LTE","device":"tablet"},{"regex":"BQ(ru)?-1057L","model":"Passion","device":"tablet"},{"regex":"BQ-1051G","model":"Corsika","device":"tablet"},{"regex":"BQ-1050G","model":"Hawaii","device":"tablet"},{"regex":"BQ-1008G","model":"Grace","device":"tablet"},{"regex":"Aquaris M8","model":"Aquaris M8","device":"tablet"},{"regex":"BQ(ru)?[_ ]5590","model":"Spring"},{"regex":"BQ(S)?-(6016L|5520)","model":"Mercury"},{"regex":"BQ(S)?-(5701L|5060)","model":"Slim"},{"regex":"(BQ-7850|BQ-700[12]G|BQ-8002G|BQ-905[12]G|BQ-9702G|BQ-7056G)","model":"$1","device":"tablet"},{"regex":"BQ-8006G","model":"Java","device":"tablet"},{"regex":"BQ-7062G","model":"Fiji","device":"tablet"},{"regex":"BQ(ru)?-1081G","model":"Grace 3G","device":"tablet"},{"regex":"BQ-7802G","model":"Luzon","device":"tablet"},{"regex":"BQ-7008G","model":"Clarion","device":"tablet"},{"regex":"BQ-7064G","model":"Fusion","device":"tablet"},{"regex":"BQ-7050G","model":"Malta","device":"tablet"},{"regex":"BQ-7000G","model":"\u0421harm","device":"tablet"},{"regex":"BQ-7005G","model":"Maui","device":"tablet"},{"regex":"BQ-7098G","model":"Armor Power","device":"tablet"},{"regex":"BQ-1007","model":"Necker","device":"tablet"},{"regex":"BQ-1045(G)?","model":"Orion","device":"tablet"},{"regex":"BQ-1054L","model":"Nexion","device":"tablet"},{"regex":"BQ(ru)?-7083","model":"7083","device":"tablet"},{"regex":"BQ(ru)?-1056L","model":"1056L","device":"tablet"},{"regex":"(?:bq )?(Aquaris[^/;]*) Build","model":"$1"},{"regex":"Aquaris (E(4.5|[56])|M(5|10)|U2 Lite|U2|U (Lite|Plus)|V Plus|X5 Plus|X5|X Pro|[CMUVX])","model":"Aquaris $1"},{"regex":"bq ([^/;]+) Build","model":"$1","device":"tablet"}]},"Bush":{"regex":"Bush[ _-]","device":"smartphone","models":[{"regex":"BUSH ([^;/]+)Tablet Build","model":"$1Tablet","device":"tablet"},{"regex":"BUSH ([^;/]+) Build","model":"$1"}]},"CAGI":{"regex":"CAGI-","device":"smartphone","models":[{"regex":"CAGI-OMEGA","model":"Omega"},{"regex":"CAGI-([a-z0-9_\\\\-]+)","model":"$1"}]},"Capitel":{"regex":"Capitel-([a-z0-9]+)","device":"feature phone","model":"$1"},"Captiva":{"regex":"Captiva[ _-]([^;/]+) Build","device":"tablet","model":"Pad $1"},"Casio":{"regex":"(C811|C7[57]1)(?: 4G)?[);/ ]","device":"smartphone","models":[{"regex":"C751[);/ ]","model":"G\'zOne Ravine"},{"regex":"C771[);/ ]","model":"G\'zOne Commando"},{"regex":"C811 4G[);/ ]","model":"G\'zOne Commando 4G LTE"}]},"Casper":{"regex":"CASPER_|VIA_(G4|M4|P2|V8C)","device":"smartphone","models":[{"regex":"CASPER_VIA_(E2|M[13]|V[69])","model":"VIA $1"},{"regex":"VIA_(G4|M4|P2|V8C)","model":"VIA $1"}]},"Cat":{"regex":"Cat ?(tablet|stargate|nova)|B15Q","device":"tablet","models":[{"regex":"B15Q","model":"B15Q","device":"smartphone"},{"regex":"Cat ?(?:tablet)? ?((?:Galactica|Nova|StarGate|PHOENIX)[^/;]*) Build","model":"$1"},{"regex":"Cat ?tablet","model":"Nova"}]},"Carrefour":{"regex":"CT(?:10[0123]0|7[12]0|820)(?:W|FR)?[);/ ]","device":"tablet","models":[{"regex":"CT820","model":"Touch Tablet Neo2"},{"regex":"CT(10[0123]0(?:W|FR)?)","model":"CT$1"},{"regex":"CT(7[12]0(?:W|FR)?)","model":"CT$1"}]},"Celkon":{"regex":"Celkon","device":"smartphone","models":[{"regex":"Celkon[ _*](C[78]20)","model":"$1","device":"tablet"},{"regex":"Celkon[ _*](CT[^;/]+) Build","model":"$1","device":"tablet"},{"regex":"Celkon[ _*]([^;/]+) Build","model":"$1"},{"regex":"Celkon[\\\\. _*]([^;/\\\\)]+)[\\\\)/]","model":"$1"}]},"Changhong":{"regex":"Changhong","device":"tv","models":[{"regex":"Changhong-([^);/]+)","model":"$1"}]},"Cherry Mobile":{"regex":"Cherry|Flare([ _])?(2X|4|A[123]|J[1235]|P[13]|S[456]|X2)|Flare S Play|Flare_HD_MAX|FLARE LITE|Flare XL Plus|Fusion Bolt|OMEGA HD 4","device":"smartphone","models":[{"regex":"Cherry(?: ?Mobile)?[ _]?([^/;]+) Build","model":"$1"},{"regex":"(Flare2X)","model":"$1"},{"regex":"Flare_HD_MAX","model":"Flare HD Max"},{"regex":"FLARE LITE","model":"Flare Lite"},{"regex":"Flare S Play","model":"Flare S Play"},{"regex":"Flare XL Plus","model":"Flare XL Plus"},{"regex":"Flare[ _](A2|J3|P1|S[46])[ _]Lite","model":"Flare $1 Lite"},{"regex":"Flare[ _](J[12]|S5)[ _]mini","model":"Flare $1 Mini"},{"regex":"Flare J2S","model":"Flare J2s"},{"regex":"Flare S4 Max LTE","model":"Flare S4 Max LTE"},{"regex":"Flare S4 Max","model":"Flare S4 Max"},{"regex":"FlareS5LiteDTV ","model":"Flare S5 Lite DTV"},{"regex":"Flare_S6_Plus","model":"Flare S6 Plus"},{"regex":"FLARE S6 POWER","model":"Flare S6 Power"},{"regex":"Flare(?:[ _])?(4|A[13]|J[135]|P[13]|S4|X2)","model":"Flare $1"},{"regex":"OMEGA HD 4","model":"Omega HD 4"},{"regex":"(Fusion Bolt)","model":"$1","device":"tablet"}]},"China Mobile":{"regex":"(M812C|1501_M02|9930i|A1303|A309W|M651CY) Build","device":"smartphone","models":[{"regex":"M651CY","model":"A3"},{"regex":"(M812C|1501_M02|9930i|A1303|A309W)","model":"$1"}]},"Comio":{"regex":"Comio|CT701G PLUS|CT701W|GT100","device":"smartphone","models":[{"regex":"GT100","model":"GT100","device":"tablet"},{"regex":"CT701W","model":"CT701W","device":"tablet"},{"regex":"CT701G PLUS","model":"CT701G Plus","device":"tablet"},{"regex":"Comio[ _-]?([^;/)]+) Build","model":"$1"},{"regex":"Comio[ _-]?([^;/)]+)","model":"$1"}]},"Compal":{"regex":"Compal-[a-z0-9]+","device":"feature phone","model":"$1"},"ComTrade Tesla":{"regex":"Tesla|Impulse 7.85 3G|Smartphone_6.1|SP(?:6.2|6.2_Lite)|TTL(?:713G|8)","device":"smartphone","models":[{"regex":"TeslaEvo5.0","model":"Evo 5.0"},{"regex":"(Gravity 9.7 SHD)","model":"$1","device":"tablet"},{"regex":"(Impulse 7.85 3G)","model":"$1","device":"tablet"},{"regex":"Tesla_SP([^/;]+)L Build","model":"Smartphone $1 Lite"},{"regex":"Smartphone_6.1","model":"Smartphone 6.1"},{"regex":"SP6.2_Lite","model":"Smartphone 6.2 Lite"},{"regex":"Tesla_SP([^/;]+) Build","model":"Smartphone $1"},{"regex":"SP([^/;]+) Build","model":"Smartphone $1"},{"regex":"Smartphone ([36])","model":"Smartphone $1"},{"regex":"Tesla_Tablet_785","model":"7.85\\"","device":"tablet"},{"regex":"TTH7","model":"H7","device":"tablet"},{"regex":"TTL7 Build","model":"L7","device":"tablet"},{"regex":"Tesla_Tablet_L7_3G","model":"L7 3G","device":"tablet"},{"regex":"(L7.1)","model":"$1","device":"tablet"},{"regex":"TTL713G","model":"L7.1 3G","device":"tablet"},{"regex":"(L7 Quad) Build","model":"$1","device":"tablet"},{"regex":"(L7 Quad Lite)","model":"$1","device":"tablet"},{"regex":"TTL8 Build","model":"L8","device":"tablet"},{"regex":"(L8.1)","model":"$1","device":"tablet"},{"regex":"TESLA_TABLET_M7","model":"M7","device":"tablet"},{"regex":"Tesla_Tablet_M8","model":"M8","device":"tablet"}]},"ConCorde":{"regex":"ConCorde ([^/;]+) Build","device":"smartphone","models":[{"regex":"ConCorde Tab ?([^/;]+) Build","model":"Tab $1","device":"tablet"},{"regex":"ConCorde ReadMan ?([^/;]+) Build","model":"ReadMan $1","device":"tablet"},{"regex":"ConCorde ([^/;]+) Build","model":"$1"}]},"Condor":{"regex":"Allure M3|(?:PGN\\\\-?[456][012][0-9]|PHS\\\\-601|Plume L1)[;/) ]|CTAB[^/;]+ Build","device":"smartphone","models":[{"regex":"CTAB([^/;]+) Build","device":"tablet","model":"CTAB $1"},{"regex":"PHS\\\\-601","model":"C8"},{"regex":"PGN\\\\-?403","model":"C4+ Noir"},{"regex":"PGN\\\\-?404","model":"C7 Mini"},{"regex":"PGN\\\\-?409","model":"Plume P4"},{"regex":"PGN\\\\-?504","model":"C5"},{"regex":"PGN\\\\-?505","model":"C8S"},{"regex":"PGN\\\\-?506","model":"C7"},{"regex":"Allure M3","model":"Allure M3"},{"regex":"PGN\\\\-?507","model":"Allure A9"},{"regex":"PGN\\\\-?508","model":"C6+"},{"regex":"PGN\\\\-?509","model":"C6 Pro"},{"regex":"PGN\\\\-?511","model":"Allure A9 Plus"},{"regex":"PGN\\\\-?513","model":"Griffe G4"},{"regex":"PGN\\\\-?514","model":"Plume P7"},{"regex":"PGN\\\\-?515","model":"Plume P4 Pro"},{"regex":"PGN\\\\-?516","model":"Plume P5"},{"regex":"PGN\\\\-?51[78]","model":"Plume P6"},{"regex":"PGN\\\\-?521","model":"Griffe G4 Plus"},{"regex":"PGN\\\\-?522","model":"P6 Plus"},{"regex":"PGN\\\\-?523","model":"P7 Plus"},{"regex":"PGN\\\\-?527","model":"Plume P4 Plus"},{"regex":"PGN\\\\-?528","model":"Plume P6 Pro Lte"},{"regex":"PGN\\\\-?605","model":"Plume P8"},{"regex":"PGN\\\\-?606","model":"Allure A55"},{"regex":"PGN\\\\-?607","model":"Allure A100"},{"regex":"PGN\\\\-?608","model":"Allure A55 Slim"},{"regex":"PGN\\\\-?609","model":"Allure A100 Lite"},{"regex":"PGN\\\\-?610","model":"Plume P8 Lite"},{"regex":"PGN\\\\-?611","model":"Allure A8"},{"regex":"PGN\\\\-?612","model":"Allure A8 Plus"},{"regex":"PGN\\\\-?613","model":"Allure A55 Plus"},{"regex":"Plume L1","model":"Plume L1"},{"regex":"PGN\\\\-?([0-9]{3})","model":"PGN-$1"}]},"Coolpad":{"regex":"(?:YL-)?Coolpad|8190Q[ ;/\\\\)]|(8295|5860S) Build|CP8676_I0[23] Build|CP8298_I00 Build|REVVLPLUS C3701A|VCR-I0","device":"smartphone","models":[{"regex":"VCR-I0","model":"Cool Play 6"},{"regex":"REVVLPLUS C3701A","model":"REVVL Plus","device":"phablet"},{"regex":"8190Q[ ;/\\\\)]","model":"8190Q"},{"regex":"(5860S|8295) Build","model":"$1"},{"regex":"CP8676_I02 Build","model":"Note 3"},{"regex":"CP8676_I03 Build","model":"Note 3 Plus"},{"regex":"CP8298_I00 Build","model":"Note 3 Lite"},{"regex":"(?:YL-)?Coolpad[ _\\\\-]?([^/;]+) Build","model":"$1"},{"regex":"(?:YL-)?Coolpad[ _\\\\-]?([a-z0-9\\\\-]+)","model":"$1"}]},"Clarmin":{"regex":"Clarmin","device":"smartphone","models":[{"regex":"Clarmin_B6","model":"B6"}]},"Cricket":{"regex":"Cricket-([a-z0-9]+)","device":"feature phone","model":"$1"},"Crius Mea":{"regex":"(Q7A\\\\+?)[);/ ]","device":"tablet","model":"$1"},"Crosscall":{"regex":"Crosscall|ODYSSEY_Plus|Odyssey S1|Trekker-[MSX][1234]|Action-X3","device":"smartphone","models":[{"regex":"Action-X3","model":"Action-X3"},{"regex":"Crosscall ([^;/]+) Build","model":"$1"},{"regex":"ODYSSEY_Plus","model":"ODYSSEY+"},{"regex":"Odyssey S1","model":"ODYSSEY S1"},{"regex":"Trekker-([MSX][1234](?: Core)?)","model":"Trekker-$1"}]},"Cube":{"regex":"(<!myPhone ?)Cube|(U[0-9]+GT|K8GT)|(T8-PLUSM?S?)[);/ ]","device":"tablet","models":[{"regex":"U27GT","model":"Talk 8"},{"regex":"T8-PLUSM?S?[);/ ]","model":"T8 Ultimate"},{"regex":"U55GT","model":"Talk 79"},{"regex":"U65GT","model":"Talk 9X"},{"regex":"(U[0-9]+GT[^;/]*) Build","model":"$1"},{"regex":"(U[0-9]+GT(?:[0-9]|[\\\\-_][a-z]+)?)","model":"$1"},{"regex":"(K8GT)","model":"$1"}]},"CUBOT":{"regex":"CUBOT","device":"smartphone","models":[{"regex":"CHEETAH 2","model":"Cheetah 2"},{"regex":"DINOSAUR","model":"Dinosaur"},{"regex":"KING KONG","model":"King Kong"},{"regex":"CUBOT_MANITO","model":"Manito"},{"regex":"MAX","model":"Max"},{"regex":"NOTE Plus","model":"Note Plus"},{"regex":"CUBOT_NOTE_S","model":"Note S"},{"regex":"CUBOT_NOVA","model":"Nova"},{"regex":"CUBOT_POWER","model":"Power"},{"regex":"CUBOT_X18_Plus","model":"X18 Plus"},{"regex":"CUBOT[ _](A5|C6W|H3|J3|P7|P20|R9|R11|X18)","model":"$1"},{"regex":"CUBOT ([^;/]+) Build","model":"$1"},{"regex":"([^;/]+) Build/CUBOT","model":"$1"}]},"Concord":{"regex":"Concord[ _-]|Flyfix 6|C-721[);/ ]","device":"smartphone","models":[{"regex":"M10","model":"M10"},{"regex":"Flyfix 6","model":"Flyfix 6"},{"regex":"C-721","model":"Flyfix Q","device":"tablet"}]},"Crescent":{"regex":"WING 5|WING9|Venus[ _][14]","device":"smartphone","models":[{"regex":"WING 5","model":"Wing 5"},{"regex":"WING9","model":"Wing 9"},{"regex":"Venus[ _]([14])","model":"Venus $1"}]},"Cyrus":{"regex":"Cyrus[ _-]","device":"smartphone","models":[{"regex":"Cyrus[ _-]?([^;/)]+) Build","model":"$1"},{"regex":"Cyrus[ _-]?([^;/)]+)[);/ ]","model":"$1"}]},"Datang":{"regex":"DATANG","device":"smartphone","models":[{"regex":"(?:DATANG[ _-])+([^;/]+) Build","model":"$1"},{"regex":"(?:DATANG[ _-])+([^;/)]+)[;/)]","model":"$1"}]},"Datsun":{"regex":"DATSUN","device":"smartphone","models":[{"regex":"DATSUN_D5500","model":"D5500"}]},"Danew":{"regex":"Dslide ?([^;/]+) Build|Konnect_(504|601)","device":"smartphone","models":[{"regex":"Konnect_(504|601)","model":"Konnect $1"},{"regex":"Dslide ?([^;/]+) Build","device":"tablet","model":"DSlide $1"}]},"Denver":{"regex":"(TA[CDQ]-[0-9]+)","device":"tablet","model":"$1"},"Dell":{"regex":"Dell[^a-z]|Venue|XCD35","device":"smartphone","models":[{"regex":"XCD35","model":"XCD35"},{"regex":"(?:Dell )?Venue Build","model":"Venue","device":"smartphone"},{"regex":"Dell; Venue Pro","model":"Venue Pro","device":"smartphone"},{"regex":"(?:Dell )?(Streak|Venue) ?([^/;]*) Build","model":"$1 $2","device":"tablet"},{"regex":"Dell; ((?:Streak|Venue)[^;/\\\\)]*)","model":"$1","device":"tablet"},{"regex":"Dell; ([^;/\\\\)]+)","model":"$1"},{"regex":"Dell[ _\\\\-]([^/;]+) Build","model":"$1"}]},"Desay":{"regex":"Desay","device":"smartphone","models":[{"regex":"Desay[ _-]?([^;/)]+) Build","model":"$1"},{"regex":"Desay[ _-]?([^;/)]+)[);/ ]","model":"$1"}]},"DEXP":{"regex":"DEXP|(?:Ursus|Ixion)[ _]([^;/)]+)|H135[ _]Build|(BL150|BS155|BS160|BS550|BS650)[);/ ]","device":"smartphone","models":[{"regex":"Ixion[_ ]([^;/]+)(?: Build|\\\\))","model":"Ixion $1"},{"regex":"Ursus ([^;/]+) Build","model":"Ursus $1","device":"tablet"},{"regex":"H135[ _]Build","model":"Atlas","device":"desktop"},{"regex":"(BL150|BS155|BS160|BS550|BS650)[);/ ]","model":"$1"},{"regex":"DEXP[ _]([^;/]+) Build","model":"$1"},{"regex":"DEXP[ _]([^);/]+)[);/ ]","model":"$1"}]},"Dbtel":{"regex":"DBTEL(?:[\\\\-/])?([a-z0-9]+)","device":"feature phone","model":"$1"},"Dialog":{"regex":"Dialog ?([^;/]+) Build","device":"smartphone","model":"$1"},"Dicam":{"regex":"DICAM-([a-z0-9]+)","device":"feature phone","model":"$1"},"Digi":{"regex":"Digi[ _]([^);/]+)[);/ ]","device":"smartphone","model":"$1"},"Digicel":{"regex":"DIGICEL","device":"smartphone","models":[{"regex":"DL810","model":"DL810"},{"regex":"DIGICEL ([^/;]+) Build","model":"$1"}]},"Digiland":{"regex":"DL1008M","device":"smartphone","models":[{"regex":"DL1008M","device":"tablet","model":"DL1008M"}]},"Digma":{"regex":"Digma[_ ]([^;/]+) Build|HIT HT707[10]MG|CITI 1902 3G|(CITI (?:[A-Z0-9]+) 3G) C[ST]500[67]PG|iDrQ10 3G|iDxD8 3G|iDnD7|HIT 4G HT7074ML|IDX5|(iDx10|iDx7)|MVM900H(?:WZ|C)|MVM908HCZ|iDxD10 3G|(iDxD[45]|iDxQ5)|iDxD7[_ ]3G|PS604M|PT452E|Linx A400 3G LT4001PG|Linx C500 3G LT5001PG|Linx PS474S|LS504[01]PL|LT40(47|54)MG|LS405[01]MG|LS5053ML|LT5048MG|LT5052ML|LT4049PG|NS6902QL|NS9797MG|((?:Optima|Platina|Plane)[ _](?:[EM])?(?:[0-9\\\\.ST]+|Prime)(?:[ _][43]G)?)|(VOX[ _](?:[0-9\\\\.A-Z]+)[_ ][43]G)","device":"smartphone","models":[{"regex":"HIT HT707[10]MG","model":"HIT 3G","device":"tablet"},{"regex":"iDx5","model":"iDx5"},{"regex":"iDxD10 3G","model":"iDxD10 3G","device":"tablet"},{"regex":"(VOX[ _](?:[0-9\\\\.A-Z]+)[_ ][43]G)","model":"$1"},{"regex":"PS604M","model":"Linx 6.0"},{"regex":"LT4049PG","model":"Linx Atom 3G"},{"regex":"LT5048MG","model":"Linx Joy 3G"},{"regex":"LT5052ML","model":"Linx Base 4G"},{"regex":"LT4047MG","model":"Linx Alfa 3G"},{"regex":"LS4050MG","model":"Linx X1 3G"},{"regex":"LS4051MG","model":"Linx X1 Pro 3G"},{"regex":"LT4054MG","model":"Linx Argo 3G"},{"regex":"LS5041PL","model":"Linx Trix 4G"},{"regex":"LS5040PL","model":"Linx Rage 4G"},{"regex":"LS5053ML","model":"Linx Pay 4G"},{"regex":"(Linx A400 3G) LT4001PG","model":"$1"},{"regex":"(Linx C500 3G) LT5001PG","model":"$1"},{"regex":"(Linx PS474S)","model":"$1"},{"regex":"PT452E","model":"Linx 4.5"},{"regex":"MVM900H(?:WZ|C)","model":"iDx8","device":"tablet"},{"regex":"MVM908HCZ","model":"iDx9","device":"tablet"},{"regex":"(iDxD7[_ ]3G)","model":"$1","device":"tablet"},{"regex":"(iDx10|iDx7)","model":"$1"},{"regex":"(iDxD[45]|iDxQ5)","model":"$1"},{"regex":"HIT 4G HT7074ML","model":"HIT 4G","device":"tablet"},{"regex":"(CITI 1902 3G)","model":"$1","device":"tablet"},{"regex":"(CITI (?:[A-Z0-9]+) 3G) C[ST]500[67]PG","model":"$1","device":"tablet"},{"regex":"iDxD8 3G","model":"D-Plane2 8","device":"tablet"},{"regex":"(iDrQ10 3G|iDnD7)","model":"$1","device":"tablet"},{"regex":"NS6902QL","model":"Platina 7.2 4G","device":"tablet"},{"regex":"NS9797MG","model":"Platina 7.2 3G","device":"tablet"},{"regex":"((?:Optima|Platina|Plane)[ _](?:[EM])?(?:[0-9\\\\.STNM]+|Prime)(?:[ _][43]G)?)","model":"$1","device":"tablet"},{"regex":"Digma[_ ]([^;/]+) Build","model":"$1","device":"tablet"}]},"DoCoMo":{"regex":"DoCoMo|\\\\;FOMA|KGT/1\\\\.0","device":"feature phone","models":[{"regex":"DoCoMo/[12]\\\\.0[/ ]([a-z0-9]+)","model":"$1"},{"regex":"([a-z0-9]+)(?:_W)?\\\\;FOMA","model":"$1"},{"regex":"KGT/1\\\\.0 ([a-z0-9]+)","model":"$1"}]},"Doogee":{"regex":"DOOGEE[ _-]|Valencia2_Y100pro|X5max(?:[_ ]PRO)?|(KISSME|BIGBOY|COLLO[23]?|DAGGER|DISCOVERY2?|FIND|HOTWIND|LATTE|MAX|MINT|MOON|PIXELS|RAINBOX|TURBO|VALENCIA|VOYAGER2?|TITANS2?)[ -_](DG[0-9]+C?)[);/ ]|BL[579]000[);/ ]|BL12000|BL5500[_ ]Lite","device":"smartphone","models":[{"regex":"Valencia2_Y100pro","model":"Valencia2 Y100pro"},{"regex":"(BL[579]000)[);/ ]","model":"$1"},{"regex":"BL12000 PRO","model":"BL12000 Pro"},{"regex":"BL5500[_ ]Lite","model":"BL5500 Lite"},{"regex":"BL12000","model":"BL12000"},{"regex":"KISSME-DG580","model":"Kissme DG580"},{"regex":"(X5max(?:[_ ]PRO)?)","model":"$1"},{"regex":"(?:DOOGEE[ _-])?(BIGBOY|COLLO[23]?|DAGGER|DISCOVERY2?|FIND|HOTWIND|LATTE|MAX|MINT|MOON|PIXELS|RAINBOX|TURBO|VALENCIA|Valencia2_Y100pro|VOYAGER2?|TITANS2?)[ -_](DG[0-9]+C?)[);/ ]","model":"$1 $2"},{"regex":"DOOGEE[ _-]([^);/]+) Build","model":"$1"},{"regex":"DOOGEE[ _-]([^);/]+)[);/ ]","model":"$1"}]},"Doov":{"regex":"(?:Doov-)?Doov[ _]","device":"smartphone","models":[{"regex":"(?:Doov-)?Doov[ _]([^;/]+) Build","model":"$1"},{"regex":"(?:Doov-)?Doov[ _]([^);/]+)[);/ ]","model":"$1"}]},"Dopod":{"regex":"Dopod(?: )?([a-z0-9]+)","device":"feature phone","model":"$1"},"Doro":{"regex":"Doro","device":"smartphone","models":[{"regex":"Doro[ _-]?([^;/)]+) Build","model":"$1"},{"regex":"Doro[ _-]([0-9a-z]+)","model":"$1"}]},"Dune HD":{"regex":"DuneHD","device":"tv","models":[{"regex":"DuneHD/\\\\d.\\\\d \\\\([a-z]+__([a-z0-9_-]+);","model":"$1"},{"regex":"DuneHD/\\\\d.\\\\d \\\\(([a-z0-9_-]+);","model":"$1"}]},"DNS":{"regex":"(?:DNS|AirTab)[ _\\\\-]([^;/]+)Build|S4505M[);/ ]","device":"smartphone","models":[{"regex":"S4505M[);/ ]","model":"S4505M"},{"regex":"AirTab[ _\\\\-]([^;/]+)Build","model":"AirTab $1","device":"tablet"},{"regex":"DNS[ _\\\\-]([^;/]+)Build","model":"$1"}]},"E-Boda":{"regex":"E-Boda|Eclipse_(?:G400M|G500)","device":"smartphone","models":[{"regex":"E-Boda ((?:Revo|Izzycomm|Essential|Intelligence|Supreme)[^/;]+) Build","device":"tablet","model":"$1"},{"regex":"Eclipse_(G400M|G500)","model":"Eclipse $1"},{"regex":"E-Boda ([^/;]+) Build","model":"$1"}]},"Easypix":{"regex":"EasyPad|EasyPhone","device":"smartphone","models":[{"regex":"(EasyPhone[^/;]+) Build","model":"$1"},{"regex":"(EasyPad[^/;]+) Build","model":"$1","device":"tablet"}]},"EBEST":{"regex":"EBEST","device":"smartphone","models":[{"regex":"EBEST[ _-]?([^;/)]+) Build","model":"$1"},{"regex":"EBEST[ _-]?([^;/)]+)[);/ ]","model":"$1"}]},"Echo Mobiles":{"regex":"ECHO[ _](HOLI|HORIZON|MAX|MOSS|NOTE|POWER|SMART)","device":"smartphone","models":[{"regex":"ECHO_HORIZON_LITE","model":"HORIZON Lite"},{"regex":"ECHO_SMART_4G","model":"SMART 4G"},{"regex":"ECHO[ _](HOLI|MAX|MOSS|NOTE|POWER|SMART)","model":"$1"}]},"ECS":{"regex":"(?:TA10CA3|TM105A?|TR10CS1)[);/ ]","device":"tablet","models":[{"regex":"TA10CA3[);/ ]","model":"TA10CA3"},{"regex":"TR10CS1[);/ ]","model":"TR10CS1"},{"regex":"TM105A[);/ ]","model":"TM105A"},{"regex":"TM105[);/ ]","model":"TM105"}]},"EE":{"regex":"Hawk_from_EE","device":"smartphone","models":[{"regex":"Hawk_from_EE","model":"Hawk"}]},"Eks Mobility":{"regex":"S5LS|X4UPlus","device":"smartphone","models":[{"regex":"S5LS","model":"S5LS"},{"regex":"X4UPlus","model":"X4U Plus"}]},"Elephone":{"regex":"Elephone|P6000( ?Pro| ?Plus|\\\\+| ?02)? Build","device":"smartphone","models":[{"regex":"Elephone[ _\\\\-]([^/;]+) Build","model":"$1"},{"regex":"P6000(\\\\+| ?Plus) Build","model":"P6000 Plus"},{"regex":"P6000 02 Build","model":"P6000 02"},{"regex":"P6000 ?Pro Build","model":"P6000 Pro"},{"regex":"(P[68]000)","model":"$1"}]},"Elenberg":{"regex":"(TAB(?:101|728)[ _]3G|TAB7(?:[03]8|16|40|3[30]))[/;) ]","device":"tablet","model":"$1"},"Energy Sistem":{"regex":"ENERGY[ _-]?([^;/]+) Build","device":"tablet","model":"$1"},"Ericy":{"regex":"Ericy-([a-z0-9]+)","device":"feature phone","model":"$1"},"Essential":{"regex":"PH-1[ )]","device":"smartphone","models":[{"regex":"PH-1[ )]","model":"PH-1"}]},"E-tel":{"regex":"E-tel_i250","device":"smartphone","models":[{"regex":"E-tel[_ ]i250","model":"i250"}]},"Evercoss":{"regex":"A75A\\\\* Build","device":"smartphone","models":[{"regex":"A75A\\\\*","model":"A75A Star"}]},"Eurostar":{"regex":"(ET7002C-H12|Onyx-[13]S)[/;) ]","device":"smartphone","models":[{"regex":"Onyx-([13]S)[/;) ]","model":"Onyx $1"},{"regex":"ET7002C-H12[/;) ]","model":"ePad 4S","device":"tablet"}]},"Eton":{"regex":"Eton","device":"smartphone","models":[{"regex":"Eton[ _-]?([^;/)]+) Build","model":"$1"},{"regex":"Eton[ _-]?([^;/)]+)[);/ ]","model":"$1"}]},"Essentielb":{"regex":"(Wooze[_ ](?:I5|L|XL)) Build","device":"smartphone","model":"$1"},"Rikomagic":{"regex":"MK(80[28][^/;]*) Build","device":"tv","model":"MK$1"},"Rinno":{"regex":"Rinno (R(?:400|505))","device":"smartphone","model":"$1"},"Riviera":{"regex":"RIVIERA ","device":"smartphone","models":[{"regex":"F23","model":"F23"}]},"Senseit":{"regex":"SENSEIT[ _]?([^;/)]+) Build","device":"smartphone","model":"$1"},"Sony":{"regex":"Sony(?: ?Ericsson)?|SGP|Xperia|([456]0[12]|701)SO|C1[569]0[45]|C2[01]0[45]|C230[45]|C530[236]|C550[23]|C6[56]0[236]|C6616|C68(?:0[26]|[34]3)|C69(?:0[236]|16|43)|D200[45]|D21(?:0[45]|14)|D22(?:0[236]|12|43)|D230[2356]|D240[36]|D25(?:02|33)|D510[236]|D530[36]|D5316|D5322|D5503|D58[03]3|D65(?:0[23]|43|63)|D66[03458]3|D66[14]6|D6708|E(?:20[0345]3|2006|210[45]|2115|2124|230[36]|2312|23[356]3|530[36]|53[3456]3|5506|55[356]3|56[46305][36]|58[02]3|65[35]3|66[0358]3|68[358]3)|I[34]312|I4332|F311[12356]|F331[13]|F321[12356]|F5[13]21|F5122|F813[12]|F833[12]|G312[135]|G311[26]|G322[136]|G3212|G331[123]|G3412|G3416|G342[136]|G823[12]|G834[123]|G8[14]4[12]|H(?:3113|3123|3133|3213|3223|3311|3321|4113|4133|4213|4233|4311|4331|4413|4433|82[167]6|83[12]4|8416|9436)|(?:WT|LT|SO|ST|SK|MK)[0-9]+[a-z]+[0-9]*(?: Build|\\\\))|X?L39H|XM50[ht]|W960|portalmmm/2\\\\.0 K|S3[69]h|SOL2[246]|SOV3[1234567]|X10[ia]v?|E1[05][ai]v?|MT[0-9]{2}[a-z]? Build|SO-0(?:[12]C|[345]D|[234]E|[1235]F|[1234]G|[134]H|[1234]J|[12]K)|R800[aix]|J9110|J81[17]0|I[34]113|I3[12]23|I42[19]3|H9493|H8296|H8166|H4493|LiveWithWalkman","device":"smartphone","models":[{"regex":"(?:Sony(?:Ericsson)?)?E10[ai]v?","model":"Xperia X10 mini","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?U20","model":"Xperia X10 mini pro","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?E15[ai]v?","model":"Xperia X8","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?(LT15[ai]?v?|SO-01C)","model":"Xperia arc","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?LT18[ai]v?","model":"Xperia arc S","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?MT11","model":"Xperia neo V","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?MT15","model":"Xperia neo","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?MT27","model":"Xperia Sola","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?MK16[ai]","model":"Xperia pro","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?ST15[ai]","model":"Xperia mini","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?ST17[ai]","model":"Xperia active","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?ST18[ai]","model":"Xperia ray","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?SK17[ai]?","model":"Xperia mini pro","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?X10[ai]v?","model":"Xperia X10","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)M1","model":"Aspen","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?R800","model":"Xperia PLAY","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?WT19|LiveWithWalkman","model":"Live with Walkman","brand":"Sony Ericsson"},{"regex":"(?:Sony(?:Ericsson)?)?CK13i","model":"txt","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?CK15[ai]","model":"txt pro","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?F100i","model":"Jalou","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?J105","model":"Naite","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?J108","model":"Cedar","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?J10","model":"Elm","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?J20","model":"Hazel","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?U10","model":"Aino","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?U100","model":"Yari","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?U1","model":"Satio","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?U5","model":"Vivaz","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?U8","model":"Vivaz pro","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?W20","model":"Zylo","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?W100","model":"Spiro","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?W150","model":"Yendo","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?W960","model":"W960","brand":"Sony Ericsson","device":"feature phone"},{"regex":"(?:Sony(?:Ericsson)?)?WT13","model":"Mix Walkman","brand":"Sony Ericsson","device":"feature phone"},{"regex":"SO-04G","model":"Xperia A4"},{"regex":"(?:Sony(?:Ericsson)?)?I(?:4113|31[12]3)","model":"Xperia 10"},{"regex":"(?:Sony(?:Ericsson)?)?I(?:42[19]3|3223)","model":"Xperia 10 Plus"},{"regex":"(?:Sony(?:Ericsson)?)?J(?:9110|81[17]0)","model":"Xperia 1"},{"regex":"(?:Sony(?:Ericsson)?)?LT22i","model":"Xperia P"},{"regex":"(?:Sony(?:Ericsson)?)?LT25i","model":"Xperia V"},{"regex":"(?:Sony(?:Ericsson)?)?LT26ii","model":"Xperia SL"},{"regex":"(?:Sony(?:Ericsson)?)?LT26i","model":"Xperia S"},{"regex":"(?:Sony(?:Ericsson)?)?SO-02C","model":"Xperia arco"},{"regex":"(?:Sony(?:Ericsson)?)?SO-03D","model":"Xperia arco HD"},{"regex":"(?:Sony(?:Ericsson)?)?LT26w","model":"Xperia arco S"},{"regex":"(?:Sony(?:Ericsson)?)?LT28[aih]","model":"Xperia ion"},{"regex":"(?:Sony(?:Ericsson)?)?LT29i","model":"Xperia TX"},{"regex":"(?:Sony(?:Ericsson)?)?LT30a","model":"Xperia T LTE"},{"regex":"(?:Sony(?:Ericsson)?)?LT30p","model":"Xperia T"},{"regex":"(?:Sony(?:Ericsson)?)?ST21[ia]2","model":"Xperia tipo dual"},{"regex":"(?:Sony(?:Ericsson)?)?ST21[ia]","model":"Xperia tipo"},{"regex":"(?:Sony(?:Ericsson)?)?ST23[ia]","model":"Xperia miro"},{"regex":"(?:Sony(?:Ericsson)?)?ST25[ia]","model":"Xperia U"},{"regex":"(?:Sony(?:Ericsson)?)?SOL22","model":"Xperia UL"},{"regex":"(?:Sony(?:Ericsson)?)?ST26[ia]","model":"Xperia J"},{"regex":"(?:Sony(?:Ericsson)?)?ST27[ia]","model":"Xperia go"},{"regex":"(?:Sony(?:Ericsson)?)?C150[45]","model":"Xperia E"},{"regex":"(?:Sony(?:Ericsson)?)?C160[45]","model":"Xperia E Dual"},{"regex":"(?:Sony(?:Ericsson)?)?(?:E210[45]|E2115|E2124)","model":"Xperia E4"},{"regex":"(?:Sony(?:Ericsson)?)?E20[05]3|E2006","model":"Xperia E4G"},{"regex":"(?:Sony(?:Ericsson)?)?C190[45]","model":"Xperia M"},{"regex":"(?:Sony(?:Ericsson)?)?C200[45]","model":"Xperia M Dual"},{"regex":"(?:Sony(?:Ericsson)?)?C210[45]|S36h","model":"Xperia L"},{"regex":"(?:Sony(?:Ericsson)?)?C230[45]|S39h","model":"Xperia C"},{"regex":"(?:Sony(?:Ericsson)?)?C530[236]","model":"Xperia SP"},{"regex":"(?:Sony(?:Ericsson)?)?C550[23]","model":"Xperia ZR"},{"regex":"(?:Sony(?:Ericsson)?)?C650[236]","model":"Xperia ZL"},{"regex":"(?:Sony(?:Ericsson)?)?(?:C66(?:0[236]|16)|SO-02E)","model":"Xperia Z"},{"regex":"(?:Sony(?:Ericsson)?)?(?:C68(?:0[26]|[34]3)|XL39H|SOL24)","device":"phablet","model":"Xperia Z Ultra"},{"regex":"(?:Sony(?:Ericsson)?)?(?:C69(?:0[236]|16|43)|L39H|SO-0[12]F)","model":"Xperia Z1"},{"regex":"(?:Sony(?:Ericsson)?)?D200[45]","model":"Xperia E1"},{"regex":"(?:Sony(?:Ericsson)?)?D21(?:0[45]|14)","model":"Xperia E1 Dual"},{"regex":"(?:Sony(?:Ericsson)?)?D22(?:0[236]|43)","model":"Xperia E3"},{"regex":"(?:Sony(?:Ericsson)?)?D2212","model":"Xperia E3 Dual"},{"regex":"(?:Sony(?:Ericsson)?)?E20[34]3","model":"Xperia E4g Dual"},{"regex":"H33[12]1","model":"Xperia L2"},{"regex":"H43[13]1","model":"Xperia L2 Dual"},{"regex":"I3312","model":"Xperia L3"},{"regex":"I43[13]2","model":"Xperia L3 Dual"},{"regex":"(?:Sony(?:Ericsson)?)?D2302","model":"Xperia M2 Dual"},{"regex":"(?:Sony(?:Ericsson)?)?D230[356]","model":"Xperia M2"},{"regex":"(?:Sony(?:Ericsson)?)?D240[36]","model":"Xperia M2 Aqua"},{"regex":"(?:Sony(?:Ericsson)?)?(?:E230[36]|E23[35]3)","model":"Xperia M4 Aqua"},{"regex":"(?:Sony(?:Ericsson)?)?(?:E2312|E2363)","model":"Xperia M4 Aqua Dual"},{"regex":"(?:Sony(?:Ericsson)?)?E56[05][36]","model":"Xperia M5"},{"regex":"(?:Sony(?:Ericsson)?)?E56[436]3","model":"Xperia M5 Dual"},{"regex":"(?:Sony(?:Ericsson)?)?D2502","model":"Xperia C3 Dual"},{"regex":"(?:Sony(?:Ericsson)?)?D2533","model":"Xperia C3"},{"regex":"(?:Sony(?:Ericsson)?)?E53[05]3|E5306","model":"Xperia C4"},{"regex":"(?:Sony(?:Ericsson)?)?E53[0346]3","model":"Xperia C4 Dual"},{"regex":"(?:Sony(?:Ericsson)?)?E5506|E5553","model":"Xperia C5 Ultra"},{"regex":"(?:Sony(?:Ericsson)?)?E55[36]3","model":"Xperia C5 Ultra Dual"},{"regex":"(?:Sony(?:Ericsson)?)?D510[236]","model":"Xperia T3"},{"regex":"(?:Sony(?:Ericsson)?)?(?:D530[36]|D5316|XM50[ht])","model":"Xperia T2 Ultra","device":"phablet"},{"regex":"(?:Sony(?:Ericsson)?)?D5322","model":"Xperia T2 Ultra Dual","device":"phablet"},{"regex":"(?:Sony(?:Ericsson)?)?D5503","model":"Xperia Z1 Compact"},{"regex":"(?:Sony(?:Ericsson)?)?(?:D58[03]3|SO-02G)","model":"Xperia Z3 Compact"},{"regex":"(?:Sony(?:Ericsson)?)?(?:D65(?:0[23]|43)|SO-03F)","model":"Xperia Z2"},{"regex":"D6563","model":"Xperia Z2a"},{"regex":"(?:Sony(?:Ericsson)?)?(?:D66[045]3|D66[14]6|SO-01G|SOL26|401SO)","model":"Xperia Z3"},{"regex":"(?:Sony(?:Ericsson)?)?(?:D6633|D6683)","model":"Xperia Z3 Dual"},{"regex":"(?:Sony(?:Ericsson)?)?(?:E65[35]3)","model":"Xperia Z3+"},{"regex":"(?:Sony(?:Ericsson)?)?(?:D6708)","model":"Xperia Z3v"},{"regex":"SOV31|402SO|SO-03G","model":"Xperia Z4"},{"regex":"(?:Sony(?:Ericsson)?)?(?:E58[02]3)","model":"Xperia Z5 Compact"},{"regex":"(?:Sony(?:Ericsson)?)?(?:E66[05]3|SOV32|501SO|SO-01H)","model":"Xperia Z5"},{"regex":"(?:Sony(?:Ericsson)?)?E66[38]3","model":"Xperia Z5 Dual"},{"regex":"(?:Sony(?:Ericsson)?)?(?:E68[58]3|SO-03H)","model":"Xperia Z5 Premium"},{"regex":"(?:Sony(?:Ericsson)?)?E6833","model":"Xperia Z5 Premium Dual"},{"regex":"(?:Sony(?:Ericsson)?)?F311[135]","model":"Xperia XA"},{"regex":"(?:Sony(?:Ericsson)?)?F311[26]","model":"Xperia XA Dual"},{"regex":"(?:Sony(?:Ericsson)?)?F321[135]","model":"Xperia XA Ultra"},{"regex":"(?:Sony(?:Ericsson)?)?F321[26]","model":"Xperia XA Ultra Dual"},{"regex":"(?:Sony(?:Ericsson)?)?F833[12]|SOV34|601SO|SO-01J","model":"Xperia XZ"},{"regex":"(?:Sony(?:Ericsson)?)?(?:701SO|SOV36|G834[123]|SO-01K)","model":"Xperia XZ1"},{"regex":"(?:Sony(?:Ericsson)?)?G8441|SO-02K","model":"Xperia XZ1 Compact"},{"regex":"(?:Sony(?:Ericsson)?)?F331[13]","model":"Xperia E5"},{"regex":"(?:Sony(?:Ericsson)?)?G312[135]|G311[26]","model":"Xperia XA1"},{"regex":"(?:Sony(?:Ericsson)?)?G341[26]|G342[13]","model":"Xperia XA1 Plus"},{"regex":"(?:Sony(?:Ericsson)?)?G3426","model":"Xperia XA1 Plus Dual"},{"regex":"(?:Sony(?:Ericsson)?)?G322[136]|G3212","model":"Xperia XA1 Ultra"},{"regex":"(?:Sony(?:Ericsson)?)?H31[123]3","model":"Xperia XA2"},{"regex":"(?:Sony(?:Ericsson)?)?H41[13]3","model":"Xperia XA2 Dual"},{"regex":"H44[19]3","model":"Xperia XA2 Plus Dual"},{"regex":"H4433","model":"H4433"},{"regex":"(?:Sony(?:Ericsson)?)?H(?:3213|3223|4213|4233)","model":"Xperia XA2 Ultra"},{"regex":"(?:Sony(?:Ericsson)?)?G823[12]|SOV35|602SO|SO-03J","model":"Xperia XZs"},{"regex":"(?:Sony(?:Ericsson)?)?G814[12]|SO-04J","model":"Xperia XZ Premium"},{"regex":"(?:Sony(?:Ericsson)?)?(?:H83[12]4|H82[17]6|SOV37|H8296)","model":"Xperia XZ2"},{"regex":"H8266","model":"Xperia XZ2 Dual"},{"regex":"H8166","model":"Xperia XZ2 Premium Dual"},{"regex":"(?:Sony(?:Ericsson)?)?H(8416|9436|9493)","model":"Xperia XZ3"},{"regex":"(?:Sony(?:Ericsson)?)?G331[13]","model":"Xperia L1"},{"regex":"(?:Sony(?:Ericsson)?)?G3312","model":"Xperia L1 Dual"},{"regex":"(?:Sony(?:Ericsson)?)?SO-04E","model":"Xperia A"},{"regex":"(?:Sony(?:Ericsson)?)?SO-04D","model":"Xperia GX"},{"regex":"(?:Sony(?:Ericsson)?)?SO-05D","model":"Xperia SX"},{"regex":"(?:Sony(?:Ericsson)?)?F5121","model":"Xperia X"},{"regex":"(?:Sony(?:Ericsson)?)?F5122","model":"Xperia X Dual"},{"regex":"(?:Sony(?:Ericsson)?)?F5321|SO-02J","model":"Xperia X Compact"},{"regex":"(?:Sony(?:Ericsson)?)?(?:F8131|502SO|SOV33|SO-04H)","model":"Xperia X Performance"},{"regex":"(?:Sony(?:Ericsson)?)?F8132","model":"Xperia X Performance Dual"},{"regex":"SGP(?:311|312|321)[);/ ]|SO-03E","model":"Xperia Tablet Z","device":"tablet"},{"regex":"SGP(?:511|512|521)[);/ ]|SO-05F","model":"Xperia Tablet Z2","device":"tablet"},{"regex":"SGP(?:6[24]1)[);/ ]","model":"Xperia Tablet Z3 Compact","device":"tablet"},{"regex":"SGPT(?:12|121|122|123|13|131|132|133)[);/ ]","model":"Xperia Tablet S","device":"tablet"},{"regex":"SonyBDP|SonyDBV","model":"Blu-ray Player","device":"tv"},{"regex":"(?:Sony-)?(KDL?-?[0-9a-z]+)","model":"$1","device":"tv"},{"regex":"Opera TV Store.*(?:Sony-)([0-9a-z\\\\-_]+)","model":"$1","device":"tv"},{"regex":"((?:WT|SO|ST|SK|MK)[0-9]+[a-z]*[0-9]*)(?: Build|\\\\))","model":"$1","brand":"Sony Ericsson"},{"regex":"(MT[0-9]{2}[a-z]?)[);/ ]","model":"$1","brand":"Sony Ericsson"},{"regex":"portalmmm/2.0 K([a-z0-9]+)","model":"K$1","brand":"Sony Ericsson"},{"regex":"Sony ?Ericsson?([^/;]*) Build","model":"$1","brand":"Sony Ericsson"},{"regex":"SonyEricsson([CGJKPTWZ][0-9]+[a-z]+)/","model":"$1","brand":"Sony Ericsson","device":"feature phone"},{"regex":"Sony ?Ericsson ?([a-z0-9\\\\-]+)","model":"$1","brand":"Sony Ericsson"},{"regex":"Sony (Tablet[^/;]*) Build","model":"$1","device":"tablet"},{"regex":"(SGP[^/;]*) Build","model":"$1","device":"tablet"},{"regex":"Xperia ([^/;]*Tablet[^/;]*) Build","model":"Xperia $1","device":"tablet"},{"regex":"Xperia ([^;/]+) Build","model":"Xperia $1"},{"regex":"Sony[ -]?([^/;]*) Build","model":"$1"},{"regex":"Sony[ -]?([a-z0-9\\\\-]+)","model":"$1"}]},"Ergo":{"regex":"ERGO|(B502 Basic|B504[_ ]Unit|A502[_ ]Aurum|A503[ _]Optima|Prime B400|A551 Sky 4G|A553 Power|A555 Universe|Force F500|GoTab GBT9|GoTab Gti8)","device":"smartphone","models":[{"regex":"B502 Basic","model":"B502 Basic"},{"regex":"B504[_ ]Unit","model":"B504 Unit"},{"regex":"A500 Best","model":"A500 Best"},{"regex":"A550 Maxx","model":"A550 Maxx"},{"regex":"Prime B400","model":"Prime B400"},{"regex":"A502[_ ]Aurum","model":"A502 Aurum"},{"regex":"A503[ _]Optima","model":"A503 Optima"},{"regex":"A551 Sky 4G","model":"A551 Sky 4G"},{"regex":"A553 Power","model":"A553 Power"},{"regex":"A555 Universe","model":"A555 Universe"},{"regex":"ERGO[_ ]A556","model":"A556"},{"regex":"ERGO[_ ]F500","model":"F500"},{"regex":"ERGO[_ ]F501","model":"F501"},{"regex":"B500 First","model":"B500 First"},{"regex":"Force F500","model":"Force F500"},{"regex":"GoTab GBT9","model":"GoTab GBT9","device":"tablet"},{"regex":"GoTab Gti8","model":"GoTab GTi8","device":"tablet"},{"regex":"ERGO[_ ]Tab[ _]Crystal[ _]Lite","model":"Tab Crystal Lite","device":"tablet"},{"regex":"ERGO[_ ]Tab[ _]Hero[ _]II","model":"Tab Hero II","device":"tablet"}]},"Ericsson":{"regex":"(?:Ericsson(?:/ )?[a-z0-9]+)|(?:R380 2.0 WAP1.1)","device":"feature phone","models":[{"regex":"Ericsson(?:/ )?([a-z0-9]+)","model":"$1"},{"regex":"R380 2.0 WAP1.1","model":"R380"}]},"Energizer":{"regex":"PowerMax","device":"smartphone","models":[{"regex":"PowerMax(P[0-9]+S?)","model":"Power Max $1"}]},"eTouch":{"regex":"eTouch ?([a-z0-9]+)","device":"smartphone","model":"$1"},"Etuline":{"regex":"(ETL-S(?:3520|4521|5042|5084|6022)|ETL-T(?:752G|882G|9[78]0))[/); ]","device":"smartphone","models":[{"regex":"(ETL-S(?:[^/); ]+))","model":"$1"},{"regex":"(ETL-T(?:[^/); ]+))","device":"tablet","model":"$1"}]},"Storex":{"regex":"eZee[^a-z]*Tab ?([^;/]*) Build|STOREX LinkBox","device":"tablet","models":[{"regex":"eZee[^a-z]*Tab ?([^;/]*) Build","model":"eZee\'Tab$1"},{"regex":"STOREX LinkBox","model":"LinkBox","device":"tv"}]},"Evertek":{"regex":"(Ever(?:Glory|Shine|Miracle|Mellow|Classic|Trendy|Fancy|Vivid|Slim|Glow|Magic|Smart|Star)[^/;]*) Build|E70[25]0HD|E805[01]HD|E9054HD|E8050HG|E7914HG","device":"smartphone","models":[{"regex":"(E70[25]0HD|E805[01]HD|E9054HD|E8050HG|E7914HG)","device":"tablet","model":"Everpad $1"},{"regex":"(Ever(?:Glory|Shine|Miracle|Mellow|Classic|Trendy|Fancy|Vivid|Slim|Glow|Magic|Smart|Star)[^/;]*) Build","model":"$1"}]},"Evolio":{"regex":"Evolio|M4MAGIC","device":"smartphone","models":[{"regex":"M4MAGIC","model":"M4 Magic"},{"regex":"Evolio_M5Pro","model":"M5 Pro"},{"regex":"Evolio[ _](M6|S4 Cobalt|S5|X10|Yuppi)","model":"$1"}]},"Evolveo":{"regex":"EVOLVEO[ _]([^;/]*) Build","device":"smartphone","models":[{"regex":"Smart TV ([^;/]*) Build","device":"tv","model":"Smart TV $1"},{"regex":"EVOLVEO[ _]([^;/]*) Build","model":"$1"}]},"Explay":{"regex":"Explay|ActiveD[ _]|Atlant |Informer[ _][0-9]+|CinemaTV 3G|Surfer[ _][0-9\\\\.]|sQuad[ _][0-9\\\\.]|Onliner[1-3]|RioPlay|Leader","device":"tablet","models":[{"regex":"ActiveD[ _]7.4[ _]3G","model":"ActiveD 7.4 3G"},{"regex":"ActiveD[ _]8.2[ _]3G","model":"ActiveD 8.2 3G"},{"regex":"CinemaTV[ _]3G","model":"CinemaTV 3G"},{"regex":"Informer[ _]([0-9]+(?:[ _]3G)?)","model":"Informer $1"},{"regex":"Surfer[ _]([0-9\\\\.]+(?:[ _]3G)?)","model":"Surfer $1"},{"regex":"sQuad[ _]([0-9\\\\.]+(?:[ _]3G)?)","model":"sQuad $1"},{"regex":"Onliner([1-3])","model":"Onliner $1"},{"regex":"Atlant[;/) ]","device":"smartphone","model":"Atlant"},{"regex":"Explay[ _-]([^;/]+) Build","model":"$1"},{"regex":"Explay[ _-]([^;/]+)[;/)]","model":"$1"},{"regex":"(RioPlay)[;/) ]","device":"smartphone","model":"Rio Play"},{"regex":"Leader","model":"Leader"}]},"EvroMedia":{"regex":"Playpad[ _]","device":"tablet","models":[{"regex":"Playpad 3G GOO","model":"Play Pad 3G Goo"},{"regex":"PlayPad 3GTab XL","model":"Play Pad 3G Tab XL"}]},"EKO":{"regex":"EKO","device":"smartphone","models":[{"regex":"EKO[ _-]?([^;/)]+) Build","model":"$1"},{"regex":"EKO[ _-]?([^;/)]+)[);/ ]","model":"$1"}]},"Extrem":{"regex":"Rock X9+","device":"smartphone","models":[{"regex":"Rock X9+","model":"Rock X9+"}]},"Ezze":{"regex":"EZZE-|EZ[a-z0-9]+","device":"feature phone","models":[{"regex":"EZZE-([a-z0-9]+)","model":"$1"},{"regex":"EZ([a-z0-9]+)","model":"EZ$1"}]},"Ezio":{"regex":"EZIO-([a-z0-9]+)","device":"feature phone","model":"$1"},"Forstar":{"regex":"Amosta 3G5","device":"smartphone","models":[{"regex":"Amosta 3G5","model":"Amosta 3G5"}]},"Foxconn":{"regex":"InFocus M[0-9]+[a-z]?","device":"smartphone","models":[{"regex":"InFocus M([0-9]+[a-z]?)","model":"InFocus M$1"}]},"Fondi":{"regex":"Fondi[- _]([^;/)]+)|(T702|Q008B|Q010B|Q718B|Q902|T602B|T707G|T708B|T725B|T725B1|T907B)(?:\\\\)| Build)","device":"smartphone","models":[{"regex":"(T702|T602B)","model":"$1"},{"regex":"(Q008B|Q010B|Q718B|Q902|T707G|T708B|T725B|T725B1|T907B)","device":"tablet","model":"$1"},{"regex":"Fondi[- _]([^;/)]+)","model":"$1"}]},"Fairphone":{"regex":"(FP(?:1U?|2))[);/ ]","device":"smartphone","model":"$1"},"Famoco":{"regex":"(FX[123]00)","device":"smartphone","model":"$1"},"FiGO":{"regex":"ATRIUM II F55L2|TRIO F40LT|EPIC F50G|Gravity X55L|Orion M50L|ULTRA M50G|M405B|VIRTUE3|F55L Build","device":"smartphone","models":[{"regex":"ATRIUM II F55L2","model":"Atrium II"},{"regex":"(F55L)","model":"$1"},{"regex":"TRIO F40LT","model":"Trio F40LT"},{"regex":"EPIC F50G","model":"Epic F50G"},{"regex":"(Gravity X55L|Orion M50L)","model":"$1"},{"regex":"ULTRA M50G","model":"Prime"},{"regex":"M405B_8GB","model":"Virtue II 8GB"},{"regex":"M405B","model":"Virtue II"},{"regex":"VIRTUE3","model":"Virtue III"}]},"FNB":{"regex":"ConeXis (A[12]|X[12])|SP5045V","device":"smartphone","models":[{"regex":"SP5045V","model":"SP5045V"},{"regex":"ConeXis A1","model":"ConeXis A1"},{"regex":"ConeXis A2","model":"ConeXis A2"},{"regex":"ConeXis X1","model":"ConeXis X1"},{"regex":"ConeXis X2","model":"ConeXis X2"}]},"Fujitsu":{"regex":"F-01[FHJK]|F-02[EFGH]|F-03[DEFGH]|F-04[EG]|F-05[DEFJ]|F-06E|F-07[DE]|F-08D|F-09[DE]|F-10D|F-11D|F-12C|M532|FARTM933KZ[);/ ]","device":"smartphone","models":[{"regex":"F-01F","model":"Arrows NX F-01F"},{"regex":"F-01J","model":"Arrows NX F-01J"},{"regex":"F-01K","model":"Arrows NX F-01K"},{"regex":"F-01H","model":"Arrows Fit F-01H"},{"regex":"F-02E","model":"Arrows X F-02E"},{"regex":"F-02G","model":"Arrows NX F-02G"},{"regex":"F-02H","model":"Arrows NX F-02H"},{"regex":"F-03D","model":"Arrows Kiss F-03D"},{"regex":"F-03E","model":"Arrows Kiss F-03E"},{"regex":"F-03F","model":"Disney Mobile F-03F"},{"regex":"F-03H","model":"Arrows SV F-03H"},{"regex":"F-04E","model":"Arrows V F-04E"},{"regex":"F-04G","model":"Arrows NX F-04G"},{"regex":"F-05D","model":"Arrows X LTE F-05D"},{"regex":"F-05F","model":"Arrows NX F-05F"},{"regex":"F-05J","model":"Arrows Be F-05J"},{"regex":"F-06E","model":"Arrows NX F-06E"},{"regex":"F-07D","model":"Arrows \u03bc F-07D"},{"regex":"F-07E","model":"Disney Mobile F-07E"},{"regex":"F-08D","model":"Disney Mobile F-08D"},{"regex":"F-09D","model":"ANTEPRIMA F-09D"},{"regex":"F-09E","model":"Raku-Raku Smartphone Premium F-09E"},{"regex":"F-10D","model":"Arrows X F-10D"},{"regex":"F-11D","model":"Arrows Me F-11D"},{"regex":"F-12C","model":"F-12C"},{"regex":"F-02F","model":"Arrows Tab F-02F","device":"tablet"},{"regex":"F-03G","model":"Arrows Tab F-03G","device":"tablet"},{"regex":"F-05E","model":"Arrows Tab F-05E","device":"tablet"},{"regex":"FARTM933KZ","model":"Arrows Tab M504/HA4","device":"tablet"},{"regex":"M532[);/ ]","model":"Stylistic","device":"tablet"}]},"G-TiDE":{"regex":"G-TiDE","device":"smartphone","models":[{"regex":"Shining7","model":"Shining 7"},{"regex":"G-TiDE_(A1|S[34])","model":"$1"},{"regex":"G-TiDE V6","model":"V6"},{"regex":"E(57|60|66|72|77)","model":"$1"}]},"Gemini":{"regex":"(GEM[0-9]+[a-z]*)","device":"tablet","model":"$1"},"Geotel":{"regex":"GEOTEL","device":"smartphone","models":[{"regex":"G1","model":"G1"}]},"Ghia":{"regex":"GHIA|QS702","device":"smartphone","models":[{"regex":"QS702","model":"QS702"},{"regex":"GHIA_ZEUS_3G","model":"Zeus 3G"},{"regex":"GHIA_AXIS7","model":"Axis 7","device":"tablet"}]},"Gigabyte":{"regex":"GSmart [a-z0-9 ]+ Build|Gigabyte-[a-z0-9]+","device":"smartphone","models":[{"regex":"(GSmart [a-z0-9 ]+) Build","model":"$1"},{"regex":"Gigabyte-([a-z0-9]+)","model":"$1"}]},"Gigaset":{"regex":"Gigaset","device":"smartphone","models":[{"regex":"Gigaset QV(1030|830)","model":"Gigaset QV$1","device":"tablet"},{"regex":"Gigaset ([^;/]+) Build","model":"$1"},{"regex":"Gigaset ([^;/)]+)[);/ ]","model":"$1"}]},"Ginzzu":{"regex":"GINZZU[_ ]|((?:RS(?:7[14]|81|9[67])D)|S50[45]0|S5120|RS(6[12]|94)D|S40[23]0|RS8502|RS9602)[);/ ]","device":"smartphone","models":[{"regex":"GINZZU[_ ]?(S40[17]0|S4710|ST6040)","model":"$1"},{"regex":"GINZZU[_ ]?(GT-7105)","model":"$1","device":"tablet"},{"regex":"(RS6[12]D) ULTIMATE","model":"$1 Ultimate"},{"regex":"((?:RS(?:7[14]|81|9[67])D)|S50[45]0|S5120|S40[23]0|RS8502|RS9602|RS94D)[);/ ]","model":"$1"}]},"Gionee":{"regex":"(?:GIO-)?GIONEE[ _-]?[a-z0-9]+|(?:Dream_D1|V188S?|GN[0-9]{3,4}[a-z]?)[);/ ]|F103(?: Pro)? Build|P5 mini Build|P7 Max Build|M7 Power ","device":"smartphone","models":[{"regex":"GN810[);/ ]","model":"GN810","device":"phablet"},{"regex":"GN([0-9]{3,4}[a-z]?)[);/ ]","model":"GN$1"},{"regex":"V188S[);/ ]","model":"V188S"},{"regex":"V188[);/ ]","model":"V188"},{"regex":"F103( Pro)? Build","model":"F103$1"},{"regex":"M7 Power","model":"M7 Power"},{"regex":"P5 mini Build","model":"P5 mini"},{"regex":"P7 Max Build","model":"P7 Max"},{"regex":"(?:(?:GIO-)?GIONEE[ _-])?Dream_D1[);/ ]","model":"Dream D1"},{"regex":"(?:GIO-)?GIONEE[ _-]([a-z0-9_-]+).*Android","model":"$1"},{"regex":"Android.*(?:GIO-)?GIONEE[ _-]([a-z0-9_-]+)","model":"$1"},{"regex":"(?:GIO-)?GIONEE[ _-]?([a-z0-9]+)","model":"$1","device":"feature phone"}]},"Grape":{"regex":"(?:Grape[ _])?GTM-5([^;/]+) Build","device":"smartphone","model":"GTM-5$1"},"Vizio":{"regex":"Vizio|VAP430|VTAB1008","device":"tv","models":[{"regex":"VAP430","model":"VAP430"},{"regex":"VTAB1008","device":"tablet","model":"VTAB1008"}]},"GOCLEVER":{"regex":"GOCLEVER|QUANTUM_[0-9]{3}|QUANTUM [0-9]{1}|QUANTUM 700N|QUANTUM_(1010N|1010M|900)|ARIES|INSIGNIA|ORION_|ELIPSO|LIBRA[ _]97","device":"smartphone","models":[{"regex":"QUANTUM_(1010N|1010M|900)","model":"QUANTUM $1","device":"tablet"},{"regex":"INSIGNIA_785_PRO","model":"INSIGNIA 785 PRO","device":"tablet"},{"regex":"(ORION|ARIES|ELIPSO)[_ ](71|101|102)","model":"$1 $2","device":"tablet"},{"regex":"TQ700N","model":"QUANTUM 700N","device":"tablet"},{"regex":"((?:QUANTUM|ARIES|INSIGNIA|ORION|ELIPSO)[ _-]?[^;/]+) Build","model":"$1"},{"regex":"GOCLEVER[ _-]TAB[ _-]?([^;/]+) Build","model":"TAB $1","device":"tablet"},{"regex":"GOCLEVER[ _-]?([^;/]+) Build","model":"$1"},{"regex":"TAB ([^;/)]+) Build/GOCLEVER","model":"TAB $1","device":"tablet"},{"regex":"([^;/)]+) Build/GOCLEVER","model":"$1"},{"regex":"GOCLEVER[ _-]?TAB[ _-]([^;/)]+)[;/)]","model":"TAB $1","device":"tablet"},{"regex":"GOCLEVER[ _-]?([^;/)]+)[;/)]","model":"$1"},{"regex":"LIBRA[ _]97","model":"Libra 97","device":"tablet"}]},"GoMobile":{"regex":"GO Onyx|GO[0-9]{3,4}","device":"smartphone","models":[{"regex":"GO Onyx","model":"Go Onyx"},{"regex":"GO([0-9]{3,4})","model":"Go$1"}]},"Goly":{"regex":"Goly[ _-]","device":"smartphone","models":[{"regex":"Goly[ _-]([^;/]+) Build","model":"$1"},{"regex":"Goly[ _-]([^;/)]+)[;/)]","model":"$1"}]},"Google":{"regex":"Nexus|GoogleTV|Glass|CrKey[^a-z0-9]|Pixel(?: Build|\\\\))|Pixel (?:XL|C|[23]|[23] XL)","device":"smartphone","models":[{"regex":"Glass","model":"Glass"},{"regex":"Galaxy Nexus","model":"Galaxy Nexus"},{"regex":"(Nexus (?:S|4|5X?|One))","model":"$1"},{"regex":"(Nexus (?:6P?))","device":"phablet","model":"$1"},{"regex":"(Nexus (?:7|9|10))","device":"tablet","model":"$1"},{"regex":"CrKey[^a-z0-9]","model":"Chromecast","device":"tv"},{"regex":"GoogleTV","device":"tv","model":"GoogleTV"},{"regex":"Pixel(?: Build|\\\\))","model":"Pixel"},{"regex":"Pixel XL","model":"Pixel XL"},{"regex":"Pixel 3 XL","model":"Pixel 3 XL"},{"regex":"Pixel 2 XL","model":"Pixel 2 XL"},{"regex":"Pixel 3","model":"Pixel 3"},{"regex":"Pixel 2","model":"Pixel 2"},{"regex":"Pixel C","device":"tablet","model":"Pixel C"}]},"Gradiente":{"regex":"GRADIENTE","device":"feature phone","models":[{"regex":"GRADIENTE-([a-z0-9]+)","model":"$1"},{"regex":"GRADIENTE ([a-z0-9\\\\-]+)","model":"$1"}]},"Grundig":{"regex":"GR?-TB[0-9]+[a-z]*|GRUNDIG|portalmmm/2\\\\.0 G","device":"tv","models":[{"regex":"(GR?-TB[0-9]+[a-z]*)","device":"tablet","model":"$1"},{"regex":"GRUNDIG ([a-z0-9]+)","model":"$1"},{"regex":"portalmmm/2\\\\.0 G([a-z0-9]+)","model":"G$1"}]},"Hafury":{"regex":"HAFURY","device":"smartphone","models":[{"regex":"(MIX|UMAX)","model":"$1"}]},"Haier":{"regex":"Haier|(?:HW-)?W(?:716|757|860|970)[);/ ]|(?:HM-)?(G(?:152|303|353|552|70[01])?-FL|G(?:303)?-W|I(?:557)?-FL)|(?:PAD[ _](D71|G781|d85))","device":"smartphone","models":[{"regex":"(?:HM-)?(G(?:152|353|552|70[01])|G(?:303)|I(?:557))","model":"$1"},{"regex":"(?:HW-)?W(716|757|860|970)[);/ ]","model":"W$1"},{"regex":"PAD[ -_](D71|G781|d85)","device":"tablet","model":"$1"},{"regex":"Haier[ _\\\\-](H[WT]-[^/;]+) Build","model":"$1"},{"regex":"Haier[ _\\\\-](H[WT]-[a-z0-9_\\\\-]+)","model":"$1"},{"regex":"Haier[ _\\\\-](sy[0-9]+)","model":"$1"},{"regex":"Haier[ _\\\\-]([a-z0-9\\\\-]+)","model":"$1","device":"feature phone"}]},"HannSpree":{"regex":"(HSG[0-9]{4})|SN97T41W|SN1AT71W\\\\(B\\\\)|SN70T51A|SN70T31?|T7-QC","device":"tablet","models":[{"regex":"(HSG[0-9]{4})","model":"$1"},{"regex":"SN1AT71W\\\\(B\\\\)","model":"SN1AT71W(B)"},{"regex":"SN70T31","model":"SN70T31"},{"regex":"SN70T3","model":"SN70T3"},{"regex":"SN70T51A","model":"SN70T51A"},{"regex":"SN97T41W","model":"SN97T41W"},{"regex":"T7-QC","model":"SNAT71BUE"}]},"Hasee":{"regex":"Hasee","device":"smartphone","models":[{"regex":"Hasee ([^;/]+) Build","model":"$1"},{"regex":"Hasee ([^;/)]+)[);/ ]","model":"$1"}]},"Hisense":{"regex":"(?:HS-)?Hisense ([^;/]+) Build|Hisense [^);/]+|HS-(?:G|U|EG?|I|L|T|X)[0-9]+[a-z0-9\\\\-]*|E270BSA|M470BS[AE]|E2281|EG680|HLTE700T","device":"smartphone","models":[{"regex":"E270BSA","device":"tablet","model":"Sero 7"},{"regex":"M470BS[AE]","device":"tablet","model":"Sero 7 Pro"},{"regex":"E2281","device":"tablet","model":"Sero 8"},{"regex":"HLTE700T","model":"A6"},{"regex":"EG680","model":"Smartfren Andromax Z"},{"regex":"(HS-(?:G|U|EG?|I|L|T|X)[0-9]+[a-z0-9\\\\-]*)","model":"$1"},{"regex":"(?:HS-)?Hisense ([^;/]+) Build","model":"$1"},{"regex":"Hisense ([^);/]+)","model":"$1"}]},"Hi-Level":{"regex":"HLV-T([a-z0-9]+)","device":"tablet","model":"HLV-T$1"},"Hoffmann":{"regex":"(HOFFMANN|Neo[_ ]A[139]00)[);/ ]","device":"smartphone","models":[{"regex":"Neo[_ ](A[139]00)","model":"Neo $1"},{"regex":"HOFFMANN[ _]X[-_ ](Prime|Twist)","model":"X $1"}]},"Homtom":{"regex":"Homtom|(?:HT[0-9]{1,2})(?: ?Pro)?[);/ ]","device":"smartphone","models":[{"regex":"(HT[0-9]{1,2}(?: ?Pro)?)[);/ ]","model":"$1"},{"regex":"Homtom ([^;/]+) Build","model":"$1"}]},"Hosin":{"regex":"HOSIN[ _-]","device":"smartphone","models":[{"regex":"HOSIN[ _-]([^;/]+) Build","model":"$1"},{"regex":"HOSIN[ _-]([^;/]+)[;/)]","model":"$1"}]},"Hoozo":{"regex":"HOOZO[_ ](MT232|MT Pad 116 LTE|X1001)[);/ ]","device":"tablet","model":"$1"},"Huawei":{"regex":"(HW-)?(?:Huawei|Ideos|Honor[ _]?|(?:(?:AGS|AGS2|ALE|ALP|AMN|ANE|ARE|ARS|ATH|ATU|AUM|BAC|BAH|BAH2|BG2|BGO|BKK|BKL|BLA|BLL|BLN|BND|BTV|CAG|CAM|CAN|CAZ|CHC|CHE[12]?|CHM|CLT|CMR|COL|COR|CPN|CRO|CRR|CUN|DIG|DIG|DLI|DRA|DUA|DUB|DUK|EDI|ELE|EML|EVA|EVR|FDR|FIG|FLA|FRD|GRA|HLK|HMA|HRY|HWI|H[36]0|INE|JAT|JDN|JDN2|JKM|JMM|JSN|KIW|KNT|KOB|KSA|LDN|LLD|LND|LON|LUA|LY[AO]|MAR|MHA|MRD|MYA|NCE|NEM|NEO|NXT|PAR|PCT|PIC|PLE|PLK|POT|PRA|RIO|RNE|RVL|SCC|SCL|SEA|SHT|SLA|SNE|STF|STK|TAG|TIT|TNY|TRT|VCE|VEN|VIE|VKY|VNS|VOG|VRD|VTR|WAS|YAL|G(?:527|620S|621|630|735)|Y(?:221|330|550|6[23]5))-(?:[A-Z]{0,2}[0-9]{1,4}[A-Z]{0,2}?)|H1711|U(?:8230|8500|8661|8665|8667|8800|8818|8860|9200|9508))[);/ ])|hi6210sft|HRY-LX1MEB|GEM-70[1-3]L|PE-UL00","device":"smartphone","models":[{"regex":"ARS-([AT]L00|L22)[);/ ]","model":"Y Max"},{"regex":"U(8230|8661|8667)[);/ ]","model":"U$1"},{"regex":"TAG-[ACT]L00","model":"Enjoy 5S"},{"regex":"DIG-(?:TL10|AL00)","model":"Enjoy 6S"},{"regex":"NCE-AL[10]0","model":"Enjoy 6"},{"regex":"SLA-(?:AL00|TL10)","model":"Enjoy 7"},{"regex":"DUA-[TA]L00","model":"Honor Play 7"},{"regex":"FIG-(?:AL[10]0|TL10)","model":"Enjoy 7S"},{"regex":"LDN-(?:AL[12]0|TL20)","model":"Enjoy 8"},{"regex":"ATU-(?:AL1|TL10)","model":"Enjoy 8e"},{"regex":"FLA-AL10","model":"Enjoy 8 Plus"},{"regex":"MRD-[TA]L00","model":"Enjoy 9e"},{"regex":"U8500[);/ ]","model":"Ideos X2"},{"regex":"U8510[);/ ]","model":"Ideos X3"},{"regex":"U8665[);/ ]","model":"Fusion 2"},{"regex":"G735-L(?:03|12|23)","model":"G Play"},{"regex":"CHC-U(?:0[13]|23)","model":"G Play Mini"},{"regex":"DIG-L21HN","model":"Honor 6C"},{"regex":"DIG-L2[12]","model":"GR3 (2017)"},{"regex":"BLL-L2[12]","model":"GR5 (2017)"},{"regex":"U8800[);/ ]","model":"Ideos X5"},{"regex":"U8818[);/ ]","model":"Ascend G300"},{"regex":"G527-U081","model":"Ascend G527"},{"regex":"G620S-L0[13]","model":"Ascend G620S"},{"regex":"G630-U251","model":"Ascend G630"},{"regex":"U8860[);/ ]","model":"Honor"},{"regex":"H1711[);/ ]","model":"Ascend XT2"},{"regex":"U9200[);/ ]","model":"Ascend P1"},{"regex":"U9500[);/ ]","model":"Ascend D1"},{"regex":"Y221-U(?:[12]2|[0345]3)","model":"Ascend Y221"},{"regex":"Y550-L03","model":"Ascend Y550"},{"regex":"U9508[);/ ]","model":"Honor 2"},{"regex":"YAL-(?:L21|AL00)","model":"Honor 20"},{"regex":"YAL-L41[);/ ]","model":"Honor 20 Pro"},{"regex":"VOG-AL00[);/ ]","model":"Honor P30 Pro"},{"regex":"CHE2?-[UT]L00[HM]?|CHE1-CL[12]0|CHE2-L(?:1[12]|23)|Che1-L04|CHE-TL00","model":"Honor 4X"},{"regex":"CHM-[CUT]L00[HM]?","model":"Honor Play 4C"},{"regex":"JDN-AL00","model":"Honor Pad 2","device":"tablet"},{"regex":"JAT-AL00","model":"Honor Play 8A"},{"regex":"KNT-(?:AL[12]0|[TU]L10)","model":"Honor V8"},{"regex":"DUK-AL20","model":"Honor V9"},{"regex":"JMM-AL[10]0","model":"Honor V9 Play"},{"regex":"BKL-(?:AL00|AL20|AL30|L09|TL10)","model":"Honor V10"},{"regex":"PCT-[TA]L10","model":"Honor V20"},{"regex":"BKL-L04","model":"Honor View 10"},{"regex":"PCT-L29","model":"Honor View 20"},{"regex":"(?:Honor_|HW-)?G621-TL00M?[);/ ]","model":"G621"},{"regex":"(?:Honor_|HW-)?H30-(?:C00|L01M?|L02|U10|T00|T10)(?:_TD)?[);/ ]","model":"Honor 3C"},{"regex":"(?:Honor_|HW-)?SCL-(?:AL00|CL00|TL00H?)(?:_TD)?[);/ ]","model":"Honor 4A"},{"regex":"(?:Honor_|HW-)?CAM-(?:AL00|TL00H|TL00)(?:_TD)?[);/ ]","model":"Honor 5A"},{"regex":"(?:Honor_|HW-)?KIW-(?:AL10|TL00H|[TC]L00|L2[124]|UL00)(?:_TD)?[);/ ]","model":"Honor 5X"},{"regex":"(?:Honor_|HW-)?CHM-U01(?:_TD)?[);/ ]","model":"Honor 4C"},{"regex":"(?:Honor_|HW-)?H60-L(?:01|02|03|04|11|12)(?:_TD)?[);/ ]","model":"Honor 6"},{"regex":"MYA-TL10","model":"Honor 6 Play"},{"regex":"PE-UL00","model":"Honor 6 Plus"},{"regex":"(?:Honor_|HW-)?SCL-L01(?:_TD)?[);/ ]","model":"Honor Y6"},{"regex":"(?:Honor_|HW-)?LYO-L21","model":"Honor Y6 II Compact"},{"regex":"(?:Honor_|HW-)?PLK-(?:AL10|CL00|TL00|TL01H?|UL00|L01)[);/ ]","model":"Honor 7"},{"regex":"AUM-(?:AL[20]0|L33[A]?|TL20)","model":"Honor 7A"},{"regex":"AUM-L29","model":"Honor 7A Pro"},{"regex":"(?:Honor_|HW-)?(?:LND-(?:AL[34]0|L29|TL40)|AUM-L41)[);/ ]","model":"Honor 7C"},{"regex":"(?:Honor_|HW-)?DUA-(?:L22|LX3)[);/ ]","model":"Honor 7S"},{"regex":"(?:Honor_|HW-)?NEM-(?:AL10|L51|UL10|TL00)[);/ ]","model":"Honor 5C"},{"regex":"(?:Honor_|HW-)?NEM-(?:L22|TL00H)[);/ ]","model":"Honor 5C Dual SIM"},{"regex":"(?:Honor_|HW-)?NEM-L21[);/ ]","model":"Honor 7 Lite"},{"regex":"(?:HONOR[ _]?)?DLI-(?:AL10|L[24]2|TL20)","model":"Honor 6A"},{"regex":"JMM-L22","model":"Honor 6C Pro"},{"regex":"(?:HONOR[ _]?)?BLN-(?:L2[124]|AL[1234]0|TL[01]0)","model":"Honor 6X"},{"regex":"ATH-(?:AL00|UL00|TL00H)","model":"Honor 7i"},{"regex":"(?:HONOR[ _]?)?BND-(?:AL[01]0|TL10|L2[14]|L31)","model":"Honor 7X"},{"regex":"FRD-(?:AL[01]0|L0[249]|L1[49]|DL00)","model":"Honor 8"},{"regex":"JAT-L(29|X[13])","model":"Honor 8A"},{"regex":"BKK-(?:AL[10]0|L21|L22|LX2)","model":"Honor 8C"},{"regex":"JSN-L(?:2[123]|42)|JSN-[TA]L00[a]?","model":"Honor 8X"},{"regex":"KSA-LX9","model":"Honor 8S"},{"regex":"ARE-(?:AL[10]0|L22HN|TL00)","model":"Honor 8X Max"},{"regex":"PRA-(?:AL00X|AL00|TL10)","model":"Honor 8 Lite"},{"regex":"DUK-(?:L09|TL30)","model":"Honor 8 Pro"},{"regex":"JAT-L41","model":"Honor 8A Pro"},{"regex":"VEN-L22","model":"Honor 8 Smart"},{"regex":"STF-(?:AL[10]0|L09|TL10)","model":"Honor 9"},{"regex":"HLK-AL00","model":"Honor 9X"},{"regex":"LLD-AL[23]0","model":"Honor 9i"},{"regex":"LLD-(?:AL[01]0|L[23]1|TL10)","model":"Honor 9 Lite"},{"regex":"COL-(?:AL[01]0|TL[01]0|L29)","model":"Honor 10"},{"regex":"HRY-(?:AL00|LX[12])|HRY-LX1MEB","model":"Honor 10 Lite"},{"regex":"VKY-TL00","model":"Honor P10 Plus"},{"regex":"CAM-UL00","model":"Honor Holly 3"},{"regex":"TRT-AL00","model":"Honor Holly 4 Plus"},{"regex":"TNY-AL00","model":"Honor Magic 2"},{"regex":"COR-(?:AL[01]0|L29|TL10)","model":"Honor Play"},{"regex":"EDI-AL10","model":"Honor Note 8"},{"regex":"RVL-AL09","model":"Honor Note 10"},{"regex":"GRA-(?:L09|UL00)","model":"P8"},{"regex":"ALE-L(?:02|21|23)|ALE-UL00|ALE-TL00","model":"P8 Lite (2015)"},{"regex":"PRA-L(?:A1|X2|X1|X3)|hi6210sft","model":"P8 Lite (2017)"},{"regex":"CAN-L[01][123]","model":"Nova"},{"regex":"CAZ-(?:AL[01]0|TL[12]0)","model":"Nova"},{"regex":"PIC-(?:[AT]L00|LX9)","model":"Nova 2"},{"regex":"HWI-[AT]L00","model":"Nova 2S"},{"regex":"BAC-(?:L01|TL00)","model":"Nova 2 Plus"},{"regex":"BAC-(?:AL00|L2[12])","model":"Nova 2 Plus Dual SIM"},{"regex":"RNE-L[02]2","model":"Nova 2I"},{"regex":"PAR-(?:[AT]L00|LX[19]|TL20)","model":"Nova 3"},{"regex":"ANE-AL00","model":"Nova 3e"},{"regex":"INE-(?:AL00|LX1r|LX[12]|TL00)","model":"Nova 3i"},{"regex":"SEA-AL10","model":"Nova 5 Pro"},{"regex":"VCE-(L22|[AT]L00)","model":"Nova 4"},{"regex":"MAR-AL00","model":"Nova 4e"},{"regex":"WAS-AL00","model":"Nova Youth"},{"regex":"DIG-L01","model":"Nova Smart"},{"regex":"RIO-L03","model":"GX8"},{"regex":"EVA-(?:AL[10]0|L[012]9|[TCD]L00)","model":"P9"},{"regex":"VNS-L(?:[23]1|62)","model":"P9 Lite"},{"regex":"SLA-L(?:02|03|22|23)","model":"P9 Lite Mini"},{"regex":"DIG-L(?:03|23)","model":"P9 Lite Smart"},{"regex":"VIE-(?:AL10|L[02]9)","model":"P9 Plus"},{"regex":"VTR-(?:L[02]9|AL00|TL00)","model":"P10"},{"regex":"WAS-(?:L(?:X1|X1A|X2|X2J|X3|03T)|TL10)","model":"P10 Lite"},{"regex":"BAC-L[02]3","model":"P10 Selfie"},{"regex":"VKY-(?:AL00|L09|L29)","model":"P10 Plus"},{"regex":"EML-(?:[TA]L00|L[02]9)","model":"P20"},{"regex":"ANE-(?:LX[123]|TL00)","model":"P20 Lite"},{"regex":"CLT-(?:AL0[01]|TL00|L(?:04|[02]9))","model":"P20 Pro"},{"regex":"ELE-L(?:04|09|29)|ELE-AL00","model":"P30"},{"regex":"VOG-L(?:04|09|29)|VOG-TL00","model":"P30 Pro"},{"regex":"MAR-LX(1M|2)","model":"P30 Lite"},{"regex":"MAR-LX[13]A","model":"P30 Lite Dual SIM"},{"regex":"FIG-L(?:A1|X[123])","model":"P smart"},{"regex":"STK-LX1","model":"P smart Z"},{"regex":"POT-LX[13]","model":"P smart (2019)"},{"regex":"POT-[TA]L00a","model":"9S"},{"regex":"CRO-(?:L[02]2|U00)","model":"Y3 (2017)"},{"regex":"CAG-L[02]2","model":"Y3 (2018)"},{"regex":"LUA-U22","model":"Y3II"},{"regex":"CUN-L(?:0[123]|2[123]|33)","model":"Y5II"},{"regex":"CUN-U29","model":"Y5II"},{"regex":"MYA-(?:L(?:02|03|2[23])|U29)","model":"Y5 (2017)"},{"regex":"AMN-LX[129]","model":"Y5 (2019)"},{"regex":"CRO-L[02]3","model":"Y5 Lite (2017)"},{"regex":"CAG-L[02]3","model":"Y5 Lite (2018)"},{"regex":"DRA-(?:LX2|AL00)","model":"Y5 Prime (2018)"},{"regex":"DRA-LX5","model":"Y5 lite"},{"regex":"MYA-L13","model":"Y5 Pro (2017)"},{"regex":"SCC-U21","model":"Y6"},{"regex":"MYA-L11","model":"Y6 (2016)"},{"regex":"MYA-(L41|AL10)","model":"Y6 (2017)"},{"regex":"CAM-L(?:03|21|23|32)","model":"Y6II"},{"regex":"ATU-L(?:11|21|22|X3)","model":"Y6 (2018)"},{"regex":"MRD-L(?:X1[F]?|X3)","model":"Y6 (2019)"},{"regex":"TIT-(?:AL00|L01)","model":"Y6 Pro"},{"regex":"MRD-LX2","model":"Y6 Pro (2019)"},{"regex":"ATU-L(?:31|42)","model":"Y6 Prime (2018)"},{"regex":"TRT-LX[123]","model":"Y7 (2017)"},{"regex":"LDN-L(?:01|X3)","model":"Y7 (2018)"},{"regex":"DUB-(?:LX[13]|TL00)","model":"Y7 (2019)"},{"regex":"DUB-AL20","model":"Y7 Pro (2019)"},{"regex":"LDN-(?:AL00|L21)|TRT-TL10","model":"Y7 Prime"},{"regex":"LDN-(?:LX2|TL10)|TRT-(?:L21A|L53)","model":"Y7 Prime (2018)"},{"regex":"DUB-(?:LX2|AL00)","model":"Y7 Pro (2019)"},{"regex":"FLA-(LX[123]|AL20|TL10)","model":"Y9 (2018)"},{"regex":"JKM-(?:[TA]L00|LX[123])","model":"Y9 (2019)"},{"regex":"STK-(L2[12]|LX3)","model":"Y9 Prime (2019)"},{"regex":"Y625-U03","model":"Y625"},{"regex":"Y635-L0[123]","model":"Y635"},{"regex":"Y635-L21","model":"Y635 Dual SIM"},{"regex":"NXT-(?:AL10|L29)","model":"Mate 8"},{"regex":"MHA-(?:L[02]9|[AT]L00)","model":"Mate 9"},{"regex":"BLL-L23","model":"Mate 9 Lite"},{"regex":"LON-(?:AL00|L29)","model":"Mate 9 Pro"},{"regex":"ALP-(?:[TA]L00|L[02]9)","model":"Mate 10"},{"regex":"RNE-(?:AL00|L(?:01|03|21|23))","model":"Mate 10 Lite"},{"regex":"BLA-(?:A09|L[02]9|[TA]L00)","model":"Mate 10 Pro"},{"regex":"HMA-(?:[AT]L00|L[02]9)","model":"Mate 20"},{"regex":"VOG-AL10","model":"P30 Pro"},{"regex":"LYA-AL00P","model":"Mate 20 RS"},{"regex":"LYA-(?:AL[01]0|L[02]9|L0C|TL00)","model":"Mate 20 Pro"},{"regex":"SNE-(?:AL00|LX[0-3])","model":"Mate 20 Lite"},{"regex":"EVR-(?:[TA]L00|L29)","model":"Mate 20 X"},{"regex":"CRR-(?:L09|UL00)","model":"Mate S"},{"regex":"NEO-AL00","model":"Mate RS"},{"regex":"NEO-L29","model":"Mate RS Porsche Design"},{"regex":"BND-L34","model":"Mate SE"},{"regex":"Bucare Y330-U05","model":"Y330-U05"},{"regex":"DRA-L(?:01|03|21|23|X3)","model":"Y5 (2018)"},{"regex":"ATH-UL0[16]","model":"ShotX"},{"regex":"T1-A21w","device":"tablet","model":"Honor Tablet Note"},{"regex":"CMR-(?:AL[01]9|W09)","device":"tablet","model":"MediaPad M5 10.8"},{"regex":"GEM-70[1-3]L","device":"tablet","model":"MediaPad X2"},{"regex":"JDN2-(:?L09|AL00)|BAH2-(?:L09|W19)","device":"tablet","model":"MediaPad M5 lite"},{"regex":"SHT-(?:AL|W)09","device":"tablet","model":"MediaPad M5 8.4"},{"regex":"VRD-AL09","device":"tablet","model":"MediaPad M6 8.4"},{"regex":"BTV-W09","device":"tablet","model":"MediaPad M3 8"},{"regex":"BAH-W09|CPN-(?:L|W)09|CPN-AL00","device":"tablet","model":"MediaPad M3 Lite"},{"regex":"BAH-(?:L09|AL00)","device":"tablet","model":"MediaPad M3 Lite 10"},{"regex":"BTV-DL09","device":"tablet","model":"MediaPad M3"},{"regex":"AGS2-(?:[LW]09|L03)","device":"tablet","model":"MediaPad T5 10"},{"regex":"AGS-(?:L0[39]|W09)","device":"tablet","model":"MediaPad T3 10"},{"regex":"KOB-(?:L|W)09","device":"tablet","model":"MediaPad T3 8"},{"regex":"BG2-(?:U0[13]|W09)","device":"tablet","model":"MediaPad T3 7"},{"regex":"BGO-L03","device":"tablet","model":"MediaPad T2 7.0"},{"regex":"(?:BGO-DL09|PLE-70[13]L)","device":"tablet","model":"MediaPad T2 7.0 Pro"},{"regex":"JDN-L01","device":"tablet","model":"MediaPad T2 8.0 Pro"},{"regex":"FDR-A01(?:L|w)","device":"tablet","model":"MediaPad T2 10.0 Pro"},{"regex":"T1-A21L","device":"tablet","model":"MediaPad T1 10"},{"regex":"(MediaPad[^/;]*) Build","device":"tablet","model":"$1"},{"regex":"Ideos([^;/]*) Build","model":"Ideos$1"},{"regex":"(?:HUAWEI )?MT([0-9]+)","device":"phablet","model":"Ascend Mate $1"},{"regex":"Huawei[ _\\\\-]?([^/;]*) Build","model":"$1"},{"regex":"(?:HW-)?Huawei(?:/1\\\\.0/0?(?:Huawei))?[_\\\\- /]?([a-z0-9\\\\-_]+)","model":"$1"},{"regex":"Huawei; ([a-z0-9 \\\\-]+)","model":"$1"}]},"Hyundai":{"regex":"Hyundai|Ultra (?:Active|Air|Charm|Dream|Energy|Latitude|Link|Live|Shadow|Shine|Storm|Style|Sync|Trend|Vision|Wave)|G(24027|2552[34])K|W25042L","device":"smartphone","models":[{"regex":"Ultra (Active|Air|Charm|Dream|Energy Lite|Energy Plus|Energy|Latitude|Link|Live II|Live|Shadow|Shine|Storm|Style|Sync|Trend|Vision|Wave)","model":"Ultra $1"},{"regex":"G25523K","model":"Eternity G23"},{"regex":"G25524K","model":"Eternity G24"},{"regex":"G24027K","model":"Eternity G27"},{"regex":"W25042L","model":"Eternity W42"},{"regex":"Hyundai ([^;/]+) Build","model":"$1","device":"tablet"},{"regex":"Hyundai[ _\\\\-]?([a-z0-9_-]+)","model":"$1","device":"tablet"}]},"i-Joy":{"regex":"i-Joy|i-Call|(?:Neon[79]|Sygnus|Deox|Elektra (?:M|L|XL|XXL))[);/ ]","device":"smartphone","models":[{"regex":"Elektra M[);/ ]","model":"Elektra M"},{"regex":"Elektra L[);/ ]","model":"Elektra L"},{"regex":"Elektra XL[);/ ]","model":"Elektra XL"},{"regex":"Elektra XXL[);/ ]","model":"Elektra XXL","device":"phablet"},{"regex":"Neon([79])[);/ ]","model":"Neon $1","device":"tablet"},{"regex":"Sygnus[);/ ]","model":"Sygnus","device":"tablet"},{"regex":"Deox[);/ ]","model":"Deox","device":"tablet"},{"regex":"i-Call ([^;/]+) Build","model":"i-Call $1"},{"regex":"i-Joy ([^;/]+) Build","model":"$1"}]},"iBall":{"regex":"iBall[ _]([^/;]*)[ _]Build","device":"tablet","model":"$1"},"iRola":{"regex":"iRola ([^/;]+) Build|(DX758|DX752|DX752|DX758[ _]?Pro) Build","device":"tablet","models":[{"regex":"DX758[ _]?Pro","model":"DX758 Pro"},{"regex":"(DX758|DX752)","model":"$1"},{"regex":"iRola ([^/;]+) Build","model":"$1"}]},"Irbis":{"regex":"TZ(150|165|17[5-8]|77[17]|753|794|8[34]1|85[47]|86[45]|88[124]|89[12]|49|716|772)|T(?:Zone|Zart)|(SP(?:0[56]|2[01]|4[1-36]|45[45]|50))[;)\\\\ ]","device":"tablet","models":[{"regex":"(TZ(?:150|165|17[5-8]|77[17]|753|794|8[34]1|85[47]|86[45]|88[124]|89[12]|49|716|772)|T(?:Zone|Zart))[;)\\\\ ]","model":"$1"},{"regex":"(SP(?:0[56]|2[01]|4[1-36]|45[45]|50))[;)\\\\ ]","device":"smartphone","model":"$1"}]},"iBerry":{"regex":"AUXUS ([^/;]+) Build","device":"smartphone","models":[{"regex":"AUXUS (Core[^/;]+) Build","device":"tablet","model":"$1"},{"regex":"AUXUS ([^/;]+) Build","model":"$1"}]},"iHunt":{"regex":"iHunt|One_ Love_|TITAN_P11000_PRO|Like_(3|4U|3_Pro)|X300 Elite","device":"smartphone","models":[{"regex":"iHunt_Like","model":"Like"},{"regex":"One_ Love_","model":"One Love"},{"regex":"TITAN_P11000_PRO","model":"Titan P11000 Pro"},{"regex":"Like_3_Pro","model":"Like 3 Pro"},{"regex":"Like_3","model":"Like 3"},{"regex":"Like_4U","model":"Like 4U"},{"regex":"X300 Elite","model":"X300 Elite"}]},"IconBIT":{"regex":"NT-(3506M|0704S|0909T|1009T|10[01]1T|1017T|3601P/3602P|3603P|3702S|3805C|3905T|3701S|0701S|0805C|0902S|370[23]M)","device":"tablet","models":[{"regex":"NT-3506M","device":"smartphone","model":"NetTAB Mercury Quad FHD"},{"regex":"NT-0704S","model":"NetTAB Sky LE"},{"regex":"NT-0909T","model":"NetTAB Thor IZ"},{"regex":"NT-1009T","model":"NetTAB Thor quad II"},{"regex":"NT-10[01]1T","model":"NetTAB Thor LE"},{"regex":"NT-1017T","model":"NetTAB Thor 3G quad"},{"regex":"NT-3601P/3602P","model":"NetTAB Pocket 3G"},{"regex":"NT-3603P","model":"NetTAB Pocket 3G Slim"},{"regex":"NT-3702S","model":"NetTAB Sky HD 3G"},{"regex":"NT-3805C","model":"NetTAB Skat 3G quad"},{"regex":"NT-3701S","model":"NetTAB Sky 3G duo"},{"regex":"NT-3905T","model":"NetTAB Thor ZX 3G"},{"regex":"NT-0701S","model":"NetTAB Sky net"},{"regex":"NT-0805C","model":"NetTAB Skat MX"},{"regex":"NT-0902S","model":"NetTAB Space quad RX"},{"regex":"NT-3702M","model":"NetTAB Matrix 3G duo"},{"regex":"NT-3703M","model":"NetTAB Matrix 3GT"}]},"LYF":{"regex":"(LYF[ _])?LS-[456][0-9]{3}|LYF/[^/]+/","device":"smartphone","models":[{"regex":"LS-4004","model":"Flame 2"},{"regex":"LS-5501","model":"Earth 1"},{"regex":"LS-5021","model":"Earth 2"},{"regex":"LS-5505","model":"Water F1"},{"regex":"LS-4503","model":"Flame LS-4503"},{"regex":"LS-4001","model":"Flame 3"},{"regex":"LS-4003","model":"Flame 4"},{"regex":"LS-4002","model":"Flame 5"},{"regex":"LS-4005","model":"Flame 6"},{"regex":"(LYF[ _])?LS-4006","model":"Flame 7"},{"regex":"LS-4008","model":"Flame 7S"},{"regex":"LS-450[58]","model":"Flame 8"},{"regex":"LS-5002","model":"Water 1"},{"regex":"LS-5005","model":"Water 4"},{"regex":"LS-5006","model":"Water 6"},{"regex":"LS-5008","model":"Water 2"},{"regex":"LS-5009","model":"Wind 6"},{"regex":"LS-5013","model":"Wind 5"},{"regex":"LS-5014","model":"Wind 4"},{"regex":"LS-5010","model":"Wind 1"},{"regex":"LS-5015","model":"Water 8"},{"regex":"LS-5016","model":"Wind 7"},{"regex":"LS-5504","model":"Water 7"},{"regex":"LS-5017","model":"Water 11"},{"regex":"LS-5018","model":"Wind 4S"},{"regex":"LS-5020","model":"Water 10"},{"regex":"LS-5201","model":"Water F1S"},{"regex":"LS-5502","model":"Wind 3"},{"regex":"LS-5503","model":"Water 3"},{"regex":"LS-5506","model":"Water 9"},{"regex":"LS-6001","model":"Wind 2"},{"regex":"LYF/([^/]+)/","model":"$1"}]},"Lumus":{"regex":"NEOSR620[;)/ ]","device":"smartphone","model":"Neo SR620"},"M4tel":{"regex":"M4 SS[0-9]{4}(?:-R)?|M4_B[23]","device":"smartphone","models":[{"regex":"SS1050","model":"Joy"},{"regex":"SS1060","model":"Live"},{"regex":"SS1070","model":"Sense"},{"regex":"SS1080","model":"Max One"},{"regex":"SS1090","model":"Max Ultra"},{"regex":"SS4020","model":"Play"},{"regex":"SS4040","model":"In Touch"},{"regex":"SS4045","model":"Style"},{"regex":"SS4345","model":"Soul Mini"},{"regex":"SS4350","model":"Soul"},{"regex":"SS4445","model":"Style Access"},{"regex":"SS4450","model":"Share"},{"regex":"SS4451","model":"Believe"},{"regex":"SS4452","model":"Dream"},{"regex":"SS4453","model":"Inspiration"},{"regex":"SS4455","model":"Excite"},{"regex":"SS4456","model":"Evolution"},{"regex":"SS4457-R","model":"Ever"},{"regex":"SS4457","model":"Elegance"},{"regex":"SS4458-R","model":"Feel Plus"},{"regex":"SS4458","model":"Attitude"},{"regex":"M4_B([23])","model":"B$1"}]},"IMO Mobile":{"regex":"IMO Q2","device":"smartphone","models":[{"regex":"IMO Q2","model":"Q2"}]},"iLA":{"regex":"iLA[-_ ](Silk|X)[);/ ]","device":"smartphone","model":"$1"},"iNew":{"regex":"iNew|(?:V7A|V3 Plus|V3-?E|V3C)(?: Build|[;/\\\\)])","device":"smartphone","models":[{"regex":"V3C(?: Build|[;/\\\\)])","model":"V3C"},{"regex":"V3-?E(?: Build|[;/\\\\)])","model":"V3-E"},{"regex":"V3 Plus(?: Build|[;/\\\\)])","model":"V3 Plus"},{"regex":"V7A(?: Build|[;/\\\\)])","model":"V7A"},{"regex":"iNew[ -_]([^;/]+) Build","model":"$1"}]},"iPro":{"regex":"Kylin[ _]5.[05]","device":"smartphone","models":[{"regex":"Kylin_5.0S","model":"Kylin 5.0S"},{"regex":"Kylin 5.0","model":"Kylin 5.0"},{"regex":"Kylin 5.5","model":"Kylin 5.5"}]},"Infinix":{"regex":"Infinix","device":"smartphone","models":[{"regex":"Infinix[ _-]X260","model":"Buzz"},{"regex":"Infinix[ _-]X502","model":"Alpha Marvel"},{"regex":"Infinix[ _-]X570","model":"Alpha"},{"regex":"Infinix[ _-]X350","model":"Surf Smart"},{"regex":"Infinix[ _-]X351","model":"Surf Smart 3G"},{"regex":"Infinix[ _-]X352","model":"Surf Smart 2"},{"regex":"Infinix[ _-]X403","model":"Surf Spice"},{"regex":"Infinix[ _-]X503","model":"Surf Bravo"},{"regex":"Infinix[ _-]X511","model":"Surf Noir"},{"regex":"Infinix[ _-]X400","model":"Race"},{"regex":"Infinix[ _-]X401","model":"Race Lite"},{"regex":"Infinix[ _-]X450","model":"Race Bolt"},{"regex":"Infinix[ _-]X451","model":"Race Bolt Q"},{"regex":"Infinix[ _-]X454","model":"Race Bolt 2"},{"regex":"Infinix[ _-]X500","model":"Race Eagle"},{"regex":"Infinix[ _-]X501","model":"Race Jet"},{"regex":"Infinix[ _-]X506","model":"Zero"},{"regex":"Infinix[ _-]X509","model":"Zero 2"},{"regex":"Infinix[ _-]X552","model":"Zero 3"},{"regex":"Infinix[ _-]X555","model":"Zero 4"},{"regex":"Infinix[ _-]X(?:574|602)","model":"Zero 4 Plus"},{"regex":"Infinix[ _-]X603","model":"Zero 5"},{"regex":"Infinix[ _-]X603B","model":"Zero 5 Pro"},{"regex":"Infinix[ _-]X507","model":"Hot"},{"regex":"Infinix[ _-]X510","model":"Hot 2"},{"regex":"Infinix[ _-]X55[34]","model":"Hot 3"},{"regex":"Infinix[ _-]X521","model":"Hot S"},{"regex":"Infinix[ _-]X522","model":"Hot S2"},{"regex":"Infinix[ _-]X557","model":"Hot 4"},{"regex":"Infinix[ _-]X556","model":"Hot 4 Pro"},{"regex":"Infinix[ _-]X559c","model":"Hot 5"},{"regex":"Infinix[ _-]X559","model":"Hot 5 Lite"},{"regex":"Infinix[ _-]X606[BC]?","model":"Hot 6"},{"regex":"Infinix[ _-]X608","model":"Hot 6 Pro"},{"regex":"Infinix[ _-]X573B?","model":"Hot S3"},{"regex":"Infinix[ _-]X556","model":"Hot 4 Pro"},{"regex":"Infinix[ _-]X5010","model":"Smart"},{"regex":"Infinix[ _-]X5515F","model":"Smart 2"},{"regex":"Infinix[ _-]X5514D","model":"Smart 2 Pro"},{"regex":"Infinix[ _-]X551","model":"Hot Note","device":"phablet"},{"regex":"Infinix[ _-]X600","model":"Note 2","device":"phablet"},{"regex":"Infinix[ _-]X601","model":"Note 3","device":"phablet"},{"regex":"Infinix[ _-]X572","model":"Note 4","device":"phablet"},{"regex":"Infinix[ _-]X571","model":"Note 4 Pro","device":"phablet"},{"regex":"Infinix[ _-]X604","model":"Note 5","device":"phablet"},{"regex":"Infinix HOT ([a-z]?[1-6])( (?:Lite|Plus|Pro))?","model":"Hot $1$2"},{"regex":"Infinix[ _-](X[78]00)","device":"tablet","model":"$1"},{"regex":"Infinix[ _-](X\\\\d+)","model":"$1"},{"regex":"Infinix[ _-]([a-z0-9_\\\\-]+)","model":"$1"}]},"InFocus":{"regex":"IF(9001|9007|9021|9035) Build","device":"smartphone","models":[{"regex":"IF9001","model":"Turbo 5"},{"regex":"IF9007","model":"A3"},{"regex":"IF9021","model":"Turbo 5 Plus"},{"regex":"IF9035","model":"A2"}]},"InnJoo":{"regex":"InnJoo","device":"smartphone","models":[{"regex":"InnJoo[ _]X","model":"X"}]},"Inkti":{"regex":"intki[ _]([^/;]*)[ _]Build","device":"smartphone","model":"$1"},"Innostream":{"regex":"INNO([a-z0-9]+)","device":"feature phone","model":"INNO$1"},"INQ":{"regex":"INQ[/ ]","device":"feature phone","models":[{"regex":"INQ/([a-z0-9\\\\-]+)","model":"$1"},{"regex":"INQ ([^;/]+) Build","model":"$1","device":"smartphone"}]},"Intex":{"regex":"Intex|(Aqua|Cloud[ _][XY][0-9]{1}|Cloud (?:Fame|Glory) 4G)","device":"smartphone","models":[{"regex":"Intex[ _]([^/;]*)[ _]Build","model":"$1"},{"regex":"(Cloud (?:Fame|Glory) 4G)","model":"$1"},{"regex":"(Aqua|Cloud)[ _\\\\.]([^/;\\\\)]+)(?:[ _]Build|(?<!Build)/|\\\\))","model":"$1 $2"},{"regex":"Intex[ _]([a-z0-9_+\\\\-]+)","model":"$1"}]},"i-mate":{"regex":"i-mate ([a-z0-9]+)","device":"feature phone","model":"$1"},"i-mobile":{"regex":"i-mobile ?[a-z0-9]+|i-Style|IQ ?(9\\\\.1|5\\\\.5|5\\\\.6A?)","device":"feature phone","models":[{"regex":"i-mobile (i-note[^/;]*) Build","model":"$1","device":"tablet"},{"regex":"i-Style ?([^;/]+) Build","model":"i-Style $1","device":"smartphone"},{"regex":"IQ ?(9\\\\.1|5\\\\.5|5\\\\.6A?)","model":"IQ $1","device":"smartphone"},{"regex":"i-mobile (IQ[^/;]*) Build","model":"$1","device":"smartphone"},{"regex":"i-mobile(?: )?([a-z0-9\\\\- ]+) Build","model":"$1"},{"regex":"i-mobile(?: )?([a-z0-9]+)","model":"$1"}]},"iKoMo":{"regex":"iKoMo ([a-z0-9]+)","device":"feature phone","model":"$1"},"iOcean":{"regex":"iOCEAN|M6752|W180|X7[ _]?S|X8 mini","device":"smartphone","models":[{"regex":"X7S-T","model":"X7S-T"},{"regex":"X8 mini pro","model":"X8 Mini Pro"},{"regex":"X8 mini","model":"X8 Mini"},{"regex":"X7[ _]?S","model":"X7S Elite"},{"regex":"(M6752|W180) Build","model":"$1"},{"regex":"iOCEAN[ _\\\\-]?([^/;]+) Build","model":"$1"},{"regex":"iOCEAN[ _\\\\-]?([^);/ ]+)","model":"$1"}]},"iView":{"regex":"733TPC","device":"smartphone","models":[{"regex":"733TPC","device":"tablet","model":"733TPC"}]},"Impression":{"regex":"(?:Impression[ _\\\\-]?([^/;]+)|A502|I10\\\\-LE|ImPad[ _]?(.*)|ImSmart[ _]?(.*)) Build","device":"tablet","models":[{"regex":"(A502)","model":"$1","device":"smartphone"},{"regex":"ImSmart[ _]?(.*) Build","model":"ImSmart $1","device":"smartphone"},{"regex":"ImPad[ _]?(.*) Build","model":"ImPad $1"},{"regex":"(I10\\\\-LE)","model":"$1","device":"smartphone"},{"regex":"Impression[ _\\\\-]?([^/;]+) Build","model":"$1"}]},"iTel":{"regex":"itel|iNote","device":"smartphone","models":[{"regex":"iNote ([^/;]*)Build","model":"iNote $1"},{"regex":"iNote_([a-z0-9\\\\-_]+)","model":"iNote $1"},{"regex":"iTel ([^/;]*)Build","model":"$1"},{"regex":"iTel[_ ]([a-z0-9\\\\-_]*)","model":"$1"}]},"JAY-Tech":{"regex":"TPC-[A-Z0-9]+|TPCY-TX[TE][^);/ ]+","device":"tablet","models":[{"regex":"TPC-([A-Z0-9]+)","model":"Tablet PC $1"},{"regex":"(TPCY-TX[TE][^);/ ]+)","model":"$1"}]},"Jiayu":{"regex":"(JY-[a-z0-9]+)[);/ ]","device":"smartphone","model":"$1"},"Jolla":{"regex":"Jolla","device":"smartphone","model":""},"Just5":{"regex":"JUST5(-)?SPACER(s)?|COSMO[_ ](L707|L808)|BLASTER|FREEDOM[ _](C100|M303|X1)|Freedom","device":"smartphone","models":[{"regex":"COSMO[_ ](L707|L808)","model":"Cosmo $1"},{"regex":"FREEDOM[ _](C100|M303|X1)","model":"Freedom $1"},{"regex":"Freedom","model":"Freedom"},{"regex":"JUST5(-)?SPACER2s","model":"Spacer 2S"},{"regex":"JUST5(-)?SPACER2","model":"Spacer 2"},{"regex":"JUST5SPACER","model":"Spacer"},{"regex":"BLASTER 2","model":"Blaster 2"},{"regex":"BLASTER","model":"Blaster"}]},"Kalley":{"regex":"ELEMENT Q","device":"smartphone","models":[{"regex":"ELEMENT Q","model":"Element Q"}]},"Kaan":{"regex":"KAAN[ _](N[12]|A1)[);/ ]","device":"smartphone","model":"$1"},"Kazam":{"regex":"Kazam ([^;/]+) Build|Trooper_X[0-9][0-9][);/ ]|Tornado 348","device":"smartphone","models":[{"regex":"Tornado 348","model":"Tornado 348"},{"regex":"Trooper_X([0-9])([0-9])[);/ ]","model":"Trooper X$1.$2"},{"regex":"Kazam ([^;/]+) Build","model":"$1"}]},"Keneksi":{"regex":"KENEKSI|(Hemera|Teta Dual)[);/ ]","device":"smartphone","models":[{"regex":"(Hemera|Teta Dual)[);/ ]","model":"$1"},{"regex":"KENEKSI[ _-]liberty","model":"Liberty"},{"regex":"KENEKSI[ _-]FLASH","model":"Flash"},{"regex":"KENEKSI[ _-]SUN","model":"Sun"},{"regex":"KENEKSI[ _-]ZETA","model":"Zeta"},{"regex":"KENEKSI[ _-]SIGMA","model":"Sigma"},{"regex":"KENEKSI[ _-](Moon|Libra_Dual|Glass|Amber|Chance|Amulet|Choice|Crystal|Dream|Delta[_ ]Dual|Norma 2|Norma|Sky|Fire 2|Fire|Flame|Flora|Rock|Solo|Soul|Step|Smart|Star|Storm|Wind)","model":"$1"}]},"Kempler & Strauss":{"regex":"Alumini_?3_?Plus|Alumini ?[23]|KEMPLER_(TV|X)","device":"smartphone","models":[{"regex":"Alumini ?2","model":"Alumini 2"},{"regex":"Alumini_?3_?Plus","model":"Alumini 3 Plus"},{"regex":"Alumini3","model":"Alumini 3"},{"regex":"KEMPLER_TV","model":"TV"},{"regex":"KEMPLER_X","model":"X"}]},"Kiano":{"regex":"Kiano|Elegance_5_0|CORE 10.1 DUAL 3G|Intelect ?(7|8|10)|Slim ?Tab ?\\\\d+(?:[_ ]3GR?)?[);/ ]|Cavion[_ ]","device":"smartphone","models":[{"regex":"Slim ?Tab ?(\\\\d+)(?:[_ ]3GR?)?","model":"Slim Tab $1","device":"tablet"},{"regex":"Cavion[_ ](?:Base[_ ])?(\\\\d+)","model":"Cavion Base $1","device":"tablet"},{"regex":"CORE 10.1 DUAL 3G","model":"CORE 10.1 DUAL 3G","device":"tablet"},{"regex":"Elegance_5_0","model":"Elegance 5.0"},{"regex":"(Kiano)?(Intelect|Elegance) ?(7|8|10)?","model":"$2 $3","device":"tablet"},{"regex":"Kiano[ _]([^;/]+) Build","model":"$1"}]},"Kingsun":{"regex":"Kingsun[ _-]","device":"smartphone","models":[{"regex":"Kingsun[ _-]([^;/]+) Build","model":"$1"},{"regex":"Kingsun[ -]((?!Build)[a-z0-9_-]+)","model":"$1"}]},"Kocaso":{"regex":"Kocaso|M(?:729|7[357][026][hw]?|76[01236][bw]?|83[016]|8[567]0|1050s|106[012368]w?|1070|X736(?:-kit)?|X780)[);/ ]","device":"tablet","models":[{"regex":"M729[);/ ]","model":"M729"},{"regex":"M(7[357][026])[hw]?[);/ ]","model":"M$1"},{"regex":"M(76[01236])[bw]?[);/ ]","model":"M$1"},{"regex":"MX780[);/ ]","model":"MX780"},{"regex":"M(83[016])[);/ ]","model":"M$1"},{"regex":"M(8[567]0)[);/ ]","model":"M$1"},{"regex":"M851[);/ ]","model":"M851"},{"regex":"M1050S[);/ ]","model":"M1050s"},{"regex":"M(106[012368])W?[);/ ]","model":"M$1"},{"regex":"M1070[);/ ]","model":"M1070"},{"regex":"MX736(?:-kit)?[);/ ]","model":"MX736"},{"regex":"MX780[);/ ]","model":"MX780"},{"regex":"Kocaso[ _\\\\-]?([^;/]+) Build","model":"$1"},{"regex":"Kocaso[ _\\\\-]?([a-z0-9_-]+)","model":"$1"}]},"Kogan":{"regex":"Kogan","device":"smartphone","models":[{"regex":"Kogan[ _-]([^;/]+) Build","model":"$1"},{"regex":"Kogan[ _-]([a-z0-9_-]+)","model":"$1"}]},"Komu":{"regex":"Komu[ -]","device":"smartphone","models":[{"regex":"Komu[ -]([^;/]+) Build","model":"$1"},{"regex":"Komu[ -]([a-z0-9_-]+)","model":"$1"}]},"Koobee":{"regex":"Koobee","device":"smartphone","models":[{"regex":"Koobee[ _\\\\-]?([^;/]+) Build","model":"$1"},{"regex":"Koobee[ _\\\\-]?([a-z0-9_-]+)","model":"$1"}]},"Kumai":{"regex":"(?:KM-)?Kumai","device":"smartphone","models":[{"regex":"(?:KM-)?Kumai[ _\\\\-]?([^;/]+) Build","model":"$1"},{"regex":"(?:KM-)?Kumai[ _\\\\-]?([a-z0-9_-]+)","model":"$1"}]},"KT-Tech":{"regex":"(KM-[a-z0-9]+|EV-[a-z0-9]+)[);/ ]","device":"smartphone","model":"$1"},"KDDI":{"regex":"kddi-([a-z0-9]+)","device":"feature phone","model":"$1"},"Kodak":{"regex":"KODAK|IM5[);/ ]","device":"smartphone","models":[{"regex":"IM5","model":"IM5"},{"regex":"KODAK_SMARTWAY_((M|T)1)","model":"Smartway $1"},{"regex":"SMARTWAY X1","model":"Smartway X1"},{"regex":"Tablet (7|10)","device":"tablet","model":"Tablet $1"}]},"KOPO":{"regex":"KOPO[ _-]","device":"smartphone","models":[{"regex":"KOPO[ _\\\\-]?([^/;]+) Build","model":"$1"},{"regex":"KOPO[ _\\\\-]?([^);/ ]+)","model":"$1"}]},"Koridy":{"regex":"KORIDY[ _-]([^/;]+) Build","device":"smartphone","model":"$1"},"KRONO":{"regex":"NET1100","device":"smartphone","models":[{"regex":"NET1100","model":"NET 1100"}]},"K-Touch":{"regex":"K-?Touch[ _][a-z0-9]+","device":"smartphone","models":[{"regex":"K-?Touch[ _]([^/;]*)[ _]Build","model":"$1"},{"regex":"K-?Touch[ _]([a-z0-9]+)","model":"$1"}]},"Kyocera":{"regex":"Kyocera|KWC-|QC-|C5120|C5170|C5155|C5215|C6730|C6750|C6522N?|C6530N|C6740|C6743|E6[89]10|KYL21|KYY23|S2151|KC-S701","device":"smartphone","models":[{"regex":"C5120","model":"Milano"},{"regex":"C5155","model":"Rise"},{"regex":"C5170","model":"Hydro"},{"regex":"C5215","model":"Hydro EDGE"},{"regex":"C6522N?","model":"Hydro XTRM"},{"regex":"C6730","model":"Hydro ICON"},{"regex":"C6750","model":"Hydro ELITE"},{"regex":"C6530N","model":"Hydro LIFE"},{"regex":"C6740(N)?","model":"Hydro WAVE"},{"regex":"C6743","model":"Hydro Reach"},{"regex":"E6810","model":"DuraForce Pro"},{"regex":"E6910","model":"DuraForce Pro 2"},{"regex":"KC-S701","model":"Torque"},{"regex":"KYL21","model":"Digno S"},{"regex":"KYY23","model":"Urbano L03"},{"regex":"(?:Kyocera-)?E6790","model":"DuraForce XD"},{"regex":"S2151","model":"Coast","device":"feature phone"},{"regex":"Kyocera-KZ-([a-z0-9]+)","model":"KZ $1"},{"regex":"Kyocera(?:[\\\\-/])?([a-z0-9]+)","model":"$1"},{"regex":"(?:KWC|QC)-([a-z0-9]+)","model":"$1"}]},"Kr\xfcger&Matz":{"regex":"Kruger Matz|MOVE_","device":"smartphone","models":[{"regex":"MOVE_6_mini","model":"MOVE 6 Mini"},{"regex":"MOVE_([78])","model":"MOVE $1"},{"regex":"DRIVE 4 mini LTE","model":"DRIVE 4 mini LTE"}]},"LAIQ":{"regex":"LAIQ","device":"smartphone","models":[{"regex":"(Glam|New York)","model":"$1"}]},"AIS":{"regex":"iris708","device":"smartphone","models":[{"regex":"iris708","model":"LAVA PRO 4.5"}]},"Lava":{"regex":"Lava[ _]|iris[ _]?([^/;]+)(?:\\\\)| Build)|A(?:67|76) Build|X1 Selfie Build|X41 Plus Build|Flair Z1|PixelV1|Z61_2GB","device":"smartphone","models":[{"regex":"Flair Z1","model":"Flair Z1"},{"regex":"A67 Build","model":"A67"},{"regex":"A76 Build","model":"A76"},{"regex":"PixelV1","model":"Pixel V1"},{"regex":"X1 Selfie Build","model":"Iris X1 Selfie"},{"regex":"X41 Plus Build","model":"X41 Plus"},{"regex":"LAVA_A3","model":"A3"},{"regex":"LAVA_R1","model":"R1"},{"regex":"Z61_2GB","model":"Z61"},{"regex":"iris[ _]?([^/;]+)(?:\\\\)| Build)","model":"Iris $1"},{"regex":"Lava[ _]?([^/;]+)(?:/| Build)","model":"$1"}]},"Landvo":{"regex":"XM[123]00|(?<!Blade )S6 Build","device":"smartphone","models":[{"regex":"S6 Build","model":"S6"},{"regex":"XM([123])00([^/;]*) Build","model":"XM$100$2"}]},"Land Rover":{"regex":"Land[ ]?Rover[d]?[ _-](X1[0-9]|Explore|T878|L15\\\\+|V18|V[168]|X)[;/) ]","device":"smartphone","model":"$1"},"Lanix":{"regex":"LANIX-([a-z0-9]+)|Ilium[ _]|X120C","device":"smartphone","models":[{"regex":"ILIUM[ _]PAD[ _]([^;/]+) Build","model":"Ilium Pad $1","device":"tablet"},{"regex":"X120C","model":"Ilium X120C"},{"regex":"Ilium[ _](Alpha 3|L(?:200|6[12]0|9[125]0|1[0124]00|1050|1120)|LT5[012]0|M[1379]|S(?:106|520|6[27]0)|X(?:1[12]0|2[0126]0|5[12]0|500B|710))","model":"Ilium $1"},{"regex":"ILIUM[ _]([^;/]+) Build","model":"Ilium $1"},{"regex":"LANIX-([a-z0-9]+)","device":"feature phone","model":"$1"}]},"Lark":{"regex":"(Lark|Cumulus|Evolution|FreeMe|Ultimate (?:X4|7i))[ _-]|Build/Lark|Bjorn[_ ]SP-500","device":"tablet","models":[{"regex":"Cumulus[ _](5\\\\.5|[56])[ _]HD","model":"Cumulus $1 HD","device":"smartphone"},{"regex":"FreeMe X2 ([79]) (?:ver|v)?\\\\.([23])","model":"FreeMe X2 $1 Version $2"},{"regex":"FreeMe X4 7 3G HD","model":"FreeMe X4 7HD 3G"},{"regex":"FreeMe[ _]X2[ _]([7-9])","model":"FreeMe X2 $1"},{"regex":"FreeMe X4[ _]7[_ ]HD","model":"FreeMe X4 7HD"},{"regex":"FreeMe X4[ _]9","model":"FreeMe X4 9"},{"regex":"(?:Lark[ _-])?Evolution[ _](X2 7 3G-GPS|X4[_ ]10\\\\.1|10|X4[_ ]7[ _]IPS)","model":"Evolution $1"},{"regex":"Ultimate (X4 10\\\\.1 3G IPS|X4 8s 3G|7i)","model":"Ultimate $1"},{"regex":"PHABLET 7","model":"Phablet 7"},{"regex":"Phablet 6\\\\.0","model":"Phablet 6.0","device":"smartphone"},{"regex":"Bjorn[_ ]SP-500","model":"Bjorn SP-500","device":"smartphone"},{"regex":"Cirrus[ _](4\\\\.5|[45])","model":"Cirrus $1","device":"smartphone"},{"regex":"Lark[ _](Stratus[_ ]5)","model":"$1","device":"smartphone"}]},"LCT":{"regex":"LCT_([a-z0-9]+)","device":"feature phone","model":"$1"},"Le Pan":{"regex":"Le ?Pan|TC970 ([^;/]+)Build","device":"tablet","models":[{"regex":"TC802A","model":"Le Pan Mini"},{"regex":"TC970 ([^;/]+)Build","model":"TC970 $1"},{"regex":"Le ?Pan ?(II|S)[);/ ]","model":"Le Pan $1"},{"regex":"Le ?Pan ?([^;/]+) Build","model":"$1"}]},"Leagoo":{"regex":"LEAGOO|M5 EDGE|KIICAA POWER|Leapad[ _]7s","device":"smartphone","models":[{"regex":"LEAGOO[- _](Z[156]|M8)[);/ ]","model":"$1"},{"regex":"LEAGOO[- _]M8Pro[);/ ]","model":"M8 Pro"},{"regex":"M5 EDGE","model":"M5 Edge"},{"regex":"KIICAA POWER","model":"KICCAA Power"},{"regex":"(Leapad[ _]7s)","model":"$1","device":"tablet"}]},"Ledstar":{"regex":"Trendy 5.0","device":"smartphone","models":[{"regex":"Trendy 5.0","model":"Trendy 5.0"}]},"LeEco":{"regex":"Letv|LeEco|X[89]00\\\\+[;/) ]|Le ?X[0-9][^;/]+|Le Max|Le [12]|X900 Build","device":"smartphone","models":[{"regex":"X800\\\\+","model":"Le 1 Pro"},{"regex":"X900\\\\+","model":"Max X900+"},{"regex":"X50[10]","model":"Le 1S"},{"regex":"X900 Build","model":"Le X900"},{"regex":"Le ?X526 Build","model":"Le 2"},{"regex":"Le ?X([^;/]+) Build","model":"Le X$1"},{"regex":"Le ?X([^) ;/]+)","model":"Le X$1"},{"regex":"Le ?([12][^;/]+) Build","model":"Le $1"},{"regex":"Le Max([^;/]*) Build","model":"Le Max$1"},{"regex":"Le Max([^ ;/]*)","model":"Le Max$1"},{"regex":"LeEco ([^;/]+) Build","model":"$1"}]},"Leotec":{"regex":"LESPH501[14]","device":"smartphone","models":[{"regex":"LESPH5011","model":"Argon e250"},{"regex":"LESPH5014","model":"Krypton K150"}]},"Lephone":{"regex":"lephone[ _]","device":"smartphone","models":[{"regex":"lephone[ _](K7|K10)","device":"feature phone","model":"$1"},{"regex":"lephone[ _](W(1[0125]|[279])|T2)[/;) ]","model":"$1"},{"regex":"lephone_W7_plus","model":"W7 Plus"}]},"Lenco":{"regex":"Lenco ([^/;]*) Build","device":"tablet","model":"$1"},"Lenovo":{"regex":"(?:LNV-)?Lenovo|IdeaTab|IdeaPad|Thinkpad|Yoga Tablet|Tab2A[0-9]-[0-9]{2}[a-z]?|YT3-X50L|ZUK[ -_]|K50a40|TB-(8504F|X304F|X704V|X704A)|A2107A-H|S6000[ ;)]|Z2 Plus","device":"smartphone","models":[{"regex":"Lenovo ?G780","model":"G780","device":"desktop"},{"regex":"Lenovo ?A3500-FL","model":"IdeaTab A7-40","device":"tablet"},{"regex":"Lenovo ?A3500-(H|HV|F)","model":"IdeaTab A7-50","device":"tablet"},{"regex":"Lenovo ?A5500-[HF]","model":"IdeaTab A8-50","device":"tablet"},{"regex":"Lenovo ?A7600-[HF]","model":"IdeaTab A10-70","device":"tablet"},{"regex":"A2107A-H","model":"A2107","device":"tablet"},{"regex":"TB2-X30[FL]","model":"Tab 2 A10-30","device":"tablet"},{"regex":"YT3-X50[FL]","model":"Yoga Tab 3","device":"tablet"},{"regex":"TB3-730X","model":"TAB3 7","device":"tablet"},{"regex":"TB3-710[IF]","model":"TAB3 7 Essential","device":"tablet"},{"regex":"TB3-850[FM]","model":"TAB3 8","device":"tablet"},{"regex":"Lenovo TB-X304[FL]","model":"TAB4 10","device":"tablet"},{"regex":"TB-X704V","model":"TAB4 10 Plus","device":"tablet"},{"regex":"TB-X704A","model":"Moto Tab","device":"tablet"},{"regex":"Lenovo ?B8000(-[FH])?","model":"Yoga Tablet 10","device":"tablet"},{"regex":"Lenovo ?B6000(-[FH])?","model":"Yoga Tablet 8","device":"tablet"},{"regex":"YT3-X90(L|F|X)","model":"Yoga 3 Pro","device":"tablet"},{"regex":"YT3-850[FL]","model":"Yoga Tab 3 8","device":"tablet"},{"regex":"S6000[ ;)]","model":"IdeaTab S6000","device":"tablet"},{"regex":"Lenovo ([ASB][0-9]{4})[A-Z]?\\\\-[EHF]","model":"IdeaTab $1","device":"tablet"},{"regex":"ThinkPadTablet_(A[0-9]{3})_","model":"ThinkPad Tablet $1","device":"tablet"},{"regex":"ThinkPad ?Tablet([^;/]*) Build","model":"ThinkPad Tablet$1","device":"tablet"},{"regex":"IdeaPad ?([^;/]*) Build","model":"IdeaPad $1","device":"tablet"},{"regex":"Lenovo TAB ?([^/;]*) Build","model":"TAB $1","device":"tablet"},{"regex":"Lenovo ?A3300-(?:GV|H)","model":"TAB 2 A7-30","device":"tablet"},{"regex":"TB-8504F","model":"TAB 4 8","device":"tablet"},{"regex":"TB-X304F","model":"TAB 4 10","device":"tablet"},{"regex":"Lenovo TB-X505F","model":"M10","device":"tablet"},{"regex":"Tab2A([0-9]-[0-9]{2}[a-z]?)","model":"TAB 2 A$1","device":"tablet"},{"regex":"IdeaTab[ \\\\-_]?([a-z0-9]+)","model":"IdeaTab $1","device":"tablet"},{"regex":"Yoga Tablet([^;/]+) Build","model":"Yoga Tablet$1","device":"tablet"},{"regex":"Lenovo TB\\\\-X704F Build/NMF26F","model":"Tab 4 10 Plus","device":"tablet"},{"regex":"Lenovo (TB[0-9]?\\\\-[a-z0-9\\\\-]+) Build","model":"$1","device":"tablet"},{"regex":"Z2 Plus","model":"Z2 Plus"},{"regex":"Z2151","model":"ZUK Edge"},{"regex":"Z213[12]","model":"ZUK Z2"},{"regex":"Z2121","model":"ZUK Z2 Pro"},{"regex":"ZUK[ -_]([^/;]*)(?: Build|\\\\))","model":"ZUK $1"},{"regex":"K10a40(?: Build|\\\\))","model":"C2"},{"regex":"k50a40 Build","model":"K3 Note"},{"regex":"A7010a48 Build","model":"K4 Note"},{"regex":"A7010a48(?: Build|\\\\))","model":"K4 Vibe"},{"regex":"A7020a4[08](?: Build|\\\\))","model":"K5 Note"},{"regex":"(?:Lenovo-)?A6020(?:a40|l36)(?: Build|\\\\))","model":"K5 Vibe"},{"regex":"A6020a46(?: Build|\\\\))","model":"K5 Vibe Plus"},{"regex":"k33a48(?: Build|\\\\))","model":"K6"},{"regex":"k53a48(?: Build|\\\\))","model":"K6 Note"},{"regex":"K33a42(?: Build|\\\\))","model":"K6 Power"},{"regex":"P1(?:ma40|a42) Build","model":"P1 Vibe"},{"regex":"P1a42(?: Build|\\\\))","model":"P1 Pro"},{"regex":"P2a42(?: Build|\\\\))","model":"P2"},{"regex":"Z90a40 Build","model":"Vibe Shot"},{"regex":"S1a40 Build","model":"Vibe S1"},{"regex":"Lenovo ([^/;]*) Build","model":"$1"},{"regex":"(?:LNV-|Lenovo-)?Lenovo[ \\\\-_]?([a-z0-9_+\\\\-]+)","model":"$1"}]},"Lexand":{"regex":"(?:SC7 PRO HD|S5A[1-4]|S4A[1-5]|S6A1|A811|A802)[);/ ]|Lexand ([^;/]+) Build","device":"smartphone","models":[{"regex":"A(811|802)","device":"tablet","model":"A$1"},{"regex":"S4A1","model":"Vega"},{"regex":"S4A2","model":"Irida"},{"regex":"S4A3","model":"Pallada"},{"regex":"S4A5","model":"Oxygen"},{"regex":"S4A4 NEON","model":"S4A4 Neon"},{"regex":"S5A1","model":"Callisto"},{"regex":"S5A2","model":"Overon"},{"regex":"S5A3","model":"Capella"},{"regex":"S5A4","model":"Argon"},{"regex":"S6A1","model":"Antares"},{"regex":"SC7 PRO HD","model":"SC7 PRO HD"},{"regex":"Lexand ([^;/]+) Build","model":"$1"}]},"Lexibook":{"regex":"(MFC[0-9]{3}[a-z]{2,})","device":"tablet","models":[{"regex":"MFC191FR","model":"Tablet Ultra 3 XL"},{"regex":"MFC045FR","model":"TabTab"},{"regex":"MFC163FR","model":"Tablet Master 3"},{"regex":"MFC142FR","model":"Tablet Kids"},{"regex":"MFC250FR","model":"Tablet Junior"},{"regex":"MFC270FR","model":"Tablet Junior Power Touch"},{"regex":"MFC280FR","model":"Tablet Junior 2"},{"regex":"MFC156FR","model":"Tablet One"},{"regex":"MFC155FR","model":"Tablet Master"},{"regex":"MFC157FR","model":"Tablet Master 2"},{"regex":"MFC17[05]FR","model":"Tablet Ultra"},{"regex":"MFC375FR","model":"Tablet Ultra 2"},{"regex":"MFC162FR","model":"Power Tablet"},{"regex":"MFC180FR","model":"Tablet Advanced"},{"regex":"MFC181FR","model":"Tablet Advanced 2"},{"regex":"MFC500FR","model":"Tablet XL"},{"regex":"MFC190BBFR","model":"Barbie Tablet"},{"regex":"MFC195DCFR","model":"Tablet Disney Cars HD"},{"regex":"MFC195FUFR","model":"Furby Tablet"},{"regex":"MFC195DPFR","model":"Tablet Disney Princesse HD"},{"regex":"MFC140FR","model":"LapTab"},{"regex":"MFC141FR","model":"LapTab 2"},{"regex":"(MFC[0-9]{3}[a-z]{2,})","model":"$1"}]},"LG":{"regex":"LG|portalmmm/2\\\\.0 (?:KE|KG|KP|L3)|(?:VX[0-9]+|L-0[12]D|L-07C|P713|LM-(Q910|V350[N]?|V409N|X510WM|X525|Q815[SL]|X410([KL]|UM|PM)|X420N|X510[KLS]|X415[KLS]|Q850|Q925L|Q725[KL]|Q710(?:FGN|\\\\(FGN\\\\)|\\\\.FGN?)?|X2[12]0(?:APM|\\\\(G\\\\)|CM|G)?|G710(N|VM)?|V405|V500N|G820(N|QM[0127]|UMB)?|(X410|Q610)(?:\\\\(FGN?\\\\)|\\\\.FN|\\\\.F(?:GN?)?)))[);/ ]|NetCast|RS987|RS500|VS(?:50[01]|835|98[78]|99[56]|(410|415|425|500)PP)|Nexsus 5|LML(414D|211B|713D|212V)L|LM-X(625N|210K|212\\\\(G\\\\)|410S)|VK810 4G|VK815","device":"smartphone","models":[{"regex":"LG-D325","model":"L70"},{"regex":"LM-X210APM","model":"Phoenix 4"},{"regex":"LG-D85[0125]","model":"G3"},{"regex":"LG-D72[2458]","model":"G3 Beat"},{"regex":"LG-H81[158]","model":"G4"},{"regex":"LG-H525n?","model":"G4c"},{"regex":"LG-(?:H540|H630)","model":"G4 Stylus"},{"regex":"LG-H735","model":"G4 Beat"},{"regex":"LG-H8(?:20|30|5[08]|60)|VS987","model":"G5"},{"regex":"LG-H84[05]","model":"G5 SE"},{"regex":"VS988","model":"G6"},{"regex":"LM-Q850","model":"G7 Fit"},{"regex":"LM-Q910","model":"G7 One"},{"regex":"LM-G820(N|QM[0127]|UMB)?","model":"G8"},{"regex":"VS501","model":"K20"},{"regex":"(?:LG-)?H502","model":"Magna"},{"regex":"(?:LG-)?H343","model":"Risio"},{"regex":"(?:LG-)?H650","model":"Zero"},{"regex":"(?:LG-)?M154","model":"Risio 2"},{"regex":"(?:LG-)?P500H","model":"Optimus One"},{"regex":"P713","model":"Optimus L7II"},{"regex":"L-01D","model":"Optimus LTE L-01D"},{"regex":"L-02D","model":"PRADA phone L-02D"},{"regex":"L-07C","model":"Optimus Bright L-07C"},{"regex":"(?:LG-)?F800(?:S|K|L)?","model":"V20"},{"regex":"LM-Q710(?:\\\\(FGN\\\\)|[\\\\.]?FGN)","model":"Q Stylus Plus"},{"regex":"LM-Q[67]10\\\\.FG[);/ ]","model":"Q7"},{"regex":"LM-(Q725[KL]|Q610.FGN)[);/ ]","model":"Q7+"},{"regex":"LM-Q815[SL]","model":"Q8+"},{"regex":"LM-Q925L","model":"Q9"},{"regex":"VS835","model":"Stylo 2 V"},{"regex":"LM-Q710|LML713DL","model":"Stylo 4"},{"regex":"LM-G710(N|VM)?","model":"G7 ThinQ"},{"regex":"LM-X210CM","model":"Fortune 2"},{"regex":"LM-X410\\\\.F[);/ ]","model":"Premier Pro"},{"regex":"LML414DL[);/ ]","model":"Premier Pro LTE"},{"regex":"LM-X525","model":"Q60"},{"regex":"LM-X210K","model":"X2"},{"regex":"LM-X510WM","model":"X Power 3"},{"regex":"LM-X(?:41[05]K|410S)","model":"X4"},{"regex":"LM-X(415[LS]|410L)","model":"X4+"},{"regex":"LM-X410\\\\.FN","model":"K11"},{"regex":"LM-X410(UM|PM)","model":"K30"},{"regex":"LM-X410","model":"LM-X410"},{"regex":"LM-X420N","model":"X4 (2019)"},{"regex":"LM-X510[KLS]","model":"X5"},{"regex":"LM-X625N1","model":"X6"},{"regex":"LM-X210[G]?","model":"Aristo 2"},{"regex":"LM-X220","model":"Aristo 3"},{"regex":"LM-V40(5|9N)","model":"V40 ThinQ"},{"regex":"LM-V500N","model":"V50"},{"regex":"(?:LG-)?(?:RS987|H901|H96[0128]|VS990)","model":"V10"},{"regex":"(?:LG-)?RS500","model":"K8 4G"},{"regex":"(?:LG-)?VS500","model":"K8 V"},{"regex":"LM-X212\\\\(G\\\\)","model":"K8 (2018)"},{"regex":"(?:LG-)?H91[058]","model":"V20"},{"regex":"(?:LG-)?H990(?:DS|N|T)?","model":"V20"},{"regex":"(?:LG-)?LS997","model":"V20"},{"regex":"(?:LG-)?VS995","model":"V20"},{"regex":"(?:LG-)?US999","model":"V20"},{"regex":"VS996","model":"V30"},{"regex":"(?:LG-)?VS410PP","model":"Optimus Zone"},{"regex":"LM-V350[N]?","model":"V35"},{"regex":"(?:LG-)?VS415PP","model":"Optimus Zone 2"},{"regex":"(?:LG-)?VS425PP","model":"Optimus Zone 3"},{"regex":"(?:LG-)?K100","model":"K3"},{"regex":"(?:LG-?)?(?:K|MS)33[02]","model":"K7"},{"regex":"(?:LG-?)?(?:K|MS)350","model":"K8"},{"regex":"VS500PP","model":"K8 V"},{"regex":"(?:LG-)?K420(?:N)?","model":"K10"},{"regex":"(?:LG-)?K430(?:DS|DSF|DSY)?","model":"K10"},{"regex":"(?:LG-)?M250N?","model":"K10 (2017)"},{"regex":"(?:LG-)?F670[KLS]?","model":"K10"},{"regex":"(?:LG-)?M255","model":"K20"},{"regex":"(?:LG-?)?[MT]P260","model":"K20 Plus"},{"regex":"(?:LG-)?M700(?:N|A|DSK|AN)?","model":"Q6"},{"regex":"(?:LG-?)?K220","model":"X Power"},{"regex":"(?:LG-?)?M320","model":"X Power 2"},{"regex":"(?:LG-)?K371","model":"Phoenix 2"},{"regex":"(?:LG-)?M150","model":"Phoenix 3"},{"regex":"(?:LG-)?F100[SL]","model":"Optimus Vu"},{"regex":"(?:LG-)?P880","model":"Optimus 4X HD"},{"regex":"(?:LG-)?H340n?","model":"Leon"},{"regex":"(?:LG-)?H422","model":"Spirit"},{"regex":"(?:LG)?C660","model":"Optimus Pro"},{"regex":"LML211BL|LML212VL","model":"Rebel 4"},{"regex":"LG-V490","model":"G Pad 8.0","device":"tablet"},{"regex":"LG-V500","model":"G Pad 8.3","device":"tablet"},{"regex":"LG-V700","model":"G Pad 10.1","device":"tablet"},{"regex":"LG-V935","model":"G Pad II 10.1","device":"tablet"},{"regex":"LG-V521","model":"G Pad X 8.0","device":"tablet"},{"regex":"VK810","model":"G Pad 8.3 LTE","device":"tablet"},{"regex":"VK815","model":"G Pad X 8.3","device":"tablet"},{"regex":"webOS.TV","device":"tv","model":"WebOS TV"},{"regex":"LGE_DLNA_SDK|NetCast","device":"tv","model":"NetCast"},{"regex":"LGE(?: |-LG| LG-AX|-)([a-z0-9]+)","model":"$1"},{"regex":"LGE;([a-z0-9\\\\-]+)","model":"$1"},{"regex":"LG[ _\\\\-](V90.*|Optimus[ _\\\\-]Pad.*) Build","device":"tablet","model":"$1"},{"regex":"LG(?:/|-LG| |-)?([^/;]*) Build","model":"$1"},{"regex":"LG(?:/|-LG| |-)?([a-z0-9]+)","model":"$1"},{"regex":"LG; ([a-z0-9 ]+)","model":"$1"},{"regex":"portalmmm/2.0 ((?:KE|KG|KP|L3)[a-z0-9]+)","model":"$1"},{"regex":"(VX[0-9]+)","model":"$1"}]},"Lingwin":{"regex":"Lingwin[ _\\\\-]","device":"smartphone","models":[{"regex":"Lingwin[ _\\\\-]?([^/;]+) Build","model":"$1"},{"regex":"Lingwin[ _\\\\-]?([^);/ ]+)","model":"$1"}]},"Logicom":{"regex":"(TAB950|TAB1062|E731|E812|E912|E1031|POWER BOT|La Tab 72|(?:B|C|M|ID|VR)[ _]?BOT[ _]?(?:TAB[ _])?([0-9]+\\\\+?)(?:PLUS)?|KT712A_4\\\\.4|L-?IXIR[0-9]*|L-ITE|L-?EMENT|Le Lift)[_);/ ]","device":"tablet","models":[{"regex":"La Tab 72","model":"La Tab 72"},{"regex":"KT712A_4.4","model":"L-ixir Tab 701"},{"regex":"LIXIR1041","model":"L-ixir Tab 1041"},{"regex":"L-?IXIR TAB ([^;/]+) Build","model":"L-ixir Tab $1"},{"regex":"L-ITE[ _]([^;/]+) Build","model":"L-ite Tab $1"},{"regex":"L-?EMENT[ _](?:TAB)?([^;/]+) Build","model":"L-ement Tab $1"},{"regex":"(TAB950|TAB1062|E731|E812|E912|E1031)[);/ ]","model":"$1"},{"regex":"POWER BOT","model":"POWER BOT"},{"regex":"((?:B|C|M|ID|VR))[ _]?BOT[ _]?((?:TAB[ _])?([0-9]+\\\\+?)(?:PLUS)?)","model":"$1 BOT $2"},{"regex":"Le Lift","model":"Le Lift","device":"smartphone"}]},"Konka":{"regex":"KONKA[_ ]([a-z0-9]+)","device":"smartphone","models":[{"regex":"E5660S","model":"Viva 5660s"},{"regex":"W830","model":"Tango 830"},{"regex":"W(9[67]0)","model":"Expose $1"},{"regex":"W990","model":"Tuxedo 990"},{"regex":"KONKA[_ ]([a-z0-9]+)","device":"feature phone","model":"$1"}]},"Konrow":{"regex":"(?:BIGCOOL|COOLFIVE|COOL-K|Just5|Link5)[);/ ]","device":"smartphone","models":[{"regex":"BIGCOOL[);/ ]","model":"BigCool"},{"regex":"COOL-K[);/ ]","model":"Cool-K"},{"regex":"COOLFIVE[);/ ]","model":"Cool Five"},{"regex":"Just5[);/ ]","model":"Just 5"},{"regex":"Link5[);/ ]","model":"Link 5"}]},"Karbonn":{"regex":"(?:Browser-)?Karbonn|K9 Kavach 4G|K9 Music 4G|K9 Smart|K9 VIRAAT 4G","device":"smartphone","models":[{"regex":"K9 Kavach 4G","model":"K9 Kavach 4G"},{"regex":"K9 Music 4G","model":"K9 Music 4G"},{"regex":"K9 Smart 1GB","model":"K9 Smart"},{"regex":"K9 Smart 4G","model":"K9 Smart 4G"},{"regex":"K9 Smart Grand","model":"K9 Smart Grand"},{"regex":"K9 Smart Yuva","model":"K9 Smart Yuva"},{"regex":"K9 Smart","model":"K9 Smart"},{"regex":"karbonnK9 Viraat 4G|K9 VIRAAT 4G","model":"K9 Viraat 4G"},{"regex":"Titanium[ _]S2[ _]Plus","model":"Titanium S2 Plus"},{"regex":"Titanium_S99","model":"Titanium S99"},{"regex":"Karbonn ([a-z0-9]+) WAP-Browser","model":"$1","device":"feature phone"},{"regex":"WAP Browser-Karbonn ([a-z0-9]+)/","model":"$1","device":"feature phone"},{"regex":"Karbonn_([^;/)]+)","model":"$1"},{"regex":"Karbonn ([^;/]+) Build","model":"$1"},{"regex":"Karbonn ([^;/]+)/","model":"$1"}]},"Sagem":{"regex":"SAGEM|portalmmm/2.0 (?:SG|my)","device":"smartphone","models":[{"regex":"SAGEM-(my[a-z0-9\\\\-]+)","model":"$1","device":"feature phone"},{"regex":"SAGEM ([a-z0-9]+)","model":"$1"},{"regex":"SAGEM-([a-z0-9\\\\-]+)","model":"$1"},{"regex":"portalmmm/2.0 ((?:SG|my)[a-z0-9]+)","model":"$1"}]},"Coby Kyros":{"regex":"(MID(?:1024|1125|1126|1045|1048|1060|1065|4331|7012|7015A?|7016|7022|7032|7035|7036|7042|7047|7048|7052|7065|7120|8024|8042|8048|8065|8125|8127|8128|9724|9740|9742))[);/ ]","device":"tablet","model":"$1"},"Mpman":{"regex":"(?:MPQC|MPDC)[0-9]+|PH(?:150|340|350|360|451|500|520)|(?:MID(?:7C|74C|82C|84C|801|811|701|711|170|77C|43C|102C|103C|104C|114C)|MP(?:843|717|718|1010|7007|7008|843|888|959|969)|MGP7)[);/ ]","device":"tablet","models":[{"regex":"((?:MPQC|MPDC)[0-9]+[^/;]+) Build","model":"$1"},{"regex":"(MID(?:7C|74C|82C|84C|801|811|701|711|170|77C|43C|102C|103C|104C|114C)|MP(?:843|717|718|1010|7007|7008|843|888|959|969)|MGP7)[);/ ]","model":"$1"},{"regex":"(PH(?:150|340|350|360|451|500|520))","model":"$1","device":"smartphone"}]},"Majestic":{"regex":"MAJESTIC[ _-]|CRONO ?[0-9]+","device":"smartphone","models":[{"regex":"MAJESTIC[ _]Tab([^;/]+)Build","model":"Tab$1","device":"tablet"},{"regex":"MAJESTIC[ _]Tab([^);/]+)[);/]","model":"Tab$1","device":"tablet"},{"regex":"MAJESTIC[ _]([^;/]+)Build","model":"$1"},{"regex":"MAJESTIC[ _]([^);/]+)[);/]","model":"$1"},{"regex":"CRONO ?([0-9]+) Build","model":"Crono $1"},{"regex":"CRONO ?([0-9]+)[);/]","model":"Crono $1"}]},"Manta Multimedia":{"regex":"MSP950(1[45]|2[01])|MSP96017|((?<!/)MID713|MID(?:06[SN]|08[S]?|12|13|14|15|701|702|703|704|705(?:DC)?|706[AS]?|707|708|709|711|712|714|717|781|801|802|901|1001|1002|1003|1004(?: 3G)?|1005|1009|1010|7802|9701|9702))[);/ ]","device":"smartphone","models":[{"regex":"((?<!/)MID713|MID(?:06[SN]|08[S]?|12|13|14|15|701|702|703|704|705(?:DC)?|706[AS]?|707|708|709|711|712|714|717|781|801|802|901|1001|1002|1003|1004(?: 3G)?|1005|1009|1010|7802|9701|9702))[);/ ]","device":"tablet","model":"$1"},{"regex":"MSP95014","model":"Titano 3"},{"regex":"MSP95015","model":"Mezo 2"},{"regex":"MSP95020","model":"Rocky 2"},{"regex":"MSP95021","model":"Rocky 3 Pro"},{"regex":"MSP96017","model":"Forto 2"}]},"Masstel":{"regex":"Masstel","device":"smartphone","models":[{"regex":"Masstel[_ ](Juno[_ ]Q3|X9|N4[56]0|N5[2458]0|N536|M05|M1[29]0|M1[125]|M250|M25)[);/ ]","model":"$1"},{"regex":"Masstel[_ ]\\\\((M18)\\\\)","model":"$1"},{"regex":"Masstel_Tab7LTE[);/ ]","model":"Tab 7 LTE","device":"tablet"},{"regex":"Masstel Tab (840|700i)[);/ ]","model":"Tab $1","device":"tablet"}]},"Maxwest":{"regex":"Astro_5N_LTE|Virtue Z5","device":"smartphone","models":[{"regex":"Astro_5N_LTE","model":"Astro 5N LTE"},{"regex":"Virtue Z5","model":"Virtue Z5"}]},"Maze":{"regex":"SSB-500|Alpha[_ ]X","device":"smartphone","models":[{"regex":"SSB-500","model":"SSB-500"},{"regex":"Alpha[_ ]X","model":"Alpha X"}]},"Mediacom":{"regex":"(?:SmartPad7503G|SmartPad970s2(?:3G)?|M[_-][MPS]P[0-9a-z]+|M-IPRO[0-9a-z]+)[);/ ]","device":"tablet","models":[{"regex":"SmartPad7503G[);/ ]","model":"SmartPad 750 3G"},{"regex":"SmartPad970s23G[);/ ]","model":"SmartPad 970 S2 3G"},{"regex":"SmartPad970s2[);/ ]","model":"SmartPad 970 S2"},{"regex":"M-MP84[02]M[);/ ]","model":"SmartPad 8.0 Mobile"},{"regex":"M-MP940M[);/ ]","model":"SmartPad 9.7 Mobile"},{"regex":"M-MP(?:710|720|725|726|740)GOx?[);/ ]","model":"SmartPad 7.0 Go"},{"regex":"M-MP876S2[);/ ]","model":"SmartPad 8.0 S2"},{"regex":"M-MP8S2[AB]?3G[);/ ]","model":"SmartPad 8.0 S2 3G"},{"regex":"M-MP(101|102|860|875)S2[BW]?[);/ ]","model":"SmartPad $1 S2"},{"regex":"M-MP85S23G[);/ ]","model":"SmartPad 875 S2 3G"},{"regex":"M-SP1AGO3G","model":"SmartPad 10 Go 3G"},{"regex":"M-MP10[45][01]S2[);/ ]","model":"SmartPad 10.1 S2"},{"regex":"M-MP1S2[AB]3G[);/ ]","model":"SmartPad 10.1 S2 3G"},{"regex":"M-MP8[24]S4[);/ ]","model":"SmartPad 8.0 S4"},{"regex":"M-MP8S4[AB]3G[);/ ]","model":"SmartPad 8.0 S4 3G"},{"regex":"M-MP9S4A3G[);/ ]","model":"SmartPad 9.7 S4 3G"},{"regex":"M-MP1[02]S4[);/ ]","model":"SmartPad 10.1 S4"},{"regex":"M-MP1040MC?[);/ ]","model":"SmartPad 10.1 HD S4 3G"},{"regex":"M-MP1S4[AB]3G[);/ ]","model":"SmartPad 10.1 S4 3G"},{"regex":"M-MP8PA3G[);/ ]","model":"SmartPad 8.0 HD Pro 3G"},{"regex":"M-MP10PA[);/ ]","model":"SmartPad 10.1 HD Pro"},{"regex":"M-MP10PA3G[);/ ]","model":"SmartPad 10.1 HD Pro 3G"},{"regex":"M-IPRO([18][01]0)[BW][);/ ]","model":"SmartPad 8.0 HD iPro$1 3G"},{"regex":"(?:M-MP75S23G|M-MP72[01]M)[);/ ]","model":"SmartPad 7.0 Mobile","device":"phablet"},{"regex":"M-MP7S2[ABDK]3G[);/ ]","model":"SmartPad 7.0 S2 3G","device":"phablet"},{"regex":"M-MP5303G[);/ ]","model":"SmartPad Mini Mobile","device":"phablet"},{"regex":"M-PPAG550[);/ ]","model":"PhonePad Duo G550","device":"phablet"},{"regex":"M-PP2G530[);/ ]","model":"PhonePad Duo G530","device":"phablet"},{"regex":"M-PPG700[);/ ]","model":"PhonePad Duo G700","device":"phablet"},{"regex":"M-PPxS531[);/ ]","model":"PhonePad Duo S531","device":"phablet"},{"regex":"M-PP2S550[);/ ]","model":"PhonePad Duo S550","device":"phablet"},{"regex":"M-PP2S650C?[);/ ]","model":"PhonePad Duo S650","device":"phablet"},{"regex":"M-PPxS551U[);/ ]","model":"PhonePad Duo S551U","device":"phablet"},{"regex":"M-PP[ABC]G500[);/ ]","model":"PhonePad Duo G500","device":"smartphone"},{"regex":"M-PP2S500[BC]?[);/ ]","model":"PhonePad Duo S500","device":"smartphone"},{"regex":"M[_-]PP[Ax]X(470|510|520)U[);/ ]","model":"PhonePad Duo X$1U","device":"smartphone"},{"regex":"M-PPxG(400|501)[);/ ]","model":"PhonePad Duo G$1","device":"smartphone"},{"regex":"M-PPxS(470|501)[);/ ]","model":"PhonePad Duo S$1","device":"smartphone"},{"regex":"M-MP([0-9a-z]+)","model":"SmartPad $1"}]},"Medion":{"regex":"Medion|(?:MD_)?LIFETAB|X5001[);/ ]|([SPX]10[0-9]{2}X|E10[45]1X)[);/ ]","device":"smartphone","models":[{"regex":"(?:MD_)?LIFETAB_([a-z0-9]+)","device":"tablet","model":"Lifetab $1"},{"regex":"X5001","model":"Life X5001"},{"regex":"(E10[45]1X)[);/ ]","device":"tablet","model":"$1"},{"regex":"([SPX]10[0-9]{2}X)[);/ ]","model":"Lifetab $1","device":"tablet"},{"regex":"Medion(?: Smartphone)? ([^/;]+) Build","model":"$1"}]},"MEEG":{"regex":"MEEG[ _-]","device":"smartphone","models":[{"regex":"MEEG[ _\\\\-]?([^/;]+) Build","model":"$1"},{"regex":"MEEG[ _\\\\-]?([^);/ ]+)","model":"$1"}]},"Meizu":{"regex":"Meizu|MZ-[a-z]|(M04[05]|MZ-16s|M35[1356]|M6T|MX[ -]?[2345](?: Pro)?|(?:MZ-)?m[1-6] note|M57[18]C|M3[ESX]|M031|m1 metal|M1 E|M2|M2 E|M5s Build|PRO 6|PRO 7-H)[);/ ]","device":"smartphone","models":[{"regex":"(?:MZ-)?M571C","device":"phablet","model":"M2 Note"},{"regex":"(?:MZ-)?m([1-6]) note[);/ ]","device":"phablet","model":"M$1 Note"},{"regex":"M1 E[);/ ]","model":"M1E"},{"regex":"M2 E[);/ ]","model":"M2E"},{"regex":"(?:MZ-)?M578C|M2[);/ ]","model":"M2"},{"regex":"M6T","model":"M6T"},{"regex":"M3E","model":"M3E"},{"regex":"M3S","model":"M3S"},{"regex":"M3X","model":"M3X"},{"regex":"M5S","model":"M5S"},{"regex":"(M04[05]|MX[ -]?2)[);/ ]","model":"MX2"},{"regex":"(M35[1356]|MX[ -]?3)[);/ ]","model":"MX3"},{"regex":"MX[ -]?4 Pro[);/ ]","model":"MX4 Pro"},{"regex":"MX[ -]?4[);/ ]","model":"MX4"},{"regex":"MX[ -]?5[);/ ]","model":"MX5"},{"regex":"m1 metal","model":"M1 Metal"},{"regex":"PRO 6","model":"PRO 6"},{"regex":"PRO 7-H","model":"PRO 7"},{"regex":"M031","model":"MX Dual Core"},{"regex":"(?:MZ-)?Meizu[_ ]([^/;]+) Build","model":"$1"},{"regex":"(?:MZ-)?Meizu[_ ]([a-z0-9_]+)","model":"$1"},{"regex":"MZ-([^/;]+) Build","model":"$1"}]},"Memup":{"regex":"SlidePad ?([^;/]*) Build|SPNG?[0-9]{2,4}[a-z]{0,2}[ ;/)]|SP704CE?","device":"tablet","models":[{"regex":"SlidePad ?([^;/]*) Build","model":"SlidePad $1"},{"regex":"SPNG([0-9]{2,4}[a-z]{0,2})[ ;/)]","model":"SlidePad NG$1"},{"regex":"SP704(CE?)","model":"SlidePad 704$1"}]},"Mecer":{"regex":"(M785|800P3[12]C|101P51C|X1010)[);/ ]","device":"tablet","models":[{"regex":"M785[);/ ]","model":"Xpress Smartlife M785"},{"regex":"X1010[);/ ]","model":"X1010"},{"regex":"800P31C[);/ ]","model":"Xpress Smartlife 800P31C"},{"regex":"800P32C[);/ ]","model":"Xpress Smartlife 800P32C"},{"regex":"101P51C[);/ ]","model":"Xpress Smartlife 101P51C"}]},"Mio":{"regex":"MIO(?:/)?([a-z0-9]+)","device":"smartphone","model":"$1"},"Miray":{"regex":"MIDM[_-]|MPM[_-]","device":"smartphone","models":[{"regex":"MIDM[_-]([a-z0-9]+)","model":"MIDM $1","device":"tablet"},{"regex":"MPM[_-]([a-z0-9]+)","model":"MPM $1"}]},"Mitsubishi":{"regex":"MITSU|portalmmm/[12]\\\\.0 M","device":"feature phone","models":[{"regex":"MITSU/[a-z0-9.]+ \\\\(([a-z0-9]+)\\\\)","model":"$1"},{"regex":"MITSU[ \\\\-]?([a-z0-9]+)","model":"$1"},{"regex":"portalmmm/[12]\\\\.0 (M[a-z0-9]+)","model":"$1"}]},"MIXC":{"regex":"(M35|M20|G7106|G7108)[ );/]","device":"smartphone","models":[{"regex":"(M[0-9]{1,2})[ );/]","model":"$1"},{"regex":"(G[0-9]{4})[ );/]","model":"$1"}]},"Mobiola":{"regex":"(MS5[50]X6|MS55X5|MS55L1|MS50L1|MS43A3000|MS45A4000|MS50A4000|MS50A4500|MS50A5000|MS50A6000|MS50B11000|MB-2900 QUATTRO|POLYS[_ ]MS45L1|Wave5)","device":"smartphone","models":[{"regex":"MS50X6","model":"Atmos II"},{"regex":"POLYS[_ ]MS45L1","model":"Polys MS45L1"},{"regex":"MS55X6","model":"Atmos Pro II"},{"regex":"MS55X5","model":"Atmos Pro"},{"regex":"MS55L1","model":"GAIA"},{"regex":"MS50L1","model":"Inti"},{"regex":"MB-2900 QUATTRO","model":"MB-2900 Quattro"},{"regex":"MS43A3000","model":"MS43A3000"},{"regex":"MS45A4000","model":"eOn 45"},{"regex":"MS50A4000","model":"eOn 50"},{"regex":"MS50A4500","model":"eOn 50 Elegance"},{"regex":"MS50A5000","model":"eOn 50 Quad 8"},{"regex":"MS50A6000","model":"eOn 50 Quad 16"},{"regex":"MS50B11000","model":"MS50B11000"},{"regex":"Wave5","model":"Wave 5"}]},"Mobiistar":{"regex":"Mobiistar|Zumbo_|PRIME X MAX","device":"smartphone","models":[{"regex":"mobiistar_LAI_Zumbo Build","model":"Zumbo"},{"regex":"Zumbo_S_2017 Build","model":"Lai Zumbo S (2017)"},{"regex":"Zumbo_S_2017_Lite Build","model":"Lai Zumbo S Lite (2017)"},{"regex":"mobiistar ZUMBO S2( Dual)? Build","model":"Zumbo S2"},{"regex":"Mobiistar_LAI_Zumbo_J Build","model":"Lai Zumbo J"},{"regex":"Mobiistar_LAI_Zumbo_J_2017 Build","model":"Lai Zumbo J (2017)"},{"regex":"Mobiistar_Zumbo_J2","model":"Lai Zumbo J2"},{"regex":"mobiistar ZUMBO Power","model":"Zumbo Power"},{"regex":"mobiistar[ _]LAI[ _]YUNA[ _]([1XCS])","model":"Lai Yuna $1"},{"regex":"mobiistar LAI Yuki","model":"Lai Yuki"},{"regex":"mobiistar[ _]LAI[ _]ZORO[ _]([23])","model":"Lai Zoro $1"},{"regex":"mobiistar[ _]LAI[ _]Zena","model":"Lai Zena"},{"regex":"mobiistar[ _]LAI[ _]Z([12])?","model":"Lai Z$1"},{"regex":"mobiistar_ZORO_4G","model":"Zoro 4G"},{"regex":"mobiistar touch LAI 512","model":"Touch Lai 512"},{"regex":"mobiistar LAI 504([KC])","model":"Lai 504$1"},{"regex":"mobiistar LAI Y Build","model":"Lai Y"},{"regex":"mobiistar PRIME X 2017 Build","model":"Prime X"},{"regex":"mobiistar[ _]PRIME[ _](X1|558|X[ _]Plus|X[ _]Grand) Build","model":"Prime $1"},{"regex":"PRIME X MAX 2018","model":"Prime X Max"},{"regex":"mobiistar[ _]KOOL([ _]Lite)?","model":"Kool$1"},{"regex":"mobiistar KAT 452 Build","model":"Kat 452"},{"regex":"mobiistar_LAI_YOLLO Build","model":"Lai Yollo"},{"regex":"Mobiistar[ _]([^;/]+) Build","model":"$1"}]},"MSI":{"regex":"Primo ?(?:91|76)|Enjoy 7 Plus","device":"tablet","models":[{"regex":"Primo ?76","model":"Primo 76"},{"regex":"Primo ?91","model":"Primo 91"},{"regex":"Enjoy 7 Plus","model":"Enjoy 7 Plus"}]},"MLLED":{"regex":"MLLED[ _]","device":"smartphone","models":[{"regex":"MLLED[ _]([^;/]+)Build","model":"$1"},{"regex":"MLLED[ _]([^);/]+)[);/]","model":"$1"}]},"Mobistel":{"regex":"(Cynus[ _][^/;]+) Build","device":"smartphone","model":"$1"},"Mecool":{"regex":"(KM9PRO|BB2 PRO|KII PRO)[);/ ]","device":"tv","models":[{"regex":"KM9PRO","model":"KM9 Pro"},{"regex":"BB2 PRO","model":"BB2 Pro"},{"regex":"KII PRO","model":"KII Pro"}]},"Modecom":{"regex":"Modecom|Free(?:Way )?Tab|xino z[\\\\d]+ x[\\\\d]+","device":"tablet","models":[{"regex":"xino Z([\\\\d]+) X([\\\\d]+)","model":"Xino Z$1 X$2","device":"smartphone"},{"regex":"FreeTab[ _\\\\-]?([^/;]+)? Build","model":"FreeTab $1"},{"regex":"FreeTab[ _\\\\-]?((?!Build)[^);/ ]+)?","model":"FreeTab $1"},{"regex":"FreeWay Tab[ _\\\\-]?([^/;]+) Build","model":"FreeWay Tab $1"},{"regex":"FreeWay Tab[ _\\\\-]?((?!Build)[^);/ ]+)","model":"FreeWay Tab $1"}]},"Mofut":{"regex":"Mofut","device":"smartphone","models":[{"regex":"Mofut[ _\\\\-]?([^/;]+) Build","model":"$1"},{"regex":"Mofut[ _\\\\-]?((?!Build)[^);/ ]+)","model":"$1"}]},"Motorola":{"regex":"MOT(?!TO)|(?<!AN)DROID ?(?:Build|[a-z0-9]+)|portalmmm/2.0 (?:E378i|L6|L7|v3)|XOOM [^;/]*Build|XT1021|(?:XT|MZ|MB|ME)[0-9]{3,4}[a-z]?(?:\\\\(Defy\\\\)|-0[1-5])?(?: Build|\\\\))","device":"smartphone","models":[{"regex":"MOT-V360","model":"V360","device":"feature phone"},{"regex":"(?:MOT-|Motorola-)?XT300","model":"Spice"},{"regex":"(?:MOT-|Motorola-)?XT30[35]","model":"Motosmart ME"},{"regex":"(?:MOT-|Motorola-)?XT31[16]","model":"Fire"},{"regex":"(?:MOT-|Motorola-)?XT32[01]","model":"Defy Mini"},{"regex":"(?:MOT-|Motorola-)?XT3(?:89|90)","model":"Motosmart"},{"regex":"(?:MOT-|Motorola-)?XT502","model":"Quench"},{"regex":"(?:MOT-|Motorola-)?XT531","model":"Fire XT"},{"regex":"(?:MOT-|Motorola-)?XT535","model":"Defy"},{"regex":"(?:MOT-|Motorola-)?XT55[567]C?","model":"Defy XT"},{"regex":"(?:MOT-|Motorola-)?XT603","model":"Admiral"},{"regex":"(?:MOT-|Motorola-)?XT610","model":"Droid Pro"},{"regex":"(?:MOT-|Motorola-)?XT615","model":"Motoluxe"},{"regex":"(?:MOT-|Motorola-)?XT621","model":"Primus"},{"regex":"(?:MOT-|Motorola-)?XT626","model":"IronRock"},{"regex":"(?:MOT-|Motorola-)?XT682","model":"Atrix"},{"regex":"(?:MOT-|Motorola-)?XT685","model":"Motoluxe Dual-SIM"},{"regex":"(?:MOT-|Motorola-)?XT687","model":"Atrix TV"},{"regex":"(?:MOT-|Motorola-)?XT720","model":"Milestone"},{"regex":"(?:MOT-|Motorola-)?XT800W","model":"Glam"},{"regex":"(?:MOT-|Motorola-)?XT860","model":"Milestone 3"},{"regex":"(?:MOT-|Motorola-)?XT881","model":"Electrify 2"},{"regex":"(?:MOT-|Motorola-)?XT882","model":"Moto XT882"},{"regex":"(?:MOT-|Motorola-)?XT88[56]","model":"Droid RAZR V"},{"regex":"(?:MOT-|Motorola-)?XT890","model":"Droid RAZR i"},{"regex":"(?:MOT-|Motorola-)?XT894","model":"Droid 4"},{"regex":"(?:MOT-|Motorola-)?XT897","model":"Photon Q"},{"regex":"(?:MOT-|Motorola-)?XT901","model":"Electrify M"},{"regex":"(?:MOT-|Motorola-)?XT90[567]","model":"Droid RAZR M"},{"regex":"(?:MOT-|Motorola-)?XT910S?","model":"Droid RAZR"},{"regex":"(?:MOT-|Motorola-)?XT91[4568]","model":"Droid RAZR D1"},{"regex":"(?:MOT-|Motorola-)?XT9(?:19|20)","model":"Droid RAZR D3"},{"regex":"(?:MOT-|Motorola-)?XT925","model":"Droid RAZR HD"},{"regex":"(?:MOT-|Motorola-)?XT102[12]","model":"Moto E"},{"regex":"(?:MOT-|Motorola-)?XT1706","model":"Moto E3 Power"},{"regex":"(?:MOT-|Motorola-)?XT1030","model":"Droid Mini"},{"regex":"(?:MOT-|Motorola-)?XT1096","model":"Moto X2"},{"regex":"(?:MOT-|Motorola-)?XT1254","model":"Droid Turbo"},{"regex":"(?:MOT-|Motorola-)?XT10(?:28|3[1234]|68|69)","model":"Moto G"},{"regex":"(?:MOT-|Motorola-)?XT10(?:49|5[23568]|60|9[23457])","model":"Moto X"},{"regex":"(?:MOT-|Motorola-)?XT1562","model":"Moto X Play"},{"regex":"(?:MOT-|Motorola-)?XT1080","model":"Droid Ultra"},{"regex":"(?:MOT-|Motorola-)?XT1650-05","model":"Moto Z"},{"regex":"(?:MOT-|Motorola-)?XT1635(?:-0[1-3])?","model":"Moto Z Play"},{"regex":"(?:MOT-|Motorola-)?XT1663","model":"Moto M"},{"regex":"Moto ([CGEXZ]) ?\\\\(([a-z0-9]+)\\\\)( Plus| Play)?","model":"Moto $1$2$3"},{"regex":"Moto ?([CGEXZ])([0-9]+)( Plus| Play)?","model":"Moto $1$2$3"},{"regex":"Moto ?([CGEXZ])( Plus| Play)?","model":"Moto $1$2"},{"regex":"Motorola[ _\\\\-]([a-z0-9]+)","model":"$1"},{"regex":"MOTORAZR[ _\\\\-]([a-z0-9]+)","model":"RAZR $1"},{"regex":"MOTORIZR[ _\\\\-]([a-z0-9]+)","model":"RIZR $1"},{"regex":"MOT(?!OROLA)[O]?[_\\\\-]?([a-z0-9.]+)","model":"$1"},{"regex":"(?<!AN)DROID ?([a-z0-9 ]*) Build","model":"DROID $1"},{"regex":"(?<!AN)DROID ?([a-z0-9]+)","model":"DROID $1"},{"regex":"portalmmm/2.0 ((?:E378i|L6|L7|V3)[a-z0-9]+)","model":"$1"},{"regex":"(XOOM [^;/]*)Build","device":"tablet","model":"$1"},{"regex":"(MZ[0-9]{3})[);/ ]","device":"tablet","model":"$1"},{"regex":"((?:ME|MB|XT)[0-9]{3,4}(?:\\\\(Defy\\\\))?)[);/ ]","model":"$1"}]},"Movic":{"regex":"MOVIC","device":"smartphone","models":[{"regex":"MOVIC[ -]W([2345])","model":"W$1"}]},"MTN":{"regex":"MTN-","device":"smartphone","models":[{"regex":"MTN-(L860|S620)","model":"Sm@rt Mini $1"},{"regex":"MTN-8978P","device":"tablet","model":"Steppa"},{"regex":"MTN-([a-z0-9_\\\\-]+)","model":"MTN-$1"}]},"MyPhone":{"regex":"(?:MyPhone|MyPad|MyTab)[ _][^;/]+ Build|Cube_LTE|myTab10II|HAMMER[ _]ENERGY|HAMMER_AXE_M_LTE|Hammer Titan 2|C-Smart_pix","device":"smartphone","models":[{"regex":"MyPad[ _]([^;/]+) Build","model":"MyPad $1","device":"tablet"},{"regex":"MyTab[ _]([^;/]+) Build","model":"MyTab $1","device":"tablet"},{"regex":"myTab10II","model":"MyTab 10 II","device":"tablet"},{"regex":"Cube_LTE","model":"Cube LTE"},{"regex":"HAMMER[ _]ENERGY","model":"Hammer Energy"},{"regex":"HAMMER_AXE_M_LTE","model":"Hammer Axe M LTE"},{"regex":"Hammer Titan 2","model":"Hammer Titan 2"},{"regex":"C-Smart_pix","model":"C-Smart Pix"},{"regex":"MyPhone[ _]([^;/]+) Build","model":"$1"}]},"MyWigo":{"regex":"MyWigo ","device":"smartphone","models":[{"regex":"City3","model":"City 3"}]},"Myria":{"regex":" (Myria_[^/;]+|502M|Cozy|Easy tab 9|Grand) Build|Myria_FIVE|Myria_Grand_4G|Myria_Wide_2|Myria_Wide_4G","device":"smartphone","models":[{"regex":"Myria_([^/;]+) Build","model":"$1"},{"regex":"Myria_FIVE","model":"Five"},{"regex":"(502M|Grand)","model":"$1"},{"regex":"Myria_Grand_4G","model":"Grand 4G"},{"regex":"Myria_Wide_4G","model":"Wide 4G"},{"regex":"Myria_Wide_2","model":"Wide 2"},{"regex":"(Cozy|Easy tab 9)","model":"$1","device":"tablet"}]},"M.T.T.":{"regex":"M.T.T.","device":"smartphone","models":[{"regex":"M.T.T. ?Tablet([^;/]+)? Build","device":"tablet","model":"Tablet$1"},{"regex":"M.T.T. ?([^;/]+) Build","model":"$1"}]},"Navon":{"regex":"Superme_Max","device":"smartphone","models":[{"regex":"Superme_Max","model":"Supreme Max"}]},"NOA":{"regex":"NOA[ _]|HummerLE","device":"smartphone","models":[{"regex":"NOA[_ ]CORE[_ ]FORTE","model":"Core Forte"},{"regex":"HummerLE","model":"Hummer LE"},{"regex":"NOA[_ ]Hummer[_ ]Lite","model":"Hummer Lite"},{"regex":"NOA[_ ]MOVEse","model":"Move SE"},{"regex":"NOA[_ ]NEXT","model":"Next"},{"regex":"NOA[_ ]VISION[_ ]H3SE","model":"Vision H3SE"},{"regex":"NOA[_ ]VISION[_ ]H3","model":"Vision H3"},{"regex":"NOA[_ ]LOOP","model":"Loop"},{"regex":"NOA[_ ]H4se","model":"H4SE"},{"regex":"NOA[_ ]Mg12","model":"MG12"},{"regex":"NOA[_ ]H44SE","model":"H44SE"},{"regex":"NOA[_ ]H10LE","model":"H10LE"},{"regex":"NOA[_ ]([^;)/ ]+)","model":"$1"}]},"Nobby":{"regex":"Nobby[ ]S500[;/) ]","device":"smartphone","model":"S500"},"NEC":{"regex":"NEC[ _\\\\-]|KGT/2\\\\.0|portalmmm/1\\\\.0 (?:DB|N)|(?:portalmmm|o2imode)/2.0[ ,]N","device":"smartphone","models":[{"regex":"(?:NEC[ _\\\\-]|KGT/2\\\\.0 )([a-z0-9]+)","model":"$1"},{"regex":"portalmmm/1\\\\.0 ((?:DB|N)[a-z0-9]+)","model":"$1"},{"regex":"(?:portalmmm|o2imode)/2\\\\.0[ ,](N[a-z0-9]+)","model":"$1"}]},"Neffos":{"regex":"Neffos","device":"smartphone","models":[{"regex":"Neffos[_ ]Y50","model":"Y50"},{"regex":"Neffos[_ ]((?:Y|N|C|X)[0-9][A-Z]?(?: Max| Lite)?)","model":"$1"}]},"Nextbit":{"regex":"(Robin) Build","device":"smartphone","model":"$1"},"Newgen":{"regex":"NEWGEN\\\\-([a-z0-9]+)","device":"feature phone","model":"$1"},"Netgear":{"regex":"GTV100","device":"tv","models":[{"regex":"GTV100","model":"NeoTV Prime"}]},"NeuImage":{"regex":"NIM-","device":"smartphone","models":[{"regex":"NIM-(450D|550O|600Q)","model":"$1"}]},"NextBook":{"regex":"Next[0-9]|NX785QC8G|NXM900MC|NX008HD8G|NX010HI8G|NXM908HC|NXM726","device":"tablet","models":[{"regex":"NX008HD8G","model":"Premium 8 HD"},{"regex":"NXM908HC","model":"Premium 9"},{"regex":"NX010HI8G","model":"Premium 10 Hi"},{"regex":"NX785QC8G","model":"8"},{"regex":"NXM900MC","model":"8 HD"},{"regex":"NXM726","model":"Premium 7"},{"regex":"Next([0-9]+[^;/]+) Build","model":"Next $1"}]},"NGM":{"regex":"NGM[_ ][a-z0-9]+|(Forward|Dynamic)[ _]?[^/;]+(?:Build|/)","device":"smartphone","models":[{"regex":"(Forward|Dynamic)[ _]?([^/;]+) Build","model":"$1 $2"},{"regex":"(Forward|Dynamic)[ _]?([^/;]+)/","model":"$1 $2"},{"regex":"NGM ([^;/]+) Build","model":"$1"},{"regex":"NGM_([a-z0-9]+)","model":"$1"}]},"Nexian":{"regex":"S?Nexian","device":"smartphone","models":[{"regex":"S?Nexian[ ]?([a-z0-9\\\\-]+)","model":"$1"},{"regex":"S?Nexian-([a-z0-9]+)","model":"$1"}]},"Noain":{"regex":"NOAIN","device":"smartphone","models":[{"regex":"NOAIN[ _-]([^;/]+) Build","model":"$1"},{"regex":"NOAIN[ _-]([^;/)]+)[;/)]","model":"$1"}]},"Noblex":{"regex":"Noblex|NBX-","device":"smartphone","models":[{"regex":"(?:Noblex|NBX)[ _-]([^;/]+) Build","model":"$1"},{"regex":"(?:Noblex|NBX)[ _-]([^;/)]+)[;/)]","model":"$1"}]},"Nomi":{"regex":"Nomi[ _-]|C101010 Ultra2[;/) ]","device":"smartphone","models":[{"regex":"C101010 Ultra2","model":"Ultra 2","device":"tablet"},{"regex":"Nomi[ _-]([^;/]+) Build","model":"$1"},{"regex":"Nomi[ _-]([^;/)]+)[;/)]","model":"$1"}]},"NUU Mobile":{"regex":"N(5702|5001)L[;)/ ]","device":"smartphone","models":[{"regex":"N5702L","model":"G3"},{"regex":"(N5001L)[;)/ ]","model":"$1"}]},"NYX Mobile":{"regex":"NYX[ _]","device":"smartphone","models":[{"regex":"NYX_A1","model":"A1"},{"regex":"NYX_Blink","model":"Blink"},{"regex":"NYX_EGO","model":"Ego"},{"regex":"NYX_FENIX","model":"Fenix"},{"regex":"NYX_FLY_II","model":"Fly II"},{"regex":"NYX_FLY_MINI","model":"Fly Mini"},{"regex":"NYX_FLY","model":"Fly"},{"regex":"NYX_HIT","model":"Hit"},{"regex":"NYX_JAK","model":"Jak"},{"regex":"NYX_JOIN","model":"Join"},{"regex":"NYX_NOBA_II","model":"Noba II"},{"regex":"NYX_NOBA","model":"Noba"},{"regex":"NYX_ORBIS","model":"Orbis"},{"regex":"NYX[ _]REX","model":"Rex"},{"regex":"NYX_SHADE","model":"Shade"},{"regex":"NYX_SKY","model":"Sky"},{"regex":"NYX_SPARK","model":"Spark"},{"regex":"NYX_VOX","model":"Vox"},{"regex":"NYX_ZEUZ_HD","model":"Zeus HD"}]},"Nous":{"regex":"NS([356]|500[2-68]|5511|5502)[;/) ]","device":"smartphone","models":[{"regex":"(NS[0-9]{1,4})[;/) ]","model":"$1"}]},"Nvidia":{"regex":"(SHIELD Tablet K1) Build","device":"tablet","models":[{"regex":"(SHIELD Tablet K1) Build","model":"$1"}]},"O+":{"regex":"O\\\\+[ _](Air|Crunch|Ultra|Upsized|Venti)","device":"smartphone","models":[{"regex":"O\\\\+[ _](Crunch|Ultra 2.0|Ultra|Upsized|Venti 4G)","model":"$1"},{"regex":"O\\\\+_AIR","model":"Air"}]},"O2":{"regex":"Xda|O2[ \\\\-]|COCOON","device":"smartphone","models":[{"regex":"(Xda[ _][a-z0-9_]+)","model":"$1"},{"regex":"(COCOON)","model":"$1"},{"regex":"O2 ([a-z0-9 ]+)","model":"$1"},{"regex":"O2-([a-z0-9]+)","model":"$1"}]},"Odys":{"regex":"ODYS[ _-]|IEOS[_ ]([^/;]+)|NOON(?:_PRO)? Build|SPACE10_(?:PLUS|PRO)_3G|THOR_?10|TAO_X10|RAPID_?(?:10|7)_?LTE|MAVEN_?10_|CONNECT[78]|ELEMENT10_PLUS_3G|XELIO[_0-9P]|ADM816HC|ADM8000KP|NEO6_LTE|EOS10|AEON|FALCON_10_PLUS_3G|FUSION","device":"tablet","models":[{"regex":"XELIO[_ ]A10","model":"Xelio A10"},{"regex":"XELIOPHONETAB3","model":"Xelio Phonetab 3"},{"regex":"XELIO_NEXT_10_PLUS_3G","model":"Xelio Next 10 Plus 3G"},{"regex":"XELIO_PHONE_TAB7_3G","model":"Xelio Phonetab 7 3G"},{"regex":"XELIO10EXTREME","model":"Xelio 10 Xtreme"},{"regex":"XELIO10_PLUS_3G","model":"Xelio 10 Plus 3G"},{"regex":"ELEMENT10_PLUS_3G","model":"Element 10 Plus 3G"},{"regex":"CONNECT8PLUS","model":"Connect 8 Plus"},{"regex":"CONNECT7PRO","model":"Connect 7 Pro"},{"regex":"MAVEN_?10_PRO_PLUS_3G","model":"Maven 10 Pro Plus 3G"},{"regex":"MAVEN_?10_?PLUS","model":"Maven 10 Plus"},{"regex":"MAVEN_?10_?PRO","model":"Maven 10 Pro"},{"regex":"MAVEN_?10_?HD","model":"Maven 10 HD"},{"regex":"RAPID_?7_?LTE","model":"Rapid 7 LTE"},{"regex":"RAPID_?10_?LTE","model":"Rapid 10 LTE"},{"regex":"TAO_X10","model":"Tao X10"},{"regex":"SPACE10_PLUS_3G","model":"Space 10 Plus 3G"},{"regex":"SPACE10_PRO_3G","model":"Space 10 Pro 3G"},{"regex":"THOR_?10 Build","model":"Thor 10"},{"regex":"ADM816HC","model":"Neo X"},{"regex":"EOS10","model":"EOS 10"},{"regex":"AEON","model":"Aeon"},{"regex":"FALCON_10_PLUS_3G","model":"Falcon 10 Plus 3G"},{"regex":"FUSION","model":"Fusion 7"},{"regex":"NEO6[_ ]LTE","model":"Neo 6 LTE","device":"smartphone"},{"regex":"ADM8000KP","model":"Titan"},{"regex":"THOR_?10_PLUS_3G","model":"Thor 10 Plus 3G"},{"regex":"IEOS[ _]([^/;]+) Build","model":"Ieos $1"},{"regex":"(?:ODYS[ _-])?NOON Build","model":"Noon"},{"regex":"(?:ODYS[ _-])?NOON_PRO Build","model":"Noon Pro"},{"regex":"Odys[ _-]([^/;]+) Build","model":"$1"}]},"Obi":{"regex":"Obi[ _-]|(SJ1\\\\.5|SJ2\\\\.6|S400|S452\\\\+|S451|S453|S501|S502|S503\\\\+?|S507|S520|S550|S551|falcon)[ _]","device":"smartphone","models":[{"regex":"SJ2\\\\.6","model":"SJ2.6"},{"regex":"SJ1\\\\.5","model":"SJ1.5"},{"regex":"(?:Obi_)?S400","model":"Skipper"},{"regex":"(?:Obi_)?S451|falcon","model":"Flacon"},{"regex":"(?:Obi_)?S452\\\\+","model":"Python"},{"regex":"(?:Obi_)?S453","model":"Fox"},{"regex":"(?:Obi_)?S501","model":"Wolverine"},{"regex":"(?:Obi_)?S502","model":"Leopard"},{"regex":"(?:Obi_)?S503\\\\+","model":"Boa Plus"},{"regex":"(?:Obi_)?S503","model":"Boa"},{"regex":"(?:Obi_)?S507","model":"Pelican"},{"regex":"(?:Obi_)?S520","model":"Octopus"},{"regex":"(?:Obi_)?S550","model":"Crane"},{"regex":"(?:Obi_)?S551","model":"Hornbill"},{"regex":"(?:Obi_)?S454","model":"Alligator"},{"regex":"Obi[ _-]([^;/]+) Build","model":"$1"},{"regex":"Obi[ _-]([^;/)]+)[;/)]","model":"$1"}]},"Onda":{"regex":"Onda","device":"smartphone","models":[{"regex":"ONDA MID","model":"MID","device":"tablet"},{"regex":"([a-z0-9]+)[ _]Onda","model":"$1"},{"regex":"Onda ([a-z0-9]+)","model":"$1"}]},"OnePlus":{"regex":"(?:du_)?ONEPLUS|(?:A0001|A200[135]|A300[03]|A3010|A5000|A600[03]|A601[03]|E100[135]|GM191[03517]|GM190[013])(?: Build|\\\\))","device":"smartphone","models":[{"regex":"GM191[03517]","model":"7 Pro"},{"regex":"GM190[013]","model":"7"},{"regex":"A0001","model":"One"},{"regex":"A200[135]|OnePlus2","model":"2"},{"regex":"E100[135]","model":"X"},{"regex":"A3010|OnePlus3T","model":"3T"},{"regex":"A300[03]|OnePlus3","model":"3"},{"regex":"A5010|OnePlus5T","model":"5T"},{"regex":"A5000|OnePlus5","model":"5"},{"regex":"A600[03]|OnePlus6","model":"6"},{"regex":"A601[03]","model":"6T"},{"regex":"(?:du_)?ONEPLUS ?([^;/]+) Build","model":"$1"}]},"OPPO":{"regex":"(?:OB-)?OPPO[ _]?([a-z0-9]+)|N1T|(?:X90[07][0679]|U707T?|X909T?|R(?:10[01]1|2001|201[07]|6007|7005|7007|80[13579]|81[13579]|82[01379]|83[013]|800[067]|8015|810[679]|811[13]|820[057])[KLSTW]?|N520[79]|N5117|A33f|A33fw|A37fw?|PAAM00|PAC[T|M]00|PBAM00)[);/ ]|R7kf|R7plusf|R7Plusm|A1601|CPH[0-9]{4}|PCAM10|PADM00|PBBT00|PBBM[03]0|RMX18(0[1579]|11|3[13]|2[15]|[45]1|45)|CPH19(69|79|23|1[179])|RMX(1827|194[135]|19[01]1|1971)|PC[CD]M00|PBAT00|PBCM[13]0|PBE[MT]00|PBFM00|PAFM00","device":"smartphone","models":[{"regex":"(?:OPPO[ _]?)?U707T?[);/ ]","model":"Find Way S"},{"regex":"(?:OPPO[ _]?)?CPH1979[);/ ]","model":"Reno Z"},{"regex":"CPH1945","model":"Reno2 Z"},{"regex":"CPH1969","model":"F11 Pro"},{"regex":"CPH1911","model":"F11"},{"regex":"CPH1917","model":"Reno"},{"regex":"CPH1921","model":"Reno 5G"},{"regex":"PCCM00","model":"Reno 10X"},{"regex":"CPH1919","model":"Reno 10X Zoom"},{"regex":"CPH1923","model":"A1K"},{"regex":"CPH1909","model":"A5S"},{"regex":"(?:OPPO[ _]?)?X909T?[);/ ]","model":"Find 5"},{"regex":"(?:OPPO[ _]?)?X907[067][);/ ]","model":"Find 7"},{"regex":"(?:OPPO[ _]?)?X900[067][);/ ]","model":"Find 7a"},{"regex":"(?:OPPO[ _]?)?X9009[);/ ]","model":"F1 Plus"},{"regex":"(?:OPPO[ _]?)?R8006[);/ ]","model":"R1L"},{"regex":"(?:OPPO[ _]?)?R800[07][);/ ]","model":"R1S"},{"regex":"(?:OPPO[ _]?)?R8015[);/ ]","model":"Find Guitar"},{"regex":"(?:OPPO[ _]?)?R810[679][);/ ]","model":"R5"},{"regex":"(?:OPPO[ _]?)?R7kf[);/ ]","model":"R7 Lite"},{"regex":"(?:OPPO[ _]?)?R7Plusf[);/ ]","model":"R7 Plus F"},{"regex":"(?:OPPO[ _]?)?R7Plusm[);/ ]","model":"R7 Plus"},{"regex":"(?:OPPO[ _]?)?R8111[);/ ]","model":"Find Melody"},{"regex":"(?:OPPO[ _]?)?R8113[);/ ]","model":"Piano"},{"regex":"(?:OPPO[ _]?)?R815[TW]?[);/ ]","model":"Find Clover"},{"regex":"(?:OPPO[ _]?)?R821T?[);/ ]","model":"Find Muse"},{"regex":"(?:OPPO[ _]?)?R827T?[);/ ]","model":"Find 5 Mini"},{"regex":"(?:OPPO[ _]?)?A33fw[);/ ]","model":"Neo 7s"},{"regex":"(?:OPPO[ _]?)?A33f[);/ ]","model":"Neo 7"},{"regex":"(?:OPPO[ _]?)?R831[SL][);/ ]","model":"Neo 5"},{"regex":"(?:OPPO[ _]?)?R831K[);/ ]","model":"Neo 3"},{"regex":"(?:OPPO[ _]?)?R831T?[);/ ]","model":"Neo"},{"regex":"(?:OPPO[ _]?)?N520[79][);/ ]","model":"N3"},{"regex":"(?:OPPO[ _]?)?N5117[);/ ]","model":"N1 Mini"},{"regex":"(?:OPPO[ _]?)?CPH1609[);/ ]","model":"F3"},{"regex":"(?:OPPO[ _]?)?CPH1707[);/ ]","model":"R11"},{"regex":"(?:OPPO[ _]?)?CPH1715[);/ ]","model":"A77"},{"regex":"(?:OPPO[ _]?)?CPH1717[);/ ]","model":"A71"},{"regex":"(?:OPPO[ _]?)?CPH1719[);/ ]","model":"R11s"},{"regex":"(?:OPPO[ _]?)?CPH1721[);/ ]","model":"R11s Plus"},{"regex":"(?:OPPO[ _]?)?CPH172[37][);/ ]","model":"F5"},{"regex":"(?:OPPO[ _]?)?CPH1725[);/ ]","model":"F5 Youth"},{"regex":"(?:OPPO[ _]?)?CPH1605[);/ ]","model":"A39"},{"regex":"(?:OPPO[ _]?)?CPH1607[);/ ]","model":"R9s"},{"regex":"(?:OPPO[ _]?)?CPH1611[);/ ]","model":"R9s Plus"},{"regex":"(?:OPPO[ _]?)?CPH1613[);/ ]","model":"F3 Plus"},{"regex":"(?:OPPO[ _]?)?CPH170[15][);/ ]","model":"A57"},{"regex":"(?:OPPO[ _]?)?CPH1729[);/ ]","model":"A83"},{"regex":"(?:OPPO[ _]?)?CPH1801[);/ ]","model":"A71"},{"regex":"(?:OPPO[ _]?)?CPH18(0[35]|53)[);/ ]","model":"A3s"},{"regex":"(?:OPPO[ _]?)?(?:CPH1809|PBAT00)[);/ ]","model":"A5"},{"regex":"CPH1933","model":"A5 (2020)"},{"regex":"(?:OPPO[ _]?)?CPH1938[);/ ]","model":"A9 (EN)"},{"regex":"CPH1937","model":"A9 (2020)"},{"regex":"(?:OPPO[ _]?)?CPH18(19|21)[);/ ]","model":"F7"},{"regex":"(?:OPPO[ _]?)?CPH1823[);/ ]","model":"F9 Pro"},{"regex":"(?:OPPO[ _]?)?CPH1827[);/ ]","model":"A83 (2018)"},{"regex":"(?:OPPO[ _]?)?CPH1831[);/ ]","model":"R15 Pro"},{"regex":"(?:OPPO[ _]?)?CPH1835[);/ ]","model":"R15"},{"regex":"(?:OPPO[ _]?)?CPH1837[);/ ]","model":"A3"},{"regex":"(?:OPPO[ _]?)?CPH1851[);/ ]","model":"AX5"},{"regex":"CPH1920","model":"AX5s"},{"regex":"(?:OPPO[ _]?)?CPH1859[);/ ]","model":"F7"},{"regex":"(?:OPPO[ _]?)?CPH1861[);/ ]","model":"RealMe 1"},{"regex":"(?:OPPO[ _]?)?PBCM30[);/ ]","model":"K1"},{"regex":"RMX1811","model":"RealMe C1"},{"regex":"RMX194[135]","model":"RealMe C2"},{"regex":"RMX1831","model":"RealMe U1"},{"regex":"(?:OPPO[ _]?)?(?:CPH187[15]|PAFM00)[);/ ]","model":"Find X"},{"regex":"(?:OPPO[ _]?)?CPH1877[);/ ]","model":"R17 Pro"},{"regex":"(?:OPPO[ _]?)?(?:CPH1879|PBE[MT]00)[);/ ]","model":"R17"},{"regex":"(?:OPPO[ _]?)?(?:CPH1825|CPH1881)[);/ ]","model":"F9"},{"regex":"(?:OPPO[ _]?)?CPH1893[);/ ]","model":"R17 Neo"},{"regex":"(?:OPPO[ _]?)?(?:CPH1901|PBFM00)[);/ ]","model":"A7"},{"regex":"(?:OPPO[ _]?)?CPH1903[);/ ]","model":"AX7"},{"regex":"(?:OPPO[ _]?)?A37f(w)?(?: Build|\\\\))","model":"A37f$1"},{"regex":"(?:OPPO[ _]?)?PADM00","model":"A3"},{"regex":"(?:OPPO[ _]?)?PBAM00","model":"A5"},{"regex":"(?:OPPO[ _]?)?A1601[);/ ]","model":"F1s"},{"regex":"(?:OPPO[ _]?)?R1011 Build","model":"Joy Plus"},{"regex":"(?:OPPO[ _]?)?(?:PAC[TM]00|PAAM00)[);/ ]","model":"R15"},{"regex":"PBCM10[);/ ]","model":"R15x"},{"regex":"RMX180[59]","model":"Realme 2"},{"regex":"RMX180[17]","model":"Realme 2 Pro"},{"regex":"RMX1833|RMX182[15]","model":"Realme 3"},{"regex":"RMX1827","model":"Realme 3i"},{"regex":"RMX1851","model":"Realme 3 Pro"},{"regex":"RMX1901","model":"Realme X"},{"regex":"RMX1911","model":"Realme 5"},{"regex":"RMX1971","model":"Realme 5 Pro"},{"regex":"(PBBT00|PBBM00)[);/ ]","model":"A7x"},{"regex":"PCDM00[);/ ]","model":"A7n"},{"regex":"PBBM30[);/ ]","model":"A3s"},{"regex":"N1T?[);/ ]","model":"N1T","device":"phablet"},{"regex":"PCAM10","model":"A9"},{"regex":"R([0-9]{3,4}[KSTW]?)[);/ ]","model":"R$1"},{"regex":"(?:OB-)?OPPO[ _]?([a-z0-9]+)","model":"$1"}]},"Opsson":{"regex":"Opsson|IUSAI","device":"smartphone","models":[{"regex":"IUSAI[ _]([^/;]+) Build","model":"Iusai $1"},{"regex":"IUSAI[ _]([^/;\\\\)]+)[/;\\\\)]","model":"Iusai $1"},{"regex":"Opsson[ _]([^/;]+) Build","model":"$1"},{"regex":"(?:Opsson-)?Opsson[ -_]([^/;]+)/","model":"$1"}]},"Orange":{"regex":"SPV[ \\\\-]?([a-z0-9]+)|Orange[ _-](?!Tahiti-LS\\\\))([^/;]+)( Build|\\\\))(?<!Tahiti-LS\\\\))|SC/IHD92|FunTab ([^/;]+) Build","device":"smartphone","models":[{"regex":"SC/IHD92","model":"Livebox Play","device":"tv"},{"regex":"Sego","model":"Sego","device":"tablet"},{"regex":"FunTab ([^/;]+) Build","model":"FunTab $1","device":"tablet"},{"regex":"Orange[ _-](Rise)(3[12]|5[12])[ ;/)]","model":"$1 $2"},{"regex":"Orange[ _-](Dive)72[ ;/)]","model":"$1 72"},{"regex":"Orange[ _-](Daytona|Dive (30|7[13])|Dublin|Fova|Gova|Hi 4G|Hiro|Kivo|Monte Carlo|Neva 80|Neva play|Nura|Reyo|Rise[_ ](3[034]|40|5[34])|Rono|Roya|San Francisco|Tactile internet 2|Tado|Yomi|Yumo|Zali)[ ;/)]","model":"$1"},{"regex":"SPV[ \\\\-]?([a-z0-9]+)","model":"SPV $1"}]},"Ouki":{"regex":"OUKI|OK[AU][0-9]+[a-z]* Build","device":"smartphone","models":[{"regex":"OUKI[ _-]?([^;/]+) Build","model":"$1"},{"regex":"([^;/)]+) Build/OUKI","model":"$1"},{"regex":"OUKI[ _-]?([^;/)]+)[;/)]","model":"$1"},{"regex":"(OK[AU][0-9]+[a-z]*) Build","model":"$1"}]},"Overmax":{"regex":"OV-[a-z]+(?:[^;(/]*)[();/ ]|Qualcore 1010","device":"tablet","models":[{"regex":"OV-V10","model":"Vertis Yard","device":"smartphone"},{"regex":"OV-Vertis[ _-]([^;/]+) Build","model":"Vertis $1","device":"smartphone"},{"regex":"Qualcore 1010","model":"Qualcore 1010","device":"tablet"},{"regex":"(OV-[a-z]+(?:[^;(/]*))(?<!Build)[();/ ]","model":"$1"}]},"Oysters":{"regex":"Oysters|T84ERI[ _]3G|T72HM3G|(T74HMi|T84Bi)[_ ]4G","device":"tablet","models":[{"regex":"Oysters ((?:Arctic|Indian|Atlantic|Pacific)[^/;]+) Build","device":"smartphone","model":"$1"},{"regex":"Oysters ([^/;]+) Build","model":"$1"},{"regex":"(T84ERI[ _]3G|T72HM3G|(?:(T74HMi|T84Bi)[_ ]4G))","model":"$1"}]},"\xf6wn":{"regex":"OWN","device":"smartphone","models":[{"regex":"FUN ([67])","model":"Fun $1"},{"regex":"FUN 5\\\\(4G\\\\)","model":"Fun 5 4G"},{"regex":"OWN[ _](S3000D|S3010|S3020D|S4010|S4025)","model":"$1"},{"regex":"One Plus","model":"One Plus"},{"regex":"One","model":"One"},{"regex":"SMART 9","model":"Smart 9"}]},"Panacom":{"regex":"T-i708D","device":"smartphone","models":[{"regex":"T-i708D","device":"tablet","model":"T-i708D"}]},"Panasonic":{"regex":"Panasonic|PANATV[0-9]+|Viera/|P902i[);/ ]|Eluga[ _]|FZ-N1|P55 Novo 4G","device":"smartphone","models":[{"regex":"Eluga[ _-]([^;/]+) Build","model":"Eluga $1"},{"regex":"Eluga[ _-]([^;/]+)[;/)]","model":"Eluga $1"},{"regex":"FZ-N1","model":"Toughpad"},{"regex":"P55 Novo 4G","model":"P55 Novo 4G"},{"regex":"P902i[);/ ]","device":"feature phone","model":"P902i"},{"regex":"Panasonic MIL DLNA","device":"tv","model":"Viera Cast"},{"regex":"PANATV[0-9]+|Viera/","device":"tv","model":"Smart TV"},{"regex":"Panasonic[ _\\\\-]?([a-z0-9]+)","model":"$1"},{"regex":"portalmmm/2.0 (P[a-z0-9]+)","model":"$1"}]},"PCBOX":{"regex":"Art-PCB-V116|Bee-PCB-V216|Clap-PCB-I316|PCB-T(103|715)","device":"smartphone","models":[{"regex":"Art-PCB-V116","model":"Art"},{"regex":"Bee-PCB-V216","model":"Bee"},{"regex":"Clap-PCB-I316","model":"Clap"},{"regex":"PCB-T103","device":"tablet","model":"Curi Lite"},{"regex":"PCB-T715","device":"tablet","model":"T715"}]},"PCD":{"regex":"PH4001","device":"smartphone","models":[{"regex":"PH4001","model":"PH4001"}]},"PCD Argentina":{"regex":"PCD[ ]?50[689]","device":"smartphone","models":[{"regex":"PCD[ ]?(50[689])","model":"$1"}]},"Pentagram":{"regex":"Pentagram|Quadra|Monster X5","device":"tablet","models":[{"regex":"(?:PENTAGRAM[_ ])?EON[_ ]PRIX","model":"Eon Prix"},{"regex":"Quadra 7( UltraSlim)?","model":"Quadra 7 UltraSlim"},{"regex":"Monster X5?","model":"Monster X5","device":"smartphone"},{"regex":"Quadra ?([^);/]*) Build","model":"Quadra $1"},{"regex":"Pentagram ?TAB ?([^);/]*) Build","model":"Tab $1"},{"regex":"Pentagram ?([^);/]*) Build","model":"$1","device":"smartphone"}]},"Philips":{"regex":"Philips|AND1E[);/ ]|NETTV/|PI3210G|TLE(821L|722G)","device":"smartphone","models":[{"regex":"AND1E(?: TV)?[);/ ]","model":"Android TV","device":"tv"},{"regex":"(PI3210G)","model":"$1","device":"tablet"},{"regex":"(TLE821L)[);/ ]","model":"$1 4G LTE","device":"tablet"},{"regex":"(TLE722G)[);/ ]","model":"$1","device":"tablet"},{"regex":"Philips, BDP([0-9]{4})","model":"Blu-ray Player (BDP$1)","device":"tv"},{"regex":"(NETTV/[0-9\\\\.]{5})","model":"NetTV Series","device":"tv"},{"regex":"Philips-FISIO ([a-z0-9]+)","model":"Fisio $1"},{"regex":"Philips[ _-]?([a-z0-9\\\\-@]+)","model":"$1"}]},"phoneOne":{"regex":"phoneOne[ \\\\-]?([a-z0-9]+)","device":"smartphone","model":"$1"},"Primepad":{"regex":"PD\\\\-(3127NC|3127) Build","device":"tablet","models":[{"regex":"PD\\\\-3127NC Build","model":"PD-3127NC"},{"regex":"PD\\\\-3127 Build","model":"PD-3127"}]},"Pioneer":{"regex":"Pioneer|.*; R1 Build","device":"smartphone","models":[{"regex":".*; R1 Build","model":"R1","device":"tablet"},{"regex":"Pioneer[ _-]?([^;/]+) Build","model":"$1"},{"regex":"Pioneer[ _-]?([^;/)]+)[;/)]","model":"$1"}]},"Pixus":{"regex":"Pixus|Ride[_ ]4G[;)\\\\ ]","device":"tablet","models":[{"regex":"Ride[_ ]4G","model":"Ride 4G"},{"regex":"Raze","model":"Raze","device":"smartphone"}]},"PULID":{"regex":"PULID[ _]|F1[01357]\\\\+? Build","device":"smartphone","models":[{"regex":"F(1[01357]\\\\+?) Build","model":"F$1"},{"regex":"PULID[ _]([^;/]+) Build","model":"$1"},{"regex":"PULID[ _]([a-z0-9_]+)\\\\)","model":"$1"}]},"Point of View":{"regex":"POV_TV|POV_TAB|MOB-5045","device":"tablet","models":[{"regex":"POV_TV-HDMI-KB-01","model":"HDMI Smart TV Dongle","device":"tv"},{"regex":"POV_TV-HDMI-200BT","model":"Mini PC HDMI Dongle","device":"tv"},{"regex":"MOB-5045","model":"Mobii Phone 5045","device":"smartphone"},{"regex":"POV_TAB-P506","model":"ONYX 506 Navi"},{"regex":"POV_TAB[_-]NAVI7[_-]3G[_-]M","model":"ONYX 507 Navi"},{"regex":"POV_TAB-P527S","model":"ONYX 527S"},{"regex":"POV_TAB-P547","model":"ONYX 547 Navi"},{"regex":"POV_TAB-PROTAB26","model":"ProTab 26 XXL IPS"},{"regex":"POV_TAB-PROTAB25XXL8?","model":"ProTab 25XXL"},{"regex":"POV_TAB-PL1015","model":"Mobii 1015"},{"regex":"POV_TAB-PROTAB([a-z0-9]+)","model":"ProTab $1"},{"regex":"POV_TAB-P?([a-z0-9]+)","model":"Mobii $1"}]},"Pomp":{"regex":"POMP[ _-]","device":"smartphone","models":[{"regex":"POMP[ _-]([^;/]+) Build","model":"$1"},{"regex":"POMP[ _-]([^;/)]+)[;/)]","model":"$1"}]},"PPTV":{"regex":"(KING 7S?)","device":"smartphone","model":"$1"},"ProScan":{"regex":"PLT([^;/]+) Build","device":"tablet","model":"PLT$1"},"RCA Tablets":{"regex":"RCT([^;/]+) Build|RCA RLTP4028","device":"smartphone","models":[{"regex":"RCA RLTP4028","model":"RLTP4028"},{"regex":"RCT([^;/]+) Build","device":"tablet","model":"RCT$1"}]},"Readboy":{"regex":"Readboy[ _-]","device":"tablet","models":[{"regex":"Readboy[ _-]([^;/]+) Build","model":"$1"},{"regex":"Readboy[ _-]([^;/]+)[;/)]","model":"$1"}]},"Roku":{"regex":"Roku/DVP","device":"tv","model":"Digital Video Player"},"Rokit":{"regex":"IO Pro","device":"smartphone","models":[{"regex":"IO Pro","model":"IO Pro"}]},"Rombica":{"regex":"SSQ-A0500[);/ ]","device":"tv","model":"Smart Stick 4K"},"Rover":{"regex":"Rover ([0-9]+)","device":"feature phone","model":"$1"},"RT Project":{"regex":"Shock 5","device":"smartphone","models":[{"regex":"Shock 5","model":"Shock 5"}]},"Safaricom":{"regex":"NEON_RAY","device":"smartphone","models":[{"regex":"NEON_RAY","model":"Neon Ray"}]},"Santin BiTBiZ":{"regex":"BiTBiZ","device":"smartphone","models":[{"regex":"BiTBiZ_V58","model":"V58"}]},"Siemens":{"regex":"SIEMENS|SIE-|portalmmm/2\\\\.0 SI|S55|SL45i","device":"smartphone","models":[{"regex":"SIEMENS[ \\\\-]([a-z0-9]+)","model":"$1"},{"regex":"SIE(?:MENS )?[\\\\-]?([a-z0-9]+)","model":"$1"},{"regex":"(?:SIE-)?(S55|SL45i)","model":"$1"},{"regex":"portalmmm/2.0 (SI[a-z0-9]+)","model":"$1"}]},"Samsung":{"regex":"SAMSUNG(?! ?Browser)|Maple |SC-(?:02[CH]|04E|01F)|N[57]100|N5110|N9100|S(?:CH|GH|PH|EC|AM|HV|HW|M)-|SMART-TV|GT-|Galaxy|(?:portalmmm|o2imode)/2\\\\.0 [SZ]|sam[rua]|vollo Vi86[);/ ]|(?:OTV-)?SMT-E5015|ISW11SC|SCV3[1-9]|404SC","device":"smartphone","models":[{"regex":"GT-B9150","device":"tv","model":"Home Sync"},{"regex":"(?:OTV-)?SMT-E5015","device":"tv","model":"SMT-E5015"},{"regex":"Maple ","device":"tv","model":""},{"regex":"(?:SAMSUNG-)?(?:GT-)?N5100","device":"tablet","model":"GALAXY Note 8.0\\""},{"regex":"(?:SAMSUNG-)?(?:GT-)?N5110","device":"tablet","model":"GALAXY Note 8.0\\" WiFi"},{"regex":"(?:SAMSUNG-)?GT-N5120","device":"tablet","model":"GALAXY Note 8.0\\" LTE"},{"regex":"(?:SAMSUNG-)?GT-N8000","device":"tablet","model":"GALAXY Note 10.1\\""},{"regex":"(?:SAMSUNG-)?GT-N8010","device":"tablet","model":"GALAXY Note 10.1\\" WiFi"},{"regex":"(?:SAMSUNG-)?GT-N8020","device":"tablet","model":"GALAXY Note 10.1\\" LTE"},{"regex":"(?:SAMSUNG-)?GT-P1000M?|SCH-I800","device":"tablet","model":"GALAXY Tab"},{"regex":"(?:SAMSUNG-)?GT-P3100B?","device":"tablet","model":"GALAXY Tab 2 7\\""},{"regex":"(?:SAMSUNG-)?GT-P311[03]","device":"tablet","model":"GALAXY Tab 2 7\\" WiFi"},{"regex":"(?:SAMSUNG-)?GT-P5100|SCH-I915","device":"tablet","model":"GALAXY Tab 2 10.1\\""},{"regex":"(?:SAMSUNG-)?GT-P511[03]","device":"tablet","model":"GALAXY Tab 2 10.1\\" WiFi"},{"regex":"(?:SAMSUNG-)?GT-P5200","device":"tablet","model":"GALAXY Tab 3 10.1\\""},{"regex":"(?:SAMSUNG-)?GT-P5210","device":"tablet","model":"GALAXY Tab 3 10.1\\" WiFi"},{"regex":"(?:SAMSUNG-)?GT-P5220","device":"tablet","model":"GALAXY Tab 3 10.1\\" LTE"},{"regex":"(?:SAMSUNG-)?GT-P6200","device":"tablet","model":"GALAXY Tab 7\\" Plus"},{"regex":"(?:SAMSUNG-)?GT-P6201","device":"tablet","model":"GALAXY Tab 7\\" Plus N"},{"regex":"(?:SAMSUNG-)?GT-P6810","device":"tablet","model":"GALAXY Tab 7.7\\""},{"regex":"(?:SAMSUNG-)?GT-P7100","device":"tablet","model":"GALAXY Tab 10.1v"},{"regex":"(?:SAMSUNG-)?GT-P75[01]0","device":"tablet","model":"GALAXY Tab 10.1\\""},{"regex":"(?:SAMSUNG-)?SM-P600","device":"tablet","model":"GALAXY Note 10.1\\" 2014 Edition WiFi"},{"regex":"(?:SAMSUNG-)?SM-P60[12]","device":"tablet","model":"GALAXY Note 10.1\\" 2014 Edition"},{"regex":"(?:SAMSUNG-)?SM-(?:P605|P607T)","device":"tablet","model":"GALAXY Note 10.1\\" 2014 Edition LTE"},{"regex":"(?:SAMSUNG-)?SM-P900","device":"tablet","model":"GALAXY NotePRO 12.2\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-P901","device":"tablet","model":"GALAXY NotePRO 12.2\\""},{"regex":"(?:SAMSUNG-)?SM-P905","device":"tablet","model":"GALAXY NotePRO 12.2\\" LTE"},{"regex":"(?:SAMSUNG-)?SM-P205","device":"tablet","model":"Galaxy Tab A with S Pen (2019)"},{"regex":"(?:SAMSUNG-)?SM-T110","device":"tablet","model":"GALAXY Tab 3 7.0\\" Lite WiFi"},{"regex":"(?:SAMSUNG-)?SM-T830X","device":"tablet","model":"GALAXY Tab S4"},{"regex":"(?:SAMSUNG-)?SM-T111","device":"tablet","model":"GALAXY Tab 3 7.0\\" Lite"},{"regex":"(?:SAMSUNG-)?SM-T116(?:BU|NU|NY)?","device":"tablet","model":"GALAXY Tab 3 V"},{"regex":"(?:SAMSUNG-)?SM-T2105","device":"tablet","model":"GALAXY Tab 3 7.0\\" Kids"},{"regex":"(?:SAMSUNG-)?SM-T210R?","device":"tablet","model":"GALAXY Tab 3 7.0\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T21(?:1|7[AS])","device":"tablet","model":"GALAXY Tab 3 7.0\\""},{"regex":"(?:SAMSUNG-)?SM-T230(?:NU)?","device":"tablet","model":"GALAXY Tab 4 7.0\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T231","device":"tablet","model":"GALAXY Tab 4 7.0\\" 3G"},{"regex":"(?:SAMSUNG-)?SM-T310","device":"tablet","model":"GALAXY Tab 3 8.0\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T311","device":"tablet","model":"GALAXY Tab 3 8.0\\""},{"regex":"(?:SAMSUNG-)?SM-T315","device":"tablet","model":"GALAXY Tab 3 8.0\\" LTE"},{"regex":"(?:SAMSUNG-)?SM-T330","device":"tablet","model":"GALAXY Tab 4 8.0\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T335","device":"tablet","model":"GALAXY Tab 4 8.0\\" LTE"},{"regex":"(?:SAMSUNG-)?SM-T520","device":"tablet","model":"GALAXY TabPRO 10.1\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T535","device":"tablet","model":"GALAXY Tab 4 10.1\\" LTE"},{"regex":"(?:SAMSUNG-)?SM-T320","device":"tablet","model":"GALAXY TabPRO 8.4\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T325","device":"tablet","model":"GALAXY TabPRO 8.4\\" LTE"},{"regex":"(?:SAMSUNG-)?SM-T525","device":"tablet","model":"GALAXY TabPRO 10.1\\" LTE"},{"regex":"(?:SAMSUNG-)?SM-T530(?:NU)?","device":"tablet","model":"GALAXY Tab 4 10.1\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T700","device":"tablet","model":"GALAXY Tab S 8.4\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T705","device":"tablet","model":"GALAXY Tab S 8.4\\" LTE"},{"regex":"(?:SAMSUNG-)?SM-T800","device":"tablet","model":"GALAXY Tab S 10.5\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T805","device":"tablet","model":"GALAXY Tab S 10.5\\" LTE"},{"regex":"(?:SAMSUNG-)?SM-T813","device":"tablet","model":"GALAXY Tab S2 9.7\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T815","device":"tablet","model":"GALAXY Tab S2 9.7\\" LTE"},{"regex":"(?:SAMSUNG-)?SM-T820","device":"tablet","model":"GALAXY Tab S3 9.7\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T825","device":"tablet","model":"GALAXY Tab S3 9.7\\" LTE"},{"regex":"(?:SAMSUNG-)?SM-T900","device":"tablet","model":"GALAXY TabPRO 12.2\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T280","device":"tablet","model":"GALAXY Tab A 7.0\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T285","device":"tablet","model":"GALAXY Tab A 7.0\\" LTE"},{"regex":"(?:SAMSUNG-)?SM-T3[58]0","device":"tablet","model":"GALAXY Tab A 8.0\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-(?:P350|T3[58]5)","device":"tablet","model":"GALAXY Tab A 8.0\\" LTE"},{"regex":"(?:SAMSUNG-)?SM-T295","device":"tablet","model":"GALAXY Tab A 8.0\\" LTE (2019)"},{"regex":"(?:SAMSUNG-)?SM-(?:P355([MY])?|T550)","device":"tablet","model":"GALAXY Tab A 9.7\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-(?:P550|P555(M)?|T555)","device":"tablet","model":"GALAXY Tab A 9.7\\" LTE"},{"regex":"(?:SAMSUNG-)?SM-(?:T58[05]|P58[05])","device":"tablet","model":"GALAXY Tab A 10.1\\" WiFi (2016)"},{"regex":"(?:SAMSUNG-)?SM-T597","device":"tablet","model":"GALAXY Tab A 10.5\\" LTE (2018)"},{"regex":"(?:SAMSUNG-)?SM-T37[57]","device":"tablet","model":"GALAXY Tab E 8.0\\""},{"regex":"(?:SAMSUNG-)?SM-T560","device":"tablet","model":"GALAXY Tab E 9.6\\" WiFi"},{"regex":"(?:SAMSUNG-)?SM-T561","device":"tablet","model":"GALAXY Tab E 9.6\\" 3G"},{"regex":"(?:SAMSUNG-)?SM-T365","device":"tablet","model":"GALAXY Tab Active"},{"regex":"(?:SAMSUNG-)?SM-T39[57]","device":"tablet","model":"GALAXY Tab Active 2"},{"regex":"(?:SAMSUNG-)?SM-M305","device":"tablet","model":"GALAXY M30"},{"regex":"(?:SAMSUNG-)?SM-M405","device":"tablet","model":"GALAXY M40"},{"regex":"(?:SAMSUNG-)?SM-G850[AMSWY]","model":"GALAXY Alpha"},{"regex":"(?:SAMSUNG-)?GT-B5330","model":"GALAXY Chat"},{"regex":"(?:SAMSUNG-)?SM-A605K","model":"GALAXY Jean"},{"regex":"(?:SAMSUNG-)?GT-B5510","model":"GALAXY Y Pro"},{"regex":"(?:SAMSUNG-)?GT-B5512","model":"GALAXY Y Pro Duos"},{"regex":"(?:SAMSUNG-)?GT-B7510","model":"GALAXY Pro"},{"regex":"(?:SAMSUNG-)?GT-I5700","model":"GALAXY Spica"},{"regex":"(?:SAMSUNG-)?GT-I5801","model":"GALAXY Apollo"},{"regex":"(?:SAMSUNG-)?GT-I5800","model":"GALAXY 3"},{"regex":"(?:SAMSUNG-)?GT-I8000","model":"Omnia II"},{"regex":"(?:SAMSUNG-)?GT-I8150","model":"GALAXY W"},{"regex":"(?:SAMSUNG-)?GT-S5830","model":"GALAXY Ace"},{"regex":"(?:SAMSUNG-)?GT-I8160","model":"GALAXY Ace 2"},{"regex":"(?:SAMSUNG-)?SM-G313(?:HY|M[LUY]|[FM])","model":"GALAXY Ace 4"},{"regex":"(?:SAMSUNG-)?SM-G313[HU]","model":"GALAXY Ace 4 Lite"},{"regex":"(?:SAMSUNG-)?GT-I8190","model":"GALAXY S III mini"},{"regex":"(?:SAMSUNG-)?GT-I8200","model":"GALAXY S III mini Value Edition"},{"regex":"(?:SAMSUNG-)?GT-I826[02]","model":"GALAXY Core"},{"regex":"(?:SAMSUNG-)?GT-I8320","model":"H1"},{"regex":"(?:SAMSUNG-)?GT-I85[23]0","model":"GALAXY Beam"},{"regex":"(?:SAMSUNG-)?SM-G600S","model":"GALAXY Wide"},{"regex":"(?:SAMSUNG-)?GT-I855[028]","model":"GALAXY Win"},{"regex":"(?:SAMSUNG-)?GT-I8580","model":"GALAXY Core Advance"},{"regex":"(?:SAMSUNG-)?GT-I8730","model":"GALAXY Express"},{"regex":"(?:SAMSUNG-)?SM-E500(?:F|H|HQ|M)","model":"GALAXY E5"},{"regex":"(?:SAMSUNG-)?SM-E700(?:0|9|F|H|M)","model":"GALAXY E7"},{"regex":"(?:SAMSUNG-)?GT-I90(?:00|08|18|88)","model":"GALAXY S"},{"regex":"(?:SAMSUNG-)?GT-I9001","model":"GALAXY S Plus"},{"regex":"(?:SAMSUNG-)?GT-I9003","model":"GALAXY SL"},{"regex":"(?:SAMSUNG-)?GT-I9010","model":"GALAXY S Giorgio Armani"},{"regex":"(?:SAMSUNG-)?GT-I9070","model":"GALAXY S Advance"},{"regex":"(?:SAMSUNG-)?GT-I910[08]","model":"GALAXY S II"},{"regex":"(?:SAMSUNG-)?ISW11SC","model":"GALAXY S II WiMAX"},{"regex":"(?:SAMSUNG-)?GT-I9103","model":"GALAXY R"},{"regex":"(?:SAMSUNG-)?GT-I9105","model":"GALAXY S II Plus"},{"regex":"(?:SAMSUNG-)?SM-G730(?:W8|[AV])","model":"GALAXY S3 mini"},{"regex":"(?:SAMSUNG-)?(?:GT-I919[05]|SCH-I435)","model":"GALAXY S4 mini"},{"regex":"(?:SAMSUNG-)?GT-I9515","model":"GALAXY S4 Value Edition"},{"regex":"(?:SAMSUNG-)?GT-I9295","model":"GALAXY S4 ACTIVE"},{"regex":"(?:SAMSUNG-)?(?:GT-I9300|SCH-I535|SCH-L710)","model":"GALAXY S III"},{"regex":"(?:SAMSUNG-)?(?:GT-I9305|SCH-R530)","model":"GALAXY S III LTE"},{"regex":"(?:SAMSUNG-)?(?:GT-I9500|GT-I9502|GT-I9505|SCH-I545|SCH-I959|SCH-R970|GALAXY-S4|SGH-M919N?)","model":"GALAXY S4"},{"regex":"(?:SAMSUNG-)?GT-I9506","model":"GALAXY S4 with LTE+"},{"regex":"(?:SAMSUNG-)?GT-S5280","model":"GALAXY STAR"},{"regex":"(?:SAMSUNG-)?GT-S5301","model":"GALAXY POCKET Plus"},{"regex":"(?:SAMSUNG-)?GT-S5310","model":"GALAXY POCKET Neo"},{"regex":"(?:SAMSUNG-)?SM-G110[BHM]","model":"GALAXY POCKET 2"},{"regex":"(?:SAMSUNG-)?GT-S5360","model":"GALAXY Y Hello Kitty"},{"regex":"(?:SAMSUNG-)?GT-S6310","model":"GALAXY Young"},{"regex":"(?:SAMSUNG-)?GT-S6312","model":"GALAXY Young DUOS"},{"regex":"(?:SAMSUNG-)?SM-G130(?:BT|HN|[EHMU])","model":"GALAXY Young 2"},{"regex":"(?:SAMSUNG-)?SM-G130BU","model":"GALAXY Young 2 Pro"},{"regex":"(?:SAMSUNG-)?GT-S6790","model":"GALAXY FAME Lite with NFC"},{"regex":"(?:SAMSUNG-)?GT-S6810","model":"GALAXY FAME"},{"regex":"(?:SAMSUNG-)?GT-S7275","model":"GALAXY ACE 3"},{"regex":"(?:SAMSUNG-)?GT-S7390","model":"GALAXY Trend Lite"},{"regex":"(?:SAMSUNG-)?GT-S7500","model":"GALAXY ACE Plus"},{"regex":"(?:SAMSUNG-)?(?:GT-S7560|SCH-I699)","model":"GALAXY Trend"},{"regex":"(?:SAMSUNG-)?(?:GT-S7562|SCH-I919)","model":"GALAXY S DUOS"},{"regex":"(?:SAMSUNG-)?GT-S7582","model":"GALAXY S DUOS 2"},{"regex":"(?:SAMSUNG-)?SM-(?:G31[36]HU|G313HZ)","model":"GALAXY S DUOS 3"},{"regex":"(?:SAMSUNG-)?GT-S7580","model":"GALAXY Trend Plus"},{"regex":"(?:SAMSUNG-)?GT-S7710","model":"GALAXY Xcover 2"},{"regex":"(?:SAMSUNG-)?GT-S8500","model":"Wave"},{"regex":"(?:SAMSUNG-)?GT-S8530","model":"Wave II"},{"regex":"(?:SAMSUNG-)?GT-S8600","model":"Wave 3"},{"regex":"(?:SAMSUNG-)?GT-S5380","model":"Wave Y"},{"regex":"(?:SAMSUNG-)?GT-S7250","model":"Wave M"},{"regex":"(?:SAMSUNG-)?GT-S5250","model":"Wave 525"},{"regex":"(?:SAMSUNG-)?GT-S5330","model":"Wave 533"},{"regex":"(?:SAMSUNG-)?GT-S5780","model":"Wave 578"},{"regex":"(?:SAMSUNG-)?GT-S7230","model":"Wave 723"},{"regex":"(?:SAMSUNG-)?SM-(?:C101|C105([AL])?)","model":"GALAXY S4 zoom"},{"regex":"(?:SAMSUNG-)?SM-(?:C111(M)?|C115)","model":"GALAXY K zoom"},{"regex":"(?:SAMSUNG-)?SM-G350","model":"GALAXY CORE Plus"},{"regex":"(?:SAMSUNG-)?SM-G360[FH]?","model":"GALAXY CORE Prime"},{"regex":"(?:SAMSUNG-)?SM-G361[FH]?","model":"GALAXY CORE Prime Value Edition"},{"regex":"(?:SAMSUNG-)?SM-G386F","model":"GALAXY CORE LTE"},{"regex":"(?:SAMSUNG-)?SM-G3815","model":"GALAXY EXPRESS II"},{"regex":"(?:SAMSUNG-)?SM-G388F","model":"GALAXY Xcover 3"},{"regex":"(?:SAMSUNG-)?SM-G390F","model":"GALAXY Xcover 4"},{"regex":"(?:SAMSUNG-)?SM-G800","model":"GALAXY S5 mini"},{"regex":"(?:SAMSUNG-)?SM-G9009D","model":"GALAXY S5 Dual-SIM"},{"regex":"(?:SAMSUNG-)?SM-(?:G900|G906[KLS])|GALAXY-S5","model":"GALAXY S5"},{"regex":"(?:SAMSUNG-)?SM-G901F","model":"GALAXY S5 LTE+"},{"regex":"(?:SAMSUNG-)?SM-G870[AFW]","model":"GALAXY S5 Active"},{"regex":"(?:SAMSUNG-)?SM-G903[FMW]","model":"GALAXY S5 Neo"},{"regex":"(?:SAMSUNG-)?SM-G860P","model":"GALAXY S5 K Sport"},{"regex":"(?:SAMSUNG-)?SM-G920(?:F[DQ]|W8|[089AFIKLPRSTVX])","model":"GALAXY S6"},{"regex":"(?:SAMSUNG-)?SM-G890A","model":"GALAXY S5 Active"},{"regex":"404SC","model":"GALAXY S6 edge (Softbank)"},{"regex":"(?:SAMSUNG-)?SM-G925[0ADFIKLPRSTVW]|SCV31","model":"GALAXY S6 edge"},{"regex":"(?:SAMSUNG-)?SM-G928(?:7C|R4|W8|[07ACFGIKLPSTV])","model":"GALAXY S6 edge+"},{"regex":"(?:SAMSUNG-)?SM-G930(?:FD|W8|[0AFKLPRSTUV])","model":"GALAXY S7"},{"regex":"(?:SAMSUNG-)?SM-G935(?:R4|W8|[0AFKLPSTUVX])|SC-02H|SCV33","model":"GALAXY S7 edge"},{"regex":"(?:SAMSUNG-)?SM-G891A","model":"GALAXY S7 active"},{"regex":"(?:SAMSUNG-)?SM-G950[08FNUW]?|SCV36","model":"GALAXY S8"},{"regex":"(?:SAMSUNG-)?SM-G892[AU]","model":"GALAXY S8 Active"},{"regex":"(?:SAMSUNG-)?SM-G955[AFKLNPRTUVW0]|SCV35","model":"GALAXY S8+"},{"regex":"(?:SAMSUNG-)?SM-G960[FNUWX0]|SCV38","model":"GALAXY S9"},{"regex":"(?:SAMSUNG-)?SM-G965[FNUWX0]|SCV39","model":"GALAXY S9+"},{"regex":"(?:SAMSUNG-)?SM-G973","model":"GALAXY S10"},{"regex":"(?:SAMSUNG-)?SM-G975[0FUW]","model":"GALAXY S10+"},{"regex":"(?:SAMSUNG-)?SM-G970[FU]","model":"GALAXY S10e"},{"regex":"(?:SAMSUNG-)?SCH-I200","model":"GALAXY Stellar"},{"regex":"(?:SAMSUNG-)?SCH-I829","model":"GALAXY Style Duos"},{"regex":"(?:SAMSUNG-)?(?:SGH-S730|SCH-R740)","model":"GALAXY Discover"},{"regex":"(?:SAMSUNG-)?SCH-S738","model":"GALAXY Centura"},{"regex":"vollo Vi86[);/ ]","model":"Vollo Vi86"},{"regex":"(?:SAMSUNG-)?SM-A300(?:FU|YZ|[0FGHMY])","model":"GALAXY A3 (2015)"},{"regex":"(?:SAMSUNG-)?SM-A310(?:N0|[FMY])","model":"GALAXY A3 (2016)"},{"regex":"(?:SAMSUNG-)?SM-A320(?:FL|F|Y)","model":"GALAXY A3 (2017)"},{"regex":"(?:SAMSUNG-)?SM-A500[LSWY]","model":"GALAXY A5"},{"regex":"(?:SAMSUNG-)?SM-A500[FGHKM0]","model":"GALAXY A5 Duos"},{"regex":"(?:SAMSUNG-)?SM-A500FU","model":"GALAXY A5 (2015)"},{"regex":"(?:SAMSUNG-)?SM-A510[0FKLMSY]","model":"GALAXY A5 (2016)"},{"regex":"(?:SAMSUNG-)?SM-A520[FKLSW]","model":"GALAXY A5 (2017)"},{"regex":"(?:SAMSUNG-)?SM-A600(?:AZ|FN|GN|T1|[AFGNPT])","model":"GALAXY A6"},{"regex":"(?:SAMSUNG-)?SM-A605(?:[FG]N|[FG])","model":"GALAXY A6+"},{"regex":"(?:SAMSUNG-)?SM-A700(?:YD|[0FHKLS])","model":"GALAXY A7"},{"regex":"(?:SAMSUNG-)?SM-A710[08FKLMSY]","model":"GALAXY A7 (2016)"},{"regex":"(?:SAMSUNG-)?SM-A720[FS]","model":"GALAXY A7 (2017)"},{"regex":"(?:SAMSUNG-)?SM-A750(?:GN|[FG])","model":"GALAXY A7 (2018)"},{"regex":"(?:SAMSUNG-)?SM-A(?:530F|800[0FISY])|SCV32","model":"GALAXY A8"},{"regex":"(?:SAMSUNG-)?SM-G885[FSY]","model":"GALAXY A8 Star"},{"regex":"(?:SAMSUNG-)?SM-A810(?:YZ|[FS])","model":"GALAXY A8 (2016)"},{"regex":"(?:SAMSUNG-)?SM-A530[NW]","model":"GALAXY A8 (2018)"},{"regex":"(?:SAMSUNG-)?SM-A730F","model":"GALAXY A8+ (2018)"},{"regex":"(?:SAMSUNG-)?SM-A9000","model":"GALAXY A9"},{"regex":"SM-A9\\\\[7\\\\]","model":"GALAXY A9 7"},{"regex":"(?:SAMSUNG-)?SM-A920F","model":"GALAXY A9 (2018)"},{"regex":"(?:SAMSUNG-)?SM-A910[0F]","model":"GALAXY A9 Pro"},{"regex":"(?:SAMSUNG-)?SM-A105[FGM]","model":"GALAXY A10"},{"regex":"(?:SAMSUNG-)?SM-A205[FG]","model":"GALAXY A20"},{"regex":"(?:SAMSUNG-)?SM-A202[FG]","model":"GALAXY A20e"},{"regex":"(?:SAMSUNG-)?SM-A305(?:FN|GT|[FG])","model":"GALAXY A30"},{"regex":"(?:SAMSUNG-)?SM-A405FN","model":"GALAXY A40"},{"regex":"(?:SAMSUNG-)?SM-A3051","model":"GALAXY A40s"},{"regex":"(?:SAMSUNG-)?SM-A505(?:FN|[FG])","model":"GALAXY A50"},{"regex":"(?:SAMSUNG-)?SM-A705(?:FN|[FG])","model":"GALAXY A70"},{"regex":"(?:SAMSUNG-)?GT-I9301I","model":"GALAXY S III Neo"},{"regex":"(?:SAMSUNG-)?SM-J100(?:FN|MU|[FHM])","model":"GALAXY J1"},{"regex":"(?:SAMSUNG-)?SM-J105(?:B|H)","model":"GALAXY J1 mini"},{"regex":"(?:SAMSUNG-)?SM-J106M","model":"GALAXY J1 mini Prime"},{"regex":"(?:SAMSUNG-)?SM-J120[AFHMT]","model":"GALAXY J1 (2016)"},{"regex":"(?:SAMSUNG-)?SM-J110[FHML]","model":"GALAXY J1 Ace"},{"regex":"(?:SAMSUNG-)?SM-J111[FM]","model":"GALAXY J1 Ace"},{"regex":"(?:SAMSUNG-)?SM-J200[FGHY]","model":"GALAXY J2"},{"regex":"(?:SAMSUNG-)?SM-J(?:210F|250[FM])","model":"GALAXY J2 Pro"},{"regex":"(?:SAMSUNG-)?SM-J320(?:FN|[AFGHMNPV])","model":"GALAXY J3 (2016)"},{"regex":"(?:SAMSUNG-)?SM-J330(?:F|G)","model":"GALAXY J3 (2017)"},{"regex":"(?:SAMSUNG-)?SM-J337W","model":"GALAXY J3 (2018)"},{"regex":"(?:SAMSUNG-)?SM-J400[FGM]","model":"GALAXY J4"},{"regex":"(?:SAMSUNG-)?SM-J500(?:F|FN|G|Y|M|H)","model":"GALAXY J5 (2015)"},{"regex":"(?:SAMSUNG-)?SM-J510(?:F|FN|MN)","model":"GALAXY J5 (2016)"},{"regex":"(?:SAMSUNG-)?SM-J530","model":"GALAXY J5 (2017)"},{"regex":"(?:SAMSUNG-)?SM-G570[FMY]","model":"GALAXY J5 Prime"},{"regex":"(?:SAMSUNG-)?SM-J600[FG]","model":"GALAXY J6"},{"regex":"(?:SAMSUNG-)?SM-J610[GF]","model":"GALAXY J6+"},{"regex":"(?:SAMSUNG-)?SM-J410F","model":"GALAXY J4 Core"},{"regex":"(?:SAMSUNG-)?SM-J415(?:F|FN)","model":"GALAXY J4+"},{"regex":"(?:SAMSUNG-)?SM-J7[01]0(?:8|F|FN|H|K|M|MN)","model":"GALAXY J7"},{"regex":"(?:SAMSUNG-)?SM-J700P","model":"GALAXY J7 (2015)"},{"regex":"(?:SAMSUNG-)?SM-J737U","model":"GALAXY J7 (2018)"},{"regex":"(?:SAMSUNG-)?SM-J700(?:T1|T)","model":"GALAXY J7 (2016)"},{"regex":"(?:SAMSUNG-)?SM-C710F","model":"GALAXY J7+ (C7)"},{"regex":"(?:SAMSUNG-)?SM-G610[FMY]","model":"GALAXY J7 Prime"},{"regex":"(?:SAMSUNG-)?SM-G611(?:FF|MT|M)","model":"GALAXY J7 Prime 2"},{"regex":"(?:SAMSUNG-)?SM-G615[F]","model":"GALAXY J7 Max"},{"regex":"(?:SAMSUNG-)?SM-J730(?:F|G|GM)","model":"GALAXY J7 Pro"},{"regex":"(?:SAMSUNG-)?SM-J701(?:F|M)","model":"GALAXY J7 Core"},{"regex":"(?:SAMSUNG-)?SM-J727(?:P|T|V)","model":"GALAXY J7 V"},{"regex":"SM-J7\\\\[7\\\\]","model":"GALAXY J7 7"},{"regex":"(?:SAMSUNG-)?SM-J810","model":"GALAXY J8"},{"regex":"SM-J8 Pro","model":"GALAXY J8 Pro"},{"regex":"SM-J9\\\\[7\\\\] Prime","model":"GALAXY J9 7 Prime"},{"regex":"SM-J9\\\\[8\\\\] Pro","model":"GALAXY J9 8 Pro"},{"regex":"(?:SAMSUNG-)?SM-M105F","model":"GALAXY M10"},{"regex":"(?:SAMSUNG-)?SM-M205[FG]","model":"GALAXY M20"},{"regex":"(?:SAMSUNG-)?SM-G850F","model":"GALAXY Alpha"},{"regex":"(?:SAMSUNG-)?SM-G910S","model":"GALAXY Round"},{"regex":"(?:SAMSUNG-)?SM-(?:G550FY|G5510|G5520)","model":"GALAXY On5"},{"regex":"(?:SAMSUNG-)?SM-G600(?:FY|[0F])","model":"GALAXY On7"},{"regex":"(?:SAMSUNG-)?SM-G610[0KLS]","model":"GALAXY On7 (2016)"},{"regex":"(?:SAMSUNG-)?SM-G611[FS]","model":"GALAXY On7 Prime"},{"regex":"(?:SAMSUNG-)?SM-C5000","model":"GALAXY C5"},{"regex":"(?:SAMSUNG-)?SM-C501[08]","model":"GALAXY C5 Pro"},{"regex":"(?:SAMSUNG-)?SM-C7000","model":"GALAXY C7"},{"regex":"(?:SAMSUNG-)?SM-C701[08F]","model":"GALAXY C7 Pro"},{"regex":"(?:SAMSUNG-)?SM-C710[08]","model":"GALAXY C8"},{"regex":"(?:SAMSUNG-)?SM-C900[08FY]","model":"GALAXY C9 Pro"},{"regex":"(?:SAMSUNG-)?SM-Z130H","model":"GALAXY Z1"},{"regex":"(?:SAMSUNG-)?SM-Z200[FMY]","model":"GALAXY Z2"},{"regex":"(?:SAMSUNG-)?SM-Z300H","model":"GALAXY Z3"},{"regex":"(?:SAMSUNG-)?SM-Z400[FY]","model":"GALAXY Z4"},{"regex":"(?:SAMSUNG-)?SM-G150","model":"GALAXY Folder"},{"regex":"(?:SAMSUNG-)?SM-G165","model":"GALAXY Folder 2"},{"regex":"(?:SAMSUNG-)?GT-I9060","model":"GALAXY Grand Neo","device":"phablet"},{"regex":"(?:SAMSUNG-)?GT-I9063","model":"GALAXY Grand Neo Duos","device":"phablet"},{"regex":"(?:SAMSUNG-)?GT-I9(?:080|128)","model":"GALAXY Grand","device":"phablet"},{"regex":"(?:SAMSUNG-)?GT-I9168","model":"GALAXY Grand Neo+","device":"phablet"},{"regex":"(?:SAMSUNG-)?GT-I9082","model":"GALAXY Grand Duos","device":"phablet"},{"regex":"(?:SAMSUNG-)?GT-N7000","model":"GALAXY Note","device":"phablet"},{"regex":"(?:SAMSUNG-)?(?:(?:GT-)?N7100|SCH-I605|SCH-N719|SCH-R950|SPH-L900)","model":"GALAXY Note II","device":"phablet"},{"regex":"(?:SAMSUNG-)?GT-N7105","model":"GALAXY Note II LTE","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-G710[25L]?","model":"GALAXY Grand 2","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-G720(?:AX|N0|2)","model":"GALAXY Grand Max"},{"regex":"(?:SAMSUNG-)?SM-G53(?:0F|0FZ|0Y|0H|0FZ|1F|1H)","model":"GALAXY Grand Prime","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-G532F","model":"GALAXY Grand Prime Plus","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-G532MT","model":"GALAXY J2 Prime (TV)","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-G532[MG]","model":"GALAXY J2 Prime","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-N7502","model":"GALAXY Note 3 Neo Duos","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-N750[L50]?","model":"GALAXY Note 3 Neo","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-N9002","model":"GALAXY Note 3 Duos","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-N900(?:[05689][VQ]?|[AKLPSTV]|W8)?","model":"GALAXY Note 3","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-N910|N9100","model":"GALAXY Note 4","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-N915","model":"GALAXY Note 4 Edge","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-N920[0ACGIKLST]","model":"GALAXY Note 5","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-N9208","model":"GALAXY Note 5 Duos","device":"phablet"},{"regex":"(?:SAMSUNG-)?SM-G750(?:8Q|[9AFH])","model":"GALAXY Mega 2","device":"phablet"},{"regex":"(?:SAMSUNG-)?GT-I915[028]","model":"GALAXY Mega 5.8","device":"phablet"},{"regex":"(?:SAMSUNG-)?GT-I920[05]","model":"GALAXY Mega 6.3","device":"phablet"},{"regex":"(?:SAMSUNG-)?(?:SM-N930F|SCV34)","model":"GALAXY Note 7","device":"phablet"},{"regex":"(?:SAMSUNG[- ])?SM-N950|SCV37","model":"GALAXY Note 8","device":"phablet"},{"regex":"(?:SAMSUNG[- ])?SM-N960","model":"GALAXY Note 9","device":"phablet"},{"regex":"(?:SAMSUNG[- ])?SM-N970(?:0|8|9|D|F|J|K|L|S|U1|U|W8|X)","model":"GALAXY Note 10","device":"phablet"},{"regex":"(?:SAMSUNG[- ])?(?:SM-N975(?:0|F|U|U1|W|X|Xu)|SM-N976[BV])","model":"GALAXY Note 10+","device":"phablet"},{"regex":"(?:SAMSUNG-)?GT-E2152","model":"E2152","device":"feature phone"},{"regex":"(?:SAMSUNG-)?(GT-(P|N8|N5)[0-9]+[a-z]?)","device":"tablet","model":"$1"},{"regex":"SC-02C","model":"GALAXY S II"},{"regex":"SC-01F","model":"GALAXY Note 3","device":"phablet"},{"regex":"SC-04E","model":"GALAXY S4"},{"regex":"(?:SAMSUNG-)?((?:SM-[TNP]|GT-P)[a-z0-9_\\\\-]+)","device":"tablet","model":"$1"},{"regex":"((?:SCH|SGH|SPH|SHV|SHW|GT|SM)-[a-z0-9_\\\\-]+)","model":"$1"},{"regex":"SMART-TV","device":"tv","model":"Smart TV"},{"regex":"Galaxy ([^/;]+) Build","model":"GALAXY $1"},{"regex":"Galaxy ([a-z0-9]+)","model":"GALAXY $1"},{"regex":"SAMSUNG[\\\\-][ ]?([a-z0-9]+[\\\\-_][a-z0-9]+)","model":"$1"},{"regex":"SAMSUNG;[ ]?([a-z0-9]+[\\\\-_][a-z0-9]+)","model":"$1"},{"regex":"SAMSUNG[ _/\\\\-]?([a-z0-9\\\\-]+)","model":"$1"},{"regex":"SAMSUNG;[ ]?([a-z0-9 ]+)","model":"$1"},{"regex":"SEC-([a-z0-9]+)","model":"$1"},{"regex":"SAM-([a-z0-9]+)","model":"SCH-$1"},{"regex":"(?:portalmmm|o2imode)/2\\\\.0 ([SZ][a-z0-9]+)","model":"$1"},{"regex":"sam([rua][0-9]+)","model":"SCH-$1"}]},"Sanei":{"regex":"(?:8312D|G(60[25]|70[3568]G?|785|803)|N83(?:-2cpu)?|N91) Build","device":"smartphone","models":[{"regex":"N83","model":"N83"},{"regex":"N91","model":"N91"},{"regex":"8312D","model":"G101"},{"regex":"G(60[25]|70[3568]G?|785|803)","model":"G$1"}]},"Selfix":{"regex":"SELFIX","device":"smartphone","models":[{"regex":"SELFIX_SLASH6","model":"Slash 6"},{"regex":"VOYAGER-V45","model":"Voyager V45"}]},"Sencor":{"regex":"Sencor|ELEMENT[ _]?(?:7|8|9\\\\.7|10[ _]1)(?:[ _]?V[23])?[);/ ]|ELEMENT[ _]?(?:P[0-9]+)[);/ ]","device":"tablet","models":[{"regex":"(?:SENCOR[ _])?ELEMENT[ _]?7[ _]?V3","model":"Element 7 V3"},{"regex":"(?:SENCOR[ _])?ELEMENT[ _]?7[ _]?V2[ _]BASIC","model":"Element 7 V2 Basic"},{"regex":"(?:SENCOR[ _])?ELEMENT[ _]?7[ _]?V2","model":"Element 7 V2"},{"regex":"(?:SENCOR[ _])?ELEMENT[ _]8[ _]?V3","model":"Element 8 V3"},{"regex":"(?:SENCOR[ _])?ELEMENT[ _]8[ _]?V2","model":"Element 8 V2"},{"regex":"(?:SENCOR[ _])?ELEMENT8","model":"Element 8"},{"regex":"(?:SENCOR[ _])?ELEMENT[ _]9\\\\.7[ _]?V3","model":"Element 9.7 V3"},{"regex":"(?:SENCOR[ _])?ELEMENT[ _]9\\\\.7[ _]?V2","model":"Element 9.7 V2"},{"regex":"(?:SENCOR[ _])?ELEMENT[ _]9\\\\.7","model":"Element 9.7"},{"regex":"(?:SENCOR[ _])?ELEMENT10[ _]1","model":"Element 10.1"},{"regex":"(?:SENCOR[ _])?ELEMENT[ _]?P([0-9]+)","model":"Element P$1","device":"smartphone"},{"regex":"Sencor[ _]([^;/]+) Build","model":"$1"}]},"Senwa":{"regex":"Senwa|(?:S\\\\-?(?:471|7[12]5|6[01]5|915|905TL|1000)|V705B)[ /;\\\\)]","device":"smartphone","models":[{"regex":"S\\\\-?471[ /;\\\\)]","model":"Jazz"},{"regex":"S\\\\-?605[ /;\\\\)]","model":"City"},{"regex":"S\\\\-?905TL[ /;\\\\)]","model":"Odin"},{"regex":"S\\\\-?1000[ /;\\\\)]","model":"Odin"},{"regex":"S\\\\-?(615|7[12]5|915)[ /;\\\\)]","model":"S$1"},{"regex":"V705B[ /;\\\\)]","model":"V705B"},{"regex":"Senwa[ _-]*([^;/]+) Build","model":"$1"},{"regex":"Senwa[ _-]*([^ ;/)]+)[ ;/)]","model":"$1"}]},"Sky":{"regex":"(SKY|Elite|Fuego)[_ ][3-7]\\\\.[05]([A-Z]{1,2})?|Elite_5_5_Octa|Platinum_(5.0M|M5)","device":"smartphone","models":[{"regex":"Platinum_(5.0M|M5)","model":"Platinum 5.0M"},{"regex":"Elite_5_5_Octa","model":"Elite 5.5 Octa"},{"regex":"Elite[_ ]([3-7]\\\\.[05](?:[A-Z]{1,2})?\\\\+?)","model":"Elite $1"},{"regex":"Fuego[_ ]([3-7]\\\\.[05](?:[A-Z]{1,2})?\\\\+?)","model":"Fuego $1"},{"regex":"SKY[_ ]([3-7]\\\\.[05](?:[A-Z]{1,2})?)","model":"$1"}]},"Skyworth":{"regex":"Sky_?worth","device":"tv","models":[{"regex":"Sky_?worth ([^;/]+) Build","model":"$1"}]},"Smartfren":{"regex":"Smartfren|Androtab|Andromax|PD6D1J|AD682J|AD68[89]G|AD6B1H|AD9A1H|AD682H|AD683G","device":"smartphone","models":[{"regex":"S7 Build","model":"Andromax Tab 7.0","device":"tablet"},{"regex":"PD6D1J","model":"Andromax V3s"},{"regex":"AD682J","model":"Andromax T"},{"regex":"AD688G","model":"Andromax C2"},{"regex":"AD689G","model":"Andromax i3"},{"regex":"AD682H","model":"Andromax i3s"},{"regex":"AD6B1H","model":"Andromax G2 Hot"},{"regex":"AD9A1H","model":"Andromax G2"},{"regex":"AD683G","model":"Andromax I"},{"regex":"New Andromax-i","model":"New Andromax I"},{"regex":"Andromax[ _\\\\-]([^/;]+) Build","model":"Andromax $1"},{"regex":"Andromax[ _\\\\-]([a-z0-9]+)","model":"Andromax $1"},{"regex":"Smartfren[ _\\\\-]([^/;\\\\)]+)(?: Build|[/;\\\\)])","model":"$1"},{"regex":"(Androtab[^/;]+) Build","model":"$1","device":"tablet"}]},"Smartisan":{"regex":"SM(?:70[15]|801|901|919)|OD10[35]|YQ60[1357][ /;\\\\)]","device":"smartphone","models":[{"regex":"SM70[15]","model":"T1"},{"regex":"SM801","model":"T2"},{"regex":"SM901","model":"M1"},{"regex":"SM919","model":"M1L"},{"regex":"YQ60[1357]","model":"U1"},{"regex":"OD10[35]","model":"Pro"}]},"STF Mobile":{"regex":"Fractal|AERIAL PLUS|Origins Pro","device":"smartphone","models":[{"regex":"Fractal","model":"Fractal"},{"regex":"Origins Pro","model":"Origins Pro"},{"regex":"AERIAL PLUS","model":"Aerial Plus"}]},"STK":{"regex":"STK[_ ]","device":"smartphone","models":[{"regex":"STK[_ ]([^/;]+) Build","model":"$1"},{"regex":"STK[_ ]([a-z0-9]+)","model":"$1"}]},"Stonex":{"regex":"STX[ -]([^;/]+)","device":"smartphone","models":[{"regex":"STX[ -]([^;/]+) Build","model":"$1"},{"regex":"STX[ -]([a-z0-9_-]+)","model":"$1"}]},"SuperSonic":{"regex":"(SC-[0-9]+[a-z]+)","device":"tablet","model":"$1"},"Supra":{"regex":"SUPRA ([^;/]+) Build|NVTAB 7.0 3G","device":"smartphone","models":[{"regex":"SUPRA ([^;/]+) Build","device":"tablet","model":"$1"},{"regex":"(NVTAB 7.0 3G)","device":"tablet","model":"$1"}]},"Sumvision":{"regex":"(Cyclone [^/;]+) Build","device":"tablet","model":"$1"},"SunVan":{"regex":"SUNVAN[ _\\\\-]","device":"smartphone","models":[{"regex":"SUNVAN[ _\\\\-]?([^/;]+) Build","model":"$1"},{"regex":"SUNVAN[ _\\\\-]?([^);/ ]+)","model":"$1"}]},"SWISSMOBILITY":{"regex":"SCHR9GR|ZUR722M","device":"smartphone","models":[{"regex":"SCHR9GR","model":"SCHON R9"},{"regex":"ZUR722M","device":"phablet","model":"Z72 go"}]},"Thomson":{"regex":"(?:Primo(7|8)|QM73[45]-8G|QM734-2|QM736-8G\\\\(HD\\\\)|8950|MID1002)[);/ ]|(?:Tlink|Every)[0-9]+","device":"tablet","models":[{"regex":"Primo(7|8)","model":"Primo $1"},{"regex":"QM734-2","model":"QM734-2"},{"regex":"QM734-8G","model":"QM734-8G"},{"regex":"QM735-8G","model":"QM735-8G"},{"regex":"QM736-8G\\\\(HD\\\\)","model":"QM736-8G (HD)"},{"regex":"8950 Build","model":"3G 8950"},{"regex":"Tlink([0-9]+)","device":"smartphone","model":"Tlink$1"},{"regex":"Every([0-9]+)","device":"smartphone","model":"Every$1"}]},"Pantech":{"regex":"Pantech|P[GN]-|PT-[a-z0-9]{3,}|TX[T]?[0-9]+|IM-[a-z0-9]+[);/ ]|ADR910L","device":"smartphone","models":[{"regex":"ADR910L","model":"Star Q"},{"regex":"IM-A870K","model":"Vega Iron"},{"regex":"Pantech[ \\\\-]?([a-z0-9]+)","model":"$1"},{"regex":"Pantech_([a-z0-9\\\\-]+)","model":"$1"},{"regex":"(P[GTN]-[a-z0-9]+)","model":"$1"},{"regex":"(TX[T]?[0-9]+)","model":"$1"},{"regex":"(IM-[a-z0-9]+)[);/ ]","model":"$1"}]},"Ployer":{"regex":"MOMO([0-9]|miniS)","device":"tablet","models":[{"regex":"MOMOminiS","model":"MOMO mini S"},{"regex":"MOMO([0-9][^);/]*) Build","model":"MOMO $1"},{"regex":"MOMO([0-9][^);/]*)[);/]","model":"MOMO $1"}]},"Plum":{"regex":"PLUM ","device":"smartphone","models":[{"regex":"Z405","model":"Gator 3"}]},"Polaroid":{"regex":"Polaroid|(?:PMID|MIDC)[0-9a-z]+[);/ ]|MID(?:1014|0714)|PRO[VG]?(?:[0-9]{3,}[a-z]*|[0-9]{2}[a-z])|P(400[56]|4526|500[56]|502[56]|504[67]|552[56])A|PSPC(505|550)|PSPCK21NA|PSPCL20A0|PSPCM20A0|PSPCZ20A0","device":"smartphone","models":[{"regex":"P4005A","model":"Turbo C4"},{"regex":"P5005A","model":"Turbo C5"},{"regex":"P4006A","model":"Turbo D4"},{"regex":"P4526A","model":"Turbo E"},{"regex":"PSPC(505|550)","model":"Cosmo $1"},{"regex":"P5006A","model":"Cosmo K"},{"regex":"P5526A","model":"Cosmo K Plus"},{"regex":"PSPCK21NA","model":"Cosmo K2 Plus"},{"regex":"P5026A","model":"Cosmo L"},{"regex":"PSPCL20A0","model":"Cosmo L2"},{"regex":"PSPCM20A0","model":"Cosmo M2"},{"regex":"P5046A","model":"Cosmo P5s"},{"regex":"P5525A","model":"Cosmo Q5s"},{"regex":"P5047A","model":"Cosmo Z"},{"regex":"PSPCZ20A0","model":"Cosmo Z2"},{"regex":"P5025A","model":"L5s"},{"regex":"PRO4611(?:PR201)?","model":"Pro4611"},{"regex":"PROV400","model":"Agate"},{"regex":"PROV350","model":"ProV350"},{"regex":"PRO([VG]?(?:[0-9]{3,}[a-z]*|[0-9]{2}[a-z]))","model":"Pro$1"},{"regex":"(MID(?:1014|0714))","model":"$1","device":"tablet"},{"regex":"((?:PMID|MIDC)[0-9a-z]+)[);/ ]","model":"$1","device":"tablet"},{"regex":"Polaroid","model":"","device":"tablet"}]},"PolyPad":{"regex":"POLY ?PAD","device":"tablet","models":[{"regex":"POLY ?PAD[_ \\\\.]([a-z0-9]+)[);/ ]","model":"$1"},{"regex":"POLY ?PAD[_\\\\.]([a-z0-9]+)","model":"$1"}]},"Polytron":{"regex":"POLYTRON|W8480|W7430|PW1100S|W7550|W7531|W8570|R2401","device":"smartphone","models":[{"regex":"R2508","model":"Rocket"},{"regex":"POLYTRON[ _]R1500","model":"Rocket Q-Five"},{"regex":"R2401","model":"Rocket 2X"},{"regex":"POLYTRON[ _-]R2402","model":"Rocket R2402"},{"regex":"POLYTRON[ _-]R2403","model":"Rocket R1"},{"regex":"POLYTRON[ _-]R2406","model":"Rocket R2"},{"regex":"POLYTRON[ _-]R2407","model":"Rocket R3"},{"regex":"POLYTRON[ _-]R2457","model":"Rocket S2"},{"regex":"POLYTRON[ _-]R2509SE","model":"Rocket T6 SE"},{"regex":"POLYTRON[ _-]R2509","model":"Rocket T6"},{"regex":"POLYTRON[ _-]R2506","model":"Rocket T4"},{"regex":"POLYTRON[ _-]R3450","model":"Rocket Jetz"},{"regex":"POLYTRON[ _-]R3500","model":"Rocket Jetz 5.0"},{"regex":"4G450","model":"Zap 5"},{"regex":"W6500","model":"Quadra Rocket"},{"regex":"W7452","model":"Quadra S2"},{"regex":"W7550","model":"Quadra V5"},{"regex":"W8570","model":"Quadra V7"},{"regex":"POLYTRON[ _]L501","model":"Rocket L501"},{"regex":"POLYTRON[ _]P520","model":"Prime 7S"},{"regex":"4G500","model":"Zap 6 Cleo"},{"regex":"W8480","model":"Crystal 4 W8480"},{"regex":"W7531","model":"Wizard V"},{"regex":"W7430","model":"Quadra Mini W7430"},{"regex":"POLYTRON[ _]4G501","model":"Zap 6 Posh"},{"regex":"POLYTRON[ _]4G502","model":"Zap 6 Power"},{"regex":"POLYTRON[ _]4G503","model":"Zap 6 Flaz"},{"regex":"POLYTRON[_ ]?[ _]4G550","model":"Zap 6 Note"},{"regex":"POLYTRON[ _]4G551","model":"Zap 6 Posh Note"},{"regex":"PW1100S","model":"PW1100S"},{"regex":"Q2352","model":"Q2352"},{"regex":"POLYTRON[ _]T7800","model":"Cosmica T7800","device":"tablet"},{"regex":"POLYTRON[ _]T7700","model":"Rocket Pad","device":"tablet"}]},"Positivo":{"regex":"YPY_S450","device":"smartphone","models":[{"regex":"YPY_S450","model":"YPY S450"}]},"Prestigio":{"regex":"(?:PMP|PAP|PMT|PSP)[0-9]+[a-z0-9_]+[);/ ]","device":"tablet","models":[{"regex":"PMT3277_3G","model":"MultiPad Ranger 7.0 3G"},{"regex":"PMT3201_4G","model":"Grace 4G"},{"regex":"PMT3287_3G","model":"MultiPad Ranger 8.0 3G"},{"regex":"PSP7546DUO([ _][A-Z]{2})?","model":"X Pro"},{"regex":"PSP7610DUO([ _][A-Z]{2})?","model":"S Max"},{"regex":"(PM[PT][0-9]+[a-z0-9_]+)[);/ ]","model":"$1"},{"regex":"((?:PAP|PSP)[0-9]+[a-z0-9_]+(?: DUO)?)[);/ ]","model":"$1","device":"smartphone"}]},"Sanyo":{"regex":"Sanyo|MobilePhone[ ;]","device":"feature phone","models":[{"regex":"SCP-?6750","model":"Katana Eclipse X"},{"regex":"SCP-?6760","model":"Incognito"},{"regex":"SCP-?6780","model":"Innuendo"},{"regex":"SANYO[ \\\\-_]([a-z0-9\\\\-]+)","model":"$1"},{"regex":"MobilePhone ([a-z0-9\\\\-]+)","model":"$1"}]},"Qilive":{"regex":"Qilive [0-9][^;/]*|Q(8S55IN4G2|10S5[37]IN4G|10S5IN4GR|10S6IN4G|6T7IN)","device":"smartphone","models":[{"regex":"Q8S55IN4G2","model":"Q8 5.5\\" 4G"},{"regex":"Q10S53IN4G","model":"Q10 5.3\\" 4G"},{"regex":"Q10S57IN4G","model":"Q10 5.7\\" 4G"},{"regex":"Q10S5IN4GR","model":"Q10 5.0\\" 4G"},{"regex":"Q10S6IN4G","model":"Q10 6.0\\" 4G"},{"regex":"Q6T7IN","model":"Q6","device":"tablet"},{"regex":"Qilive ([0-5][^;/]*) Build","model":"$1"},{"regex":"Qilive ([0-5][^;/]*)/","model":"$1"},{"regex":"Qilive ([6-9][^;/]*) Build","model":"$1","device":"tablet"},{"regex":"Qilive ([6-9][^;/]*)/","model":"$1","device":"tablet"}]},"QMobile":{"regex":"QMobile|QTab|Q-Smart|Noir X1S|LUNA PRO|NICE S","device":"smartphone","models":[{"regex":"QTab[ _-]([^;/]+) Build","model":"$1 Tab","device":"tablet"},{"regex":"QTab[ _-]([^;/)]+)[;/)]","model":"$1 Tab","device":"tablet"},{"regex":"(?:QMobile|Q-Smart)[ _-]([^;/]+) Build","model":"$1"},{"regex":"(?:QMobile|Q-Smart)[ _-]([^;/)]+)[;/)]","model":"$1"},{"regex":"Noir X1S","model":"Noir X1S"},{"regex":"LUNA PRO","model":"Luna Pro"},{"regex":"NICE S","model":"Nice S"}]},"Quantum":{"regex":"Quantum (Fit|Mini|V|You E)","device":"smartphone","models":[{"regex":"Quantum (Fit|Mini|V|You E)","model":"$1"}]},"Quechua":{"regex":"Quechua Phone 5","device":"smartphone","model":"Quechua Phone 5"},"Ramos":{"regex":"Ramos ?([^/;]+) Build","device":"tablet","model":"$1"},"Sendo":{"regex":"Sendo([a-z0-9]+)","device":"feature phone","model":"$1"},"Turbo-X":{"regex":"Turbo-X","device":"smartphone","models":[{"regex":"Turbo-X Ice[);/ ]","device":"tablet","model":"Ice"},{"regex":"Turbo-X Tablet([^;/]+) Build","device":"tablet","model":"Tablet$1"},{"regex":"Turbo-X ([^;/]+) Build","model":"$1"}]},"Silent Circle":{"regex":"Blackphone 2","device":"smartphone","model":"Blackphone 2"},"Sigma":{"regex":"Sigma|(X-Style[ _]?Tab[_ ]A([0-9]{2,3})|X[-_ ]?treme[-_ ]?PQ[0-9]{2})[);/ ]","device":"smartphone","models":[{"regex":"X[-_ ]?treme[-_ ]?PQ([0-9]{2})[);/ ]","model":"X-Treme PQ$1"},{"regex":"X-Style[ _]?Tab[_ ]A([0-9]{2,3})[);/ ]","model":"X-Style Tab A$1","device":"tablet"}]},"Spice":{"regex":"Spice","device":"smartphone","models":[{"regex":"Spice[ _\\\\-]?([^/;]+)(?:[\\\\)]| Build)","model":"$1"},{"regex":"Spice[ _\\\\-]?([^/;]+)(?:/|$)","model":"$1"}]},"Sharp":{"regex":"SHARP|SBM|SH-?[0-9]+[a-z]?[);/ ]|SH-Z10|AQUOS|506SH|SHL22|FS80(1[08]|32|28|0[29])[);/ ]|TG-L900S","device":"smartphone","models":[{"regex":"506SH","model":"Aquos Xx3"},{"regex":"SH-Z10","model":"Aquos zero"},{"regex":"SH-02E","model":"Aquos Phone Zeta"},{"regex":"SH06D","model":"Aquos Phone SH-06D"},{"regex":"SHL22","model":"Aquos Phone SHL22"},{"regex":"FS8010","model":"Aquos S2"},{"regex":"FS8032","model":"Aquos S3"},{"regex":"FS8018","model":"Aquos S3 Mini"},{"regex":"TG-L900S","model":"Luna S"},{"regex":"FS8002","model":"Z2"},{"regex":"FS8009","model":"Z3"},{"regex":"FS8028","model":"R1S"},{"regex":"SH-08E","device":"tablet","model":"Sharp Aquos Pad"},{"regex":"(LC-(?:[0-9]{2})[a-z0-9]+)(?:[);/ ]|$)","device":"tv","model":"$1"},{"regex":"SHARP-AQUOS|AQUOSBrowser","device":"tv","model":"Aquos Net Plus"},{"regex":"SHARP[ \\\\-]([a-z0-9\\\\-]+)","model":"$1"},{"regex":"(?:SHARP|SBM)([a-z0-9]+)","model":"$1"},{"regex":"(SH-?[0-9]+[a-z]?)[);/ ]","model":"$1"}]},"Softbank":{"regex":"Softbank|J-PHONE","device":"smartphone","models":[{"regex":"Softbank/[12]\\\\.0/([a-z0-9]+)","model":"$1"},{"regex":"([a-z0-9]+);Softbank;","model":"$1"},{"regex":"J-PHONE/[0-9]\\\\.[0-9]/([a-z0-9\\\\-]+)","model":"$1"}]},"Sonim":{"regex":"Sonim[ -]|XP[67]700[);/ ]","device":"smartphone","models":[{"regex":"Sonim-XP3400","model":"XP3400","device":"feature phone"},{"regex":"XP6700[);/ ]","model":"XP6700"},{"regex":"XP7700[);/ ]","model":"XP7700"}]},"Star":{"regex":"N(9[5678]00|8800|9000|9977)[);/ ]","device":"smartphone","models":[{"regex":"N9000","model":"Note 3"},{"regex":"N(9[5678]00|8800|9977)[);/ ]","model":"N$1"}]},"Amazon":{"regex":"KF(?:OT|TT|JWI|JWA|[DFS]OWI|A[PRSU]WI|T[BH]WI|SAW[IA]|GIWI|SUWI)[);/ ]|Kindle|Silk/\\\\d+\\\\.\\\\d+|Amazon (?:Tate|Jem)|AFT[BMST]|SD4930UR","device":"tablet","models":[{"regex":"AFTB","model":"Fire TV","device":"tv"},{"regex":"AFT[MST]","model":"Fire TV stick","device":"tv"},{"regex":"KFFOWI[);/ ]","model":"Fire 7\\""},{"regex":"KFTT[);/ ]","model":"Kindle Fire HD"},{"regex":"KFJWI[);/ ]|Amazon Jem","model":"Kindle Fire HD 8.9\\" WiFi"},{"regex":"KFJWA[);/ ]","model":"Kindle Fire HD 8.9\\" 4G"},{"regex":"KFSOWI[);/ ]|Amazon Tate","model":"Kindle Fire HD 7\\" WiFi"},{"regex":"KFTHWI[);/ ]","model":"Kindle Fire HDX 7\\" WiFi"},{"regex":"KFTHWA[);/ ]","model":"Kindle Fire HDX 7\\" 4G"},{"regex":"KFAPWI[);/ ]","model":"Kindle Fire HDX 8.9\\" WiFi"},{"regex":"KFAPWA[);/ ]","model":"Kindle Fire HDX 8.9\\" 4G"},{"regex":"KFARWI[);/ ]","model":"Fire HD 6"},{"regex":"KFASWI[);/ ]","model":"Fire HD 7"},{"regex":"KFAUWI[);/ ]","model":"Fire HD 7 2017"},{"regex":"KFGIWI[);/ ]","model":"Fire HD 8 2016"},{"regex":"KFDOWI[);/ ]","model":"Fire HD 8 2017"},{"regex":"KFSAWI[);/ ]","model":"Fire HDX 8.9"},{"regex":"KFSAWA[);/ ]","model":"Fire HDX 8.9 4G"},{"regex":"KFTBWI[);/ ]","model":"Fire HD 10"},{"regex":"KFSUWI[);/ ]","model":"Fire HD 10 (2017)"},{"regex":"SD4930UR","model":"Fire Phone","device":"smartphone"},{"regex":"KFOT|Kindle Fire|Silk/\\\\d+\\\\.\\\\d+","model":"Kindle Fire"},{"regex":"Kindle","model":"Kindle"}]},"Symphony":{"regex":"SYMPHONY[ \\\\_]([a-z0-9]+)|roar (V20|E80)","device":"smartphone","models":[{"regex":"roar V20","model":"Roar V20"},{"regex":"roar E80","model":"Roar E80"},{"regex":"SYMPHONY[ \\\\_]([a-z0-9]+)","model":"$1"}]},"Syrox":{"regex":"(SYX-(?:T70[04]|T10[12]))[;)/ ]","device":"tablet","model":"$1"},"Qtek":{"regex":"Qtek[ _]?([a-z0-9]+)","device":"smartphone","model":"$1"},"Q-Touch":{"regex":"(Q09) Build","device":"smartphone","model":"$1"},"T-Mobile":{"regex":"T-Mobile[ _][a-z0-9 ]+|REVVL 2 PLUS","device":"smartphone","models":[{"regex":"REVVL 2 PLUS","model":"REVVL 2 Plus"},{"regex":"T-Mobile[ _]([a-z0-9_ ]+) Build","model":"$1"},{"regex":"T-Mobile[ _]([a-z0-9_ ]+)","model":"$1"}]},"TB Touch":{"regex":"Ignis [89]","device":"tablet","models":[{"regex":"Ignis ([89])","model":"Ignis $1"}]},"TCL":{"regex":"TCL[_ -][a-z0-9]+|(TCL[_ -][^;/]+|7040N) Build|TCLGalaG60|A502DL","device":"smartphone","models":[{"regex":"TCLGalaG60","model":"Gala G60"},{"regex":"TCL[_ -]([^;/]+) Build","model":"$1"},{"regex":"TCL[_ -]([a-z0-9]+)","model":"$1"},{"regex":"(7040N)","model":"$1"},{"regex":"A502DL","model":"LX"}]},"Teclast":{"regex":"Teclast|Tbook","device":"tablet","models":[{"regex":"Tbook[_ -]([^;/]+) Build","model":"Tbook $1"},{"regex":"Teclast[_ -]([^;/]+) Build","model":"$1"}]},"Tecno Mobile":{"regex":"Tecno|Phantom6|Phantom6-Plus|DP7C Pro-SGA1","device":"smartphone","models":[{"regex":"Phantom6-Plus","model":"Phantom 6 Plus"},{"regex":"Phantom6","model":"Phantom 6"},{"regex":"TECNO[ _]ID6[);/ ]","model":"Camon iClick 2"},{"regex":"Tecno[ _]7C[);/ ]","model":"DroidPad 7C","device":"tablet"},{"regex":"DP7C Pro-SGA1[);/ ]","model":"DroidPad 7C Pro","device":"tablet"},{"regex":"TECNO[ _]DP10A Pro[);/ ]","model":"DroidPad 10A Pro","device":"tablet"},{"regex":"TECNO[ _]P904[);/ ]","model":"DroidPad 10D 4G","device":"tablet"},{"regex":"Tecno[ _]CB7[j]?","model":"Camon i4"},{"regex":"Tecno[ _]DP8D[);/ ]","model":"DroidPad 8D","device":"tablet"},{"regex":"Tecno[ _]LB8","model":"Pouvoir 3 Plus"},{"regex":"Tecno ([^;/]+) Build","model":"$1"},{"regex":"Tecno[ _]?([a-z0-9_\\\\-]+)","model":"$1"}]},"TechPad":{"regex":"Tech ?pad|XTAB[ _-]|Dual C1081HD|S813G","device":"tablet","models":[{"regex":"S813G","model":"S813G"},{"regex":"Dual C1081HD","model":"XTAB C1081HD"},{"regex":"XTAB[ _-]([^/;]+) Build","model":"XTAB $1"},{"regex":"Tech ?pad[ _-]([^/;]+) Build","model":"$1","device":"smartphone"}]},"Tesco":{"regex":"Hudl ([^/;]+) Build|W032i-C3[);/ ]","device":"tablet","models":[{"regex":"Hudl ([^/;]+) Build","model":"Hudl $1"},{"regex":"W032i-C3[);/ ]","model":"Op3n Dott"}]},"teXet":{"regex":"Texet|(NaviPad [^/;]*) Build|TM-(?:1046|1058|1057|1067|3000|3200R|3500|4003|4071|450[34]|451[30]|4377|4082R|550[83]|5010|5017|507[4-7]|5[23]77|6003|6906|702[13]|7055HD|709[69]|9747BT|9758|9751HD|9767|5513|520[410]|5505|507[13]|5581|7859|8044|9748[ _]3G|9720|7047HD[ _]3G|9757|9740|4982|4515|4083|500[3567]|5571|3204R|5016|8043|7047HD[ _]3G|8041HD|8066|705[23]|7041|8041HD|8051|8048|974[96]|973[78]W|974[10]|9743W|9750HD|7043XD|7049|7887|7037W|702[46])|TB-(771A|711A)|X-Force[\\\\(-]?TM-5009\\\\)?|X-Plus[\\\\(-]?TM-5577\\\\)?|X-pad (?:AIR 8|iX 7) 3G","device":"tablet","models":[{"regex":"TM-9749","model":"X-pad Plus 7.1 3G"},{"regex":"TM-9746","model":"X-pad Plus 7 3G"},{"regex":"TM-8051","model":"X-pad Force 8i 3G"},{"regex":"TM-1058","model":"X-Force 10 3G"},{"regex":"TM-8048","model":"X-pad Force 8 3G"},{"regex":"(NaviPad [^/;]*) Build","model":"$1"},{"regex":"TM-7055HD","model":"NaviPad 3G"},{"regex":"TM-9758","model":"X-pad Style 10"},{"regex":"(X-pad (?:AIR 8|iX 7) 3G)","model":"$1"},{"regex":"TM-7096","model":"X-pad NAVI 7.3 3G"},{"regex":"TM-7099","model":"X-pad NAVI 7.4 3G"},{"regex":"TM-1046","model":"X-pad NAVI 10 3G"},{"regex":"TM-7859","model":"X-pad NAVI 8.2 3G"},{"regex":"TM-7049","model":"NaviPad TM-7049 3G"},{"regex":"TM-7887","model":"NaviPad TM-7887 3G"},{"regex":"TM-8066","model":"X-pad Rapid 8.2 4G"},{"regex":"(TM-(?:1057|1067|6906|8043|9748[_ ]3G|9740|9757(?:[_ ]3G)?|7047HD[ _]3G|9747BT|9751HD|702[13]|705[23]|7041|9720|7047HD[_ ]3G|8044|8041HD|973[78]W|9743W|974[10]|9750HD|7043XD|7037W|702[46])|TB-(?:771A|711A|8041HD))","model":"$1"},{"regex":"TM-4503","device":"smartphone","model":"X-Quad"},{"regex":"(TM-(?:3000|3200R|4003|4083|4377|4504|451[30]|500[35]|5[23]77|5571|3204R|520[04]|5581|5505|507[13]|5017|507[4-7]|6003|5513))","device":"smartphone","model":"$1"},{"regex":"TM-5006","device":"smartphone","model":"X-Line"},{"regex":"TM-5007","device":"smartphone","model":"X-Shine"},{"regex":"TM-5201","device":"smartphone","model":"Rock"},{"regex":"TM-4515","device":"smartphone","model":"X-Style"},{"regex":"TM-9767","model":"X-pad Style 10 3G"},{"regex":"TM-(5016|3500)","device":"smartphone","model":"X-Maxi 2"},{"regex":"TM-4071","device":"smartphone","model":"X-Smart"},{"regex":"TM-4982","device":"smartphone","model":"iX-Maxi"},{"regex":"TM-5010","device":"smartphone","model":"X-Selfie"},{"regex":"TM-4082R","device":"smartphone","model":"X-Driver Quad"},{"regex":"TM-5503","device":"smartphone","model":"X-Mage"},{"regex":"TM-5508","device":"smartphone","model":"X-Cosmo"},{"regex":"X-Force[\\\\(-]?TM-5009\\\\)?","device":"smartphone","model":"X-Force"},{"regex":"X-Plus[\\\\(-]?TM-5577\\\\)?","device":"smartphone","model":"X-Plus"}]},"Telefunken":{"regex":"TEL-1013GIQA","device":"smartphone","models":[{"regex":"TEL-1013GIQA","device":"tablet","model":"Giqa 10.1 3G"}]},"Telego":{"regex":"TELEGO","device":"smartphone","models":[{"regex":"TELEGO-W503","model":"W503"}]},"Telenor":{"regex":"Telenor","device":"smartphone","models":[{"regex":"Telenor[ _]([^;/]+) Build","model":"$1"},{"regex":"Telenor[ _]([^a-z0-9_]+)\\\\)","model":"$1"}]},"Telit":{"regex":"Telit","device":"feature phone","models":[{"regex":"Telit_Mobile_Terminals-([a-z0-9]+)","model":"$1"},{"regex":"Telit[\\\\-_]?([a-z0-9]+)","model":"$1"}]},"ThL":{"regex":"ThL[ _-]","device":"smartphone","models":[{"regex":"ThL[ _-]*([^;/]+) Build","model":"$1"},{"regex":"ThL[ _-]*([^ ;/)]+)[ ;/)]","model":"$1"}]},"TIANYU":{"regex":"TIANYU","device":"feature phone","models":[{"regex":"TIANYU ([a-z0-9]+)","model":"$1"},{"regex":"TIANYU-KTOUCH/([a-z0-9]+)","model":"$1"}]},"Timovi":{"regex":"Tmovi|Infinit_Lite_2","device":"smartphone","models":[{"regex":"Tmovi[ _]Prime","model":"Prime"},{"regex":"TMOVI_YEAH_BEAT","model":"Yeah Beat"},{"regex":"YeahLIVE","model":"Yeah LIVE"},{"regex":"Infinit Lite","model":"Infinit Lite"},{"regex":"Infinit_Lite_2","model":"Infinit Lite 2"}]},"Tooky":{"regex":"TOOKY","device":"smartphone","models":[{"regex":"TOOKY (A19|W1|T8[368]|T1982)[);/ ]","model":"$1"},{"regex":"TOOKY A9PLUS[);/ ]","model":"A9 Plus"}]},"Tolino":{"regex":"Tolino Tab ([^/;]+) Build","device":"tablet","model":"Tolino Tab $1"},"Top House":{"regex":"Coto[_ ]|X1013","device":"smartphone","models":[{"regex":"Coto W418","model":"Coto W418"},{"regex":"COTO_T117","model":"Coto T117","device":"tablet"},{"regex":"X1013","model":"X1013","device":"tablet"},{"regex":"COTO_T40017","model":"T40017"}]},"Toplux":{"regex":"Toplux ([a-z0-9]+)","device":"feature phone","model":"$1"},"Touchmate":{"regex":"TOUCHMATE|(TM-(?:MID1020A|MID710|MID798|MID792|MID788D|SM500N|SM410))","device":"smartphone","models":[{"regex":"(TM-(?:MID1020A|MID710|MID798|MID792|MID788D))","device":"tablet","model":"$1"},{"regex":"(TM-(?:SM500N|SM410))","model":"$1"},{"regex":"Touchmate ([^/;]+) Build","model":"$1"}]},"TrekStor":{"regex":"(?:TrekStor|Surftab) ([^/;]+) Build|Surftab[^;\\\\)]*(?:[;\\\\)]|$)|ST10216-2A|VT10416-[12]","device":"tablet","models":[{"regex":"ST10216-2A|VT10416-[12]","model":"SurfTab 10.1"},{"regex":"TrekStor ([^/;]+) Build","model":"$1"},{"regex":"Surftab ([^/;]+) Build","model":"SurfTab $1"},{"regex":"Surftab[ _]([^;\\\\)]*)(?:[;\\\\)]|$)","model":"SurfTab $1"}]},"Trevi":{"regex":"Trevi[ _]|TAB[ _]10[ _]3G[ _]V16|TAB[ _](7|8)[ _]3G[ _]V8|TAB9 3G|MINITAB 3GV|Phablet[ _](?:4|4\\\\.5|5|5\\\\,3|6)[ _]?[CSQ]|REVERSE[ _]5\\\\.5[ _]?Q","device":"tablet","models":[{"regex":"TAB[ _]?(7|8)[ _]3G[ _]V8","model":"TAB $1 3G V8"},{"regex":"TAB[ _]?9[ _]3G[ _]V8","model":"TAB 9 3G V8"},{"regex":"TAB[ _]?9[ _]3G","model":"TAB 9 3G"},{"regex":"TAB[ _]10[ _]3G[ _]V16","model":"TAB 10 3G V16"},{"regex":"MINITAB 3GV","model":"MINITAB 3G V"},{"regex":"(?:Trevi_)?Phablet[ _]4[ _]?C","model":"Phablet 4 C","device":"smartphone"},{"regex":"(?:Trevi_)?Phablet[ _]4[ _]?S","model":"Phablet 4 S","device":"smartphone"},{"regex":"(?:Trevi_)?Phablet[ _]4.5[ _]?Q","model":"Phablet 4.5Q","device":"smartphone"},{"regex":"(?:Trevi_)?PHABLET[ _]5[ _]?S","model":"Phablet 5 S","device":"smartphone"},{"regex":"(?:Trevi_)?PHABLET[ _]5,3[ _]?Q","model":"Phablet 5.3 Q","device":"phablet"},{"regex":"(?:Trevi_)?REVERSE[ _]5.5[ _]?Q","model":"Phablet 5.5 Q REVERSE","device":"phablet"},{"regex":"(?:Trevi_)?PHABLET[ _]6[ _]?S","model":"Phablet 6 S","device":"phablet"},{"regex":"Trevi[_]([^;/]+) Build","model":"$1"}]},"TVC":{"regex":"(NuclearSX-SP5)","device":"smartphone","model":"Nuclear SX-SP5"},"U.S. Cellular":{"regex":"USCC-","device":"smartphone","models":[{"regex":"USCC-E6762","model":"Kyocera DuraForce"},{"regex":"(USCC-[a-z0-9_\\\\-]+)","model":"$1"}]},"Uhappy":{"regex":"Uhappy|UP?580|UP350|UP[35679]20","device":"smartphone","models":[{"regex":"UP([35679]20)","model":"UP$1"},{"regex":"UP350","model":"UP350"},{"regex":"UP580","model":"UP580"},{"regex":"U580","model":"U580"},{"regex":"Uhappy[ _-]([^;/]+) Build","model":"$1"},{"regex":"Uhappy[ _-]?([^;/)]+)[);/ ]","model":"$1"}]},"Unimax":{"regex":"U((?:67[013]|680)C|(?:452|504)TL|683CL)[);/ ]","device":"smartphone","model":"U$1"},"Unowhy":{"regex":"QOOQ ","device":"tablet","model":"QOOQ"},"UTStarcom":{"regex":"utstar[ _-]?([a-z0-9]+)","device":"feature phone","model":"$1"},"Ulefone":{"regex":"Ulefone|Power_[35]|(Armor(?:[ _]2)?|U00[78][ _]Pro|Be[ _]X|Be[ _]Touch(?:[ _][23])?|Be[ _](?:One|Pure)(?:[ _]Lite)?) Build","device":"smartphone","models":[{"regex":"Be[ _]Touch([ _][23])?","model":"Be Touch$1"},{"regex":"Be[ _]Pure[ _]Lite","model":"Be Pure Lite"},{"regex":"Be[ _]Pure","model":"Be Pure"},{"regex":"Be[ _]One[ _]Lite","model":"Be One Lite"},{"regex":"Be[ _]One","model":"Be One"},{"regex":"Be[ _]X","model":"Be X"},{"regex":"U007 Pro","model":"U007 Pro"},{"regex":"U008 Pro","model":"U008 Pro"},{"regex":"Armor[ _]2 Build","model":"Armor 2"},{"regex":"Armor Build","model":"Armor"},{"regex":"Power_([35])","model":"Power $1"},{"regex":"Ulefone[_ ](X|S1[ _]Pro|S[17])[);\\\\ ]","model":"$1"},{"regex":"Ulefone[ _-]?([^;/]+) Build","model":"$1"},{"regex":"Ulefone[ _-]?([^;/)]+)[;/)]","model":"$1"}]},"UMIDIGI":{"regex":"UMI(?:DIGI)?[ _]","device":"smartphone","models":[{"regex":"UMI(?:DIGI)?[ _]([^/;]+) Build","model":"$1"}]},"Uniscope":{"regex":"Uniscope","device":"smartphone","models":[{"regex":"Uniscope[ _\\\\-]?([^/;]+) Build","model":"$1"},{"regex":"Uniscope[ _\\\\-]?([^);/ ]+)","model":"$1"}]},"Unnecto":{"regex":"Unnecto|(?:U513|U5151|U61[1356]|U7[12]0|U-830|U90[35])[);/ ]","device":"smartphone","models":[{"regex":"U513","model":"Drone XT"},{"regex":"U5151","model":"Bolt"},{"regex":"U611","model":"Quattro X"},{"regex":"U613","model":"Quattro S"},{"regex":"U615","model":"Quattro M"},{"regex":"U616","model":"U616"},{"regex":"U710","model":"Quattro U710"},{"regex":"U720","model":"Quattro Z"},{"regex":"U-830","model":"Rush"},{"regex":"U903","model":"Air"},{"regex":"U905","model":"Air 5.5"}]},"Unonu":{"regex":"Unonu[ _-]","device":"smartphone","models":[{"regex":"Unonu[ _-]([^;/]+) Build","model":"$1"},{"regex":"Unonu[ _-]?([^;/)]+)[);/ ]","model":"$1"}]},"UTOK":{"regex":"UTOK (45[01]D)","device":"smartphone","model":"$1"},"Vastking":{"regex":"(M910A|M783K|M783K-16G|M1072R-3G)[);/ ]","device":"tablet","model":"$1"},"ViewSonic":{"regex":"ViewSonic|VSD[0-9]+[);/ ]|ViewPad|ViewPhone","device":"smart display","models":[{"regex":"(?:ViewSonic-)?V500[);/ ]","model":"V500","device":"smartphone"},{"regex":"(?:ViewSonic-)?ViewPhone ?([^;/]+) Build","model":"ViewPhone $1","device":"smartphone"},{"regex":"(?:ViewSonic-)?ViewPad ?([^;/]+) Build","model":"ViewPad $1","device":"tablet"},{"regex":"(VSD[0-9]+)[);/ ]","model":"$1"}]},"Vitelcom":{"regex":"Vitelcom|portalmmm/[12].0 TSM","device":"feature phone","models":[{"regex":"TSM-([a-z0-9]+)","model":"$1"},{"regex":"TSM([a-z0-9\\\\-]+)","model":"$1"},{"regex":"portalmmm/[12].0 (TSM[a-z0-9 ]+)","model":"$1"}]},"Fengxiang":{"regex":"(vKB011B|vKB004L)","device":"tablet","model":"$1"},"VK Mobile":{"regex":"VK(?!share)[\\\\-]?([a-z0-9 ]+)([;\\\\)/ ]| Build)","device":"feature phone","model":"$1"},"Vernee":{"regex":"Vernee|Mars Pro|Apollo (?:Lite|X)|Thor (?:E|Plus)","device":"smartphone","models":[{"regex":"Apollo Lite","model":"Apollo Lite"},{"regex":"Apollo X","model":"Apollo X"},{"regex":"Mars Pro","model":"Mars Pro"},{"regex":"Thor E","model":"Thor E"},{"regex":"Thor Plus","model":"Thor Plus"},{"regex":"Vernee_M5","model":"M5"},{"regex":"Vernee[ _-]([^;/]+) Build","model":"$1"},{"regex":"Vernee[ _-]([a-z0-9_-]+)","model":"$1"}]},"Vertu":{"regex":"Vertu[ ]?([a-z0-9]+)","device":"feature phone","model":"$1"},"Venso":{"regex":"(CX-508)[/;) ]","device":"smartphone","model":"$1"},"Verizon":{"regex":"QTA(SUN[12]|XIA1|QZ3|QZ3KID|IR7)|QMV7B","device":"tablet","models":[{"regex":"QTAXIA1|QTAIR7","model":"Ellipsis 10"},{"regex":"QTASUN1","model":"Ellipsis 8 HD"},{"regex":"QTASUN2","model":"Ellipsis 8 HD 4G LTE"},{"regex":"QTAQZ3KID","model":"Ellipsis Kids LTE"},{"regex":"QTAQZ3","model":"Ellipsis 8"},{"regex":"QMV7B","model":"Ellipsis 7"}]},"Verykool":{"regex":"verykool","device":"smartphone","models":[{"regex":"verykool[ _]?([^/;]+) Build","model":"$1"}]},"Vestel":{"regex":"Venus[ _](V[1-9]|Z[1-9]0)|V_?TAB|VP74|VT97PRO|VSP145M|VSP250G|VSP355[GS]","device":"smartphone","models":[{"regex":"VT97PRO","model":"VTab 9.7 Pro","device":"tablet"},{"regex":"VP74","model":"VTab Lite II","device":"tablet"},{"regex":"VTAB10","model":"VTab 10","device":"tablet"},{"regex":"V_TAB_7_ECO_III ","model":"VTab 7 Eco 3","device":"tablet"},{"regex":"V_TAB_([0-9]{4}[A-Z]?)","model":"VTab $1","device":"tablet"},{"regex":"VSP145M","model":"Venus 4.5"},{"regex":"VSP250G","model":"Venus 5.0V"},{"regex":"VSP355G","model":"Venus 5.5V"},{"regex":"VSP355S","model":"Venus 5.5X"},{"regex":"Venus[ _]V([1-9])","model":"Venus V$1"},{"regex":"Venus[ _]Z([1-9]0)","model":"Venus Z$1"}]},"Videocon":{"regex":"Videocon[_ \\\\-]|VT75C","device":"smartphone","models":[{"regex":"Videocon[_ \\\\-]([a-z0-9]+)","model":"$1"},{"regex":"VT75C[/;) ]","model":"VT75C"}]},"Vodafone":{"regex":"Vodafone[ _-]|Smart ?Tab ?(?:III? ?)?(?:|4G|7|10)[);/ -]|VodafoneSmartChat|VFD[ _][0-9]+[;/) ]|VFD320|VF6[89]5|VF-795","device":"smartphone","models":[{"regex":"VFD 100","model":"Smart Mini"},{"regex":"VF685","model":"Smart Kicka"},{"regex":"VF695","model":"Smart First 6"},{"regex":"VFD 200","model":"Smart First 7"},{"regex":"VFD 300","model":"Smart Mini 7"},{"regex":"VFD 50[02]","model":"Smart Turbo 7"},{"regex":"VFD 51[013]","model":"Smart E8"},{"regex":"VFD 600","model":"Smart Prime 7"},{"regex":"VFD320","model":"Smart C9"},{"regex":"VFD 820","model":"Smart X9"},{"regex":"VFD 610","model":"Smart N8"},{"regex":"Smart ultra 6","model":"Smart Ultra 6"},{"regex":"VFD 700","model":"Smart Ultra 7"},{"regex":"VFD 720","model":"Smart N9"},{"regex":"VFD 900","model":"Smart Platinum 7"},{"regex":"Vodafone[ _]875[);/ ]","model":"Smart Mini"},{"regex":"Vodafone[ _]975N?[);/ ]","model":"Smart 3"},{"regex":"Vodafone[ _]785[);/ ]","model":"Smart 4 Mini"},{"regex":"Vodafone[ _]890N[);/ ]","model":"Smart 4 Turbo"},{"regex":"Vodafone[ _]985N[);/ ]","model":"Smart 4 Power"},{"regex":"VodafoneSmartChat","model":"Smart Chat"},{"regex":"VF-795","model":"Smart Speed 6"},{"regex":"VFD 1100","device":"tablet","model":"Tab Mini 7"},{"regex":"VFD 1300","device":"tablet","model":"Smart Tab N8"},{"regex":"VFD 1400","device":"tablet","model":"Tab Prime 7"},{"regex":"Smart ?Tab ?3G","device":"tablet","model":"Smart Tab 3G"},{"regex":"Smart ?Tab ?4G","device":"tablet","model":"Smart Tab 4G"},{"regex":"Smart ?Tab ?4","model":"Smart Tab 4","device":"tablet"},{"regex":"SmartTab7[);/ -]","model":"Smart Tab 7","device":"tablet"},{"regex":"SmartTab10[);/ -]","model":"Smart Tab 10","device":"tablet"},{"regex":"Smart ?Tab ?II ?7","model":"Smart Tab II 7","device":"tablet"},{"regex":"Smart ?Tab ?II ?10","model":"Smart Tab II 10","device":"tablet"},{"regex":"Smart ?Tab ?III ?7","model":"Smart Tab III 7","device":"tablet"},{"regex":"Smart ?Tab ?III ?10","model":"Smart Tab III 10","device":"tablet"},{"regex":"VFD[ _]([0-9]+)[;/) ]","model":"VFD $1"},{"regex":"Vodafone[ _-]([^;/]+) Build","model":"$1"},{"regex":"Vodafone[ _-]([a-z0-9_-]+)","model":"$1"}]},"Vonino":{"regex":"Vonino|Zun[ _]X[OS]?|Xylo[ _][XSP]|Volt[ _][XS]|Gyga[ _](?:X|S|QS|XS)|Pluri[ _](?:[BCMQ]7|[CQ]8)|Magnet[ _]M[19]|Jax[ _](?:Q|QS|S|X|Mini)|Navo_QS|Onyx_(QS|Z)|Orin_QS|Sirius_QS|Xavy_T7","device":"smartphone","models":[{"regex":"Zun[ _]XO","model":"Zun XO"},{"regex":"Zun[ _]XS","model":"Zun XS"},{"regex":"Zun[ _]X","model":"Zun X"},{"regex":"Xylo[ _](P|S|X)","model":"Xylo $1"},{"regex":"Volt[ _]S_A7","model":"Volt S A7"},{"regex":"Volt[ _]S","model":"Volt S"},{"regex":"Volt[ _]X","model":"Volt X"},{"regex":"Gyga[ _]QS","model":"Gyga QS"},{"regex":"Gyga[ _]XS","model":"Gyga XS"},{"regex":"Gyga[ _](S|X)","model":"Gyga $1"},{"regex":"Jax[ _]QS","model":"Jax QS"},{"regex":"Jax[ _]S_A7","model":"Jax S A7"},{"regex":"Jax[ _](S|Q|X)","model":"Jax $1"},{"regex":"Jax[ _]Mini","model":"Jax Mini"},{"regex":"Pluri[ _](B|C|M|Q)7","model":"Pluri $17","device":"tablet"},{"regex":"Pluri[ _](C|Q)8","model":"Pluri $18","device":"tablet"},{"regex":"Magnet[ _]M([19])","model":"Magnet M$1","device":"tablet"},{"regex":"Navo_QS","model":"Navo QS","device":"tablet"},{"regex":"Onyx_(QS|Z)","model":"Onyx $1","device":"tablet"},{"regex":"Orin_QS","model":"Orin QS","device":"tablet"},{"regex":"Sirius_QS","model":"Sirius QS","device":"tablet"},{"regex":"Xavy_T7","model":"Xavy T7","device":"tablet"}]},"Vorago":{"regex":"VORAGO","device":"smartphone","models":[{"regex":"CELL-500","model":"CELL-500"}]},"Voto":{"regex":"VOTO[ _\\\\-]|VT8[89]8[;/) ]","device":"smartphone","models":[{"regex":"VOTO[ _\\\\-]?([^/;]+) Build","model":"$1"},{"regex":"VOTO[ _\\\\-]?([^);/ ]+)","model":"$1"},{"regex":"(VT8[89]8)[;/) ]","model":"$1"}]},"Voxtel":{"regex":"Voxtel_([a-z0-9]+)","device":"feature phone","model":"$1"},"Vulcan":{"regex":"VP5004A","device":"smartphone","models":[{"regex":"VP5004A","model":"VP5004A"}]},"Walton":{"regex":"Walton|Walpad|Primo[ _](C[1234]?|D[12345]|E[12345]|EF[23]?|EM|F[1234567]i?|G[123457]|GF[234]?|GH[23]?|GM|H[2346]|HM|N|N1|NF|NX2?|R[1234]|RH2?|RM2?|RX[23]?|S[123456]|V1|X[1234]|Z|ZX)","device":"smartphone","models":[{"regex":"Walpad ([^;/]+) Build","device":"tablet","model":"Primo Walpad $1"},{"regex":"Primo S6 infinity","model":"Primo S6 Infinity"},{"regex":"Walton[ _]([^;/]+) Build","model":"$1"},{"regex":"Walton[ _]([^;/]+)\\\\)","model":"$1"},{"regex":"Primo[ _]([^;/]+) Build","model":"Primo $1"},{"regex":"Primo[ _]([0-9a-z]+)","model":"Primo $1"}]},"WellcoM":{"regex":"WELLCOM[ _\\\\-/]([a-z0-9]+)","device":"smartphone","model":"$1"},"Wexler":{"regex":"Wexler|TAB[ _]10Q[);/ ]|ZEN[ _](?:4\\\\.5|4\\\\.7|5)","device":"tablet","models":[{"regex":"(?:Wexler[ _\\\\-\\\\.])?ZEN[ _]4\\\\.5[);/ ]","model":"ZEN 4.5","device":"smartphone"},{"regex":"(?:Wexler[ _\\\\-\\\\.])?ZEN[ _]4\\\\.7[);/ ]","model":"ZEN 4.7","device":"smartphone"},{"regex":"(?:Wexler[ _\\\\-\\\\.])?ZEN[ _]5[);/ ]","model":"ZEN 5","device":"smartphone"},{"regex":"(?:Wexler[ _\\\\-\\\\.])?TAB[ _]10Q[);/ ]","model":"TAB 10Q"},{"regex":"Wexler[ _\\\\-\\\\.]([^;/]+) Build","model":"$1"},{"regex":"Wexler[ _\\\\-\\\\.]([^);/]+)[);/]","model":"$1"}]},"Wiko":{"regex":"(?:WIKO[_ -])|(?:WIKO-)?CINK_[a-z0-9_]+|(?:WIKO-)?HIGHWAY_[a-z0-9_]+|(?:WIKO-)?(?:Cink([^/;]*)|Highway([^/;]*)|Iggy|Stairway|Rainbow ?(Jam|Lite|Up)?|Darkside|Darkmoon|Darkfull|Darknight|Freddy|FEVER|Jerry[2]?|Sublim|Ozzy|JIMMY|Barry|Birdy|Bloom|Getaway|Goa|Kite|Robby|Lenny[2-9]?|Slide|Sunset[2-9]?|Sunny[2-9]?|Tommy[2-9]?|PULP(?: Fab)?|Wax|HARRY|WIM Lite|Ridge(?: Fab)?|U FEEL(?: Prime| Lite)?|U PULSE(?: LITE)?|View XL|View Prime)(?: Plus)?(?: 4G)?(?: Build|$)|W_(?:C800|K[346]00)|LENNY[234]|SUNSET2|JERRY|Tommy3|PULP FAB 4G|WC300","device":"smartphone","models":[{"regex":"(?:Wiko-)?Cink([^/;]*) Build","model":"Cink$1"},{"regex":"(?:WIKO-)?CINK_([a-z0-9_]+)","model":"Cink $1"},{"regex":"(?:Wiko-)?Highway([^/;]*) Build","model":"Highway$1"},{"regex":"(?:WIKO-)?HIGHWAY_([a-z0-9_]+)","model":"Highway $1"},{"regex":"(?:WIKO-)?Iggy","model":"Iggy"},{"regex":"(?:WIKO-)?FEVER","model":"Fever"},{"regex":"(?:WIKO-)?Stairway","model":"Stairway"},{"regex":"(?:WIKO-)?Ridge Fab 4G","model":"Ridge Fab 4G"},{"regex":"(?:WIKO-)?Ridge 4G","model":"Ridge 4G"},{"regex":"(?:WIKO-)?Ridge","model":"Ridge"},{"regex":"(?:WIKO-)?Rainbow ([^/;]+) Build","model":"Rainbow $1"},{"regex":"(?:WIKO-)?Rainbow","model":"Rainbow"},{"regex":"(?:WIKO-)?Darkside","model":"Darkside"},{"regex":"(?:WIKO-)?Darkmoon","model":"Darkmoon"},{"regex":"(?:WIKO-)?Darkfull","model":"Darkfull"},{"regex":"(?:WIKO-)?Darknight","model":"Darknight"},{"regex":"(?:WIKO-)?Sublim","model":"Sublim"},{"regex":"(?:WIKO-)?Ozzy","model":"Ozzy"},{"regex":"(?:WIKO-)?Barry","model":"Barry"},{"regex":"(?:WIKO-)?Birdy","model":"Birdy"},{"regex":"(?:WIKO-)?Bloom","model":"Bloom"},{"regex":"(?:WIKO-)?JIMMY","model":"Jimmy"},{"regex":"JERRY MAX","model":"Jerry Max"},{"regex":"W_K300","model":"Jerry 3"},{"regex":"(?:WIKO-)?Jerry2","model":"Jerry 2"},{"regex":"(?:WIKO-)?Jerry","model":"Jerry"},{"regex":"(?:WIKO-)?Getaway","model":"Getaway"},{"regex":"(?:WIKO-)?Goa","model":"Goa"},{"regex":"(?:WIKO-)?Freddy","model":"Freddy"},{"regex":"(?:WIKO-)?Kite","model":"Kite"},{"regex":"W_K400","model":"Lenny 5"},{"regex":"(?:WIKO-)?Lenny[ -_]?3 Max","model":"Lenny 3 Max"},{"regex":"(?:WIKO-)?Lenny[ -_]?4 Plus","model":"Lenny 4 Plus"},{"regex":"(?:WIKO-)?Lenny[ -_]?([2-9])","model":"Lenny $1"},{"regex":"(?:WIKO-)?Lenny","model":"Lenny"},{"regex":"(?:WIKO-)?Slide","model":"Slide"},{"regex":"(?:WIKO-)?Sunset2","model":"Sunset 2"},{"regex":"(?:WIKO-)?Sunset","model":"Sunset"},{"regex":"(?:WIKO-)?Sunny2 Plus","model":"Sunny 2 Plus"},{"regex":"(?:WIKO-)?Sunny2","model":"Sunny 2"},{"regex":"(?:WIKO-)?Sunny","model":"Sunny"},{"regex":"(W_K600|Tommy3)","model":"Tommy 3"},{"regex":"(?:WIKO-)?Tommy2 Plus","model":"Tommy 2 Plus"},{"regex":"(?:WIKO-)?Tommy2","model":"Tommy 2"},{"regex":"(?:WIKO-)?Tommy","model":"Tommy"},{"regex":"(?:WIKO-)?Wax","model":"Wax"},{"regex":"(?:WIKO-)?HARRY","model":"Harry"},{"regex":"(?:WIKO-)?WIM Lite","model":"WIM Lite"},{"regex":"(?:WIKO-)?Pulp Fab 4G","model":"Pulp Fab 4G"},{"regex":"(?:WIKO-)?Pulp Fab","model":"Pulp Fab"},{"regex":"(?:WIKO-)?Pulp 4G","model":"Pulp 4G"},{"regex":"(?:WIKO-)?Pulp","model":"Pulp"},{"regex":"(?:WIKO-)?Robby","model":"Robby"},{"regex":"(?:WIKO-)?U PULSE LITE","model":"U Pulse Lite"},{"regex":"(?:WIKO-)?U PULSE","model":"U Pulse"},{"regex":"(?:WIKO-)?U FEEL LITE","model":"U Feel Lite"},{"regex":"(?:WIKO-)?U FEEL PRIME","model":"U Feel Prime"},{"regex":"(?:WIKO-)?U FEEL","model":"U Feel"},{"regex":"(?:WIKO-)?View XL","model":"View XL"},{"regex":"(?:WIKO-)?View Prime","model":"View Prime"},{"regex":"WC300","model":"View Lite"},{"regex":"W_C800","model":"View 2"},{"regex":"Wiko ([^/;]+) Build","model":"$1"},{"regex":"Wiko ([^/; ]+)","model":"$1"}]},"Wink":{"regex":"Wink_","device":"smartphone","models":[{"regex":"Wink_City_(SE|S)","model":"City $1"}]},"Weimei":{"regex":"weplus_3","device":"smartphone","models":[{"regex":"weplus_3","model":"WePlus 3"}]},"Wileyfox":{"regex":"(?:Wileyfox [^/]+)|Swift 2[;/) ]","device":"smartphone","models":[{"regex":"Wileyfox Spark \\\\+","model":"Spark +"},{"regex":"Wileyfox Spark X","model":"Spark X"},{"regex":"Wileyfox (Spark|Swift)","model":"$1"},{"regex":"Wileyfox ([^/]+) Build","model":"$1"},{"regex":"Swift 2 (X|Plus)[;/) ]","model":"Swift 2 $1"},{"regex":"Swift 2[;/) ]","model":"Swift 2"}]},"Wolder":{"regex":"miSmart|miTab|WIAM \\\\#24","device":"smartphone","models":[{"regex":"WIAM \\\\#24","model":"Wiam #24"},{"regex":"miSmart[ \\\\-_]?([^/]+) Build","model":"miSmart $1"},{"regex":"miTab[ \\\\-_]?([^/]+) Build","device":"tablet","model":"miTab $1"}]},"Wolfgang":{"regex":"AT[ _-]AS([0-9A-Z]+)[);/ ]","device":"smartphone","model":"AT-AS$1"},"Wonu":{"regex":"Wonu ([a-z0-9]+)","device":"feature phone","model":"$1"},"Woo":{"regex":"SP5026i-Scorpio","device":"smartphone","models":[{"regex":"SP5026i-Scorpio","model":"Scorpio"}]},"Woxter":{"regex":"Woxter[ _]([^/;]+) Build","device":"tablet","model":"$1"},"X-View":{"regex":"ZEN_U5+","device":"smartphone","models":[{"regex":"ZEN_U5+","model":"ZEN U5+"}]},"Xiaomi":{"regex":"Xiaomi(?!/MiuiBrowser)|(?:MI [a-z0-9]+|Mi-4c|MI-One[ _]?[a-z0-9]+|MIX(?: 2S?)?)[);/ ]|HM (?:[^/;]+) (?:Build|MIUI)|(?:2014501|2014011|201481[12378]|201302[23]|2013061) Build|Redmi|POCOPHONE|SKR-[AH]0|SKW-[AH]0|POCO F1","device":"smartphone","models":[{"regex":"SKR-[AH]0","model":"Black Shark"},{"regex":"SKW-[AH]0","model":"Black Shark 2"},{"regex":"Xiaomi_2014501|2014501 Build","model":"Hongmi 4G"},{"regex":"Xiaomi_2014011|2014011 Build","model":"Hongmi 1S"},{"regex":"Xiaomi_201302[23]|201302[23] Build","model":"Hongmi"},{"regex":"Xiaomi_2014818|2014818 Build","model":"Hongmi 2 3G"},{"regex":"Xiaomi_2014817|2014817 Build","model":"Hongmi 2"},{"regex":"Xiaomi_201481[123]|201481[123] Build","model":"Hongmi 2 4G"},{"regex":"Mi 9 SE[);/ ]","model":"MI 9 SE"},{"regex":"MI 8 Lite[);/ ]","model":"MI 8 Lite"},{"regex":"MI 5s Plus[);/ ]","model":"MI 5s Plus"},{"regex":"Xiaomi_2013061|2013061 Build","model":"MI 3"},{"regex":"Mi-4c[);/ ]","model":"MI 4C"},{"regex":"MI MAX 3[);/ ]","model":"MI MAX 3"},{"regex":"MI MAX 2[);/ ]","model":"MI MAX 2"},{"regex":"Mi A2 Lite[);/ ]","model":"MI A2 Lite"},{"regex":"MIX 3[);/ ]","model":"MI MIX 3"},{"regex":"MIX 2S[);/ ]","model":"MI MIX 2S"},{"regex":"MIX 2[);/ ]","model":"MI MIX 2"},{"regex":"MIX[);/ ]","model":"MI MIX"},{"regex":"POCOPHONE F1|POCO F1","model":"Pocophone F1"},{"regex":"Redmi 5 Plus","model":"Redmi 5 Plus"},{"regex":"HM 2A[);/ ]","model":"Redmi 2A"},{"regex":"HM 1S[CW]?[);/ ]","model":"Redmi 1S"},{"regex":"HM 1[);/ ]","model":"Redmi 1"},{"regex":"MI PAD 4 PLUS[);/ ]","model":"Mi Pad 4 Plus","device":"tablet"},{"regex":"MI PAD 4[);/ ]","model":"Mi Pad 4","device":"tablet"},{"regex":"MI PAD 3[);/ ]","model":"Mi Pad 3","device":"tablet"},{"regex":"MI PAD 2[);/ ]","model":"Mi Pad 2","device":"tablet"},{"regex":"MI PAD[);/ ]","model":"Mi Pad","device":"tablet"},{"regex":"HM NOTE 1W (?:Build|MIUI)","device":"phablet","model":"Redmi Note"},{"regex":"HM NOTE 1TD (?:Build|MIUI)","device":"phablet","model":"Hongmi Note 1TD"},{"regex":"HM NOTE 1(?:LTE|S)(?:W|GLOBAL|TD)? (?:Build|MIUI)","device":"phablet","model":"Redmi Note 4G"},{"regex":"Redmi Note 6 Pro","model":"Redmi Note 6 Pro","device":"phablet"},{"regex":"Redmi Note 5 Pro","model":"Redmi Note 5 Pro","device":"phablet"},{"regex":"Redmi Note 5A Prime","model":"Redmi Note 5A Prime","device":"phablet"},{"regex":"Redmi[ _]Note[ _]([^;/) ]+)?","model":"Redmi Note $1","device":"phablet"},{"regex":"Redmi[ _]([^;/) ]+)?","model":"Redmi $1"},{"regex":"MI[ _]Note[ _]([^;/) ]+)?","model":"MI Note $1","device":"phablet"},{"regex":"(MI(?:-One)?[ _](?:[^;/]*))Build","model":"$1"},{"regex":"(MI [a-z0-9]+|MI-One[ _]?[a-z0-9]+)[);/ ]","model":"$1"},{"regex":"HM Note ([^/;]+) (?:Build|MIUI)","device":"phablet","model":"Note"},{"regex":"HM ([^/;]+) (?:Build|MIUI)","model":"HM $1"},{"regex":"Xiaomi[ _]([^/;]+)(?: Build|$)","model":"$1"}]},"Xion":{"regex":"XI-CE(?:655|U[48])","device":"smartphone","models":[{"regex":"XI-CE(655|U[48])","model":"CE$1"}]},"Xolo":{"regex":"Xolo|(?:Q600|Q700s?|Q800|Q1000s|Q1000[ _]Opus|Q1010i|Q2000|Omega[ _]5.[05])[);/ ]|BLACK-1XM","device":"smartphone","models":[{"regex":"BLACK-1XM","model":"Black 1X"},{"regex":"(Q600 Club|Q600|Q700s?|Q800|Q1000s Plus|Q1000s|Q1000[ _]Opus|Q1010i|Q2000|Omega[ _]5.[05])[);/ ]","model":"$1"},{"regex":"Xolo[ _]?([^;/]+) Build","model":"$1"},{"regex":"Xolo[ _]?([a-z0-9_-]+)","model":"$1"}]},"Yarvik":{"regex":"Xenta[ \\\\-]Tab|Luna TAB|TAB09-410|TAB10-410|TAB07-485|TAB0[78]-200|TAB08-201-3G|TAB9-200|TAB09-211|TAB10-2[01]1|TAB13-201","device":"tablet","models":[{"regex":"Luna TAB07-920N","model":"Luna 7"},{"regex":"Luna TAB07-10[01]","model":"Luna 7c"},{"regex":"Luna TAB274","model":"Luna 7c"},{"regex":"Luna TAB474","model":"Luna 10"},{"regex":"Luna TAB10-150","model":"Luna 10c"},{"regex":"TAB09-410","model":"Noble 9.7"},{"regex":"TAB10-410","model":"Noble 10.1"},{"regex":"TAB07-485","model":"Noble Mini"},{"regex":"Xenta-TAB07-21[01]","model":"Xenta 7c"},{"regex":"TAB07-200","model":"Xenta 7ic"},{"regex":"TAB08-200","model":"Xenta 8ic"},{"regex":"TAB08-201-3G","model":"Xenta 8c"},{"regex":"TAB9-200","model":"Xenta 9.7ic"},{"regex":"TAB09-211","model":"Xenta 9.7ic+"},{"regex":"TAB10-2[01]1","model":"Xenta 10ic"},{"regex":"TAB13-201","model":"Xenta 13c"}]},"Yes":{"regex":"M631Y","device":"smartphone","models":[{"regex":"M631Y","model":"Altitude"}]},"Yezz":{"regex":"Yezz|ANDY[ _]|4E4|A5EI","device":"smartphone","models":[{"regex":"ANDY_35E2I","model":"Andy 3.5E2I"},{"regex":"ANDY_35EI2","model":"Andy 3.5EI2"},{"regex":"Andy 3.5EI","model":"Andy 3.5EI"},{"regex":"ANDY_45EL","model":"Andy 4.5EL"},{"regex":"Andy 4.7T","model":"Andy 4.7T"},{"regex":"ANDY_4E2I","model":"Andy 4E2I"},{"regex":"4E4","model":"Andy 4E4"},{"regex":"ANDY_4EI2","model":"Andy 4EI2"},{"regex":"Yezz-AC4EI","model":"Andy 4EI"},{"regex":"ANDY_4EL2_LTE","model":"Andy 4EL2 LTE"},{"regex":"Andy_55EI","model":"Andy 55EI"},{"regex":"ANDY_5EI","model":"Andy 5EI"},{"regex":"Andy 5EL2 LTE","model":"Andy 5EL2 LTE"},{"regex":"Andy_5ML_LTE","model":"Andy 5ML LTE"},{"regex":"Andy_5T","model":"Andy 5T"},{"regex":"A3.5EP","model":"Andy A3.5EP"},{"regex":"A5EI","model":"Andy A5EI"},{"regex":"ANDY_C5QL","model":"Andy C5QL"}]},"Yu":{"regex":"YU5010A|AO5510","device":"smartphone","models":[{"regex":"YU5010A","model":"Yuphoria"},{"regex":"AO5510","model":"Yureka"}]},"Yuandao":{"regex":"N101[ _]DUAL(?:[ _]CORE)?(?:[ _]?2|\\\\|\\\\|)?(?:[ _]V11)?[);/ ]","device":"tablet","model":"N101"},"Yusun":{"regex":"Yusun|LA2-T","device":"smartphone","models":[{"regex":"LA2-T","model":"LA2-T"},{"regex":"Yusun ([^;/]+) Build","model":"$1"},{"regex":"Yusun ([a-z0-9_\\\\-\\\\+]+)","model":"$1"}]},"Ytone":{"regex":"YTONE[ _\\\\-]","device":"smartphone","models":[{"regex":"YTONE[ _\\\\-]?([^/;]+) Build","model":"$1"},{"regex":"YTONE[ _\\\\-]?([^);/ ]+)","model":"$1"}]},"Zonda":{"regex":"(ZM(?:CK|EM|TFTV|TN)[a-z0-9]+)|ZA409","device":"feature phone","models":[{"regex":"ZA409","device":"smartphone","model":"Muzic"},{"regex":"(ZM(?:CK|EM|TFTV|TN)[a-z0-9]+)","model":"$1"}]},"ZYQ":{"regex":"ZYQ-Q88|(Q(?:2602|262[436]|638|2688|272[89]|3022|3623|TAB Tab4|328 m9|328|668)|J77|Q[._](?:Up|Boss P99|Dee R09|Good M9|Hi|Hot|Me|Mate R99|Next|TOP-X8|You))[); ]","device":"smartphone","models":[{"regex":"Q638","model":"I7"},{"regex":"Q2624","model":"Cheer 3G"},{"regex":"Q2602","model":"TV Next"},{"regex":"Q2728","model":"Zone 3G"},{"regex":"Q2729","model":"Q2729"},{"regex":"Q2688","model":"Q2688"},{"regex":"Q2623","model":"Win 3G"},{"regex":"Q2626","model":"Care 3G"},{"regex":"Q3623","model":"Braw 3G"},{"regex":"Q3022","model":"Q3022"},{"regex":"Q328 m9","model":"Q328 M9"},{"regex":"Q328","model":"Speed 3G"},{"regex":"Q668","model":"TV I4"},{"regex":"J77","model":"Q.Dee"},{"regex":"Q\\\\.Up C5","model":"Q.Up C5"},{"regex":"Q\\\\.Up","model":"Q.Up"},{"regex":"Q\\\\.Boss P99","model":"Q.Boss P99"},{"regex":"Q[._]Dee R09","model":"Q.Dee R09"},{"regex":"Q\\\\.Good M9","model":"Q.Good M9"},{"regex":"Q[._]Hi S1","model":"Q.Hi S1"},{"regex":"Q[._]Hi","model":"Q.Hi"},{"regex":"Q[._]Hot P7 3G","model":"Q.Hot P7 3G"},{"regex":"Q[._]Hot","model":"Q.Hot"},{"regex":"Q[._]Me Phone7 3G","model":"Q.Me Phone 7 3G"},{"regex":"Q[._]Me Plus7","model":"Q.Me Plus 7"},{"regex":"Q[._]Me","model":"Q.Me"},{"regex":"Q[._]Mate R99","model":"Q.Mate R99"},{"regex":"Q[._]Next B7","model":"Q.Next B7"},{"regex":"Q[._]Next J2","model":"Q.Next J2"},{"regex":"Q[._]TOP-X8","model":"Q.Top X8"},{"regex":"Q[._]You","model":"Q.You"},{"regex":"QTAB Tab4","model":"QTab Tab4","device":"tablet"},{"regex":"ZYQ-Q88","model":"Q88","device":"tablet"}]},"Toshiba":{"regex":"Toshiba|TSBNetTV/|portalmmm/[12].0 TS|T-01C|T-0[12]D|IS04|IS11T|AT1S0|AT300SE|AT(10-A|10[PL]E-A|100|200|270|300|330|374|400|470|500|503|570|703|830)","device":"smartphone","models":[{"regex":"T-01C","model":"Regza T-01C"},{"regex":"T-01D","model":"Regza T-01D"},{"regex":"T-02D","model":"Regza T-02D"},{"regex":"IS04","model":"Regza IS04"},{"regex":"IS11T","model":"Regza IS11T"},{"regex":"AT1S0","model":"Regza AT1S0","device":"tablet"},{"regex":"AT300SE","model":"Regza AT300SE","device":"tablet"},{"regex":"AT500a","model":"Regza AT500a","device":"tablet"},{"regex":"AT(100|200|270|300|330|374|400|470|500|503|570|703|830)","model":"Regza AT$1","device":"tablet"},{"regex":"AT10([PL])E-A","model":"Excite AT10$1-A","device":"tablet"},{"regex":"AT10-A","model":"Excite AT10-A","device":"tablet"},{"regex":"TSBNetTV/","device":"tv","model":""},{"regex":"Toshiba[ /_\\\\-]?([a-z0-9_ \\\\-]+) Build","model":"$1"},{"regex":"Toshiba[ /_\\\\-]?([a-z0-9_\\\\-]+)","model":"$1"},{"regex":"portalmmm/[12].0 (TS[a-z0-9 ]+)","model":"$1"}]},"Vivax":{"regex":"VIVAX|(Fly5[_ ]Lite)[;)/ ]","device":"smartphone","models":[{"regex":"Fly5[_ ]Lite","model":"Fly 5 Lite"},{"regex":"VIVAX[ _]Fly3","model":"Fly 3"},{"regex":"SMART Point X5010","model":"Smart Point X5010"}]},"Fly":{"regex":"Fly(?!Flow|touch)|FS50[1-9]|FS51[0-8]|FS52[0-9]|FS530|FS55[134]|FS40[1-9]|FS45[1-9]|4FS06|MERIDIAN-|(?:IQ[0-9]{3,})[ _]?(?:Quad|Firebird|Quattro|Turbo|Magic)?(?: Build|[;/\\\\)])","device":"smartphone","models":[{"regex":"(?:Fly_)?IQ310(?: Build|[;/\\\\)])","model":"Panorama","device":"tablet"},{"regex":"(?:Fly_)?IQ236(?: Build|[;/\\\\)])","model":"Victory"},{"regex":"FS506","model":"Cirrus 3"},{"regex":"FS403","model":"Cumulus 1"},{"regex":"FS508","model":"Cirrus 6"},{"regex":"FS511","model":"Cirrus 7"},{"regex":"FS509","model":"Nimbus 9"},{"regex":"FS406","model":"Stratus 5"},{"regex":"FS404","model":"Stratus 3"},{"regex":"FS504","model":"Cirrus 2"},{"regex":"FS407","model":"Stratus 6"},{"regex":"FS401","model":"Stratus 1"},{"regex":"FS402","model":"Stratus 2"},{"regex":"FS501","model":"Nimbus 3"},{"regex":"FS502","model":"Cirrus 1"},{"regex":"FS507","model":"Cirrus 4"},{"regex":"FS505","model":"Nimbus 7"},{"regex":"FS551","model":"Nimbus 4"},{"regex":"FS514","model":"Cirrus 8"},{"regex":"FS553","model":"Cirrus 9"},{"regex":"FS554","model":"Power Plus FHD"},{"regex":"FS517","model":"Cirrus 11"},{"regex":"FS516","model":"Cirrus 12"},{"regex":"FS518","model":"Cirrus 13"},{"regex":"FS520","model":"Selfie 1"},{"regex":"FS521","model":"Power Plus 1"},{"regex":"FS522","model":"Cirrus 14"},{"regex":"FS523","model":"Cirrus 16"},{"regex":"FS524","model":"Knockout"},{"regex":"FS526","model":"Power Plus 2"},{"regex":"FS527","model":"Nimbus 17"},{"regex":"FS528","model":"Memory Plus"},{"regex":"FS529","model":"\u0421hamp"},{"regex":"FS530","model":"Power Plus XXL"},{"regex":"FS454","model":"Nimbus 8"},{"regex":"FS452","model":"Nimbus 2"},{"regex":"FS512","model":"Nimbus 10"},{"regex":"FS510","model":"Nimbus 12"},{"regex":"FS451","model":"Nimbus 1"},{"regex":"FS405","model":"Stratus 4"},{"regex":"FS408","model":"Stratus 8"},{"regex":"FS409","model":"Stratus 9"},{"regex":"FS455","model":"Nimbus 11"},{"regex":"FS456","model":"Nimbus 14"},{"regex":"FS457","model":"Nimbus 15"},{"regex":"FS459","model":"Nimbus 16"},{"regex":"FS458","model":"Stratus 7"},{"regex":"(?:Fly_)?IQ237(?: Build|[;/\\\\)])","model":"Dynamic"},{"regex":"(?:Fly_)?IQ238(?: Build|[;/\\\\)])","model":"Jazz"},{"regex":"(?:Fly_)?IQ240(?: Build|[;/\\\\)])","model":"Whizz"},{"regex":"(?:Fly_)?IQ255(?: Build|[;/\\\\)])","model":"Pride"},{"regex":"(?:Fly_)?IQ270(?: Firebird)?(?: Build|[;/\\\\)])","model":"Firebird"},{"regex":"(?:Fly_)?IQ275(?: Build|[;/\\\\)])","model":"Marathon"},{"regex":"(?:Fly_)?IQ285(?: Turbo)?(?: Build|[;/\\\\)])","model":"Turbo"},{"regex":"(?:Fly_)?IQ430(?: Build|[;/\\\\)])","model":"Evoke"},{"regex":"(?:Fly_)?IQ431(?: Build|[;/\\\\)])","model":"Glory"},{"regex":"(?:Fly_)?IQ432(?: Build|[;/\\\\)])","model":"Era Nano 1"},{"regex":"(?:Fly_)?IQ434(?: Build|[;/\\\\)])","model":"Era Nano 5"},{"regex":"(?:Fly_)?IQ436(?: Build|[;/\\\\)])","model":"Era Nano 3"},{"regex":"(?:Fly_)?IQ440(?: Build|[;/\\\\)])","model":"Energy"},{"regex":"(?:Fly_)?IQ441(?: Build|[;/\\\\)])","model":"Radiance"},{"regex":"(?:Fly_)?IQ442(?: Build|[;/\\\\)])","model":"Miracle"},{"regex":"(?:Fly_)?IQ442 Quad(?: Build|[;/\\\\)])","model":"Miracle 2"},{"regex":"(?:Fly_)?IQ443(?: Build|[;/\\\\)])","model":"Trend"},{"regex":"(?:Fly_)?IQ444(?: Quattro)?(?: Build|[;/\\\\)])","model":"Diamond 2"},{"regex":"(?:Fly_)?IQ445(?: Build|[;/\\\\)])","model":"Genius"},{"regex":"(?:Fly_)?IQ446(?: Magic)?(?: Build|[;/\\\\)])","model":"Magic"},{"regex":"(?:Fly_)?IQ447(?: Build|[;/\\\\)])","model":"Era Life 1"},{"regex":"(?:Fly_)?IQ448(?: Build|[;/\\\\)])","model":"Chic"},{"regex":"(?:Fly_)?IQ449(?: Build|[;/\\\\)])","model":"Pronto"},{"regex":"(?:Fly_)?IQ450(?: Build|[;/\\\\)])","model":"Horizon"},{"regex":"(?:Fly_)?IQ450[ _]Quattro(?: Build|[;/\\\\)])","model":"Horizon 2"},{"regex":"(?:Fly_)?IQ451(?: Build|[;/\\\\)])","model":"Vista"},{"regex":"(?:Fly_)?IQ452 Quad(?: Build|[;/\\\\)])","model":"Ego Vision 1"},{"regex":"(?:Fly_)?IQ454(?: Build|[;/\\\\)])","model":"Evo Tech 1"},{"regex":"(?:Fly_)?IQ456(?: Build|[;/\\\\)])","model":"Era Life 2"},{"regex":"(?:Fly_)?IQ4403(?: Build|[;/\\\\)])","model":"Energy 3"},{"regex":"(?:Fly_)?IQ4404(?: Build|[;/\\\\)])","model":"Spark"},{"regex":"(?:Fly_)?IQ4406(?: Build|[;/\\\\)])","model":"Era Nano 6"},{"regex":"(?:Fly_)?IQ4410 Quad(?: Build|[;/\\\\)])","model":"Phoenix"},{"regex":"(?:Fly_)?IQ4411(?: Build|[;/\\\\)])","model":"Energy 2"},{"regex":"(?:Fly_)?IQ4412 Quad(?: Build|[;/\\\\)])","model":"Coral"},{"regex":"(?:Fly_)?IQ4413[ _]Quad(?: Build|[;/\\\\)])","model":"Evo Chic 3"},{"regex":"(?:Fly_)?IQ4414 Quad(?: Build|[;/\\\\)])","model":"Evo Tech 3"},{"regex":"(?:Fly_)?IQ4415 Quad(?: Build|[;/\\\\)])","model":"Era Style 3"},{"regex":"(?:Fly_)?IQ4490(?: Build|[;/\\\\)])","model":"Era Nano 4"},{"regex":"(?:Fly_)?IQ4504 Quad(?: Build|[;/\\\\)])","model":"Evo Energy 5"},{"regex":"(?:Fly_)?IQ([0-9]+) ?(?:Quad|Firebird|Quattro)? Build","model":"IQ$1"},{"regex":"Fly[ _\\\\-]?([a-z0-9_]+)/","model":"$1","device":"feature phone"},{"regex":"Flylife[ _\\\\-]?([^/;]+) Build","model":"Flylife $1","device":"tablet"},{"regex":"Fly[ _\\\\-]?([a-z0-9]+)","model":"$1"},{"regex":"MERIDIAN-([a-z0-9]+)","model":"$1"}]},"FinePower":{"regex":"FinePower[_ ]?([AB][1-9]|[CD][1-9])[;)/ ]","device":"smartphone","models":[{"regex":"FinePower[_ ]?([AB][1-9])[;)/ ]","model":"$1","device":"tablet"},{"regex":"FinePower[_ ]?([CD][1-9])[;)/ ]","model":"$1"}]},"Freetel":{"regex":"(FTJ152[ABCD]|FT141B|FT142D_LTEXM|FT142A?|FTJ161[AB]|FTJ1[56]2E|FTJ162D|FTE161[GE])[;)/ ]","device":"smartphone","models":[{"regex":"FTJ152C","model":"Samurai Miyabi"},{"regex":"FTJ161A","model":"Musashi"},{"regex":"FTE161E","model":"Ice 2"},{"regex":"FTE161G","model":"Ice 2 Plus"},{"regex":"FTJ162E","model":"Raijin"},{"regex":"FT141B","model":"Nico"},{"regex":"FT142D_LTEXM","model":"XM"},{"regex":"FT142A?","model":"Priori 2"},{"regex":"FTJ152A","model":"Priori 3"},{"regex":"FTJ162D","model":"Priori 4"},{"regex":"FTJ152B","model":"Priori 3S LTE"},{"regex":"FTJ152D","model":"Samurai Kiwami"},{"regex":"FTJ161B","model":"Samurai Rei"},{"regex":"FTJ152E","model":"Katana 1"}]},"Zeemi":{"regex":"ZEEMI[ _-]","device":"smartphone","models":[{"regex":"ZEEMI[ _-]([^/;]+) Build","model":"$1"},{"regex":"ZEEMI[ _-]([^/;)]+)[/;)]","model":"$1"}]},"Zenek":{"regex":"Z5007|Z551[679]|Z6001","device":"smartphone","models":[{"regex":"Z5517","model":"Leopardo"},{"regex":"Z6001","model":"Libelula"},{"regex":"Z5007","model":"Oso"},{"regex":"Z5519","model":"Ping\xfbino"},{"regex":"Z5516","model":"Zebra"}]},"Zopo":{"regex":"(?:ZOPO[_ ])?(Flash X3|ZP[0-9]{2,}[^/;]+) Build","device":"smartphone","models":[{"regex":"ZP998[);/ ]","model":"C2 II"},{"regex":"(?:ZOPO_)?ZP980[+][);/ ]","model":"ZP980+"},{"regex":"(?:ZOPO_)?ZP980[);/ ]","model":"Scorpio"},{"regex":"ZP952[);/ ]","model":"Speed 7 Plus"},{"regex":"ZP951[);/ ]","model":"Speed 7"},{"regex":"ZP950[+h]?[);/ ]","model":"Leader Max"},{"regex":"ZP(?:900H?|910)[);/ ]","model":"Leader"},{"regex":"ZP(?:800H|810)[);/ ]","model":"Libero HD"},{"regex":"ZP500[+]?[);/ ]","model":"Libero"},{"regex":"ZP330[);/ ]","model":"Color C"},{"regex":"ZP300[S+]?[);/ ]","model":"Field"},{"regex":"ZP200[+]?[);/ ]","model":"Shining"},{"regex":"ZP100[);/ ]","model":"Pilot"},{"regex":"(Flash X3|ZP[0-9]{2,}[^/;]+) Build","model":"$1"}]},"ZTE":{"regex":"ZTE|AxonPhone|([a-z0-9]+)_USA_Cricket|(?:Blade (?:L110|L[2357]|L7A|S6|V[6789]|V8Q|V8 SE|V9 VITA|X7|A(310|460|465|475|520|530|602)|V580)|N9[15]8St|NX(?:403A|404H|406E|40[X2]|507J|503A|505J|506J|508J|510J|512J|511J|513J|521J|523J_V1|529J|531J|541J|549J|551J|563J|569[HJ]|573J|575J|591J|595J|597J|601J|907J|616J)|N951[0579]|N9180|N9101|N913[67]|N952[01]|N9560|N9810|N799D|[UV]9180|[UV]9815|Z(?:233V|331|667T|768G|792|81[25]|82[08]|83[12359]|85[125]|851M|(557|71[67]|798|836|861|916)BL|986DL|(232|718|828)TL|(233|353|558|717|799|837|862|899|917|963)VL|955A|95[678]|965|97[018]|98[1237]|986U|999)|Apex2|G (LTE|Lux)|Vec)[);/ ]|KIS II Max|Kis 3|Z930L","device":"smartphone","models":[{"regex":"N799D[);/ ]","model":"Blade Eg"},{"regex":"N918St[);/ ]","model":"V5S"},{"regex":"N958St[);/ ]","model":"V5 Max"},{"regex":"N9101[);/ ]","model":"Imperial"},{"regex":"N9120[);/ ]","model":"Avid"},{"regex":"N9136[);/ ]","model":"Prestige 2"},{"regex":"N9137[);/ ]","model":"Tempo X"},{"regex":"N9180[);/ ]","model":"V5"},{"regex":"N9510[);/ ]","model":"Warp 4G"},{"regex":"N9517[);/ ]","model":"Blade Force"},{"regex":"N9515[);/ ]","model":"Warp Sync"},{"regex":"N9519[);/ ]","model":"Warp 7"},{"regex":"N9520[);/ ]","model":"Boost Max"},{"regex":"N9521[);/ ]","model":"Boost Max+"},{"regex":"N9560[);/ ]","model":"Max XL"},{"regex":"N9810[);/ ]","model":"Vital"},{"regex":"NX40[X2][);/ ]","model":"Nubia Z5 mini"},{"regex":"NX(403[AE]|406E|404H)[);/ ]","model":"Nubia Z5S Mini"},{"regex":"NX503A[);/ ]","model":"Nubia Z5S"},{"regex":"NX506J[);/ ]","model":"Nubia Z7"},{"regex":"NX507J[);/ ]","model":"Nubia Z7 mini"},{"regex":"NX505J[);/ ]","model":"Nubia Z7 max"},{"regex":"NX508J[);/ ]","model":"Nubia Z9"},{"regex":"NX5[12]1J[);/ ]","model":"Nubia Z9 mini"},{"regex":"NX510J[);/ ]","model":"Nubia Z9 max"},{"regex":"NX512J[);/ ]","model":"Nubia Z9 max dual"},{"regex":"NX531J[);/ ]","model":"Nubia Z11"},{"regex":"NX523J_V1","model":"Nubia Z11 Max"},{"regex":"NX529J[);/ ]","model":"Nubia Z11 mini"},{"regex":"NX549J[);/ ]","model":"Nubia Z11 mini S"},{"regex":"NX616J[);/ ]","model":"Nubia Z18S"},{"regex":"NX551J[);/ ]","model":"Nubia M2"},{"regex":"NX563J[);/ ]","model":"Nubia Z17"},{"regex":"NX569H[);/ ]","model":"Nubia Z17 Mini"},{"regex":"NX595J","model":"Nubia Z17S"},{"regex":"NX513J[);/ ]","model":"Nubia My Prague"},{"regex":"NX591J[);/ ]","model":"Nubia Z17 Lite"},{"regex":"NX569J","model":"Nubia Z17 mini"},{"regex":"NX601J[);/ ]","model":"Nubia X6"},{"regex":"NX573J","model":"Nubia M2 Lite"},{"regex":"NX907J[);/ ]","model":"Nubia M2 Play"},{"regex":"NX541J","model":"Nubia N1"},{"regex":"NX597J","model":"Nubia N1 Lite"},{"regex":"NX575J","model":"Nubia N2"},{"regex":"[UV]9180[);/ ]","model":"V5 Red Bull"},{"regex":"[UV]9815[);/ ]","model":"Grand Memo LTE"},{"regex":"V779M","model":"Joey Jump 2"},{"regex":"V807","model":"Blade C"},{"regex":"V809","model":"Blade C2"},{"regex":"(?:ZTE_)?V829","model":"Blade G Pro"},{"regex":"V882","model":"Lord"},{"regex":"V967S","model":"Grand X2"},{"regex":"V970M?|V987","model":"Grand X"},{"regex":"V8000","model":"Nova 4"},{"regex":"Z95[67]","model":"Grand X4"},{"regex":"Z987","model":"Grand X Max+"},{"regex":"(?:ZTE_)?Grand[ _]Era","model":"Grand Era"},{"regex":"V788D","model":"Kis Plus"},{"regex":"Z331[);/ ]","model":"Z331"},{"regex":"Blade (A(0620|310|452|460|462|465|475|510|512|520|530|602|612|910)|L110|V0730|V0800|V580|V1000)[);/ ]","model":"Blade $1"},{"regex":"Blade L2 Plus[);/ ]","model":"Blade L2 Plus"},{"regex":"Blade L2[);/ ]","model":"Blade L2"},{"regex":"Blade L3 Plus[);/ ]","model":"Blade L3 Plus"},{"regex":"Blade L3 Apex[);/ ]","model":"Blade L3 Apex"},{"regex":"Blade L3[);/ ]","model":"Blade L3"},{"regex":"Blade L5 Plus[);/ ]","model":"Blade L5 Plus"},{"regex":"Blade L5[);/ ]","model":"Blade L5"},{"regex":"Blade L6[);/ ]","model":"Blade L6"},{"regex":"Blade L7A[);/ ]","model":"Blade L7A"},{"regex":"Blade L7[);/ ]","model":"Blade L7"},{"regex":"Blade L8[);/ ]","model":"Blade L8"},{"regex":"Blade S6 Plus[);/ ]","model":"Blade S6 Plus"},{"regex":"Blade S6[);/ ]","model":"Blade S6"},{"regex":"T920[);/ ]","model":"Blade S7"},{"regex":"Blade V6 MAX[);/ ]","model":"Blade V6 Max"},{"regex":"Blade V6 Plus[);/ ]","model":"Blade V6 Plus"},{"regex":"Blade V6[);/ ]","model":"Blade V6"},{"regex":"Blade (?:V7 Lite|V0720)[);/ ]","model":"Blade V7 Lite"},{"regex":"Blade V7[);/ ]","model":"Blade V7"},{"regex":"Blade X7[);/ ]","model":"Blade X7"},{"regex":"Blade V8Q[);/ ]","model":"Blade V8Q"},{"regex":"Blade V8 SE[);/ ]","model":"Blade V8 SE"},{"regex":"Blade V9 Vita[);/ ]","model":"Blade V9 Vita"},{"regex":"Blade V9[);/ ]","model":"Blade V9"},{"regex":"Blade V10 Vita[);/ ]","model":"Blade V10 Vita"},{"regex":"BLADE V0820[);/ ]","model":"Blade V8 Lite"},{"regex":"BLADE V0850[);/ ]","model":"Blade V8 Mini"},{"regex":"(Apex2|G (LTE|Lux)|Vec)","model":"Blade $1"},{"regex":"Z768G[);/ ]","model":"Midnight"},{"regex":"Z820","model":"Obsidian"},{"regex":"Z986U","model":"Blade Max 3"},{"regex":"Z971","model":"Blade Spark"},{"regex":"Z978","model":"Blade V8 Pro"},{"regex":"Z839","model":"Blade Vantage"},{"regex":"Z930L","model":"Unico LTE"},{"regex":"Z965","model":"Blade X"},{"regex":"Z981","model":"Blade Z Max Pro"},{"regex":"Z982","model":"Blade Z Max"},{"regex":"Z983","model":"Blade X Max"},{"regex":"Z717[BV]L[);/ ]","model":"Citrine LTE"},{"regex":"Z233VL","model":"Cymbal-C LTE"},{"regex":"Z233V","model":"Cymbal LTE"},{"regex":"Z232TL","model":"Cymbal-G LTE"},{"regex":"Z353VL","model":"Cymbal-T LTE"},{"regex":"Z718TL","model":"Jasper LTE"},{"regex":"KIS II Max","model":"Kis II Max"},{"regex":"Kis 3","model":"Kis 3"},{"regex":"(?:Z798BL|Z799VL)[);/ ]","model":"Majesty Pro LTE"},{"regex":"Z899VL","model":"Majesty Pro Plus LTE"},{"regex":"Z828TL","model":"Midnight Pro LTE"},{"regex":"Z792","model":"Fanfare"},{"regex":"Z812","model":"Maven"},{"regex":"Z815","model":"Fanfare 2"},{"regex":"Z831","model":"Maven 2"},{"regex":"Z832","model":"Sonata 3"},{"regex":"Z835","model":"Maven 3"},{"regex":"Z851[);/ ]","model":"Prelude Plus"},{"regex":"Z851M","model":"Overture 3"},{"regex":"Z852","model":"Fanfare 3"},{"regex":"Z828","model":"Avid Plus"},{"regex":"Z855","model":"Avid 4"},{"regex":"Z833","model":"Avid TRIO"},{"regex":"(?:Z836BL|Z837VL)[);/ ]","model":"ZFive 2 LTE"},{"regex":"Z558VL","model":"ZFive C LTE"},{"regex":"Z557BL","model":"ZFive G LTE"},{"regex":"(?:Z861BL|Z862VL)[);/ ]","model":"ZFive L LTE"},{"regex":"Z916BL","model":"ZMax Grand LTE"},{"regex":"Z917VL","model":"ZMax Champ LTE"},{"regex":"(?:Z958|Z955A)[);/ ]","model":"ZMax 2"},{"regex":"Z963VL","model":"Max Duo LTE"},{"regex":"Z970","model":"ZMax Z970"},{"regex":"Z986DL","model":"MAX Blue LTE"},{"regex":"Z992","model":"Avail 2"},{"regex":"Z999","model":"Axon M"},{"regex":"B2016","model":"Axon Mini"},{"regex":"A2015","model":"Axon Tianji"},{"regex":"A2017[GU]?","model":"Axon 7"},{"regex":"A2019G Pro","model":"Axon Pro"},{"regex":"B2017G","model":"Axon 7 Mini"},{"regex":"A2020G? Pro[);/ ]","model":"Axon 10 Pro"},{"regex":"Z667T","model":"Zinger"},{"regex":"V?975|geek","model":"Geek"},{"regex":"Z716BL","model":"Citrine LTE"},{"regex":"X500","model":"Score"},{"regex":"X501","model":"Groove"},{"regex":"G-X991","model":"Rio"},{"regex":"F-450","model":"Adamant"},{"regex":"AxonPhone ([^;/]+) Build","model":"AxonPhone $1"},{"regex":"([a-z0-9]+)_USA_Cricket","model":"$1"},{"regex":"ZTE[\\\\- ](V98|V96A|V81|V70)[);/ ]","model":"$1","device":"tablet"},{"regex":"ZTE[\\\\- ]([a-z0-9\\\\-_ ]+) Build","model":"$1"},{"regex":"ZTE-(?:G |G-)?([a-z0-9 _]+)","model":"$1"},{"regex":"ZTE[ _]([a-z0-9]+)","model":"$1"}]},"Zuum":{"regex":"Zuum[ _-]|COVET|MAGNO|ONIX S|STEDI|STELLAR Z","device":"smartphone","models":[{"regex":"COVET","model":"Covet"},{"regex":"MAGNO","model":"Magno"},{"regex":"ONIX S","model":"Onix S"},{"regex":"STEDI","model":"Stedi"},{"regex":"STELLAR Z","model":"Stellar Z"},{"regex":"Zuum[ _-]([^;/]+) Build","model":"$1"},{"regex":"Zuum[ _-]?([^;/)]+)[);/ ]","model":"$1"}]},"Zen":{"regex":"(Admire[_ ][^/;]+|Cinemax[^/;)]+)(?:Build|\\\\))","device":"smartphone","model":"$1"},"Zync":{"regex":"ZYNC|(Cloud Z5|Z1000|Z18|Z99 Dual Core|Z99[_ ][23]G|Z99|Z900[_ ]Plus|Z909|Z930[+]|Z930)","device":"tablet","models":[{"regex":"(Z18|Z99 Dual Core|Z99[_ ][23]G|Z99|Z900[_ ]Plus|Z909|Z930[+]|Z930)","model":"$1"},{"regex":"(Z1000[^/;]+)Build","model":"$1"},{"regex":"Cloud (Z5)","model":"Cloud $1"},{"regex":"ZYNC Cloud[ _]([^;]+)Build","model":"Cloud $1"},{"regex":"ZYNC[ _]([^;]+)Build","model":"$1"}]},"Lemhoov":{"regex":"Lemhoov","device":"smartphone","models":[{"regex":"Lemhoov[ _-]([^/;]+) Build","model":"$1"}]},"MTC":{"regex":"MTC[ _](97[82]|970|982[OT]|982|1078)|SMART[ _](Race|Sprint)[ _]4G|MTC975","device":"smartphone","models":[{"regex":"MTC[ _](97[82]|970[H]?|982[OT]|982)","model":"$1"},{"regex":"MTC(975)","model":"$1"},{"regex":"MTC[ _](1078)","model":"$1","device":"tablet"},{"regex":"SMART[ _]Race[ _]4G","model":"Smart Race 4G"},{"regex":"SMART[ _]Sprint[ _]4G","model":"Smart Sprint 4G"}]},"MegaFon":{"regex":"MFLoginPh|(MFLogin4|MS3B|SP-A5|SP-A20i)[)\\\\; ]","device":"smartphone","models":[{"regex":"MFLoginPh","model":"Login+"},{"regex":"MFLogin4","model":"Login 4 LTE"},{"regex":"MS3B","model":"Optima"},{"regex":"SP-A20i","model":"Mint"},{"regex":"(SP-A5)","model":"$1"}]},"Inoi":{"regex":"INOI","device":"smartphone","models":[{"regex":"INOI_([^;/]+)(?:Build|\\\\))","model":"$1"}]},"Vertex":{"regex":"Lion_Dual|V709X|Baccara|Eagle[ _]4G|Impress[ _]([^;/]+)(?:Build|\\\\))","device":"smartphone","models":[{"regex":"(Lion_Dual|Baccara|Eagle[ _]4G)","model":"$1"},{"regex":"(Impress[ _]([^;/]+))(?:Build|\\\\))","model":"$1"},{"regex":"(V709X)","device":"tablet","model":"$1"}]},"Unknown":{"regex":"WebTV/(\\\\d+\\\\.\\\\d+)","device":"tv","model":"Web TV"},"Starway":{"regex":"Andromeda[ _]S(707|84[05])[;/) ]","device":"tablet","model":"Andromeda S$1"},"Savio":{"regex":"TB-PO1 Build","device":"tv","models":[{"regex":"(TB-PO1)","model":"$1"}]},"Simbans":{"regex":"TangoTab|Presto[ )]|Ultimax|Valumax|S72-B|SX2W","device":"tablet","models":[{"regex":"TangoTab","model":"TangoTab"},{"regex":"Ultimax","model":"Ultimax"},{"regex":"Valumax","model":"Valumax"},{"regex":"Presto","model":"Presto"},{"regex":"S72-B","model":"S72-B"},{"regex":"SX2W","model":"SX2W"}]},"MYFON":{"regex":"MYPAD7s","device":"tablet","model":"My Pad 7s"},"X-TIGI":{"regex":"X[-_]TIGI","device":"smartphone","models":[{"regex":"X-TIGI_JOY10_PRO","model":"Joy 10 Pro","device":"tablet"},{"regex":"X-TIGI_JOY7_MAX","model":"Joy 7 Max","device":"tablet"},{"regex":"X-TIGI[_ ]V28[_ ]LTE","model":"V28 LTE"},{"regex":"X[-_]TIGI[ _-]([^/;)]+) Build","model":"$1"}]},"Xiaolajiao":{"regex":"(LA2-(?:L|S[N]?))[);/ ]","device":"smartphone","model":"$1"},"R-TV":{"regex":"R-TV BOX[ _]?(MINI\\\\+|X99|X10 PRO|[RXS]10)","device":"tv","model":"Box $1"},"NEXBOX":{"regex":"(MXQ|MXQ-Pro)-NEXBOX|NEXBOX-([^) ]+)","device":"tv","models":[{"regex":"MXQ-Pro-NEXBOX","model":"MXQ Pro"},{"regex":"MXQ-NEXBOX","model":"MXQ"},{"regex":"NEXBOX-([^) ]+)","model":"$1"}]},"True":{"regex":"SMART[ _](MAX 4.0 PLUS|4G Speedy 5.0 Plus)","device":"smartphone","models":[{"regex":"SMART MAX 4.0 PLUS","model":"Smart Max 4.0 Plus"},{"regex":"SMART 4G Speedy 5.0 Plus","model":"Smart 4G Speedy 5.0 Plus"}]},"Yandex":{"regex":"(YNDX-000SB)[;)\\\\ ]","device":"smartphone","model":"$1"},"FORME":{"regex":"FORME[ _-]","device":"smartphone","models":[{"regex":"FORME[ _-]F520[;)\\\\ ]","model":"Forever"},{"regex":"FORME[ _-](A37|R7S)[;)\\\\ ]","model":"$1"}]},"Shuttle":{"regex":"(PNT-704[025])[;)/ ]","device":"tablet","model":"$1"}}')},function(e,r,o){"use strict";var t=o(4),n=o(1);Object.defineProperty(r,"__esModule",{value:!0});var l=o(3),i=o(2),a=o(28),d=o(92);r.default=function e(){var r=this;n(this,e),this.parse=function(e){var o={type:"",brand:"",model:""};if(!r.isHbbTv(e))return o;o.type="television";for(var n=0,m=Object.entries(d);n<m.length;n++){var u=m[n],s=t(u,2),g=s[0],c=s[1],x=i.userAgentParser(c.regex,e);if(x){if(o.brand=g,c.model)o.model=a.buildModel(l.variableReplacement(c.model,x)).trim();else if(c.models){var p=!0,f=!1,S=void 0;try{for(var h,v=c.models[Symbol.iterator]();!(p=(h=v.next()).done);p=!0){var A=h.value,b=i.userAgentParser(A.regex,e);if(b){o.model=a.buildModel(l.variableReplacement(A.model,b)).trim();break}}}catch(T){f=!0,S=T}finally{try{p||null==v.return||v.return()}finally{if(f)throw S}}}break}}return o},this.isHbbTv=function(e){return i.userAgentParser("HbbTV/([1-9]{1}(?:.[0-9]{1}){1,2})",e)}}},function(e){e.exports=JSON.parse('{"Airties":{"regex":"Airties","device":"tv","models":[{"regex":"Airties; ?([^);/]+)","model":"$1"}]},"Altech UEC":{"regex":"Altech UEC","device":"tv","models":[{"regex":"Altech UEC; ?([^);/]+)","model":"$1"}]},"BangOlufsen":{"regex":"Bangolufsen","device":"tv","model":"BeoVision"},"Changhong":{"regex":"Changhong","device":"tv","models":[{"regex":"Changhong; ?([^);/]+)","model":"$1"}]},"CreNova":{"regex":"CreNova","device":"tv","model":"CNV001"},"DMM":{"regex":"DMM","device":"tv","model":"Dreambox"},"Grundig":{"regex":"(OWB|Grundig|Arcelik)","device":"tv","model":""},"Hisense":{"regex":"Hisense","device":"tv","models":[{"regex":"(L[A-Z]{2,3}[0-9]{2}[A-Z][0-9]{3,4}[A-Z]{0,6}[0-9]?[A-Z]?)","model":"$1"},{"regex":"(H[A-Z]?[0-9]{2}[A-Z][0-9]{3,4}[A-Z]{0,4})","model":"$1"}]},"Humax":{"regex":"Humax","device":"tv","models":[{"regex":"(HD-FOX C|HD (FOX\\\\+|NANO)|iCord (HD\\\\+|MINI|Cable)|(CX|IR)HD-5100(C|S)|HM9503HD)","model":"$1"},{"regex":"HMS1000S","model":"HMS-1000S"},{"regex":"Humax; ([^);/]+)","model":"$1"}]},"Ikea":{"regex":"Ikea","device":"tv","models":[{"regex":"(LF1V[0-9]{3})","model":"$1"}]},"Intek":{"regex":"Intek","device":"tv","models":[{"regex":"(Vantage|VT-100|VT-1)","model":"$1"}]},"Inverto":{"regex":"Inverto","device":"tv","models":[{"regex":"inverto; ([^);/]+)","model":"$1"},{"regex":"(Volksbox Web Edition|Volksbox Essential|Volksbox II|Volksbox)","model":"$1"}]},"LG":{"regex":"LGE","device":"tv","models":[{"regex":"(NetCast [0-9]{1}.[0-9]{1}|GLOBAL_PLAT3)","model":"$1"},{"regex":"(OLED[0-9]{2}[A-Z][0-9][A-Z])","model":"$1"},{"regex":"LGE;? ?([0-9]{2}[A-Z]{2}[0-9]{2,4}[A-Z]?)","model":"$1"}]},"Loewe":{"regex":"Loewe","device":"tv","models":[{"regex":"([A-Z]{2}[0-9]{3})","model":"$1"}]},"MediaTek":{"regex":"MTK","device":"tv","models":[{"regex":"(MT[0-9]{4})","model":"$1"}]},"Medion":{"regex":"Medion","device":"tv","models":[{"regex":"(MB[0-9]{2})","model":"$1"}]},"Metz":{"regex":"Metz","device":"tv","model":""},"Panasonic":{"regex":"Panasonic","device":"tv","models":[{"regex":"(VIERA [0-9]{1,4})|(DIGA [A-Z]{1}[0-9]{4})","model":"$1"},{"regex":"DIGA Webkit ([A-Z]{1}[0-9]{4})","model":"DIGA $1"}]},"PEAQ":{"regex":"PEAQ","device":"tv","models":[{"regex":"(LF1V[0-9]{3})","model":"$1"}]},"Philips":{"regex":"Philips|NETTV/","device":"tv","models":[{"regex":"Philips[,;] ?((?! )[^),;/]+)","model":"$1"},{"regex":"NETTV/[0-9\\\\.]{5}","model":"NetTV Series"}]},"Samsung":{"regex":"Samsung|Maple_2011","device":"tv","models":[{"regex":"SmartTV(201[2-9])","model":"Smart TV $1"},{"regex":"Maple_2011","model":"Smart TV 2011"}]},"Selevision":{"regex":"Selevision","device":"tv","models":[{"regex":"Selevision; (?:Selevision )?([^);/]+)","model":"$1"},{"regex":"(EMC1000i)","model":"$1"}]},"Sharp":{"regex":"Sharp","device":"tv","models":[{"regex":"Sharp[,;] ?((?! |HbbTV)[^),;/]+)","model":"$1"},{"regex":"(LE[0-9]{3}[A-Z]{0,3})","model":"$1"}]},"Skyworth":{"regex":"Sky_worth","device":"tv","models":[{"regex":"Sky_worth;([^);/]+)","model":"$1"}]},"Smart":{"regex":"Smart[^a-z]","device":"tv","models":[{"regex":"Smart; ([^);/]+)","model":"$1"},{"regex":"([A-Z]{2}[0-9]{2}|ZAPPIX)","model":"$1"}]},"Sony":{"regex":"Sony","device":"tv","models":[{"regex":"(KDL?-?[0-9]{2}[A-Z]{1,2}[0-9]{1,5})","model":"$1"}]},"TechniSat":{"regex":"TechniSat","device":"tv","models":[{"regex":"((DigiCorder|MultyVision|Digit) (ISIO S|ISIO C|ISIO))","model":"$1"}]},"TechnoTrend":{"regex":"TechnoTrend","device":"tv","models":[{"regex":"([A-Z]{1}-[0-9]{3})","model":"$1"}]},"Telefunken":{"regex":"Telefunken","device":"tv","models":[{"regex":"(MB[0-9]{2})","model":"$1"}]},"TCL":{"regex":"TCL","device":"tv","models":[{"regex":"(LF1V[0-9]{3})","model":"$1"}]},"Thomson":{"regex":"THOMSON|THOM","device":"tv","models":[{"regex":"(LF1V[0-9]{3})","model":"$1"}]},"Toshiba":{"regex":"Toshiba","device":"tv","models":[{"regex":"(([0-9]{2}|DTV_)[A-Z]{2}[0-9]{1,3})","model":"$1"}]},"Vestel":{"regex":"Vestel","device":"tv","models":[{"regex":"(MB[0-9]{2})","model":"$1"}]},"Videoweb":{"regex":"videoweb|tv2n","device":"tv","models":[{"regex":"(tv2n)","model":"$1"},{"regex":"(videowebtv)","model":"VideoWeb TV"}]}}')},function(e,r,o){"use strict";var t=o(4),n=o(1);Object.defineProperty(r,"__esModule",{value:!0});var l=o(3),i=o(2),a=o(94);r.default=function e(){n(this,e),this.parse=function(e){for(var r={type:"",brand:"",model:""},o=0,n=Object.entries(a);o<n.length;o++){var d=n[o],m=t(d,2),u=m[0],s=m[1],g=i.userAgentParser(s.regex,e);if(g){r.type="car",r.brand=u,s.model&&(r.model=l.variableReplacement(s.model,g).trim());break}}return r}}},function(e){e.exports=JSON.parse('{"Tesla":{"regex":"QtCarBrowser","device":"car browser","model":"Model S"}}')},function(e,r,o){"use strict";var t=o(4),n=o(1);Object.defineProperty(r,"__esModule",{value:!0});var l=o(3),i=o(2),a=o(96);r.default=function e(){n(this,e),this.parse=function(e){for(var r={type:"",brand:"",model:""},o=0,n=Object.entries(a);o<n.length;o++){var d=n[o],m=t(d,2),u=m[0],s=m[1],g=i.userAgentParser(s.regex,e);if(g){if(r.type=s.device,r.brand=u,s.model)r.model=l.variableReplacement(s.model,g).trim();else if(s.models){var c=!0,x=!1,p=void 0;try{for(var f,S=s.models[Symbol.iterator]();!(c=(f=S.next()).done);c=!0){var h=f.value,v=i.userAgentParser(h.regex,e);if(v){r.model=l.variableReplacement(h.model,v).trim();break}}}catch(A){x=!0,p=A}finally{try{c||null==S.return||S.return()}finally{if(x)throw p}}}break}}return r}}},function(e){e.exports=JSON.parse('{"Archos":{"regex":"Archos.*GAMEPAD([2]?)","device":"console","model":"Gamepad $1"},"Microsoft":{"regex":"Xbox","device":"console","models":[{"regex":"Xbox One","model":"Xbox One"},{"regex":"Xbox","model":"Xbox 360"}]},"Nintendo":{"regex":"Nintendo (([3]?DS[i]?)|Wii[U]?)","device":"console","model":"$1"},"OUYA":{"regex":"OUYA","device":"console","model":"OUYA"},"Sega":{"regex":"Dreamcast","device":"console","model":"Dreamcast"},"Sony":{"regex":"PlayStation (3|4|Portable|Vita)","device":"console","model":"PlayStation $1"}}')},function(e,r,o){"use strict";var t=o(4),n=o(1);Object.defineProperty(r,"__esModule",{value:!0});var l=o(3),i=o(2),a=o(98);r.default=function e(){n(this,e),this.parse=function(e){for(var r={type:"",brand:"",model:""},o=0,n=Object.entries(a);o<n.length;o++){var d=n[o],m=t(d,2),u=m[0],s=m[1],g=i.userAgentParser(s.regex,e);if(g){if(r.type=s.device,r.brand=u,s.model)r.model=l.variableReplacement(s.model,g).trim();else if(s.models){var c=!0,x=!1,p=void 0;try{for(var f,S=s.models[Symbol.iterator]();!(c=(f=S.next()).done);c=!0){var h=f.value,v=i.userAgentParser(h.regex,e);if(v){r.model=l.variableReplacement(h.model,v).trim();break}}}catch(A){x=!0,p=A}finally{try{c||null==S.return||S.return()}finally{if(x)throw p}}}break}}return r}}},function(e){e.exports=JSON.parse('{"Apple":{"regex":"(?:Apple-)?iPod","device":"portable media player","models":[{"regex":"(?:Apple-)?iPod1[C,]1","model":"iPod Touch 1G"},{"regex":"(?:Apple-)?iPod2[C,]1","model":"iPod Touch 2G"},{"regex":"(?:Apple-)?iPod3[C,]1","model":"iPod Touch 3"},{"regex":"(?:Apple-)?iPod4[C,]1","model":"iPod Touch 4"},{"regex":"(?:Apple-)?iPod5[C,]1","model":"iPod Touch 5"},{"regex":"(?:Apple-)?iPod7[C,]1","model":"iPod Touch 6"},{"regex":"(?:Apple-)?iPod","model":"iPod Touch"}]},"Cowon":{"regex":"COWON ([^;/]+) Build","device":"portable media player","model":"$1"},"Microsoft":{"regex":"Microsoft ZuneHD","device":"portable media player","model":"Zune HD"},"Panasonic":{"device":"portable media player","regex":"(SV-MV100)","model":"$1"},"Samsung":{"regex":"YP-(G[SIPB]?1|G[57]0|GB70D)","device":"portable media player","models":[{"regex":"YP-G[B]?1","model":"Galaxy Player 4.0"},{"regex":"YP-G70","model":"Galaxy Player 5.0"},{"regex":"YP-GS1","model":"Galaxy Player 3.6"},{"regex":"YP-GI1","model":"Galaxy Player 4.2"},{"regex":"YP-GP1","model":"Galaxy Player 5.8 "},{"regex":"YP-G50","model":"Galaxy Player 50"},{"regex":"YP-GB70D","model":"Galaxy Player 70 Plus"}]}}')},function(e,r,o){"use strict";var t=o(4),n=o(1);Object.defineProperty(r,"__esModule",{value:!0});var l=o(6),i=o(3),a=o(2),d=o(100),m=["AmigaOS","IBM","GNU/Linux","Mac","Unix","Windows","BeOS","Chrome OS"],u={AIX:"AIX",AND:"Android",AMG:"AmigaOS",ATV:"Apple TV",ARL:"Arch Linux",BTR:"BackTrack",SBA:"Bada",BEO:"BeOS",BLB:"BlackBerry OS",QNX:"BlackBerry Tablet OS",BMP:"Brew",CES:"CentOS",COS:"Chrome OS",CYN:"CyanogenMod",DEB:"Debian",DFB:"DragonFly",FED:"Fedora",FOS:"Firefox OS",FIR:"Fire OS",BSD:"FreeBSD",GNT:"Gentoo",GTV:"Google TV",HPX:"HP-UX",HAI:"Haiku OS",IRI:"IRIX",INF:"Inferno",KOS:"KaiOS",KNO:"Knoppix",KBT:"Kubuntu",LIN:"GNU/Linux",LBT:"Lubuntu",VLN:"VectorLinux",MAC:"Mac",MAE:"Maemo",MDR:"Mandriva",SMG:"MeeGo",MCD:"MocorDroid",MIN:"Mint",MLD:"MildWild",MOR:"MorphOS",NBS:"NetBSD",MTK:"MTK / Nucleus",WII:"Nintendo",NDS:"Nintendo Mobile",OS2:"OS/2",T64:"OSF1",OBS:"OpenBSD",PSP:"PlayStation Portable",PS3:"PlayStation",RHT:"Red Hat",ROS:"RISC OS",REM:"Remix OS",RZD:"RazoDroiD",SAB:"Sabayon",SSE:"SUSE",SAF:"Sailfish OS",SLW:"Slackware",SOS:"Solaris",SYL:"Syllable",SYM:"Symbian",SYS:"Symbian OS",S40:"Symbian OS Series 40",S60:"Symbian OS Series 60",SY3:"Symbian^3",TDX:"ThreadX",TIZ:"Tizen",UBT:"Ubuntu",WTV:"WebTV",WIN:"Windows",WCE:"Windows CE",WIO:"Windows IoT",WMO:"Windows Mobile",WPH:"Windows Phone",WRT:"Windows RT",XBX:"Xbox",XBT:"Xubuntu",YNS:"YunOs",IOS:"iOS",POS:"palmOS",WOS:"webOS"},s={Android:["AND","CYN","FIR","REM","RZD","MLD","MCD","YNS"],AmigaOS:["AMG","MOR"],"Apple TV":["ATV"],BlackBerry:["BLB","QNX"],Brew:["BMP"],BeOS:["BEO","HAI"],"Chrome OS":["COS"],"Firefox OS":["FOS","KOS"],"Gaming Console":["WII","PS3"],"Google TV":["GTV"],IBM:["OS2"],iOS:["IOS"],"RISC OS":["ROS"],"GNU/Linux":["LIN","ARL","DEB","KNO","MIN","UBT","KBT","XBT","LBT","FED","RHT","VLN","MDR","GNT","SAB","SLW","SSE","CES","BTR","SAF"],Mac:["MAC"],"Mobile Gaming Console":["PSP","NDS","XBX"],"Real-time OS":["MTK","TDX"],"Other Mobile":["WOS","POS","SBA","TIZ","SMG","MAE"],Symbian:["SYM","SYS","SY3","S60","S40"],Unix:["SOS","AIX","HPX","BSD","NBS","OBS","DFB","SYL","IRI","T64","INF"],WebTV:["WTV"],Windows:["WIN"],"Windows Mobile":["WPH","WMO","WCE","WRT","WIO"]},g=function e(r){var o=this;n(this,e),this.options={versionTruncation:1},this.parse=function(e){var r={name:"",version:"",platform:o.parsePlatform(e)},t=!0,n=!1,m=void 0;try{for(var u,s=d[Symbol.iterator]();!(t=(u=s.next()).done);t=!0){var g=u.value,c=a.userAgentParser(g.regex,e);if(c)return r.name=i.variableReplacement(g.name,c),r.version=l.formatVersion(i.variableReplacement(g.version,c),o.options.versionTruncation),"lubuntu"===r.name&&(r.name="Lubuntu"),"debian"===r.name&&(r.name="Debian"),"YunOS"===r.name&&(r.name="YunOs"),r}}catch(x){n=!0,m=x}finally{try{t||null==s.return||s.return()}finally{if(n)throw m}}return null},this.parsePlatform=function(e){return a.userAgentParser("arm",e)?"ARM":a.userAgentParser("WOW64|x64|win64|amd64|x86_64",e)?"x64":a.userAgentParser("i[0-9]86|i86pc",e)?"x86":""},this.options=Object.assign({},this.options,r)};g.getDesktopOsArray=function(){return m},g.getOsFamily=function(e){for(var r=g.getOsShortName(e),o=0,n=Object.entries(s);o<n.length;o++){var l=n[o],i=t(l,2),a=i[0];if(i[1].includes(r))return a}return""},g.getOsShortName=function(e){for(var r=0,o=Object.entries(u);r<o.length;r++){var n=o[r],l=t(n,2),i=l[0];if(l[1]===e)return i}return""},r.default=g},function(e){e.exports=JSON.parse('[{"regex":"Tizen[ /]?(\\\\d+[\\\\.\\\\d]+)?","name":"Tizen","version":"$1"},{"regex":"Sailfish|Jolla","name":"Sailfish OS","version":""},{"regex":"(?:Ali)?YunOS[ /]?(\\\\d+[\\\\.\\\\d]+)?","name":"YunOS","version":"$1"},{"regex":"Windows Phone (?:OS)?[ ]?(\\\\d+[\\\\.\\\\d]+)","name":"Windows Phone","version":"$1"},{"regex":"XBLWP7|Windows Phone","name":"Windows Phone","version":""},{"regex":"Windows CE(?: (\\\\d+[\\\\.\\\\d]+))?","name":"Windows CE","version":"$1"},{"regex":"(?:IEMobile|Windows ?Mobile)(?: (\\\\d+[\\\\.\\\\d]+))?","name":"Windows Mobile","version":"$1"},{"regex":"Windows NT 6.2; ARM;","name":"Windows RT","version":""},{"regex":"Windows NT 6.3; ARM;","name":"Windows RT","version":"8.1"},{"regex":"Windows IoT 10.0","name":"Windows IoT","version":"10"},{"regex":"KAIOS(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"KaiOS","version":"$1"},{"regex":"RazoDroiD(?: v(\\\\d+[\\\\.\\\\d]*))?","name":"RazoDroiD","version":"$1"},{"regex":"MildWild(?: CM-(\\\\d+[\\\\.\\\\d]*))?","name":"MildWild","version":"$1"},{"regex":"CyanogenMod(?:[\\\\-/](?:CM)?(\\\\d+[\\\\.\\\\d]*))?","name":"CyanogenMod","version":"$1"},{"regex":"(?:.*_)?MocorDroid(?:(\\\\d+[\\\\.\\\\d]*))?","name":"MocorDroid","version":"$1"},{"regex":"Fire OS(?:/(\\\\d+[\\\\.\\\\d]*))?","name":"Fire OS","version":"$1"},{"regex":"(?:(?:Orca-)?Android|Adr)[ /](?:[a-z]+ )?(\\\\d+[\\\\.\\\\d]*)","name":"Android","version":"$1"},{"regex":"Android|Silk-Accelerated=[a-z]{4,5}","name":"Android","version":""},{"regex":"(?:TwitterAndroid).*[ /](?:[a-z]+ )?(\\\\d+[\\\\.\\\\d]*)","name":"Android","version":"$1"},{"regex":"BeyondPod|AntennaPod|Podkicker|DoggCatcher|Player FM|okhttp|Podcatcher Deluxe","name":"Android","version":""},{"regex":"AmigaOS[ ]?(\\\\d+[\\\\.\\\\d]+)","name":"AmigaOS","version":"$1"},{"regex":"AmigaOS|AmigaVoyager|Amiga-AWeb","name":"AmigaOS","version":""},{"regex":"ThreadX(?:/(\\\\d+[\\\\.\\\\d]*))?","name":"ThreadX","version":"$1"},{"regex":"Nucleus(?:(?: |/v?)(\\\\d+[\\\\.\\\\d]*))?","name":"MTK / Nucleus","version":"$1"},{"regex":"MTK(?:(?: |/v?)(\\\\d+[\\\\.\\\\d]*))?","name":"MTK / Nucleus","version":"$1"},{"regex":"Maemo","name":"Maemo","version":""},{"regex":"Arch ?Linux(?:[ /\\\\-](\\\\d+[\\\\.\\\\d]+))?","name":"Arch Linux","version":"$1"},{"regex":"VectorLinux(?: package)?(?:[ /\\\\-](\\\\d+[\\\\.\\\\d]+))?","name":"VectorLinux","version":"$1"},{"regex":"Linux; .*((?:Debian|Knoppix|Mint|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack))[ /](\\\\d+[\\\\.\\\\d]+)","name":"$1","version":"$2"},{"regex":"(Debian|Knoppix|Mint|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack)(?:(?: Enterprise)? Linux)?(?:[ /\\\\-](\\\\d+[\\\\.\\\\d]+))?","name":"$1","version":"$2"},{"regex":"(?:webOS|Palm webOS)(?:/(\\\\d+[\\\\.\\\\d]+))?","name":"webOS","version":"$1"},{"regex":"(?:PalmOS|Palm OS)(?:[/ ](\\\\d+[\\\\.\\\\d]+))?|Palm","name":"palmOS","version":"$1"},{"regex":"Xiino(?:.*v\\\\. (\\\\d+[\\\\.\\\\d]+))?","name":"palmOS","version":"$1"},{"regex":"MorphOS(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"MorphOS","version":"$1"},{"regex":"CYGWIN_NT-10.0|Windows NT 10.0|Windows 10","name":"Windows","version":"10"},{"regex":"CYGWIN_NT-6.4|Windows NT 6.4|Windows 10","name":"Windows","version":"10"},{"regex":"CYGWIN_NT-6.3|Windows NT 6.3|Windows 8.1","name":"Windows","version":"8.1"},{"regex":"CYGWIN_NT-6.2|Windows NT 6.2|Windows 8","name":"Windows","version":"8"},{"regex":"CYGWIN_NT-6.1|Windows NT 6.1|Windows 7","name":"Windows","version":"7"},{"regex":"CYGWIN_NT-6.0|Windows NT 6.0|Windows Vista","name":"Windows","version":"Vista"},{"regex":"CYGWIN_NT-5.2|Windows NT 5.2|Windows Server 2003 / XP x64","name":"Windows","version":"Server 2003"},{"regex":"CYGWIN_NT-5.1|Windows NT 5.1|Windows XP","name":"Windows","version":"XP"},{"regex":"CYGWIN_NT-5.0|Windows NT 5.0|Windows 2000","name":"Windows","version":"2000"},{"regex":"CYGWIN_NT-4.0|Windows NT 4.0|WinNT|Windows NT","name":"Windows","version":"NT"},{"regex":"CYGWIN_ME-4.90|Win 9x 4.90|Windows ME","name":"Windows","version":"ME"},{"regex":"CYGWIN_98-4.10|Win98|Windows 98","name":"Windows","version":"98"},{"regex":"CYGWIN_95-4.0|Win32|Win95|Windows 95|Windows_95","name":"Windows","version":"95"},{"regex":"Windows 3.1","name":"Windows","version":"3.1"},{"regex":"Windows","name":"Windows","version":""},{"regex":"Haiku","name":"Haiku OS","version":""},{"regex":"CFNetwork/889","name":"iOS","version":"11.1"},{"regex":"CFNetwork/887.*(x86_64)","name":"Mac","version":"10.13"},{"regex":"CFNetwork/887","name":"iOS","version":"11.0"},{"regex":"CFNetwork/811.*(x86_64)","name":"Mac","version":"10.12"},{"regex":"CFNetwork/811","name":"iOS","version":"10.3"},{"regex":"CFNetwork/808\\\\.3","name":"iOS","version":"10.3"},{"regex":"CFNetwork/808\\\\.2","name":"iOS","version":"10.2"},{"regex":"CFNetwork/808\\\\.1","name":"iOS","version":"10.1"},{"regex":"CFNetwork/808\\\\.0","name":"iOS","version":"10.0"},{"regex":"CFNetwork/808","name":"iOS","version":"10"},{"regex":"CFNetwork/758\\\\.4\\\\.3","name":"iOS","version":"9.3.2"},{"regex":"CFNetwork/758\\\\.3\\\\.15","name":"iOS","version":"9.3"},{"regex":"CFNetwork/758\\\\.2\\\\.[78]","name":"iOS","version":"9.2"},{"regex":"CFNetwork/758\\\\.1\\\\.6","name":"iOS","version":"9.1"},{"regex":"CFNetwork/758\\\\.0\\\\.2","name":"iOS","version":"9.0"},{"regex":"CFNetwork/711\\\\.5\\\\.6","name":"iOS","version":"8.4.1"},{"regex":"CFNetwork/711\\\\.4\\\\.6","name":"iOS","version":"8.4"},{"regex":"CFNetwork/711\\\\.3\\\\.18","name":"iOS","version":"8.3"},{"regex":"CFNetwork/711\\\\.2\\\\.23","name":"iOS","version":"8.2"},{"regex":"CFNetwork/711\\\\.1\\\\.1[26]","name":"iOS","version":"8.1"},{"regex":"CFNetwork/711\\\\.0\\\\.6","name":"iOS","version":"8.0"},{"regex":"CFNetwork/672\\\\.1","name":"iOS","version":"7.1"},{"regex":"CFNetwork/672\\\\.0","name":"iOS","version":"7.0"},{"regex":"CFNetwork/609\\\\.1","name":"iOS","version":"6.1"},{"regex":"CFNetwork/60[29]","name":"iOS","version":"6.0"},{"regex":"CFNetwork/548\\\\.1","name":"iOS","version":"5.1"},{"regex":"CFNetwork/548\\\\.0","name":"iOS","version":"5.0"},{"regex":"CFNetwork/485\\\\.13","name":"iOS","version":"4.3"},{"regex":"CFNetwork/485\\\\.12","name":"iOS","version":"4.2"},{"regex":"CFNetwork/485\\\\.10","name":"iOS","version":"4.1"},{"regex":"CFNetwork/485\\\\.2","name":"iOS","version":"4.0"},{"regex":"CFNetwork/467\\\\.12","name":"iOS","version":"3.2"},{"regex":"CFNetwork/459","name":"iOS","version":"3.1"},{"regex":"(?:CPU OS|iPh(?:one)?[ _]OS|iOS)[ _/](\\\\d+(?:[_\\\\.]\\\\d+)*)","name":"iOS","version":"$1"},{"regex":"(?:Apple-)?(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\\\\d+\\\\.\\\\d+)|; Opera)?","name":"iOS","version":"$1"},{"regex":"Podcasts/(?:[\\\\d\\\\.]+)|Instacast(?:HD)?/(?:\\\\d\\\\.[\\\\d\\\\.abc]+)|Pocket Casts, iOS|Overcast|Castro|Podcat|i[cC]atcher|RSSRadio/","name":"iOS","version":""},{"regex":"iTunes-(iPod|iPad|iPhone)/(?:[\\\\d\\\\.]+)","name":"iOS","version":""},{"regex":"CFNetwork/807","name":"Mac","version":"10.12"},{"regex":"CFNetwork/760","name":"Mac","version":"10.11"},{"regex":"CFNetwork/720","name":"Mac","version":"10.10"},{"regex":"CFNetwork/673","name":"Mac","version":"10.9"},{"regex":"CFNetwork/596","name":"Mac","version":"10.8"},{"regex":"CFNetwork/520","name":"Mac","version":"10.7"},{"regex":"CFNetwork/454","name":"Mac","version":"10.6"},{"regex":"CFNetwork/(?:438|422|339|330|221|220|217)","name":"Mac","version":"10.5"},{"regex":"CFNetwork/12[89]","name":"Mac","version":"10.4"},{"regex":"CFNetwork/1\\\\.2","name":"Mac","version":"10.3"},{"regex":"CFNetwork/1\\\\.1","name":"Mac","version":"10.2"},{"regex":"Mac[ +]OS[ +]X(?:[ /](?:Version )?(\\\\d+(?:[_\\\\.]\\\\d+)+))?","name":"Mac","version":"$1"},{"regex":"Mac (\\\\d+(?:[_\\\\.]\\\\d+)+)","name":"Mac","version":"$1"},{"regex":"Darwin|Macintosh|Mac_PowerPC|PPC|Mac PowerPC|iMac|MacBook","name":"Mac","version":""},{"regex":"CrOS [a-z0-9_]+ .* Chrome/(\\\\d+[\\\\.\\\\d]+)","name":"Chrome OS","version":"$1"},{"regex":"(?:BB10;.+Version|Black[Bb]erry[0-9a-z]+|Black[Bb]erry.+Version)/(\\\\d+[\\\\.\\\\d]+)","name":"BlackBerry OS","version":"$1"},{"regex":"RIM Tablet OS (\\\\d+[\\\\.\\\\d]+)","name":"BlackBerry Tablet OS","version":"$1"},{"regex":"RIM Tablet OS|QNX|Play[Bb]ook","name":"BlackBerry Tablet OS","version":""},{"regex":"BlackBerry","name":"BlackBerry OS","version":""},{"regex":"bPod","name":"BlackBerry OS","version":""},{"regex":"BeOS","name":"BeOS","version":""},{"regex":"Symbian/3.+NokiaBrowser/7\\\\.3","name":"Symbian^3","version":"Anna"},{"regex":"Symbian/3.+NokiaBrowser/7\\\\.4","name":"Symbian^3","version":"Belle"},{"regex":"Symbian/3","name":"Symbian^3","version":""},{"regex":"(?:Series ?60|SymbOS|S60)(?:[ /]?(\\\\d+[\\\\.\\\\d]+|V\\\\d+))?","name":"Symbian OS Series 60","version":"$1"},{"regex":"Series40","name":"Symbian OS Series 40","version":""},{"regex":"SymbianOS/(\\\\d+[\\\\.\\\\d]+)","name":"Symbian OS","version":"$1"},{"regex":"MeeGo|WeTab","name":"MeeGo","version":""},{"regex":"Symbian(?: OS)?|SymbOS","name":"Symbian OS","version":""},{"regex":"Nokia","name":"Symbian","version":""},{"regex":"(?:Mobile|Tablet);.+Firefox/\\\\d+\\\\.\\\\d+","name":"Firefox OS","version":""},{"regex":"RISC OS(?:-NC)?(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"RISC OS","version":"$1"},{"regex":"Inferno(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"Inferno","version":"$1"},{"regex":"bada(?:[ /](\\\\d+[\\\\.\\\\d]+))","name":"Bada","version":"$1"},{"regex":"bada","name":"Bada","version":""},{"regex":"(?:Brew MP|BREW|BMP)(?:[ /](\\\\d+[\\\\.\\\\d]+))","name":"Brew","version":"$1"},{"regex":"Brew MP|BREW|BMP","name":"Brew","version":""},{"regex":"GoogleTV(?:[ /](\\\\d+[\\\\.\\\\d]+))?","name":"Google TV","version":"$1"},{"regex":"AppleTV(?:/?(\\\\d+[\\\\.\\\\d]+))?","name":"Apple TV","version":"$1"},{"regex":"WebTV/(\\\\d+[\\\\.\\\\d]+)","name":"WebTV","version":"$1"},{"regex":"RemixOS 5.1.1","name":"Remix OS","version":"1"},{"regex":"RemixOS 6.0","name":"Remix OS","version":"2"},{"regex":"RemixOS","name":"Remix OS","version":""},{"regex":"(?:SunOS|Solaris)(?:[/ ](\\\\d+[\\\\.\\\\d]+))?","name":"Solaris","version":"$1"},{"regex":"AIX(?:[/ ]?(\\\\d+[\\\\.\\\\d]+))?","name":"AIX","version":"$1"},{"regex":"HP-UX(?:[/ ]?(\\\\d+[\\\\.\\\\d]+))?","name":"HP-UX","version":"$1"},{"regex":"FreeBSD(?:[/ ]?(\\\\d+[\\\\.\\\\d]+))?","name":"FreeBSD","version":"$1"},{"regex":"NetBSD(?:[/ ]?(\\\\d+[\\\\.\\\\d]+))?","name":"NetBSD","version":"$1"},{"regex":"OpenBSD(?:[/ ]?(\\\\d+[\\\\.\\\\d]+))?","name":"OpenBSD","version":"$1"},{"regex":"DragonFly(?:[/ ]?(\\\\d+[\\\\.\\\\d]+))?","name":"DragonFly","version":"$1"},{"regex":"Syllable(?:[/ ]?(\\\\d+[\\\\.\\\\d]+))?","name":"Syllable","version":"$1"},{"regex":"IRIX(?:;64)?(?:[/ ]?(\\\\d+[\\\\.\\\\d]+))","name":"IRIX","version":"$1"},{"regex":"OSF1(?:[/ ]?v?(\\\\d+[\\\\.\\\\d]+))?","name":"OSF1","version":"$1"},{"regex":"Nintendo Wii","name":"Nintendo","version":"Wii"},{"regex":"PlayStation ?([3|4])","name":"PlayStation","version":"$1"},{"regex":"Xbox|KIN\\\\.(?:One|Two)","name":"Xbox","version":"360"},{"regex":"Nitro|Nintendo ([3]?DS[i]?)","name":"Nintendo Mobile","version":"$1"},{"regex":"PlayStation ((?:Portable|Vita))","name":"PlayStation Portable","version":"$1"},{"regex":"OS/2","name":"OS/2","version":""},{"regex":"Linux(?:OS)?[^a-z]","name":"GNU/Linux","version":""}]')},function(e,r,o){"use strict";var t=o(4),n=o(1);Object.defineProperty(r,"__esModule",{value:!0});var l=o(2),i=o(102);r.default=function e(){n(this,e),this.parse=function(e){for(var r=0,o=Object.entries(i);r<o.length;r++){var n=o[r],a=t(n,2),d=a[0],m=a[1],u=!0,s=!1,g=void 0;try{for(var c,x=m[Symbol.iterator]();!(u=(c=x.next()).done);u=!0){var p=c.value;if(l.userAgentParser(p,e))return d}}catch(f){s=!0,g=f}finally{try{u||null==x.return||x.return()}finally{if(s)throw g}}}return""}}},function(e){e.exports=JSON.parse('{"Dell":["MDDR(JS)?","MDDC(JS)?","MDDS(JS)?"],"Acer":["MAAR(JS)?"],"Sony":["MASE(JS)?","MASP(JS)?","MASA(JS)?"],"Asus":["MAAU","NP0[26789]","ASJB","ASU2(JS)?"],"Samsung":["MASM(JS)?","SMJB"],"Lenovo":["MALC(JS)?","MALE(JS)?","MALN(JS)?","LCJB","LEN2"],"Toshiba":["MATM(JS)?","MATB(JS)?","MATP(JS)?","TNJB","TAJB"],"Medion":["MAMD"],"MSI":["MAMI(JS)?","MAM3"],"Gateway":["MAGW(JS)?"],"Fujitsu":["MAFS(JS)?","FSJB"],"Compaq":["CPDTDF","CPNTDF(JS?)","CMNTDF(JS)?","CMDTDF(JS)?"],"HP":["HPCMHP","HPNTDF(JS)?","HPDTDF(JS)?"],"Hyrican":["MANM(JS)?"]}')},function(e,r,o){"use strict";var t=o(1),n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},l=o(2),i=n(o(29)),a=o(138);e.exports=function e(){t(this,e),this.parse=function(e){var r=!0,o=!1,t=void 0;try{for(var n,d=a[Symbol.iterator]();!(r=(n=d.next()).done);r=!0){var m=n.value;if(l.userAgentParser(m.regex,e))return{name:m.name,category:m.category||"",url:m.url||"",producer:{name:i.default(m,"producer.name",""),url:i.default(m,"producer.url","")}}}}catch(u){o=!0,t=u}finally{try{r||null==d.return||d.return()}finally{if(o)throw t}}return null}}},function(e,r,o){var t=o(105),n=o(137);e.exports=function(e,r){for(var o=0,l=(r=t(r,e)).length;null!=e&&o<l;)e=e[n(r[o++])];return o&&o==l?e:void 0}},function(e,r,o){var t=o(16),n=o(106),l=o(107),i=o(27);e.exports=function(e,r){return t(e)?e:n(e,r)?[e]:l(i(e))}},function(e,r,o){var t=o(16),n=o(17),l=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,r){if(t(e))return!1;var o=typeof e;return!("number"!=o&&"symbol"!=o&&"boolean"!=o&&null!=e&&!n(e))||(i.test(e)||!l.test(e)||null!=r&&e in Object(r))}},function(e,r,o){var t=o(108),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,l=/\\(\\)?/g,i=t((function(e){var r=[];return 46===e.charCodeAt(0)&&r.push(""),e.replace(n,(function(e,o,t,n){r.push(t?n.replace(l,"$1"):o||e)})),r}));e.exports=i},function(e,r,o){var t=o(109),n=500;e.exports=function(e){var r=t(e,(function(e){return o.size===n&&o.clear(),e})),o=r.cache;return r}},function(e,r,o){var t=o(110),n="Expected a function";function l(e,r){if("function"!=typeof e||null!=r&&"function"!=typeof r)throw new TypeError(n);var o=function o(){var t=arguments,n=r?r.apply(this,t):t[0],l=o.cache;if(l.has(n))return l.get(n);var i=e.apply(this,t);return o.cache=l.set(n,i)||l,i};return o.cache=new(l.Cache||t),o}l.Cache=t,e.exports=l},function(e,r,o){var t=o(111),n=o(132),l=o(134),i=o(135),a=o(136);function d(e){var r=-1,o=null==e?0:e.length;for(this.clear();++r<o;){var t=e[r];this.set(t[0],t[1])}}d.prototype.clear=t,d.prototype.delete=n,d.prototype.get=l,d.prototype.has=i,d.prototype.set=a,e.exports=d},function(e,r,o){var t=o(112),n=o(124),l=o(131);e.exports=function(){this.size=0,this.__data__={hash:new t,map:new(l||n),string:new t}}},function(e,r,o){var t=o(113),n=o(120),l=o(121),i=o(122),a=o(123);function d(e){var r=-1,o=null==e?0:e.length;for(this.clear();++r<o;){var t=e[r];this.set(t[0],t[1])}}d.prototype.clear=t,d.prototype.delete=n,d.prototype.get=l,d.prototype.has=i,d.prototype.set=a,e.exports=d},function(e,r,o){var t=o(11);e.exports=function(){this.__data__=t?t(null):{},this.size=0}},function(e,r,o){var t=o(115),n=o(116),l=o(31),i=o(118),a=/^\[object .+?Constructor\]$/,d=Function.prototype,m=Object.prototype,u=d.toString,s=m.hasOwnProperty,g=RegExp("^"+u.call(s).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!l(e)||n(e))&&(t(e)?g:a).test(i(e))}},function(e,r,o){var t=o(25),n=o(31),l="[object AsyncFunction]",i="[object Function]",a="[object GeneratorFunction]",d="[object Proxy]";e.exports=function(e){if(!n(e))return!1;var r=t(e);return r==i||r==a||r==l||r==d}},function(e,r,o){var t=o(117),n=function(){var e=/[^.]+$/.exec(t&&t.keys&&t.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=function(e){return!!n&&n in e}},function(e,r,o){var t=o(15)["__core-js_shared__"];e.exports=t},function(e,r){var o=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return o.call(e)}catch(r){}try{return e+""}catch(r){}}return""}},function(e,r){e.exports=function(e,r){return null==e?void 0:e[r]}},function(e,r){e.exports=function(e){var r=this.has(e)&&delete this.__data__[e];return this.size-=r?1:0,r}},function(e,r,o){var t=o(11),n="__lodash_hash_undefined__",l=Object.prototype.hasOwnProperty;e.exports=function(e){var r=this.__data__;if(t){var o=r[e];return o===n?void 0:o}return l.call(r,e)?r[e]:void 0}},function(e,r,o){var t=o(11),n=Object.prototype.hasOwnProperty;e.exports=function(e){var r=this.__data__;return t?void 0!==r[e]:n.call(r,e)}},function(e,r,o){var t=o(11),n="__lodash_hash_undefined__";e.exports=function(e,r){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=t&&void 0===r?n:r,this}},function(e,r,o){var t=o(125),n=o(126),l=o(128),i=o(129),a=o(130);function d(e){var r=-1,o=null==e?0:e.length;for(this.clear();++r<o;){var t=e[r];this.set(t[0],t[1])}}d.prototype.clear=t,d.prototype.delete=n,d.prototype.get=l,d.prototype.has=i,d.prototype.set=a,e.exports=d},function(e,r){e.exports=function(){this.__data__=[],this.size=0}},function(e,r,o){var t=o(12),n=Array.prototype.splice;e.exports=function(e){var r=this.__data__,o=t(r,e);return!(o<0)&&(o==r.length-1?r.pop():n.call(r,o,1),--this.size,!0)}},function(e,r){e.exports=function(e,r){return e===r||e!==e&&r!==r}},function(e,r,o){var t=o(12);e.exports=function(e){var r=this.__data__,o=t(r,e);return o<0?void 0:r[o][1]}},function(e,r,o){var t=o(12);e.exports=function(e){return t(this.__data__,e)>-1}},function(e,r,o){var t=o(12);e.exports=function(e,r){var o=this.__data__,n=t(o,e);return n<0?(++this.size,o.push([e,r])):o[n][1]=r,this}},function(e,r,o){var t=o(30)(o(15),"Map");e.exports=t},function(e,r,o){var t=o(13);e.exports=function(e){var r=t(this,e).delete(e);return this.size-=r?1:0,r}},function(e,r){e.exports=function(e){var r=typeof e;return"string"==r||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==e:null===e}},function(e,r,o){var t=o(13);e.exports=function(e){return t(this,e).get(e)}},function(e,r,o){var t=o(13);e.exports=function(e){return t(this,e).has(e)}},function(e,r,o){var t=o(13);e.exports=function(e,r){var o=t(this,e),n=o.size;return o.set(e,r),this.size+=o.size==n?0:1,this}},function(e,r,o){var t=o(17),n=1/0;e.exports=function(e){if("string"==typeof e||t(e))return e;var r=e+"";return"0"==r&&1/e==-n?"-0":r}},function(e){e.exports=JSON.parse('[{"regex":"360Spider(-Image|-Video)?","name":"360Spider","category":"Search bot","url":"http://www.so.com/help/help_3_2.html","producer":{"name":"Online Media Group, Inc.","url":""}},{"regex":"Aboundex","name":"Aboundexbot","category":"Search bot","url":"http://www.aboundex.com/crawler/","producer":{"name":"Aboundex.com","url":"http://www.aboundex.com"}},{"regex":"AcoonBot","name":"Acoon","category":"Search bot","url":"http://www.acoon.de/robot.asp","producer":{"name":"Acoon GmbH","url":"http://www.acoon.de"}},{"regex":"AddThis\\\\.com","name":"AddThis.com","category":"Social Media Agent","url":"","producer":{"name":"Clearspring Technologies, Inc.","url":"http://www.clearspring.com"}},{"regex":"AhrefsBot","name":"aHrefs Bot","category":"Crawler","url":"http://ahrefs.com/robot","producer":{"name":"Ahrefs Pte Ltd","url":"http://ahrefs.com/robot"}},{"regex":"ia_archiver|alexabot|verifybot","name":"Alexa Crawler","category":"Search bot","url":"https://alexa.zendesk.com/hc/en-us/sections/200100794-Crawlers","producer":{"name":"Alexa Internet","url":"http://www.alexa.com"}},{"regex":"alexa site audit","name":"Alexa Site Audit","category":"Site Monitor","url":"http://www.alexa.com/help/webmasters","producer":{"name":"Alexa Internet","url":"http://www.alexa.com"}},{"regex":"Amazon[ -]Route ?53[ -]Health[ -]Check[ -]Service","name":"Amazon Route53 Health Check","category":"Service Agent","producer":{"name":"Amazon Web Services","url":"https://aws.amazon.com/"}},{"regex":"AmorankSpider","name":"Amorank Spider","category":"Crawler","url":"http://amorank.com/webcrawler.html","producer":{"name":"Amorank","url":"http://www.amorank.com"}},{"regex":"ApacheBench","name":"ApacheBench","category":"Benchmark","url":"https://httpd.apache.org/docs/2.4/programs/ab.html","producer":{"name":"The Apache Software Foundation","url":"http://www.apache.org/foundation/"}},{"regex":"Applebot","name":"Applebot","category":"Crawler","url":"http://www.apple.com/go/applebot","producer":{"name":"Apple Inc","url":"http://www.apple.com"}},{"regex":"Arachni","name":"Arachni","category":"Security Checker","url":"http://www.arachni-scanner.com","producer":{"name":"Sarosys LLC","url":"http://www.sarosys.com/"}},{"regex":"Castro 2, Episode Duration Lookup","name":"Castro 2","category":"Service Agent","url":"http://supertop.co/castro/","producer":{"name":"Supertop","url":"http://supertop.co"}},{"regex":"Curious George","name":"Analytics SEO Crawler","category":"Crawler","url":"http://www.analyticsseo.com/crawler","producer":{"name":"Analytics SEO","url":"http://www.analyticsseo.com"}},{"regex":"archive\\\\.org_bot|special_archiver","name":"archive.org bot","category":"Crawler","url":"http://www.archive.org/details/archive.org_bot","producer":{"name":"The Internet Archive","url":"http://www.archive.org"}},{"regex":"Ask Jeeves/Teoma","name":"Ask Jeeves","category":"Search bot","url":"","producer":{"name":"Ask Jeeves Inc.","url":"http://www.ask.com"}},{"regex":"Backlink-Check\\\\.de","name":"Backlink-Check.de","category":"Crawler","url":"http://www.backlink-check.de/bot.html","producer":{"name":"Mediagreen Medienservice","url":"http://www.backlink-check.de"}},{"regex":"BacklinkCrawler","name":"BacklinkCrawler","category":"Crawler","url":"http://www.backlinktest.com/crawler.html","producer":{"name":"2.0Promotion GbR","url":"http://www.backlinktest.com"}},{"regex":"baiduspider(-image)?|baidu Transcoder|baidu.*spider","name":"Baidu Spider","category":"Search bot","url":"http://www.baidu.com/search/spider.htm","producer":{"name":"Baidu","url":"http://www.baidu.com"}},{"regex":"BazQux","name":"BazQux Reader","url":"https://bazqux.com/fetcher","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"MSNBot|msrbot|bingbot|BingPreview|msnbot-(UDiscovery|NewsBlogs)|adidxbot","name":"BingBot","category":"Search bot","url":"http://search.msn.com/msnbot.htmn","producer":{"name":"Microsoft Corporation","url":"http://www.microsoft.com"}},{"regex":"Blekkobot","name":"Blekkobot","category":"Search bot","url":"http://blekko.com/about/blekkobot","producer":{"name":"Blekko","url":"http://blekko.com"}},{"regex":"BLEXBot(Test)?","name":"BLEXBot Crawler","category":"Crawler","url":"http://webmeup-crawler.com","producer":{"name":"WebMeUp","url":"http://webmeup.com"}},{"regex":"Bloglovin","name":"Bloglovin","url":"http://www.bloglovin.com","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"Blogtrottr","name":"Blogtrottr","url":"","category":"Feed Fetcher","producer":{"name":"Blogtrottr Ltd","url":"https://blogtrottr.com/"}},{"regex":"BountiiBot","name":"Bountii Bot","category":"Search bot","url":"http://bountii.com/contact.php","producer":{"name":"Bountii Inc.","url":"http://bountii.com"}},{"regex":"Browsershots","name":"Browsershots","category":"Service Agent","url":"http://browsershots.org/faq","producer":{"name":"Browsershots.org","url":"http://browsershots.org"}},{"regex":"BUbiNG","name":"BUbiNG","category":"Crawler","url":"http://law.di.unimi.it/BUbiNG.html","producer":{"name":"The Laboratory for Web Algorithmics (LAW)","url":"http://law.di.unimi.it/software.php#buging"}},{"regex":"(?<!HTC)[ _]Butterfly/","name":"Butterfly Robot","category":"Search bot","url":"http://labs.topsy.com/butterfly","producer":{"name":"Topsy Labs","url":"http://labs.topsy.com"}},{"regex":"CareerBot","name":"CareerBot","category":"Crawler","url":"http://www.career-x.de/bot.html","producer":{"name":"career-x GmbH","url":"http://www.career-x.de"}},{"regex":"CCBot","name":"ccBot crawler","category":"Crawler","url":"http://commoncrawl.org/faq/","producer":{"name":"reddit inc.","url":"http://www.reddit.com"}},{"regex":"Cliqzbot","name":"Cliqzbot","category":"Crawler","url":"http://cliqz.com/company/cliqzbot","producer":{"name":"10betterpages GmbH","url":"http://cliqz.com"}},{"regex":"Cloudflare-AMP","name":"CloudFlare AMP Fetcher","category":"Crawler","url":"https://amp.cloudflare.com/doc/fetcher.html","producer":{"name":"CloudFlare","url":"http://www.cloudflare.com"}},{"regex":"CloudFlare-AlwaysOnline","name":"CloudFlare Always Online","category":"Site Monitor","url":"http://www.cloudflare.com/always-online","producer":{"name":"CloudFlare","url":"http://www.cloudflare.com"}},{"regex":"coccoc/","name":"C\u1ed1c C\u1ed1c Bot","url":"http://help.coccoc.com/","category":"Search bot","producer":{"name":"C\u1ed1c C\u1ed1c","url":"http://coccoc.com/"}},{"regex":"collectd","name":"Collectd","url":"https://collectd.org/","category":"Site Monitor","producer":{"name":"Collectd","url":"https://collectd.org/"}},{"regex":"CommaFeed","name":"CommaFeed","url":"http://www.commafeed.com","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"CSS Certificate Spider","name":"CSS Certificate Spider","category":"Crawler","url":"http://www.css-security.com/certificatespider/","producer":{"name":"Certified Security Solutions","url":"https://www.css-security.com/company/about-us/"}},{"regex":"Datadog Agent","name":"Datadog Agent","url":"https://github.com/DataDog/dd-agent","category":"Site Monitor","producer":{"name":"Datadog","url":"https://www.datadoghq.com/"}},{"regex":"Datanyze","name":"Datanyze","url":"","category":"Crawler","producer":{"name":"Datanyze","url":"https://www.datanyze.com"}},{"regex":"Dataprovider","name":"Dataprovider","category":"Crawler","url":"","producer":{"name":"Dataprovider B.V.","url":"https://www.dataprovider.com/"}},{"regex":"Daum(oa)?[ /][0-9]","name":"Daum","category":"Search bot","url":"http://tab.search.daum.net/aboutWebSearch_en.html","producer":{"name":"Daum Communications Corp.","url":"http://www.kakaocorp.com/main"}},{"regex":"Dazoobot","name":"Dazoobot","category":"Search bot","url":"","producer":{"name":"DAZOO.FR","url":"http://dazoo.fr"}},{"regex":"discobot(-news)?","name":"Discobot","category":"Search bot","url":"http://discoveryengine.com/discobot.html","producer":{"name":"Discovery Engine","url":"http://discoveryengine.com"}},{"regex":"Domain Re-Animator Bot|support@domainreanimator.com","name":"Domain Re-Animator Bot","category":"Crawler","url":"","producer":{"name":"Domain Re-Animator, LLC","url":"http://domainreanimator.com"}},{"regex":"DotBot","name":"DotBot","category":"Crawler","url":"http://www.opensiteexplorer.org/dotbot","producer":{"name":"SEOmoz, Inc.","url":"http://moz.com/"}},{"regex":"DuckDuck(?:Go-Favicons-)?Bot","name":"DuckDuckGo Bot","category":"Search bot","url":"https://duckduckgo.com/duckduckbot","producer":{"name":"DuckDuckGo","url":"https://duckduckgo.com/"}},{"regex":"EasouSpider","name":"Easou Spider","category":"Search bot","url":"http://www.easou.com/search/spider.html","producer":{"name":"easou ICP","url":"http://www.easou.com"}},{"regex":"EMail Exractor","name":"EMail Exractor","category":"Crawler","url":"","producer":{"name":"","url":""}},{"regex":"evc-batch","name":"evc-batch","category":"Crawler","url":"","producer":{"name":"eVenture Capital Partners II, LLC","url":"http://www.eventures.vc/"}},{"regex":"Exabot(-Thumbnails|-Images)?|ExaleadCloudview","name":"ExaBot","category":"Crawler","url":"http://www.exabot.com/go/robot","producer":{"name":"Dassault Syst\xe8mes","url":"http://www.3ds.com"}},{"regex":"ExactSeek Crawler","name":"ExactSeek Crawler","category":"Search bot","url":"http://www.exactseek.com","producer":{"name":"Jayde Online, Inc.","url":"http://www.jaydeonlineinc.com"}},{"regex":"Ezooms","name":"Ezooms","category":"Crawler","url":"","producer":{"name":"SEOmoz, Inc.","url":"http://moz.com/"}},{"regex":"facebookexternalhit|facebookplatform","name":"Facebook External Hit","category":"Social Media Agent","url":"https://www.facebook.com/externalhit_uatext.php","producer":{"name":"Facebook","url":"http://www.facebook.com"}},{"regex":"Feedbin","name":"Feedbin","url":"http://feedbin.com/","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"FeedBurner","name":"FeedBurner","url":"http://www.feedburner.com","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"Feed Wrangler","name":"Feed Wrangler","url":"https://feedwrangler.net/","category":"Feed Fetcher","producer":{"name":"David Smith & Developing Perspective, LLC","url":"https://david-smith.org"}},{"regex":"(Meta)?Feedly(Bot|App)?","name":"Feedly","url":"http://www.feedly.com","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"Feedspot","name":"Feedspot","url":"http://www.feedspot.com","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"Fever/[0-9]","name":"Fever","url":"http://feedafever.com/","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"FlipboardProxy|FlipboardRSS","name":"Flipboard","url":"http://flipboard.com/browserproxy","category":"Feed Fetcher","producer":{"name":"Flipboard","url":"http://flipboard.com/"}},{"regex":"Findxbot","name":"Findxbot","category":"Crawler","url":"http://www.findxbot.com"},{"regex":"FreshRSS","name":"FreshRSS","category":"Feed Fetcher","url":"https://freshrss.org/"},{"regex":"Genieo","name":"Genieo Web filter","category":"","url":"http://www.genieo.com/webfilter.html","producer":{"name":"Genieo","url":"http://www.genieo.com"}},{"regex":"GigablastOpenSource","name":"Gigablast","category":"Search bot","url":"https://github.com/gigablast/open-source-search-engine","producer":{"name":"Matt Wells","url":"http://www.gigablast.com/faq.html"}},{"regex":"Gluten Free Crawler","name":"Gluten Free Crawler","category":"Crawler","url":"http://glutenfreepleasure.com/","producer":{"name":"","url":""}},{"regex":"ichiro/mobile goo","name":"Goo","category":"Search bot","url":"http://search.goo.ne.jp/option/use/sub4/sub4-1","producer":{"name":"NTT Resonant","url":"http://goo.ne.jp"}},{"regex":"Google Search Console","name":"Google Search Console","category":"Crawler","url":"https://search.google.com/search-console/about","producer":{"name":"Google Inc.","url":"http://www.google.com"}},{"regex":"Google Page Speed Insights","name":"Google PageSpeed Insights","category":"Site Monitor","url":"http://developers.google.com/speed/pagespeed/insights/","producer":{"name":"Google Inc.","url":"http://www.google.com"}},{"regex":"google_partner_monitoring","name":"Google Partner Monitoring","category":"Site Monitor","url":"","producer":{"name":"Google Inc.","url":"http://www.google.com"}},{"regex":"Google-Structured-Data-Testing-Tool","name":"Google Structured Data Testing Tool","category":"Validator","url":"https://search.google.com/structured-data/testing-tool","producer":{"name":"Google Inc.","url":"http://www.google.com"}},{"regex":"via ggpht\\\\.com GoogleImageProxy","name":"Gmail Image Proxy","category":"Crawler","url":"","producer":{"name":"Google Inc.","url":"http://www.google.com"}},{"regex":"SeznamEmailProxy","name":"Seznam Email Proxy","category":"Crawler","url":"","producer":{"name":"Seznam.cz, a.s.","url":"http://www.seznam.cz/"}},{"regex":"Seznam-Zbozi-robot","name":"Seznam Zbozi.cz","category":"Crawler","url":"","producer":{"name":"Seznam.cz, a.s.","url":"https://www.zbozi.cz/"}},{"regex":"Heurekabot-Feed","name":"Heureka Feed","category":"Crawler","url":"https://sluzby.heureka.cz/napoveda/heurekabot/","producer":{"name":"Heureka.cz, a.s.","url":"https://www.heureka.cz/"}},{"regex":"ShopAlike","name":"ShopAlike","category":"Crawler","url":"","producer":{"name":"Visual Meta","url":"https://www.shopalike.cz/"}},{"regex":"Googlebot(-Mobile|-Image|-Video|-News)?|Feedfetcher-Google|Google-Test|Google-Site-Verification|Google Web Preview|AdsBot-Google(-Mobile)?|Google-Adwords-Instant|APIs-Google|Mediapartners-Google|Google.*/\\\\+/web/snippet|GoogleProducer|Google[ -]Publisher[ -]Plugin|Google-Shopping-Quality|Google-Adwords-DisplayAds|Google-Assess|Google-AdWords-Express|Google-speakr|Google-Read-Aloud","name":"Googlebot","category":"Search bot","url":"http://www.google.com/bot.html","producer":{"name":"Google Inc.","url":"http://www.google.com"}},{"regex":"heritrix","name":"Heritrix","category":"Crawler","url":"https://webarchive.jira.com/wiki/display/Heritrix/Heritrix","producer":{"name":"The Internet Archive","url":"http://www.archive.org"}},{"regex":"HubSpot ","name":"HubSpot","category":"Crawler","producer":{"name":"HubSpot Inc.","url":"https://www.hubspot.com"}},{"regex":"HTTPMon","name":"HTTPMon","category":"Site Monitor","url":"http://www.httpmon.com","producer":{"name":"towards GmbH","url":"http://www.towards.ch/"}},{"regex":"ICC-Crawler","name":"ICC-Crawler","category":"Crawler","url":"http://www.nict.go.jp/en/univ-com/plan/crawl.html","producer":{"name":"","url":""}},{"regex":"iisbot","name":"IIS Site Analysis","category":"Crawler","url":"http://www.iis.net/iisbot.html","producer":{"name":"Microsoft Corporation","url":"http://www.microsoft.com"}},{"regex":"ips-agent","name":"IPS Agent","category":"crawler","producer":{"name":"VeriSign, Inc","url":"http://www.verisign.com/"}},{"regex":"IP-Guide\\\\.com","name":"IP-Guide Crawler","category":"Crawler","url":"","producer":{"name":"","url":"https://ip-guide.com"}},{"regex":"kouio","name":"Kouio","url":"http://kouio.com/","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"larbin","name":"Larbin web crawler","category":"Crawler","url":"http://larbin.sourceforge.net","producer":{"name":"","url":""}},{"regex":"([A-z0-9]*)-Lighthouse","name":"Lighthouse","category":"Site Monitor","url":"https://developers.google.com/web/tools/lighthouse","producer":{"name":"Lighthouse","url":"https://developers.google.com/web/tools/lighthouse"}},{"regex":"linkdexbot(-mobile)?|linkdex\\\\.com","name":"Linkdex Bot","category":"Search bot","url":"http://www.linkdex.com/bots","producer":{"name":"Mojeek Ltd.","url":"http://www.mojeek.com"}},{"regex":"LinkedInBot","name":"LinkedIn Bot","category":"Social Media Agent","url":"http://www.linkedin.com","producer":{"name":"LinkedIn","url":"http://www.linkedin.com"}},{"regex":"ltx71","name":"LTX71","url":"http://ltx71.com/","producer":{"name":"","url":""}},{"regex":"Mail\\\\.RU(_Bot)?","name":"Mail.Ru Bot","category":"Search bot","url":"http://help.mail.ru/webmaster/indexing/robots/types_robots","producer":{"name":"Mail.Ru Group","url":"http://corp.mail.ru"}},{"regex":"magpie-crawler","name":"Magpie-Crawler","category":"Social Media Agent","url":"http://www.brandwatch.com/magpie-crawler/","producer":{"name":"Brandwatch","url":"http://www.brandwatch.com"}},{"regex":"MagpieRSS","name":"MagpieRSS","url":"http://magpierss.sourceforge.net/","category":"Feed Parser","producer":{"name":"","url":""}},{"regex":"masscan","name":"masscan","url":"https://github.com/robertdavidgraham/masscan","category":"Crawler","producer":{"name":"Robert Graham","url":"https://github.com/robertdavidgraham"}},{"regex":"Mastodon/","name":"Mastodon Bot","category":"Social Media Agent"},{"regex":"meanpathbot","name":"Meanpath Bot","category":"Search bot","url":"http://www.meanpath.com/meanpathbot.html","producer":{"name":"Meanpath","url":"http://www.meanpath.com"}},{"regex":"MetaJobBot","name":"MetaJobBot","category":"Crawler","url":"http://www.metajob.at/the/crawler","producer":{"name":"MetaJob","url":"http://www.metajob.at"}},{"regex":"MetaInspector","name":"MetaInspector","category":"Crawler","url":"https://github.com/jaimeiniesta/metainspector"},{"regex":"MixrankBot","name":"Mixrank Bot","category":"Crawler","url":"http://mixrank.com","producer":{"name":"Online Media Group, Inc.","url":""}},{"regex":"MJ12bot","name":"MJ12 Bot","category":"Search bot","url":"http://majestic12.co.uk/bot.php","producer":{"name":"Majestic-12","url":"http://majestic12.co.uk"}},{"regex":"Mnogosearch","name":"Mnogosearch","category":"Search bot","url":"http://www.mnogosearch.org/","producer":{"name":"Lavtech.Com Corp.","url":""}},{"regex":"MojeekBot","name":"MojeekBot","category":"Search bot","url":"http://www.mojeek.com/bot.html","producer":{"name":"Mojeek Ltd.","url":"http://www.mojeek.com"}},{"regex":"munin","name":"Munin","category":"Site Monitor","url":"http://munin-monitoring.org/","producer":{"name":"Munin","url":"http://munin-monitoring.org/"}},{"regex":"NalezenCzBot","name":"NalezenCzBot","category":"Crawler","url":"http://www.nalezen.cz/about-crawler","producer":{"name":"Jaroslav Kubo\u0161","url":""}},{"regex":"check_http/v","name":"Nagios check_http","category":"Site Monitor","url":"https://nagios.org","producer":{"name":"Nagios Plugins Development Team","url":"https://nagios.org"}},{"regex":"Netcraft( Web Server Survey| SSL Server Survey|SurveyAgent)","name":"Netcraft Survey Bot","category":"Search bot","url":"","producer":{"name":"Netcraft","url":"http://www.netcraft.com"}},{"regex":"netEstate NE Crawler","name":"netEstate","category":"Crawler","url":"http://www.website-datenbank.de/Impressum","producer":{"name":"netEstate GmbH","url":"https://www.netestate.de/en/"}},{"regex":"Netvibes","name":"Netvibes","url":"http://www.netvibes.com/","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"NewsBlur .*(Fetcher|Finder)","name":"NewsBlur","url":"http://www.newsblur.com","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"NewsGatorOnline","name":"NewsGator","url":"http://www.newsgator.com","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"nlcrawler","name":"NLCrawler","category":"Crawler","url":"","producer":{"name":"Northern Light","url":"http://northernlight.com"}},{"regex":"Nmap Scripting Engine","name":"Nmap","category":"Security Checker","url":"https://nmap.org/book/nse.html","producer":{"name":"Nmap","url":"https://nmap.org/"}},{"regex":"Octopus [0-9]","name":"Octopus"},{"regex":"omgili(?:bot)?","name":"Omgili bot","category":"Search bot","url":"http://www.omgili.com/Crawler.html","producer":{"name":"Omgili","url":"http://www.omgili.com"}},{"regex":"OpenindexSpider","name":"Openindex Spider","category":"Search bot","url":"http://www.openindex.io/en/webmasters/spider.html","producer":{"name":"Openindex B.V.","url":"http://www.openindex.io"}},{"regex":"spbot","name":"OpenLinkProfiler","category":"Crawler","url":"http://openlinkprofiler.org/bot","producer":{"name":"Axandra GmbH","url":"http://www.axandra.com"}},{"regex":"OpenWebSpider","name":"OpenWebSpider","category":"Crawler","url":"http://www.openwebspider.org","producer":{"name":"OpenWebSpider Lab","url":"http://lab.openwebspider.org"}},{"regex":"OrangeBot|VoilaBot","name":"Orange Bot","category":"Search bot","url":"http://lemoteur.orange.fr","producer":{"name":"Orange","url":"http://www.orange.fr"}},{"regex":"PaperLiBot","name":"PaperLiBot","category":"Search bot","url":"http://support.paper.li/entries/20023257-what-is-paper-li","producer":{"name":"Smallrivers SA","url":"http://www.paper.li"}},{"regex":"phantomas/","name":"Phantomas","category":"Site Monitor","url":"https://github.com/macbre/phantomas"},{"regex":"phpservermon","name":"PHP Server Monitor","category":"Site Monitor","url":"https://github.com/phpservermon/phpservermon","producer":{"name":"PHP Server Monitor","url":"http://www.phpservermonitor.org/"}},{"regex":"PocketParser","name":"PocketParser","category":"Read-it-later Service","url":"https://getpocket.com/pocketparser_ua","producer":{"name":"Pocket","url":"https://getpocket.com/"}},{"regex":"PritTorrent","name":"PritTorrent","category":"Crawler","url":"https://github.com/astro/prittorrent","producer":{"name":"Bitlove","url":"http://bitlove.org/"}},{"regex":"psbot(-page)?","name":"Picsearch bot","category":"Search bot","url":"http://www.picsearch.com/bot.html","producer":{"name":"Picsearch","url":"http://www.picsearch.com"}},{"regex":"Pingdom\\\\.com","name":"Pingdom Bot","category":"Site Monitor","url":"","producer":{"name":"Pingdom AB","url":"https://www.pingdom.com"}},{"regex":"Quora Link Preview","name":"Quora Link Preview","category":"Crawler","url":"","producer":{"name":"Quora","url":"http://www.quora.com"}},{"regex":"RamblerMail","name":"RamblerMail Image Proxy","category":"Crawler","url":"","producer":{"name":"Rambler&Co","url":"https://rambler-co.ru/"}},{"regex":"QuerySeekerSpider","name":"QuerySeekerSpider","category":"Crawler","url":"http://queryseeker.com/bot.html","producer":{"name":"QueryEye Inc.","url":"http://queryeye.com"}},{"regex":"Qwantify","name":"Qwantify","category":"Crawler","url":"https://www.qwant.com/","producer":{"name":"Qwant Corporation","url":"https://www.qwant.com/"}},{"regex":"Rainmeter","name":"Rainmeter","category":"Crawler","url":"https://www.rainmeter.net"},{"regex":"redditbot","name":"Reddit Bot","category":"Social Media Agent","url":"http://www.reddit.com/feedback","producer":{"name":"reddit inc.","url":"http://www.reddit.com"}},{"regex":"Riddler","name":"Riddler","category":"Security search bot","url":"https://riddler.io/about","producer":{"name":"F-Secure","url":"https://www.f-secure.com"}},{"regex":"rogerbot","name":"Rogerbot","category":"Crawler","url":"http://moz.com/help/pro/what-is-rogerbot-","producer":{"name":"SEOmoz, Inc.","url":"http://moz.com/"}},{"regex":"ROI Hunter","name":"ROI Hunter","category":"Crawler","url":"","producer":{"name":"Roihunter a.s.","url":"http://roihunter.com/"}},{"regex":"SafeDNSBot","name":"SafeDNSBot","category":"Crawler","url":"https://www.safedns.com/searchbot","producer":{"name":"SafeDNS, Inc.","url":"https://www.safedns.com/"}},{"regex":"Scrapy","name":"Scrapy","category":"Crawler","url":"http://scrapy.org"},{"regex":"Screaming Frog SEO Spider","name":"Screaming Frog SEO Spider","category":"Crawler","url":"http://www.screamingfrog.co.uk/seo-spider","producer":{"name":"Screaming Frog Ltd","url":"http://www.screamingfrog.co.uk"}},{"regex":"ScreenerBot","name":"ScreenerBot","category":"Crawler","url":"http://www.screenerbot.com","producer":{"name":"","url":""}},{"regex":"SemrushBot","name":"Semrush Bot","category":"Crawler","url":"http://www.semrush.com/bot.html","producer":{"name":"SEMrush","url":"http://www.semrush.com"}},{"regex":"SensikaBot","name":"Sensika Bot","category":"","url":"","producer":{"name":"Sensika","url":"http://sensika.com"}},{"regex":"SEOENG(World)?Bot","name":"SEOENGBot","category":"Crawler","url":"http://www.seoengine.com/seoengbot.htm","producer":{"name":"SEO Engine","url":"http://www.seoengine.com"}},{"regex":"SEOkicks-Robot","name":"SEOkicks-Robot","category":"Crawler","url":"http://www.seokicks.de/robot.html","producer":{"name":"SEOkicks","url":"https://www.seokicks.de/"}},{"regex":"seoscanners\\\\.net","name":"Seoscanners.net","category":"Crawler","url":""},{"regex":"SkypeUriPreview","name":"Skype URI Preview","category":"Service Agent","url":"","producer":{"name":"Skype Communications S.\xe0.r.l.","url":"https://www.skype.com"}},{"regex":"SeznamBot|SklikBot|Seznam screenshot-generator","name":"Seznam Bot","category":"Search bot","url":"http://www.mapy.cz/cz/seznambot.html","producer":{"name":"Seznam.cz, a.s.","url":"http://www.seznam.cz/"}},{"regex":"ShopWiki","name":"ShopWiki","category":"Search tools","url":"http://www.shopwiki.com/wiki/Help:Bot","producer":{"name":"ShopWiki Corp.","url":"http://www.shopwiki.com"}},{"regex":"SilverReader","name":"SilverReader","url":"http://silverreader.com","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"SimplePie","name":"SimplePie","url":"http://www.simplepie.org","category":"Feed Parser","producer":{"name":"","url":""}},{"regex":"SISTRIX Crawler","name":"SISTRIX Crawler","category":"Crawler","url":"http://crawler.sistrix.net","producer":{"name":"SISTRIX GmbH","url":"http://www.sistrix.de"}},{"regex":"SISTRIX Optimizer","name":"SISTRIX Optimizer","category":"Crawler","url":"https://optimizer.sistrix.com","producer":{"name":"SISTRIX GmbH","url":"http://www.sistrix.de"}},{"regex":"SiteSucker","name":"SiteSucker","category":"Crawler","url":"http://ricks-apps.com/osx/sitesucker/"},{"regex":"sixy.ch","name":"Sixy.ch","category":"Site Monitor","url":"http://sixy.ch","producer":{"name":"Manuel Kasper","url":"https://neon1.net/"}},{"regex":"Slackbot|Slack-ImgProxy","name":"Slackbot","category":"Crawler","url":"https://api.slack.com/robots","producer":{"name":"Slack Technologies","url":"http://slack.com"}},{"regex":"(Sogou (web|inst|Pic) spider)|New-Sogou-Spider","name":"Sogou Spider","category":"Search bot","url":"http://www.sogou.com/docs/help/webmasters.htm","producer":{"name":"Sohu, Inc.","url":"http://www.sogou.com"}},{"regex":"Sosospider|Sosoimagespider","name":"Soso Spider","category":"Search bot","url":"http://help.soso.com/webspider.htm","producer":{"name":"Tencent Holdings","url":"http://www.soso.com"}},{"regex":"sqlmap/","name":"sqlmap","category":"Security Checker","url":"http://sqlmap.org/","producer":{"name":"sqlmap","url":"http://sqlmap.org/"}},{"regex":"SSL Labs","name":"SSL Labs","category":"Validator","url":"https://www.ssllabs.com/about/assessment.html","producer":{"name":"SSL Labs","url":"https://www.ssllabs.com/about/assessment.html"}},{"regex":"StatusCake","name":"StatusCake","category":"Site Monitor","url":"https://www.statuscake.com","producer":{"name":"StatusCake","url":"https://www.statuscake.com"}},{"regex":"Superfeedr bot","name":"Superfeedr Bot","category":"Feed Fetcher","url":"","producer":{"name":"Superfeedr","url":"https://superfeedr.com/"}},{"regex":"Sparkler/[0-9]","name":"Sparkler","category":"Crawler","url":"https://github.com/USCDataScience/sparkler"},{"regex":"Spinn3r","name":"Spinn3r","category":"Crawler","url":"http://spinn3r.com/robot","producer":{"name":"Tailrank Inc","url":"http://spinn3r.com"}},{"regex":"Sputnik(Image)?Bot","name":"Sputnik Bot","category":"","url":"","producer":{"name":"","url":""}},{"regex":"SurveyBot","name":"Survey Bot","category":"Search bot","url":"http://www.domaintools.com/webmasters/surveybot.php","producer":{"name":"Domain Tools","url":"http://www.domaintools.com"}},{"regex":"TarmotGezgin","name":"Tarmot Gezgin","url":"http://www.tarmot.com/gezgin/","category":"Search bot"},{"regex":"TelegramBot","name":"TelegramBot","url":"https://telegram.org/blog/bot-revolution"},{"regex":"TLSProbe","name":"TLSProbe","url":"https://scan.trustnet.venafi.com/","category":"Security search bot","producer":{"name":"Venafi TrustNet","url":"https://www.venafi.com"}},{"regex":"TinEye-bot","name":"TinEye Crawler","category":"Search bot","url":"http://www.tineye.com/crawler.html","producer":{"name":"Id\xe9e Inc.","url":"http://ideeinc.com"}},{"regex":"Tiny Tiny RSS","name":"Tiny Tiny RSS","url":"http://tt-rss.org","category":"Feed Fetcher","producer":{"name":"","url":""}},{"regex":"trendictionbot","name":"Trendiction Bot","category":"Crawler","url":"http://www.trendiction.de/bot","producer":{"name":"Talkwalker Inc.","url":"http://www.talkwalker.com"}},{"regex":"TurnitinBot","name":"TurnitinBot","category":"Crawler","url":"http://www.turnitin.com/robot/crawlerinfo.html","producer":{"name":"iParadigms, LLC.","url":"http://www.turnitin.com"}},{"regex":"TweetedTimes Bot","name":"TweetedTimes Bot","category":"Crawler","url":"http://tweetedtimes.com","producer":{"name":"TweetedTimes","url":"http://tweetedtimes.com/"}},{"regex":"TweetmemeBot","name":"Tweetmeme Bot","category":"Crawler","url":"http://tweetmeme.com/","producer":{"name":"Mediasift","url":""}},{"regex":"Twitterbot","name":"Twitterbot","category":"Social Media Agent","url":"https://dev.twitter.com/docs/cards/getting-started","producer":{"name":"Twitter","url":"http://www.twitter.com"}},{"regex":"UniversalFeedParser","name":"UniversalFeedParser","category":"Feed Fetcher","url":"https://github.com/kurtmckee/feedparser","producer":{"name":"Kurt McKee","url":"https://github.com/kurtmckee"}},{"regex":"via secureurl\\\\.fwdcdn\\\\.com","name":"UkrNet Mail Proxy","category":"Crawler","url":"","producer":{"name":"UkrNet Ltd","url":"https://www.ukr.net/"}},{"regex":"Uptimebot","name":"Uptimebot","category":"Site Monitor","url":"https://uptime.com/uptimebot","producer":{"name":"Uptime","url":"https://uptime.com"}},{"regex":"UptimeRobot","name":"Uptime Robot","category":"Site Monitor","url":"","producer":{"name":"Uptime Robot","url":"http://uptimerobot.com"}},{"regex":"URLAppendBot","name":"URLAppendBot","category":"Crawler","url":"http://www.profound.net/urlappendbot.html","producer":{"name":"Profound Networks","url":"http://www.profound.net"}},{"regex":"Vagabondo","name":"Vagabondo","category":"Crawler","url":"","producer":{"name":"WiseGuys","url":"http://www.wise-guys.nl/"}},{"regex":"vkShare; ","name":"VK Share Button","category":"Crawler","url":"http://vk.com/dev/Share","producer":{"name":"VK","url":"http://vk.com/"}},{"regex":"VSMCrawler","name":"Visual Site Mapper Crawler","category":"Crawler","url":"http://www.visualsitemapper.com/crawler","producer":{"name":"Alentum Software Ltd.","url":"http://www.alentum.com"}},{"regex":"Jigsaw","name":"W3C CSS Validator","category":"Validator","url":"http://jigsaw.w3.org/css-validator","producer":{"name":"W3C","url":"http://www.w3.org"}},{"regex":"W3C_I18n-Checker","name":"W3C I18N Checker","category":"Validator","url":"http://validator.w3.org/i18n-checker","producer":{"name":"W3C","url":"http://www.w3.org"}},{"regex":"W3C-checklink","name":"W3C Link Checker","category":"Validator","url":"http://validator.w3.org/checklink","producer":{"name":"W3C","url":"http://www.w3.org"}},{"regex":"W3C_Validator|Validator.nu","name":"W3C Markup Validation Service","category":"Validator","url":"http://validator.w3.org/services","producer":{"name":"W3C","url":"http://www.w3.org"}},{"regex":"W3C-mobileOK","name":"W3C MobileOK Checker","category":"Validator","url":"http://validator.w3.org/mobile","producer":{"name":"W3C","url":"http://www.w3.org"}},{"regex":"W3C_Unicorn","name":"W3C Unified Validator","category":"Validator","url":"http://validator.w3.org/unicorn","producer":{"name":"W3C","url":"http://www.w3.org"}},{"regex":"Wappalyzer","name":"Wappalyzer","url":"https://github.com/AliasIO/Wappalyzer","producer":{"name":"AliasIO","url":"https://github.com/AliasIO"}},{"regex":"PTST/","name":"WebPageTest","category":"Site Monitor","url":"https://www.webpagetest.org"},{"regex":"WeSEE(:Search)?","name":"WeSEE:Search","category":"Search bot","url":"http://www.wesee.com/bot","producer":{"name":"WeSEE Ltd","url":"http://www.wesee.com"}},{"regex":"WebbCrawler","name":"WebbCrawler","category":"Crawler","url":"http://badcheese.com/crawler.html","producer":{"name":"Steve Webb","url":"http://badcheese.com"}},{"regex":"websitepulse[+ ]checker","name":"WebSitePulse","category":"Site Monitor","url":"http://badcheese.com/crawler.html","producer":{"name":"WebSitePulse","url":"http://www.websitepulse.com/"}},{"regex":"WordPress","name":"WordPress","category":"Service Agent","url":"https://wordpress.org/","producer":{"name":"Wordpress.org","url":"https://wordpress.org/"}},{"regex":"Wotbox","name":"Wotbox","category":"Search bot","url":"http://www.wotbox.com/bot/","producer":{"name":"Wotbox","url":"http://www.wotbox.com"}},{"regex":"yacybot","name":"YaCy","category":"Search bot","url":"http://yacy.net/bot.html","producer":{"name":"YaCy","url":"http://yacy.net"}},{"regex":"Yahoo! Slurp|Yahoo!-AdCrawler","name":"Yahoo! Slurp","category":"Search bot","url":"http://help.yahoo.com/ysearch/slurp","producer":{"name":"Yahoo! Inc.","url":"http://www.yahoo.com"}},{"regex":"Yahoo Link Preview|Yahoo:LinkExpander:Slingstone","name":"Yahoo! Link Preview","category":"Crawler","url":"https://help.yahoo.com/kb/mail/yahoo-link-preview-SLN23615.html","producer":{"name":"Yahoo! Inc.","url":"http://www.yahoo.com"}},{"regex":"YahooCacheSystem","name":"Yahoo! Cache System","category":"Crawler","url":"","producer":{"name":"Yahoo! Inc.","url":"http://www.yahoo.com"}},{"regex":"Yandex(SpravBot|ScreenshotBot|MobileBot|AccessibilityBot|ForDomain|Vertis|Market|Catalog|Calendar|Sitelinks|AdNet|Pagechecker|Webmaster|Media|Video|Bot|Images|Antivirus|Direct|Blogs|Favicons|ImageResizer|Verticals|News(links)?|Metrika|\\\\.Gazeta Bot)|YaDirectFetcher","name":"Yandex Bot","category":"Search bot","url":"http://www.yandex.com/bots","producer":{"name":"Yandex LLC","url":"http://company.yandex.com"}},{"regex":"Yeti","name":"Yeti/Naverbot","category":"Search bot","url":"http://help.naver.com/robots/","producer":{"name":"Naver","url":"http://www.naver.com"}},{"regex":"YoudaoBot","name":"Youdao Bot","category":"Search bot","url":"http://www.youdao.com/help/webmaster/spider","producer":{"name":"NetEase, Inc.","url":"http://corp.163.com"}},{"regex":"YOURLS v[0-9]","name":"Yourls","category":"Crawler","url":"http://yourls.org"},{"regex":"YRSpider|YYSpider","name":"Yunyun Bot","category":"Search bot","url":"http://www.yunyun.com/SiteInfo.php?r=about","producer":{"name":"YunYun","url":"http://www.yunyun.com"}},{"regex":"zgrab","name":"zgrab","category":"Security Checker","url":"https://github.com/zmap/zgrab"},{"regex":"Zookabot","name":"Zookabot","category":"Crawler","url":"http://zookabot.com","producer":{"name":"Hwacha ApS","url":"http://hwacha.dk"}},{"regex":"ZumBot","name":"ZumBot","category":"Search bot","url":"http://help.zum.com/inquiry","producer":{"name":"ZUM internet","url":"http://www.zuminternet.com/"}},{"regex":"YottaaMonitor","name":"Yottaa Site Monitor","category":"Site Monitor","url":"http://www.yottaa.com/products/site-monitor","producer":{"name":"Yottaa","url":"http://www.yottaa.com/"}},{"regex":"Yahoo Ad monitoring.*yahoo-ad-monitoring-SLN24857.*","name":"Yahoo Gemini","category":"Crawler","url":"https://help.yahoo.com/kb/yahoo-ad-monitoring-SLN24857.html","producer":{"name":"Yahoo! Inc.","url":"http://www.yahoo.com"}},{"regex":".*Java.*outbrain","name":"Outbrain","category":"Crawler","url":"","producer":{"name":"Outbrain","url":"http://www.outbrain.com/"}},{"regex":"HubPages.*crawlingpolicy","name":"HubPages","category":"Crawler","url":"http://hubpages.com/help/crawlingpolicy","producer":{"name":"HubPages","url":"http://hubpages.com/"}},{"regex":"Pinterest/\\\\d\\\\.\\\\d.*www\\\\.pinterest\\\\.com.*","name":"Pinterest","url":"","category":"Crawler","producer":{"name":"Pinterest","url":"http://www.pinterest.com/"}},{"regex":"Site24x7","name":"Site24x7 Website Monitoring","category":"Site Monitor","url":"https://www.site24x7.com/site24x7-faq.html","producer":{"name":"Site24x7","url":"https://www.site24x7.com"}},{"regex":"s~snapchat-proxy","name":"Snapchat Proxy","category":"Crawler","url":"https://www.snapchat.com","producer":{"name":"Snapchat Inc.","url":"https://www.snapchat.com"}},{"regex":"Let\'s Encrypt validation server","name":"Let\'s Encrypt Validation","category":"Service Agent","url":"https://letsencrypt.org/how-it-works/","producer":{"name":"Let\'s Encrypt","url":"https://letsencrypt.org"}},{"regex":"GrapeshotCrawler","name":"Grapeshot","category":"Crawler","url":"https://www.grapeshot.com/crawler","producer":{"name":"Grapeshot","url":"https://www.grapeshot.com"}},{"regex":"www\\\\.monitor\\\\.us","name":"Monitor.Us","category":"Site Monitor","url":"http://www.monitor.us","producer":{"name":"Monitor.Us","url":"http://www.monitor.us"}},{"regex":"Catchpoint( bot)?","name":"Catchpoint","category":"Site Monitor","url":"","producer":{"name":"Catchpoint Systems","url":"http://www.catchpoint.com/"}},{"regex":"bitlybot","name":"BitlyBot","category":"Crawler","url":"https://bitly.com","producer":{"name":"Bitly, Inc.","url":"https://bitly.com"}},{"regex":"Zao/","name":"Zao","category":"Crawler"},{"regex":"lycos","name":"Lycos"},{"regex":"Slurp","name":"Inktomi Slurp"},{"regex":"Speedy Spider","name":"Speedy"},{"regex":"ScoutJet","name":"ScoutJet"},{"regex":"nrsbot|netresearch","name":"NetResearchServer"},{"regex":"scooter","name":"Scooter"},{"regex":"gigabot","name":"Gigabot"},{"regex":"charlotte","name":"Charlotte"},{"regex":"Pompos","name":"Pompos"},{"regex":"ichiro","name":"ichiro"},{"regex":"PagePeeker","name":"PagePeeker"},{"regex":"WebThumbnail","name":"WebThumbnail"},{"regex":"Willow Internet Crawler","name":"Willow Internet Crawler"},{"regex":"EmailWolf","name":"EmailWolf"},{"regex":"NetLyzer FastProbe","name":"NetLyzer FastProbe"},{"regex":"AdMantX.*admantx\\\\.com","name":"ADMantX"},{"regex":"Server Density Service Monitoring.*","name":"Server Density"},{"regex":"RSSRadio \\\\(Push Notification Scanner;support@dorada\\\\.co\\\\.uk\\\\)","name":"RSSRadio Bot"},{"regex":"(A6-Indexer|nuhk|TsolCrawler|Yammybot|Openbot|Gulper Web Bot|grub-client|Download Demon|SearchExpress|Microsoft URL Control|borg|altavista|dataminr.com|tweetedtimes.com|TrendsmapResolver|teoma|blitzbot|oegp|furlbot|http%20client|polybot|htdig|mogimogi|larbin|scrubby|searchsight|seekbot|semanticdiscovery|snappy|vortex(?! Build)|zeal|fast-webcrawler|converacrawler|dataparksearch|findlinks|BrowserMob|HttpMonitor|ThumbShotsBot|URL2PNG|ZooShot|GomezA|Google SketchUp|Read%20Later|Minimo|RackspaceBot)","name":"Generic Bot"},{"regex":"^sentry","name":"Sentry Bot","producer":{"name":"Sentry","url":"https://sentry.io"}},{"regex":"^Spotify","name":"Spotify","producer":{"name":"Spotify","url":"https://www.spotify.com"}},{"regex":"Nutch","name":"Nutch-based Bot","category":"Crawler","url":"https://nutch.apache.org","producer":{"name":"The Apache Software Foundation","url":"http://www.apache.org/foundation/"}},{"regex":"[a-z0-9\\\\-_]*((?<!cu|power[ _]|m[ _])bot(?![ _]TAB|[ _]?5[0-9])|crawler|crawl|checker|archiver|transcoder|spider)([^a-z]|$)","name":"Generic Bot"}]')},function(e,r,o){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.versionCompare=function(e,r,o){var t,n,l=0,i={dev:-6,alpha:-5,a:-5,beta:-4,b:-4,RC:-3,rc:-3,"#":-2,p:1,pl:1},a=function(e){return(e=(e=(""+e).replace(/[_\-+]/g,".")).replace(/([^.\d]+)/g,".$1.").replace(/\.{2,}/g,".")).length?e.split("."):[-8]},d=function(e){return e?isNaN(e)?i[e]||-7:parseInt(e,10):0};for(e=a(e),r=a(r),n=Math.max(e.length,r.length),t=0;t<n;t++)if(e[t]!==r[t]){if(e[t]=d(e[t]),r[t]=d(r[t]),e[t]<r[t]){l=-1;break}if(e[t]>r[t]){l=1;break}}if(!o)return l;switch(o){case">":case"gt":return l>0;case">=":case"ge":return l>=0;case"<=":case"le":return l<=0;case"===":case"=":case"eq":return 0===l;case"<>":case"!==":case"ne":return 0!==l;case"":case"<":case"lt":return l<0;default:return null}}},function(e,r){e.exports=function(){return"function"===typeof Promise&&Promise.prototype&&Promise.prototype.then}},function(e,r,o){var t=o(9),n=o(7),l=o(19),i=o(142),a=o(143),d=o(144),m=o(145),u=o(146),s=o(32),g=o(147),c=o(154),x=o(155),p=o(8),f=o(156),S=o(18);function h(e,r,o){var t,n,l=e.size,i=x.getEncodedBits(r,o);for(t=0;t<15;t++)n=1===(i>>t&1),t<6?e.set(t,8,n,!0):t<8?e.set(t+1,8,n,!0):e.set(l-15+t,8,n,!0),t<8?e.set(8,l-t-1,n,!0):t<9?e.set(8,15-t-1+1,n,!0):e.set(8,15-t-1,n,!0);e.set(l-8,8,1,!0)}function v(e,r,o){var l=new i;o.forEach((function(r){l.put(r.mode.bit,4),l.put(r.getLength(),p.getCharCountIndicator(r.mode,e)),r.write(l)}));var a=8*(n.getSymbolTotalCodewords(e)-s.getTotalCodewordsCount(e,r));for(l.getLengthInBits()+4<=a&&l.put(0,4);l.getLengthInBits()%8!==0;)l.putBit(0);for(var d=(a-l.getLengthInBits())/8,m=0;m<d;m++)l.put(m%2?17:236,8);return function(e,r,o){for(var l=n.getSymbolTotalCodewords(r),i=s.getTotalCodewordsCount(r,o),a=l-i,d=s.getBlocksCount(r,o),m=d-l%d,u=Math.floor(l/d),c=Math.floor(a/d),x=c+1,p=u-c,f=new g(p),S=0,h=new Array(d),v=new Array(d),A=0,b=t.from(e.buffer),T=0;T<d;T++){var M=T<m?c:x;h[T]=b.slice(S,S+M),v[T]=f.encode(h[T]),S+=M,A=Math.max(A,M)}var P,y,L=t.alloc(l),E=0;for(P=0;P<A;P++)for(y=0;y<d;y++)P<h[y].length&&(L[E++]=h[y][P]);for(P=0;P<p;P++)for(y=0;y<d;y++)L[E++]=v[y][P];return L}(l,e,r)}function A(e,r,o,t){var l;if(S(e))l=f.fromArray(e);else{if("string"!==typeof e)throw new Error("Invalid data");var i=r;if(!i){var s=f.rawSplit(e);i=c.getBestVersionForData(s,o)}l=f.fromString(e,i||40)}var g=c.getBestVersionForData(l,o);if(!g)throw new Error("The amount of data is too big to be stored in a QR Code");if(r){if(r<g)throw new Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+g+".\n")}else r=g;var x=v(r,o,l),p=n.getSymbolSize(r),A=new a(p);return function(e,r){for(var o=e.size,t=m.getPositions(r),n=0;n<t.length;n++)for(var l=t[n][0],i=t[n][1],a=-1;a<=7;a++)if(!(l+a<=-1||o<=l+a))for(var d=-1;d<=7;d++)i+d<=-1||o<=i+d||(a>=0&&a<=6&&(0===d||6===d)||d>=0&&d<=6&&(0===a||6===a)||a>=2&&a<=4&&d>=2&&d<=4?e.set(l+a,i+d,!0,!0):e.set(l+a,i+d,!1,!0))}(A,r),function(e){for(var r=e.size,o=8;o<r-8;o++){var t=o%2===0;e.set(o,6,t,!0),e.set(6,o,t,!0)}}(A),function(e,r){for(var o=d.getPositions(r),t=0;t<o.length;t++)for(var n=o[t][0],l=o[t][1],i=-2;i<=2;i++)for(var a=-2;a<=2;a++)-2===i||2===i||-2===a||2===a||0===i&&0===a?e.set(n+i,l+a,!0,!0):e.set(n+i,l+a,!1,!0)}(A,r),h(A,o,0),r>=7&&function(e,r){for(var o,t,n,l=e.size,i=c.getEncodedBits(r),a=0;a<18;a++)o=Math.floor(a/3),t=a%3+l-8-3,n=1===(i>>a&1),e.set(o,t,n,!0),e.set(t,o,n,!0)}(A,r),function(e,r){for(var o=e.size,t=-1,n=o-1,l=7,i=0,a=o-1;a>0;a-=2)for(6===a&&a--;;){for(var d=0;d<2;d++)if(!e.isReserved(n,a-d)){var m=!1;i<r.length&&(m=1===(r[i]>>>l&1)),e.set(n,a-d,m),-1===--l&&(i++,l=7)}if((n+=t)<0||o<=n){n-=t,t=-t;break}}}(A,x),isNaN(t)&&(t=u.getBestMask(A,h.bind(null,A,o))),u.applyMask(t,A),h(A,o,t),{modules:A,version:r,errorCorrectionLevel:o,maskPattern:t,segments:l}}r.create=function(e,r){if("undefined"===typeof e||""===e)throw new Error("No input text");var o,t,i=l.M;return"undefined"!==typeof r&&(i=l.from(r.errorCorrectionLevel,l.M),o=c.from(r.version),t=u.from(r.maskPattern),r.toSJISFunc&&n.setToSJISFunction(r.toSJISFunc)),A(e,o,i,t)}},function(e,r){function o(){this.buffer=[],this.length=0}o.prototype={get:function(e){var r=Math.floor(e/8);return 1===(this.buffer[r]>>>7-e%8&1)},put:function(e,r){for(var o=0;o<r;o++)this.putBit(1===(e>>>r-o-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var r=Math.floor(this.length/8);this.buffer.length<=r&&this.buffer.push(0),e&&(this.buffer[r]|=128>>>this.length%8),this.length++}},e.exports=o},function(e,r,o){var t=o(9);function n(e){if(!e||e<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=e,this.data=t.alloc(e*e),this.reservedBit=t.alloc(e*e)}n.prototype.set=function(e,r,o,t){var n=e*this.size+r;this.data[n]=o,t&&(this.reservedBit[n]=!0)},n.prototype.get=function(e,r){return this.data[e*this.size+r]},n.prototype.xor=function(e,r,o){this.data[e*this.size+r]^=o},n.prototype.isReserved=function(e,r){return this.reservedBit[e*this.size+r]},e.exports=n},function(e,r,o){var t=o(7).getSymbolSize;r.getRowColCoords=function(e){if(1===e)return[];for(var r=Math.floor(e/7)+2,o=t(e),n=145===o?26:2*Math.ceil((o-13)/(2*r-2)),l=[o-7],i=1;i<r-1;i++)l[i]=l[i-1]-n;return l.push(6),l.reverse()},r.getPositions=function(e){for(var o=[],t=r.getRowColCoords(e),n=t.length,l=0;l<n;l++)for(var i=0;i<n;i++)0===l&&0===i||0===l&&i===n-1||l===n-1&&0===i||o.push([t[l],t[i]]);return o}},function(e,r,o){var t=o(7).getSymbolSize;r.getPositions=function(e){var r=t(e);return[[0,0],[r-7,0],[0,r-7]]}},function(e,r){r.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var o=3,t=3,n=40,l=10;function i(e,o,t){switch(e){case r.Patterns.PATTERN000:return(o+t)%2===0;case r.Patterns.PATTERN001:return o%2===0;case r.Patterns.PATTERN010:return t%3===0;case r.Patterns.PATTERN011:return(o+t)%3===0;case r.Patterns.PATTERN100:return(Math.floor(o/2)+Math.floor(t/3))%2===0;case r.Patterns.PATTERN101:return o*t%2+o*t%3===0;case r.Patterns.PATTERN110:return(o*t%2+o*t%3)%2===0;case r.Patterns.PATTERN111:return(o*t%3+(o+t)%2)%2===0;default:throw new Error("bad maskPattern:"+e)}}r.isValid=function(e){return null!=e&&""!==e&&!isNaN(e)&&e>=0&&e<=7},r.from=function(e){return r.isValid(e)?parseInt(e,10):void 0},r.getPenaltyN1=function(e){for(var r=e.size,t=0,n=0,l=0,i=null,a=null,d=0;d<r;d++){n=l=0,i=a=null;for(var m=0;m<r;m++){var u=e.get(d,m);u===i?n++:(n>=5&&(t+=o+(n-5)),i=u,n=1),(u=e.get(m,d))===a?l++:(l>=5&&(t+=o+(l-5)),a=u,l=1)}n>=5&&(t+=o+(n-5)),l>=5&&(t+=o+(l-5))}return t},r.getPenaltyN2=function(e){for(var r=e.size,o=0,n=0;n<r-1;n++)for(var l=0;l<r-1;l++){var i=e.get(n,l)+e.get(n,l+1)+e.get(n+1,l)+e.get(n+1,l+1);4!==i&&0!==i||o++}return o*t},r.getPenaltyN3=function(e){for(var r=e.size,o=0,t=0,l=0,i=0;i<r;i++){t=l=0;for(var a=0;a<r;a++)t=t<<1&2047|e.get(i,a),a>=10&&(1488===t||93===t)&&o++,l=l<<1&2047|e.get(a,i),a>=10&&(1488===l||93===l)&&o++}return o*n},r.getPenaltyN4=function(e){for(var r=0,o=e.data.length,t=0;t<o;t++)r+=e.data[t];return Math.abs(Math.ceil(100*r/o/5)-10)*l},r.applyMask=function(e,r){for(var o=r.size,t=0;t<o;t++)for(var n=0;n<o;n++)r.isReserved(n,t)||r.xor(n,t,i(e,n,t))},r.getBestMask=function(e,o){for(var t=Object.keys(r.Patterns).length,n=0,l=1/0,i=0;i<t;i++){o(i),r.applyMask(i,e);var a=r.getPenaltyN1(e)+r.getPenaltyN2(e)+r.getPenaltyN3(e)+r.getPenaltyN4(e);r.applyMask(i,e),a<l&&(l=a,n=i)}return n}},function(e,r,o){var t=o(9),n=o(148),l=o(150).Buffer;function i(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}i.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},i.prototype.encode=function(e){if(!this.genPoly)throw new Error("Encoder not initialized");var r=t.alloc(this.degree),o=l.concat([e,r],e.length+this.degree),i=n.mod(o,this.genPoly),a=this.degree-i.length;if(a>0){var d=t.alloc(this.degree);return i.copy(d,a),d}return i},e.exports=i},function(e,r,o){var t=o(9),n=o(149);r.mul=function(e,r){for(var o=t.alloc(e.length+r.length-1),l=0;l<e.length;l++)for(var i=0;i<r.length;i++)o[l+i]^=n.mul(e[l],r[i]);return o},r.mod=function(e,r){for(var o=t.from(e);o.length-r.length>=0;){for(var l=o[0],i=0;i<r.length;i++)o[i]^=n.mul(r[i],l);for(var a=0;a<o.length&&0===o[a];)a++;o=o.slice(a)}return o},r.generateECPolynomial=function(e){for(var o=t.from([1]),l=0;l<e;l++)o=r.mul(o,[1,n.exp(l)]);return o}},function(e,r,o){var t=o(9),n=t.alloc(512),l=t.alloc(256);!function(){for(var e=1,r=0;r<255;r++)n[r]=e,l[e]=r,256&(e<<=1)&&(e^=285);for(r=255;r<512;r++)n[r]=n[r-255]}(),r.log=function(e){if(e<1)throw new Error("log("+e+")");return l[e]},r.exp=function(e){return n[e]},r.mul=function(e,r){return 0===e||0===r?0:n[l[e]+l[r]]}},function(e,r,o){"use strict";(function(e){var t=o(151),n=o(152),l=o(153);function i(){return d.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,r){if(i()<r)throw new RangeError("Invalid typed array length");return d.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(r)).__proto__=d.prototype:(null===e&&(e=new d(r)),e.length=r),e}function d(e,r,o){if(!d.TYPED_ARRAY_SUPPORT&&!(this instanceof d))return new d(e,r,o);if("number"===typeof e){if("string"===typeof r)throw new Error("If encoding is specified then the first argument must be a string");return s(this,e)}return m(this,e,r,o)}function m(e,r,o,t){if("number"===typeof r)throw new TypeError('"value" argument must not be a number');return"undefined"!==typeof ArrayBuffer&&r instanceof ArrayBuffer?function(e,r,o,t){if(r.byteLength,o<0||r.byteLength<o)throw new RangeError("'offset' is out of bounds");if(r.byteLength<o+(t||0))throw new RangeError("'length' is out of bounds");r=void 0===o&&void 0===t?new Uint8Array(r):void 0===t?new Uint8Array(r,o):new Uint8Array(r,o,t);d.TYPED_ARRAY_SUPPORT?(e=r).__proto__=d.prototype:e=g(e,r);return e}(e,r,o,t):"string"===typeof r?function(e,r,o){"string"===typeof o&&""!==o||(o="utf8");if(!d.isEncoding(o))throw new TypeError('"encoding" must be a valid string encoding');var t=0|x(r,o),n=(e=a(e,t)).write(r,o);n!==t&&(e=e.slice(0,n));return e}(e,r,o):function(e,r){if(d.isBuffer(r)){var o=0|c(r.length);return 0===(e=a(e,o)).length?e:(r.copy(e,0,0,o),e)}if(r){if("undefined"!==typeof ArrayBuffer&&r.buffer instanceof ArrayBuffer||"length"in r)return"number"!==typeof r.length||(t=r.length)!==t?a(e,0):g(e,r);if("Buffer"===r.type&&l(r.data))return g(e,r.data)}var t;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,r)}function u(e){if("number"!==typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function s(e,r){if(u(r),e=a(e,r<0?0:0|c(r)),!d.TYPED_ARRAY_SUPPORT)for(var o=0;o<r;++o)e[o]=0;return e}function g(e,r){var o=r.length<0?0:0|c(r.length);e=a(e,o);for(var t=0;t<o;t+=1)e[t]=255&r[t];return e}function c(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function x(e,r){if(d.isBuffer(e))return e.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!==typeof e&&(e=""+e);var o=e.length;if(0===o)return 0;for(var t=!1;;)switch(r){case"ascii":case"latin1":case"binary":return o;case"utf8":case"utf-8":case void 0:return k(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*o;case"hex":return o>>>1;case"base64":return U(e).length;default:if(t)return k(e).length;r=(""+r).toLowerCase(),t=!0}}function p(e,r,o){var t=!1;if((void 0===r||r<0)&&(r=0),r>this.length)return"";if((void 0===o||o>this.length)&&(o=this.length),o<=0)return"";if((o>>>=0)<=(r>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return B(this,r,o);case"utf8":case"utf-8":return L(this,r,o);case"ascii":return _(this,r,o);case"latin1":case"binary":return w(this,r,o);case"base64":return y(this,r,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,r,o);default:if(t)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),t=!0}}function f(e,r,o){var t=e[r];e[r]=e[o],e[o]=t}function S(e,r,o,t,n){if(0===e.length)return-1;if("string"===typeof o?(t=o,o=0):o>2147483647?o=2147483647:o<-2147483648&&(o=-2147483648),o=+o,isNaN(o)&&(o=n?0:e.length-1),o<0&&(o=e.length+o),o>=e.length){if(n)return-1;o=e.length-1}else if(o<0){if(!n)return-1;o=0}if("string"===typeof r&&(r=d.from(r,t)),d.isBuffer(r))return 0===r.length?-1:h(e,r,o,t,n);if("number"===typeof r)return r&=255,d.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(e,r,o):Uint8Array.prototype.lastIndexOf.call(e,r,o):h(e,[r],o,t,n);throw new TypeError("val must be string, number or Buffer")}function h(e,r,o,t,n){var l,i=1,a=e.length,d=r.length;if(void 0!==t&&("ucs2"===(t=String(t).toLowerCase())||"ucs-2"===t||"utf16le"===t||"utf-16le"===t)){if(e.length<2||r.length<2)return-1;i=2,a/=2,d/=2,o/=2}function m(e,r){return 1===i?e[r]:e.readUInt16BE(r*i)}if(n){var u=-1;for(l=o;l<a;l++)if(m(e,l)===m(r,-1===u?0:l-u)){if(-1===u&&(u=l),l-u+1===d)return u*i}else-1!==u&&(l-=l-u),u=-1}else for(o+d>a&&(o=a-d),l=o;l>=0;l--){for(var s=!0,g=0;g<d;g++)if(m(e,l+g)!==m(r,g)){s=!1;break}if(s)return l}return-1}function v(e,r,o,t){o=Number(o)||0;var n=e.length-o;t?(t=Number(t))>n&&(t=n):t=n;var l=r.length;if(l%2!==0)throw new TypeError("Invalid hex string");t>l/2&&(t=l/2);for(var i=0;i<t;++i){var a=parseInt(r.substr(2*i,2),16);if(isNaN(a))return i;e[o+i]=a}return i}function A(e,r,o,t){return V(k(r,e.length-o),e,o,t)}function b(e,r,o,t){return V(function(e){for(var r=[],o=0;o<e.length;++o)r.push(255&e.charCodeAt(o));return r}(r),e,o,t)}function T(e,r,o,t){return b(e,r,o,t)}function M(e,r,o,t){return V(U(r),e,o,t)}function P(e,r,o,t){return V(function(e,r){for(var o,t,n,l=[],i=0;i<e.length&&!((r-=2)<0);++i)o=e.charCodeAt(i),t=o>>8,n=o%256,l.push(n),l.push(t);return l}(r,e.length-o),e,o,t)}function y(e,r,o){return 0===r&&o===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(r,o))}function L(e,r,o){o=Math.min(e.length,o);for(var t=[],n=r;n<o;){var l,i,a,d,m=e[n],u=null,s=m>239?4:m>223?3:m>191?2:1;if(n+s<=o)switch(s){case 1:m<128&&(u=m);break;case 2:128===(192&(l=e[n+1]))&&(d=(31&m)<<6|63&l)>127&&(u=d);break;case 3:l=e[n+1],i=e[n+2],128===(192&l)&&128===(192&i)&&(d=(15&m)<<12|(63&l)<<6|63&i)>2047&&(d<55296||d>57343)&&(u=d);break;case 4:l=e[n+1],i=e[n+2],a=e[n+3],128===(192&l)&&128===(192&i)&&128===(192&a)&&(d=(15&m)<<18|(63&l)<<12|(63&i)<<6|63&a)>65535&&d<1114112&&(u=d)}null===u?(u=65533,s=1):u>65535&&(u-=65536,t.push(u>>>10&1023|55296),u=56320|1023&u),t.push(u),n+=s}return function(e){var r=e.length;if(r<=E)return String.fromCharCode.apply(String,e);var o="",t=0;for(;t<r;)o+=String.fromCharCode.apply(String,e.slice(t,t+=E));return o}(t)}r.Buffer=d,r.SlowBuffer=function(e){+e!=e&&(e=0);return d.alloc(+e)},r.INSPECT_MAX_BYTES=50,d.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"===typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(r){return!1}}(),r.kMaxLength=i(),d.poolSize=8192,d._augment=function(e){return e.__proto__=d.prototype,e},d.from=function(e,r,o){return m(null,e,r,o)},d.TYPED_ARRAY_SUPPORT&&(d.prototype.__proto__=Uint8Array.prototype,d.__proto__=Uint8Array,"undefined"!==typeof Symbol&&Symbol.species&&d[Symbol.species]===d&&Object.defineProperty(d,Symbol.species,{value:null,configurable:!0})),d.alloc=function(e,r,o){return function(e,r,o,t){return u(r),r<=0?a(e,r):void 0!==o?"string"===typeof t?a(e,r).fill(o,t):a(e,r).fill(o):a(e,r)}(null,e,r,o)},d.allocUnsafe=function(e){return s(null,e)},d.allocUnsafeSlow=function(e){return s(null,e)},d.isBuffer=function(e){return!(null==e||!e._isBuffer)},d.compare=function(e,r){if(!d.isBuffer(e)||!d.isBuffer(r))throw new TypeError("Arguments must be Buffers");if(e===r)return 0;for(var o=e.length,t=r.length,n=0,l=Math.min(o,t);n<l;++n)if(e[n]!==r[n]){o=e[n],t=r[n];break}return o<t?-1:t<o?1:0},d.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},d.concat=function(e,r){if(!l(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return d.alloc(0);var o;if(void 0===r)for(r=0,o=0;o<e.length;++o)r+=e[o].length;var t=d.allocUnsafe(r),n=0;for(o=0;o<e.length;++o){var i=e[o];if(!d.isBuffer(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(t,n),n+=i.length}return t},d.byteLength=x,d.prototype._isBuffer=!0,d.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var r=0;r<e;r+=2)f(this,r,r+1);return this},d.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var r=0;r<e;r+=4)f(this,r,r+3),f(this,r+1,r+2);return this},d.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var r=0;r<e;r+=8)f(this,r,r+7),f(this,r+1,r+6),f(this,r+2,r+5),f(this,r+3,r+4);return this},d.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?L(this,0,e):p.apply(this,arguments)},d.prototype.equals=function(e){if(!d.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===d.compare(this,e)},d.prototype.inspect=function(){var e="",o=r.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,o).match(/.{2}/g).join(" "),this.length>o&&(e+=" ... ")),"<Buffer "+e+">"},d.prototype.compare=function(e,r,o,t,n){if(!d.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===r&&(r=0),void 0===o&&(o=e?e.length:0),void 0===t&&(t=0),void 0===n&&(n=this.length),r<0||o>e.length||t<0||n>this.length)throw new RangeError("out of range index");if(t>=n&&r>=o)return 0;if(t>=n)return-1;if(r>=o)return 1;if(this===e)return 0;for(var l=(n>>>=0)-(t>>>=0),i=(o>>>=0)-(r>>>=0),a=Math.min(l,i),m=this.slice(t,n),u=e.slice(r,o),s=0;s<a;++s)if(m[s]!==u[s]){l=m[s],i=u[s];break}return l<i?-1:i<l?1:0},d.prototype.includes=function(e,r,o){return-1!==this.indexOf(e,r,o)},d.prototype.indexOf=function(e,r,o){return S(this,e,r,o,!0)},d.prototype.lastIndexOf=function(e,r,o){return S(this,e,r,o,!1)},d.prototype.write=function(e,r,o,t){if(void 0===r)t="utf8",o=this.length,r=0;else if(void 0===o&&"string"===typeof r)t=r,o=this.length,r=0;else{if(!isFinite(r))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");r|=0,isFinite(o)?(o|=0,void 0===t&&(t="utf8")):(t=o,o=void 0)}var n=this.length-r;if((void 0===o||o>n)&&(o=n),e.length>0&&(o<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");t||(t="utf8");for(var l=!1;;)switch(t){case"hex":return v(this,e,r,o);case"utf8":case"utf-8":return A(this,e,r,o);case"ascii":return b(this,e,r,o);case"latin1":case"binary":return T(this,e,r,o);case"base64":return M(this,e,r,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,e,r,o);default:if(l)throw new TypeError("Unknown encoding: "+t);t=(""+t).toLowerCase(),l=!0}},d.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var E=4096;function _(e,r,o){var t="";o=Math.min(e.length,o);for(var n=r;n<o;++n)t+=String.fromCharCode(127&e[n]);return t}function w(e,r,o){var t="";o=Math.min(e.length,o);for(var n=r;n<o;++n)t+=String.fromCharCode(e[n]);return t}function B(e,r,o){var t=e.length;(!r||r<0)&&(r=0),(!o||o<0||o>t)&&(o=t);for(var n="",l=r;l<o;++l)n+=R(e[l]);return n}function C(e,r,o){for(var t=e.slice(r,o),n="",l=0;l<t.length;l+=2)n+=String.fromCharCode(t[l]+256*t[l+1]);return n}function G(e,r,o){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+r>o)throw new RangeError("Trying to access beyond buffer length")}function N(e,r,o,t,n,l){if(!d.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(r>n||r<l)throw new RangeError('"value" argument is out of bounds');if(o+t>e.length)throw new RangeError("Index out of range")}function O(e,r,o,t){r<0&&(r=65535+r+1);for(var n=0,l=Math.min(e.length-o,2);n<l;++n)e[o+n]=(r&255<<8*(t?n:1-n))>>>8*(t?n:1-n)}function I(e,r,o,t){r<0&&(r=4294967295+r+1);for(var n=0,l=Math.min(e.length-o,4);n<l;++n)e[o+n]=r>>>8*(t?n:3-n)&255}function X(e,r,o,t,n,l){if(o+t>e.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("Index out of range")}function D(e,r,o,t,l){return l||X(e,0,o,4),n.write(e,r,o,t,23,4),o+4}function F(e,r,o,t,l){return l||X(e,0,o,8),n.write(e,r,o,t,52,8),o+8}d.prototype.slice=function(e,r){var o,t=this.length;if((e=~~e)<0?(e+=t)<0&&(e=0):e>t&&(e=t),(r=void 0===r?t:~~r)<0?(r+=t)<0&&(r=0):r>t&&(r=t),r<e&&(r=e),d.TYPED_ARRAY_SUPPORT)(o=this.subarray(e,r)).__proto__=d.prototype;else{var n=r-e;o=new d(n,void 0);for(var l=0;l<n;++l)o[l]=this[l+e]}return o},d.prototype.readUIntLE=function(e,r,o){e|=0,r|=0,o||G(e,r,this.length);for(var t=this[e],n=1,l=0;++l<r&&(n*=256);)t+=this[e+l]*n;return t},d.prototype.readUIntBE=function(e,r,o){e|=0,r|=0,o||G(e,r,this.length);for(var t=this[e+--r],n=1;r>0&&(n*=256);)t+=this[e+--r]*n;return t},d.prototype.readUInt8=function(e,r){return r||G(e,1,this.length),this[e]},d.prototype.readUInt16LE=function(e,r){return r||G(e,2,this.length),this[e]|this[e+1]<<8},d.prototype.readUInt16BE=function(e,r){return r||G(e,2,this.length),this[e]<<8|this[e+1]},d.prototype.readUInt32LE=function(e,r){return r||G(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},d.prototype.readUInt32BE=function(e,r){return r||G(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},d.prototype.readIntLE=function(e,r,o){e|=0,r|=0,o||G(e,r,this.length);for(var t=this[e],n=1,l=0;++l<r&&(n*=256);)t+=this[e+l]*n;return t>=(n*=128)&&(t-=Math.pow(2,8*r)),t},d.prototype.readIntBE=function(e,r,o){e|=0,r|=0,o||G(e,r,this.length);for(var t=r,n=1,l=this[e+--t];t>0&&(n*=256);)l+=this[e+--t]*n;return l>=(n*=128)&&(l-=Math.pow(2,8*r)),l},d.prototype.readInt8=function(e,r){return r||G(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},d.prototype.readInt16LE=function(e,r){r||G(e,2,this.length);var o=this[e]|this[e+1]<<8;return 32768&o?4294901760|o:o},d.prototype.readInt16BE=function(e,r){r||G(e,2,this.length);var o=this[e+1]|this[e]<<8;return 32768&o?4294901760|o:o},d.prototype.readInt32LE=function(e,r){return r||G(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},d.prototype.readInt32BE=function(e,r){return r||G(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},d.prototype.readFloatLE=function(e,r){return r||G(e,4,this.length),n.read(this,e,!0,23,4)},d.prototype.readFloatBE=function(e,r){return r||G(e,4,this.length),n.read(this,e,!1,23,4)},d.prototype.readDoubleLE=function(e,r){return r||G(e,8,this.length),n.read(this,e,!0,52,8)},d.prototype.readDoubleBE=function(e,r){return r||G(e,8,this.length),n.read(this,e,!1,52,8)},d.prototype.writeUIntLE=function(e,r,o,t){(e=+e,r|=0,o|=0,t)||N(this,e,r,o,Math.pow(2,8*o)-1,0);var n=1,l=0;for(this[r]=255&e;++l<o&&(n*=256);)this[r+l]=e/n&255;return r+o},d.prototype.writeUIntBE=function(e,r,o,t){(e=+e,r|=0,o|=0,t)||N(this,e,r,o,Math.pow(2,8*o)-1,0);var n=o-1,l=1;for(this[r+n]=255&e;--n>=0&&(l*=256);)this[r+n]=e/l&255;return r+o},d.prototype.writeUInt8=function(e,r,o){return e=+e,r|=0,o||N(this,e,r,1,255,0),d.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[r]=255&e,r+1},d.prototype.writeUInt16LE=function(e,r,o){return e=+e,r|=0,o||N(this,e,r,2,65535,0),d.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):O(this,e,r,!0),r+2},d.prototype.writeUInt16BE=function(e,r,o){return e=+e,r|=0,o||N(this,e,r,2,65535,0),d.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):O(this,e,r,!1),r+2},d.prototype.writeUInt32LE=function(e,r,o){return e=+e,r|=0,o||N(this,e,r,4,4294967295,0),d.TYPED_ARRAY_SUPPORT?(this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=255&e):I(this,e,r,!0),r+4},d.prototype.writeUInt32BE=function(e,r,o){return e=+e,r|=0,o||N(this,e,r,4,4294967295,0),d.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):I(this,e,r,!1),r+4},d.prototype.writeIntLE=function(e,r,o,t){if(e=+e,r|=0,!t){var n=Math.pow(2,8*o-1);N(this,e,r,o,n-1,-n)}var l=0,i=1,a=0;for(this[r]=255&e;++l<o&&(i*=256);)e<0&&0===a&&0!==this[r+l-1]&&(a=1),this[r+l]=(e/i>>0)-a&255;return r+o},d.prototype.writeIntBE=function(e,r,o,t){if(e=+e,r|=0,!t){var n=Math.pow(2,8*o-1);N(this,e,r,o,n-1,-n)}var l=o-1,i=1,a=0;for(this[r+l]=255&e;--l>=0&&(i*=256);)e<0&&0===a&&0!==this[r+l+1]&&(a=1),this[r+l]=(e/i>>0)-a&255;return r+o},d.prototype.writeInt8=function(e,r,o){return e=+e,r|=0,o||N(this,e,r,1,127,-128),d.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[r]=255&e,r+1},d.prototype.writeInt16LE=function(e,r,o){return e=+e,r|=0,o||N(this,e,r,2,32767,-32768),d.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):O(this,e,r,!0),r+2},d.prototype.writeInt16BE=function(e,r,o){return e=+e,r|=0,o||N(this,e,r,2,32767,-32768),d.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):O(this,e,r,!1),r+2},d.prototype.writeInt32LE=function(e,r,o){return e=+e,r|=0,o||N(this,e,r,4,2147483647,-2147483648),d.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24):I(this,e,r,!0),r+4},d.prototype.writeInt32BE=function(e,r,o){return e=+e,r|=0,o||N(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),d.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):I(this,e,r,!1),r+4},d.prototype.writeFloatLE=function(e,r,o){return D(this,e,r,!0,o)},d.prototype.writeFloatBE=function(e,r,o){return D(this,e,r,!1,o)},d.prototype.writeDoubleLE=function(e,r,o){return F(this,e,r,!0,o)},d.prototype.writeDoubleBE=function(e,r,o){return F(this,e,r,!1,o)},d.prototype.copy=function(e,r,o,t){if(o||(o=0),t||0===t||(t=this.length),r>=e.length&&(r=e.length),r||(r=0),t>0&&t<o&&(t=o),t===o)return 0;if(0===e.length||0===this.length)return 0;if(r<0)throw new RangeError("targetStart out of bounds");if(o<0||o>=this.length)throw new RangeError("sourceStart out of bounds");if(t<0)throw new RangeError("sourceEnd out of bounds");t>this.length&&(t=this.length),e.length-r<t-o&&(t=e.length-r+o);var n,l=t-o;if(this===e&&o<r&&r<t)for(n=l-1;n>=0;--n)e[n+r]=this[n+o];else if(l<1e3||!d.TYPED_ARRAY_SUPPORT)for(n=0;n<l;++n)e[n+r]=this[n+o];else Uint8Array.prototype.set.call(e,this.subarray(o,o+l),r);return l},d.prototype.fill=function(e,r,o,t){if("string"===typeof e){if("string"===typeof r?(t=r,r=0,o=this.length):"string"===typeof o&&(t=o,o=this.length),1===e.length){var n=e.charCodeAt(0);n<256&&(e=n)}if(void 0!==t&&"string"!==typeof t)throw new TypeError("encoding must be a string");if("string"===typeof t&&!d.isEncoding(t))throw new TypeError("Unknown encoding: "+t)}else"number"===typeof e&&(e&=255);if(r<0||this.length<r||this.length<o)throw new RangeError("Out of range index");if(o<=r)return this;var l;if(r>>>=0,o=void 0===o?this.length:o>>>0,e||(e=0),"number"===typeof e)for(l=r;l<o;++l)this[l]=e;else{var i=d.isBuffer(e)?e:k(new d(e,t).toString()),a=i.length;for(l=0;l<o-r;++l)this[l+r]=i[l%a]}return this};var $=/[^+\/0-9A-Za-z-_]/g;function R(e){return e<16?"0"+e.toString(16):e.toString(16)}function k(e,r){var o;r=r||1/0;for(var t=e.length,n=null,l=[],i=0;i<t;++i){if((o=e.charCodeAt(i))>55295&&o<57344){if(!n){if(o>56319){(r-=3)>-1&&l.push(239,191,189);continue}if(i+1===t){(r-=3)>-1&&l.push(239,191,189);continue}n=o;continue}if(o<56320){(r-=3)>-1&&l.push(239,191,189),n=o;continue}o=65536+(n-55296<<10|o-56320)}else n&&(r-=3)>-1&&l.push(239,191,189);if(n=null,o<128){if((r-=1)<0)break;l.push(o)}else if(o<2048){if((r-=2)<0)break;l.push(o>>6|192,63&o|128)}else if(o<65536){if((r-=3)<0)break;l.push(o>>12|224,o>>6&63|128,63&o|128)}else{if(!(o<1114112))throw new Error("Invalid code point");if((r-=4)<0)break;l.push(o>>18|240,o>>12&63|128,o>>6&63|128,63&o|128)}}return l}function U(e){return t.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace($,"")).length<2)return"";for(;e.length%4!==0;)e+="=";return e}(e))}function V(e,r,o,t){for(var n=0;n<t&&!(n+o>=r.length||n>=e.length);++n)r[n+o]=e[n];return n}}).call(this,o(24))},function(e,r,o){"use strict";r.byteLength=function(e){var r=m(e),o=r[0],t=r[1];return 3*(o+t)/4-t},r.toByteArray=function(e){var r,o,t=m(e),i=t[0],a=t[1],d=new l(function(e,r,o){return 3*(r+o)/4-o}(0,i,a)),u=0,s=a>0?i-4:i;for(o=0;o<s;o+=4)r=n[e.charCodeAt(o)]<<18|n[e.charCodeAt(o+1)]<<12|n[e.charCodeAt(o+2)]<<6|n[e.charCodeAt(o+3)],d[u++]=r>>16&255,d[u++]=r>>8&255,d[u++]=255&r;2===a&&(r=n[e.charCodeAt(o)]<<2|n[e.charCodeAt(o+1)]>>4,d[u++]=255&r);1===a&&(r=n[e.charCodeAt(o)]<<10|n[e.charCodeAt(o+1)]<<4|n[e.charCodeAt(o+2)]>>2,d[u++]=r>>8&255,d[u++]=255&r);return d},r.fromByteArray=function(e){for(var r,o=e.length,n=o%3,l=[],i=0,a=o-n;i<a;i+=16383)l.push(u(e,i,i+16383>a?a:i+16383));1===n?(r=e[o-1],l.push(t[r>>2]+t[r<<4&63]+"==")):2===n&&(r=(e[o-2]<<8)+e[o-1],l.push(t[r>>10]+t[r>>4&63]+t[r<<2&63]+"="));return l.join("")};for(var t=[],n=[],l="undefined"!==typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,d=i.length;a<d;++a)t[a]=i[a],n[i.charCodeAt(a)]=a;function m(e){var r=e.length;if(r%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var o=e.indexOf("=");return-1===o&&(o=r),[o,o===r?0:4-o%4]}function u(e,r,o){for(var n,l,i=[],a=r;a<o;a+=3)n=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),i.push(t[(l=n)>>18&63]+t[l>>12&63]+t[l>>6&63]+t[63&l]);return i.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},function(e,r){r.read=function(e,r,o,t,n){var l,i,a=8*n-t-1,d=(1<<a)-1,m=d>>1,u=-7,s=o?n-1:0,g=o?-1:1,c=e[r+s];for(s+=g,l=c&(1<<-u)-1,c>>=-u,u+=a;u>0;l=256*l+e[r+s],s+=g,u-=8);for(i=l&(1<<-u)-1,l>>=-u,u+=t;u>0;i=256*i+e[r+s],s+=g,u-=8);if(0===l)l=1-m;else{if(l===d)return i?NaN:1/0*(c?-1:1);i+=Math.pow(2,t),l-=m}return(c?-1:1)*i*Math.pow(2,l-t)},r.write=function(e,r,o,t,n,l){var i,a,d,m=8*l-n-1,u=(1<<m)-1,s=u>>1,g=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,c=t?0:l-1,x=t?1:-1,p=r<0||0===r&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(a=isNaN(r)?1:0,i=u):(i=Math.floor(Math.log(r)/Math.LN2),r*(d=Math.pow(2,-i))<1&&(i--,d*=2),(r+=i+s>=1?g/d:g*Math.pow(2,1-s))*d>=2&&(i++,d/=2),i+s>=u?(a=0,i=u):i+s>=1?(a=(r*d-1)*Math.pow(2,n),i+=s):(a=r*Math.pow(2,s-1)*Math.pow(2,n),i=0));n>=8;e[o+c]=255&a,c+=x,a/=256,n-=8);for(i=i<<n|a,m+=n;m>0;e[o+c]=255&i,c+=x,i/=256,m-=8);e[o+c-x]|=128*p}},function(e,r){var o={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==o.call(e)}},function(e,r,o){var t=o(7),n=o(32),l=o(19),i=o(8),a=o(33),d=o(18),m=t.getBCHDigit(7973);function u(e,r){return i.getCharCountIndicator(e,r)+4}function s(e,r){var o=0;return e.forEach((function(e){var t=u(e.mode,r);o+=t+e.getBitsLength()})),o}r.from=function(e,r){return a.isValid(e)?parseInt(e,10):r},r.getCapacity=function(e,r,o){if(!a.isValid(e))throw new Error("Invalid QR Code version");"undefined"===typeof o&&(o=i.BYTE);var l=8*(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r));if(o===i.MIXED)return l;var d=l-u(o,e);switch(o){case i.NUMERIC:return Math.floor(d/10*3);case i.ALPHANUMERIC:return Math.floor(d/11*2);case i.KANJI:return Math.floor(d/13);case i.BYTE:default:return Math.floor(d/8)}},r.getBestVersionForData=function(e,o){var t,n=l.from(o,l.M);if(d(e)){if(e.length>1)return function(e,o){for(var t=1;t<=40;t++){if(s(e,t)<=r.getCapacity(t,o,i.MIXED))return t}}(e,n);if(0===e.length)return 1;t=e[0]}else t=e;return function(e,o,t){for(var n=1;n<=40;n++)if(o<=r.getCapacity(n,t,e))return n}(t.mode,t.getLength(),n)},r.getEncodedBits=function(e){if(!a.isValid(e)||e<7)throw new Error("Invalid QR Code version");for(var r=e<<12;t.getBCHDigit(r)-m>=0;)r^=7973<<t.getBCHDigit(r)-m;return e<<12|r}},function(e,r,o){var t=o(7),n=t.getBCHDigit(1335);r.getEncodedBits=function(e,r){for(var o=e.bit<<3|r,l=o<<10;t.getBCHDigit(l)-n>=0;)l^=1335<<t.getBCHDigit(l)-n;return 21522^(o<<10|l)}},function(e,r,o){var t=o(8),n=o(157),l=o(158),i=o(159),a=o(160),d=o(34),m=o(7),u=o(161);function s(e){return unescape(encodeURIComponent(e)).length}function g(e,r,o){for(var t,n=[];null!==(t=e.exec(o));)n.push({data:t[0],index:t.index,mode:r,length:t[0].length});return n}function c(e){var r,o,n=g(d.NUMERIC,t.NUMERIC,e),l=g(d.ALPHANUMERIC,t.ALPHANUMERIC,e);return m.isKanjiModeEnabled()?(r=g(d.BYTE,t.BYTE,e),o=g(d.KANJI,t.KANJI,e)):(r=g(d.BYTE_KANJI,t.BYTE,e),o=[]),n.concat(l,r,o).sort((function(e,r){return e.index-r.index})).map((function(e){return{data:e.data,mode:e.mode,length:e.length}}))}function x(e,r){switch(r){case t.NUMERIC:return n.getBitsLength(e);case t.ALPHANUMERIC:return l.getBitsLength(e);case t.KANJI:return a.getBitsLength(e);case t.BYTE:return i.getBitsLength(e)}}function p(e,r){var o,d=t.getBestModeForData(e);if((o=t.from(r,d))!==t.BYTE&&o.bit<d.bit)throw new Error('"'+e+'" cannot be encoded with mode '+t.toString(o)+".\n Suggested mode is: "+t.toString(d));switch(o!==t.KANJI||m.isKanjiModeEnabled()||(o=t.BYTE),o){case t.NUMERIC:return new n(e);case t.ALPHANUMERIC:return new l(e);case t.KANJI:return new a(e);case t.BYTE:return new i(e)}}r.fromArray=function(e){return e.reduce((function(e,r){return"string"===typeof r?e.push(p(r,null)):r.data&&e.push(p(r.data,r.mode)),e}),[])},r.fromString=function(e,o){for(var n=function(e,r){for(var o={},n={start:{}},l=["start"],i=0;i<e.length;i++){for(var a=e[i],d=[],m=0;m<a.length;m++){var u=a[m],s=""+i+m;d.push(s),o[s]={node:u,lastCount:0},n[s]={};for(var g=0;g<l.length;g++){var c=l[g];o[c]&&o[c].node.mode===u.mode?(n[c][s]=x(o[c].lastCount+u.length,u.mode)-x(o[c].lastCount,u.mode),o[c].lastCount+=u.length):(o[c]&&(o[c].lastCount=u.length),n[c][s]=x(u.length,u.mode)+4+t.getCharCountIndicator(u.mode,r))}}l=d}for(g=0;g<l.length;g++)n[l[g]].end=0;return{map:n,table:o}}(function(e){for(var r=[],o=0;o<e.length;o++){var n=e[o];switch(n.mode){case t.NUMERIC:r.push([n,{data:n.data,mode:t.ALPHANUMERIC,length:n.length},{data:n.data,mode:t.BYTE,length:n.length}]);break;case t.ALPHANUMERIC:r.push([n,{data:n.data,mode:t.BYTE,length:n.length}]);break;case t.KANJI:r.push([n,{data:n.data,mode:t.BYTE,length:s(n.data)}]);break;case t.BYTE:r.push([{data:n.data,mode:t.BYTE,length:s(n.data)}])}}return r}(c(e,m.isKanjiModeEnabled())),o),l=u.find_path(n.map,"start","end"),i=[],a=1;a<l.length-1;a++)i.push(n.table[l[a]].node);return r.fromArray(function(e){return e.reduce((function(e,r){var o=e.length-1>=0?e[e.length-1]:null;return o&&o.mode===r.mode?(e[e.length-1].data+=r.data,e):(e.push(r),e)}),[])}(i))},r.rawSplit=function(e){return r.fromArray(c(e,m.isKanjiModeEnabled()))}},function(e,r,o){var t=o(8);function n(e){this.mode=t.NUMERIC,this.data=e.toString()}n.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},n.prototype.getLength=function(){return this.data.length},n.prototype.getBitsLength=function(){return n.getBitsLength(this.data.length)},n.prototype.write=function(e){var r,o,t;for(r=0;r+3<=this.data.length;r+=3)o=this.data.substr(r,3),t=parseInt(o,10),e.put(t,10);var n=this.data.length-r;n>0&&(o=this.data.substr(r),t=parseInt(o,10),e.put(t,3*n+1))},e.exports=n},function(e,r,o){var t=o(8),n=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function l(e){this.mode=t.ALPHANUMERIC,this.data=e}l.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},l.prototype.getLength=function(){return this.data.length},l.prototype.getBitsLength=function(){return l.getBitsLength(this.data.length)},l.prototype.write=function(e){var r;for(r=0;r+2<=this.data.length;r+=2){var o=45*n.indexOf(this.data[r]);o+=n.indexOf(this.data[r+1]),e.put(o,11)}this.data.length%2&&e.put(n.indexOf(this.data[r]),6)},e.exports=l},function(e,r,o){var t=o(9),n=o(8);function l(e){this.mode=n.BYTE,this.data=t.from(e)}l.getBitsLength=function(e){return 8*e},l.prototype.getLength=function(){return this.data.length},l.prototype.getBitsLength=function(){return l.getBitsLength(this.data.length)},l.prototype.write=function(e){for(var r=0,o=this.data.length;r<o;r++)e.put(this.data[r],8)},e.exports=l},function(e,r,o){var t=o(8),n=o(7);function l(e){this.mode=t.KANJI,this.data=e}l.getBitsLength=function(e){return 13*e},l.prototype.getLength=function(){return this.data.length},l.prototype.getBitsLength=function(){return l.getBitsLength(this.data.length)},l.prototype.write=function(e){var r;for(r=0;r<this.data.length;r++){var o=n.toSJIS(this.data[r]);if(o>=33088&&o<=40956)o-=33088;else{if(!(o>=57408&&o<=60351))throw new Error("Invalid SJIS character: "+this.data[r]+"\nMake sure your charset is UTF-8");o-=49472}o=192*(o>>>8&255)+(255&o),e.put(o,13)}},e.exports=l},function(e,r,o){"use strict";var t={single_source_shortest_paths:function(e,r,o){var n={},l={};l[r]=0;var i,a,d,m,u,s,g,c=t.PriorityQueue.make();for(c.push(r,0);!c.empty();)for(d in a=(i=c.pop()).value,m=i.cost,u=e[a]||{})u.hasOwnProperty(d)&&(s=m+u[d],g=l[d],("undefined"===typeof l[d]||g>s)&&(l[d]=s,c.push(d,s),n[d]=a));if("undefined"!==typeof o&&"undefined"===typeof l[o]){var x=["Could not find a path from ",r," to ",o,"."].join("");throw new Error(x)}return n},extract_shortest_path_from_predecessor_list:function(e,r){for(var o=[],t=r;t;)o.push(t),e[t],t=e[t];return o.reverse(),o},find_path:function(e,r,o){var n=t.single_source_shortest_paths(e,r,o);return t.extract_shortest_path_from_predecessor_list(n,o)},PriorityQueue:{make:function(e){var r,o=t.PriorityQueue,n={};for(r in e=e||{},o)o.hasOwnProperty(r)&&(n[r]=o[r]);return n.queue=[],n.sorter=e.sorter||o.default_sorter,n},default_sorter:function(e,r){return e.cost-r.cost},push:function(e,r){var o={value:e,cost:r};this.queue.push(o),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};e.exports=t},function(e,r,o){var t=o(35);r.render=function(e,r,o){var n=o,l=r;"undefined"!==typeof n||r&&r.getContext||(n=r,r=void 0),r||(l=function(){try{return document.createElement("canvas")}catch(e){throw new Error("You need to specify a canvas element")}}()),n=t.getOptions(n);var i=t.getImageWidth(e.modules.size,n),a=l.getContext("2d"),d=a.createImageData(i,i);return t.qrToImageData(d.data,e,n),function(e,r,o){e.clearRect(0,0,r.width,r.height),r.style||(r.style={}),r.height=o,r.width=o,r.style.height=o+"px",r.style.width=o+"px"}(a,l,i),a.putImageData(d,0,0),l},r.renderToDataURL=function(e,o,t){var n=t;"undefined"!==typeof n||o&&o.getContext||(n=o,o=void 0),n||(n={});var l=r.render(e,o,n),i=n.type||"image/png",a=n.rendererOpts||{};return l.toDataURL(i,a.quality)}},function(e,r,o){var t=o(35);function n(e,r){var o=e.a/255,t=r+'="'+e.hex+'"';return o<1?t+" "+r+'-opacity="'+o.toFixed(2).slice(1)+'"':t}function l(e,r,o){var t=e+r;return"undefined"!==typeof o&&(t+=" "+o),t}r.render=function(e,r,o){var i=t.getOptions(r),a=e.modules.size,d=e.modules.data,m=a+2*i.margin,u=i.color.light.a?"<path "+n(i.color.light,"fill")+' d="M0 0h'+m+"v"+m+'H0z"/>':"",s="<path "+n(i.color.dark,"stroke")+' d="'+function(e,r,o){for(var t="",n=0,i=!1,a=0,d=0;d<e.length;d++){var m=Math.floor(d%r),u=Math.floor(d/r);m||i||(i=!0),e[d]?(a++,d>0&&m>0&&e[d-1]||(t+=i?l("M",m+o,.5+u+o):l("m",n,0),n=0,i=!1),m+1<r&&e[d+1]||(t+=l("h",a),a=0)):n++}return t}(d,a,i.margin)+'"/>',g='viewBox="0 0 '+m+" "+m+'"',c='<svg xmlns="http://www.w3.org/2000/svg" '+(i.width?'width="'+i.width+'" height="'+i.width+'" ':"")+g+' shape-rendering="crispEdges">'+u+s+"</svg>\n";return"function"===typeof o&&o(null,c),c}}]]);</script><script type="text/javascript">(this["webpackJsonpalioss-html"]=this["webpackJsonpalioss-html"]||[]).push([[0],{164:function(e,t,n){"use strict";n.r(t);var a=n(0),i=n.n(a),s=n(36),c=n.n(s),l=(n(51),n(5)),o=n(37),r=n(38),p=n(44),m=n(39),u=n(10),d=n(45),h=(n(52),n(40)),v=n.n(h),f=n(41),b=n.n(f),g=n(20),w=n.n(g),y=n(42),E=function(e){function t(e){var n;Object(o.a)(this,t),(n=Object(p.a)(this,Object(m.a)(t).call(this,e))).installApp=n.installApp.bind(Object(u.a)(n)),n.selectRow=n.selectRow.bind(Object(u.a)(n));var a=(new b.a).parse(navigator.userAgent);return n.state={url:"config.json",device:a,list:[],current:null,isInstalling:!1,headerTitle:"__html_header_title__"},n.ref=i.a.createRef(),n}return Object(d.a)(t,e),Object(r.a)(t,[{key:"componentDidMount",value:function(){var e=this,t=this.state,n=t.url,a=t.device;v()(n).then((function(e){return e.json()})).then((function(t){var n=t.ipaList||[],i=t.apkList||[],s=t.appList||[],c=[];"iOS"===a.os.name?c=Object(l.a)(n):"Android"===a.os.name?c=Object(l.a)(i):"desktop"===a.device.type&&(c=[].concat(Object(l.a)(n),Object(l.a)(i),Object(l.a)(s))),c=Object(l.a)(c).sort((function(e,t){return e.time<t.time?1:-1})),e.setState({list:Object(l.a)(c),current:c.length?c[0]:null})}))}},{key:"componentDidUpdate",value:function(e,t,n){var a=this.ref.current;a&&y.a.toCanvas({canvas:a,content:window.location.href,width:260,logo:{src:"icon.png",radius:8}})}},{key:"installApp",value:function(){var e=this,t=this.state,n=t.current,a=t.device;n&&("iOS"===a.os.name?(window.location.href="itms-services://?action=download-manifest&url="+n.domain+n.path+"manifest.plist",setTimeout((function(){e.setState({isInstalling:!0})}),1e3)):window.location.href=n.domain+n.path+n.name),console.log(this.refs.qrcode)}},{key:"selectRow",value:function(e){this.setState({current:e})}},{key:"render",value:function(){var e=this,t=this.state,n=t.list,a=t.current,s=t.isInstalling,c=t.headerTitle,l=t.device;return a&&0!==n.length?i.a.createElement("div",{className:"App"},i.a.createElement("p",null,c),i.a.createElement("img",{src:"icon.png",className:"App-icon",alt:""}),i.a.createElement("p",{className:"App-detail-text"},"\u7248\u672c\uff1a",a.version," (build ",a.build,") \u5927\u5c0f\uff1a",(a.size/1024/1024).toFixed(2)," MB \u66f4\u65b0\u65f6\u95f4 \uff1a",w()("yyyy-MM-dd hh:mm:ss",new Date(1e3*a.time))),i.a.createElement("div",{className:"App-update-desc"},a.desc),i.a.createElement("button",{id:"install-app",className:"App-install-button",onClick:this.installApp},s?"\u6b63\u5728\u5b89\u88c5...":"\u5b89\u88c5App"),i.a.createElement("canvas",{ref:this.ref}),i.a.createElement("div",{className:"App-line"}," "),i.a.createElement("p",null,"\u5386\u53f2\u7248\u672c"),i.a.createElement("div",{className:"App-history-version"},n.map((function(t,n){var a=n%2===0?"App-box-0":"App-box-1";return i.a.createElement("div",{key:n,className:a,onClick:function(){e.selectRow(t)}},"desktop"===l.device.type&&i.a.createElement("p",{style:{marginRight:"10%"}},t.name),i.a.createElement("p",{style:{marginRight:"10%"}},t.version," (build ",t.build," )"),i.a.createElement("p",null,w()("yyyy-MM-dd hh:mm:ss",new Date(1e3*t.time))))})))):i.a.createElement("div",{className:"App"},i.a.createElement("p",null,c),i.a.createElement("img",{src:"icon.png",className:"App-icon",alt:""}),i.a.createElement("p",null,"Sorry\uff0c\u672a\u627e\u5230\u4efb\u4f55\u8f6f\u4ef6\u5305\uff01"))}}]),t}(i.a.Component);Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));c.a.render(i.a.createElement(E,null),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()}))},46:function(e,t,n){e.exports=n(164)},51:function(e,t,n){},52:function(e,t,n){}},[[46,1,2]]]);</script></body></html>
@@ -0,0 +1,16 @@
1
+ require 'fastlane/plugin/alioss/version'
2
+
3
+ module Fastlane
4
+ module Alioss
5
+ # Return all .rb files inside the "actions" and "helper" directory
6
+ def self.all_classes
7
+ Dir[File.expand_path('**/{actions,helper}/*.rb', File.dirname(__FILE__))]
8
+ end
9
+ end
10
+ end
11
+
12
+ # By default we want to import all available actions and helpers
13
+ # A plugin can contain any number of actions and plugins
14
+ Fastlane::Alioss.all_classes.each do |current|
15
+ require current
16
+ end
@@ -0,0 +1,392 @@
1
+ # -*- coding: UTF-8 -*-
2
+ require 'fastlane/action'
3
+ require_relative '../helper/alioss_helper'
4
+ require 'aliyun/oss'
5
+ require 'json'
6
+
7
+ module Fastlane
8
+ module Actions
9
+ class AliossAction < Action
10
+ def self.run(params)
11
+ UI.message("The alioss plugin is working!")
12
+
13
+ endpoint = params[:endpoint]
14
+ bucket_name = params[:bucket_name]
15
+ access_key_id = params[:access_key_id]
16
+ access_key_secret = params[:access_key_secret]
17
+ path_for_app_name = params[:app_name]
18
+ html_header_title = params[:html_header_title]
19
+
20
+ build_file = [
21
+ params[:ipa],
22
+ params[:apk]
23
+ ].detect { |e| !e.to_s.empty? }
24
+
25
+ # build_file = "/Users/wood/Documents/SuperbuyApp/build/output/Beta_20191127202707/Superbuy.ipa"
26
+
27
+ if build_file.nil?
28
+ UI.user_error!("请提供构建文件")
29
+ end
30
+
31
+ UI.message "endpoint: #{endpoint} bucket_name: #{bucket_name}"
32
+ UI.message "构建文件: #{build_file}"
33
+
34
+ download_domain = params[:download_domain]
35
+ if download_domain.nil?
36
+ download_domain = "https://#{bucket_name}.#{endpoint}/"
37
+ end
38
+
39
+ update_description = params[:update_description]
40
+ if update_description.nil?
41
+ update_description = ""
42
+ end
43
+
44
+ # start upload
45
+ client = Aliyun::OSS::Client.new(
46
+ endpoint: endpoint,
47
+ access_key_id: access_key_id,
48
+ access_key_secret: access_key_secret
49
+ )
50
+
51
+ bucket = client.get_bucket(bucket_name)
52
+
53
+ # list all buckets
54
+ UI.message "========== list all buckets =========="
55
+ bucket_objects = []
56
+ bucket.list_objects.each do |o|
57
+ UI.message o.key
58
+ bucket_objects.push(o.key)
59
+ end
60
+ UI.message "======================================"
61
+
62
+
63
+ # 必须包含的文件,没有就引导去下载
64
+ # must_bucket_file = ["app/config.json", "app/index.html"]
65
+ unless bucket.object_exists?("#{path_for_app_name}/config.json")
66
+ UI.message "配置文件不存在,初始化#{path_for_app_name}/config.json"
67
+ config_json_file = self.create_config_json_file(download_domain: download_domain)
68
+ bucket.put_object("#{path_for_app_name}/config.json", :file => File.expand_path(config_json_file))
69
+ # 上传完成后删除本地文件
70
+ self.delete_file(file: config_json_file)
71
+ UI.message "#{path_for_app_name}/config.json 配置完成"
72
+ end
73
+
74
+ unless bucket.object_exists?("#{path_for_app_name}/index.html")
75
+ UI.message "配置文件不存在,初始化#{path_for_app_name}/index.html"
76
+ index_html_file = self.create_index_html_file(
77
+ html_header_title: html_header_title
78
+ )
79
+ bucket.put_object("#{path_for_app_name}/index.html", :file => File.expand_path(index_html_file))
80
+ # 上传完成后删除本地文件
81
+ self.delete_file(file: index_html_file)
82
+ UI.message "#{path_for_app_name}/index.html 配置完成"
83
+ end
84
+
85
+ file_size = File.size(build_file)
86
+ filename = File.basename(build_file)
87
+
88
+ # 获取 build_number & version_number
89
+ build_number = Actions.lane_context[SharedValues::BUILD_NUMBER]
90
+ version_number = Actions.lane_context[SharedValues::VERSION_NUMBER]
91
+
92
+ # 根据不同的文件类型区分平台,拼接bucket_path路径
93
+ case File.extname(filename)
94
+ when ".ipa"
95
+ bucket_path = "#{path_for_app_name}/iOS"
96
+ when ".apk"
97
+ bucket_path = "#{path_for_app_name}/Android"
98
+ build_number = Actions.lane_context[SharedValues::ANDROID_VERSION_CODE]
99
+ version_number = Actions.lane_context[SharedValues::ANDROID_VERSION_NAME]
100
+ if build_number.nil || version_number.nil?
101
+ UI.important "ANDROID_VERSION_CODE & ANDROID_VERSION_NAME is nil,请设置 Actions.lane_context[SharedValues::ANDROID_VERSION_NAME] = version_name,推荐在fastlane中配置fastlane-plugin-versioning_android。"
102
+ end
103
+ when ".app"
104
+ bucket_path = "#{path_for_app_name}/Mac"
105
+ else
106
+ bucket_path = "#{path_for_app_name}/unknown"
107
+ UI.user_error!("不支持的APP类型")
108
+ end
109
+ timestamp = Time.now
110
+ bucket_path = "#{bucket_path}/#{timestamp.strftime('%Y%m%d%H%M%S')}/"
111
+
112
+ UI.message "正在上传文件,可能需要几分钟,请稍等..."
113
+
114
+ bucket.put_object(bucket_path + filename, :file => build_file)
115
+ download_url = "#{download_domain}#{bucket_path}#{filename}"
116
+ UI.message "download_url: #{download_url}"
117
+
118
+ UI.message "上传成功,正在更新配置文件..."
119
+
120
+ config_json_file_path = File.expand_path('config.json')
121
+ bucket.get_object("#{path_for_app_name}/config.json", :file => config_json_file_path)
122
+ config_json = JSON.parse(File.read(config_json_file_path))
123
+
124
+ UI.message "build_number: #{build_number} version_number: #{version_number}"
125
+
126
+ # 构建文件元信息
127
+ item_hash = {
128
+ "domain" => download_domain,
129
+ "path" => bucket_path,
130
+ "name" => filename,
131
+ "size" => file_size,
132
+ "desc" => update_description,
133
+ "version" => version_number,
134
+ "build" => build_number,
135
+ "time" => timestamp.to_i
136
+ }
137
+
138
+ # 根据不同的平台,将bucket_path记录到json中
139
+ case File.extname(filename)
140
+ when ".ipa"
141
+ UI.message "配置 manifest.plist ..."
142
+ app_name = GetIpaInfoPlistValueAction.run(ipa: build_file, key: 'CFBundleDisplayName')
143
+ app_identifier = GetIpaInfoPlistValueAction.run(ipa: build_file, key: 'CFBundleIdentifier')
144
+ version_number = GetIpaInfoPlistValueAction.run(ipa: build_file, key: 'CFBundleShortVersionString')
145
+ download_url = download_url
146
+ UI.message "app_name: #{app_name}"
147
+ UI.message "app_identifier: #{app_identifier}"
148
+ UI.message "version_number: #{version_number}"
149
+ manifest_file = self.create_manifest_file(
150
+ app_name: app_name,
151
+ path_for_app_name: path_for_app_name,
152
+ app_identifier: app_identifier,
153
+ version_number: version_number,
154
+ download_domain: download_domain,
155
+ download_url: download_url
156
+ )
157
+ bucket_plist_path = "#{bucket_path}#{File.basename(manifest_file)}"
158
+ UI.message "bucket_plist_path: #{bucket_plist_path}"
159
+ bucket.put_object(bucket_plist_path, :file => File.expand_path(manifest_file))
160
+ # 上传完成后删除本地文件
161
+ self.delete_file(file: manifest_file)
162
+
163
+ ipaList = config_json["ipaList"]
164
+ if ipaList.nil?
165
+ ipaList = []
166
+ end
167
+ item_hash["version"] = version_number
168
+ item_hash["identifier"] = app_identifier
169
+ ipaList.push(item_hash)
170
+ config_json["ipaList"] = ipaList
171
+ when ".apk"
172
+ apkList = config_json["apkList"]
173
+ if apkList.nil?
174
+ apkList = []
175
+ end
176
+ apkList.push(item_hash)
177
+ config_json["apkList"] = apkList
178
+ when ".app"
179
+ appList = config_json["appList"]
180
+ if appList.nil?
181
+ appList = []
182
+ end
183
+ appList.push(item_hash)
184
+ config_json["appList"] = appList
185
+ else
186
+ UI.message ""
187
+ end
188
+
189
+ UI.message "配置 config_json ..."
190
+ # 将新的json数据写入到config_json_file中
191
+ config_json_file = File.new(config_json_file_path, "w")
192
+ config_json_file.puts(JSON.generate(config_json))
193
+ config_json_file.close
194
+ # 上传新文件覆盖oss的config.json
195
+ bucket.put_object("#{path_for_app_name}/config.json", :file => config_json_file_path)
196
+ # 上传完成后删除本地文件
197
+ self.delete_file(file: config_json_file)
198
+
199
+ UI.success "Success!✌️,请访问: #{download_domain}#{path_for_app_name}/index.html"
200
+
201
+ end
202
+
203
+ def self.description
204
+ "upload ipa/apk to aliyun oos server, and scan QRcode to install app on mobile phone."
205
+ end
206
+
207
+ def self.authors
208
+ ["woodwu"]
209
+ end
210
+
211
+ def self.return_value
212
+ # If your method provides a return value, you can describe here what it does
213
+ end
214
+
215
+ def self.details
216
+ # Optional:
217
+ "将App发布到公司的阿里云文件服务器中,方便内部员工扫码测试"
218
+ end
219
+
220
+ def self.available_options
221
+ [
222
+ FastlaneCore::ConfigItem.new(key: :endpoint,
223
+ env_name: "ALIOSS_ENDPOINT",
224
+ description: "请提供 endpoint,Endpoint 表示 OSS 对外服务的访问域名。OSS 以 HTTP RESTful API 的形式对外提供服务,当访问不同的 Region 的时候,需要不同的域名。",
225
+ optional: false,
226
+ type: String),
227
+ FastlaneCore::ConfigItem.new(key: :access_key_id,
228
+ env_name: "ALIOSS_ACCESS_KEY_ID",
229
+ description: "请提供 AccessKeyId,OSS 通过使用 AccessKeyId 和 AccessKeySecret 对称加密的方法来验证某个请求的发送者身份。AccessKeyId 用于标识用户。",
230
+ optional: false,
231
+ type: String),
232
+ FastlaneCore::ConfigItem.new(key: :access_key_secret,
233
+ env_name: "ALIOSS_ACCESS_KEY_SECRET",
234
+ description: "请提供 AccessKeySecret,OSS 通过使用 AccessKeyId 和 AccessKeySecret 对称加密的方法来验证某个请求的发送者身份。AccessKeySecret 是用户用于加密签名字符串和 OSS 用来验证签名字符串的密钥,必须保密。",
235
+ optional: false,
236
+ type: String),
237
+ FastlaneCore::ConfigItem.new(key: :bucket_name,
238
+ env_name: "ALIOSS_BUCKET_NAME",
239
+ description: "请提供 bucket_name,存储空间(Bucket)是您用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。您可以根据实际需求,创建不同类型的存储空间来存储不同的数据。",
240
+ optional: false,
241
+ type: String),
242
+ FastlaneCore::ConfigItem.new(key: :apk,
243
+ env_name: "ALIOSS_APK",
244
+ description: "APK文件路径",
245
+ default_value: Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH],
246
+ optional: true,
247
+ verify_block: proc do |value|
248
+ UI.user_error!("请检查apk文件路径 '#{value}' )") unless File.exist?(value)
249
+ end,
250
+ conflicting_options: [:ipa],
251
+ conflict_block: proc do |value|
252
+ UI.user_error!("在运行的选项中不能使用 'apk' and '#{value.key}')")
253
+ end),
254
+ FastlaneCore::ConfigItem.new(key: :ipa,
255
+ env_name: "ALIOSS_IPA",
256
+ description: "IPA文件路径,可选的action有_gym_和_xcodebuild_,Mac是.app文件,安卓是.apk文件。",
257
+ default_value: Actions.lane_context[SharedValues::IPA_OUTPUT_PATH],
258
+ optional: true,
259
+ verify_block: proc do |value|
260
+ UI.user_error!("请检查apk文件路径 '#{value}' ") unless File.exist?(value)
261
+ end,
262
+ conflicting_options: [:apk],
263
+ conflict_block: proc do |value|
264
+ UI.user_error!("在运行的选项中不能使用 'ipa' 和 '#{value.key}'")
265
+ end),
266
+ FastlaneCore::ConfigItem.new(key: :app_name,
267
+ env_name: "APP_NAME",
268
+ description: "App的名称,你的服务器中可能有多个App,需要用App名称来区分,这个名称也是文件目录的名称,可以是App的路径。",
269
+ default_value: "app",
270
+ optional: true,
271
+ type: String),
272
+ FastlaneCore::ConfigItem.new(key: :download_domain,
273
+ env_name: "ALIOSS_DOWNLOAD_DOMAIN",
274
+ description: "下载域名,默认是https://{bucket_name}.{endpoint}/",
275
+ optional: true,
276
+ type: String),
277
+ FastlaneCore::ConfigItem.new(key: :html_header_title,
278
+ env_name: "ALIOSS_HTML_HEADER_TITLE",
279
+ description: "html下载页面header title",
280
+ default_value: "很高兴邀请您安装我们的App,测试并反馈问题,便于我们及时解决您遇到的问题,十分谢谢!Thanks♪(・ω・)ノ",
281
+ optional: true,
282
+ type: String),
283
+ FastlaneCore::ConfigItem.new(key: :update_description,
284
+ env_name: "ALIOSS_UPDATE_DESCRIPTION",
285
+ description: "设置app更新日志,描述你修改了哪些内容。",
286
+ optional: true,
287
+ type: String)
288
+ ]
289
+ end
290
+
291
+ def self.is_supported?(platform)
292
+ # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
293
+ # See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
294
+ #
295
+ # [:ios, :mac, :android].include?(platform)
296
+ true
297
+ end
298
+
299
+ def self.create_manifest_file(params)
300
+ # create manifest.plist file
301
+ manifest_file = File.new("manifest.plist", "w")
302
+ manifest_file.puts("<?xml version=\"1.0\" encoding=\"UTF-8\"?>
303
+ <!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
304
+ <plist version=\"1.0\">
305
+ <dict>
306
+ <key>items</key>
307
+ <array>
308
+ <dict>
309
+ <key>assets</key>
310
+ <array>
311
+ <dict>
312
+ <key>kind</key>
313
+ <string>software-package</string>
314
+ <key>url</key>
315
+ <string>#{params[:download_url]}</string>
316
+ </dict>
317
+ <dict>
318
+ <key>kind</key>
319
+ <string>display-image</string>
320
+ <key>url</key>
321
+ <string>#{params[:download_domain]}#{params[:path_for_app_name]}/iOS/icon/icon-57.png</string>
322
+ </dict>
323
+ <dict>
324
+ <key>kind</key>
325
+ <string>full-size-image</string>
326
+ <key>url</key>
327
+ <string>#{params[:download_domain]}#{params[:path_for_app_name]}/iOS/icon/icon-512.png</string>
328
+ </dict>
329
+ </array>
330
+ <key>metadata</key>
331
+ <dict>
332
+ <key>bundle-identifier</key>
333
+ <string>#{params[:app_identifier]}</string>
334
+ <key>bundle-version</key>
335
+ <string>#{params[:version_number]}</string>
336
+ <key>kind</key>
337
+ <string>software</string>
338
+ <key>platform-identifier</key>
339
+ <string>com.apple.platform.iphoneos</string>
340
+ <key>title</key>
341
+ <string>#{params[:app_name]}</string>
342
+ </dict>
343
+ </dict>
344
+ </array>
345
+ </dict>
346
+ </plist>")
347
+ manifest_file.close
348
+ return manifest_file
349
+ end
350
+
351
+ def self.create_config_json_file(params)
352
+ # create config.json file
353
+ config_json_file = File.new("config.json", "w")
354
+ config_json_file.puts("{
355
+ \"version\": \"0.1.0\",
356
+ \"domain\": \"#{params[:download_domain]}\",
357
+ \"desc\": \"每个版本的配置文件,记录着所有历史版本。\",
358
+ \"ipaList\": [],
359
+ \"apkList\": [],
360
+ \"appList\": []
361
+ }")
362
+ config_json_file.close
363
+ return config_json_file
364
+ end
365
+
366
+ def self.create_index_html_file(params)
367
+ # create index.html file
368
+ filename = Helper::AliossHelper.index_html_template_path
369
+ temp_filename = "temp_index.html"
370
+ if File.readable?(filename)
371
+ temp_file = File.new(temp_filename, "w")
372
+ IO.foreach(filename) do |block|
373
+ # temp_file.puts(block.gsub("your_config_json_url", "#{params[:download_domain]}#{params[:path_for_app_name]}/config.json"))
374
+ temp_file.puts(block.gsub("__html_header_title__", params[:html_header_title]))
375
+ end
376
+ temp_file.close
377
+ return temp_file
378
+ else
379
+ UI.user_error!("项目index.html不存在")
380
+ end
381
+ end
382
+
383
+ def self.delete_file(params)
384
+ file = params[:file]
385
+ # 上传完成后删除本地文件
386
+ if File.file?(File.expand_path(file))
387
+ File.delete(File.expand_path(file))
388
+ end
389
+ end
390
+ end
391
+ end
392
+ end