ClickHouse/tests/queries/0_stateless/data_ua_parser/os.yaml

1076 lines
30 KiB
YAML

- os_replacement: $1
os_v1_replacement: '2013'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: HbbTV/\d+\.\d+\.\d+ \( ;(LG)E ;NetCast 4.0
- os_replacement: $1
os_v1_replacement: '2012'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: HbbTV/\d+\.\d+\.\d+ \( ;(LG)E ;NetCast 3.0
- os_replacement: Samsung
os_v1_replacement: '2011'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: HbbTV/1.1.1 \(;;;;;\) Maple_2011
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: UE40F7000
os_v3_replacement: $4
os_v4_replacement: $5
regex: HbbTV/\d+\.\d+\.\d+ \(;(Samsung);SmartTV([0-9]{4});.{0,200}FXPDEUC
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: UE32F4500
os_v3_replacement: $4
os_v4_replacement: $5
regex: HbbTV/\d+\.\d+\.\d+ \(;(Samsung);SmartTV([0-9]{4});.{0,200}MST12DEUC
- os_replacement: $1
os_v1_replacement: '2013'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: HbbTV/1\.1\.1 \(; (Philips);.{0,200}NETTV/4
- os_replacement: $1
os_v1_replacement: '2012'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: HbbTV/1\.1\.1 \(; (Philips);.{0,200}NETTV/3
- os_replacement: $1
os_v1_replacement: '2011'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: HbbTV/1\.1\.1 \(; (Philips);.{0,200}NETTV/2
- os_replacement: FireHbbTV
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: HbbTV/\d+\.\d+\.\d+.{0,100}(firetv)-firefox-plugin (\d+).(\d+).(\d+)
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: HbbTV/\d+\.\d+\.\d+ \(.{0,30}; ?([a-zA-Z]+) ?;.{0,30}(201[1-9]).{0,30}\)
- os_replacement: Other
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: AspiegelBot
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Windows Phone) (?:OS[ /])?(\d+)\.(\d+)
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone)[ +]+(\d+)[_\.](\d+)(?:[_\.](\d+)|).{0,100}Outlook-iOS-Android
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: ArcGIS\.?(iOS|Android)-\d+\.\d+(?:\.\d+|)(?:[^\/]{1,50}|)\/(\d+)(?:\.(\d+)(?:\.(\d+)|)|)
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: ArcGISRuntime-(?:Android|iOS)\/\d+\.\d+(?:\.\d+|) \((Android|iOS) (\d+)(?:\.(\d+)(?:\.(\d+)|)|);
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Android)[ \-/](\d+)(?:\.(\d+)|)(?:[.\-]([a-z0-9]+)|)
- os_replacement: $1
os_v1_replacement: '1'
os_v2_replacement: '2'
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Android) Donut
- os_replacement: $1
os_v1_replacement: '2'
os_v2_replacement: '1'
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Android) Eclair
- os_replacement: $1
os_v1_replacement: '2'
os_v2_replacement: '2'
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Android) Froyo
- os_replacement: $1
os_v1_replacement: '2'
os_v2_replacement: '3'
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Android) Gingerbread
- os_replacement: $1
os_v1_replacement: '3'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Android) Honeycomb
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Android) (\d+);
- os_replacement: Android
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: ^UCWEB.{0,200}; (Adr) (\d+)\.(\d+)(?:[.\-]([a-z0-9]{1,100})|);
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: ^UCWEB.{0,200}; (iPad|iPh|iPd) OS (\d+)_(\d+)(?:_(\d+)|);
- os_replacement: Windows Phone
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: ^UCWEB.{0,200}; (wds) (\d+)\.(\d+)(?:\.(\d+)|);
- os_replacement: Android
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: ^(JUC).{0,200}; ?U; ?(?:Android|)(\d+)\.(\d+)(?:[\.\-]([a-z0-9]{1,100})|)
- os_replacement: Android
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (android)\s(?:mobile\/)(\d+)(?:\.(\d+)(?:\.(\d+)|)|)
- os_replacement: Android
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Silk-Accelerated=[a-z]{4,5})
- os_replacement: Chrome OS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (x86_64|aarch64)\ (\d+)\.(\d+)\.(\d+).{0,100}Chrome.{0,100}(?:CitrixChromeApp)$
- os_replacement: Windows Phone
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (XBLWP7)
- os_replacement: Windows Mobile
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Windows ?Mobile)
- os_replacement: Windows
os_v1_replacement: '10'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Windows 10)
- os_replacement: Windows
os_v1_replacement: XP
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Windows (?:NT 5\.2|NT 5\.1))
- os_replacement: Windows
os_v1_replacement: '7'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Win(?:dows NT |32NT\/)6\.1)
- os_replacement: Windows
os_v1_replacement: Vista
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Win(?:dows NT |32NT\/)6\.0)
- os_replacement: Windows
os_v1_replacement: ME
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Win 9x 4\.90)
- os_replacement: Windows
os_v1_replacement: RT
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Windows NT 6\.2; ARM;)
- os_replacement: Windows
os_v1_replacement: '8'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Win(?:dows NT |32NT\/)6\.2)
- os_replacement: Windows
os_v1_replacement: RT 8
os_v2_replacement: '1'
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Windows NT 6\.3; ARM;)
- os_replacement: Windows
os_v1_replacement: '8'
os_v2_replacement: '1'
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Win(?:dows NT |32NT\/)6\.3)
- os_replacement: Windows
os_v1_replacement: '10'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Win(?:dows NT |32NT\/)6\.4)
- os_replacement: Windows
os_v1_replacement: '10'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Windows NT 10\.0)
- os_replacement: Windows
os_v1_replacement: '2000'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Windows NT 5\.0)
- os_replacement: Windows
os_v1_replacement: NT 4.0
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (WinNT4.0)
- os_replacement: Windows
os_v1_replacement: CE
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Windows ?CE)
- os_replacement: Windows
os_v1_replacement: $1
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: Win(?:dows)? ?(95|98|3.1|NT|ME|2000|XP|Vista|7|CE)
- os_replacement: Windows
os_v1_replacement: '3.1'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: Win16
- os_replacement: Windows
os_v1_replacement: '95'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: Win32
- os_replacement: Windows
os_v1_replacement: $1
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: ^Box.{0,200}Windows/([\d.]+);
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Tizen)[/ ](\d+)\.(\d+)
- os_replacement: Mac OS X
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: ((?:Mac[ +]?|; )OS[ +]X)[\s+/](?:(\d+)[_.](\d+)(?:[_.](\d+)|)|Mach-O)
- os_replacement: Mac OS X
os_v1_replacement: $1
os_v2_replacement: $2
os_v3_replacement: $3
os_v4_replacement: $5
regex: Mac OS X\s.{1,50}\s(\d+).(\d+).(\d+)
- os_replacement: Mac OS X
os_v1_replacement: '10'
os_v2_replacement: '5'
os_v3_replacement: $4
os_v4_replacement: $5
regex: ' (Dar)(win)/(9).(\d+).{0,100}\((?:i386|x86_64|Power Macintosh)\)'
- os_replacement: Mac OS X
os_v1_replacement: '10'
os_v2_replacement: '6'
os_v3_replacement: $4
os_v4_replacement: $5
regex: ' (Dar)(win)/(10).(\d+).{0,100}\((?:i386|x86_64)\)'
- os_replacement: Mac OS X
os_v1_replacement: '10'
os_v2_replacement: '7'
os_v3_replacement: $4
os_v4_replacement: $5
regex: ' (Dar)(win)/(11).(\d+).{0,100}\((?:i386|x86_64)\)'
- os_replacement: Mac OS X
os_v1_replacement: '10'
os_v2_replacement: '8'
os_v3_replacement: $4
os_v4_replacement: $5
regex: ' (Dar)(win)/(12).(\d+).{0,100}\((?:i386|x86_64)\)'
- os_replacement: Mac OS X
os_v1_replacement: '10'
os_v2_replacement: '9'
os_v3_replacement: $4
os_v4_replacement: $5
regex: ' (Dar)(win)/(13).(\d+).{0,100}\((?:i386|x86_64)\)'
- os_replacement: Mac OS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: Mac_PowerPC
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (?:PPC|Intel) (Mac OS X)
- os_replacement: Mac OS X
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: ^Box.{0,200};(Darwin)/(10)\.(1\d)(?:\.(\d+)|)
- os_replacement: ATV OS X
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Apple\s?TV)(?:/(\d+)\.(\d+)|)
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_\.](\d+)(?:[_\.](\d+)|)
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (iPhone|iPad|iPod); Opera
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (iPhone|iPad|iPod).{0,100}Mac OS X.{0,100}Version/(\d+)\.(\d+)
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CFNetwork)/(5)48\.0\.3.{0,100} Darwin/11\.0\.0
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CFNetwork)/(5)48\.(0)\.4.{0,100} Darwin/(1)1\.0\.0
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CFNetwork)/(5)48\.(1)\.4
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CFNetwork)/(4)85\.1(3)\.9
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CFNetwork)/(6)09\.(1)\.4
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CFNetwork)/(6)(0)9
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CFNetwork)/6(7)2\.(1)\.13
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CFNetwork)/6(7)2\.(1)\.(1)4
- os_replacement: iOS
os_v1_replacement: '7'
os_v2_replacement: '1'
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CF)(Network)/6(7)(2)\.1\.15
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CFNetwork)/6(7)2\.(0)\.(?:2|8)
- os_replacement: iOS
os_v1_replacement: '8'
os_v2_replacement: 0.b5
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CFNetwork)/709\.1
- os_replacement: iOS
os_v1_replacement: '8'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CF)(Network)/711\.(\d)
- os_replacement: Mac OS X
os_v1_replacement: '10'
os_v2_replacement: '10'
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CF)(Network)/(720)\.(\d)
- os_replacement: Mac OS X
os_v1_replacement: '10'
os_v2_replacement: '11'
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CF)(Network)/(760)\.(\d)
- os_replacement: iOS
os_v1_replacement: '9'
os_v2_replacement: '3'
os_v3_replacement: '1'
os_v4_replacement: $5
regex: CFNetwork/7.{0,100} Darwin/15\.4\.\d+
- os_replacement: iOS
os_v1_replacement: '9'
os_v2_replacement: '3'
os_v3_replacement: '2'
os_v4_replacement: $5
regex: CFNetwork/7.{0,100} Darwin/15\.5\.\d+
- os_replacement: iOS
os_v1_replacement: '9'
os_v2_replacement: '3'
os_v3_replacement: '5'
os_v4_replacement: $5
regex: CFNetwork/7.{0,100} Darwin/15\.6\.\d+
- os_replacement: iOS
os_v1_replacement: '9'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CF)(Network)/758\.(\d)
- os_replacement: iOS
os_v1_replacement: '10'
os_v2_replacement: '2'
os_v3_replacement: '1'
os_v4_replacement: $5
regex: CFNetwork/808\.3 Darwin/16\.3\.\d+
- os_replacement: iOS
os_v1_replacement: '10'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CF)(Network)/808\.(\d)
- os_replacement: Mac OS X
os_v1_replacement: '10'
os_v2_replacement: '13'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/.{0,100} Darwin/17\.\d+.{0,100}\(x86_64\)
- os_replacement: Mac OS X
os_v1_replacement: '10'
os_v2_replacement: '12'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/.{0,100} Darwin/16\.\d+.{0,100}\(x86_64\)
- os_replacement: Mac OS X
os_v1_replacement: '10'
os_v2_replacement: '11'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/8.{0,100} Darwin/15\.\d+.{0,100}\(x86_64\)
- os_replacement: iOS
os_v1_replacement: '1'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/.{0,100} Darwin/(9)\.\d+
- os_replacement: iOS
os_v1_replacement: '4'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/.{0,100} Darwin/(10)\.\d+
- os_replacement: iOS
os_v1_replacement: '5'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/.{0,100} Darwin/(11)\.\d+
- os_replacement: iOS
os_v1_replacement: '6'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/.{0,100} Darwin/(13)\.\d+
- os_replacement: iOS
os_v1_replacement: '7'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/6.{0,100} Darwin/(14)\.\d+
- os_replacement: iOS
os_v1_replacement: '8'
os_v2_replacement: '0'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/7.{0,100} Darwin/(14)\.\d+
- os_replacement: iOS
os_v1_replacement: '9'
os_v2_replacement: '0'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/7.{0,100} Darwin/(15)\.\d+
- os_replacement: iOS
os_v1_replacement: '10'
os_v2_replacement: '3'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/8.{0,100} Darwin/16\.5\.\d+
- os_replacement: iOS
os_v1_replacement: '10'
os_v2_replacement: '3'
os_v3_replacement: '2'
os_v4_replacement: $5
regex: CFNetwork/8.{0,100} Darwin/16\.6\.\d+
- os_replacement: iOS
os_v1_replacement: '10'
os_v2_replacement: '3'
os_v3_replacement: '3'
os_v4_replacement: $5
regex: CFNetwork/8.{0,100} Darwin/16\.7\.\d+
- os_replacement: iOS
os_v1_replacement: '10'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/8.{0,100} Darwin/(16)\.\d+
- os_replacement: iOS
os_v1_replacement: '11'
os_v2_replacement: '0'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/8.{0,100} Darwin/17\.0\.\d+
- os_replacement: iOS
os_v1_replacement: '11'
os_v2_replacement: '1'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/8.{0,100} Darwin/17\.2\.\d+
- os_replacement: iOS
os_v1_replacement: '11'
os_v2_replacement: '2'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/8.{0,100} Darwin/17\.3\.\d+
- os_replacement: iOS
os_v1_replacement: '11'
os_v2_replacement: '2'
os_v3_replacement: '6'
os_v4_replacement: $5
regex: CFNetwork/8.{0,100} Darwin/17\.4\.\d+
- os_replacement: iOS
os_v1_replacement: '11'
os_v2_replacement: '3'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/8.{0,100} Darwin/17\.5\.\d+
- os_replacement: iOS
os_v1_replacement: '11'
os_v2_replacement: '4'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/9.{0,100} Darwin/17\.6\.\d+
- os_replacement: iOS
os_v1_replacement: '11'
os_v2_replacement: '4'
os_v3_replacement: '1'
os_v4_replacement: $5
regex: CFNetwork/9.{0,100} Darwin/17\.7\.\d+
- os_replacement: iOS
os_v1_replacement: '11'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/8.{0,100} Darwin/(17)\.\d+
- os_replacement: iOS
os_v1_replacement: '12'
os_v2_replacement: '0'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/9.{0,100} Darwin/18\.0\.\d+
- os_replacement: iOS
os_v1_replacement: '12'
os_v2_replacement: '1'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/9.{0,100} Darwin/18\.2\.\d+
- os_replacement: iOS
os_v1_replacement: '12'
os_v2_replacement: '2'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/9.{0,100} Darwin/18\.5\.\d+
- os_replacement: iOS
os_v1_replacement: '12'
os_v2_replacement: '3'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/9.{0,100} Darwin/18\.6\.\d+
- os_replacement: iOS
os_v1_replacement: '12'
os_v2_replacement: '4'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/9.{0,100} Darwin/18\.7\.\d+
- os_replacement: iOS
os_v1_replacement: '12'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/9.{0,100} Darwin/(18)\.\d+
- os_replacement: iOS
os_v1_replacement: '13'
os_v2_replacement: '3'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/11.{0,100} Darwin/19\.2\.\d+
- os_replacement: iOS
os_v1_replacement: '13'
os_v2_replacement: '3'
os_v3_replacement: '1'
os_v4_replacement: $5
regex: CFNetwork/11.{0,100} Darwin/19\.3\.\d+
- os_replacement: iOS
os_v1_replacement: '13'
os_v2_replacement: '4'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/11.{0,100} Darwin/19\.4\.\d+
- os_replacement: iOS
os_v1_replacement: '13'
os_v2_replacement: '5'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/11.{0,100} Darwin/19\.5\.\d+
- os_replacement: iOS
os_v1_replacement: '13'
os_v2_replacement: '6'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/11.{0,100} Darwin/19\.6\.\d+
- os_replacement: iOS
os_v1_replacement: '13'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/1[01].{0,100} Darwin/19\.\d+
- os_replacement: iOS
os_v1_replacement: '14'
os_v2_replacement: '2'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/12.{0,100} Darwin/20\.1\.\d+
- os_replacement: iOS
os_v1_replacement: '14'
os_v2_replacement: '3'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/12.{0,100} Darwin/20\.2\.\d+
- os_replacement: iOS
os_v1_replacement: '14'
os_v2_replacement: '4'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/12.{0,100} Darwin/20\.3\.\d+
- os_replacement: iOS
os_v1_replacement: '14'
os_v2_replacement: '5'
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/12.{0,100} Darwin/20\.4\.\d+
- os_replacement: iOS
os_v1_replacement: '14'
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/.{0,100} Darwin/(20)\.\d+
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: CFNetwork/.{0,100} Darwin/
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: '\b(iOS[ /]|iOS; |iPhone(?:/| v|[ _]OS[/,]|; | OS : |\d,\d/|\d,\d; )|iPad/)(\d{1,2})[_\.](\d{1,2})(?:[_\.](\d+)|)'
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: \((iOS);
- os_replacement: WatchOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (watchOS)[/ ](\d+)\.(\d+)(?:\.(\d+)|)
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: Outlook-(iOS)/\d+\.\d+\.prod\.iphone
- os_replacement: iOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (iPod|iPhone|iPad)
- os_replacement: tvOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (tvOS)[/ ](\d+)\.(\d+)(?:\.(\d+)|)
- os_replacement: Chrome OS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CrOS) [a-z0-9_]+ (\d+)\.(\d+)(?:\.(\d+)|)
- os_replacement: Debian
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: ([Dd]ebian)
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Linux Mint)(?:/(\d+)|)
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: '(Mandriva)(?: Linux|)/(?:[\d.-]+m[a-z]{2}(\d+).(\d)|)'
- os_replacement: Symbian OS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Symbian[Oo][Ss])[/ ](\d+)\.(\d+)
- os_replacement: Symbian^3 Anna
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Symbian/3).{1,200}NokiaBrowser/7\.3
- os_replacement: Symbian^3 Belle
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Symbian/3).{1,200}NokiaBrowser/7\.4
- os_replacement: Symbian^3
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Symbian/3)
- os_replacement: Symbian OS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: \b(Series 60|SymbOS|S60Version|S60V\d|S60\b)
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (MeeGo)
- os_replacement: Symbian OS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: Symbian [Oo][Ss]
- os_replacement: Nokia Series 40
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: Series40;
- os_replacement: Nokia Series 30 Plus
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: Series30Plus;
- os_replacement: BlackBerry OS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (BB10);.{1,200}Version/(\d+)\.(\d+)\.(\d+)
- os_replacement: BlackBerry OS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Black[Bb]erry)[0-9a-z]+/(\d+)\.(\d+)\.(\d+)(?:\.(\d+)|)
- os_replacement: BlackBerry OS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Black[Bb]erry).{1,200}Version/(\d+)\.(\d+)\.(\d+)(?:\.(\d+)|)
- os_replacement: BlackBerry Tablet OS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (RIM Tablet OS) (\d+)\.(\d+)\.(\d+)
- os_replacement: BlackBerry Tablet OS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Play[Bb]ook)
- os_replacement: BlackBerry OS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Black[Bb]erry)
- os_replacement: KaiOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (K[Aa][Ii]OS)\/(\d+)\.(\d+)(?:\.(\d+)|)
- os_replacement: Firefox OS
os_v1_replacement: '1'
os_v2_replacement: '0'
os_v3_replacement: '1'
os_v4_replacement: $5
regex: \((?:Mobile|Tablet);.{1,200}Gecko/18.0 Firefox/\d+\.\d+
- os_replacement: Firefox OS
os_v1_replacement: '1'
os_v2_replacement: '1'
os_v3_replacement: $4
os_v4_replacement: $5
regex: \((?:Mobile|Tablet);.{1,200}Gecko/18.1 Firefox/\d+\.\d+
- os_replacement: Firefox OS
os_v1_replacement: '1'
os_v2_replacement: '2'
os_v3_replacement: $4
os_v4_replacement: $5
regex: \((?:Mobile|Tablet);.{1,200}Gecko/26.0 Firefox/\d+\.\d+
- os_replacement: Firefox OS
os_v1_replacement: '1'
os_v2_replacement: '3'
os_v3_replacement: $4
os_v4_replacement: $5
regex: \((?:Mobile|Tablet);.{1,200}Gecko/28.0 Firefox/\d+\.\d+
- os_replacement: Firefox OS
os_v1_replacement: '1'
os_v2_replacement: '4'
os_v3_replacement: $4
os_v4_replacement: $5
regex: \((?:Mobile|Tablet);.{1,200}Gecko/30.0 Firefox/\d+\.\d+
- os_replacement: Firefox OS
os_v1_replacement: '2'
os_v2_replacement: '0'
os_v3_replacement: $4
os_v4_replacement: $5
regex: \((?:Mobile|Tablet);.{1,200}Gecko/32.0 Firefox/\d+\.\d+
- os_replacement: Firefox OS
os_v1_replacement: '2'
os_v2_replacement: '1'
os_v3_replacement: $4
os_v4_replacement: $5
regex: \((?:Mobile|Tablet);.{1,200}Gecko/34.0 Firefox/\d+\.\d+
- os_replacement: Firefox OS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: \((?:Mobile|Tablet);.{1,200}Firefox/\d+\.\d+
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (BREW)[ /](\d+)\.(\d+)\.(\d+)
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (BREW);
- os_replacement: Brew MP
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Brew MP|BMP)[ /](\d+)\.(\d+)\.(\d+)
- os_replacement: Brew MP
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: BMP;
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: '(GoogleTV)(?: (\d+)\.(\d+)(?:\.(\d+)|)|/[\da-z]+)'
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (WebTV)/(\d+).(\d+)
- os_replacement: Chromecast
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (CrKey)(?:[/](\d+)\.(\d+)(?:\.(\d+)|)|)
- os_replacement: webOS
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (hpw|web)OS/(\d+)\.(\d+)(?:\.(\d+)|)
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (VRE);
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Fedora|Red Hat|PCLinuxOS|Puppy|Ubuntu|Kindle|Bada|Sailfish|Lubuntu|BackTrack|Slackware|(?:Free|Open|Net|\b)BSD)[/
](\d+)\.(\d+)(?:\.(\d+)|)(?:\.(\d+)|)
- os_replacement: Gentoo
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Linux)[ /](\d+)\.(\d+)(?:\.(\d+)|).{0,100}gentoo
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: \((Bada);
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Windows|Android|WeTab|Maemo|Web0S)
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Ubuntu|Kubuntu|Arch Linux|CentOS|Slackware|Gentoo|openSUSE|SUSE|Red Hat|Fedora|PCLinuxOS|Mageia|(?:Free|Open|Net|\b)BSD)
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: (Linux)(?:[ /](\d+)\.(\d+)(?:\.(\d+)|)|)
- os_replacement: Solaris
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: SunOS
- os_replacement: Linux
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: \(linux-gnu\)
- os_replacement: Red Hat
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: \(x86_64-redhat-linux-gnu\)
- os_replacement: FreeBSD
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: \((freebsd)(\d+)\.(\d+)\)
- os_replacement: Linux
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: linux
- os_replacement: $1
os_v1_replacement: $2
os_v2_replacement: $3
os_v3_replacement: $4
os_v4_replacement: $5
regex: ^(Roku)/DVP-(\d+)\.(\d+)