var UserAgents = (function(){
		
	var STRINGS_SAMSUNG = 'Samsung',
		STRINGS_SHARP = 'Sharp',
		STRINGS_SONY_ERICSSON = 'Sony Ericsson',
		STRINGS_MOTOROLA = 'Motorola',
		STRINGS_LG = 'LG',
		STRINGS_LENOVO = 'Lenovo',
		STRINGS_HUAWEI = 'Huawei',
		STRINGS_HTC = 'HTC';
	
	var TOUCHWIZ_MODELS = {
		'SAMSUNG': {
			'GT-S3650':								[ STRINGS_SAMSUNG, 'Corby' ],
			'GT-S3850':								[ STRINGS_SAMSUNG, 'Corby II' ],
			'GT-S5230':								[ STRINGS_SAMSUNG, 'Star' ],
			'GT-S5260':								[ STRINGS_SAMSUNG, 'Star II' ],
			'GT-S5560':								[ STRINGS_SAMSUNG, 'Marvel' ],
			'GT-S5620':								[ STRINGS_SAMSUNG, 'Monte' ],
			'GT-S7550':								[ STRINGS_SAMSUNG, 'Blue Earth' ],
			'GT-S8000':								[ STRINGS_SAMSUNG, 'Jet' ],
			'SGH-F480':								[ STRINGS_SAMSUNG, 'Tocco' ],
			'SGH-T528g':							[ STRINGS_SAMSUNG, 'Straight Talk' ],
			'GT-B3410':								[ STRINGS_SAMSUNG, 'Star Qwerty' ],
			'GT-B5310':								[ STRINGS_SAMSUNG, 'Corby Pro' ],
			'GT-B7722':								[ STRINGS_SAMSUNG, 'Star Duos' ]
		}
	}
	
	var BADA_MODELS = {
		'SAMSUNG': {
			'GT- S5250':							[ STRINGS_SAMSUNG, 'Wave 525' ],
			'GT-S5250':								[ STRINGS_SAMSUNG, 'Wave 525' ],
			'GT-S5253':								[ STRINGS_SAMSUNG, 'Wave 525' ],
			'GT-S5330':								[ STRINGS_SAMSUNG, 'Wave 533' ],
			'GT-S5380':								[ STRINGS_SAMSUNG, 'Wave Y' ],
			'GT-S5380D':							[ STRINGS_SAMSUNG, 'Wave Y' ],
			'GT-S5380K':							[ STRINGS_SAMSUNG, 'Wave Y' ],
			'GT-S5750E':							[ STRINGS_SAMSUNG, 'Wave 575' ],
			'GT-S5753E':							[ STRINGS_SAMSUNG, 'Wave 575' ],
			'GT-S7230B':							[ STRINGS_SAMSUNG, 'Wave 723' ],
			'GT-S7230E':							[ STRINGS_SAMSUNG, 'Wave 723' ],
			'GT-S7233E':							[ STRINGS_SAMSUNG, 'Wave 723' ],
			'GT-S7250':								[ STRINGS_SAMSUNG, 'Wave M' ],
			'GT-S7250D':							[ STRINGS_SAMSUNG, 'Wave M' ],
			'GT-S8500':								[ STRINGS_SAMSUNG, 'Wave' ],
			'GT-S8500C':							[ STRINGS_SAMSUNG, 'Wave' ],
			'GT-S8500R':							[ STRINGS_SAMSUNG, 'Wave' ],
			'GT-S8500T':							[ STRINGS_SAMSUNG, 'Wave' ],
			'GT-S8530':								[ STRINGS_SAMSUNG, 'Wave II' ],
			'GT-S8600':								[ STRINGS_SAMSUNG, 'Wave 3' ],
			'SHW-M410':								[ STRINGS_SAMSUNG, 'Wave 3' ]
		}
	}
	
	var TIZEN_MODELS = {
		'SAMSUNG': {
			'GT-I9500':								[ STRINGS_SAMSUNG, 'Galaxy S III' ]
		}
	}
	
	var BREW_MODELS = {
		'YL-Coolpad D508':							[ 'Coolpad', 'D508' ],
		'YL-COOLPAD E600':							[ 'Coolpad', 'E600' ],
		'SCH-F839':									[ STRINGS_SAMSUNG, 'SCH-F839' ]
	}
	
	var WINDOWS_MOBILE_MODELS = {
		'DX900':									[ 'Acer', 'Tempo DX900' ],
		'acer F900':								[ 'Acer', 'Tempo F900' ],
		'CoolPadF800':								[ 'Coolpad', 'F800' ],
		'garmin-asus-Nuvifone-M10':					[ 'Garmin-Asus', 'Nuvifone M10' ],
		'HP iPAQ 510':								[ 'HP', 'iPAQ 510' ],
		'HD mini T5555':							[ STRINGS_HTC, 'HD mini' ],
		'HTC HD mini':								[ STRINGS_HTC, 'HD mini' ],
		'HTC HD mini T5555':						[ STRINGS_HTC, 'HD mini' ],
		'HTC HD2':									[ STRINGS_HTC, 'HD2' ],
		'HTC HD2 T8585':							[ STRINGS_HTC, 'HD2' ],
		'HD2 T8585':								[ STRINGS_HTC, 'HD2' ],
		'T-Mobile LEO':								[ STRINGS_HTC, 'HD2' ],
		'HTC Mega-T3333':							[ STRINGS_HTC, 'Mega' ],
		'HTC Snap S521':							[ STRINGS_HTC, 'Snap' ],
		'HTC Touch2 T3320':							[ STRINGS_HTC, 'Touch 2' ],
		'HTC Touch2 T3333':							[ STRINGS_HTC, 'Touch 2' ],
		'HTC Touch2 T3335':							[ STRINGS_HTC, 'Touch 2' ],
		'HTC P3700':								[ STRINGS_HTC, 'Touch Diamond' ],
		'HTC Touch Diamond2 T5353':					[ STRINGS_HTC, 'Touch Diamond 2' ],
		'HTC Touch HD T8282':						[ STRINGS_HTC, 'Touch HD' ],
		'HTC Touch HD T8283':						[ STRINGS_HTC, 'Touch HD' ],
		'HTC Touch HD2 T8585':						[ STRINGS_HTC, 'Touch HD2' ],
		'HTC Touch Pro2 T7373':						[ STRINGS_HTC, 'Touch Pro 2' ],
		'T7380':									[ STRINGS_HTC, 'Touch Pro 2' ],
		'HTC TyTN II':								[ STRINGS_HTC, 'TyTN II' ],
		'GT-B7300':									[ STRINGS_SAMSUNG, 'Omnia Lite' ],
		'GT-B7610':									[ STRINGS_SAMSUNG, 'Omnia Pro' ],
		'GT-i8000':									[ STRINGS_SAMSUNG, 'Omnia 2' ],
		'GT-I8000':									[ STRINGS_SAMSUNG, 'Omnia 2' ],
		'GT-I8000U':								[ STRINGS_SAMSUNG, 'Omnia 2' ],
		'M1i': 										[ STRINGS_SONY_ERICSSON, 'M1i Aspen' ]
	}

	var WINDOWS_PHONE_MODELS = {
		'Acer': {
			'Allegro':								[ 'Acer', 'Allegro' ],
			'M310':									[ 'Acer', 'Allegro' ]
		},
		
		'Asus': {
			'Galaxy6':								[ 'Asus', 'Galaxy 6' ]
		},
		
		'DELL': {
			'Venue Pro':							[ 'Dell', 'Venue Pro' ]
		},
		
		'FujitsuToshibaMobileCommun': {
			'IS12T':								[ 'Fujitsu Toshiba', 'IS12T' ]
		},
		
		'HTC': {
			'7 Mozart':								[ STRINGS_HTC, '7 Mozart' ],
			'7 Mozart T8698':						[ STRINGS_HTC, '7 Mozart' ],
			'T8697':								[ STRINGS_HTC, '7 Mozart' ],
			'T8698':								[ STRINGS_HTC, '7 Mozart' ],
			'PD67100':								[ STRINGS_HTC, '7 Mozart' ], 
			'Mozart T8698':							[ STRINGS_HTC, '7 Mozart' ], 
			'Mozart':								[ STRINGS_HTC, '7 Mozart' ], 
			'USCCHTC-PC93100':						[ STRINGS_HTC, 'Arrive' ],
			'Gold':									[ STRINGS_HTC, 'Gold	' ],
			'HD2':									[ STRINGS_HTC, 'HD2' ],
			'HD7 T9292':							[ STRINGS_HTC, 'HD7' ],
			'T9295':								[ STRINGS_HTC, 'HD7' ],
			'T9296':								[ STRINGS_HTC, 'HD7' ],
			'HD7 Infinity':							[ STRINGS_HTC, 'HD7' ],
			'T7575':								[ STRINGS_HTC, '7 Pro' ],
			'7 Pro T7576':							[ STRINGS_HTC, '7 Pro' ],
			'mwp6985':								[ STRINGS_HTC, 'Trophy' ],
			'7 Trophy T8686':						[ STRINGS_HTC, 'Trophy' ],
			'7 Trophy':								[ STRINGS_HTC, 'Trophy' ],
			'PC40100':								[ STRINGS_HTC, 'Trophy' ],
			'Radar':								[ STRINGS_HTC, 'Radar' ],
			'Radar 4G':								[ STRINGS_HTC, 'Radar' ],
			'Radar C110e':							[ STRINGS_HTC, 'Radar' ],
			'Mazaa':								[ STRINGS_HTC, 'Mazaa' ], 
			'Mondrian':								[ STRINGS_HTC, 'Mondrian' ],
			'Schubert':								[ STRINGS_HTC, 'Schubert' ],
			'Spark':								[ STRINGS_HTC, 'Spark' ],
			'T8788':								[ STRINGS_HTC, 'Surround' ],
			'TITAN X310e':							[ STRINGS_HTC, 'Titan' ],
			'PI39100':								[ STRINGS_HTC, 'Titan' ],
			'PI86100':								[ STRINGS_HTC, 'Titan II' ],
			'Ultimate':								[ STRINGS_HTC, 'Ultimate' ]
		},
		
		'LG': {
			'GW910':								[ STRINGS_LG, 'Optimus 7' ],
			'LG E-900':								[ STRINGS_LG, 'Optimus 7 E900' ],
			'LG-E900':								[ STRINGS_LG, 'Optimus 7 E900' ],
			'LG-E900h':								[ STRINGS_LG, 'Optimus 7 E900' ],
			'GW910':								[ STRINGS_LG, 'GW910' ],
			'LG-C900':								[ STRINGS_LG, 'Optimus 7Q' ],
			'LG-C900B':								[ STRINGS_LG, 'Quantum' ],
			'LG-C900k':								[ STRINGS_LG, 'Quantum' ]
		},
		
		'nokia': {
			'SeaRay':								[ 'Nokia', 'Lumia 800' ],
			'800C':									[ 'Nokia', 'Lumia 800' ]
		},
		
		'NOKIA': {
			'Lumia 710':							[ 'Nokia', 'Lumia 710' ],
			'Lumia 719':							[ 'Nokia', 'Lumia 719' ],
			'Lumia 800':							[ 'Nokia', 'Lumia 800' ],
			'800':									[ 'Nokia', 'Lumia 800' ],
			'Lumia 900':							[ 'Nokia', 'Lumia 900' ],
			'XXX':									[ 'Nokia', 'prototype' ]
		},
		
		'SAMSUNG': {
			'GT-I8350':								[ STRINGS_SAMSUNG, 'Omnia W' ],
			'GT-I8350T':							[ STRINGS_SAMSUNG, 'Omnia W' ],
			'SGH-i677':								[ STRINGS_SAMSUNG, 'Focus Flash' ],
			'SGH-i707':								[ STRINGS_SAMSUNG, 'Taylor' ],
			'SGH-i917':								[ STRINGS_SAMSUNG, 'Omnia 7' ],
			'SGH-I917':								[ STRINGS_SAMSUNG, 'Omnia 7' ],
			'SGH-i917.':							[ STRINGS_SAMSUNG, 'Focus' ],
			'SGH-i917R':							[ STRINGS_SAMSUNG, 'Focus' ],
			'SGH-i937':								[ STRINGS_SAMSUNG, 'Focus S' ],
			'OMNIA7':								[ STRINGS_SAMSUNG, 'Omnia 7' ],
			'OMINA7':								[ STRINGS_SAMSUNG, 'Omnia 7' ],
			'Taylor':								[ STRINGS_SAMSUNG, 'Taylor' ]
		},

		'TOSHIBA': {
			'TSUNAGI':								[ 'Toshiba', 'Tsunagi' ]
		}
	};

	var ANDROID_MODELS = {
		'Android':									[ null, null ],		
		'google sdk':								[ null, null ],		
		'sdk':										[ null, null ],
		'generic':									[ null, null ],
		'generic x86':								[ null, null ],
		
		'vexpress a9':								[ 'ARM', 'Versatile Express development platform' ],
		'bcm7425':									[ 'Broadcom', 'BCM7425 based device', 'television' ],
		'imx53 loco':								[ 'Freescale', 'i.MX53 based device' ],
		'imx53 smd':								[ 'Freescale', 'i.MX53 based device' ],
		'imx53 yeagle':								[ 'Freescale', 'i.MX53 based device' ],
		'mfld dv10':								[ 'Intel', 'Medfield based device' ],
		'mfld lw00':								[ 'Intel', 'Medfield based device' ],
		'mfld pr2':									[ 'Intel', 'Medfield based device' ],
		'mfld pr3':									[ 'Intel', 'Medfield based device' ],
		'MStar Amber3':								[ 'MStar', 'Amber3 based device' ],
		'Ventana':									[ 'nVidia', 'Tegra Ventana development kit' ],
		'Panda':									[ 'Pandaboard', 'Development Kit' ],
		'MSM':										[ 'Qualcomm', 'Snapdragon based device' ],
		'msm7227 ffa':								[ 'Qualcomm', 'Snapdragon S1 based device' ],
		'msm7627 surf':								[ 'Qualcomm', 'Snapdragon S1 based device' ],
		'msm7627a':									[ 'Qualcomm', 'Snapdragon S1 based device' ],
		'msm7627a sku1':							[ 'Qualcomm', 'Snapdragon S1 based device' ],
		'msm7630 fusion':							[ 'Qualcomm', 'Snapdragon S2 based device' ],
		'msm7630 surf':								[ 'Qualcomm', 'Snapdragon S2 based device' ],
		'msm8660 surf':								[ 'Qualcomm', 'Snapdragon S3 based device' ],
		'msm8960':									[ 'Qualcomm', 'Snapdragon S4 based device' ],
		'RK2818':									[ 'Rockchip', 'RK2818 based device' ],
		'rk2818sdk':								[ 'Rockchip', 'RK2818 based device' ],
		'rk29sdk':									[ 'Rockchip', 'RK29 based device' ],
		'Rk29sdk':									[ 'Rockchip', 'RK29 based device' ],
		'SMDKV210':									[ STRINGS_SAMSUNG, 'Hummingbird based device' ],
		'S5PV210':									[ STRINGS_SAMSUNG, 'Hummingbird based device' ],
		'sec smdkc210':								[ STRINGS_SAMSUNG, 'Exynos 4210 based device' ],
		'sv8860':									[ 'Skyviia', 'SV8860 based device', 'television' ],
		'TCC8920 STB EV':							[ 'Telechips', 'TCC8920 based device', 'television' ],
		'OMAP SS':									[ 'Texas Instruments', 'OMAP based device' ],
		'LogicPD Zoom2':							[ 'Texas Instruments', 'OMAP based device' ],
		
		'Crespo':									[ 'Google', 'Nexus S' ],
		'Passion':									[ 'Google', 'Nexus One' ],
		'Bravo':									[ STRINGS_HTC, 'Desire' ],
		'dream':									[ STRINGS_HTC, 'Dream' ],
		'Vogue':									[ STRINGS_HTC, 'Touch' ],
		'Vendor Optimus':							[ STRINGS_LG, 'Optimus' ],
		'Stingray':									[ STRINGS_MOTOROLA, 'XOOM', 'tablet' ],
		'Wingray':									[ STRINGS_MOTOROLA, 'XOOM', 'tablet' ],
		'Maguro':									[ STRINGS_SAMSUNG, 'Galaxy Nexus' ],
		'Blaze Tablet':								[ 'Texas Instruments', 'Blaze Tablet', 'tablet' ],
		
		'BlueStacks':								[ 'BlueStacks', 'App Player', 'desktop' ],
		
		'A100':										[ 'Acer', 'Iconia Tab A100', 'tablet' ],
		'A101':										[ 'Acer', 'Iconia Tab A101', 'tablet' ],
		'A200':										[ 'Acer', 'Iconia Tab A200', 'tablet' ],
		'A500':										[ 'Acer', 'Iconia Tab A500', 'tablet' ],
		'A501':										[ 'Acer', 'Iconia Tab A501', 'tablet' ],
		'E110':										[ 'Acer', 'beTouch E110' ],
		'E120':										[ 'Acer', 'beTouch E120' ],
		'E130':										[ 'Acer', 'beTouch E130' ],
		'E140':										[ 'Acer', 'beTouch E140' ],
		'E210':										[ 'Acer', 'beTouch E210' ],
		'E310':										[ 'Acer', 'Liquid mini' ],
		'E330':										[ 'Acer', 'E330' ],
		'E400':										[ 'Acer', 'beTouch E400' ],
		'G100W':									[ 'Acer', 'G100W' ],
		'S100':										[ 'Acer', 'Liquid' ],
		'S110':										[ 'Acer', 'Stream' ],
		'S120':										[ 'Acer', 'Liquid mt' ],
		'S300':										[ 'Acer', 'Iconia Smart' ],
		'Beeline E400': 							[ 'Acer', 'beTouch E400' ],
		'Iconia A500':								[ 'Acer', 'Iconia Tab A500', 'tablet' ],
		'Liquid':									[ 'Acer', 'Liquid' ],
		'Liquid E':									[ 'Acer', 'Liquid E' ],
		'Liquid Mt':								[ 'Acer', 'Liquid mt' ],
		'Liquid MT':								[ 'Acer', 'Liquid mt' ],
		'Liquid Metal':								[ 'Acer', 'Liquid mt' ],
		'Stream':									[ 'Acer', 'Stream' ],
		'AcerTD600':								[ 'Acer', 'beTouch TD600' ],
		'TD600':									[ 'Acer', 'beTouch TD600' ],
		'KM-S120':									[ 'Acer', 'Liquid mt' ],
		'N700':										[ 'aigo', 'N700', 'tablet' ],
		'M801':										[ 'aigo', 'M801', 'tablet' ],
		'novo7_Aurora':								[ 'Ainova', 'Novo7 Aurora', 'tablet' ],
		'Novo7Advanced':							[ 'Ainova', 'Novo7 Advanced', 'tablet' ],
		'NOVO7 Advanced':							[ 'Ainova', 'Novo7 Advanced', 'tablet' ],
		'Novo7Basic':								[ 'Ainova', 'Novo7 Basic', 'tablet' ],
		'novo7_ELF':								[ 'Ainova', 'Novo7 Elf', 'tablet' ],
		'NOVO7PALADIN':								[ 'Ainova', 'Novo7 Paladin', 'tablet' ],
		'Ainol Novo8 Advanced':						[ 'Ainova', 'Novo8 Advanced', 'tablet' ],
		'ALCATEL one touch 891':					[ 'Alcatel', 'One Touch 891' ],
		'ALCATEL one touch 906':					[ 'Alcatel', 'One Touch 906' ],
		'one touch 906':							[ 'Alcatel', 'One Touch 906' ],
		'ALCATEL one touch 908S':					[ 'Alcatel', 'One Touch 908' ],
		'ALCATEL one touch 910':					[ 'Alcatel', 'One Touch 910' ],
		'ALCATEL one touch 918':					[ 'Alcatel', 'One Touch 918' ],
		'ALCATEL one touch 918M':					[ 'Alcatel', 'One Touch 918' ],
		'Alcatel OT-980':							[ 'Alcatel', 'One Touch 980' ],
		'Alcatel OT-980A':							[ 'Alcatel', 'One Touch 980' ],
		'Alcatel OT-981A':							[ 'Alcatel', 'One Touch 981' ],
		'Telenor OneTouch':							[ 'Alcatel', 'One Touch 990' ],
		'ALCATEL one touch 990A':					[ 'Alcatel', 'One Touch 990' ],
		'97FC':										[ 'AllWinner', 'A10 97FC', 'tablet' ],
		'Kindle Fire':								[ 'Amazon', 'Kindle Fire', 'tablet' ],
		'Apanda A60':								[ 'Apanda', 'A60' ],
		'A80KSC':									[ 'Archos', 'Arnova 8', 'tablet' ],
		'AN7CG2':									[ 'Archos', 'Arnova 7', 'tablet' ],
		'A101B':									[ 'Archos', 'Arnova 10', 'tablet' ],
		'A32':										[ 'Archos', '32' ],
		'A43':										[ 'Archos', '43' ],
		'Archos5':									[ 'Archos', '5', 'tablet' ],
		'A70HB':									[ 'Archos', '7', 'tablet' ],
		'A70BHT':									[ 'Archos', '7', 'tablet' ],
		'A70CHT':									[ 'Archos', '7C', 'tablet' ],
		'A70S':										[ 'Archos', '70', 'tablet' ],
		'ARCHOS 70it2':								[ 'Archos', '70 IT 2', 'tablet' ],
		'ARCHOS 80G9':								[ 'Archos', '80 G9', 'tablet' ],
		'ARCHOS 101G9':								[ 'Archos', '101 G9', 'tablet' ],
		'A101IT':									[ 'Archos', '101 IT', 'tablet' ],
		'ASTRI':									[ 'ASTRI', 'e-reader', 'ereader' ],
		'eeepc':									[ 'Asus', 'Eee Pc' ],
		'asus laptop':								[ 'Asus', 'Eee Pc' ],
		'Slider SL101':								[ 'Asus', 'Eee Pad Slider', 'tablet' ],
		'TF101':									[ 'Asus', 'Eee Pad Transformer', 'tablet' ],
		'Transformer TF101':						[ 'Asus', 'Eee Pad Transformer', 'tablet' ],
		'Transformer TF101G':						[ 'Asus', 'Eee Pad Transformer', 'tablet' ],
		'TF201':									[ 'Asus', 'Eee Pad Transformer Prime', 'tablet' ],
		'Transformer Prime TF201':					[ 'Asus', 'Eee Pad Transformer Prime', 'tablet' ],
		'ASUS Transformer TF300T':					[ 'Asus', 'Eee Pad Transformer TF300T', 'tablet' ],
		'ASUS Transformer TF700K':					[ 'Asus', 'Eee Pad Transformer Prime HD', 'tablet' ],
		'ASUS T20':									[ 'Asus', 'T20' ],
		'ETBW11AA':									[ 'Asus', 'Tough' ],
		'PICOpad-QGN':								[ 'Axioo', 'Picopad QGN', 'tablet' ],
		'NookColor':								[ 'Barnes & Noble', 'NOOK Color', 'ereader' ],
		'NOOK BNRV200':								[ 'Barnes & Noble', 'NOOK Color', 'ereader' ],
		'NOOK BNTV250':								[ 'Barnes & Noble', 'NOOK Tablet', 'ereader' ],
		'BNTV250':									[ 'Barnes & Noble', 'NOOK Tablet', 'ereader' ],
		'BM999':									[ 'Bmorn', 'BM999', 'tablet' ],
		'V11':										[ 'Bmorn', 'V11', 'tablet' ],
		'CT1002':									[ 'Carrefour', 'CT1002', 'tablet' ],
		'IS11CA':									[ 'Casio', 'GzOne IS11CA' ],
		'C771':										[ 'Casio', 'GzOne Commando' ],
		'CAT NOVA':									[ 'Cat', 'NOVA', 'tablet' ],
		'ARMM3V':									[ 'chinaleap', 'ARMM3V', 'tablet' ],
		'CIUS-7':									[ 'Cisco', 'Cius', 'tablet' ],
		'CSL-MI410':								[ 'CSL', 'Spice MI410' ],
		'MID7010':									[ 'Coby', 'Kyros MID7010', 'tablet' ],
		'MID7012':									[ 'Coby', 'Kyros MID7012', 'tablet' ],
		'MID7015':									[ 'Coby', 'Kyros MID7015', 'tablet' ],
		'MID7020':									[ 'Coby', 'Kyros MID7020', 'tablet' ],
		'MID7022':									[ 'Coby', 'Kyros MID7022', 'tablet' ],
		'MID7024':									[ 'Coby', 'Kyros MID7024', 'tablet' ],
		'MID7025':									[ 'Coby', 'Kyros MID7025', 'tablet' ],
		'MID7127':									[ 'Coby', 'Kyros MID7127', 'tablet' ],
		'MID8024':									[ 'Coby', 'Kyros MID8024', 'tablet' ],
		'MID8125':									[ 'Coby', 'Kyros MID8125', 'tablet' ],
		'Z71':										[ 'Commtiva', 'Z71' ],
		'D530':										[ 'Coolpad', 'D530' ],
		'D539':										[ 'Coolpad', 'D539' ],
		'E239':										[ 'Coolpad', 'E239' ],
		'YL-Coolpad E239':							[ 'Coolpad', 'E239' ],
		'Coolpad W706':								[ 'Coolpad', 'W706' ],
		'W711':										[ 'Coolpad', 'W711' ],
		'Coolpad 5820':								[ 'Coolpad', '5820' ],
		'YL-Coolpad 5860':							[ 'Coolpad', '5860' ],
		'5860':										[ 'Coolpad', '5860' ],
		'CoolPad8013':								[ 'Coolpad', '8013' ],
		'CoolPad8810':								[ 'Coolpad', '8810' ],
		'CoolPad8811':								[ 'Coolpad', '8811' ],
		'N930':										[ 'Coolpad', 'N930' ],
		'ZiiLABS ZiiO10 ':							[ 'Creative', 'ZiiO 10', 'tablet' ],
		'CUBE K8GT A':								[ 'Cube', 'K8GT A', 'tablet' ],
		'CUBE K8GT B':								[ 'Cube', 'K8GT B', 'tablet' ],
		'CUBE K8GT H':								[ 'Cube', 'K8GT H', 'tablet' ],
		'CUBE U8GT':								[ 'Cube', 'U8GT', 'tablet' ],
		'CUBE U9GT':								[ 'Cube', 'U9GT', 'tablet' ],
		'CUBE U9GT 2':								[ 'Cube', 'U9GT 2', 'tablet' ],
		'U9GT2 From moage.com':						[ 'Cube', 'U9GT 2', 'tablet' ],
		'U9GT S':									[ 'Cube', 'U9GT S', 'tablet' ],
		'U10GT 2':									[ 'Cube', 'U10GT 2', 'tablet' ],
		'U10GT S':									[ 'Cube', 'U10GT S', 'tablet' ],
		'CUBE Q7PRO J':								[ 'Cube', 'Q7 Pro', 'tablet' ],
		'Cydle M7 (v0005.04.03.12.ko)':				[ 'Cydle', 'M7 MultiPAD', 'tablet' ],
		'Dell Streak':								[ 'Dell', 'Streak', 'tablet' ],
		'001DL':									[ 'Dell', 'Streak', 'tablet' ],
		'Dell Streak Pro':							[ 'Dell', 'Streak Pro', 'tablet' ],
		'streak7':									[ 'Dell', 'Streak 7', 'tablet' ],
		'Dell Streak 7':							[ 'Dell', 'Streak 7', 'tablet' ],
		'Dell Streak 10 Pro':						[ 'Dell', 'Streak 10 Pro', 'tablet' ],
		'Dell V04B':								[ 'Dell', 'Streak V04B', 'tablet' ],
		'Dell Venue':								[ 'Dell', 'Venue' ],
		'XCD35':									[ 'Dell', 'XCD35' ],
		'iDx7':										[ 'Digma', 'iDx7', 'tablet' ],
		'iDx10':									[ 'Digma', 'iDx10', 'tablet' ],
		'DM009SH':									[ 'Disney Mobile', 'DM009SH' ],
		'DM012SH':									[ 'Disney Mobile', 'DM012SH' ],
		'Tablet-P27':								[ 'DracoTek', 'P27 Tablet', 'tablet' ],
		'P10AN':									[ 'Exper', 'Easypad P10AN', 'tablet' ],
		'FIH-F0X':									[ 'FIH', 'F0X' ],
		'ISW11F':									[ 'Fujitsu', 'Arrows Z' ],
		'F-01D':									[ 'Fujitsu', 'Arrows Tab LTE', 'tablet' ],
		'F-03D':									[ 'Fujitsu', 'Arrows Kiss' ],
		'F-05D':									[ 'Fujitsu', 'Arrows X LTE' ],
		'F-07D':									[ 'Fujitsu', 'Arrows μ' ],
		'F-12C':									[ 'Fujitsu', 'Globetrotter' ],
		'Garminfone':								[ 'Garmin-Asus', 'Garminfone' ],
		'Garmin-Asus A10':							[ 'Garmin-Asus', 'Nuvifone A10' ],
		'Garmin-Asus A50':							[ 'Garmin-Asus', 'Nuvifone A50' ],
		'TPA60W':									[ 'Gateway', 'TPA60W', 'tablet' ],
		'Geeksphone ZERO':							[ 'Geeksphone', 'ZERO'],
		'Gigabyte TB100':							[ 'Gigabyte', 'TB100', 'tablet' ],
		'Google Ion':								[ 'Google', 'Ion' ],
		'Nexus One':								[ 'Google', 'Nexus One' ],
		'HTC Nexus One':							[ 'Google', 'Nexus One' ],	
		'Nexus S':									[ 'Google', 'Nexus S' ],
		'Google Nexus S':							[ 'Google', 'Nexus S' ],
		'Nexus S 4G':								[ 'Google', 'Nexus S 4G' ],
		'Dooderbutt-4.0.3-v1':						[ 'Google', 'Nexus S 4G' ],
		'SN10T2':									[ 'HANNspree', 'HANNSpad SN10T2', 'tablet' ],
		'X1':										[ 'HCL', 'ME X1', 'tablet' ],
		'HS-U8':									[ 'Hisense', 'U8' ],
		'HS-T92':									[ 'Hisense', 'T92' ],
		'Touchpad':									[ 'HP', 'TouchPad', 'tablet' ],
		'HP Touchpad':								[ 'HP', 'TouchPad', 'tablet' ],
		'cm tenderloin':							[ 'HP', 'TouchPad', 'tablet' ],
		'HTC Amaze 4G':								[ STRINGS_HTC, 'Amaze 4G' ],
		'HTC Aria A6380':							[ STRINGS_HTC, 'Aria' ],
		'HTC A6366':								[ STRINGS_HTC, 'Aria' ],
		'HTC Bee':									[ STRINGS_HTC, 'Bee' ],
		'HTC S510b':								[ STRINGS_HTC, 'Bliss' ],
		'HTC Bliss S510b':							[ STRINGS_HTC, 'Bliss' ],
		'HTC ChaCha':								[ STRINGS_HTC, 'ChaCha' ],
		'HTC ChaCha A810e':							[ STRINGS_HTC, 'ChaCha' ],
		'HTC A810e':								[ STRINGS_HTC, 'ChaCha' ],
		'HTC click':								[ STRINGS_HTC, 'Click' ],
		'HTC A9188':								[ STRINGS_HTC, 'Cullinan' ],
		'HTC Desire':								[ STRINGS_HTC, 'Desire' ],
		'HTC Desire A8181':							[ STRINGS_HTC, 'Desire' ],
		'HTC Desire A8183':							[ STRINGS_HTC, 'Desire' ],
		'HTC Desire Beats A8181':					[ STRINGS_HTC, 'Desire' ],
		'HTC DesireHD':								[ STRINGS_HTC, 'Desire HD' ],
		'HTC DesireHD A9191':						[ STRINGS_HTC, 'Desire HD' ],
		'HTC DesireHD A9192':						[ STRINGS_HTC, 'Desire HD' ],
		'HTC Desire HD A9191':						[ STRINGS_HTC, 'Desire HD' ],
		'HTC A9191':								[ STRINGS_HTC, 'Desire HD' ],
		'HTC A9192':								[ STRINGS_HTC, 'Desire HD' ],
		'HTC Desire HD':							[ STRINGS_HTC, 'Desire HD' ],
		'HTC Desire HD with Beats Audio':			[ STRINGS_HTC, 'Desire HD' ],
		'HTC Desire S':								[ STRINGS_HTC, 'Desire S' ],
		'HTC DesireS':								[ STRINGS_HTC, 'Desire S' ],
		'HTC DesireS S510e':						[ STRINGS_HTC, 'Desire S' ],
		'HTC DesireS S510b':						[ STRINGS_HTC, 'Desire S' ],
		'HTC S510e':								[ STRINGS_HTC, 'Desire S' ],	
		'HTC Desire Z':								[ STRINGS_HTC, 'Desire Z' ],
		'HTC DesireZ A7272':						[ STRINGS_HTC, 'Desire Z' ],
		'HTC Dream':								[ STRINGS_HTC, 'Dream' ],
		'HTC S710d':								[ STRINGS_HTC, 'Droid Incredible 2' ],
		'HTC Incredible 2':							[ STRINGS_HTC, 'Droid Incredible 2' ],
		'HTC X515d':								[ STRINGS_HTC, 'EVO 3D' ],
		'HTC X515m':								[ STRINGS_HTC, 'EVO 3D' ],
		'HTC Evo 3D':								[ STRINGS_HTC, 'EVO 3D' ],
		'HTC EVO 3D':								[ STRINGS_HTC, 'EVO 3D' ],
		'HTC EVO 3D GSM':							[ STRINGS_HTC, 'EVO 3D' ],
		'HTC EVO 3D X515m':							[ STRINGS_HTC, 'EVO 3D' ],
		'HTC EVO3D X515a':							[ STRINGS_HTC, 'EVO 3D' ],
		'HTC EVO3D X515m':							[ STRINGS_HTC, 'EVO 3D' ],
		'HTC Evo 3D with Beats Audio X515m':		[ STRINGS_HTC, 'EVO 3D' ],
		'HTC X515E':								[ STRINGS_HTC, 'EVO 4G+' ],
		'HTC Design 4G':							[ STRINGS_HTC, 'EVO Design 4G' ],
		'HTC A310e':								[ STRINGS_HTC, 'Explorer' ],
		'HTC Explorer':								[ STRINGS_HTC, 'Explorer' ],
		'HTC Explorer A310b':						[ STRINGS_HTC, 'Explorer' ],
		'HTC Explorer A310e':						[ STRINGS_HTC, 'Explorer' ],
		'HTC Flyer':								[ STRINGS_HTC, 'Flyer', 'tablet' ],
		'HTC Flyer P510e':							[ STRINGS_HTC, 'Flyer', 'tablet' ],
		'HTC Flyer P512':							[ STRINGS_HTC, 'Flyer', 'tablet' ],
		'HTC Flyer P512 NA':						[ STRINGS_HTC, 'Flyer', 'tablet' ],
		'HTC Glacier':								[ STRINGS_HTC, 'Glacier' ],
		'HTC Gratia A6380':							[ STRINGS_HTC, 'Gratia' ],
		'HTC HD':									[ STRINGS_HTC, 'HD' ],
		'HTC HD2':									[ STRINGS_HTC, 'HD2' ],
		'HTC HD2 T8585':							[ STRINGS_HTC, 'HD2' ],
		'HTC HD7':									[ STRINGS_HTC, 'HD7' ],
		'HTC T9299+':								[ STRINGS_HTC, 'HD7' ],
		'HTC HD7 4G T9299 For AT&T':				[ STRINGS_HTC, 'HD7' ],
		'HTC Hero':									[ STRINGS_HTC, 'Hero' ],
		'HTC HERO CDMA':							[ STRINGS_HTC, 'Hero' ],
		'HTC HERO200':								[ STRINGS_HTC, 'Hero 200' ],
		'HTC Hero S':								[ STRINGS_HTC, 'Hero S' ],	
		'HTC PH39100':								[ STRINGS_HTC, 'Holiday' ],
		'HTC Holiday':								[ STRINGS_HTC, 'Holiday' ],
		'HTC Incredible':							[ STRINGS_HTC, 'Incredible' ],
		'HTC S710e':								[ STRINGS_HTC, 'Incredible S' ],
		'HTC Incredible S':							[ STRINGS_HTC, 'Incredible S' ],
		'HTC Incredible S S710e':					[ STRINGS_HTC, 'Incredible S' ],
		'HTC IncredibleS S710e':					[ STRINGS_HTC, 'Incredible S' ],
		'HTC Incredible S with Beats Audio':		[ STRINGS_HTC, 'Incredible S' ],
		'HTC Inspire 4G':							[ STRINGS_HTC, 'Inspire' ],	
		'HTC Legend':								[ STRINGS_HTC, 'Legend' ],
		'HTC Liberty A6380':						[ STRINGS_HTC, 'Liberty' ],
		'HTC Magic':								[ STRINGS_HTC, 'Magic' ],
		'HTC Panache':								[ STRINGS_HTC, 'Panache' ],
		'HTC Pyramid':								[ STRINGS_HTC, 'Pyramid' ],
		'HTC X710a':								[ STRINGS_HTC, 'Raider 4G' ],
		'HTC Raider':								[ STRINGS_HTC, 'Raider 4G' ],
		'HTC Raider X710e':							[ STRINGS_HTC, 'Raider 4G' ],
		'HTC Raider 4G X710e':						[ STRINGS_HTC, 'Raider 4G' ],
		'HTC Rhyme S510b':							[ STRINGS_HTC, 'Rhyme' ],
		'HTC Ruby':									[ STRINGS_HTC, 'Ruby' ],
		'HTC Runnymede':							[ STRINGS_HTC, 'Runnymede' ],
		'HTC Salsa C510e':							[ STRINGS_HTC, 'Salsa' ],	
		'HTC C510e':								[ STRINGS_HTC, 'Salsa' ],
		'HTC Sapphire':								[ STRINGS_HTC, 'Sapphire' ],
		'HTC Z710a':								[ STRINGS_HTC, 'Sensation' ],
		'HTC Z710e':								[ STRINGS_HTC, 'Sensation' ],
		'HTC Z710t':								[ STRINGS_HTC, 'Sensation' ],
		'HTC Sensation':							[ STRINGS_HTC, 'Sensation' ],
		'HTC Sensation Z710a':						[ STRINGS_HTC, 'Sensation' ],
		'HTC Sensation Z710e':						[ STRINGS_HTC, 'Sensation' ],
		'HTC Sensation Z710E':						[ STRINGS_HTC, 'Sensation' ],
		'HTC Sensation Z710e with Beats Audio':		[ STRINGS_HTC, 'Sensation' ],
		'HTC Sensation with Beats Audio':			[ STRINGS_HTC, 'Sensation' ],
		'HTC Sensation Taste':						[ STRINGS_HTC, 'Sensation' ],
		'HTC Sensation 4G':							[ STRINGS_HTC, 'Sensation 4G' ],
		'HTC Sensation 4G with Beats Audio':		[ STRINGS_HTC, 'Sensation 4G' ],
		'HTC Z715e':								[ STRINGS_HTC, 'Sensation XE' ],
		'HTC Sensation Z715e':						[ STRINGS_HTC, 'Sensation XE' ],
		'HTC SensationXE Beats':					[ STRINGS_HTC, 'Sensation XE' ],
		'HTC SensationXE Beats Z715a':				[ STRINGS_HTC, 'Sensation XE' ],
		'HTC SensationXE Beats Z715e':				[ STRINGS_HTC, 'Sensation XE' ],
		'HTC Sensation XE':							[ STRINGS_HTC, 'Sensation XE' ],
		'HTC Sensation XE Beats':					[ STRINGS_HTC, 'Sensation XE' ],
		'HTC Sensation XE with Beats Audio':		[ STRINGS_HTC, 'Sensation XE' ],
		'HTC Sensation XE with Beats Audio Z715a':	[ STRINGS_HTC, 'Sensation XE' ],
		'HTC Sensation Juredroid XE Beats Audio':	[ STRINGS_HTC, 'Sensation XE' ],
		'HTC Sensation XE with Beats Audio Z715e':	[ STRINGS_HTC, 'Sensation XE' ],
		'HTC SensationXL Beats X315b':				[ STRINGS_HTC, 'Sensation XL' ],
		'HTC SensationXL Beats X315e':				[ STRINGS_HTC, 'Sensation XL' ],
		'HTC Sensation XL with Beats Audio X315b':	[ STRINGS_HTC, 'Sensation XL' ],
		'HTC Sensation XL with Beats Audio X315e':	[ STRINGS_HTC, 'Sensation XL' ],
		'HTC Tattoo':								[ STRINGS_HTC, 'Tattoo' ],
		'HTC T7373':								[ STRINGS_HTC, 'Touch Pro II' ],
		'HTC ThunderBolt':							[ STRINGS_HTC, 'ThunderBolt'],
		'HTC Vision':								[ STRINGS_HTC, 'Vision' ],
		'HTC A7275':								[ STRINGS_HTC, 'Vision' ],
		'HTC Vivo':									[ STRINGS_HTC, 'Vivo' ],
		'HTC Wildfire':								[ STRINGS_HTC, 'Wildfire' ],
		'HTC Wildfire A3333':						[ STRINGS_HTC, 'Wildfire' ],
		'HTC WildfireS':							[ STRINGS_HTC, 'Wildfire S' ],
		'HTC Wildfire S':							[ STRINGS_HTC, 'Wildfire S' ],
		'HTC Wildfire S A510e':						[ STRINGS_HTC, 'Wildfire S' ],
		'HTC WildfireS A510e':						[ STRINGS_HTC, 'Wildfire S' ],
		'HTC A510e':								[ STRINGS_HTC, 'Wildfire S' ],
		'HTC A510a':								[ STRINGS_HTC, 'Wildfire S' ],
		'HTCX06HT':									[ STRINGS_HTC, 'Desire' ],
		'HTC ENR U':								[ STRINGS_HTC, 'Endeavor' ],
		'HTC EVA UL':								[ STRINGS_HTC, 'Eva' ],
		'HTC VLE U':								[ STRINGS_HTC, 'Ville' ],
		'HTC VLE#U':								[ STRINGS_HTC, 'Ville' ],
		'Click':									[ STRINGS_HTC, 'Click' ],
		'Desire':									[ STRINGS_HTC, 'Desire' ],
		'Desire A8181':								[ STRINGS_HTC, 'Desire' ],
		'desire hd':								[ STRINGS_HTC, 'Desire HD' ],
		'Desire HD':								[ STRINGS_HTC, 'Desire HD' ],
		'Dedire HD':								[ STRINGS_HTC, 'Desire HD' ],
		'Desire S':									[ STRINGS_HTC, 'Desire S' ],
		'DesireS':									[ STRINGS_HTC, 'Desire S' ],
		'Desire Z':									[ STRINGS_HTC, 'Desire Z' ],
		'Dream':									[ STRINGS_HTC, 'Dream' ],
		'Evo 3D Beats X515m':						[ STRINGS_HTC, 'EVO 3D' ],
		'EVO 4G':									[ STRINGS_HTC, 'EVO 4G' ],
		'photon':									[ STRINGS_HTC, 'HD mini' ],
		'HD2':										[ STRINGS_HTC, 'HD2' ],
		'HD7  Pro':									[ STRINGS_HTC, 'HD7 Pro' ],
		'Hero':										[ STRINGS_HTC, 'Hero' ],
		'HERO CDMA':								[ STRINGS_HTC, 'Hero' ],
		'HERO200':									[ STRINGS_HTC, 'Hero 200' ],
		'Incredible':								[ STRINGS_HTC, 'Droid Incredible' ],
		'Incredible 2':								[ STRINGS_HTC, 'Droid Incredible 2' ],
		'Incredible S':								[ STRINGS_HTC, 'Incredible S' ],
		'Inspire HD':								[ STRINGS_HTC, 'Inspire 4G' ],
		'Inspire 4G':								[ STRINGS_HTC, 'Inspire 4G' ],
		'Legend':									[ STRINGS_HTC, 'Legend' ],
		'Liberty':									[ STRINGS_HTC, 'Liberty' ],
		'NexusHD2':									[ STRINGS_HTC, 'HD2' ],
		'Docomo HT-03A':							[ STRINGS_HTC, 'Magic' ],
		'MIUI.us Sensation 4G':						[ STRINGS_HTC, 'Sensation 4G' ],
		'SiRF Dream':								[ STRINGS_HTC, 'Dream' ],
		'Sensation':								[ STRINGS_HTC, 'Sensation' ],
		'Sensation Z710e':							[ STRINGS_HTC, 'Sensation' ],
		'Sensation 4G':								[ STRINGS_HTC, 'Sensation 4G' ],
		'SensationXE Beats Z715e':					[ STRINGS_HTC, 'Sensation XE' ],
		'SensationXL Beats X315e':					[ STRINGS_HTC, 'Sensation XL' ],
		'TripNiCE Pyramid':							[ STRINGS_HTC, 'Pyramid' ],
		'Wildfire':									[ STRINGS_HTC, 'Wildfire' ],
		'Sprint APX515CKT':							[ STRINGS_HTC, 'EVO 3D' ],
		'Sprint APA9292KT':							[ STRINGS_HTC, 'EVO 4G' ],
		'Sprint APA7373KT':							[ STRINGS_HTC, 'EVO Shift 4G' ],
		'Sprint APC715CKT':							[ STRINGS_HTC, 'EVO Design 4G' ],
		'A6277':									[ STRINGS_HTC, 'Hero' ],
		'a7272':									[ STRINGS_HTC, 'Desire Z' ],					
		'S31HT':									[ STRINGS_HTC, 'Aria' ],
		'X06HT':									[ STRINGS_HTC, 'Desire' ],
		'001HT':									[ STRINGS_HTC, 'Desire HD' ],
		'ADR6300':									[ STRINGS_HTC, 'Droid Incredible' ],
		'ADR6330VW':								[ STRINGS_HTC, 'Rhyme' ],	
		'ADR6350':									[ STRINGS_HTC, 'Droid Incredible 2' ],
		'ADR6400L':									[ STRINGS_HTC, 'Thunderbolt 4G' ],
		'ADR6400L 4G':								[ STRINGS_HTC, 'Thunderbolt 4G' ],
		'ADR6410LVW 4G':							[ STRINGS_HTC, 'Fireball' ],
		'ADR6425LVW':								[ STRINGS_HTC, 'Vigor' ],
		'ADR6425LVW 4G':							[ STRINGS_HTC, 'Rezound 4G' ],
		'PB99400':									[ STRINGS_HTC, 'Incredible' ],	
		'pcdadr6350':								[ STRINGS_HTC, 'Droid Incredible 2' ],
		'PG06100':									[ STRINGS_HTC, 'EVO Shift 4G' ],
		'PG41200':									[ STRINGS_HTC, 'EVO View 4G' ],
		'PG86100':									[ STRINGS_HTC, 'EVO 3D' ],
		'PG8610000':								[ STRINGS_HTC, 'EVO 3D' ],
		'PC36100':									[ STRINGS_HTC, 'EVO 4G' ],
		'ISW11HT':									[ STRINGS_HTC, 'EVO WiMax' ],
		'ISW12HT':									[ STRINGS_HTC, 'EVO 3D' ],
		'USCCADR6285US':							[ STRINGS_HTC, 'Hero S' ],
		'HUAWEI MediaPad':							[ STRINGS_HUAWEI, 'MediaPad', 'tablet' ],
		'HUAWEI SONIC':								[ STRINGS_HUAWEI, 'Sonic' ],
		'HUAWEI-M835':								[ STRINGS_HUAWEI, 'M835' ],
		'HUAWEI-M860':								[ STRINGS_HUAWEI, 'Ascend' ],
		'HUAWEI T8300':								[ STRINGS_HUAWEI, 'T8300' ],
		'HUAWEI T8600':								[ STRINGS_HUAWEI, 'T8600' ],
		'HUAWEI-U8850':								[ STRINGS_HUAWEI, 'Vision' ],
		'HUAWEI-U9000':								[ STRINGS_HUAWEI, 'Ascend X' ],
		'HUAWEI IDEOS U8650':						[ STRINGS_HUAWEI, 'Sonic' ],
		'Huawei Ideos X5':							[ STRINGS_HUAWEI, 'IDEOS X5' ],
		'Huawei Ideos X5 1.12.9(ret4rt)':			[ STRINGS_HUAWEI, 'IDEOS X5' ],
		'Huawei C8500':								[ STRINGS_HUAWEI, 'C8500' ],
		'HUAWEI C8650+':							[ STRINGS_HUAWEI, 'C8650' ],
		'Huawei 8100-9':							[ STRINGS_HUAWEI, 'U8100' ],
		'Huawei-u8500':								[ STRINGS_HUAWEI, 'IDEOS X2' ],
		'Huawei U8800-51':							[ STRINGS_HUAWEI, 'IDEOS X5' ],
		'HW-C8600':									[ STRINGS_HUAWEI, 'C8600' ],
		'HW-HUAWEI C8500':							[ STRINGS_HUAWEI, 'C8500' ],
		'HW-HUAWEI C8500S':							[ STRINGS_HUAWEI, 'C8500' ],
		'HW-HUAWEI C8650':							[ STRINGS_HUAWEI, 'C8650' ],
		'HW-HUAWEI C8800':							[ STRINGS_HUAWEI, 'IDEOS X5' ],
		'HW-HUAWEI S8600':							[ STRINGS_HUAWEI, 'S8600' ],
		'FUSIONideos':								[ STRINGS_HUAWEI, 'IDEOS' ],
		'Gnappo Ideos':								[ STRINGS_HUAWEI, 'IDEOS' ],
		'Ideos':									[ STRINGS_HUAWEI, 'IDEOS' ],
		'IDEOS X5':									[ STRINGS_HUAWEI, 'IDEOS X5' ],
		'Ideos S7':									[ STRINGS_HUAWEI, 'IDEOS S7' ],
		'IDEOS S7':									[ STRINGS_HUAWEI, 'IDEOS S7' ],
		'IDEOS S7 Slim':							[ STRINGS_HUAWEI, 'IDEOS S7' ],
		'SONIC':									[ STRINGS_HUAWEI, 'Sonic' ],
		'Kyivstar Aqua':							[ STRINGS_HUAWEI, 'Sonic' ],
		'Lucky Ultra Sonic U8650':					[ STRINGS_HUAWEI, 'Sonic' ],
		'Turkcell T20':								[ STRINGS_HUAWEI, 'Sonic' ],
		'MTC 955':									[ STRINGS_HUAWEI, 'Sonic' ],
		'MTC Evo':									[ STRINGS_HUAWEI, 'C8500' ],
		'S31HW':									[ STRINGS_HUAWEI, 'Pocket WiFi S' ],	
		'007HW':									[ STRINGS_HUAWEI, 'Vision' ],	
		'UM840':									[ STRINGS_HUAWEI, 'Evolution' ],	
		'M860':										[ STRINGS_HUAWEI, 'Ascend' ],
		'M865':										[ STRINGS_HUAWEI, 'Ascend II' ],
		'M886':										[ STRINGS_HUAWEI, 'Glory' ],
		'C8150':									[ STRINGS_HUAWEI, 'IDEOS' ],
		'C8500':									[ STRINGS_HUAWEI, 'C8500' ],
		'C8500S':									[ STRINGS_HUAWEI, 'C8500' ],
		'C8600':									[ STRINGS_HUAWEI, 'C8600' ],
		'c8650':									[ STRINGS_HUAWEI, 'C8650' ],
		'C8650':									[ STRINGS_HUAWEI, 'C8650' ],
		'C8800':									[ STRINGS_HUAWEI, 'C8800' ],
		'S8600':									[ STRINGS_HUAWEI, 'S8600' ],
		'U8100':									[ STRINGS_HUAWEI, 'U8100' ],
		'U8110':									[ STRINGS_HUAWEI, 'U8110' ],
		'u8120':									[ STRINGS_HUAWEI, 'U8120' ],
		'U8120':									[ STRINGS_HUAWEI, 'U8120' ],
		'U8180':									[ STRINGS_HUAWEI, 'IDEOS X1' ],
		'U8220':									[ STRINGS_HUAWEI, 'Pulse' ],
		'U8300':									[ STRINGS_HUAWEI, 'U8300' ],
		'U8350':									[ STRINGS_HUAWEI, 'Boulder' ],
		'U8150':									[ STRINGS_HUAWEI, 'IDEOS' ],
		'U8180':									[ STRINGS_HUAWEI, 'IDEOS X1' ],
		'U8500':									[ STRINGS_HUAWEI, 'IDEOS X2' ],
		'U8510':									[ STRINGS_HUAWEI, 'IDEOS X3' ],
		'u8650':									[ STRINGS_HUAWEI, 'Sonic' ],
		'U8650':									[ STRINGS_HUAWEI, 'Sonic' ],
		'U8650-1':									[ STRINGS_HUAWEI, 'Sonic' ],
		'U8660':									[ STRINGS_HUAWEI, 'Sonic' ],
		'u8800':									[ STRINGS_HUAWEI, 'IDEOS X5' ],
		'U8800':									[ STRINGS_HUAWEI, 'IDEOS X5' ],
		'U8800+':									[ STRINGS_HUAWEI, 'IDEOS X5' ],
		'U8800PRO':									[ STRINGS_HUAWEI, 'IDEOS X5 Pro' ],
		'U8800Pro':									[ STRINGS_HUAWEI, 'IDEOS X5 Pro' ],
		'u8800pro':									[ STRINGS_HUAWEI, 'IDEOS X5 Pro' ],
		'U8800 Pro':								[ STRINGS_HUAWEI, 'IDEOS X5 Pro' ],
		'U8850':									[ STRINGS_HUAWEI, 'Vision' ],
		'u8860':									[ STRINGS_HUAWEI, 'Honor' ],
		'U8860':									[ STRINGS_HUAWEI, 'Honor' ],
		'U9000':									[ STRINGS_HUAWEI, 'Ascend X' ],
		'U9200':									[ STRINGS_HUAWEI, 'Ascend P1' ],
		'Comet':									[ STRINGS_HUAWEI, 'Comet' ],
		'iBall Slide i7011':						[ 'iBall', 'Slide i7011' ],
		'D80':										[ 'Icoo', 'D80', 'tablet' ],
		'INFOBAR A01':								[ 'iida', 'INFOBAR A01' ],
		'AZ510':									[ 'Intel', 'AZ510' ],
		'ILT-MX100':								[ 'iRiver', 'Tab', 'tablet' ],
		'i-mobile 3G 8500':							[ 'i-Mobile', '3G 8500' ],
		'ISW11K':									[ 'Kyocera', 'Digno' ],
		'Zio':										[ 'Kyocera', 'Zio' ],
		'A2':										[ 'KakaTech', 'A2' ],
		'A106':										[ 'koobee', 'A160' ],
		'KPT A9':									[ 'KPT', 'A9' ],
		'KM-S220':									[ 'Kttech', 'KM-S220' ],
		'Kyobo mirasol eReader':					[ 'Kyobo', 'eReader', 'tablet' ],
		'W606':										[ 'K-Touch', 'W606' ],
		'W700':										[ 'K-Touch', 'W700' ],
		'ThinkPad Tablet':							[ STRINGS_LENOVO, 'ThinkPad Tablet', 'tablet' ],
		'K1':										[ STRINGS_LENOVO, 'IdeaPad K1', 'tablet' ],
		'Ideapad S10-3T':							[ STRINGS_LENOVO, 'IdeaPad S10-3T', 'tablet' ],
		'IdeaTab S2007A-D':							[ STRINGS_LENOVO, 'IdeaTab S2007A', 'tablet' ],
		'IdeaTabV2007A-D-I':						[ STRINGS_LENOVO, 'IdeaTab V2007A', 'tablet' ],
		'A1 07':									[ STRINGS_LENOVO, 'LePad', 'tablet' ],
		'lepad 001b':								[ STRINGS_LENOVO, 'LePad', 'tablet' ],
		'lepad 001n':								[ STRINGS_LENOVO, 'LePad', 'tablet' ],
		'3GC101':									[ STRINGS_LENOVO, 'LePhone 3GC101' ],
		'Lenovo 3GC101':							[ STRINGS_LENOVO, 'LePhone 3GC101' ],
		'3GW100':									[ STRINGS_LENOVO, 'LePhone 3GW100' ],
		'Lenovo 3GW100':							[ STRINGS_LENOVO, 'LePhone 3GW100' ],
		'3GW101':									[ STRINGS_LENOVO, 'LePhone 3GW101' ],
		'Lenovo 3GW101':							[ STRINGS_LENOVO, 'LePhone 3GW101' ],
		'Lenovo Lenovo 3GW101':						[ STRINGS_LENOVO, 'LePhone 3GW101' ],
		'Lenovo A1-32AB0':							[ STRINGS_LENOVO, 'LePhone A1-32AB0' ],
		'Lenovo S1-37AH0':							[ STRINGS_LENOVO, 'LePhone S1-37AH0' ],
		'Lenovo Lenovo S1-37AH0':					[ STRINGS_LENOVO, 'LePhone S1-37AH0' ],
		'LNV-Lenovo A390e':							[ STRINGS_LENOVO, 'LePhone A390' ],
		'Lenovo A500':								[ STRINGS_LENOVO, 'LePhone A500' ],
		'Lenovo A668t':								[ STRINGS_LENOVO, 'LePhone A668' ],
		'Lenovo P70':								[ STRINGS_LENOVO, 'LePhone P70' ],
		'A30t':										[ STRINGS_LENOVO, 'A30t' ],
		'Lenovo-A60':								[ STRINGS_LENOVO, 'A60' ],
		'Lenovo A60':								[ STRINGS_LENOVO, 'A60' ],
		'Lenovo A68e':								[ STRINGS_LENOVO, 'A68e' ],
		'S2005A-H':									[ STRINGS_LENOVO, 'S2005A-H' ],
		'IDEA TV T100':								[ STRINGS_LENOVO, 'IDEA TV', 'television' ],
		'LG-C555-parrot':							[ STRINGS_LG, 'Optimus Chat' ],
		'LG-C800G':									[ STRINGS_LG, 'Eclypse' ],
		'LG-E400':									[ STRINGS_LG, 'Optimus L3' ],
		'LG-E510':									[ STRINGS_LG, 'Optimus Hub' ],
		'LG-E510f':									[ STRINGS_LG, 'Optimus Hub' ],
		'LG-E720':									[ STRINGS_LG, 'Optimus Chic' ],
		'LG-E730':									[ STRINGS_LG, 'Optimus Sol' ],
		'LG-F120L':									[ STRINGS_LG, 'LG-F120L' ],
		'LG-GT540':									[ STRINGS_LG, 'Optimus' ],
		'LG GT540 Swift':							[ STRINGS_LG, 'Optimus' ],
		'LG-GW620':									[ STRINGS_LG, 'GW620' ],
		'LG-LS670':									[ STRINGS_LG, 'Optimus S' ],
		'LG-LS855':									[ STRINGS_LG, 'Marquee' ],
		'LG-LU3000':								[ STRINGS_LG, 'Optimus Mach' ],
		'LG-LU5400':								[ STRINGS_LG, 'LU5400' ],
		'LG-LU6200':								[ STRINGS_LG, 'Optimus Q2' ],
		'LG-LU6500':								[ STRINGS_LG, 'Optimus Note' ],
		'LG-LU6800':								[ STRINGS_LG, 'Optimus Big' ],
		'LG-LW690':									[ STRINGS_LG, 'Optimus C' ],
		'LG-MS910':									[ STRINGS_LG, 'Esteem' ],
		'LG-MS690':									[ STRINGS_LG, 'Optimus M' ],
		'LG P350':									[ STRINGS_LG, 'Optimus Me' ],
		'LG-P350':									[ STRINGS_LG, 'Optimus Me' ],
		'LG-P350f':									[ STRINGS_LG, 'Optimus Me' ],
		'LG-P350g':									[ STRINGS_LG, 'Optimus Me' ],
		'LG-P500':									[ STRINGS_LG, 'Optimus One' ],
		'LG-P500h':									[ STRINGS_LG, 'Optimus One' ],
		'LG-P500h-parrot':							[ STRINGS_LG, 'Optimus One' ],
		'LG-P503':									[ STRINGS_LG, 'Optimus One' ],
		'LG-P505':									[ STRINGS_LG, 'Phoenix' ],
		'LG-P505R':									[ STRINGS_LG, 'Phoenix' ],
		'LG-P509':									[ STRINGS_LG, 'Optimus T' ],
		'LG-P690':									[ STRINGS_LG, 'Optimus Net' ],
		'LG-P698':									[ STRINGS_LG, 'Optimus Net' ],
		'LG-P698f':									[ STRINGS_LG, 'Optimus Net' ],
		'LG-P700':									[ STRINGS_LG, 'Optimus P700' ],
		'LG-P720':									[ STRINGS_LG, 'Optimus Chic' ],
		'LG-P860':									[ STRINGS_LG, 'P860' ],
		'LG-P880':									[ STRINGS_LG, 'X3' ],
		'LG-P920':									[ STRINGS_LG, 'Optimus 3D' ],
		'LG-P920h':									[ STRINGS_LG, 'Optimus 3D' ],
		'LG-P925':									[ STRINGS_LG, 'Thrill' ],
		'LG-P925g':									[ STRINGS_LG, 'Thrill' ],
		'LG-P930':									[ STRINGS_LG, 'Nitro HD' ],
		'LG-P940':									[ STRINGS_LG, 'PRADA 3.0' ],
		'LG-P970':									[ STRINGS_LG, 'Optimus Black' ],
		'LG-P970h':									[ STRINGS_LG, 'Optimus Black' ],
		'LG-P990':									[ STRINGS_LG, 'Optimus 2X Speed' ],
		'LG-P990h':									[ STRINGS_LG, 'Optimus 2X Speed' ],
		'LG-P990hN':								[ STRINGS_LG, 'Optimus 2X Speed' ],
		'LG-P993':									[ STRINGS_LG, 'Optimus 2X' ],
		'LG-SU540':									[ STRINGS_LG, 'PRADA 3.0' ],
		'LG-SU640':									[ STRINGS_LG ,'Optimus LTE' ],
		'LG-SU660':									[ STRINGS_LG, 'Optimus 2X' ],
		'LG-SU760':									[ STRINGS_LG, 'Optimus 3D' ],
		'LG-US670':									[ STRINGS_LG, 'Optimus U' ],
		'LG-V900':									[ STRINGS_LG, 'Optimus Pad', 'tablet' ],
		'LG-V905R':									[ STRINGS_LG, 'Optimus G-Slate', 'tablet' ],
		'LG-V909':									[ STRINGS_LG, 'Optimus G-Slate', 'tablet' ],
		'LG-VM670':									[ STRINGS_LG, 'Optimus V' ],
		'LG-VM701':									[ STRINGS_LG, 'Optimus Slider' ],
		'LG-VS660':									[ STRINGS_LG, 'Vortex' ],
		'LG-VS700':									[ STRINGS_LG, 'Enlighten' ],
		'LG-VS740':									[ STRINGS_LG, 'Ally' ],
		'LG-VS910':									[ STRINGS_LG, 'Revolution' ],
		'lgp-970':									[ STRINGS_LG, 'Optimus Black' ],
		'GT540':									[ STRINGS_LG, 'Optimus GT540' ],
		'LGL55C':									[ STRINGS_LG, 'Optimus Q' ],
		'LU2300':									[ STRINGS_LG, 'Optimus Q' ],	
		'LS670':									[ STRINGS_LG, 'Optimus S' ],
		'P940':										[ STRINGS_LG, 'PRADA 3.0' ],
		'P990':										[ STRINGS_LG, 'Optimus 2X Speed' ],
		'USCC-US760':								[ STRINGS_LG, 'Genesis' ],
		'VM670':									[ STRINGS_LG, 'Optimus V' ],
		'VS910 4G':									[ STRINGS_LG, 'Revolution 4G' ],
		'VS920 4G':									[ STRINGS_LG, 'Spectrum 4G' ],
		'L-01D':									[ STRINGS_LG, 'Optimus LTE' ],
		'L-02D':									[ STRINGS_LG, 'PRADA phone' ],
		'L-04C':									[ STRINGS_LG, 'Optimus Chat' ],
		'L-06C':									[ STRINGS_LG, 'Optimus Pad', 'tablet' ],
		'L-07C':									[ STRINGS_LG, 'Optimus Bright' ],
		'LG-Eve':									[ STRINGS_LG, 'Eve' ],
		'LG-Optimus One P500':						[ STRINGS_LG, 'Optimus One' ],
		'LG-Optimus 2X':							[ STRINGS_LG, 'Optimus 2X' ],
		'Ally':										[ STRINGS_LG, 'Ally' ],
		'Optimus':									[ STRINGS_LG, 'Optimus' ],
		'Optimus Me':								[ STRINGS_LG, 'Optimus Me' ],
		'Optimus 2X':								[ STRINGS_LG, 'Optimus 2X' ],
		'IS11LG':									[ STRINGS_LG, 'Optimus X' ],
		'Vortex':									[ STRINGS_LG, 'Vortex' ],
		'T6':										[ 'Malata', 'Zpad T6', 'tablet' ],
		'MTK6516':									[ 'Mediatek', 'MTK6516' ],
		'LIFETAB P9514':							[ 'Medion', 'Lifetab', 'tablet' ],
		'MEDION LIFE P4310':						[ 'Medion', 'Life' ],
		'M8':										[ 'Meizu', 'M8' ],
		'M9':										[ 'Meizu', 'M9' ],
		'meizu m9':									[ 'Meizu', 'M9' ],
		'MEIZU MX':									[ 'Meizu', 'MX' ],
		'AT735':									[ 'Moinstone', 'AT735', 'tablet' ],
		'A853':										[ STRINGS_MOTOROLA, 'Milestone' ],
		'A953':										[ STRINGS_MOTOROLA, 'Milestone 2' ],
		'ET1':										[ STRINGS_MOTOROLA, 'ET1 Enterprise Tablet', 'tablet' ],
		'MB200':									[ STRINGS_MOTOROLA, 'CLIQ' ],
		'MB300':									[ STRINGS_MOTOROLA, 'BACKFLIP' ],
		'MB501':									[ STRINGS_MOTOROLA, 'CLIQ XT' ],
		'MB502':									[ STRINGS_MOTOROLA, 'CHARM' ],
		'MB511':									[ STRINGS_MOTOROLA, 'FLIPOUT' ],
		'MB520':									[ STRINGS_MOTOROLA, 'BRAVO' ],
		'MB525':									[ STRINGS_MOTOROLA, 'DEFY' ],
		'MB526':									[ STRINGS_MOTOROLA, 'DEFY+' ],
		'MB611':									[ STRINGS_MOTOROLA, 'CLIQ 2' ],
		'MB612':									[ STRINGS_MOTOROLA, 'XPRT MB612' ],
		'MB855':									[ STRINGS_MOTOROLA, 'PHOTON 4G' ],
		'MB860':									[ STRINGS_MOTOROLA, 'ATRIX' ],
		'MB861':									[ STRINGS_MOTOROLA, 'ATRIX MB861' ],
		'MB865':									[ STRINGS_MOTOROLA, 'ATRIX 2' ],
		'MB870':									[ STRINGS_MOTOROLA, 'Droid X2' ],
		'MB886':									[ STRINGS_MOTOROLA, 'DINARA' ],
		'ME501':									[ STRINGS_MOTOROLA, 'CLIQ XT' ],
		'ME511':									[ STRINGS_MOTOROLA, 'FLIPOUT' ],
		'Me525':									[ STRINGS_MOTOROLA, 'MOTO ME525' ],
		'ME525':									[ STRINGS_MOTOROLA, 'MOTO ME525' ],
		'ME525+':									[ STRINGS_MOTOROLA, 'MOTO ME525' ],
		'ME600':									[ STRINGS_MOTOROLA, 'BACKFLIP' ],
		'ME722':									[ STRINGS_MOTOROLA, 'Milestone 2' ],
		'ME811':									[ STRINGS_MOTOROLA, 'Droid X' ],
		'ME860':									[ STRINGS_MOTOROLA, 'ATRIX' ],
		'ME863':									[ STRINGS_MOTOROLA, 'Milestone 3' ],
		'ME865':									[ STRINGS_MOTOROLA, 'ATRIX 2' ],
		'MT620':									[ STRINGS_MOTOROLA, 'MOTO MT620' ],
		'MT620t':									[ STRINGS_MOTOROLA, 'MOTO MT620' ],
		'MT810':									[ STRINGS_MOTOROLA, 'MOTO MT810' ],
		'MT870':									[ STRINGS_MOTOROLA, 'MOTO MT870' ],
		'MZ505':									[ STRINGS_MOTOROLA, 'XOOM Family Edition', 'tablet' ],
		'MZ600':									[ STRINGS_MOTOROLA, 'XOOM 4G LTE', 'tablet' ],
		'MZ601':									[ STRINGS_MOTOROLA, 'XOOM 3G', 'tablet' ],
		'MZ602':									[ STRINGS_MOTOROLA, 'XOOM 4G LTE', 'tablet' ],
		'MZ603':									[ STRINGS_MOTOROLA, 'XOOM 3G', 'tablet' ],
		'MZ604':									[ STRINGS_MOTOROLA, 'XOOM WiFi', 'tablet' ],
		'MZ605':									[ STRINGS_MOTOROLA, 'XOOM 3G', 'tablet' ],
		'MZ606':									[ STRINGS_MOTOROLA, 'XOOM WiFi', 'tablet' ],
		'MZ607':									[ STRINGS_MOTOROLA, 'XOOM 2 WiFi Media Edition', 'tablet' ],
		'MZ609':									[ STRINGS_MOTOROLA, 'Droid XYBOARD 8.2', 'tablet' ],
		'MZ615':									[ STRINGS_MOTOROLA, 'XOOM 2 WiFi', 'tablet' ],
		'MZ617':									[ STRINGS_MOTOROLA, 'Droid XYBOARD 10.1', 'tablet' ],
		'MZ617 4G':									[ STRINGS_MOTOROLA, 'Droid XYBOARD 10.1', 'tablet' ],
		'WX435':									[ STRINGS_MOTOROLA, 'TRIUMPH WX435' ],
		'WX445':									[ STRINGS_MOTOROLA, 'CITRUS WX445' ],
		'XT300':									[ STRINGS_MOTOROLA, 'SPICE' ],
		'XT311':									[ STRINGS_MOTOROLA, 'FIRE' ],
		'XT316':									[ STRINGS_MOTOROLA, 'MOTO XT316' ],
		'XT319':									[ STRINGS_MOTOROLA, 'MOTO XT319' ],
		'XT502':									[ STRINGS_MOTOROLA, 'QUENCH XT5' ],
		'XT530':									[ STRINGS_MOTOROLA, 'FIRE XT' ],
		'XT531':									[ STRINGS_MOTOROLA, 'FIRE XT' ],
		'XT532':									[ STRINGS_MOTOROLA, 'XT532' ],	
		'XT603':									[ STRINGS_MOTOROLA, 'ADMIRAL' ],
		'XT610':									[ STRINGS_MOTOROLA, 'Droid Pro' ],
		'XT615':									[ STRINGS_MOTOROLA, 'MOTO XT615' ],
		'XT701':									[ STRINGS_MOTOROLA, 'XT701' ],
		'XT702':									[ STRINGS_MOTOROLA, 'MOTO XT702' ],
		'XT711':									[ STRINGS_MOTOROLA, 'MOTO XT711' ],
		'XT720':									[ STRINGS_MOTOROLA, 'Milestone' ],
		'XT875':									[ STRINGS_MOTOROLA, 'Droid Bionic' ],
		'XT800':									[ STRINGS_MOTOROLA, 'MOTO XT800' ],
		'XT800+':									[ STRINGS_MOTOROLA, 'MOTO XT800' ],
		'XT800W':									[ STRINGS_MOTOROLA, 'MOTO Glam' ],
		'XT806':									[ STRINGS_MOTOROLA, 'MOTO XT806' ],
		'XT860':									[ STRINGS_MOTOROLA, 'Milestone 3' ],
		'XT862':									[ STRINGS_MOTOROLA, 'Droid 3' ],
		'XT882':									[ STRINGS_MOTOROLA, 'MOTO XT882' ],
		'XT910':									[ STRINGS_MOTOROLA, 'RAZR' ],
		'XT910S':									[ STRINGS_MOTOROLA, 'RAZR' ],
		'XT912':									[ STRINGS_MOTOROLA, 'Droid RAZR' ],
		'XT928':									[ STRINGS_MOTOROLA, 'XT928' ],
		'CLIQ':										[ STRINGS_MOTOROLA, 'CLIQ' ],
		'DEFY':										[ STRINGS_MOTOROLA, 'DEFY' ],
		'Defy Plus':								[ STRINGS_MOTOROLA, 'DEFY+' ],
		'Devour':									[ STRINGS_MOTOROLA, 'Devour' ],
		'Dext':										[ STRINGS_MOTOROLA, 'Dext' ],
		'Droid':									[ STRINGS_MOTOROLA, 'Droid' ],
		'DROID':									[ STRINGS_MOTOROLA, 'Droid' ],
		'DROID2':									[ STRINGS_MOTOROLA, 'Droid 2' ],
		'DROID2 GLOBAL':							[ STRINGS_MOTOROLA, 'Droid 2' ],
		'Droid2Global':								[ STRINGS_MOTOROLA, 'Droid 2' ],
		'DROID 2':									[ STRINGS_MOTOROLA, 'Droid 2' ],
		'DROID3':									[ STRINGS_MOTOROLA, 'Droid 3' ],
		'DROID4 4G':								[ STRINGS_MOTOROLA, 'Droid 4' ],
		'DROID Pro':								[ STRINGS_MOTOROLA, 'Droid Pro' ],
		'DROID BIONIC':								[ STRINGS_MOTOROLA, 'Droid Bionic' ],
		'DROID BIONIC 4G':							[ STRINGS_MOTOROLA, 'Droid Bionic' ],
		'DROID RAZR':								[ STRINGS_MOTOROLA, 'Droid RAZR' ],
		'DROID RAZR 4G':							[ STRINGS_MOTOROLA, 'Droid RAZR' ],
		'DROIDX':									[ STRINGS_MOTOROLA, 'Droid X' ],
		'Droid X':									[ STRINGS_MOTOROLA, 'Droid X' ],
		'DROID X2':									[ STRINGS_MOTOROLA, 'Droid X2' ],
		'Electrify':								[ STRINGS_MOTOROLA, 'Electrify' ],
		'Milestone XT720':							[ STRINGS_MOTOROLA, 'Milestone' ],
		'Milestone':								[ STRINGS_MOTOROLA, 'Milestone' ],
		'A853 Milestone':							[ STRINGS_MOTOROLA, 'Milestone' ],
		'Milestone X':								[ STRINGS_MOTOROLA, 'Milestone X' ],
		'MotoroiX':									[ STRINGS_MOTOROLA, 'Droid X' ],
		'RAZR':										[ STRINGS_MOTOROLA, 'RAZR' ],
		'Triumph':									[ STRINGS_MOTOROLA, 'TRIUMPH' ],
		'XOOM':										[ STRINGS_MOTOROLA, 'XOOM', 'tablet' ],
		'Xoom':										[ STRINGS_MOTOROLA, 'XOOM', 'tablet' ],
		'XOOM 2':									[ STRINGS_MOTOROLA, 'XOOM 2', 'tablet' ],
		'XOOM 2 ME':								[ STRINGS_MOTOROLA, 'XOOM 2', 'tablet' ],
		'ISW11M':									[ STRINGS_MOTOROLA, 'PHOTON' ],
		'MOTWX435KT':								[ STRINGS_MOTOROLA, 'TRIUMPH' ],
		'NABI-A':									[ 'Nabi', 'Kids tablet', 'tablet' ],
		'Newpad':									[ 'Newsmy', 'Newpad', 'tablet' ],
		'Newpad-K97':								[ 'Newsmy', 'Newpad', 'tablet' ],
		'M-PAD N8':									[ 'Newsmy', 'M-pad N8', 'tablet' ],
		'LT-NA7':									[ 'NEC', 'LT-NA7' ],
		'N-01D':									[ 'NEC', 'MEDIAS PP N-01D' ],
		'N-04C':									[ 'NEC', 'MEDIAS N-04C' ],
		'N-04D':									[ 'NEC', 'MEDIAS LTE N-04D' ],
		'N-05D':									[ 'NEC', 'MEDIAS ES N-05D' ],
		'N-06C':									[ 'NEC', 'MEDIAS WP N-06C' ],
		'N-06D':									[ 'NEC', 'MEDIAS Tab N-06D', 'tablet' ],
		'101N':										[ 'NEC', 'MEDIAS CH Softbank 101N' ],
		'Nexian NX-A890':							[ 'Nexian', 'Journey' ],
		'NXM726HN':									[ 'Nextbook', 'Premium 7', 'tablet' ],
		'Nokia N900':								[ 'Nokia', 'N900' ],
		'Lumia800':									[ 'Nokia', 'Lumia 800' ],
		'Notion Ink ADAM':							[ 'Notion Ink', 'ADAM', 'tablet' ],
		'EFM710A':									[ 'Oblio', 'Mint 7x', 'tablet' ],
		'ODYS-Xpress':								[ 'Odys', 'Xpress', 'tablet' ],
		'ONDA MID':									[ 'Onda', 'MID', 'tablet' ],
		'VX580A':									[ 'Onda', 'VX580A', 'tablet' ],
		'VX610A':									[ 'Onda', 'VX610A', 'tablet' ],
		'N2T':										[ 'ONN', 'N2T', 'tablet' ],
		'X903':										[ 'Oppo', 'Find Me X903' ],
		'X905':										[ 'Oppo', 'Find 3 X905' ],
		'OPPOT703':									[ 'Oppo', 'T703' ],
		'P-01D':									[ 'Panasonic', 'P-01D' ],
		'P-02D':									[ 'Panasonic', 'Lumix Phone' ],
		'P-07C':									[ 'Panasonic', 'P-07C' ],
		'pandigital9hr':							[ 'Pandigital', '9HR', 'tablet' ],
		'pandigital9hr2':							[ 'Pandigital', '9HR2', 'tablet' ],
		'pandigitalopp1':							[ 'Pandigital', 'OPP1', 'tablet' ],
		'pandigitalp1hr':							[ 'Pandigital', 'p1hr', 'tablet' ],
		'IM-A600S':									[ 'Pantech', 'SIRIUS α' ],
		'IM-A630K':									[ 'Pantech', 'SKY Izar' ],
		'IM-A690S':									[ 'Pantech', 'SKY' ],
		'IM-A710K':									[ 'Pantech', 'SKY Vega Xpress' ],
		'IM-A720L':									[ 'Pantech', 'SKY Vega Xpress' ],
		'IM-A730s':									[ 'Pantech', 'SKY Vega S' ],
		'IM-A760S':									[ 'Pantech', 'SKY Vega Racer' ],
		'IM-A770K':									[ 'Pantech', 'SKY Vega Racer' ],
		'IM-A780L':									[ 'Pantech', 'SKY Vega Racer' ],
		'IM-A800S':									[ 'Pantech', 'SKY Vega LTE' ],
		'IM-A810S':									[ 'Pantech', 'SKY Vega LTE M' ],
		'IM-A820L':									[ 'Pantech', 'SKY Vega LTE EX' ],
		'IM-T100K':									[ 'Pantech', 'SKY Vega No. 5', 'tablet' ],
		'IS06':										[ 'Pantech', 'SIRIUS α' ],
		'ADR8995':									[ 'Pantech', 'Breakout' ],
		'ADR8995 4G':								[ 'Pantech', 'Breakout' ],
		'PantechP8000':								[ 'Pantech', 'Crossover' ],
		'PantechP9070':								[ 'Pantech', 'P9070' ],
		'SKY IM-A600S':								[ 'Pantech', 'SIRIUS α' ],
		'SKY IM-A630K':								[ 'Pantech', 'SKY Izar' ],
		'PAT712W':									[ 'Perfeo', 'PAT712W', 'tablet' ],
		'X7G':										[ 'Pearl', 'Touchlet X7G', 'tablet' ],
		'FWS810':									[ 'PHICOMM', 'FWS810' ],
		'PocketBook A10':							[ 'PocketBook', 'A10', 'tablet' ],
		'Mobii 7':									[ 'Point Of View', 'Mobii 7', 'tablet' ],
		'PMP3384BRU':								[ 'Prestigio', 'Multipad 3384', 'tablet' ],
		'TB07FTA':									[ 'Positivo', 'TB07FTA', 'tablet' ],
		'W6HD_ICS':									[ 'Ramos', 'W6HD', 'tablet' ],
		'w10':										[ 'Ramos', 'W10', 'tablet' ],
		'W10':										[ 'Ramos', 'W10', 'tablet' ],
		'w10 v2.0':									[ 'Ramos', 'W10 v2.0', 'tablet' ],
		'T11AD':									[ 'Ramos', 'T11AD', 'tablet' ],
		'T11AD.FE':									[ 'Ramos', 'T11AD', 'tablet' ],
		'PlayBook':									[ 'RIM', 'BlackBerry PlayBook', 'tablet' ],
		'Galaxy Nexus':								[ STRINGS_SAMSUNG, 'Galaxy Nexus' ],
		'GT-B5510':									[ STRINGS_SAMSUNG, 'Galaxy Y Pro' ],
		'GT-B5512':									[ STRINGS_SAMSUNG, 'Galaxy Y Pro Duos' ],
		'GT-B7510':									[ STRINGS_SAMSUNG, 'Galaxy Pro' ],
		'GT-I5500':									[ STRINGS_SAMSUNG, 'Galaxy 5' ],
		'GT-I5500B':								[ STRINGS_SAMSUNG, 'Galaxy 5' ],
		'GT-I5500L':								[ STRINGS_SAMSUNG, 'Galaxy 5' ],
		'GT-I5503':									[ STRINGS_SAMSUNG, 'Galaxy 5' ],
		'GT-I5508':									[ STRINGS_SAMSUNG, 'Galaxy 5' ],
		'GT-I5510':									[ STRINGS_SAMSUNG, 'Galaxy 551' ],
		'GT-I5510L':								[ STRINGS_SAMSUNG, 'Galaxy 551' ],
		'GT-I5510T':								[ STRINGS_SAMSUNG, 'Galaxy 551' ],
		'GT-I5700':									[ STRINGS_SAMSUNG, 'Galaxy Spica' ],
		'GT-I5800':									[ STRINGS_SAMSUNG, 'Galaxy Apollo' ],
		'GT-I5800L':								[ STRINGS_SAMSUNG, 'Galaxy Apollo' ],
		'GT-I5801':									[ STRINGS_SAMSUNG, 'Galaxy Apollo' ],
		'GT-I6500U':								[ STRINGS_SAMSUNG, 'Saturn' ],
		'GT-I8000':									[ STRINGS_SAMSUNG, 'Omnia 2' ],
		'GT-I8150':									[ STRINGS_SAMSUNG, 'Galaxy W' ],
		'GT-I8320':									[ STRINGS_SAMSUNG, 'H1' ],
		'GT-I9000':									[ STRINGS_SAMSUNG, 'Galaxy S' ],
		'GT-I9000B':								[ STRINGS_SAMSUNG, 'Galaxy S' ],
		'GT-I9000M':								[ STRINGS_SAMSUNG, 'Galaxy S Vibrant' ],
		'GT-I9000T':								[ STRINGS_SAMSUNG, 'Galaxy S' ],
		'GT-I9001':									[ STRINGS_SAMSUNG, 'Galaxy S Plus' ],
		'GT-I9003':									[ STRINGS_SAMSUNG, 'Galaxy SL' ],
		'GT-I9008':									[ STRINGS_SAMSUNG, 'Galaxy S' ],
		'GT-I9008L':								[ STRINGS_SAMSUNG, 'Galaxy S' ],
		'GT-I9018':									[ STRINGS_SAMSUNG, 'Galaxy GT-I9018' ],
		'GT-I9070':									[ STRINGS_SAMSUNG, 'Galaxy S Advance' ],
		'GT-I9070P':								[ STRINGS_SAMSUNG, 'Galaxy S Advance' ],
		'GT-I9088':									[ STRINGS_SAMSUNG, 'Galaxy S' ],
		'GT-i9100':									[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'GT-I9100':									[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'GT-I9100G':								[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'GT-I9100M':								[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'GT-I9100T':								[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'GT-I9100P':								[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'GT-I9103':									[ STRINGS_SAMSUNG, 'Galaxy R' ],
		'GT-I9108':									[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'GT-I9210':									[ STRINGS_SAMSUNG, 'Galaxy S II LTE' ],
		'GT-I9220':									[ STRINGS_SAMSUNG, 'Galaxy Note' ],
		'GT-I9228':									[ STRINGS_SAMSUNG, 'Galaxy Note' ],
		'GT-I9300':									[ STRINGS_SAMSUNG, 'Galaxy S III' ],
		'GT-I9500':									[ STRINGS_SAMSUNG, 'Galaxy S III' ],
		'GT-N7000':									[ STRINGS_SAMSUNG, 'Galaxy Note' ],
		'GT-N7000B':								[ STRINGS_SAMSUNG, 'Galaxy Note' ],
		'GT-P1000':									[ STRINGS_SAMSUNG, 'Galaxy Tab', 'tablet' ],
		'GT-P1000L':								[ STRINGS_SAMSUNG, 'Galaxy Tab', 'tablet' ],
		'GT-P1000M':								[ STRINGS_SAMSUNG, 'Galaxy Tab', 'tablet' ],
		'GT-P1000N':								[ STRINGS_SAMSUNG, 'Galaxy Tab', 'tablet' ],
		'GT-P1000T':								[ STRINGS_SAMSUNG, 'Galaxy Tab', 'tablet' ],
		'GT-P1010':									[ STRINGS_SAMSUNG, 'Galaxy Tab', 'tablet' ],
		'GT-P3100':									[ STRINGS_SAMSUNG, 'Galaxy Tab 2 (7.0)', 'tablet' ],
		'GT-P3110':									[ STRINGS_SAMSUNG, 'Galaxy Tab 2 (7.0)', 'tablet' ],
		'GT-P6200':									[ STRINGS_SAMSUNG, 'Galaxy Tab 7.0 Plus', 'tablet' ],
		'GT-P6200L':								[ STRINGS_SAMSUNG, 'Galaxy Tab 7.0 Plus', 'tablet' ],
		'GT-P6201':									[ STRINGS_SAMSUNG, 'Galaxy Tab 7.0 Plus N', 'tablet' ],
		'GT-P6210':									[ STRINGS_SAMSUNG, 'Galaxy Tab 7.0 Plus', 'tablet' ],
		'GT-P6800':									[ STRINGS_SAMSUNG, 'Galaxy Tab 7.7', 'tablet' ],
		'GT-P6810':									[ STRINGS_SAMSUNG, 'Galaxy Tab 7.7', 'tablet' ],
		'GT-P7100':									[ STRINGS_SAMSUNG, 'Galaxy Tab 10.1V', 'tablet' ],
		'GT-P7300':									[ STRINGS_SAMSUNG, 'Galaxy Tab 8.9', 'tablet' ],
		'GT-P7300B':								[ STRINGS_SAMSUNG, 'Galaxy Tab 8.9', 'tablet' ],
		'GT-P7310':									[ STRINGS_SAMSUNG, 'Galaxy Tab 8.9', 'tablet' ],
		'GT-P7500':									[ STRINGS_SAMSUNG, 'Galaxy Tab 10.1', 'tablet' ],
		'GT-P7500R':								[ STRINGS_SAMSUNG, 'Galaxy Tab 10.1', 'tablet' ],
		'GT-P7500V':								[ STRINGS_SAMSUNG, 'Galaxy Tab 10.1', 'tablet' ],
		'GT-P7501':									[ STRINGS_SAMSUNG, 'Galaxy Tab 10.1N', 'tablet' ],
		'GT-P7510':									[ STRINGS_SAMSUNG, 'Galaxy Tab 10.1', 'tablet' ],
		'GT-P7511':									[ STRINGS_SAMSUNG, 'Galaxy Tab 10.1N', 'tablet' ],
		'GT-S5360':									[ STRINGS_SAMSUNG, 'Galaxy Y' ],
		'GT-S5360B':								[ STRINGS_SAMSUNG, 'Galaxy Y' ],
		'GT-S5363':									[ STRINGS_SAMSUNG, 'Galaxy Y' ],
		'GT-S5570':									[ STRINGS_SAMSUNG, 'Galaxy Mini' ],
		'GT-S5570B':								[ STRINGS_SAMSUNG, 'Galaxy Mini' ],
		'GT-S5570L':								[ STRINGS_SAMSUNG, 'Galaxy Mini' ],
		'GT-S5578':									[ STRINGS_SAMSUNG, 'Galaxy Mini' ],
		'GT-S5660':									[ STRINGS_SAMSUNG, 'Galaxy Gio' ],
		'GT-S5660M':								[ STRINGS_SAMSUNG, 'Galaxy Gio' ],
		'GT-S5660V':								[ STRINGS_SAMSUNG, 'Galaxy Gio' ],
		'GT-S5670':									[ STRINGS_SAMSUNG, 'Galaxy Fit' ],
		'GT-S5690':									[ STRINGS_SAMSUNG, 'Galaxy Xcover' ],
		'GT-S5820':									[ STRINGS_SAMSUNG, 'Galaxy Ace' ],
		'GT-S5830':									[ STRINGS_SAMSUNG, 'Galaxy Ace' ],
		'GT-S5830B':								[ STRINGS_SAMSUNG, 'Galaxy Ace' ],
		'GT-S5830i':								[ STRINGS_SAMSUNG, 'Galaxy Ace' ],
		'GT-S5830L':								[ STRINGS_SAMSUNG, 'Galaxy Ace' ],
		'GT-S5830T':								[ STRINGS_SAMSUNG, 'Galaxy Ace' ],
		'GT-S6102':									[ STRINGS_SAMSUNG, 'Galaxy Y Duos' ],
		'GT-S6500':									[ STRINGS_SAMSUNG, 'Galaxy Mini 2' ],
		'GT-S6702':									[ STRINGS_SAMSUNG, 'GT-S6702' ],
		'SCH-i559':									[ STRINGS_SAMSUNG, 'Galaxy Pop' ],
		'SCH-i569':									[ STRINGS_SAMSUNG, 'Galaxy Gio' ],
		'SCH-I110':									[ STRINGS_SAMSUNG, 'Illusion' ],
		'SCH-I400':									[ STRINGS_SAMSUNG, 'Continuum' ],
		'SCH-I405 4G':								[ STRINGS_SAMSUNG, 'Stratosphere' ],
		'SCH-I500':									[ STRINGS_SAMSUNG, 'Fascinate' ],
		'SCH-i509':									[ STRINGS_SAMSUNG, 'Galaxy Y' ],
		'SCH-I510':									[ STRINGS_SAMSUNG, 'Stealth V' ],
		'SCH-I510 4G':								[ STRINGS_SAMSUNG, 'Droid Charge' ],
		'SCH-I515':									[ STRINGS_SAMSUNG, 'SCH-I515' ],
		'SCH-i579':									[ STRINGS_SAMSUNG, 'Galaxy Ace' ],
		'SCH-i589':									[ STRINGS_SAMSUNG, 'Galaxy Ace Duos' ],
		'SCH-I800':									[ STRINGS_SAMSUNG, 'Galaxy Tab 7.0', 'tablet' ],
		'SCH-i809':									[ STRINGS_SAMSUNG, 'SCH-I809' ],
		'SCH-R760':									[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'SCH-R880':									[ STRINGS_SAMSUNG, 'Acclaim' ],
		'SCH-i889':									[ STRINGS_SAMSUNG, 'Galaxy Note' ],
		'SCH-I905':									[ STRINGS_SAMSUNG, 'Galaxy Tab 10.1', 'tablet' ],
		'SCH-i909':									[ STRINGS_SAMSUNG, 'Galaxy S' ],
		'SCH-I909':									[ STRINGS_SAMSUNG, 'Galaxy S' ],
		'SCH-i919':									[ STRINGS_SAMSUNG, 'SCH-i919' ],
		'SCH-i929':									[ STRINGS_SAMSUNG, 'SCH-i929' ],
		'SCH-M828C[9096483449]':					[ STRINGS_SAMSUNG, 'Galaxy Precedent' ],
		'SCH-R680':									[ STRINGS_SAMSUNG, 'Repp' ],
		'SCH-R720':									[ STRINGS_SAMSUNG, 'Admire' ],
		'SCH-R730':									[ STRINGS_SAMSUNG, 'Transfix' ],
		'SCH-R910':									[ STRINGS_SAMSUNG, 'Galaxy Indulge 4G' ],
		'SCH-R915':									[ STRINGS_SAMSUNG, 'Galaxy Indulge' ],
		'SCH-R920':									[ STRINGS_SAMSUNG, 'Galaxy Attain 4G' ],
		'SCH-W899':									[ STRINGS_SAMSUNG, 'SCH-W899' ],
		'SGH-I717':									[ STRINGS_SAMSUNG, 'Galaxy Note' ],
		'SGH-I717R':								[ STRINGS_SAMSUNG, 'Galaxy Note' ],
		'SGH-I727':									[ STRINGS_SAMSUNG, 'Galaxy S II Skyrocket' ],
		'SGH-i727R':								[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'SGH-I727R':								[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'SGH-I748':									[ STRINGS_SAMSUNG, 'SGH-I748' ],
		'SGH-I777':									[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'SGH-I9777':								[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'SGH-I896':									[ STRINGS_SAMSUNG, 'Captivate' ],
		'SGH-I897':									[ STRINGS_SAMSUNG, 'Captivate' ],
		'SGH-I927':									[ STRINGS_SAMSUNG, 'Captivate Glide' ],
		'SGH-I927R':								[ STRINGS_SAMSUNG, 'Captivate Glide' ],
		'SGH-I957':									[ STRINGS_SAMSUNG, 'Galaxy Tab 8.9', 'tablet' ],
		'SGH-I957D':								[ STRINGS_SAMSUNG, 'Galaxy Tab 8.9', 'tablet' ],
		'SGH-I957M':								[ STRINGS_SAMSUNG, 'Galaxy Tab 8.9', 'tablet' ],
		'SGH-I957R':								[ STRINGS_SAMSUNG, 'Galaxy Tab 8.9', 'tablet' ],
		'SGH-I987':									[ STRINGS_SAMSUNG, 'Galaxy Tab 7.0', 'tablet' ],
		'SGH-I997':									[ STRINGS_SAMSUNG, 'Infuse 4G' ],
		'SGH-I997R':								[ STRINGS_SAMSUNG, 'Infuse 4G' ],
		'SGH-T499':									[ STRINGS_SAMSUNG, 'Dart' ],
		'SGH-T499V':								[ STRINGS_SAMSUNG, 'Galaxy Mini' ],
		'SGH-T499Y':								[ STRINGS_SAMSUNG, 'Galaxy Mini' ],
		'SGH-T589R':								[ STRINGS_SAMSUNG, 'Galaxy Q' ],
		'SGH-T679':									[ STRINGS_SAMSUNG, 'Exhibit II 4G' ],
		'SGH-T759':									[ STRINGS_SAMSUNG, 'Exhibit 4G' ],
		'SGH-T839':									[ STRINGS_SAMSUNG, 'T-Mobile Sidekick' ],
		'SGH-T849':									[ STRINGS_SAMSUNG, 'Galaxy Tab 7.0', 'tablet' ],
		'SGH-T859':									[ STRINGS_SAMSUNG, 'Galaxy Tab 10.1 4G', 'tablet' ],
		'SGH-T959':									[ STRINGS_SAMSUNG, 'Vibrant' ],
		'SGH-T959D':								[ STRINGS_SAMSUNG, 'Galaxy S Fascinate 3G+' ],
		'SGH-T959P':								[ STRINGS_SAMSUNG, 'Galaxy S Fascinate 4G' ],
		'SGH-T959V':								[ STRINGS_SAMSUNG, 'Galaxy S 4G' ],
		'SGH-T989':									[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'SGH-T989D':								[ STRINGS_SAMSUNG, 'Galaxy S II X' ],
		'SGH-T999':									[ STRINGS_SAMSUNG, 'SGH-T999' ],
		'SHV-E120K':								[ STRINGS_SAMSUNG, 'Galaxy S II HD LTE' ],
		'SHV-E120L':								[ STRINGS_SAMSUNG, 'Galaxy S II HD LTE' ],
		'SHV-E120S':								[ STRINGS_SAMSUNG, 'Galaxy S II HD LTE' ],
		'SHV-E110S':								[ STRINGS_SAMSUNG, 'Galaxy S II LTE' ],
		'SHV-E140S':								[ STRINGS_SAMSUNG, 'Galaxy Tab 8.9', 'tablet' ],
		'SHV-E160K':								[ STRINGS_SAMSUNG, 'Galaxy Note' ],
		'SHV-E160L':								[ STRINGS_SAMSUNG, 'Galaxy Note LTE' ],
		'SHV-E160S':								[ STRINGS_SAMSUNG, 'Galaxy Note LTE' ],
		'SHW-M100S':								[ STRINGS_SAMSUNG, 'Galaxy A' ],
		'SHW-M110S':								[ STRINGS_SAMSUNG, 'Galaxy S' ],
		'SHW-M130L':								[ STRINGS_SAMSUNG, 'Galaxy U' ],
		'SHW-M130K':								[ STRINGS_SAMSUNG, 'Galaxy K' ],
		'SHW-M180K':								[ STRINGS_SAMSUNG, 'Galaxy Tab', 'tablet' ],
		'SHW-M180L':								[ STRINGS_SAMSUNG, 'Galaxy Tab', 'tablet' ],
		'SHW-M180S':								[ STRINGS_SAMSUNG, 'Galaxy Tab', 'tablet' ],
		'SHW-M180W':								[ STRINGS_SAMSUNG, 'Galaxy Tab', 'tablet' ],
		'SHW-M190S':								[ STRINGS_SAMSUNG, 'Galaxy S Hoppin' ],
		'SHW-M240S':								[ STRINGS_SAMSUNG, 'Galaxy Ace' ],
		'SHW-M250K':								[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'SHW-M250L':								[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'SHW-M250S':								[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'SHW-M380S':								[ STRINGS_SAMSUNG, 'Galaxy Tab 10.1', 'tablet' ],
		'SHW-M380W':								[ STRINGS_SAMSUNG, 'Galaxy Tab 10.1', 'tablet' ],
		'SMT-i9100':								[ STRINGS_SAMSUNG, 'SMT-I9100', 'tablet' ],
		'SPH-D600':									[ STRINGS_SAMSUNG, 'Conquer 4G' ],
		'SPH-D700':									[ STRINGS_SAMSUNG, 'Epic 4G' ],
		'SPH-D705':									[ STRINGS_SAMSUNG, 'Epic 4G 2' ],
		'SPH-D710':									[ STRINGS_SAMSUNG, 'Epic 4G Touch' ],
		'SPH-L700':									[ STRINGS_SAMSUNG, 'SPH-L700' ],
		'SPH-L710':									[ STRINGS_SAMSUNG, 'SPH-L710' ],
		'SPH-M820':									[ STRINGS_SAMSUNG, 'Galaxy Prevail' ],
		'SPH-M820-BST':								[ STRINGS_SAMSUNG, 'Galaxy Prevail' ],
		'SPH-M580':									[ STRINGS_SAMSUNG, 'Replenish' ],
		'SPH-M910':									[ STRINGS_SAMSUNG, 'Intercept' ],
		'SPH-M930BST':								[ STRINGS_SAMSUNG, 'Transform Ultra' ],
		'SPH-P100':									[ STRINGS_SAMSUNG, 'Galaxy Tab', 'tablet' ],
		'YP-GB1':									[ STRINGS_SAMSUNG, 'Galaxy Player' ],
		'YP-GB70':									[ STRINGS_SAMSUNG, 'Galaxy Player' ],
		'YP-GS1':									[ STRINGS_SAMSUNG, 'Galaxy S WiFi 3.6' ],
		'YP-G1':									[ STRINGS_SAMSUNG, 'Galaxy S WiFi 4.0' ],
		'YP-G70':									[ STRINGS_SAMSUNG, 'Galaxy S WiFi 5.0' ],
		'GT9100':									[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'I897':										[ STRINGS_SAMSUNG, 'Captivate' ],
		'I7500':									[ STRINGS_SAMSUNG, 'Galaxy' ],
		'I9000':									[ STRINGS_SAMSUNG, 'Galaxy S' ],
		'T959':										[ STRINGS_SAMSUNG, 'Galaxy S Vibrant' ],
		'Galaxy Note':								[ STRINGS_SAMSUNG, 'Galaxy Note' ],
		'GalaxyS':									[ STRINGS_SAMSUNG, 'Galaxy S' ],
		'Galaxy S II':								[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'GALAXY Tab':								[ STRINGS_SAMSUNG, 'Galaxy Tab', 'tablet' ],
		'Vibrantmtd':								[ STRINGS_SAMSUNG, 'Vibrant' ],
		'SC-01C':									[ STRINGS_SAMSUNG, 'Galaxy Tab', 'tablet' ],
		'SC-01D':									[ STRINGS_SAMSUNG, 'Galaxy Tab 10.1 LTE', 'tablet' ],
		'SC-02B':									[ STRINGS_SAMSUNG, 'Galaxy S' ],
		'SC-02C':									[ STRINGS_SAMSUNG, 'Galaxy S II' ],
		'SC-02D':									[ STRINGS_SAMSUNG, 'Galaxy Tab 7.0 Plus', 'tablet' ],
		'SC-03D':									[ STRINGS_SAMSUNG, 'Galaxy S II LTE' ],
		'SC-04D':									[ STRINGS_SAMSUNG, 'Galaxy Nexus' ],
		'ISW11SC':									[ STRINGS_SAMSUNG, 'Galaxy S II WiMAX' ],
		'IS12SH':									[ STRINGS_SHARP, 'Aquos IS12SH' ],
		'IS01':										[ STRINGS_SHARP, 'IS01' ],
		'IS03':										[ STRINGS_SHARP, 'IS03' ],
		'IS05':										[ STRINGS_SHARP, 'IS05' ],
		'IS13SH':									[ STRINGS_SHARP, 'Aquos IS13SH' ],
		'SBM003SH':									[ STRINGS_SHARP, 'Galapagos' ],
		'SBM005SH':									[ STRINGS_SHARP, 'Galapagos' ],
		'SBM006SH':									[ STRINGS_SHARP, 'Aquos' ],
		'SBM009SH':									[ STRINGS_SHARP, 'Aquos 009SH' ],
		'SBM102SH':									[ STRINGS_SHARP, 'Aquos 102SH' ],
		'SH-01D':									[ STRINGS_SHARP, 'Aquos SH-01D' ],
		'SH-02D':									[ STRINGS_SHARP, 'Aquos slider SH-02D' ],
		'SH-03C':									[ STRINGS_SHARP, 'Lynx 3D' ],
		'SH-06D':									[ STRINGS_SHARP, 'Aquos SH-06D' ],
		'SH-10B':									[ STRINGS_SHARP, 'Lynx' ],
		'SH-12C':									[ STRINGS_SHARP, 'Aquos' ],
		'SH-13C':									[ STRINGS_SHARP, 'Aquos f SH-13C' ],
		'SH80F':									[ STRINGS_SHARP, 'Aquos SH80F' ],
		'SH8118U':									[ STRINGS_SHARP, 'SH8118U' ],
		'SH8128U':									[ STRINGS_SHARP, 'SH8128U' ],
		'SH8158U':									[ STRINGS_SHARP, 'SH8158U' ],
		'SH8188U':									[ STRINGS_SHARP, 'SH8188U' ],
		'SH8268U':									[ STRINGS_SHARP, 'SH8268U' ],
		'INFOBAR C01':								[ STRINGS_SHARP, 'INFOBAR C01' ],
		'SPX-5':									[ 'Simvalley', 'SPX-5' ],
		'SmartQT7':									[ 'SmartQ', 'T7', 'tablet' ],
		'E10a':										[ STRINGS_SONY_ERICSSON, 'Xperia X10 Mini' ],
		'E10i':										[ STRINGS_SONY_ERICSSON, 'Xperia X10 Mini' ],
		'E10iv':									[ STRINGS_SONY_ERICSSON, 'Xperia X10 Mini' ],
		'E15':										[ STRINGS_SONY_ERICSSON, 'Xperia X8' ],
		'E15a':										[ STRINGS_SONY_ERICSSON, 'Xperia X8' ],
		'E15i':										[ STRINGS_SONY_ERICSSON, 'Xperia X8' ],
		'E16i':										[ STRINGS_SONY_ERICSSON, 'W8 Walkman' ],
		'LT15':										[ STRINGS_SONY_ERICSSON, 'Xperia Arc' ],
		'LT15a':									[ STRINGS_SONY_ERICSSON, 'Xperia Arc' ],
		'LT15i':									[ STRINGS_SONY_ERICSSON, 'Xperia Arc' ],
		'LT15i-o':									[ STRINGS_SONY_ERICSSON, 'Xperia Arc' ],
		'LT18a':									[ STRINGS_SONY_ERICSSON, 'Xperia Arc S' ],
		'LT18i':									[ STRINGS_SONY_ERICSSON, 'Xperia Arc S' ],
		'LT18iv':									[ STRINGS_SONY_ERICSSON, 'Xperia Arc S' ],
		'LT18i-o':									[ STRINGS_SONY_ERICSSON, 'Xperia Arc S' ],
		'LT22i':									[ 'Sony', 'Xperia P' ],
		'LT26i':									[ 'Sony', 'Xperia S' ],
		'LT28i':									[ 'Sony', 'Xperia Ion' ],
		'LT29i':									[ 'Sony', 'Xperia Ion' ],
		'MK16a':									[ STRINGS_SONY_ERICSSON, 'Xperia Pro' ],
		'MK16i':									[ STRINGS_SONY_ERICSSON, 'Xperia Pro' ],
		'MT11a':									[ STRINGS_SONY_ERICSSON, 'Xperia Neo V' ],
		'MT11i':									[ STRINGS_SONY_ERICSSON, 'Xperia Neo V' ],
		'MT11iv':									[ STRINGS_SONY_ERICSSON, 'Xperia Neo V' ],
		'MT11i-o':									[ STRINGS_SONY_ERICSSON, 'Xperia Neo V' ],
		'MT15a':									[ STRINGS_SONY_ERICSSON, 'Xperia Neo' ],
		'MT15i':									[ STRINGS_SONY_ERICSSON, 'Xperia Neo' ],
		'MT15iv':									[ STRINGS_SONY_ERICSSON, 'Xperia Neo' ],
		'MT15i-o':									[ STRINGS_SONY_ERICSSON, 'Xperia Neo' ],
		'R800a':									[ STRINGS_SONY_ERICSSON, 'Xperia Play' ],
		'R800i':									[ STRINGS_SONY_ERICSSON, 'Xperia Play' ],
		'R800iv':									[ STRINGS_SONY_ERICSSON, 'Xperia Play' ],
		'R800at':									[ STRINGS_SONY_ERICSSON, 'Xperia Play' ],
		'R800x':									[ STRINGS_SONY_ERICSSON, 'Xperia Play' ],
		'SK17a':									[ STRINGS_SONY_ERICSSON, 'Xperia Mini Pro' ],
		'SK17i':									[ STRINGS_SONY_ERICSSON, 'Xperia Mini Pro' ],
		'SK17iv':									[ STRINGS_SONY_ERICSSON, 'Xperia Mini Pro' ],
		'SK17i-o':									[ STRINGS_SONY_ERICSSON, 'Xperia Mini Pro' ],
		'ST15a':									[ STRINGS_SONY_ERICSSON, 'Xperia Mini' ],
		'ST15i':									[ STRINGS_SONY_ERICSSON, 'Xperia Mini' ],
		'ST17a':									[ STRINGS_SONY_ERICSSON, 'Xperia Active' ],
		'ST17i':									[ STRINGS_SONY_ERICSSON, 'Xperia Active' ],
		'ST18a':									[ STRINGS_SONY_ERICSSON, 'Xperia Ray' ],
		'ST18i':									[ STRINGS_SONY_ERICSSON, 'Xperia Ray' ],
		'ST18iv':									[ STRINGS_SONY_ERICSSON, 'Xperia Ray' ],
		'ST25i':									[ STRINGS_SONY_ERICSSON, 'Xperia U' ],
		'U20a':										[ STRINGS_SONY_ERICSSON, 'Xperia X10 Mini Pro' ],
		'U20i':										[ STRINGS_SONY_ERICSSON, 'Xperia X10 Mini Pro' ],
		'U20iv':									[ STRINGS_SONY_ERICSSON, 'Xperia X10 Mini Pro' ],
		'W800':										[ STRINGS_SONY_ERICSSON, 'W800' ],
		'WT13i':									[ STRINGS_SONY_ERICSSON, 'Mix Walkman' ],
		'WT18i':									[ STRINGS_SONY_ERICSSON, 'Walkman' ],
		'WT19a':									[ STRINGS_SONY_ERICSSON, 'Live with Walkman' ],
		'WT19i':									[ STRINGS_SONY_ERICSSON, 'Live with Walkman' ],
		'X8':										[ STRINGS_SONY_ERICSSON, 'Xperia X8' ],
		'X10':										[ STRINGS_SONY_ERICSSON, 'Xperia X10' ],
		'X10a':										[ STRINGS_SONY_ERICSSON, 'Xperia X10' ],
		'X10i':										[ STRINGS_SONY_ERICSSON, 'Xperia X10' ],
		'X10iv':									[ STRINGS_SONY_ERICSSON, 'Xperia X10' ],
		'Z1i':										[ STRINGS_SONY_ERICSSON, 'Xperia Play' ],
		'S51SE':									[ STRINGS_SONY_ERICSSON, 'Xperia Mini' ],
		'IS11S':									[ STRINGS_SONY_ERICSSON, 'Xperia Acro' ],
		'SO-01B':									[ STRINGS_SONY_ERICSSON, 'Xperia X10' ],
		'SO-01C':									[ STRINGS_SONY_ERICSSON, 'Xperia Arc' ],
		'SO-01D':									[ STRINGS_SONY_ERICSSON, 'Xperia Play' ],
		'SO-02C':									[ STRINGS_SONY_ERICSSON, 'Xperia Acro' ],
		'SO-02D':									[ STRINGS_SONY_ERICSSON, 'Xperia NX' ],
		'SO-03C':									[ STRINGS_SONY_ERICSSON, 'Xperia Ray' ],
		'SO-03D':									[ STRINGS_SONY_ERICSSON, 'Xperia Acro HD' ],
		'XPERIA X8':								[ STRINGS_SONY_ERICSSON, 'Xperia X8' ],
		'Xperia X10':								[ STRINGS_SONY_ERICSSON, 'Xperia X10' ],
		'Xperia Ray':								[ STRINGS_SONY_ERICSSON, 'Xperia Ray' ],
		'Sony Ericsson Xperia X1':					[ STRINGS_SONY_ERICSSON, 'Xperia X1' ],
		'Sony Tablet P':							[ 'Sony', 'Tablet P', 'tablet' ],
		'Sony Tablet S':							[ 'Sony', 'Tablet S', 'tablet' ],
		'NW-Z1000Series':							[ 'Sony', 'Walkman' ],
		'Spice Mi280':								[ 'Spice', 'Mi-280' ],
		'TS1004T':									[ 'Surf 3Q', 'TS1004T', 'tablet' ],
		'TCL A990':									[ 'TCL' , 'A990' ],
		'TCL A998':									[ 'TCL' , 'A998' ],
		'TCL GENESEE E708':							[ 'TCL' , 'Genesee E708' ],
		'P72':										[ 'Teclast', 'P72', 'tablet' ],
		'P76TI':									[ 'Teclast', 'P76Ti', 'tablet' ],
		'Ultimate10':								[ 'Tomtec', 'Ultimate10', 'tablet' ],
		'Thl V7':									[ 'THL', 'V7' ],
		'TSB CLOUD COMPANION;TOSHIBA AC AND AZ':	[ 'Toshiba', 'Dynabook AZ', 'desktop' ],
		'T-01C':									[ 'Toshiba', 'Regza T-01C' ],
		'T-01D':									[ 'Toshiba', 'Regza T-01D' ],
		'IS04':										[ 'Toshiba', 'Regza IS04' ],
		'IS11T':									[ 'Toshiba', 'Regza IS11T' ],
		'AT1S0':									[ 'Toshiba', 'Regza AT1S0' ],
		'AT100':									[ 'Toshiba', 'AT100', 'tablet' ],
		'AT200':									[ 'Toshiba', 'AT200', 'tablet' ],
		'Folio 100':								[ 'Toshiba', 'Folio 100', 'tablet' ],
		'folio100':									[ 'Toshiba', 'Folio 100', 'tablet' ],
		'Fantastic T3':								[ 'TWM', 'Fantastic T3' ],
		'MOVE':										[ 'T-Mobile', 'MOVE' ],
		'T-Mobile G1':								[ 'T-Mobile', 'G1' ],
		'T-Mobile G2':								[ 'T-Mobile', 'G2' ],
		'LG-P999':									[ 'T-Mobile', 'G2x' ],
		'T-Mobile myTouch 3G':						[ 'T-Mobile', 'myTouch 3G'],
		'T-Mobile myTouch 3G Slide':				[ 'T-Mobile', 'myTouch 3G Slide' ],
		'LG-E739':									[ 'T-Mobile', 'myTouch 4G' ],
		'myTouch4G':								[ 'T-Mobile', 'myTouch 4G' ],
		'My Touch 4G':								[ 'T-Mobile', 'myTouch 4G' ],
		'HTC Mytouch 4G':							[ 'T-Mobile', 'myTouch 4G' ],
		'HTC My Touch 4G':							[ 'T-Mobile', 'myTouch 4G' ],
		'myTouch 4G Slide':							[ 'T-Mobile', 'myTouch 4G Slide' ],
		'Pulse Mini':								[ 'T-Mobile', 'Pulse Mini' ],	
		'M70014':									[ 'United Star Technology', 'M70014', 'tablet' ],
		'T301':										[ 'Velocity Micro', 'Cruz T301', 'tablet' ],
		'GTablet':									[ 'ViewSonic', 'gTablet', 'tablet' ],
		'ViewPad7':									[ 'ViewSonic', 'ViewPad 7', 'tablet' ],
		'ViewPad 10e':								[ 'ViewSonic', 'ViewPad 10e', 'tablet' ],
		'VTAB1008':									[ 'Vizio', 'VTAB1008', 'tablet' ],
		'Vodafone 845':								[ 'Vodafone', '845 Nova' ],
		'Vodafone 858':								[ 'Vodafone', '858 Smart' ],
		'Vodafone 945':								[ 'Vodafone', '945' ],
		'xPAD-70':									[ 'WayteQ', 'xPAD-70', 'tablet' ],
		'WellcoM-A99':								[ 'WellcoM', 'A99' ],
		'N12':										[ 'Window', 'N12', 'tablet' ],
		'N12R':										[ 'Window', 'N12R', 'tablet' ],
		'N50DT':									[ 'Window', 'N50DT', 'tablet' ],
		'N50GT':									[ 'Window', 'N50GT', 'tablet' ],
		'N70':										[ 'Window', 'N70', 'tablet' ],
		'N90':										[ 'Window', 'N90', 'tablet' ],
		'M12':										[ 'Wopad', 'M12', 'tablet' ],
		'WM8650':									[ 'WonderMedia', 'WM8650', 'tablet' ],
		'MI-ONE':									[ 'Xiaomi', 'MI-ONE' ],
		'MI-ONE Plus':								[ 'Xiaomi', 'MI-ONE Plus' ],
		'mione plus':								[ 'Xiaomi', 'MI-ONE Plus' ],
		'MI-TWO':									[ 'Xiaomi', 'MI-TWO' ],
		'N6':										[ 'Yarvik', '210 Tablet', 'tablet' ],
		'yusun W702':								[ 'Yusun', 'W702' ],
		'Jaguar7':									[ 'ZiiLabs', 'Jaguar 7', 'tablet' ],
		'Ziss Ranger HD':							[ 'Ziss', 'Ranger HD' ],
		'V9':										[ 'ZTE', 'V9', 'tablet' ],
		'V55':										[ 'ZTE', 'Optik', 'tablet' ],
		'ZTE-T U880':								[ 'ZTE', 'Blade' ],
		'Blade':									[ 'ZTE', 'Blade' ],
		'Blade-V880':								[ 'ZTE', 'Blade' ],
		'Blade-opda':								[ 'ZTE', 'Blade' ],
		'ZTE-BLADE':								[ 'ZTE', 'Blade' ],
		'ZTE Blade':								[ 'ZTE', 'Blade' ],
		'San Francisco':							[ 'ZTE', 'Blade' ],
		'San Francisco for Orange':					[ 'ZTE', 'Blade' ],
		'X500':										[ 'ZTE', 'Score' ],
		'Skate':									[ 'ZTE', 'Skate' ],
		'ZTE-SKATE':								[ 'ZTE', 'Skate' ],
		'ZTE-V960':									[ 'ZTE', 'Skate' ],
		'ZTE-U V960':								[ 'ZTE', 'Skate' ],
		'Orange Monte Carlo':						[ 'ZTE', 'Skate' ],
		'ZTE Racer':								[ 'ZTE', 'Racer' ],
		'ZTE-RACER':								[ 'ZTE', 'Racer' ],
		'MTC 916':									[ 'ZTE', 'Racer' ],
		'Racer':									[ 'ZTE', 'Racer' ],
		'N860':										[ 'ZTE', 'Warp' ],
		'N880':										[ 'ZTE', 'Blade' ],
		'ZTE-T U802':								[ 'ZTE', 'T-U802' ],
		'ZTE-T U830':								[ 'ZTE', 'T-U830' ],
		'ZTE-T U880':								[ 'ZTE', 'T-U880' ],
		'ZTE-TU880':								[ 'ZTE', 'T-U880' ],	
		'ZTE-TU900':								[ 'ZTE', 'T-U900' ],	
		'ZTE-TU960s':								[ 'ZTE', 'T-U960' ],
		'ZTE-U V880':								[ 'ZTE', 'U-V880' ],
		'ZTE-U X850':								[ 'ZTE', 'U-X850' ],
		'ZTE-X876':									[ 'ZTE', 'U-X876' ],
		'ZTE-C R750':								[ 'ZTE', 'C-R750' ],
		'ZTE-C N600':								[ 'ZTE', 'C-N600' ],
		'ZTE-C N600+':								[ 'ZTE', 'C-N600' ],
		'ZTE-C N606':								[ 'ZTE', 'C-N606' ],
		'ZTE-C N760':								[ 'ZTE', 'C-N760' ],
		'ZTE-C N880':								[ 'ZTE', 'C-N880' ],
		'ZTE-C N880S':								[ 'ZTE', 'C-N880' ],
		'ZTE-C X920':								[ 'ZTE', 'C-X920' ],
		'ZTE GV821':								[ 'ZTE', 'G-V821' ],
		'E810':										[ 'ZTE', 'E810' ],
		'ZTE-Z990':									[ 'ZTE', 'Z990' ]
	};
	
	var BLACKBERRY_MODELS = {
		'9600':			'Bold',
		'9650':			'Bold',
		'9700':			'Bold',
		'9780':			'Bold',
		'9790':			'Bold',
		'9900':			'Bold',
		'9930':			'Bold',
		'8300':			'Curve',
		'8310':			'Curve',
		'8320':			'Curve',
		'8330':			'Curve',
		'8350i':		'Curve',
		'8520':			'Curve',
		'8530':			'Curve',
		'8900':			'Curve',
		'9220':			'Curve',
		'9300':			'Curve',
		'9330':			'Curve',
		'9350':			'Curve',
		'9360':			'Curve',
		'9370':			'Curve',
		'9380':			'Curve',
		'8100':			'Pearl',
		'8110':			'Pearl',
		'8120':			'Pearl',
		'8130':			'Pearl',
		'8220':			'Pearl',
		'8230':			'Pearl',
		'9100':			'Pearl',
		'9105':			'Pearl',
		'9530':			'Storm',
		'9550':			'Storm',
		'9670':			'Style',
		'9800':			'Torch',
		'9810':			'Torch',
		'9850':			'Torch',
		'9860':			'Torch',
		'9630':			'Tour',
		'9981':			'Porsche P'
	};

	
 	var Version = function() { this.initialize.apply(this, Array.prototype.slice.call(arguments)) };
	Version.prototype = {
		initialize: function(v) {
			this.original = v.value || null;
			this.alias = v.alias || null;
			this.details = v.details || null;
			this.builds = typeof v.builds != 'undefined' ? v.builds : true;

			this.major = 0;
			this.minor = 0;
			this.revision = '';
			this.build = '';
			this.type = '';
						
			var match;
			if (match = /([0-9]+)(?:\.([0-9]+))?(?:\.([0-9]+))?(?:\.([0-9]+))?(?:([ab])([0-9]+))?/.exec(this.original)) {
				if (typeof match[1] != 'undefined') {
					this.major = match[1];
				}

				if (typeof match[2] != 'undefined') {
					this.minor = match[2];
				}

				if (typeof match[3] != 'undefined') {
					this.revision = match[3];
				}

				if (typeof match[4] != 'undefined') {
					this.build = match[4];
				}

				if (typeof match[5] != 'undefined') {
					switch(match[5]) {
						case 'a':	this.type = 'alpha'; break;
						case 'b':	this.type = 'beta'; break;
					}

					if (typeof match[6] != 'undefined') {
						this.build = match[6];
					}
				}
			}
		},
		
		valueOf: function() {
			return parseFloat('' + this.major + '.' + this.minor);
		},
		
		toString: function() {
			if (this.alias)
				return this.alias;

			var version = '';

			if (this.major || this.minor) {
				var v = [];
				v.push(this.major);
				if (this.minor != '' && this.minor != null) v.push(this.minor);
				if (this.revision != '' && this.revision != null) v.push(this.revision);
				if (this.type == '' && this.build) v.push(this.build);
				if (this.details < 0) v.splice(this.details, 0 - this.details);
				if (this.details > 0) v.splice(this.details, v.length - this.details);
				
				if (!this.builds) {
					for (var i = 0; i < v.length; i++) {
						if (v[i] > 999) {
							v.splice(i, 1);
							i--;
						}					
					}
				}
				
				version = v.join('.');
			
				if (this.type != '') version += this.type[0] + (this.build ? this.build : '');
			}

			return version;
		}
	}
		
 	var Detected = function(ua) { this.initialize(ua) };
	Detected.prototype = {
		initialize: function(ua) {
			this.browser = {
				'stock':	true,
				'hidden':	false,
				'channel':	''
			};
				
			this.engine = {
			};
				
			this.os = {
			};
				
			this.device = {
				'type':		'desktop'
			};
			
			this.camouflage = false;
			
			this.detect(ua);


			this.Android = this.engine.name != 'Presto' && this.engine.name != 'Gecko' && this.os.name == 'Android' ? (typeof this.os.version != 'undefined' ? 0 + this.os.version : true): false;
			this.iOS = this.engine.name != 'Presto' && this.os.name == 'iOS' ? (typeof this.os.version != 'undefined' ? 0 + this.os.version : true): false;
			this.WindowsPhone = this.os.name == 'Windows Phone' ? (typeof this.os.version != 'undefined' ? 0 + this.os.version : true): false;
			this.BlackBerry = this.os.name == 'BlackBerry OS' || this.os.name == 'BlackBerry Tablet OS' ? (typeof this.os.version != 'undefined' ? 0 + this.os.version : true): false;
			this.Meego = this.os.name == 'Meego' ? (typeof this.os.version != 'undefined' ? 0 + this.os.version : true): false;

			this.Opera = this.engine.name == 'Presto' ? (typeof this.browser.version != 'undefined' ? 0 + this.browser.version : true): false;
			this.Firefox = this.engine.name == 'Gecko' ? (typeof this.browser.version != 'undefined' ? 0 + this.browser.version : true): false;
			this.Chrome = this.browser.name == 'Chrome' || this.browser.name == 'Chrome Frame' || this.browser.name == 'Chromium' ? (typeof this.browser.version != 'undefined' ? 0 + this.browser.version : true): false;

			this.desktop = this.device.type == 'desktop';
			this.tablet = this.device.type == 'tablet';
			this.mobile = this.device.type == 'mobile';
			this.proxy = this.device.type == 'proxy';
		},
		
		detect: function(ua) {

			/****************************************************
			 *		Unix
			 */
		
			if (ua.match('Unix')) {
				this.os.name = 'Unix';
			}
			
			/****************************************************
			 *		FreeBSD
			 */
		
			if (ua.match('FreeBSD')) {
				this.os.name = 'FreeBSD';
			}
			
			/****************************************************
			 *		OpenBSD
			 */
		
			if (ua.match('OpenBSD')) {
				this.os.name = 'OpenBSD';
			}
			
			/****************************************************
			 *		NetBSD
			 */
		
			if (ua.match('NetBSD')) {
				this.os.name = 'NetBSD';
			}
			
			/****************************************************
			 *		SunOS
			 */
		
			if (ua.match('SunOS')) {
				this.os.name = 'Solaris';
			}
			
			/****************************************************
			 *		Linux
			 */
		
			if (ua.match('Linux')) {
				this.os.name = 'Linux';

				if (ua.match('CentOS')) {
					this.os.name = 'CentOS';
					if (match = /CentOS\/[0-9\.\-]+el([0-9_]+)/.exec(ua)) {
						this.os.version = new Version({ value: match[1].replace(/_/g,'.') });
					}
				}

				if (ua.match('Debian')) {
					this.os.name = 'Debian';
				}
				
				if (ua.match('Fedora')) {
					this.os.name = 'Fedora';
					if (match = /Fedora\/[0-9\.\-]+fc([0-9]+)/.exec(ua)) {
						this.os.version = new Version({ value: match[1] });
					}
				}

				if (ua.match('Gentoo')) {
					this.os.name = 'Gentoo';
				}
				
				if (ua.match('Kubuntu')) {
					this.os.name = 'Kubuntu';
				}
				
				if (ua.match('Mandriva Linux')) {
					this.os.name = 'Mandriva';
					if (match = /Mandriva Linux\/[0-9\.\-]+mdv([0-9]+)/.exec(ua)) {
						this.os.version = new Version({ value: match[1] });
					}
				}

				if (ua.match('Mageia')) {
					this.os.name = 'Mageia';
					if (match = /Mageia\/[0-9\.\-]+mga([0-9]+)/.exec(ua)) {
						this.os.version = new Version({ value: match[1] });
					}
				}

				if (ua.match('Red Hat')) {
					this.os.name = 'Red Hat';
					if (match = /Red Hat[^\/]*\/[0-9\.\-]+el([0-9_]+)/.exec(ua)) {
						this.os.version = new Version({ value: match[1].replace(/_/g,'.') });
					}
				}

				if (ua.match('Slackware')) {
					this.os.name = 'Slackware';
				}
				
				if (ua.match('SUSE')) {
					this.os.name = 'SUSE';
				}
				
				if (ua.match('Turbolinux')) {
					this.os.name = 'Turbolinux';
				}
				
				if (ua.match('Ubuntu')) {
					this.os.name = 'Ubuntu';
					if (match = /Ubuntu\/([0-9.]*)/.exec(ua)) {
						this.os.version = new Version({ value: match[1] });
					}
				}
			}		

			/****************************************************
			 *		iOS
			 */
		
			if (ua.match('iPhone( Simulator)?;') || ua.match('iPad;') || ua.match('iPod;')) {
				this.os.name = 'iOS';
				this.os.version = new Version({ value: '1.0'});
									
				if (match = /OS (.*) like Mac OS X/.exec(ua)) {
					this.os.version = new Version({ value: match[1].replace(/_/g,'.') });
				}					
				
				/* 
					Sometimes Apple releases beta versions that still have the old version number, 
					but they do have an updated AppleWebKit version. Below are the first version of 
					iOS in which each version of AppleWebkit is shipped. If the reported version is
					lower than the version expected from the AppleWebKit version, it is an early beta.

				if (match = /AppleWebKit\/([0-9.]*)/.exec(ua)) {
					var build = parseVersion(match[1]);
					if (build >= 420.10) this.result.os.version = Math.max(this.result.os.version, 1.1)		// 1.1
					if (build >= 525.18) this.result.os.version = Math.max(this.result.os.version, 2.0)		// 2.0
					if (build >= 528.18) this.result.os.version = Math.max(this.result.os.version, 3.0)		// 3.0 - 3.1
					if (build >= 531.21) this.result.os.version = Math.max(this.result.os.version, 3.2)		// 3.2
					if (build >= 532.90) this.result.os.version = Math.max(this.result.os.version, 4.0)		// 4.0 - 4.1
					if (build >= 533.17) this.result.os.version = Math.max(this.result.os.version, 4.2)		// 4.2 - 4.3
					if (build >= 534.32) this.result.os.version = Math.max(this.result.os.version, 5.0)		// 5.0
				}
				*/
				
			
				if (ua.match('iPhone Simulator;')) {
					this.device.type = 'emulator';
				} else if (ua.match('iPhone;') || ua.match('iPod;')) {
					this.device.type = 'mobile';
					this.device.manufacturer = 'Apple';
					
					if (ua.match('iPhone;'))
						this.device.model = 'iPhone';
					else
						this.device.model = 'iPod Touch';
				} else {
					this.device.type = 'tablet';
					this.device.manufacturer = 'Apple';

					this.device.model = 'iPad';
				}
			}				
			
			/****************************************************
			 *		MacOS X
			 */
		
			else if (ua.match('Mac OS X')) {
				this.os.name = 'Mac OS X';
																			
				if (match = /Mac OS X (10[0-9\._]*)/.exec(ua)) {
				    this.os.version = new Version({ value: match[1].replace(/_/g,'.') });
				}					
			}

			/****************************************************
			 *		Windows
			 */
		
			if (ua.match('Windows')) {
				this.os.name = 'Windows';

				if (match = /Windows NT ([0-9]\.[0-9])/.exec(ua)) {
					this.os.version = parseVersion(match[1]);
					
					switch(match[1]) {
						case '6.2':		this.os.version = new Version({ value: match[1], alias: '8' }); break;
						case '6.1':		this.os.version = new Version({ value: match[1], alias: '7' }); break;
						case '6.0':		this.os.version = new Version({ value: match[1], alias: 'Vista' }); break;
						case '5.2':		this.os.version = new Version({ value: match[1], alias: 'Server 2003' }); break;
						case '5.1':		this.os.version = new Version({ value: match[1], alias: 'XP' }); break;
						case '5.0':		this.os.version = new Version({ value: match[1], alias: '2000' }); break;
						default:		this.os.version = new Version({ value: match[1], alias: 'NT ' + this.os.version });
					}
				}
				
				if (ua.match('Windows 95') || ua.match('Win95') || ua.match('Win 9x 4.00')) {
					this.os.version = new Version({ value: '4.0', alias: '95' });
				}

				if (ua.match('Windows 98') || ua.match('Win98') || ua.match('Win 9x 4.10')) {
					this.os.version = new Version({ value: '4.1', alias: '98' });
				}

				if (ua.match('Windows ME') || ua.match('WinME') || ua.match('Win 9x 4.90')) {
					this.os.version = new Version({ value: '4.9', alias: 'ME' });
				}

				if (ua.match('Windows XP') || ua.match('WinXP')) {
					this.os.name = new Version({ value: '5.1', alias: 'XP' });
				}

				if (ua.match('WP7')) {
					this.os.name = 'Windows Phone';
					this.os.version = new Version({ value: '7.0', details: 2 });
					this.device.type = 'mobile';
					this.browser.mode = 'desktop';
				}

				if (ua.match('Windows CE') || ua.match('WinCE') || ua.match('WindowsCE')) {
					if (ua.match(' IEMobile')) {
						this.os.name = 'Windows Mobile';

						if (ua.match(' IEMobile 8')) {
							this.os.version = new Version({ value: '6.5', details: 2 });
						}
	
						if (ua.match(' IEMobile 7')) {
							this.os.version = new Version({ value: '6.1', details: 2 });
						}
	
						if (ua.match(' IEMobile 6')) {
							this.os.version = new Version({ value: '6.0', details: 2 });
						}
					}
					else {
						this.os.name = 'Windows CE';
						
						if (match = /WindowsCEOS\/([0-9.]*)/.exec(ua)) {
							this.os.version = new Version({ value: match[1], details: 2 });
						}
						
						if (match = /Windows CE ([0-9.]*)/.exec(ua)) {
							this.os.version = new Version({ value: match[1], details: 2 });
						}
					}
										
					this.device.type = 'mobile';
				}

				if (ua.match('Windows Mobile')) {
					this.os.name = 'Windows Mobile';
				}
				
				if (ua.match('Windows Phone [0-9]')) {
					this.os.name = 'Windows Mobile';
					this.os.version = new Version({ value: ua.match(/Windows Phone ([0-9.]*)/)[1], details: 2 });
				}
				
				if (ua.match('Windows Phone OS')) {
					this.os.name = 'Windows Phone';
					this.os.version = new Version({ value: ua.match(/Windows Phone OS ([0-9.]*)/)[1], details: 2 });

					if (this.os.version < 7) {
						this.os.name = 'Windows Mobile';
					}

					if (match = /IEMobile\/[^;]+; ([^;]+); ([^;]+)[;|\)]/.exec(ua)) {
						this.device.manufacturer = match[1];
						this.device.model = match[2];
					}						

					this.device.type = 'mobile';
										
					var manufacturer = this.device.manufacturer;
					var model = cleanupModel(this.device.model);

					if (typeof WINDOWS_PHONE_MODELS[manufacturer] != 'undefined' && 
						typeof WINDOWS_PHONE_MODELS[manufacturer][model] != 'undefined') 
					{
						this.device.manufacturer = WINDOWS_PHONE_MODELS[manufacturer][model][0];
						this.device.model = WINDOWS_PHONE_MODELS[manufacturer][model][1];
					}
					
					if (manufacturer == 'Microsoft' && model == 'XDeviceEmulator') {
						this.device.manufacturer = null;
						this.device.model = null;
						this.device.type = 'emulator';
					}
				}
			}

			/****************************************************
			 *		Android
			 */
		
			if (ua.match('Android')) {
				this.os.name = 'Android';

				if (match = /Android(?: )?(?:AllPhone_)?(?:\/)?([0-9.]*)/.exec(ua)) {
					this.os.version = new Version({ value: match[1], details: 3 })
				}

				if (ua.match('Android Eclair')) {
					this.os.version = new Version({ value: '2.0', details: 3 });
				}

				this.device.type = 'mobile';
	
				if (this.os.version >= 3) {
					if (ua.match('Mobile'))
						this.device.type = 'mobile';
					else
						this.device.type = 'tablet';
				}

				if (match = /; ([^;]*[^;\s])\s+Build/.exec(ua)) {
				    this.device.model = match[1];
				}		
				
				else if (match = /[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; ([^;]*[^;\s]);\s+Build/.exec(ua)) {
				    this.device.model = match[1];
				}		
				
				else if (match = /\(([^;]+);U;Android\/[^;]+;[0-9]+\*[0-9]+;CTC\/2.0\)/.exec(ua)) {
				    this.device.model = match[1];
				}		
				
				else if (match = /;\s?([^;]+);\s?[0-9]+\*[0-9]+;\s?CTC\/2.0/.exec(ua)) {
				    this.device.model = match[1];
				}		
				
				else if (match = /Android [^;]+; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; )?([^)]+)\)/.exec(ua)) {
				    if (! ua.match(/[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?/)) {
				    	this.device.model = match[1];
					}
				}		
				
				if (this.device.model) {
					var model = cleanupModel(this.device.model);

					if (typeof ANDROID_MODELS[model] != 'undefined') {
						this.device.manufacturer = ANDROID_MODELS[model][0];
						this.device.model = ANDROID_MODELS[model][1];
						if (typeof ANDROID_MODELS[model][2] != 'undefined') this.device.type = ANDROID_MODELS[model][2];
					}

					if (model == 'Emulator' || model == 'x86 Emulator' || model == 'x86 VirtualBox') {
						this.device.manufacturer = null;
						this.device.model = null;
						this.device.type = 'emulator';
					}
				}
				
				if (ua.match('HP eStation'))	{ this.device.manufacturer = 'HP'; this.device.model = 'eStation'; this.device.type = 'tablet'; }
				if (ua.match('Pre\/1.0')) 		{ this.device.manufacturer = 'Palm'; this.device.model = 'Pre'; }
				if (ua.match('Pre\/1.1')) 		{ this.device.manufacturer = 'Palm'; this.device.model = 'Pre Plus'; }
				if (ua.match('Pre\/1.2')) 		{ this.device.manufacturer = 'Palm'; this.device.model = 'Pre 2'; }
				if (ua.match('Pre\/3.0')) 		{ this.device.manufacturer = 'HP'; this.device.model = 'Pre 3'; }
				if (ua.match('Pixi\/1.0')) 		{ this.device.manufacturer = 'Palm'; this.device.model = 'Pixi'; }
				if (ua.match('Pixi\/1.1')) 		{ this.device.manufacturer = 'Palm'; this.device.model = 'Pixi Plus'; }
				if (ua.match('P160UNA\/1.0')) 	{ this.device.manufacturer = 'HP'; this.device.model = 'Veer'; }
			}

			/****************************************************
			 *		Google TV
			 */
		
			if (ua.match('GoogleTV')) {
				this.os.name = 'Google TV';
				
				if (ua.match('Chrome/5.')) {
					this.os.version = new Version({ value: '1' });
				}

				if (ua.match('Chrome/11.')) {
					this.os.version = new Version({ value: '2' });
				}

				this.device.type = 'television';
			}

			/****************************************************
			 *		BlackBerry
			 */
		
			if (ua.match('BlackBerry')) {
				this.os.name = 'BlackBerry OS';
				
				if (!ua.match('Opera')) {
					if (match = /BlackBerry([0-9]*)\/([0-9.]*)/.exec(ua)) {
						this.device.model = match[1];
						this.os.version = new Version({ value: match[2], details: 2 });
					}
					
					if (match = /; BlackBerry ([0-9]*);/.exec(ua)) {
						this.device.model = match[1];
					}

					if (match = /Version\/([0-9.]*)/.exec(ua)) {
						this.os.version = new Version({ value: match[1], details: 2 });
					}

					if (typeof this.device.model != 'undefined') {
						if (typeof BLACKBERRY_MODELS[this.device.model] != 'undefined') {
							this.device.model = 'BlackBerry ' + BLACKBERRY_MODELS[this.device.model] + ' ' + this.device.model;
						} else {
							this.device.model = 'BlackBerry ' + this.device.model;
						}
					} else {
						this.device.model = 'BlackBerry';
					}
				} else {
					this.device.model = 'BlackBerry';
				}

				this.device.manufacturer = 'RIM';
				this.device.type = 'mobile';
			}
				
			/****************************************************
			 *		BlackBerry PlayBook
			 */
		
			if (ua.match('RIM Tablet OS')) {
				this.os.name = 'BlackBerry Tablet OS';
				this.os.version = new Version({ value: ua.match(/RIM Tablet OS ([0-9.]*)/)[1], details: 2 });

				this.device.manufacturer = 'RIM';
				this.device.model = 'BlackBerry PlayBook';
				this.device.type = 'tablet';
			}
				
			/****************************************************
			 *		WebOS
			 */
		
			if (ua.match('(?:web|hpw)OS')) {
				this.os.name = 'webOS';
				this.os.version = new Version({ value: ua.match(/(?:web|hpw)OS\/([0-9.]*)/)[1] });

				if (ua.match('tablet')) 
					this.device.type = 'tablet';
				else
					this.device.type = 'mobile';

				this.device.manufacturer = ua.match('hpwOS') ? 'HP' : 'Palm';
				if (ua.match('Pre\/1.0')) this.device.model = 'Pre';
				if (ua.match('Pre\/1.1')) this.device.model = 'Pre Plus';
				if (ua.match('Pre\/1.2')) this.device.model = 'Pre2';
				if (ua.match('Pre\/3.0')) this.device.model = 'Pre3';
				if (ua.match('Pixi\/1.0')) this.device.model = 'Pixi';
				if (ua.match('Pixi\/1.1')) this.device.model = 'Pixi Plus';
				if (ua.match('P160UNA\/1.0')) this.device.model = 'Veer';
				if (ua.match('TouchPad\/1.0')) this.device.model = 'TouchPad';
				
				if (ua.match('Emulator\/') || ua.match('Desktop\/')) {
					this.device.type = 'emulator';
					this.device.manufacturer = null;
					this.device.model = null;
				}
			}
				
			/****************************************************
			 *		S60
			 */
		
			if (ua.match('Symbian') || ua.match('Series[ ]?60') || ua.match('S60')) {
				this.os.name = 'Series60';
				
				if (ua.match('SymbianOS/9.1')  && !ua.match('Series60')) {
					this.os.version = new Version({ value: '3.0' });
				}
							
				if (match = /Series60\/([0-9.]*)/.exec(ua)) {
					this.os.version = new Version({ value: match[1] });
				}

				if (match = /Nokia([^\/;]+)[\/|;]/.exec(ua)) {
					this.device.manufacturer = 'Nokia';
					this.device.model = match[1];
				}

				if (match = /Symbian; U; ([^;]+); [a-z][a-z]\-[a-z][a-z]/i.exec(ua)) {
					this.device.manufacturer = 'Nokia';
					this.device.model = match[1];
				}

				if (match = /Samsung\/([^;]*);/.exec(ua)) {
					this.device.manufacturer = STRINGS_SAMSUNG;
					this.device.model = match[1];
				}

				this.device.type = 'mobile';
			}
				
			/****************************************************
			 *		S40
			 */
		
			if (ua.match('Series40')) {
				this.os.name = 'Series40';

				if (match = /Nokia([^\/]+)\//.exec(ua)) {
					this.device.manufacturer = 'Nokia';
					this.device.model = match[1];
				}

				this.device.type = 'mobile';
			}
			
			/****************************************************
			 *		MeeGo
			 */
		
			if (ua.match('MeeGo')) {
				this.os.name = 'MeeGo';
				this.device.type = 'mobile';

				if (match = /Nokia([^\)]+)\)/.exec(ua)) {
					this.device.manufacturer = 'Nokia';
					this.device.model = match[1];
				}
			}
			
			/****************************************************
			 *		Maemo
			 */
		
			if (ua.match('Maemo')) {
				this.os.name = 'Maemo';
				this.device.type = 'mobile';

				if (match = /(N[0-9]+)/.exec(ua)) {
					this.device.manufacturer = 'Nokia';
					this.device.model = match[1];
				}
			}
			
			/****************************************************
			 *		Tizen
			 */
		
			if (ua.match('Tizen')) {
				this.os.name = 'Tizen';

				if (match = /Tizen\/([0-9.]*)/.exec(ua)) {
					this.os.version = new Version({ value: match[1] });
				}

				this.device.type = 'mobile';

				if (match = /\(([^;]+); ([^\/]+)\//.exec(ua)) {
					if (match[1] != 'Linux') {
						this.device.manufacturer = match[1];
						this.device.model = match[2];
	
						if (typeof TIZEN_MODELS[this.device.manufacturer] != 'undefined' && 
							typeof TIZEN_MODELS[this.device.manufacturer][this.device.model] != 'undefined') 
						{
							var manufacturer = this.device.manufacturer;
							var model = cleanupModel(this.device.model);
							
							this.device.manufacturer = TIZEN_MODELS[manufacturer][model][0];
							this.device.model = TIZEN_MODELS[manufacturer][model][1];
						}
					}						
				}
			}
			
			/****************************************************
			 *		Bada
			 */
		
			if (ua.match('[b|B]ada')) {
				this.os.name = 'Bada';

				if (match = /[b|B]ada\/([0-9.]*)/.exec(ua)) {
					this.os.version = new Version({ value: match[1] });
				}

				this.device.type = 'mobile';

				if (match = /\(([^;]+); ([^\/]+)\//.exec(ua)) {
					this.device.manufacturer = match[1];
					this.device.model = cleanupModel(match[2]);
				}						

				if (typeof BADA_MODELS[this.device.manufacturer] != 'undefined' && 
					typeof BADA_MODELS[this.device.manufacturer][this.device.model] != 'undefined') 
				{
					var manufacturer = this.device.manufacturer;
					var model = cleanupModel(this.device.model);
					
					this.device.manufacturer = BADA_MODELS[manufacturer][model][0];
					this.device.model = BADA_MODELS[manufacturer][model][1];
				}
			}
			
			/****************************************************
			 *		Brew
			 */
		
			if (ua.match(/BREW/i) || ua.match('BMP; U')) {
				this.os.name = 'Brew';
				this.device.type = 'mobile';

				if (match = /BREW; U; ([0-9.]*)/i.exec(ua)) {
					this.os.version = new Version({ value: match[1] });
				}

				else if (match = /;BREW\/([0-9.]*)/i.exec(ua)) {
					this.os.version = new Version({ value: match[1] });
				}

				
				if (match = /\(([^;]+);U;REX\/[^;]+;BREW\/[^;]+;(?:.*;)?[0-9]+\*[0-9]+;CTC\/2.0\)/.exec(ua)) {
				    this.device.model = match[1];
				}

				if (this.device.model) {
					var model = cleanupModel(this.device.model);

					if (typeof BREW_MODELS[model] != 'undefined') {
						this.device.manufacturer = BREW_MODELS[model][0];
						this.device.model = BREW_MODELS[model][1];
					}
				}
			}			
			
			/****************************************************
			 *		MTK
			 */
		
			if (ua.match(/\(MTK;/)) {
				this.os.name = 'MTK';
				this.device.type = 'mobile';
			}			

			/****************************************************
			 *		CrOS
			 */
		
			if (ua.match('CrOS')) {
				this.os.name = 'Chrome OS';
				this.device.type = 'desktop';
			}			
			
			/****************************************************
			 *		Joli OS
			 */
		
			if (ua.match('Joli OS')) {
				this.os.name = 'Joli OS';
				this.device.type = 'desktop';

				if (match = /Joli OS\/([0-9.]*)/i.exec(ua)) {
					this.os.version = new Version({ value: match[1] });
				}
			}			
			
			/****************************************************
			 *		Haiku
			 */
		
			if (ua.match('Haiku')) {
				this.os.name = 'Haiku';
				this.device.type = 'desktop';
			}			
			
			/****************************************************
			 *		QNX
			 */
		
			if (ua.match('QNX')) {
				this.os.name = 'QNX';
				this.device.type = 'mobile';
			}			
			
			/****************************************************
			 *		OS/2 Warp
			 */
		
			if (ua.match('OS\/2; Warp')) {
				this.os.name = 'OS/2 Warp';
				this.device.type = 'desktop';

				if (match = /OS\/2; Warp ([0-9.]*)/i.exec(ua)) {
					this.os.version = new Version({ value: match[1] });
				}
			}			
			
			/****************************************************
			 *		Grid OS
			 */
		
			if (ua.match('Grid OS')) {
				this.os.name = 'Grid OS';
				this.device.type = 'tablet';

				if (match = /Grid OS ([0-9.]*)/i.exec(ua)) {
					this.os.version = new Version({ value: match[1] });
				}
			}			
			
			/****************************************************
			 *		AmigaOS
			 */
		
			if (ua.match(/AmigaOS/i)) {
				this.os.name = 'AmigaOS';
				this.device.type = 'desktop';

				if (match = /AmigaOS ([0-9.]*)/i.exec(ua)) {
					this.os.version = new Version({ value: match[1] });
				}

			}			
			
			/****************************************************
			 *		MorphOS
			 */
		
			if (ua.match(/MorphOS/i)) {
				this.os.name = 'MorphOS';
				this.device.type = 'desktop';

				if (match = /MorphOS ([0-9.]*)/i.exec(ua)) {
					this.os.version = new Version({ value: match[1] });
				}

			}			
			
			/****************************************************
			 *		Kindle
			 */
		
			if (ua.match('Kindle') && ! ua.match('Kindle_Fire')) {
				this.os.name = '';

				this.device.manufacturer = 'Amazon';
				this.device.model = 'Kindle';
				this.device.type = 'ereader';

				if (ua.match('Kindle\/2.0')) this.device.model = 'Kindle 2';
				if (ua.match('Kindle\/3.0')) this.device.model = 'Kindle 3 or later';
			}

			/****************************************************
			 *		NOOK
			 */
		
			if (ua.match('nook browser')) {
				this.os.name = 'Android';
				
				this.device.manufacturer = 'Barnes & Noble';
				this.device.model = 'NOOK';
				this.device.type = 'ereader';
			}
			
			/****************************************************
			 *		Bookeen
			 */
		
			if (ua.match('bookeen\/cybook')) {
				this.os.name = '';
				
				this.device.manufacturer = 'Bookeen';
				this.device.model = 'Cybook';
				this.device.type = 'ereader';
				
				if (ua.match('Orizon')) {
					this.device.model = 'Cybook Orizon';
				}			
			}

			/****************************************************
			 *		Sony Reader
			 */
		
			if (ua.match('EBRD1101')) {
				this.os.name = '';
				
				this.device.manufacturer = 'Sony';
				this.device.model = 'Reader';
				this.device.type = 'ereader';
			}
			
			/****************************************************
			 *		iRiver
			 */
		
			if (ua.match('Iriver ;')) {
				this.os.name = '';
				
				this.device.manufacturer = 'iRiver';
				this.device.model = 'Story';
				this.device.type = 'ereader';
				
				if (ua.match('EB07')) {
					this.device.model = 'Story HD EB07';
				}			
			}

			/****************************************************
			 *		Nintendo
			 */
		
			if (ua.match('Nintendo Wii')) {
				this.os.name = '';

				this.device.manufacturer = 'Nintendo';
				this.device.model = 'Wii';
				this.device.type = 'television';
			}
			
			if (ua.match('Nintendo DSi')) {
				this.os.name = '';

				this.device.manufacturer = 'Nintendo';
				this.device.model = 'DSi';
			}
			
			if (ua.match('Nintendo 3DS')) {
				this.os.name = '';

				this.device.manufacturer = 'Nintendo';
				this.device.model = '3DS';

				if (match = /Version\/([0-9.]*)/.exec(ua)) {
					this.os.version = new Version({ value: match[1] });
				}
			}

			/****************************************************
			 *		Sony Playstation
			 */
		
			if (ua.match('PlayStation Portable')) {
				this.os.name = '';

				this.device.manufacturer = 'Sony';
				this.device.model = 'Playstation Portable';
				this.device.type = 'mobile';
			}

			if (ua.match('PlayStation Vita')) {
				this.os.name = '';

				if (match = /PlayStation Vita ([0-9.]*)/.exec(ua)) {
					this.os.version = new Version({ value: match[1] });
				}

				this.device.manufacturer = 'Sony';
				this.device.model = 'PlayStation Vita';
				this.device.type = 'mobile';
			}

			if (ua.match(/PlayStation 3/i)) {
				this.os.name = '';

				if (match = /PLAYSTATION 3;? ([0-9.]*)/.exec(ua)) {
					this.os.version = new Version({ value: match[1] });
				}

				this.device.manufacturer = 'Sony';
				this.device.model = 'Playstation 3';
				this.device.type = 'television';
			}

			/****************************************************
			 *		Sharp AQUOS TV
			 */
		
			if (ua.match('AQUOSBrowser')) {
				this.device.manufacturer = STRINGS_SHARP;
				this.device.model = 'Aquos TV';
				this.device.type = 'television';
			}


			/****************************************************
			 *		Samsung Smart TV
			 */

			if (ua.match('SmartTV')) {
				this.os.name = '';
				this.device.manufacturer = STRINGS_SAMSUNG;
				this.device.model = 'Smart TV';
				this.device.type = 'television';
			}

			/****************************************************
			 *		Sony Internet TV
			 */

			if (ua.match('SonyDTV|SonyBDP|SonyCEBrowser')) {
				this.os.name = '';
				this.device.manufacturer = 'Sony';
				this.device.model = 'Internet TV';
				this.device.type = 'television';
			}

			/****************************************************
			 *		Philips Net TV
			 */

			if (ua.match('NETTV\/')) {
				this.os.name = '';
				this.device.manufacturer = 'Philips';
				this.device.model = 'Net TV';
				this.device.type = 'television';
			}
			
			/****************************************************
			 *		LG NetCast TV
			 */

			if (match = /LG NetCast\.(?:TV|Media)-([0-9]*)/.exec(ua)) {
				this.os.name = '';
				this.device.manufacturer = STRINGS_LG;
				this.device.model = 'NetCast TV ' + match[1];
				this.device.type = 'television';
			}
			
			/****************************************************
			 *		ADB
			 */

			if (match = /\(ADB; ([^\)]+)\)/.exec(ua)) {
				this.os.name = '';
				this.device.manufacturer = 'ADB';
				this.device.model = match[1].replace('ADB','') + ' IPTV receiver';
				this.device.type = 'television';
			}

			/****************************************************
			 *		MStar
			 */

			if (ua.match(/\( DL PVR;Mstar/)) {
				this.os.name = '';
				this.device.manufacturer = 'MStar';
				this.device.model = 'PVR';
				this.device.type = 'television';
			}

			/****************************************************
			 *		Detect type based on common identifiers
			 */

			if (ua.match('HbbTV')) {
				this.device.type = 'television';
			}

			if (ua.match('MIDP')) {
				this.device.type = 'mobile';
			}
			
			/****************************************************
			 *		Try to detect any devices based on common
			 *		locations of model ids
			 */

			if (!this.device.model && !this.device.manufacturer) {
				var candidates = [];
			
				if (!ua.match(/^(Mozilla|Opera)/)) if (match = /^(?:MQQBrowser\/[0-9\.]+\/)?([^\s]+)/.exec(ua)) {
					match[1] = match[1].replace(/_TD$/, '');
					match[1] = match[1].replace(/_CMCC$/, '');
					match[1] = match[1].replace(/[_ ]Mozilla$/, '');
					match[1] = match[1].replace(/ Linux$/, '');
					match[1] = match[1].replace(/ Opera$/, '');
					match[1] = match[1].replace(/\/[0-9].*$/, '');
					
					candidates.push(match[1]);
				}
			
				if (match = /[0-9]+x[0-9]+; ([^;]+)/.exec(ua)) {
					candidates.push(match[1]);
				}
			
				if (match = /[0-9]+X[0-9]+ ([^;\/\(\)]+)/.exec(ua)) {
					candidates.push(match[1]);
				}

				if (match = /Windows NT 5.1; ([^;]+); Windows Phone/.exec(ua)) {
					candidates.push(match[1]);
				}

				if (match = /\) PPC; (?:[0-9]+x[0-9]+; )?([^;\/\(\)]+)/.exec(ua)) {
					candidates.push(match[1]);
				}

				if (match = /Vodafone\/1.0\/([^\/]+)/.exec(ua)) {
					candidates.push(match[1]);
				}

				if (match = /\ ([^\s]+)$/.exec(ua)) {
					candidates.push(match[1]);
				}

				for (var i = 0; i < candidates.length; i++) {
					if (!this.device.model && !this.device.manufacturer) {
						var model = cleanupModel(candidates[i]);
						var result = false;
						
						if (this.os.name == 'Android') {
							if (typeof ANDROID_MODELS[model] != 'undefined') {
								this.device.manufacturer = ANDROID_MODELS[model][0];
								this.device.model = ANDROID_MODELS[model][1];
								if (typeof ANDROID_MODELS[model][2] != 'undefined') this.device.type = ANDROID_MODELS[model][2];
								
								result = true;
							}
						}
	
						if (!this.os.name || this.os.name == 'Windows' || this.os.name == 'Windows Mobile' || this.os.name == 'Windows CE') {
							if (typeof WINDOWS_MOBILE_MODELS[model] != 'undefined') {
								this.device.manufacturer = WINDOWS_MOBILE_MODELS[model][0];
								this.device.model = WINDOWS_MOBILE_MODELS[model][1];
								this.device.type = 'mobile';
								
								if (this.os.name != 'Windows Mobile') {
									this.os.name = 'Windows Mobile';
									this.os.version = null;
								}
	
								result = true;
							}
						}
					}
	
					if (!result) {
						if (match = /^GIONEE-([^\s]+)/.exec(candidates[i])) {
							this.device.manufacturer = 'Gionee';
							this.device.model = cleanupModel(match[1]);
							this.device.type = 'mobile';
						}
						
						if (match = /^HTC_?([^\/_]+)(?:\/|_|$)/.exec(candidates[i])) {
							this.device.manufacturer = STRINGS_HTC;
							this.device.model = cleanupModel(match[1]);
							this.device.type = 'mobile';
						}
						
						if (match = /^HUAWEI-([^\/]*)/.exec(candidates[i])) {
							this.device.manufacturer = STRINGS_HUAWEI;
							this.device.model = cleanupModel(match[1]);
							this.device.type = 'mobile';
						}
		
						if (match = /(?:^|\()LGE?(?:\/|-|_|\s)([^\s]*)/.exec(candidates[i])) {
							this.device.manufacturer = STRINGS_LG;
							this.device.model = cleanupModel(match[1]);
							this.device.type = 'mobile';
						}
		
						if (match = /^MOT-([^\/_]+)(?:\/|_|$)/.exec(candidates[i])) {
							this.device.manufacturer = STRINGS_MOTOROLA;
							this.device.model = cleanupModel(match[1]);
							this.device.type = 'mobile';
						}
		
						if (match = /^Motorola_([^\/_]+)(?:\/|_|$)/.exec(candidates[i])) {
							this.device.manufacturer = STRINGS_MOTOROLA;
							this.device.model = cleanupModel(match[1]);
							this.device.type = 'mobile';
						}
		
						if (match = /^Nokia([^\/]+)(?:\/|$)/.exec(candidates[i])) {
							this.device.manufacturer = 'Nokia';
							this.device.model = cleanupModel(match[1]);
							this.device.type = 'mobile';
							
							if (!this.os.name) {
								this.os.name = 'Series40';
							}
						}
		
						if (match = /^SonyEricsson([^\/_]+)(?:\/|_|$)/.exec(candidates[i])) {
							this.device.manufacturer = STRINGS_SONY_ERICSSON;
							this.device.model = cleanupModel(match[1]);
							this.device.type = 'mobile';
						}
		
						if (match = /^SAMSUNG-([^\/_]+)(?:\/|_|$)/.exec(candidates[i])) {
							this.device.manufacturer = STRINGS_SAMSUNG;
							this.device.model = cleanupModel(match[1]);
							this.device.type = 'mobile';
							
							if (this.os.name == 'Bada') {
								var manufacturer = 'SAMSUNG';
								var model = cleanupModel(this.device.model);
								
								if (typeof BADA_MODELS[manufacturer] != 'undefined' && 
									typeof BADA_MODELS[manufacturer][model] != 'undefined') 
								{
									this.device.manufacturer = BADA_MODELS[manufacturer][model][0];
									this.device.model = BADA_MODELS[manufacturer][model][1];
								}
							}
							
							else if (match = /Dolfin\/([0-9.]*)/.exec(candidates[i])) {
								var version = match[1];
								var manufacturer = 'SAMSUNG';
								var model = cleanupModel(this.device.model);
								
								if (typeof BADA_MODELS[manufacturer] != 'undefined' && 
									typeof BADA_MODELS[manufacturer][model] != 'undefined') 
								{
									this.device.manufacturer = BADA_MODELS[manufacturer][model][0];
									this.device.model = BADA_MODELS[manufacturer][model][1];
									
									this.os.name = 'Bada';
									
									switch(version) {
										case '2.0':		this.os.version = new Version({ value: '1.0' }); break;						
										case '2.2':		this.os.version = new Version({ value: '1.2' }); break;							
										case '3.0':		this.os.version = new Version({ value: '2.0' }); break;					
									}	
								}
		
								if (typeof TOUCHWIZ_MODELS[manufacturer] != 'undefined' && 
									typeof TOUCHWIZ_MODELS[manufacturer][model] != 'undefined') 
								{
									this.device.manufacturer = TOUCHWIZ_MODELS[manufacturer][model][0];
									this.device.model = TOUCHWIZ_MODELS[manufacturer][model][1];
									
									this.os.name = 'Touchwiz';
		
									switch(version) {
										case '1.0':		this.os.version = new Version({ value: '1.0' }); break;						
										case '1.5':		this.os.version = new Version({ value: '2.0' }); break;							
										case '2.0':		this.os.version = new Version({ value: '3.0' }); break;					
									}	
								}
							}
						}
					}
				}
			}
			

			if (match = /\((?:LG[-|\/])(.*) (?:Browser\/)?AppleWebkit/.exec(ua)) {
				this.device.manufacturer = STRINGS_LG;
				this.device.model = match[1];
				this.device.type = 'mobile';
			}

			if (match = /^Mozilla\/5.0 \((?:Nokia|NOKIA)(?:\s?)([^\)]+)\)UC AppleWebkit\(like Gecko\) Safari\/530$/.exec(ua)) {
				this.device.manufacturer = 'Nokia';
				this.device.model = match[1];
				this.device.type = 'mobile';
				
				this.os.name = 'Series60';
			}





			/****************************************************
			 *		Safari
			 */
		
			if (ua.match('Safari')) {
				if (this.os.name == 'iOS') {
					if (match = /Version\/[0-9\.]+ Mobile\/[A-Za-z0-9]+ Safari\/[0-9\.]+$/.exec(ua)) {
						this.browser.stock = true;
						this.browser.hidden = true;
		
						this.browser.name = 'Safari';
						this.browser.version = null;
					} else if (ua.match(/^Mozilla/)) {
						/* Probably some other browser of device disguising as iOS */
						this.device.manufacturer = null;
						this.device.model = null;
						
						this.os.name = null;
						this.os.version = null;
					}
				}
				
				if (this.os.name == 'Mac OS X' || this.os.name == 'Windows') {
					if (match = /Version\/([0-9\.]+) Safari\/[0-9\.]+$/.exec(ua)) {
						this.browser.stock = this.os.name == 'Mac OS X';
	
						this.browser.name = 'Safari';
						this.browser.version = new Version({ value: match[1] });

						if (ua.match(/AppleWebKit\/[0-9\.]+\+/)) {
							this.browser.name = 'WebKit Nightly Build';
							this.browser.version = null;
						}
					}		
				}
			}

			/****************************************************
			 *		Internet Explorer
			 */
		
			if (ua.match('MSIE')) {
				this.browser.name = 'Internet Explorer';
				
				if (ua.match('IEMobile') || ua.match('Windows CE') || ua.match('Windows Phone') || ua.match('WP7')) {
					this.browser.name = 'Mobile Internet Explorer';
				}

				if (match = /MSIE ([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
			}

			/****************************************************
			 *		Opera
			 */
		
			if (ua.match(/Opera/i)) {
				this.browser.stock = false;
				this.browser.name = 'Opera';

				if (match = /Opera[\/| ]([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}

				if (match = /Version\/([0-9.]*)/.exec(ua)) {
					if (parseFloat(match[1]) >= 10) {
						this.browser.version = new Version({ value: match[1] });
					} else {
						this.browser.version = null;
					}
				}
				
				if (this.browser.version && ua.match('Edition Labs')) {
					this.browser.version.type = 'alpha';
					this.browser.channel = 'Labs';
				}
				
				if (this.browser.version && ua.match('Edition Next')) {
					this.browser.version.type = 'alpha';
					this.browser.channel = 'Next';
				}
				
				if (ua.match('Opera Tablet')) {
					this.browser.name = 'Opera Mobile';
					this.device.type = 'tablet';
				}
				
				if (ua.match('Opera Mobi')) {
					this.browser.name = 'Opera Mobile';
					this.device.type = 'mobile';
				}
				
				if (ua.match('InettvBrowser') || ua.match('Opera-Tv')) {
					this.device.type = 'television';
				}
				
				if (match = /Opera Mini\/(?:att\/)?([0-9.]*)/.exec(ua)) {
					this.browser.name = 'Opera Mini';
					this.browser.version = new Version({ value: match[1], details: -1 });
					this.browser.mode = 'proxy';
					this.device.type = 'mobile';
				}
				
				if (this.browser.name == 'Opera' && this.device.type == 'mobile') {
					this.browser.name = 'Opera Mobile';
					
					if (ua.match(/BER/) || this.os.name == 'MTK') {
						this.browser.name = 'Opera Mini';
						this.browser.version = null;
					}
				}
			}

			/****************************************************
			 *		Firefox
			 */
		
			if (ua.match('Firefox')) {
				this.browser.stock = false;
				this.browser.name = 'Firefox';

				if (match = /Firefox\/([0-9ab.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
				
				if (this.browser.version.type == 'alpha') {
					this.browser.channel = 'Aurora';
				}

				if (this.browser.version.type == 'beta') {
					this.browser.channel = 'Beta';
				}
				
				if (ua.match('Fennec')) {
					this.device.type = 'mobile';
				}
				
				if (ua.match('Mobile; rv')) {
					this.device.type = 'mobile';
				}

				if (ua.match('Tablet; rv')) {
					this.device.type = 'tablet';
				}
				
				if (this.device.type == 'mobile' || this.device.type == 'tablet') {
					this.browser.name = 'Firefox Mobile';
				}
			}

			if (ua.match('Namoroka')) {
				this.browser.stock = false;
				this.browser.name = 'Firefox';

				if (match = /Namoroka\/([0-9ab.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
				
				this.browser.channel = 'Namoroka';
			}

			if (ua.match('Shiretoko')) {
				this.browser.stock = false;
				this.browser.name = 'Firefox';

				if (match = /Shiretoko\/([0-9ab.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
				
				this.browser.channel = 'Shiretoko';
			}
			
			if (ua.match('Minefield')) {
				this.browser.stock = false;
				this.browser.name = 'Firefox';

				if (match = /Minefield\/([0-9ab.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
				
				this.browser.channel = 'Minefield';
			}
			
			if (ua.match('Firebird')) {
				this.browser.stock = false;
				this.browser.name = 'Firebird';

				if (match = /Firebird\/([0-9ab.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
			}
			
			/****************************************************
			 *		SeaMonkey
			 */
		
			if (ua.match('SeaMonkey')) {
				this.browser.stock = false;
				this.browser.name = 'SeaMonkey';

				if (match = /SeaMonkey\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
			}

			/****************************************************
			 *		Netscape
			 */
		
			if (ua.match('Netscape')) {
				this.browser.stock = false;
				this.browser.name = 'Netscape';

				if (match = /Netscape[0-9]?\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
			}

			/****************************************************
			 *		Konqueror
			 */
		
			if (ua.match('[k|K]onqueror/')) {
				this.browser.name = 'Konqueror';

				if (match = /[k|K]onqueror\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
			}

			/****************************************************
			 *		Chrome
			 */
		
			if (match = /Chrome\/([0-9]{1,2}\.[0-9]\.[0-9]{3,4}\.[0-9]+)/.exec(ua)) {
				this.browser.stock = false;
				this.browser.name = 'Chrome';
				this.browser.version = new Version({ value: match[1] });

				switch (match[1].split('.', 3).join('.')) {
					case '0.2.149':
					case '0.3.154':
					case '0.4.154':
					case '1.0.154':
					case '2.0.172':
					case '3.0.195':
					case '4.0.249':
					case '4.1.249':
					case '5.0.375':
					case '6.0.472':
					case '7.0.517':
					case '8.0.552':
					case '9.0.597':
					case '10.0.648':
					case '11.0.696':
					case '12.0.742':
					case '13.0.782':
					case '14.0.835':
					case '15.0.874':
					case '16.0.912':
					case '17.0.963':
						if (this.browser.version.minor == 0) 
							this.browser.version.details = 1;
						else
							this.browser.version.details = 2;
							
						break;
					default:	
						this.browser.channel = 'Nightly';
						break;
				}
			}

			/****************************************************
			 *		Chrome Mobile
			 */
		
			if (ua.match('CrMo')) {
				this.browser.stock = false;
				this.browser.name = 'Chrome';

				if (match = /CrMo\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });

					switch (match[1].split('.', 3).join('.')) {
						case '16.0.912':
							this.browser.channel = 'Beta';
							break;
						default:	
							this.browser.channel = 'Nightly';
							break;
					}
				}
			}

			/****************************************************
			 *		Chrome Frame
			 */
		
			if (ua.match('chromeframe')) {
				this.browser.stock = false;
				this.browser.name = 'Chrome Frame';

				if (match = /chromeframe\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
			}

			/****************************************************
			 *		Chromium
			 */
		
			if (ua.match('Chromium')) {
				this.browser.stock = false;
				this.browser.channel = '';
				this.browser.name = 'Chromium';

				if (match = /Chromium\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
			}

			/****************************************************
			 *		BrowserNG
			 */
		
			if (ua.match('BrowserNG')) {
				this.browser.name = 'Nokia Browser';

				if (match = /BrowserNG\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1], details: 3, builds: false });
				}
			}

			/****************************************************
			 *		Nokia Browser
			 */
		
			if (ua.match('NokiaBrowser')) {
				this.browser.name = 'Nokia Browser';

				if (match = /NokiaBrowser\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1], details: 3 });
				}
			}
			
			/****************************************************
			 *		MicroB
			 */
		
			if (ua.match('Maemo[ |_]Browser')) {
				this.browser.name = 'MicroB';

				if (match = /Maemo[ |_]Browser[ |_]([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1], details: 3 });
				}
			}
			

			/****************************************************
			 *		NetFront
			 */
		
			if (ua.match('NetFront')) {
				this.browser.name = 'NetFront';
				this.device.type = 'mobile';

				if (match = /NetFront\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}

				if (ua.match('InettvBrowser')) {
					this.device.type = 'television';
				}
			}
			
			/****************************************************
			 *		Silk
			 */
		
			if (ua.match('Silk')) {
				if (!ua.match('PlayStation')) {
					this.browser.name = 'Silk';
	
					if (match = /Silk\/([0-9.]*)/.exec(ua)) {
						this.browser.version = new Version({ value: match[1], details: 2 });
					}
					
					this.device.manufacturer = 'Amazon';
					this.device.model = 'Kindle Fire';
					this.device.type = 'tablet';
					
					if (this.os.name != 'Android') {
						this.os.name = 'Android';
						this.os.version = null;
					}
				}
			}

			/****************************************************
			 *		Dolfin
			 */
		
			if (ua.match('Dolfin')) {
				this.browser.name = 'Dolfin';

				if (match = /Dolfin\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
			}


			/****************************************************
			 *		Iris
			 */
		
			if (ua.match('Iris')) {
				this.browser.name = 'Iris';

				this.device.type = 'mobile';
				this.device.model = null;
				this.device.manufacturer = null;

				this.os.name = 'Windows Mobile';
				this.os.version = null;

				if (match = /Iris\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
				
				if (match = / WM([0-9]) /.exec(ua)) {
					this.os.version = new Version({ value: match[1] + '.0' });
				} else {
					this.browser.mode = 'desktop';
				}
			}

			/****************************************************
			 *		Jasmine
			 */
		
			if (ua.match('Jasmine')) {
				this.browser.name = 'Jasmine';

				if (match = /Jasmine\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
			}

			/****************************************************
			 *		Boxee
			 */
		
			if (ua.match('Boxee')) {
				this.browser.name = 'Boxee';
				this.device.type = 'television';

				if (match = /Boxee\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
			}

			/****************************************************
			 *		Espial
			 */
		
			if (ua.match('Espial')) {
				this.browser.name = 'Espial';
				
				this.device.type = 'television';
				this.device.model = null;
				this.device.manufacturer = null;
				
				this.os.name = '';
				this.os.version = null;

				if (match = /Espial\/([0-9.]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}
			}

			/****************************************************
			 *		Obigo
			 */
		
			if (ua.match(/Obigo/i)) {
				this.browser.name = 'Obigo';

				if (match = /Obigo\/([0-9.]*)/i.exec(ua)) {
					this.browser.version = new Version({ value: match[1] });
				}

				if (match = /Obigo\/([A-Z])([0-9.]*)/i.exec(ua)) {
					this.browser.name = 'Obigo ' + match[1];
					this.browser.version = new Version({ value: match[2] });
				}
			}

			/****************************************************
			 *		UC Web
			 */
		
			if (ua.match('UCWEB')) {
				this.browser.stock = false;
				this.browser.name = 'UC Web';
				
				if (match = /UCWEB([0-9]*[.][0-9]*)/.exec(ua)) {
					this.browser.version = new Version({ value: match[1], details: 3 });
				}

				if (this.os.name == 'Linux') {
					this.os.name = '';
				}
				
				this.device.type = 'mobile';

				if (match = /^IUC \(U;\s?iOS ([0-9\.]+);/.exec(ua)) {
					this.os.name = 'iOS';
					this.os.version = new Version({ value: match[1] });
				}
				
				if (match = /^JUC \(Linux; U; ([0-9\.]+)[^;]*; [^;]+; ([^;]*[^\s])\s*; [0-9]+\*[0-9]+\)/.exec(ua)) {
					var model = cleanupModel(match[2]);
	
					this.os.name = 'Android';
					this.os.version = new Version({ value: match[1] });

					if (typeof ANDROID_MODELS[model] != 'undefined') {
						this.device.manufacturer = ANDROID_MODELS[model][0];
						this.device.model = ANDROID_MODELS[model][1];
						if (typeof ANDROID_MODELS[model][2] != 'undefined') this.device.type = ANDROID_MODELS[model][2];
					}					
				}
			}
			
			/****************************************************
			 *		NineSky
			 */
		
			if (match = /Ninesky-android-mobile(?:-cn)?\/([0-9.]*)/.exec(ua)) {
				this.browser.name = 'NineSky';
				this.browser.version = new Version({ value: match[1] });

				if (this.os.name != 'Android') {
					this.os.name = 'Android';
					this.os.version = null;
					
					this.device.manufacturer = null;
					this.device.model = null;
				}
			}

			/****************************************************
			 *		Skyfire
			 */
		
			if (match = /Skyfire\/([0-9.]*)/.exec(ua)) {
				this.browser.name = 'Skyfire';
				this.browser.version = new Version({ value: match[1] });

				this.device = 'mobile';

				this.os.name = 'Android';
				this.os.version = null;
			}
			
			/****************************************************
			 *		Dolphin HD
			 */
		
			if (match = /DolphinHDCN\/([0-9.]*)/.exec(ua)) {
				this.browser.name = 'Dolphin HD';
				this.browser.version = new Version({ value: match[1] });

				this.device = 'mobile';

				if (this.os.name != 'Android') {
					this.os.name = 'Android';
					this.os.version = null;
				}
			}	

			/****************************************************
			 *		QQ Browser
			 */
		
			if (match = /(M?QQBrowser)\/([0-9.]*)/.exec(ua)) {
				this.browser.name = 'QQ Browser';
				
				var version = match[2];
				if (version.match(/[0-9][0-9]/)) version = version[0] + '.' + version[1];
				
				this.browser.version = new Version({ value: version, details: 2 });
				this.browser.channel = ''
				
				if (!this.os.name && match[1] == 'QQBrowser') {
					this.os.name = 'Windows';
				}
			}	

			/****************************************************
			 *		iBrowser
			 */
		
			if (match = /(iBrowser)\/([0-9.]*)/.exec(ua)) {
				this.browser.name = 'iBrowser';
				
				var version = match[2];
				if (version.match(/[0-9][0-9]/)) version = version[0] + '.' + version[1];
				
				this.browser.version = new Version({ value: version, details: 2 });
				this.browser.channel = ''
			}	

			/****************************************************
			 *		Dolphin HD
			 */
		
			if (match = /Puffin\/([0-9.]*)/.exec(ua)) {
				this.browser.name = 'Puffin';
				this.browser.version = new Version({ value: match[1], details: 2 });

				this.device = 'mobile';

				if (this.os.name == 'Linux') {
					this.os.name = null;
					this.os.version = null;
				}
			}	

			/****************************************************
			 *		Others
			 */

			var browsers = [
				{ name: 'AdobeAIR', 			regexp: /AdobeAIR\/([0-9.]*)/ },
				{ name: 'Awesomium', 			regexp: /Awesomium\/([0-9.]*)/ },
				{ name: 'JavaFX', 				regexp: /JavaFX\/([0-9.]*)/ },
				{ name: 'Ekioh', 				regexp: /Ekioh\/([0-9.]*)/ },
				{ name: 'LuaKit',	 			regexp: /luakit/ },
				{ name: 'Titanium', 			regexp: /Titanium\/([0-9.]*)/ },
				{ name: 'OpenWebKitSharp',		regexp: /OpenWebKitSharp/ },
				{ name: 'Prism',	 			regexp: /Prism\/([0-9.]*)/ },
				{ name: 'Qt', 					regexp: /Qt\/([0-9.]*)/ },
				{ name: 'QtEmbedded', 			regexp: /QtEmbedded/ },
				{ name: 'QtEmbedded', 			regexp: /QtEmbedded.*Qt\/([0-9.]*)/ },
				{ name: 'UWebKit', 				regexp: /UWebKit\/([0-9.]*)/ },

				{ name: 'Google Earth', 		regexp: /Google Earth\/([0-9.]*)/ },
				{ name: 'EA Origin',			regexp: /Origin\/([0-9.]*)/ },
				{ name: 'SecondLife', 			regexp: /SecondLife\/([0-9.]*)/ },
				{ name: 'Valve Steam', 			regexp: /Valve Steam/ },

				{ name: 'Songbird', 			regexp: /Songbird\/([0-9.]*)/ },
				{ name: 'Thunderbird', 			regexp: /Thunderbird\/([0-9.]*)/ },

				{ name: 'Abrowser', 			regexp: /Abrowser\/([0-9.]*)/ },
				{ name: 'arora', 				regexp: /[Aa]rora\/([0-9.]*)/ },
				{ name: 'Baidu Browser', 		regexp: /M?BaiduBrowser\/([0-9.]*)/i },
				{ name: 'Camino', 				regexp: /Camino\/([0-9.]*)/ },
				{ name: 'Canure',				regexp: /Canure\/([0-9.]*)/, details: 3 },
				{ name: 'CometBird', 			regexp: /CometBird\/([0-9.]*)/ },
				{ name: 'Comodo Dragon', 		regexp: /Comodo_Dragon\/([0-9.]*)/, details: 2 },
				{ name: 'CoolNovo', 			regexp: /(?:CoolNovo|CoolNovoChromePlus)\/([0-9.]*)/, details: 3 },
				{ name: 'ChromePlus', 			regexp: /ChromePlus(?:\/([0-9.]*))?$/, details: 3 },
				{ name: 'Daedalus',				regexp: /Daedalus ([0-9.]*)/, details: 2 },
				{ name: 'Dooble', 				regexp: /Dooble\/([0-9.]*)/ },
				{ name: 'Epiphany', 			regexp: /Epiphany\/([0-9.]*)/ },
				{ name: 'FireWeb', 				regexp: /FireWeb\/([0-9.]*)/ },
				{ name: 'Flock', 				regexp: /Flock\/([0-9.]*)/, details: 3 },
				{ name:	'Galeon',				regexp: /Galeon\/([0-9.]*)/, details: 3 },
				{ name: 'Helium', 				regexp: /HeliumMobileBrowser\/([0-9.]*)/ },
				{ name: 'iCab', 				regexp: /iCab\/([0-9.]*)/ },
				{ name: 'Iceape', 				regexp: /Iceape\/([0-9.]*)/ },
				{ name: 'IceCat', 				regexp: /IceCat ([0-9.]*)/ },
				{ name: 'Iceweasel', 			regexp: /Iceweasel\/([0-9.]*)/ },
				{ name: 'InternetSurfboard', 	regexp: /InternetSurfboard\/([0-9.]*)/ },
				{ name: 'Iron', 				regexp: /Iron\/([0-9.]*)/, details: 2 },
				{ name: 'Jumanji',				regexp: /jumanji/ },
				{ name: 'Kazehakase',			regexp: /Kazehakase\/([0-9.]*)/ },
				{ name: 'KChrome',				regexp: /KChrome\/([0-9.]*)/, details: 3 },
				{ name: 'K-Meleon',				regexp: /K-Meleon\/([0-9.]*)/ },
				{ name: 'Lunascape', 			regexp: /Lunascape\/([0-9.]*)/, details: 3 },
				{ name: 'iLunascape', 			regexp: /iLunascape\/([0-9.]*)/, details: 3 },
				{ name: 'Maxthon', 				regexp: /Maxthon\/([0-9.]*)/, details: 3 },
				{ name: 'Midori', 				regexp: /Midori\/([0-9.]*)/ },
				{ name: 'MiniBrowser',			regexp: /MiniBr?owserM\/([0-9.]*)/ },
				{ name: 'MiniBrowser',			regexp: /MiniBrowserMobile\/([0-9.]*)/ },
				{ name: 'MixShark', 			regexp: /MixShark\/([0-9.]*)/ },
				{ name: 'NetFront LifeBrowser',	regexp: /NetFrontLifeBrowser\/([0-9.]*)/ },
				{ name: 'Netscape Navigator', 	regexp: /Navigator\/([0-9.]*)/, details: 3 },
				{ name:	'Odyssey',				regexp: /OWB\/([0-9.]*)/ },
				{ name: 'OmniWeb', 				regexp: /OmniWeb/ },
				{ name:	'Orca',					regexp: /Orca\/([0-9.]*)/ },
				{ name: 'Origyn',				regexp: /Origyn Web Browser/ },
				{ name: 'Palemoon', 			regexp: /Pale[mM]oon\/([0-9.]*)/ },
				{ name: 'Polaris',	 			regexp: /Polaris\/v?([0-9.]*)/i, details: 2 },
				{ name: 'QtWeb',				regexp: /QtWeb Internet Browser\/([0-9.]*)/ },
				{ name: 'QupZilla', 			regexp: /QupZilla\/([0-9.]*)/ },
				{ name: 'Roccat',	 			regexp: /Roccat\/([0-9]\.[0-9.]*)/ },
				{ name: 'Raven for Mac', 		regexp: /Raven for Mac\/([0-9.]*)/ },
				{ name: 'rekonq', 				regexp: /rekonq/ },
				{ name: 'RockMelt', 			regexp: /RockMelt\/([0-9.]*)/, details: 2 },
				{ name: 'Sleipnir', 			regexp: /Sleipnir\/([0-9.]*)/, details: 3 },
				{ name: 'Sogou Explorer', 		regexp: /SE 2.X MetaSr/ },
				{ name: 'Sputnik', 				regexp: /Sputnik ([0-9.]*)/i, details: 3 },
				{ name: 'Stainless',			regexp: /Stainless\/([0-9.]*)/ },
				{ name: 'SunChrome', 			regexp: /SunChrome\/([0-9.]*)/ },
				{ name: 'Surf', 				regexp: /Surf\/([0-9.]*)/ },
				{ name: 'Villanova', 			regexp: /Villanova\/([0-9.]*)/, details: 3 },
				{ name: 'WebPositive', 			regexp: /WebPositive/ },
				{ name: 'Wyzo', 				regexp: /Wyzo\/([0-9.]*)/, details: 3 },
				{ name: 'Zetakey',				regexp: /Zetakey Webkit\/([0-9.]*)/ }
			]

			for (var b = 0; b < browsers.length; b++) {
				if (match = browsers[b].regexp.exec(ua)) {
					this.browser.name = browsers[b].name;
					this.browser.channel = '';
					this.browser.stock = false;
					
					if (match[1]) {
						this.browser.version = new Version({ value: match[1], details: browsers[b].details || null }); 
					} else {
						this.browser.version = null;
					}
				}
			}





			/****************************************************
			 *		WebKit
			 */
	
			if (match = /WebKit\/([0-9.]*)/i.exec(ua)) {
				this.engine.name = 'Webkit';
				this.engine.version = new Version({ value: match[1] });
			}

			if (match = /Browser\/AppleWebKit([0-9.]*)/i.exec(ua)) {
				this.engine.name = 'Webkit';
				this.engine.version = new Version({ value: match[1] });
			}		

			/****************************************************
			 *		KHTML
			 */
		
			if (match = /KHTML\/([0-9.]*)/.exec(ua)) {
				this.engine.name = 'KHTML';
				this.engine.version = new Version({ value: match[1] });
			}

			/****************************************************
			 *		Gecko
			 */
		
			if (/Gecko/.exec(ua) && ! /like Gecko/i.exec(ua)) {
				this.engine.name = 'Gecko';
				
				if (match = /; rv:([^\)]+)\)/.exec(ua)) {
					this.engine.version = new Version({ value: match[1] });
				}
			}

			/****************************************************
			 *		Presto
			 */
		
			if (match = /Presto\/([0-9.]*)/.exec(ua)) {
				this.engine.name = 'Presto';
				this.engine.version = new Version({ value: match[1] });
			}

			/****************************************************
			 *		Trident
			 */
		
			if (match = /Trident\/([0-9.]*)/.exec(ua)) {
				this.engine.name = 'Trident';
				this.engine.version = new Version({ value: match[1] });
				
				if (this.browser.name == 'Internet Explorer') {
					if (parseVersion(this.engine.version) == 6 && parseFloat(this.browser.version) < 10) {
						this.browser.version = new Version({ value: '10.0' });
						this.browser.mode = 'compat';
					}

					if (parseVersion(this.engine.version) == 5 && parseFloat(this.browser.version) < 9) {
						this.browser.version = new Version({ value: '9.0' });
						this.browser.mode = 'compat';
					}

					if (parseVersion(this.engine.version) == 4 && parseFloat(this.browser.version) < 8) {
						this.browser.version = new Version({ value: '8.0' });
						this.browser.mode = 'compat';
					}
				}

				if (this.os.name == 'Windows Phone') {
					if (parseVersion(this.engine.version) == 5 && parseFloat(this.os.version) < 7.5) {
						this.os.version = new Version({ value: '7.5' });
					}
				}
			}
			
			
			/****************************************************
			 *		Camouflage
			 */
			
			if (match = /Mac OS X 10_6_3; ([^;]+); [a-z]{2}-(?:[a-z]{2})?\)/.exec(ua)) {
				this.browser.name = '';
				this.browser.version = null;
				this.browser.mode = 'desktop';
				
				this.os.name = 'Android';
				this.os.version = null;
			
				this.engine.name = 'WebKit';
				this.engine.version = null;

				this.device.model = match[1];
				this.device.type = 'mobile';

				var model = cleanupModel(this.device.model);
				if (typeof ANDROID_MODELS[model] != 'undefined') {
					this.device.manufacturer = ANDROID_MODELS[model][0];
					this.device.model = ANDROID_MODELS[model][1];
					if (typeof ANDROID_MODELS[model][2] != 'undefined') this.device.type = ANDROID_MODELS[model][2];
				}
			}
			
			if (match = /Linux Ventana; [a-z]{2}-[a-z]{2}; (.+) Build/.exec(ua)) {
				this.browser.name = '';
				this.browser.version = null;
				this.browser.mode = 'desktop';
				
				this.os.name = 'Android';
				this.os.version = null;
			
				this.engine.name = 'WebKit';
				this.engine.version = null;

				this.device.model = match[1];
				this.device.type = 'mobile';

				var model = cleanupModel(this.device.model);
				if (typeof ANDROID_MODELS[model] != 'undefined') {
					this.device.manufacturer = ANDROID_MODELS[model][0];
					this.device.model = ANDROID_MODELS[model][1];
					if (typeof ANDROID_MODELS[model][2] != 'undefined') this.device.type = ANDROID_MODELS[model][2];
				}
			}
			

			/****************************************************
			 *		Corrections
			 */
		
			if (this.os.name == 'Android' && this.browser.stock) {
				this.browser.hidden = true;
			}

			if (this.os.name == 'iOS' && this.browser.name == 'Opera Mini') {
				this.os.version = null;
			}	
			
			
			/****************************************************
			 *		Camouflage
			 */

			var camouflage = [
				'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/531.1 (KHTML, like Gecko) Version/5.0 Safari/531.1', 
				'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16', 
				'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Safari/530.17', 
				'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; en-us) AppleWebKit/525.18 (KHTML,like Gecko) Version/3.1.2 Safari/525.20.1', 
				'Mozilla/5.0 (iPad; U; CPU OS 5_0_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5',
				'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10'
				
			]
			
			for (var i = 0; i < camouflage.length; i++) {
				if (ua == camouflage[i]) {
					this.camouflage = true;			
				}
			}

		},
		
		toString: function() {
			var prefix = this.camouflage ? 'an unknown browser that imitates ' : '';
		
			var browser = '' + (this.browser.name ? this.browser.name + (this.browser.channel ? ' ' + this.browser.channel : '') + (this.browser.version ? ' ' + this.browser.version.toString() : '') : '');
			var os = '' + (this.os.name ? this.os.name + (this.os.version ? ' ' + this.os.version.toString() : '') : '');
			var device = '' + (typeof this.device.manufacturer != 'undefined' && this.device.manufacturer ? this.device.manufacturer + ' ' : '') + (typeof this.device.model != 'undefined' && this.device.model ? this.device.model : '');
			var engine = '' + (typeof this.engine.name != 'undefined' && this.engine.name ? this.engine.name : '') ;
		
			if (!device && !os && this.device.type == 'television') {
				device = 'television';
			}
		
			if (!device && this.device.type == 'emulator') {
				device = 'emulator';
			}
		
			if (browser && os && device) {
				return prefix + browser + ' on a ' + device + ' running ' + os;
			}
		
			else if (browser && !os && device) {
				return prefix + browser + ' on a ' + device;
			}
		
			else if (browser && os && !device) {
				return prefix + browser + ' on ' + os;
			}
		
			else if (!browser && os && device) {
				return prefix + 'a ' + device + ' running ' + os;
			}
		
			else if (browser && !os && !device) {
				return prefix + browser;
			}
		
			else if (!browser && !os && device) {
				return prefix + 'a ' + device;
			}
		
			else if (this.device.type == 'desktop' && os && engine != '' && !device) {
				return 'an unknown browser based on ' + engine + ' running on ' + os;
			}
		
			else if (this.browser.stock && os && !device) {
				return os;
			}
		
			else if (this.browser.stock && engine != '' && !device) {
				return 'an unknown browser based on ' + engine;
			}
		
			else {
				return 'an unknown browser';
			}
		}
	};

	function cleanupModel(s) {
		s = typeof s == 'undefined' ? '' : s;
	
		s = s.replace(/_TD$/, '');
		s = s.replace(/_CMCC$/, '');

		s = s.replace(/_/g, " ");
		s = s.replace(/\/[^/]+$/, "");
		s = s.replace(/\/[^/]+ Android\/.*/, "");

		s = s.replace(/^Android on /, '');
		s = s.replace(/^Full AOSP on /, '');
		s = s.replace(/^Full Android on /, '');
		s = s.replace(/^Full Cappuccino on /, '');
		s = s.replace(/^Full MIPS Android on /, '');
		s = s.replace(/^Full Android/, '');

		s = s.replace(/^SAMSUNG[ -]/i, '');
		s = s.replace(/^SonyEricsson/, '');
		s = s.replace(/^Acer /, '');
		s = s.replace(/^(LG)[ _\/]/, '$1-');
		s = s.replace(/^(HTC.*)\s(?:v|V)?[0-9.]+$/, '$1');
		s = s.replace(/^(HTC)[-\/]/, '$1 ');
		s = s.replace(/^(HTC)([A-Z][0-9][0-9][0-9])/, '$1 $2');
		s = s.replace(/^(Motorola[\s|-]|Moto|MOT-)/, '')
		s = s.replace(/-?(orange(-ls)?|vodafone|bouygues)$/i, '');
		s = s.replace(/http:\/\/.+$/i, '');

		s = s.replace(/^\s+|\s+$/g, "");

		return s;
	}
	
	function parseVersion(version) {
		version = version.toString();
		var components = version.split('.');
		var major = components.shift();
		return parseFloat(major + '.' + components.join(''));
	}


	return Detected;
})();	


