<?php

namespace Netim {
	$countryCodeToRegex = array(
		'AD' => 'AD|AND|andorr[ae]',
		'AE' => 'AE|ARE|UAE|united arab emirates|emirats arabes unis',
		'AF' => 'AF|AFG|afghanistan',
		'AG' => 'AG|ATG|antigua|barbuda|antigua (and|et) barbuda',
		'AI' => 'AI|AIA|anguilla',
		'AL' => 'AL|ALB|albani[ae]',
		'AM' => 'AM|armenia|armenie',
		'AO' => 'AO|AGO|angola',
		'AQ' => 'AQ|ATA|antarcti(ca|que)',
		'AR' => 'AR|ARG|argentin[ae]',
		'AS' => 'AS|ASM|american samoa|samoa americaines',
		'AT' => 'AT|AUT|austria|autriche',
		'AU' => 'AU|AUS|australi[ae]',
		'AW' => 'AW|ABW|aruba',
		'AX' => 'AX|ALA|aland islands|((les )?iles )?aland',
		'AZ' => 'AZ|AZE|azerbai(d?j)an',
		'BA' => 'BA|BIH|bosnia|bosnia and herzegovina|bosnie|bosnie herzegovine',
		'BB' => 'BB|BRB|barbad(os|e)',
		'BD' => 'BD|BGD|bangladesh',
		'BE' => 'BE|BEL|belgi(um|que)',
		'BF' => 'BF|BFA|burkina faso',
		'BG' => 'BG|BGR|bulgari[ae]',
		'BH' => 'BH|BHR|bahr[ae]in',
		'BI' => 'BI|BDI|burundi',
		'BJ' => 'BJ|BEN|benin',
		'BL' => 'BL|BLM|saint barthelemy',
		'BM' => 'BM|BMU|bermud(a|es)',
		'BN' => 'BN|BRN|brunei',
		'BO' => 'BO|BOL|bolivi[ea]',
		'BQ' => 'BQ|BES|bonaire sint eustatius and saba|bonaire saint eustache et saba',
		'BR' => 'BR|BRA|brazil|bresil',
		'BS' => 'BS|BHS|bahamas',
		'BT' => 'BT|BTN|bho?utan',
		'BV' => "BV|BVT|bouvet island|((l')?ile )?bouvet",
		'BW' => 'BW|BWA|botswana',
		'BY' => 'BY|BLR|belarus|bielorussie',
		'BZ' => 'BZ|BLZ|belize',
		'CA' => 'CA|CAN|canada',
		'CC'  => "CC|CCK|cocos (\(keeling\) |keeling )?island|((l')?iles )?cocos( \(keeling\)| keeling)?",
		'CD' => 'CD|COD|(the )?democratic republic (of )?(the )?congo|(la )?republique democratique (du )?congo',
		'CF' => 'CF|CAF|central african republic|republique centrafricaine',
		'CG' => 'CG|COG|congo',
		'CH' => 'CH|CHE|switzerland|suisse',
		'CI' => "CI|CIV|ivory coast|cote d'ivoire",
		'CK' => 'CK|COK|cook|cook islands|((les )?iles )?cook',
		'CL' => 'CL|CHL|chil[ei]',
		'CM' => 'CM|CMR|camero[ou]n',
		'CN' => 'CN|CHN|chin[ae]',
		'CO' => 'CO|COL|colombi[ae]',
		'CR' => 'CR|CRI|costa rica',
		'CU' => 'CU|CUB|cuba',
		'CV' => 'CV|CPV|cabo verde',
		'CW' => 'CW|CUW|curacao',
		'CX' => "CX|CXR|christmas island|((l')?ile )?christmas",
		'CY' => 'CY|CYP|cyprus|chypre',
		'CZ' => 'CZ|CZE|czechia|tchequie|republique tcheque',
		'DE' => 'DE|DEU|germany|allemagne',
		'DJ' => 'DJ|DJI|djibouti',
		'DK' => 'DK|DNK|denmark|danemark',
		'DM' => 'DM|DMA|domini(ca|que)',
		'DO' => 'DO|DOM|dominican republic|((la )?republique )?dominicaine',
		'DZ' => 'DZ|DZA|algeri[ae]',
		'EC' => 'EC|ECU|ecuador|equateur',
		'EE' => 'EE|EST|estoni[ae]',
		'EG' => 'EG|EGY|egypte?',
		'EH' => 'EH|ESH|western sahara|(le )?sahara occidental',
		'ER' => "ER|ERI|eritrea|(l')?erythree",
		'ES' => 'ES|ESP|spain|espagne',
		'ET' => 'ET|ETH|ethiopi[ae]',
		'FI' => 'FI|FIN|finlande?',
		'FJ' => 'FJ|FJI|fid?ji',
		'FK' => 'FK|FLK|(the )?falkland islands|(the )?malvinas|((les )?iles )?(falkland|malouines)',
		'FM' => 'FM|FSM|((federated )?states of )?micronesia|(etats (federes )?de )?micronesie',
		'FO' => 'FO|FRO|(the )?faroe islands|((les )?iles )?feroe',
		'FR' => 'FR|FRA|france',
		'GA' => 'GA|GAB|gabon',
		'GB' => "GB|GBR|(the )?united kingdom|great britain|northern ireland|(the )?united kingdom of great britain|(the )?united kingdom of great britain and northern ireland|great britain and northern ireland|(le )?royaume uni|(de )?grande bretagne|(et (d')?)?irlande du nord|(le )?royaume uni de grande bretagne|(le )?royaume uni de grande bretagne (et (d')?)?irlande du nord|grande bretagne (et (d')?)?irlande du nord",
		'GD' => 'GD|GRD|grenad[ae]',
		'GE' => 'GE|GEO|georgi[ae]',
		'GF' => 'GF|GUF|french guiana|(la )?guyane francaise',
		'GG' => 'GG|GGY|guerne?sey',
		'GH' => 'GH|GHA|ghana',
		'GI' => 'GI|GIB|gibraltar',
		'GL' => 'GL|GRL|greenland|groenland',
		'GM' => 'GM|GMB|gambi[ae]',
		'GN' => 'GN|GIN|guine[ae]',
		'GP' => 'GP|GLP|guadeloupe',
		'GQ' => 'GQ|GNQ|equatorial guinea|guinee equatoriale',
		'GR' => 'GR|GRC|gre?ece',
		'GS' => 'GS|SGS|(south georgia and the |the )?south sandwich islands|(georgie du sud et les |les )?iles sandwich du sud',
		'GT' => 'GT|GTM|guatemala',
		'GU' => 'GU|GUM|guam',
		'GW' => 'GW|GNB|guine[ae] bissau',
		'GY' => 'GY|GUY|guyana',
		'HK' => 'HK|HKG|hong kong',
		'HM' => "HM|HMD|(heard (island )?and mcdonald islands|heard island|mcdonald islands)|(l')?ile (heard|macdonald|heard et macdonald)",
		'HN' => 'HN|HND|honduras',
		'HR' => 'HR|HRV|croati[ea]',
		'HT' => 'HT|HTI|haiti',
		'HU' => 'HU|HUN|hungary|hongrie',
		'ID' => 'ID|IDN|indonesi[ae]',
		'IE' => 'IE|IRL|ireland|irlande',
		'IL' => 'IL|ISR|israel',
		'IM' => 'IM|IMN|isle of man|ile de man',
		'IN' => 'IN|IND|ind(ia|e)',
		'IO' => "IO|IOT|(the )?british indian (ocean )?territory|(le )?territoire britannique (de l'ocean )?indien",
		'IQ' => 'IQ|IRQ|ira[qk]',
		'IR' => "IR|IRN|iran|islamic republic( of)? iran|republique islamique (d')?iran",
		'IS' => "IS|ISL|iceland|(l')?islande",
		'IT' => "IT|ITA|italy|(l')?italie",
		'JE' => 'JE|JEY|jersey',
		'JM' => 'JM|JAM|jamaica|jamaique',
		'JO' => 'JO|JOR|jordan(ie)?',
		'JP' => 'JP|JPN|jap[ao]n',
		'KE' => 'KE|KEN|kenya',
		'KG' => 'KG|KGZ|kyrgyzstan|kirghizistan',
		'KH' => 'KH|KHM|cambodia|cambodge',
		'KI' => 'KI|KIR|kiribati',
		'KM' => 'KM|COM|(the|les)?comor[oe]s',
		'KN' => 'KN|KNA|saint kitts (and |et )?nevis',
		'KP' => "KP|PRK|(the )?democratic (people's )?republic (of )?korea|(la )?republique (populaire )?democratique (de )?coree",
		'KR' => 'KR|KOR|(the )?republic (of )?korea|(la )?republique (de )?coree',
		'KW' => 'KW|KWT|kuwait|koweit',
		'KY' => 'KY|CYM|(the )?cayman islands|((les )?iles )?caimans',
		'KZ' => 'KZ|KAZ|kazakhstan',
		'LA' => "LA|LAO|laos?|(the )?lao (people's )?(democratic )?republic|republique (democratique )?(populaire )?(d[eu] )?lao",
		'LB' => 'LB|LBN|lebanon|liban',
		'LC' => 'LC|LCA|saint lucia|sainte lucie',
		'LI' => 'LI|LIE|liechtenstein',
		'LK' => 'LK|LKA|sri lanka',
		'LR' => 'LR|LBR|liberia',
		'LS' => 'LS|LSO|lesotho',
		'LT' => 'LT|LTU|lithuani[ae]',
		'LU' => 'LU|LUX|luxembourg',
		'LV' => 'LV|LVA|latvia|lettonie',
		'LY' => 'LY|LBY|liby[ae]',
		'MA' => 'MA|MAR|morocco|maroc',
		'MC' => 'MC|MCO|monaco',
		'MD' => 'MD|MDA|((the )?republic of)?moldova|(republique de)?moldavie',
		'ME' => 'ME|MNE|montenegro',
		'MF' => 'MF|MAF|saint martin \(?(france|french|french( part| side)?)\)?|saint martin \(?(france|francaise?|(partie |cote )(francaise?|france))\)?',
		'MG' => 'MG|MDG|madagascar',
		'MH' => 'MH|MHL|marshall islands|(iles )?marshall',
		'MK' => 'MK|MKD|macedonia|macedoine',
		'ML' => 'ML|MLI|mali',
		'MM' => 'MM|MMR|myanmar',
		'MN' => 'MN|MNG|mongoli[ae]',
		'MO' => 'MO|MAC|macao',
		'MP' => 'MP|MNP|(the )?(northern )?mariana islands|((les )?iles )?mariannes ((du )?nord)?',
		'MQ' => 'MQ|MTQ|(la )?martinique',
		'MR' => 'MR|MRT|mauritani[ae]',
		'MS' => 'MS|MSR|montserrat',
		'MT' => 'MT|MLT|malt[ae]',
		'MU' => 'MU|MUS|(republic of )?mauritius|(republique de )?maurice',
		'MV' => 'MV|MDV|(les |the )?maldives',
		'MW' => 'MW|MWI|malawi',
		'MX' => 'MX|MEX|mexico|mexique',
		'MY' => 'MY|MYS|malaysia|(la )?malaisie',
		'MZ' => 'MZ|MOZ|(le )?mozambique',
		'NA' => 'NA|NAM|namibi[ae]',
		'NC' => 'NC|NCL|new caledonia|nouvelle caledonie',
		'NE' => 'NE|NER|(the |le )?niger',
		'NF' => "NF|NFK|norfolk island|((l')?ile )?norfolk",
		'NG' => 'NG|NGA|nigeria',
		'NI' => 'NI|NIC|(le )?nicaragua',
		'NL' => 'NL|NLD|(the )?netherlands|(les )?pays bas',
		'NO' => 'NO|NOR|norway|(la )?norvege',
		'NP' => 'NP|NPL|(le )?nepal',
		'NR' => 'NR|NRU|nauru',
		'NU' => 'NU|NIU|niue',
		'NZ' => 'NZ|NZL|new zealand|(la )?nouvelle zelande',
		'OM' => 'OM|OMN|oman',
		'PA' => 'PA|PAN|(le )?panama',
		'PE' => 'PE|PER|peru|(le )?perou',
		'PF' => 'PF|PYF|french polynesia|(la )?polynesie francaise',
		'PG' => 'PG|PNG|papua new guinea|(la )?papouasie nouvelle guinee',
		'PH' => 'PH|PHL|(the |les )?philippines',
		'PK' => 'PK|PAK|(le )?pakistan',
		'PL' => 'PL|POL|poland|(la )?pologne',
		'PM' => 'PM|SPM|saint pierre (et |and )?miquelon',
		'PN' => 'PN|PCN|pitcairn',
		'PR' => 'PR|PRI|p(ue|o)rto rico',
		'PS' => 'PS|PSE|(state of )?palestine|(etat de )?palestine',
		'PT' => 'PT|PRT|(le )?portugal',
		'PW' => 'PW|PLW|palau|(les )?palaos',
		'PY' => 'PY|PRY|(le )?paraguay',
		'QA' => 'QA|QAT|(le )?qatar',
		'RE' => 'RE|REU|(la )?reunion',
		'RO' => 'RO|ROU|romania|(la )?roumanie',
		'RS' => 'RS|SRB|serbia|(la )?serbie',
		'RU' => 'RU|RUS|(the )?russian federation|(la federation de )?russie',
		'RW' => 'RW|RWA|(le )?rwanda',
		'SA' => "SA|SAU|saudi arabia|(l')?arabie saoudite",
		'SB' => 'SB|SLB|solomon islands|(iles )?salomon',
		'SC' => 'SC|SYC|(les )?seychelles',
		'SD' => 'SD|SDN|(the )?sudan|(le )?soudan',
		'SE' => 'SE|SWE|sweden|(la )?suede',
		'SG' => 'SG|SGP|singapou?re?',
		'SH' => 'SH|SHN|saint helena|sainte helene|ascension|tristan da cunha|sainte? helen[ae] ascension (and |et )?tristan da cunha',
		'SI' => 'SI|SVN|sloveni[ae]',
		'SJ' => "SJ|SJM|svalbard (and |et l'ile )jan mayen?",
		'SK' => 'SK|SVK|slovakia|(la )?slovaquie',
		'SL' => 'SL|SLE|(la )?sierra leone',
		'SM' => 'SM|SMR|san marino|saint marin',
		'SN' => 'SN|SEN|(le )?senegal',
		'SO' => 'SO|SOM|(la )?somali[ae]',
		'SR' => 'SR|SUR|(le )?suriname',
		'SS' => 'SS|SSD|south sudan|(le )?soudan du sud',
		'ST' => 'ST|STP|sao tome (et |and )?principe',
		'SV' => 'SV|SLV|(el )?salvador',
		'SX' => 'SX|SXM|sint maarten \(?(dutch( part| side)?)\)?|saint martin \(?(pays bas?|(partie |cote )neerlandaise?)\)?',
		'SY' => 'SY|SYR|syrian arab republic|(la )?republique (arabe )?syrienne',
		'SZ' => 'SZ|SWZ|(le )?swaziland',
		'TC' => 'TC|TCA|(the )?turks (and )?caicos islands|((les )?iles )?turks (et )?caicos',
		'TD' => 'TD|TCD|(le )?t?chad',
		'TF' => 'TF|ATF|(the )?french southern territories|(les )?terres australes francaises',
		'TG' => 'TG|TGO|(le )?togo',
		'TH' => 'TH|THA|(la )?thailande?',
		'TJ' => 'TJ|TJK|(le )?tad?jikistan',
		'TK' => 'TK|TKL|(les )?tokelau',
		'TL' => 'TL|TLS|(le )?timor leste',
		'TM' => 'TM|TKM|(le )?turkmenistan',
		'TN' => 'TN|TUN|(la )?tunisi[ae]',
		'TO' => 'TO|TON|(les )?tonga',
		'TR' => 'TR|TUR|turkey|(la )?turquie',
		'TT' => 'TT|TTO|trinidad (and )?tobago|(la )?trinite (et )?tobago',
		'TV' => 'TV|TUV|(les )?tuvalu',
		'TW' => 'TW|TWN|taiwan|taiwan \(province of china\)|taiwan \(province de chine\)',
		'TZ' => 'TZ|TZA|tanzani[ae]|united republic of tanzania|republique unie de tanzanie',
		'UA' => "UA|UKR|(l')?ukraine",
		'UG' => "UG|UGA|(l')?o?uganda",
		'UM' => 'UM|UMI|(the )?united states minor outlying islands|(les )?iles mineures eloignees des etats unis',
		'US' => "US|USA|(the )?united states (of )?america|(les )?etats unis (d')amerique",
		'UY' => "UY|URY|(l')?uruguay",
		'UZ' => "UZ|UZB|(l')?o?uzbekistan",
		'VA' => 'VA|VAT|(the )?holy see|(le )?saint siege',
		'VC' => 'VC|VCT|saint vincent (and |et )?(the |les )?grenadines',
		'VE' => 'VE|VEN|venezuela|bolivarian republic (of )?venezuela|republique bolivarienne (du )?venezuela',
		'VG' => 'VG|VGB|virgin islands \(?british\)?|((les )?iles )?vierges britanniques',
		'VI' => 'VI|VIR|virgin islands \(?u\.?s\.?a?\.?\)?|((les )?iles )?vierges (des )?(etats unis|\(?u\.?s\.?a?\.?\)?)',
		'VN' => 'VN|VNM|(le )?viet nam',
		'VU' => 'VU|VUT|(le )?vanuatu',
		'WF' => 'WF|WLF|wallis (and |et )?futuna',
		'WS' => 'WS|WSM|(le )?samoa',
		'YE' => 'YE|YEM|(le )?yemen',
		'YT' => 'YT|MYT|mayotte',
		'ZA' => "ZA|ZAF|south africa|(l')?afrique (du )?sud",
		'ZM' => 'ZM|ZMB|(la )?zambi[ae]',
		'ZW' => 'ZW|ZWE|(le )?zimbabwe'
	);

	$countryCodeToCountry = array(
		'AD' => array('en' => 'Andorra', 'fr' => 'Andorre'),
		'AE' => array('en' => 'United Arab Emirates', 'fr' => 'Émirats arabes unis'),
		'AF' => array('en' => 'Afghanistan', 'fr' => 'Afghanistan'),
		'AG' => array('en' => 'Antigua and Barbuda', 'fr' => 'Antigua-et-Barbuda'),
		'AI' => array('en' => 'Anguilla', 'fr' => 'Anguilla'),
		'AL' => array('en' => 'Albania', 'fr' => 'Albanie'),
		'AM' => array('en' => 'Armenia', 'fr' => 'Arménie'),
		'AO' => array('en' => 'Angola', 'fr' => 'Angola'),
		'AQ' => array('en' => 'Antarctica', 'fr' => 'Antarctique'),
		'AR' => array('en' => 'Argentina', 'fr' => 'Argentine'),
		'AS' => array('en' => 'American Samoa', 'fr' => 'Samoa Américaines'),
		'AT' => array('en' => 'Austria', 'fr' => 'Autriche'),
		'AU' => array('en' => 'Australia', 'fr' => 'Australie'),
		'AW' => array('en' => 'Aruba', 'fr' => 'Aruba'),
		'AX' => array('en' => 'Åland Islands', 'fr' => 'les Îles Åland'),
		'AZ' => array('en' => 'Azerbaijan', 'fr' => 'Azerbaidjan'),
		'BA' => array('en' => 'Bosnia and Herzegovina', 'fr' => 'Bosnie-Herzégovine'),
		'BB' => array('en' => 'Barbados', 'fr' => 'Barbade'),
		'BD' => array('en' => 'Bangladesh', 'fr' => 'Bangladesh'),
		'BE' => array('en' => 'Belgium', 'fr' => 'Belgique'),
		'BF' => array('en' => 'Burkina Faso', 'fr' => 'Burkina Faso'),
		'BG' => array('en' => 'Bulgaria', 'fr' => 'Bulgarie'),
		'BH' => array('en' => 'Bahrain', 'fr' => 'Bahreïn'),
		'BI' => array('en' => 'Burundi', 'fr' => 'Burundi'),
		'BJ' => array('en' => 'Benin', 'fr' => 'Bénin'),
		'BL' => array('en' => 'Saint Barthélemy', 'fr' => 'Saint-Barthélemy'),
		'BM' => array('en' => 'Bermuda', 'fr' => 'Bermudes'),
		'BN' => array('en' => 'Brunei Darussalam', 'fr' => 'Brunéi Darussalam'),
		'BO' => array('en' => 'Bolivia', 'fr' => 'Bolivie'),
		'BQ' => array('en' => 'Bonaire, Sint Eustatius and Saba', 'fr' => 'Bonaire, Saint-Eustache et Saba'),
		'BR' => array('en' => 'Brazil', 'fr' => 'Brésil'),
		'BS' => array('en' => 'Bahamas', 'fr' => 'Bahamas'),
		'BT' => array('en' => 'Bhutan', 'fr' => 'Bhoutan'),
		'BV' => array('en' => 'Bouvet Island', 'fr' => "L'île Bouvet"),
		'BW' => array('en' => 'Botswana', 'fr' => 'Botswana'),
		'BY' => array('en' => 'Belarus', 'fr' => 'Bélarus'),
		'BZ' => array('en' => 'Belize', 'fr' => 'Bélize'),
		'CA' => array('en' => 'Canada', 'fr' => 'Canada'),
		'CC' => array('en' => 'Cocos (Keeling) Island', 'fr' => 'Îles Cocos (Keeling)'),
		'CD' => array('en' => 'the Democratic Republic of the Congo', 'fr' => 'la République démocratique du Congo'),
		'CF' => array('en' => 'Central African Republic', 'fr' => 'République centrafricaine'),
		'CG' => array('en' => 'Congo', 'fr' => 'Congo'),
		'CH' => array('en' => 'Switzerland', 'fr' => 'Suisse'),
		'CI' => array('en' => "Côte d'Ivoire", 'fr' => "Côte d'Ivoire"),
		'CK' => array('en' => 'Cook Islands', 'fr' => 'Les Îles Cook'),
		'CL' => array('en' => 'Chile', 'fr' => 'Chili'),
		'CM' => array('en' => 'Cameroon', 'fr' => 'Cameroun'),
		'CN' => array('en' => 'China', 'fr' => 'Chine'),
		'CO' => array('en' => 'Colombia', 'fr' => 'Colombie'),
		'CR' => array('en' => 'Costa Rica', 'fr' => 'Costa Rica'),
		'CU' => array('en' => 'Cuba', 'fr' => 'Cuba'),
		'CV' => array('en' => 'Cabo Verde', 'fr' => 'Cabo Verde'),
		'CW' => array('en' => 'Curaçao', 'fr' => 'Curaçao'),
		'CX' => array('en' => 'Christmas Island', 'fr' => "L'île Christmas"),
		'CY' => array('en' => 'Cyprus', 'fr' => 'Chypre'),
		'CZ' => array('en' => 'Czechia', 'fr' => 'Tchéquie'),
		'DE' => array('en' => 'Germany', 'fr' => 'Allemagne'),
		'DJ' => array('en' => 'Djibouti', 'fr' => 'Djibouti'),
		'DK' => array('en' => 'Denmark', 'fr' => 'Danemark'),
		'DM' => array('en' => 'Dominica', 'fr' => 'Dominique'),
		'DO' => array('en' => 'Dominican Republic', 'fr' => 'République dominicaine'),
		'DZ' => array('en' => 'Algeria', 'fr' => 'Algérie'),
		'EC' => array('en' => 'Ecuador', 'fr' => 'Equateur'),
		'EE' => array('en' => 'Estonia', 'fr' => 'Estonie'),
		'EG' => array('en' => 'Egypt', 'fr' => 'Égypte'),
		'EH' => array('en' => 'Western Sahara', 'fr' => 'Sahara occidental'),
		'ER' => array('en' => 'Eritrea', 'fr' => 'Érythrée'),
		'ES' => array('en' => 'Spain', 'fr' => 'Espagne'),
		'ET' => array('en' => 'Ethiopia', 'fr' => 'Éthiopie'),
		'FI' => array('en' => 'Finland', 'fr' => 'Finlande'),
		'FJ' => array('en' => 'Fiji', 'fr' => 'Fidji'),
		'FK' => array('en' => 'Falkland Islands', 'fr' => 'Les îles Falkland'),
		'FM' => array('en' => 'Micronesia', 'fr' => 'Micronésie'),
		'FO' => array('en' => 'Faroe Islands', 'fr' => 'Les îles Féroé'),
		'FR' => array('en' => 'France', 'fr' => 'France'),
		'GA' => array('en' => 'Gabon', 'fr' => 'Gabon'),
		'GB' => array('en' => 'United Kingdom of Great Britain and Northern Ireland', 'fr' => "Royaume-Uni de Grande-Bretagne et d'Irlande du Nord"),
		'GD' => array('en' => 'Grenada', 'fr' => 'Grenade'),
		'GE' => array('en' => 'Georgia', 'fr' => 'Géorgie'),
		'GF' => array('en' => 'French Guiana', 'fr' => 'Guyane française'),
		'GG' => array('en' => 'Guernsey', 'fr' => 'Guernesey'),
		'GH' => array('en' => 'Ghana', 'fr' => 'Ghana'),
		'GI' => array('en' => 'Gibraltar', 'fr' => 'Gibraltar'),
		'GL' => array('en' => 'Greenland', 'fr' => 'groenland'),
		'GM' => array('en' => 'Gambia', 'fr' => 'Gambie'),
		'GN' => array('en' => 'Guinea', 'fr' => 'Guinée'),
		'GP' => array('en' => 'Guadeloupe', 'fr' => 'Guadeloupe'),
		'GQ' => array('en' => 'Equatorial Guinea', 'fr' => 'Guinée équatoriale'),
		'GR' => array('en' => 'Greece', 'fr' => 'Grèce'),
		'GS' => array('en' => 'South Georgia and the South Sandwich Islands', 'fr' => 'Géorgie du Sud-et-les îles Sandwich du Sud'),
		'GT' => array('en' => 'Guatemala', 'fr' => 'Guatemala'),
		'GU' => array('en' => 'Guam', 'fr' => 'Guam'),
		'GW' => array('en' => 'Guinea-Bissau', 'fr' => 'Guinée-Bissau'),
		'GY' => array('en' => 'Guyana', 'fr' => 'Guyana'),
		'HK' => array('en' => 'Hong Kong', 'fr' => 'Hong Kong'),
		'HM' => array('en' => 'Heard Island and McDonald Islands', 'fr' => "L'Île Heard-et-MacDonald"),
		'HN' => array('en' => 'Honduras', 'fr' => 'Honduras'),
		'HR' => array('en' => 'Croatia', 'fr' => 'Croatie'),
		'HT' => array('en' => 'Haiti', 'fr' => 'Haïti'),
		'HU' => array('en' => 'hungary', 'fr' => 'hongrie'),
		'ID' => array('en' => 'Indonesia', 'fr' => 'Indonésie'),
		'IE' => array('en' => 'Ireland', 'fr' => 'Irlande'),
		'IL' => array('en' => 'Israel', 'fr' => 'Israël'),
		'IM' => array('en' => 'Isle of Man', 'fr' => 'Île de Man'),
		'IN' => array('en' => 'India', 'fr' => 'Inde'),
		'IO' => array('en' => 'British Indian Ocean Territory', 'fr' => "Le Territoire britannique de l'océan Indien"),
		'IQ' => array('en' => 'Iraq', 'fr' => 'Irak'),
		'IR' => array('en' => 'Iran', 'fr' => 'Iran'),
		'IS' => array('en' => 'Iceland', 'fr' => 'Islande'),
		'IT' => array('en' => 'Italy', 'fr' => 'Italie'),
		'JE' => array('en' => 'Jersey', 'fr' => 'Jersey'),
		'JM' => array('en' => 'Jamaica', 'fr' => 'Jamaïque'),
		'JO' => array('en' => 'Jordan', 'fr' => 'Jordanie'),
		'JP' => array('en' => 'Japan', 'fr' => 'Japon'),
		'KE' => array('en' => 'Kenya', 'fr' => 'Kenya'),
		'KG' => array('en' => 'Kyrgyzstan', 'fr' => 'Kirghizistan'),
		'KH' => array('en' => 'Cambodia', 'fr' => 'Cambodge'),
		'KI' => array('en' => 'Kiribati', 'fr' => 'Kiribati'),
		'KM' => array('en' => 'Comoros', 'fr' => 'Comores'),
		'KN' => array('en' => 'Saint Kitts and Nevis', 'fr' => 'Saint-Kitts-et-Nevis'),
		'KP' => array('en' => "The Democratic People's Republic of Korea", 'fr' => 'La République populaire démocratique de Corée'),
		'KR' => array('en' => 'The Republic of Korea', 'fr' => 'La République de Corée'),
		'KW' => array('en' => 'Kuwait', 'fr' => 'Koweit'),
		'KY' => array('en' => 'Cayman Islands', 'fr' => 'Les Îles Caïmans'),
		'KZ' => array('en' => 'Kazakhstan', 'fr' => 'Kazakhstan'),
		'LA' => array('en' => "Lao People's Democratic Republic", 'fr' => 'République démocratique populaire de Lao'),
		'LB' => array('en' => 'Lebanon', 'fr' => 'Liban'),
		'LC' => array('en' => 'Saint Lucia', 'fr' => 'Sainte-Lucie'),
		'LI' => array('en' => 'Liechtenstein', 'fr' => 'Liechtenstein'),
		'LK' => array('en' => 'Sri Lanka', 'fr' => 'Sri Lanka'),
		'LR' => array('en' => 'Liberia', 'fr' => 'Libéria'),
		'LS' => array('en' => 'Lesotho', 'fr' => 'Lesotho'),
		'LT' => array('en' => 'Lithuania', 'fr' => 'Lithuanie'),
		'LU' => array('en' => 'Luxembourg', 'fr' => 'Luxembourg'),
		'LV' => array('en' => 'Latvia', 'fr' => 'Lettonie'),
		'LY' => array('en' => 'Libya', 'fr' => 'Libye'),
		'MA' => array('en' => 'Morocco', 'fr' => 'Maroc'),
		'MC' => array('en' => 'Monaco', 'fr' => 'Monaco'),
		'MD' => array('en' => 'Moldova', 'fr' => 'Moldavie'),
		'ME' => array('en' => 'Montenegro', 'fr' => 'Monténégro'),
		'MF' => array('en' => 'Saint Martin (French Part)', 'fr' => 'Saint-Martin (partie française)'),
		'MG' => array('en' => 'Madagascar', 'fr' => 'Madagascar'),
		'MH' => array('en' => 'Marshall Islands', 'fr' => 'Îles Marshall'),
		'MK' => array('en' => 'Macedonia', 'fr' => 'Macédoine'),
		'ML' => array('en' => 'Mali', 'fr' => 'Mali'),
		'MM' => array('en' => 'Myanmar', 'fr' => 'Myanmar'),
		'MN' => array('en' => 'Mongolia', 'fr' => 'Mongolie'),
		'MO' => array('en' => 'Macao', 'fr' => 'Macao'),
		'MP' => array('en' => 'Northern Mariana Islands', 'fr' => 'Îles Mariannes du Nord'),
		'MQ' => array('en' => 'Martinique', 'fr' => 'Martinique'),
		'MR' => array('en' => 'Mauritania', 'fr' => 'Mauritanie'),
		'MS' => array('en' => 'Montserrat', 'fr' => 'Montserrat'),
		'MT' => array('en' => 'Malta', 'fr' => 'Malte'),
		'MU' => array('en' => 'Mauritius', 'fr' => 'Maurice'),
		'MV' => array('en' => 'Maldives', 'fr' => 'Maldives'),
		'MW' => array('en' => 'Malawi', 'fr' => 'Malawi'),
		'MX' => array('en' => 'Mexico', 'fr' => 'Mexique'),
		'MY' => array('en' => 'Malaysia', 'fr' => 'Malaisie'),
		'MZ' => array('en' => 'Mozambique', 'fr' => 'Mozambique'),
		'NA' => array('en' => 'namibia', 'fr' => 'namibie'),
		'NC' => array('en' => 'New Caledonia', 'fr' => 'Nouvelle-Calédonie'),
		'NE' => array('en' => 'Niger', 'fr' => 'Niger'),
		'NF' => array('en' => 'Norfolk Island', 'fr' => "Île Norfolk"),
		'NG' => array('en' => 'Nigeria', 'fr' => 'Nigéria'),
		'NI' => array('en' => 'Nicaragua', 'fr' => 'Nicaragua'),
		'NL' => array('en' => 'Netherlands', 'fr' => 'Pays-Bas'),
		'NO' => array('en' => 'Norway', 'fr' => 'Norvège'),
		'NP' => array('en' => 'Nepal', 'fr' => 'Népal'),
		'NR' => array('en' => 'Nauru', 'fr' => 'Nauru'),
		'NU' => array('en' => 'Niue', 'fr' => 'Niue'),
		'NZ' => array('en' => 'New Zealand', 'fr' => 'Nouvelle-Zélande'),
		'OM' => array('en' => 'Oman', 'fr' => 'Oman'),
		'PA' => array('en' => 'Panama', 'fr' => 'Panama'),
		'PE' => array('en' => 'Peru', 'fr' => 'Pérou'),
		'PF' => array('en' => 'French Polynesia', 'fr' => 'Polynésie française'),
		'PG' => array('en' => 'Papua New Guinea', 'fr' => 'Papouasie-Nouvelle-Guinée'),
		'PH' => array('en' => 'Philippines', 'fr' => 'Philippines'),
		'PK' => array('en' => 'Pakistan', 'fr' => 'Pakistan'),
		'PL' => array('en' => 'Poland', 'fr' => 'Pologne'),
		'PM' => array('en' => 'Saint Pierre and Miquelon', 'fr' => 'Saint-Pierre-et-Miquelon'),
		'PN' => array('en' => 'Pitcairn', 'fr' => 'Pitcairn'),
		'PR' => array('en' => 'Puerto Rico', 'fr' => 'Porto Rico'),
		'PS' => array('en' => 'Palestine', 'fr' => 'Palestine'),
		'PT' => array('en' => 'Portugal', 'fr' => 'Portugal'),
		'PW' => array('en' => 'Palau', 'fr' => 'Palaos'),
		'PY' => array('en' => 'Paraguay', 'fr' => 'Paraguay'),
		'QA' => array('en' => 'Qatar', 'fr' => 'Qatar'),
		'RE' => array('en' => 'Réunion', 'fr' => 'Réunion'),
		'RO' => array('en' => 'Romania', 'fr' => 'Roumanie'),
		'RS' => array('en' => 'Serbia', 'fr' => 'Serbie'),
		'RU' => array('en' => 'Russian Federation', 'fr' => 'Russie'),
		'RW' => array('en' => 'Rwanda', 'fr' => 'Rwanda'),
		'SA' => array('en' => 'Saudi Arabia', 'fr' => 'Arabie saoudite'),
		'SB' => array('en' => 'Solomon Islands', 'fr' => 'Îles Salomon'),
		'SC' => array('en' => 'Seychelles', 'fr' => 'Seychelles'),
		'SD' => array('en' => 'Sudan', 'fr' => 'Soudan'),
		'SE' => array('en' => 'Sweden', 'fr' => 'Suède'),
		'SG' => array('en' => 'Singapore', 'fr' => 'Singapour'),
		'SH' => array('en' => 'Saint Helena Ascension and Tristan da Cunha', 'fr' => 'Sainte-Héléne Ascension et Tristan da Cunha'),
		'SI' => array('en' => 'Slovenia', 'fr' => 'Slovénie'),
		'SJ' => array('en' => 'Svalbard and Jan Mayen', 'fr' => "Svalbard et l'Île Jan Mayen"),
		'SK' => array('en' => 'Slovakia', 'fr' => 'Slovaquie'),
		'SL' => array('en' => 'Sierra Leone', 'fr' => 'Sierra Leone'),
		'SM' => array('en' => 'San Marino', 'fr' => 'Saint-Marin'),
		'SN' => array('en' => 'Senegal', 'fr' => 'Sénégal'),
		'SO' => array('en' => 'Somalia', 'fr' => 'Somalie'),
		'SR' => array('en' => 'Suriname', 'fr' => 'Suriname'),
		'SS' => array('en' => 'South Sudan', 'fr' => 'Soudan du Sud'),
		'ST' => array('en' => 'Sao Tome and Principe', 'fr' => 'Sao Tomé-et-Principe'),
		'SV' => array('en' => 'El Salvador', 'fr' => 'Salvador'),
		'SX' => array('en' => 'Sint Maarten (Dutch part)', 'fr' => 'Saint-Martin (partie néerlandaise)'),
		'SY' => array('en' => 'Syrian Arab Republic', 'fr' => 'République arabe syrienne'),
		'SZ' => array('en' => 'Swaziland', 'fr' => 'Swaziland'),
		'TC' => array('en' => 'Turks and Caicos Islands', 'fr' => 'Ïles Turks-et-Caïcos'),
		'TD' => array('en' => 'Chad', 'fr' => 'Tchad'),
		'TF' => array('en' => 'French Southern Territories', 'fr' => 'Terres australes françaises'),
		'TG' => array('en' => 'Togo', 'fr' => 'Togo'),
		'TH' => array('en' => 'Thailand', 'fr' => 'Thaïlande'),
		'TJ' => array('en' => 'Tajikistan', 'fr' => 'Tadjikistan'),
		'TK' => array('en' => 'Tokelau', 'fr' => 'Tokelau'),
		'TL' => array('en' => 'Timor-Leste', 'fr' => 'Timor-Leste'),
		'TM' => array('en' => 'Turkmenistan', 'fr' => 'Turkménistan'),
		'TN' => array('en' => 'Tunisia', 'fr' => 'Tunisie'),
		'TO' => array('en' => 'Tonga', 'fr' => 'Tonga'),
		'TR' => array('en' => 'Turkey', 'fr' => 'Turquie'),
		'TT' => array('en' => 'Trinidad and Tobago', 'fr' => 'Trinité-et-Tobago'),
		'TV' => array('en' => 'Tuvalu', 'fr' => 'Tuvalu'),
		'TW' => array('en' => 'Taiwan', 'fr' => 'Taiwan'),
		'TZ' => array('en' => 'Tanzania', 'fr' => 'Tanzanie'),
		'UA' => array('en' => 'Ukraine', 'fr' => 'Ukraine'),
		'UG' => array('en' => 'Uganda', 'fr' => 'Ouganda'),
		'UM' => array('en' => 'United States Minor Outlying Islands', 'fr' => 'Îles mineures éloignées des États-Unis'),
		'US' => array('en' => 'United States of America', 'fr' => "États-Unis d'Amérique"),
		'UY' => array('en' => 'Uruguay', 'fr' => 'Uruguay'),
		'UZ' => array('en' => 'Uzbekistan', 'fr' => 'Ouzbékistan'),
		'VA' => array('en' => 'Holy See', 'fr' => 'Saint-Siège'),
		'VC' => array('en' => 'Saint Vincent and the Grenadines', 'fr' => 'Saint-Vincent-et-les-Grenadines'),
		'VE' => array('en' => 'Venezuela', 'fr' => 'Venezuela'),
		'VG' => array('en' => 'Virgin Islands (British)', 'fr' => 'Îles Vierges britanniques'),
		'VI' => array('en' => 'Virgin Islands (U.S.)', 'fr' => 'Îles Vierges des États-Unis'),
		'VN' => array('en' => 'Viet Nam', 'fr' => 'Viet Nam'),
		'VU' => array('en' => 'Vanuatu', 'fr' => 'Vanuatu'),
		'WF' => array('en' => 'Wallis and Futuna', 'fr' => 'Wallis-et-Futuna'),
		'WS' => array('en' => 'Samoa', 'fr' => 'Samoa'),
		'YE' => array('en' => 'Yemen', 'fr' => 'Yémen'),
		'YT' => array('en' => 'Mayotte', 'fr' => 'Mayotte'),
		'ZA' => array('en' => 'South Africa', 'fr' => 'Afrique du Sud'),
		'ZM' => array('en' => 'Zambia', 'fr' => 'Zambie'),
		'ZW' => array('en' => 'Zimbabwe', 'fr' => 'Zimbabwe')
	);

	//List of country phone codes
	$countryPhoneCode = array(
		"AC" => 247, "AD" => 376, "AE" => 971, "AF" => 93, "AG" => 1268, "AI" => 1264, "AL" => 355, "AM" => 374, "AN" => 599, "AO" => 244, "AQ" => 672, "AR" => 54, "AS" => 1684,
		"AT" => 43, "AU" => 61, "AW" => 297, "AZ" => 994, "BA" => 387, "BB" => 1246, "BD" => 880, "BE" => 32, "BF" => 226, "BG" => 359, "BH" => 973, "BI" => 257, "BJ" => 229,
		"BM" => 1441, "BN" => 673, "BO" => 591, "BR" => 55, "BS" => 1242, "BT" => 975, "BV" => 0, "BW" => 267, "BY" => 375, "BZ" => 501, "CA" => 1, "CC" => 61, "CD" => 243, "CF" => 236,
		"CG" => 242, "CH" => 41, "CI" => 225, "CK" => 682, "CL" => 56, "CM" => 237, "CN" => 86, "CO" => 57, "CR" => 506, "CU" => 53, "CV" => 238, "CX" => 61, "CY" => 357, "CZ" => 420,
		"DE" => 49, "DJ" => 253, "DK" => 45, "DM" => 1767, "DO" => 1, "DZ" => 213, "EC" => 593, "EE" => 372, "EG" => 20, "EH" => 212, "ER" => 291, "ES" => 34, "ET" => 251, "FI" => 358,
		"FJ" => 679, "FK" => 500, "FM" => 691, "FO" => 298, "FR" => 33, "GA" => 241, "GB" => 44, "GD" => 1, "GE" => 995, "GF" => 594, "GG" => 44, "GH" => 233, "GI" => 350,
		"GL" => 299, "GM" => 220, "GN" => 224, "GP" => 590, "GQ" => 240, "GR" => 30, "GS" => 0, "GT" => 502, "GU" => 1671, "GW" => 245, "GY" => 592, "HK" => 852, "HM" => 0,
		"HN" => 504, "HR" => 385, "HT" => 509, "HU" => 36, "ID" => 62, "IE" => 353, "IL" => 972, "IM" => 44, "IN" => 91, "IO" => 246, "IQ" => 964, "IR" => 98, "IS" => 354,
		"IT" => 39, "JE" => 44, "JM" => 1, "JO" => 962, "JP" => 81, "KE" => 254, "KG" => 996, "KH" => 855, "KI" => 686, "KM" => 269, "KN" => 1869, "KP" => 850, "KR" => 82, "KW" => 965,
		"KY" => 1345, "KZ" => 7, "LA" => 856, "LB" => 961, "LC" => 1758, "LI" => 423, "LK" => 94, "LR" => 231, "LS" => 266, "LT" => 370, "LU" => 352, "LV" => 371, "LY" => 218, "MA" => 212,
		"MC" => 377, "MD" => 373, "MG" => 261, "MH" => 692, "MK" => 389, "ML" => 223, "MM" => 95, "MN" => 976, "MO" => 853, "MP" => 1670, "MQ" => 596, "MR" => 222, "MS" => 1664, "MT" => 356,
		"MU" => 230, "MV" => 960, "MW" => 265, "MX" => 52, "MY" => 60, "MZ" => 258, "NA" => 264, "NC" => 687, "NE" => 227, "NF" => 672, "NG" => 234, "NI" => 505, "NL" => 31, "NO" => 47,
		"NP" => 977, "NR" => 674, "NU" => 683, "NZ" => 64, "OM" => 968, "PA" => 507, "PE" => 51, "PF" => 689, "PG" => 675, "PH" => 63, "PK" => 92, "PL" => 48, "PM" => 508, "PN" => 64,
		"PR" => 1, "PS" => 970, "PT" => 351, "PW" => 680, "PY" => 595, "QA" => 974, "RE" => 262, "RO" => 40, "RS" => 381, "RU" => 7, "RW" => 250, "SA" => 966, "SB" => 677, "SC" => 248,
		"SD" => 249, "SE" => 46, "SG" => 65, "SH" => 290, "SI" => 386, "SJ" => 47, "SK" => 421, "SL" => 232, "SM" => 378, "SN" => 221, "SO" => 252, "SR" => 597, "ST" => 239, "SV" => 503, "SX" => 1721,
		"SY" => 963, "SZ" => 268, "TC" => 1649, "TD" => 235, "TF" => 0, "TG" => 228, "TH" => 66, "TJ" => 992, "TK" => 690, "TM" => 993, "TN" => 216, "TO" => 676, "TR" => 90, "TT" => 1868,
		"TV" => 688, "TW" => 886, "TZ" => 255, "UA" => 380, "UG" => 256, "UM" => 0, "US" => 1, "UY" => 598, "UZ" => 998, "VA" => 379, "VC" => 1784, "VE" => 58, "VG" => 1284, "VI" => 1340, "VN" => 84,
		"VU" => 678, "WF" => 681, "WS" => 685, "YE" => 967, "YT" => 269, "ZA" => 27, "ZM" => 260, "ZW" => 263
	);

	//List of state code

	$stateCodeToRegex['AU'] = array(
		'NSW' => 'NSW|new south wales', 'VIC' => 'VIC|victoria', 'QLD' => 'QLD|queensland', 'ACT' => 'ACT|australian capital territory', 'NT' => 'NT|northern territory',
		'TAS' => 'TAS|tasmania', 'WA'  => 'WA|western australia', 'SA'  => 'SA|south australia'
	);

	$stateCodeToState['AU'] = array(
		'NSW' => 'new south wales', 'VIC' => 'victoria', 'QLD' => 'queensland', 'ACT' => 'australian capital territory', 'NT' => 'northern territory',
		'TAS' => 'tasmania', 'WA'  => 'western australia', 'SA'  => 'south australia'
	);

	$stateCodeToRegex['BR'] = array(
		"AC" => "AC|acre", "AL" => "AL|alagoas", "AM" => "AM|amazonas", "AP" => "AP|amapa", "BA" => "BA|bahia", "CE" => "CE|ceara", "DF" => "DF|distrito federal",
		"ES" => "ES|espirito santo", "GO" => "GO|goias", "MA" => "MA|maranhao", "MG" => "MG|minas gerais", "MS" => "MS|mato grosso( do)? sul", "MT" => "MT|mato grosso",
		"PA" => "PA|para", "PB" => "PB|paraiba", "PE" => "PE|pernambuco", "PI" => "PI|piaui", "PR" => "PR|parana", "RJ" => "RJ|rio (de )?janeiro", "RN" => "RN|rio grande (do )?norte",
		"RO" => "RO|rondonia", "RR" => "RR|roraima", "RS" => "RS|rio grande( do)? sul", "SC" => "SC|santa catarina", "SE" => "SE|sergipe", "SP" => "SP|sao paulo",
		"TO" => "TO|tocantins"
	);

	$stateCodeToState['BR'] = array(
		"AC" => ["en" => "acre","pt" => "acre"], "AL" => ["en" => "alagoas","pt" => "alagoas"], "AM" => ["en" => "amazonas","pt" => "amazonas"],
		"AP" => ["en" => "amapa","pt" => "amapá"],"BA" => ["en" => "bahia","pt" => "bahia"], "CE" => ["en" => "ceara","pt" => "ceará"],
		"DF" => ["en" => "distrito federal","pt" => "distrito federal"], "ES" => ["en" => "espirito santo","pt" => "espírito Santo"], "GO" => ["en" => "goias","pt" => "goiás"],
		'MA' => ["en" => "maranhao","pt" => "maranhão"], "MG" => ["en" => "minas gerais","pt" => "minas gerais"], "MS" => ["en" => "mato grosso do sul","pt" => "mato grosso do sul"],
		"MT" => ["en" => "mato grosso","pt" => "mato grosso"], "PA" => ["en" => "para","pt" => "pará"], "PB" => ["en" => "paraiba","pt" => "paraíba"],
		"PE" => ["en" => "pernambuco","pt" => "pernambuco"], "PI" => ["en" => "piaui","pt" => "piauí"], "PR" => ["en" => "parana","pt" => "paraná"], 
		"RJ" => ["en" => "rio de janeiro","pt" => "rio de janeiro"], "RN" => ["en" => "rio grande do norte","pt" => "rio grande do norte"], "RO" => ["en" => "rondonia","pt" => "rondônia"],
		"RR" => ["en" => "roraima","pt" => "roraima"], "RS" => ["en" => "rio grande do sul","pt" => "rio grande do sul"], "SC" => ["en" => "santa catarina","pt" => "santa catarina"],
		"SE" => ["en" => "sergipe","pt" => "sergipe"], "SP" => ["en" => "sao paulo","pt" => "são paulo"], "TO" => ["en" => "tocantins","pt" => "tocantins"]
	);

	$stateCodeToRegex['CA'] = array(
		'AB' => 'AB|alberta', 'BC' => 'BC|british columbia|colombie britannique', 'MB' => 'MB|manitoba', 'NB' => 'NB|(new |nouveau )?brunswick', 'NL' => 'NL|newfoundland( and labrador)?|terre neuve( et)?( labrador)?',
		'NT' => 'NT|northwest territories|territoires (du )?nord ouest', 'NS' => 'NS|nova scotia|nouvelle ecosse', 'NU' => 'NU|nunavut', 'ON' => 'ON|ontario',
		'PE' => 'PE|prince edward( island)?|(iles? (du )?)?prince edouard', 'QC' => 'QC|quebec', 'SK' => 'SK|saskatchewan', 'YT' => 'YT|yukon( territory)?'
	);

	$stateCodeToState['CA'] = array(
		'AB' => ["en" => 'alberta',"fr" => "Alberta"], 'BC' => ["en" => 'british columbia',"fr" => "Colombie Britannique"], 'MB' => ["en" => 'manitoba',"fr" => "Manitoba"], 'NB' => ["en" => 'new brunswick',"fr" => "Nouveau Brunswick"],	
		'NL' => ["en" => 'newfoundland and labrador',"fr" => "Terre Neuve et Labrador"], 'NT' => ["en" => 'northwest territories',"fr" => "Territoires du Nord Ouest"], 'NS' => ["en" => 'nova scotia',"fr" => "Nouvelle Écosse"], 
		'NU' => ["en" => 'nunavut',"fr" => "Nunavut"], 'ON' => ["en" => 'ontario',"fr" => "Ontario"], 'PE' => ["en" => 'prince edward island',"fr" => "Île-du-Prince-Édouard"], 'QC' => ["en" => 'quebec',"fr" => "Québec"], 
		'SK' => ["en" => 'saskatchewan',"fr" => "Saskatchewan"], 'YT' => ["en" => 'yukon',"fr" => "Yukon"]
	);

	$stateCodeToRegex["IT"] = array(
		"AG" => "AG|agrigento", "AL" => "AL|alessandria", "AN" => "AN|ancona", "AO" => "AO|aosta", "AP" => "AP|ascoli piceno", "AQ" => "AQ|(L')?aquila",
		"AR" => "AR|arezzo", "AT" => "AT|asti", "AV" => "AV|avellino", "BA" => "BA|bari", "BG" => "BG|bergamo", "BI" => "BI|biella", "BL" => "BL|belluno",
		"BN" => "BN|benevento", "BO" => "BO|bologna", "BR" => "BR|brindisi", "BS" => "BS|brescia", "BT" => "BT|barletta andria trani", "BZ" => "BZ|bolzano", "CA" => "CA|cagliari",
		"CB" => "CB|campobasso", "CE" => "CE|caserta", "CH" => "CH|chieti", "CI" => "CI|carbonia iglesias", "CL" => "CL|caltanissetta", "CN" => "CN|cuneo", "CO" => "CO|como",
		"CR" => "CR|cremona", "CS" => "CS|cosenza", "CT" => "CT|catania", "CZ" => "CZ|catanzaro", "EN" => "EN|enna", "FC" => "FC|forli cesena", "FE" => "FE|ferrara",
		"FG" => "FG|foggia", "FI" => "FI|florence", "FM" => "FM|fermo", "FR" => "FR|frosinone", "GE" => "GE|genoa", "GO" => "GO|gorizia", "GR" => "GR|grosseto", "IM" => "IM|imperia",
		"IS" => "IS|isernia", "KR" => "KR|crotone", "LC" => "LC|lecco", "LE" => "LE|lecce", "LI" => "LI|livorno", "LO" => "LO|lodi", "LT" => "LT|latina", "LU" => "LU|lucca",
		"MB" => "MB|monza and Brianza", "MC" => "MC|macerata", "ME" => "ME|messina", "MI" => "MI|milan", "MN" => "MN|mantua", "MO" => "MO|modena", "MS" => "MS|massa (and )?carrara",
		"MT" => "MT|matera", "NA" => "NA|naples", "NO" => "NO|novara", "NU" => "NU|nuoro", "OG" => "OG|ogliastra", "OR" => "OR|oristano", "OT" => "OT|olbia temple|olbia tempio", "PA" => "PA|palermo",
		"PC" => "PC|piacenza", "PD" => "PD|padua", "PE" => "PE|pescara", "PG" => "PG|perugia", "PI" => "PI|pisa", "PN" => "PN|pordenone", "PO" => "PO|prato", "PR" => "PR|parma",
		"PT" => "PT|pistoia", "PU" => "PU|pesaro (and )?urbino", "PV" => "PV|pavia", "PZ" => "PZ|potenza", "RA" => "RA|ravenna", "RC" => "RC|reggio calabria", "RE" => "RE|reggio Emilia",
		"RG" => "RG|ragusa", "RI" => "RI|rieti", "RM" => "RM|rome", "RN" => "RN|rimini", "RO" => "RO|rovigo", "SA" => "SA|salerno", "SI" => "SI|siena", "SO" => "SO|sondrio",
		"SP" => "SP|(La )?spezia", "SR" => "SR|syracuse", "SS" => "SS|sassari", "SV" => "SV|savona", "TA" => "TA|taranto", "TE" => "TE|teramo", "TN" => "TN|trento", "TO" => "TO|turin(o)?",
		"TP" => "TP|trapani", "TR" => "TR|terni", "TS" => "TS|trieste", "TV" => "TV|treviso", "UD" => "UD|udine", "VA" => "VA|varese", "VB" => "VB|verbano cusio ossola",
		"VC" => "VC|vercelli", "VE" => "VE|venice", "VI" => "VI|vicenza", "VR" => "VR|verona", "VS" => "VS|medio campidano", "VT" => "VT|viterbo", "VV" => "VV|vibo valentia"
	);

	$stateCodeToState["IT"] = array(
		"AG" => ["en" => "agrigento","it" => "agrigento"], "AL" => ["en" => "alexandria","it" => "alessandria"], "AN" => ["en" => "anchor","it" => "ancona"],
		"AO" => ["en" => "aosta","it" => "aosta"], "AP" => ["en" => "ascoli piceno","it" => "ascoli piceno"], "AQ" => ["en" => "L'aquila","it" => "L'aquila"],
		"AR" => ["en" => "arezzo","it" => "arezzo"], "AT" => ["en" => "asti","it" => "asti"], "AV" => ["en" => "avellino","it" => "avellino"],
		"BA" => ["en" => "bari","it" => "bari"], "BG" => ["en" => "bergamo","it" => "bergamo"], "BI" => ["en" => "biella","it" => "biella"],
		"BL" => ["en" => "belluno","it" => "belluno"], "BN" => ["en" => "benevento","it" => "benevento"], "BO" => ["en" => "bologna","it" => "bologna"],
		"BR" => ["en" => "brindisi","it" => "brindisi"], "BS" => ["en" => "brescia","it" => "brescia"], "BT" => ["en" => "barletta andria trani","it" => "barletta andria trani"],
		"BZ" => ["en" => "bozen","it" => "bolzano"], "CA" => ["en" => "cagliari","it" => "cagliari"], "CB" => ["en" => "campobasso","it" => "campobasso"],
		"CE" => ["en" => "caserta","it" => "caserta"], "CH" => ["en" => "chieti","it" => "chieti"], "CI" => ["en" => "carbonia iglesias","it" => "carbonia iglesias"],
		"CL" => ["en" => "caltanissetta","it" => "caltanissetta"], "CN" => ["en" => "cuneo","it" => "cuneo"], "CO" => ["en" => "como","it" => "como"],
		"CR" => ["en" => "cremona","it" => "cremona"], "CS" => ["en" => "cosenza","it" => "cosenza"], "CT" => ["en" => "catania","it" => "catania"],
		"CZ" => ["en" => "catanzaro","it" => "catanzaro"], "EN" => ["en" => "enna","it" => "enna"], "FC" => ["en" => "forli-cesena","it" => "forli cesena"],
		"FE" => ["en" => "ferrara","it" => "ferrara"], "FG" => ["en" => "foggia","it" => "foggia"], "FI" => ["en" => "florence","it" => "florence"],
		"FM" => ["en" => "fermo","it" => "fermo"], "FR" => ["en" => "frosinone","it" => "frosinone"], "GE" => ["en" => "genoa","it" => "genoa"],
		"GO" => ["en" => "gorizia","it" => "gorizia"], "GR" => ["en" => "grosseto","it" => "grosseto"], "IM" => ["en" => "imperia","it" => "imperia"],
		"IS" => ["en" => "isernia","it" => "isernia"], "KR" => ["en" => "croton","it" => "crotone"], "LC" => ["en" => "lecco","it" => "lecco"],
		"LE" => ["en" => "lecce","it" => "lecce"], "LI" => ["en" => "leghorn","it" => "livorno"], "LO" => ["en" => "lodi","it" => "lodi"],
		"LT" => ["en" => "latina","it" => "latina"], "LU" => ["en" => "lucca","it" => "lucca"], "MB" => ["en" => "monza and Brianza","it" => "monza and Brianza"],
		"MC" => ["en" => "macerata","it" => "macerata"], "ME" => ["en" => "messina","it" => "messina"], "MI" => ["en" => "milan","it" => "milan"],
		"MN" => ["en" => "mantua","it" => "mantua"], "MO" => ["en" => "modena","it" => "modena"], "MS" => ["en" => "massa and carrara","it" => "massa and carrara"],
		"MT" => ["en" => "matera","it" => "matera"], "NA" => ["en" => "naples","it" => "naples"], "NO" => ["en" => "novara","it" => "novara"],
		"NU" => ["en" => "nuoro","it" => "nuoro"], "OG" => ["en" => "ogliastra","it" => "ogliastra"], "OR" => ["en" => "oristano","it" => "oristano"],
		"OT" => ["en" => "olbia temple 2","it" => "olbia tempio"], "PA" => ["en" => "palermo","it" => "palermo"], "PC" => ["en" => "piacenza","it" => "piacenza"],
		"PD" => ["en" => "padua","it" => "padua"], "PE" => ["en" => "pescara","it" => "pescara"], "PG" => ["en" => "perugia","it" => "perugia"],
		"PI" => ["en" => "pisa","it" => "pisa"], "PN" => ["en" => "pordenone","it" => "pordenone"], "PO" => ["en" => "prato","it" => "prato"],
		"PR" => ["en" => "parma","it" => "parma"], "PT" => ["en" => "pistoia","it" => "pistoia"], "PU" => ["en" => "pesaro and urbino","it" => "pesaro and urbino"],
		"PV" => ["en" => "pavia","it" => "pavia"], "PZ" => ["en" => "potenza","it" => "potenza"], "RA" => ["en" => "ravenna","it" => "ravenna"],
		"RC" => ["en" => "reggio calabria","it" => "reggio calabria"], "RE" => ["en" => "reggio Emilia","it" => "reggio Emilia"], "RG" => ["en" => "ragusa","it" => "ragusa"],
		"RI" => ["en" => "rieti","it" => "rieti"], "RM" => ["en" => "rome","it" => "rome"], "RN" => ["en" => "rimini","it" => "rimini"],
		"RO" => ["en" => "rovigo","it" => "rovigo"], "SA" => ["en" => "salerno","it" => "salerno"], "SI" => ["en" => "siena","it" => "siena"], 
		"SO" => ["en" => "sondrio","it" => "sondrio"], "SP" => ["en" => "La spezia","it" => "La spezia"], "SR" => ["en" => "syracuse","it" => "syracuse"],
		"SS" => ["en" => "sassari","it" => "sassari"], "SV" => ["en" => "savona","it" => "savona"], "TA" => ["en" => "taranto","it" => "taranto"],
		"TE" => ["en" => "teramo","it" => "teramo"], "TN" => ["en" => "trento","it" => "trento"], "TO" => ["en" => "turin","it" => "turin"],
		"TP" => ["en" => "trapani","it" => "trapani"], "TR" => ["en" => "terni","it" => "terni"], "TS" => ["en" => "trieste","it" => "trieste"],
		"TV" => ["en" => "treviso","it" => "treviso"], "UD" => ["en" => "udine","it" => "udine"], "VA" => ["en" => "varese","it" => "varese"],
		"VB" => ["en" => "verbano cusio ossola","it" => "verbano cusio ossola"], "VC" => ["en" => "vercelli","it" => "vercelli"], "VE" => ["en" => "vercelli","it" => "vercelli"],
		"VI" => ["en" => "vicenza","it" => "vicenza"], "VR" => ["en" => "verona","it" => "verona"], "VS" => ["en" => "medio campidano","it" => "medio campidano"],
		"VT" => ["en" => "viterbo","it" => "viterbo"], "VV" => ["en" => "vibo valentia","it" => "vibo valentia"]
	);

	$stateCodeToRegex['MX'] = array(
		"AG" => "AG|aguascalientes", "BC" => "BC|baja california", "BS" => "BS|baja california sur",
		"CO" => "CO|coahuila", "CH" => "CH|chihuahua","CL" => "CL|colima",
		"CM" => "CM|campeche", "CS" => "CS|chiapas", "DF" => "DF|mexico( city)?",
		"DG" => "DG|durango", "EM" => "EM|mexico state","GR" => "GR|guerrero",
		"GT" => "GT|guanajuato", "HG" => "HG|hidalgo", "JA" => "JA|jalisco",
		"MI" => "MI|michoacan", "MO" => "MO|morelos","NA" => "NA|nayarit",
		"NL" => "NL|new leon|nuevo leon", "OA" => "OA|oaxaca", "PU" => "PU|puebla",
		"QE" => "QE|queretaro", "QR" => "QR|quintana roo","SI" => "SI|sinaloa",
		"SL" => "SL|san luis potosi", "SO" => "SO|sonora", "TB" => "TB|tabasco",
		"TL" => "TL|tlaxcala", "TM" => "TM|tamaulipas","VE" => "VE|veracruz",
		"YU" => "YU|yucatan", "ZA" => "ZA|zacatecas"
	);

	$stateCodeToState['MX'] = array(
		"AG" => ["en" => "aguascalientes", "es" => "aguascalientes"], "BC" => ["en" => "lower california", "es" => "baja california"], "BS" => ["en" => "lower california south", "es" => "baja california sur"],
		"CO" => ["en" => "coahuila", "es" => "coahuila"], "CH" => ["en" => "chihuahua", "es" => "chihuahua"], "CL" => ["en" => "colima", "es" => "colima"],
		"CM" => ["en" => "campeche", "es" => "campeche"], "CS" => ["en" => "chiapas", "es" => "chiapas"], "DF" => ["en" => "mexico city", "es" => "mexico city"],
		"DG" => ["en" => "durango", "es" => "durango"], "EM" => ["en" => "mexico state", "es" => "mexico state"], "GR" => ["en" => "guerrero", "es" => "guerrero"],
		"GT" => ["en" => "guanajuato", "es" => "guanajuato"], "HG" => ["en" => "hidalgo", "es" => "hidalgo"], "JA" => ["en" => "jalisco", "es" => "jalisco"],
		"MI" => ["en" => "michoacan", "es" => "michoacan"], "MO" => ["en" => "morelos", "es" => "morelos"], "NA" => ["en" => "nayarit", "es" => "nayarit"],
		"NL" => ["en" => "new leon", "es" => "nuevo leon"], "OA" => ["en" => "oaxaca", "es" => "oaxaca"], "PU" => ["en" => "puebla", "es" => "puebla"],
		"QE" => ["en" => "queretaro", "es" => "queretaro"], "QR" => ["en" => "quintana roo", "es" => "quintana roo"], "SI" => ["en" => "sinaloa", "es" => "sinaloa"],
		"SL" => ["en" => "san luis potosi", "es" => "san luis potosi"], "SO" => ["en" => "sonora", "es" => "sonora"], "TB" => ["en" => "tabasco", "es" => "tabasco"],
		"TL" => ["en" => "tlaxcala", "es" => "tlaxcala"], "TM" => ["en" => "tamaulipas", "es" => "tamaulipas"], "VE" => ["en" => "veracruz", "es" => "veracruz"],
		"YU" => ["en" => "yucatan", "es" => "yucatan"], "ZA" => ["en" => "zacatecas", "es" => "zacatecas"]
	);

	$stateCodeToRegex['US'] = array(
		'AL' => 'al|alabama', 'AK' => 'AK|alaska', 'AZ' => 'AZ|arizona', 'AR' => 'AR|arkansas', 'CA' => 'CA|california', 'CO' => 'CO|colorado',
		'CT' => 'CT|connecticut', 'DE' => 'DE|delaware', 'FL' => 'FL|florida', 'GA' => 'GA|georgia', 'HI' => 'HI|hawaii', 'ID' => 'ID|idaho', 'IL' => 'IL|illinois',
		'IN' => 'IN|indiana', 'IA' => 'IA|iowa', 'KS' => 'KS|kansas', 'KY' => 'KY|kentucky', 'LA' => 'LA|louisiana', 'ME' => 'ME|maine', 'MD' => 'MD|maryland',
		'MA' => 'MA|massachusetts', 'MI' => 'MI|michigan', 'MN' => 'MN|minnesota', 'MS' => 'MS|mississippi', 'MO' => 'MO|missouri', 'MT' => 'MT|montana', 'NE' => 'NE|nebraska',
		'NV' => 'NV|nevada', 'NH' => 'NH|(new )?hampshire', 'NJ' => 'NJ|(new )?jersey', 'NM' => 'NM|(new )?mexico', 'NY' => 'NY|(new )?york', 'NC' => 'NC|north carolina',
		'ND' => 'ND|north dakota', 'OH' => 'OH|ohio', 'OK' => 'OK|oklahoma', 'OR' => 'OR|oregon', 'PA' => 'PA|pennsylvania', 'RI' => 'RI|rhode island', 'SC' => 'SC|south carolina',
		'SD' => 'SD|south dakota', 'TN' => 'TN|tennessee', 'TX' => 'TX|texas', 'UT' => 'UT|utah', 'VT' => 'VT|vermont', 'VA' => 'VA|virginia', 'WA' => 'WA|washington',
		'WV' => 'WV|west virginia', 'WI' => 'WI|wisconsin', 'WY' => 'WY|wyoming', 'DC' => 'DC|(district (of )?)?columbia'
	);

	$stateCodeToState['US'] = array(
		'AL' => 'alabama', 'AK' => 'alaska', 'AZ' => 'arizona', 'AR' => 'arkansas', 'CA' => 'california', 'CO' => 'colorado',
		'CT' => 'connecticut', 'DE' => 'delaware', 'FL' => 'florida', 'GA' => 'georgia', 'HI' => 'hawaii', 'ID' => 'idaho', 'IL' => 'illinois',
		'IN' => 'indiana', 'IA' => 'iowa', 'KS' => 'kansas', 'KY' => 'kentucky', 'LA' => 'louisiana', 'ME' => 'maine', 'MD' => 'maryland',
		'MA' => 'massachusetts', 'MI' => 'michigan', 'MN' => 'minnesota', 'MS' => 'mississippi', 'MO' => 'missouri', 'MT' => 'montana', 'NE' => 'nebraska',
		'NV' => 'nevada', 'NH' => 'new hampshire', 'NJ' => 'new jersey', 'NM' => 'new mexico', 'NY' => 'new york', 'NC' => 'north carolina',
		'ND' => 'north dakota', 'OH' => 'ohio', 'OK' => 'oklahoma', 'OR' => 'oregon', 'PA' => 'pennsylvania', 'RI' => 'rhode island', 'SC' => 'south carolina',
		'SD' => 'south dakota', 'TN' => 'tennessee', 'TX' => 'texas', 'UT' => 'utah', 'VT' => 'vermont', 'VA' => 'virginia', 'WA' => 'washington',
		'WV' => 'west virginia', 'WI' => 'wisconsin', 'WY' => 'wyoming', 'DC' => 'district of columbia'
	);

	$stateCodeToRegex['ES'] = array(
		'09' => '09|BU|burgos', '13' => '13|CR|ciudad real', '52' => '52|ML|melilla', '21' => '21|H|huelva', '15' => '15|C|(a )?coruña|coruna', '34' => '34|P|palencia', '38' => '38|TF|santa cruz de tenerife', '35' => '35|GC|(las )?palmas',
		'03' => '03|A|alicante', '17' => '17|GI|girona', '27' => '27|LU|lugo', '31' => '31|NA|navarra', '37' => '37|SA|salamanca', '19' => '19|GU|guadalajara', '32' => '32|OR|ourense', '45' => '45|TO|toledo', '48' => '48|BI|bizkaia',
		'14' => '14|CO|cordoba', '22' => '22|HU|huesca', '02' => '02|AB|albacete', '43' => '43|T|tarragona', '16' => '16|CU|cuenca', '47' => '47|VA|valladolid', '28' => '28|M|madrid', '08' => '08|B|barcelona', '40' => '40|SG|segovia',
		'49' => '49|ZA|zamora', '26' => '26|RI|(la )?rioja', '23' => '23|J|jaen', '39' => '39|CB|cantabria', '51' => '51|CE|ceuta', '05' => '05|AV|avila', '01' => '01|araba', '29' => '29|MA|malaga', '25' => '25|L|lleida', '18' => '18|GR|granada',
		'24' => '24|LE|leon', '41' => '41|SE|sevilla', '10' => '10|CC|caceres', '06' => '06|BA|badajoz', '20' => '20|SS|gipuzkoa', '30' => '30|MC|murcia', '12' => '12|CA|castellon', '42' => '42|SO|soria', '04' => '04|AL|almeria',
		'33' => '33|O|asturias', '36' => '36|PO|pontevedra', '44' => '44|TE|teruel', '46' => '46|V|valencia', '11' => '11|CA|cadiz', '50' => '50|Z|zaragoza', '07' => '07|IB|(illes)? balears'
	);

	$stateCodeToState['ES'] = array(
		'09' => ["en" => "burgos","es" => "burgos"], '13' => ["en" => "real city","es" => "ciudad real"], '52' => ["en" => "melilla","es" => "melilla"],
		'21' => ["en" => "huelva","es" => "huelva"], '15' => ["en" => "coruna","es" => "a coruña"], '34' => ["en" => "palencia","es" => "palencia"],
		'38' => ["en" => "santa cruz of tenerife","es" => "santa cruz de tenerife"], '35' => ["en" => "las palmas","es" => "las palmas"], '03' => ["en" => "alicante","es" => "alicante"],
		'17' => ["en" => "girona","es" => "girona"], '27' => ["en" => "lugo","es" => "lugo"], '31' => ["en" => "navarra","es" => "navarra"],
		'37' => ["en" => "salamanca","es" => "salamanca"], '19' => ["en" => "guadalajara","es" => "guadalajara"], '32' => ["en" => "ourense","es" => "ourense"],
		'45' => ["en" => "toledo","es" => "toledo"], '48' => ["en" => "bizkaia","es" => "bizkaia"], '14' => ["en" => "cordoba","es" => "cordoba"],
		'22' => ["en" => "huesca","es" => "huesca"], '02' => ["en" => "albacete","es" => "albacete"], '43' => ["en" => "tarragona","es" => "tarragona"],
		'16' => ["en" => "cuenca","es" => "cuenca"], '47' => ["en" => "valladolid","es" => "valladolid"], '28' => ["en" => "madrid","es" => "madrid"],
		'08' => ["en" => "barcelona","es" => "barcelona"], '40' => ["en" => "segovia","es" => "segovia"], '49' => ["en" => "zamora","es" => "zamora"],
		'26' => ["en" => "the rioja","es" => "la rioja"], '23' => ["en" => "jaen","es" => "jaen"], '39' => ["en" => "cantabria","es" => "cantabria"],
		'51' => ["en" => "ceuta","es" => "ceuta"], '05' => ["en" => "avila","es" => "avila"], '01' => ["en" => "araba","es" => "araba"],
		'29' => ["en" => "malaga","es" => "malaga"], '25' => ["en" => "lleida","es" => "lleida"], '18' => ["en" => "grenade","es" => "granada"],
		'24' => ["en" => "lion","es" => "leon"], '41' => ["en" => "sevilla","es" => "seville"], '10' => ["en" => "caceres","es" => "caceres"],
		'06' => ["en" => "badajoz","es" => "badajoz"], '20' => ["en" => "gipuzkoa","es" => "gipuzkoa"], '30' => ["en" => "murcia","es" => "murcia"],
		'12' => ["en" => "castellon","es" => "castellon"], '42' => ["en" => "soria","es" => "soria"], '04' => ["en" => "almeria","es" => "almeria"],
		'33' => ["en" => "asturias","es" => "asturias"], '36' => ["en" => "pontevedra","es" => "pontevedra"], '44' => ["en" => "teruel","es" => "teruel"],
		'46' => ["en" => "valencia","es" => "valencia"], '11' => ["en" => "cadiz","es" => "cadiz"], '50' => ["en" => "saragossa","es" => "zaragoza"],
		'07' => ["en" => "balearic islands","es" => "illes balears"]
	);

	$stateCodeToRegex['GB'] = array(
		'RDG' => 'RDG|reading', 'OXF' => 'OXF|oxfordshire', 'GWN' => 'GWN|gwynedd', 'BNS' => 'BNS|barnsley', 'CGN' => 'CGN|ceredigion', 'RIC' => 'RIC|richmond upon thames', 'NEL' => 'NEL|north east lincolnshire', 
		'ERW' => 'ERW|east renfrewshire', 'GAT' => 'GAT|gateshead', 'WFT' => 'WFT|waltham forest', 'ISL' => 'ISL|islington', 'KWL' => 'KWL|knowsley', 'NYK' => 'NYK|north yorkshire', 'ZET' => 'ZET|shetland islands', 
		'EDH' => 'EDH|edinburgh, city of', 'SOM' => 'SOM|somerset', 'RFW' => 'RFW|renfrewshire', 'ELN' => 'ELN|east lothian', 'RCT' => 'RCT|rhondda, cynon, taff', 'IOW' => 'IOW|isle of wight', 'WRT' => 'WRT|warrington', 
		'ERY' => 'ERY|east riding of yorkshire', 'HAM' => 'HAM|hampshire', 'CHW' => 'CHW|cheshire west and chester', 'ORK' => 'ORK|orkney islands', 'WLN' => 'WLN|west lothian', 'ESS' => 'ESS|essex', 
		'BIR' => 'BIR|birmingham', 'HRT' => 'HRT|hertfordshire', 'CBF' => 'CBF|central bedfordshire', 'NTY' => 'NTY|north tyneside', 'NET' => 'NET|newcastle upon tyne', 'DOW' => 'DOW|down', 'ABD' => 'ABD|aberdeenshire', 
		'MRY' => 'MRY|moray', 'STT' => 'STT|stockton-on-tees', 'SRY' => 'SRY|surrey', 'ELS' => 'ELS|eilean siar', 'WRX' => 'WRX|wrexham', 'MRT' => 'MRT|Merton', 'ARM' => 'ARM|armagh', 'SCB' => 'SCB|scottish Borders', 
		'TWH' => 'TWH|tower hamlets', 'HEF' => 'HEF|herefordshire', 'SAY' => 'SAY|south ayrshire', 'KEC' => 'KEC|kensington and chelsea', 'WRL' => 'WRL|wirral', 'HNS' => 'HNS|hounslow', 'WBK' => 'WBK|west berkshire', 
		'BNE' => 'BNE|barnet', 'LIV' => 'LIV|liverpool', 'GLS' => 'GLS|gloucestershire', 'BRY' => 'BRY|bromley', 'NTH' => 'NTH|northamptonshire', 'WSM' => 'WSM|westminster', 'MDB' => 'MDB|middlesbrough', 
		'NWP' => 'NWP|newport', 'SHN' => 'SHN|st. helens', 'KIR' => 'KIR|kirklees', 'SWK' => 'SWK|southwark', 'FLN' => 'FLN|flintshire', 'STN' => 'STN|sutton', 'HRY' => 'HRY|haringey', 'CMN' => 'CMN|carmarthenshire', 
		'CAY' => 'CAY|caerphilly', 'MTY' => 'MTY|merthyr tydfil', 'GSY' => 'GSY|guernsey', 'NBL' => 'NBL|northumberland', 'BDG' => 'BDG|barking and dagenham', 'COV' => 'COV|coventry', 'CLD' => 'CLD|calderdale', 
		'HCK' => 'HCK|hackney', 'NWM' => 'NWM|newham', 'KHL' => 'KHL|kingston upon hull', 'BRC' => 'BRC|bracknell forest', 'LEC' => 'LEC|leicestershire', 'DUR' => 'DUR|durham, county', 'WLL' => 'WLL|walsall', 
		'SGC' => 'SGC|south gloucestershire', 'DEV' => 'DEV|devon', 'MON' => 'MON|monmouthshire', 'LIN' => 'LIN|lincolnshire', 'BGE' => 'BGE|bridgend', 'KEN' => 'KEN|kent', 'TOF' => 'TOF|torfaen', 'PKN' => 'PKN|perth and kinross', 
		'SAW' => 'SAW|sandwell', 'DND' => 'DND|dundee City', 'WNM' => 'WNM|windsor and maidenhead', 'HIL' => 'HIL|hillingdon', 'NFK' => 'NFK|norfolk', 'IOM' => 'IOM|isle of man', 'BEX' => 'BEX|bexley', 'STY' => 'STY|south tyneside', 
		'BRD' => 'BRD|bradford', 'ANS' => 'ANS|angus', 'WAR' => 'WAR|warwickshire', 'GRE' => 'GRE|greenwich', 'LEW' => 'LEW|lewisham', 'TYR' => 'TYR|tyrone', 'CWY' => 'CWY|conwy', 'FER' => 'FER|fermanagh', 'GLG' => 'GLG|glasgow city', 
		'ANT' => 'ANT|antrim', 'SHR' => 'SHR|shropshire', 'CRF' => 'CRF|cardiff', 'CON' => 'CON|cornwall', 'SLG' => 'SLG|slough', 'WIL' => 'WIL|wiltshire', 'HRW' => 'HRW|harrow', 'HAL' => 'HAL|halton', 'DUD' => 'DUD|dudley',
		'DGY' => 'DGY|dumfries and galloway', 'SFK' => 'SFK|suffolk', 'DEN' => 'DEN|denbighshire', 'BDF' => 'BDF|bedford', 'DBY' => 'DBY|derbyshire', 'WSX' => 'WSX|west sussex', 'BAS' => 'BAS|bath and north east somerset', 
		'RDB' => 'RDB|redbridge', 'WND' => 'WND|wandsworth','WLV' => 'WLV|wolverhampton', 'CAM' => 'CAM|cambridgeshire', 'ENF' => 'ENF|enfield', 'BKM' => 'BKM|buckinghamshire', 'NAY' => 'NAY|north ayrshire', 'ROT' => 'ROT|rotherham', 
		'FIF' => 'FIF|fife', 'POW' => 'POW|powys', 'LBH' => 'LBH|lambeth', 'CMA' => 'CMA|cumbria', 'ESX' => 'ESX|east sussex', 'KTT' => 'KTT|kingston upon thames','DRY' => 'DRY|derry', 'SND' => 'SND|sunderland', 
		'CMD' => 'CMD|camden', 'NSM' => 'NSM|north somerset', 'DOR' => 'DOR|dorset', 'NTL' => 'NTL|neath port talbot', 'DNC' => 'DNC|doncaster', 'WOK' => 'WOK|wokingham','HLD' => 'HLD|highland', 'BST' => 'BST|bristol, city of','JSY' => 'JSY|jersey',
		'LUT' => 'LUT|luton','EAL' => 'EAL|ealing','SFT' => 'SFT|sefton','LND' => 'LND|london, city of','SHF' => 'SHF|sheffield','LDS' => 'LDS|leeds','SOL' => 'SOL|solihull','SWA' => 'SWA|swansea','PEM' => 'PEM|pembrokeshire',
		'BEN' => 'BEN|brent','VGL' => 'VGL|vale of glamorgan, the ','STS' => 'STS|staffordshire','WKF' => 'WKF|wakefield','HPL' => 'HPL|hartlepool','WDU' => 'WDU|west dunbartonshire','HMF' => 'HMF|hammersmith and fulham','MLN' => 'MLN|midlothian',
		'CRY' => 'CRY|croydon','SLK' => 'SLK|south lanarkshire','EAY' => 'EAY|east ayrshire','WOR' => 'WOR|worcestershire','LAN' => 'LAN|lancashire','IOS' => 'IOS|isles of scilly','NLN' => 'NLN|north lincolnshire',
		'BGW' => 'BGW|blaenau gwent','CHE' => 'CHE|cheshire east','NLK' => 'NLK|north lanarkshire','IVC' => 'IVC|inverclyde','RCC' => 'RCC|redcar and cleveland', 'NTT' => 'NTT|nottinghamshire',
		'AGB' => 'AGB|argyll and bute','ABE' => 'ABE|aberdeen city','HAV' => 'HAV|havering','EDU' => 'EDU|east dunbartonshire'
	);

	$stateCodeToState['GB'] = array(
		'RDG' => 'reading', 'OXF' => 'oxfordshire', 'GWN' => 'gwynedd', 'BNS' => 'barnsley', 'CGN' => 'ceredigion', 'RIC' => 'richmond upon thames', 'NEL' => 'north east lincolnshire', 
		'ERW' => 'east renfrewshire', 'GAT' => 'gateshead', 'WFT' => 'waltham forest', 'ISL' => 'islington', 'KWL' => 'knowsley', 'NYK' => 'north yorkshire', 'ZET' => 'shetland islands', 
		'EDH' => 'edinburgh, city of', 'SOM' => 'somerset', 'RFW' => 'renfrewshire', 'ELN' => 'east lothian', 'RCT' => 'rhondda, cynon, taff', 'IOW' => 'isle of wight', 'WRT' => 'warrington', 
		'ERY' => 'east riding of yorkshire', 'HAM' => 'hampshire', '' => 'cheshire west and chester', 'ORK' => 'orkney islands', 'WLN' => 'west lothian', 'ESS' => 'essex', 
		'BIR' => 'birmingham', 'HRT' => 'hertfordshire', 'CBF' => 'central bedfordshire', 'NTY' => 'north tyneside', 'NET' => 'newcastle upon tyne', 'DOW' => 'down', 'ABD' => 'aberdeenshire', 
		'MRY' => 'moray', 'STT' => 'stockton-on-tees', 'SRY' => 'surrey', 'ELS' => 'eilean siar', 'WRX' => 'wrexham', 'MRT' => 'Merton', 'ARM' => 'armagh', 'SCB' => 'scottish Borders', 
		'TWH' => 'tower hamlets', 'HEF' => 'herefordshire', 'SAY' => 'south ayrshire', 'KEC' => 'kensington and chelsea', 'WRL' => 'wirral', 'HNS' => 'hounslow', 'WBK' => 'west berkshire', 
		'BNE' => 'barnet', 'LIV' => 'liverpool', 'GLS' => 'gloucestershire', 'BRY' => 'bromley', 'NTH' => 'northamptonshire', 'WSM' => 'westminster', 'MDB' => 'middlesbrough', 
		'NWP' => 'newport', 'SHN' => 'st. helens', 'KIR' => 'kirklees', 'SWK' => 'southwark', 'FLN' => 'flintshire', 'STN' => 'sutton', 'HRY' => 'haringey', 'CMN' => 'carmarthenshire', 
		'CAY' => 'caerphilly', 'MTY' => 'merthyr tydfil', 'GSY' => 'guernsey', 'NBL' => 'northumberland', 'BDG' => 'barking and dagenham', 'COV' => 'coventry', 'CLD' => 'calderdale', 
		'HCK' => 'hackney', 'NWM' => 'newham', 'KHL' => 'kingston upon hull', 'BRC' => 'bracknell forest', 'LEC' => 'leicestershire', 'DUR' => 'durham, county', 'WLL' => 'walsall', 
		'SGC' => 'south gloucestershire', 'DEV' => 'devon', 'MON' => 'monmouthshire', 'LIN' => 'lincolnshire', 'BGE' => 'bridgend', 'KEN' => 'kent', 'TOF' => 'torfaen', 'PKN' => 'perth and kinross', 
		'SAW' => 'sandwell', 'DND' => 'dundee City', 'WNM' => 'windsor and maidenhead', 'HIL' => 'hillingdon', 'NFK' => 'norfolk', 'IOM' => 'isle of man', 'BEX' => 'bexley', 'STY' => 'south tyneside', 
		'BRD' => 'bradford', 'ANS' => 'angus', 'WAR' => 'warwickshire', 'GRE' => 'greenwich', 'LEW' => 'lewisham', 'TYR' => 'tyrone', 'CWY' => 'conwy', 'FER' => 'fermanagh', 'GLG' => 'glasgow city', 
		'ANT' => 'antrim', 'SHR' => 'shropshire', 'CRF' => 'cardiff', 'CON' => 'cornwall', 'SLG' => 'slough', 'WIL' => 'wiltshire', 'HRW' => 'harrow', 'HAL' => 'halton', 'DUD' => 'dudley',
		'DGY' => 'dumfries and galloway', 'SFK' => 'suffolk', 'DEN' => 'denbighshire', 'BDF' => 'bedford', 'DBY' => 'derbyshire', 'WSX' => 'west sussex', 'BAS' => 'bath and north east somerset', 
		'RDB' => 'redbridge', 'WND' => 'wandsworth','WLV' => 'wolverhampton', 'CAM' => 'cambridgeshire', 'ENF' => 'enfield', 'BKM' => 'buckinghamshire', 'NAY' => 'north ayrshire', 'ROT' => 'rotherham', 
		'FIF' => 'fife', 'POW' => 'powys', 'LBH' => 'lambeth', 'CMA' => 'cumbria', 'ESX' => 'east sussex', 'KTT' => 'kingston upon thames','DRY' => 'derry', 'SND' => 'sunderland', 
		'CMD' => 'camden', 'NSM' => 'north somerset', 'DOR' => 'dorset', 'NTL' => 'neath port talbot', 'DNC' => 'doncaster', 'WOK' => 'wokingham','HLD' => 'highland', 'BST' => 'bristol, city of','JSY' => 'jersey',
		'LUT' => 'luton','EAL' => 'ealing','SFT' => 'sefton','LND' => 'london, city of','SHF' => 'sheffield','LDS' => 'leeds','SOL' => 'solihull','SWA' => 'swansea','PEM' => 'pembrokeshire',
		'BEN' => 'brent','VGL' => 'vale of glamorgan, the ','STS' => 'staffordshire','WKF' => 'wakefield','HPL' => 'hartlepool','WDU' => 'west dunbartonshire','HMF' => 'hammersmith and fulham','MLN' => 'midlothian',
		'CRY' => 'croydon','SLK' => 'south lanarkshire','EAY' => 'east ayrshire','WOR' => 'worcestershire','LAN' => 'lancashire','IOS' => 'isles of scilly','NLN' => 'north lincolnshire',
		'BGW' => 'blaenau gwent','CHE' => 'cheshire east','NLK' => 'north lanarkshire','IVC' => 'inverclyde','RCC' => 'redcar and cleveland', 'NTT' => 'nottinghamshire',
		'AGB' => 'argyll and bute','ABE' => 'aberdeen city','HAV' => 'havering','EDU' => 'east dunbartonshire'
	);

	$stateCodeToRegex['IE'] = array(
		'CN' => 'CN|cavan', 'MO' => 'MO|mayo', 'WX' => 'WX|wexford', 'LD' => 'LD|longford', 'WD' => 'WD|waterford', 'LM' => 'LM|leitrim', 'CW' => 'CW|carlow', 'WW' => 'WW|wicklow', 'KK' => 'KK|kilkenny', 
		'LS' => 'LS|laois', 'G'  => 'G|galway', 'SO' => 'SO|sligo', 'RN' => 'RN|roscommon', 'KE' => 'KE|kildare', 'WH' => 'WH|westmeath', 'TA' => 'TA|tipperary', 'CE' => 'CE|clare', 'DL' => 'DL|donegal', 
		'KY' => 'KY|kerry', 'OY' => 'OY|offaly', 'LH' => 'LH|louth', 'LK' => 'LK|limerick', 'CO' => 'CO|cork', 'MH' => 'MH|meath', 'D'  => 'D|dublin', 'MN' => 'MN|monaghan' 
	);

	$stateCodeToState['IE'] = array(
		'CN' => 'cavan', 'MO' => 'mayo', 'WX' => 'wexford', 'LD' => 'longford', 'WD' => 'waterford', 'LM' => 'leitrim', 'CW' => 'carlow', 'WW' => 'wicklow', 'KK' => 'kilkenny', 
		'LS' => 'laois', 'G'  => 'galway', 'SO' => 'sligo', 'RN' => 'roscommon', 'KE' => 'kildare', 'WH' => 'westmeath', 'TA' => 'tipperary', 'CE' => 'clare', 'DL' => 'donegal', 
		'KY' => 'kerry', 'OY' => 'offaly', 'LH' => 'louth', 'LK' => 'limerick', 'CO' => 'cork', 'MH' => 'meath', 'D'  => 'dublin', 'MN' => 'monaghan' 
	);

	$stateCodeToRegex['JP'] = array(
		'8'  => '8|ibaraki', '45' => '45|miyazaki', '18' => '18|hukui', '32' => '32|simane', '31' => '31|tottori', '41' => '41|saga', '37' => '37|kagawa', '19' => '19|yamanasi', 
		'6'  => '6|yamagata', '39' => '39|kôti|koti', '4'  => '4|miyagi', '42' => '42|nagasaki', '1'  => '1|hokkaidô|hokkaido', '2'  => '2|aomori', '15' => '15|nigata', '14' => '14|kanagawa', '28' => '28|hyôgo|hyogo', 
		'20' => '20|nagano', '38' => '38|ehime', '22' => '22|sizuoka', '47' => '47|okinawa', '23' => '23|aiti', '7'  => '7|hukusima', '13' => '13|tôkyô|tokyo', '9'  => '9|totigi', '44' => '44|õita|oita', '46' => '46|kagosima', 
		'10' => '10|gunma', '35' => '35|yamaguti', '26' => '26|kyôto|kyoto', '5'  => '5|akita', '21' => '21|gihu', '36' => '36|tokusima', '29' => '29|nara', '12' => '12|tiba', '30' => '30|wakayama', '43' => '43|kumamoto', 
		'11' => '11|saitama', '3'  => '3|iwate', '24' => '24|mie', '33' => '33|okayama', '17' => '17|isikawa','25' => '25|siga', '16' => '16|toyama', '40' => '40|hukuoka', '27' => '27|õsaka|osaka', '34' => '34|hirosima' 
	);

	$stateCodeToState['JP'] = array(
		'8'  => 'ibaraki', '45' => 'miyazaki', '18' => 'hukui', '32' => 'simane', '31' => 'tottori', '41' => 'saga', '37' => 'kagawa', '19' => 'yamanasi', 
		'6'  => 'yamagata', '39' => 'kôti', '4'  => 'miyagi', '42' => 'nagasaki', '1'  => 'hokkaidô', '2'  => 'aomori', '15' => 'nigata', '14' => 'kanagawa', '28' => 'hyôgo', 
		'20' => 'nagano', '38' => 'ehime', '22' => 'sizuoka', '47' => 'okinawa', '23' => 'aiti', '7'  => 'hukusima', '13' => 'tôkyô', '9'  => 'totigi', '44' => 'õita', '46' => 'kagosima', 
		'10' => 'gunma', '35' => 'yamaguti', '26' => 'kyôto', '5'  => 'akita', '21' => 'gihu', '36' => 'tokusima', '29' => 'nara', '12' => 'tiba', '30' => 'wakayama', '43' => 'kumamoto', 
		'11' => 'saitama', '3'  => 'iwate', '24' => 'mie', '33' => 'okayama', '17' => 'isikawa','25' => 'siga', '16' => 'toyama', '40' => 'hukuoka', '27' => 'õsaka', '34' => 'hirosima' 
	);
}
