← Index
Performance Profile   « block view • line view • sub view »
For ./awstats.pl
  Run on Wed Feb 11 19:11:27 2009
Reported on Thu Feb 12 02:07:46 2009

File/usr/local/lib/perl/5.8.8/Geo/IP.pm
Statements Executed29
Total Time0.028207 seconds

Subroutines — ordered by exclusive time
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
2120.000590.00059Geo::IP::open (xsub)
2120.000140.00014Geo::IP::bootstrap (xsub)
2121.3e-51.3e-5Geo::IP::GEOIP_STANDARD (xsub)
00000Geo::IP::BEGIN
00000Geo::IP::GEOIP_CITY_EDITION_REV0
00000Geo::IP::GEOIP_COUNTRY_EDITION
00000Geo::IP::GEOIP_ISP_EDITION
00000Geo::IP::GEOIP_ORG_EDITION
00000Geo::IP::GEOIP_REGION_EDITION_REV0
00000Geo::IP::__ANON__[:65]
00000Geo::IP::_get_region_name

LineStmts.Exclusive
Time
Avg.Code
1package Geo::IP;
2
336.3e-52.1e-5use strict;
# spent 26µs making 1 call to strict::import
430.002170.00072use base qw(Exporter);
# spent 132µs making 1 call to base::import
536.1e-52.0e-5use vars qw($VERSION @EXPORT $GEOIP_PP_ONLY @ISA $XS_VERSION);
# spent 111µs making 1 call to vars::import
6
719.2e-59.2e-5BEGIN { $GEOIP_PP_ONLY = 0 unless defined( $GEOIP_PP_ONLY );}
8
9BEGIN {
1011.0e-61.0e-6 $VERSION = '1.36';
1112.0e-62.0e-6 eval {
12
13 # PERL_DL_NONLAZY must be false, or any errors in loading will just
14 # cause the perl code to be tested
1513.0e-63.0e-6 local $ENV{PERL_DL_NONLAZY} = 0 if $ENV{PERL_DL_NONLAZY};
16
1710.000960.00096 require DynaLoader;
1815.0e-65.0e-6 local @ISA = qw(DynaLoader);
1912.2e-52.2e-5 bootstrap Geo::IP $VERSION;
# spent 61.2ms making 1 call to DynaLoader::bootstrap
20 } unless $GEOIP_PP_ONLY;
2110.000550.00055}
22
2310.000330.00033require Geo::IP::Record;
24
25sub GEOIP_STANDARD() { 0; } # PP
26sub GEOIP_MEMORY_CACHE() { 1; } # PP
27sub GEOIP_CHECK_CACHE() { 2; }
28sub GEOIP_INDEX_CACHE() { 4; }
29sub GEOIP_MMAP_CACHE() { 8; } # PP
30
31sub GEOIP_UNKNOWN_SPEED() { 0; } #PP
32sub GEOIP_DIALUP_SPEED() { 1; } #PP
33sub GEOIP_CABLEDSL_SPEED() { 2; } #PP
34sub GEOIP_CORPORATE_SPEED() { 3; } #PP
35
36
37BEGIN {
38
39#my $pp = !( defined &_XScompiled && &_XScompiled && !$TESTING_PERL_ONLY );
4013.0e-63.0e-6my $pp = !defined &open;
41
42sub GEOIP_COUNTRY_EDITION() { $pp ? 106 : 1; }
43sub GEOIP_REGION_EDITION_REV0() { $pp ? 112 : 7; }
44sub GEOIP_CITY_EDITION_REV0() { $pp ? 111 : 6; }
45sub GEOIP_ORG_EDITION() { $pp ? 110 : 5; }
46sub GEOIP_ISP_EDITION() { $pp ? 109 : 4; }
47sub GEOIP_CITY_EDITION_REV1() { 2; }
48sub GEOIP_REGION_EDITION_REV1() { 3; }
49sub GEOIP_PROXY_EDITION() { 8; }
50sub GEOIP_ASNUM_EDITION() { 9; }
51sub GEOIP_NETSPEED_EDITION() { 10; }
52sub GEOIP_DOMAIN_EDITION() { 11; }
53
54sub GEOIP_CHARSET_ISO_8859_1(){0;}
55sub GEOIP_CHARSET_UTF8(){1;}
56
57# cheat --- try to load Sys::Mmap PurePerl only
5812.0e-62.0e-6if ($pp) {
59 eval "require Sys::Mmap"
60 ? Sys::Mmap->import
61 : do {
62 for (qw/ PROT_READ MAP_PRIVATE MAP_SHARED /) {
6330.000113.8e-5 no strict 'refs';
# spent 47µs making 1 call to strict::unimport
64 my $unused_stub = $_; # we must use a copy
65 *$unused_stub = sub { die 'Sys::Mmap required for mmap support' };
66 }
67 } # do
68} # pp
69
7010.019120.01912}
71
7212.0e-62.0e-6eval << '__PP_CODE__' unless defined &open;
73
74use strict;
75use FileHandle;
76use File::Spec;
77
78BEGIN {
79 if ( $] >= 5.008 ) {
80 require Encode;
81 Encode->import(qw/ decode /);
82 }
83 else {
84 *decode = sub {
85 local $_ = $_[1];
86 use bytes;
87 s/([\x80-\xff])/my $c = ord($1);
88 my $p = $c >= 192 ? 1 : 0;
89 pack ( 'CC' => 0xc2 + $p , $c & ~0x40 ); /ge;
90 return $_;
91 };
92 }
93};
94
95use vars qw/$PP_OPEN_TYPE_PATH/;
96
97use constant FULL_RECORD_LENGTH => 50;
98use constant GEOIP_COUNTRY_BEGIN => 16776960;
99use constant RECORD_LENGTH => 3;
100use constant GEOIP_STATE_BEGIN_REV0 => 16700000;
101use constant GEOIP_STATE_BEGIN_REV1 => 16000000;
102use constant STRUCTURE_INFO_MAX_SIZE => 20;
103use constant DATABASE_INFO_MAX_SIZE => 100;
104
105#use constant GEOIP_COUNTRY_EDITION => 106;
106#use constant GEOIP_REGION_EDITION_REV0 => 112;
107#use constant GEOIP_REGION_EDITION_REV1 => 3;
108#use constant GEOIP_CITY_EDITION_REV0 => 111;
109#use constant GEOIP_CITY_EDITION_REV1 => 2;
110#use constant GEOIP_ORG_EDITION => 110;
111#use constant GEOIP_ISP_EDITION => 109;
112#use constant GEOIP_NETSPEED_EDITION => 10;
113
114use constant SEGMENT_RECORD_LENGTH => 3;
115use constant STANDARD_RECORD_LENGTH => 3;
116use constant ORG_RECORD_LENGTH => 4;
117use constant MAX_RECORD_LENGTH => 4;
118use constant MAX_ORG_RECORD_LENGTH => 300;
119use constant US_OFFSET => 1;
120use constant CANADA_OFFSET => 677;
121use constant WORLD_OFFSET => 1353;
122use constant FIPS_RANGE => 360;
123
124my @continents = qw/
125--
126AS EU EU AS AS SA SA EU AS SA
127AF AN SA OC EU OC SA AS EU SA
128AS EU AF EU AS AF AF SA AS SA
129SA SA AS AF AF EU SA NA AS AF
130AF AF EU AF OC SA AF AS SA SA
131SA AF AS AS EU EU AF EU SA SA
132AF SA EU AF AF AF EU AF EU OC
133SA OC EU EU EU AF EU SA AS SA
134AF EU SA AF AF SA AF EU SA SA
135OC AF SA AS AF SA EU SA EU AS
136EU AS AS AS AS AS EU EU SA AS
137AS AF AS AS OC AF SA AS AS AS
138SA AS AS AS SA EU AS AF AF EU
139EU EU AF AF EU EU AF OC EU AF
140AS AS AS OC SA AF SA EU AF AS
141AF NA AS AF AF OC AF OC AF SA
142EU EU AS OC OC OC AS SA SA OC
143OC AS AS EU SA OC SA AS EU OC
144SA AS AF EU AS AF AS OC AF AF
145EU AS AF EU EU EU AF EU AF AF
146SA AF SA AS AF SA AF AF AF AS
147AS OC AS AF OC AS AS SA OC AS
148AF EU AF OC NA SA AS EU SA SA
149SA SA AS OC OC OC AS AF EU AF
150AF EU AF -- -- -- EU EU EU EU
151SA SA
152/;
153
154my @countries = (
155 undef, qw/
156 AP EU AD AE AF AG AI
157 AL AM AN AO AQ AR AS AT
158 AU AW AZ BA BB BD BE BF
159 BG BH BI BJ BM BN BO BR
160 BS BT BV BW BY BZ CA CC
161 CD CF CG CH CI CK CL CM
162 CN CO CR CU CV CX CY CZ
163 DE DJ DK DM DO DZ EC EE
164 EG EH ER ES ET FI FJ FK
165 FM FO FR FX GA GB GD GE
166 GF GH GI GL GM GN GP GQ
167 GR GS GT GU GW GY HK HM
168 HN HR HT HU ID IE IL IN
169 IO IQ IR IS IT JM JO JP
170 KE KG KH KI KM KN KP KR
171 KW KY KZ LA LB LC LI LK
172 LR LS LT LU LV LY MA MC
173 MD MG MH MK ML MM MN MO
174 MP MQ MR MS MT MU MV MW
175 MX MY MZ NA NC NE NF NG
176 NI NL NO NP NR NU NZ OM
177 PA PE PF PG PH PK PL PM
178 PN PR PS PT PW PY QA RE
179 RO RU RW SA SB SC SD SE
180 SG SH SI SJ SK SL SM SN
181 SO SR ST SV SY SZ TC TD
182 TF TG TH TJ TK TM TN TO
183 TL TR TT TV TW TZ UA UG
184 UM US UY UZ VA VC VE VG
185 VI VN VU WF WS YE YT RS
186 ZA ZM ME ZW A1 A2 O1 AX
187 GG IM JE BL MF/
188);
189my @code3s = ( undef, qw/
190 AP EU AND ARE AFG ATG AIA
191 ALB ARM ANT AGO AQ ARG ASM AUT
192 AUS ABW AZE BIH BRB BGD BEL BFA
193 BGR BHR BDI BEN BMU BRN BOL BRA
194 BHS BTN BV BWA BLR BLZ CAN CC
195 COD CAF COG CHE CIV COK CHL CMR
196 CHN COL CRI CUB CPV CX CYP CZE
197 DEU DJI DNK DMA DOM DZA ECU EST
198 EGY ESH ERI ESP ETH FIN FJI FLK
199 FSM FRO FRA FX GAB GBR GRD GEO
200 GUF GHA GIB GRL GMB GIN GLP GNQ
201 GRC GS GTM GUM GNB GUY HKG HM
202 HND HRV HTI HUN IDN IRL ISR IND
203 IO IRQ IRN ISL ITA JAM JOR JPN
204 KEN KGZ KHM KIR COM KNA PRK KOR
205 KWT CYM KAZ LAO LBN LCA LIE LKA
206 LBR LSO LTU LUX LVA LBY MAR MCO
207 MDA MDG MHL MKD MLI MMR MNG MAC
208 MNP MTQ MRT MSR MLT MUS MDV MWI
209 MEX MYS MOZ NAM NCL NER NFK NGA
210 NIC NLD NOR NPL NRU NIU NZL OMN
211 PAN PER PYF PNG PHL PAK POL SPM
212 PCN PRI PSE PRT PLW PRY QAT REU
213 ROM RUS RWA SAU SLB SYC SDN SWE
214 SGP SHN SVN SJM SVK SLE SMR SEN
215 SOM SUR STP SLV SYR SWZ TCA TCD
216 TF TGO THA TJK TKL TKM TUN TON
217 TLS TUR TTO TUV TWN TZA UKR UGA
218 UM USA URY UZB VAT VCT VEN VGB
219 VIR VNM VUT WLF WSM YEM YT SRB
220 ZAF ZMB MNE ZWE A1 A2 O1 ALA
221 GGY IMN JEY BLM MAF /
222);
223my @names = (
224 undef,
225 "Asia/Pacific Region",
226 "Europe",
227 "Andorra",
228 "United Arab Emirates",
229 "Afghanistan",
230 "Antigua and Barbuda",
231 "Anguilla",
232 "Albania",
233 "Armenia",
234 "Netherlands Antilles",
235 "Angola",
236 "Antarctica",
237 "Argentina",
238 "American Samoa",
239 "Austria",
240 "Australia",
241 "Aruba",
242 "Azerbaijan",
243 "Bosnia and Herzegovina",
244 "Barbados",
245 "Bangladesh",
246 "Belgium",
247 "Burkina Faso",
248 "Bulgaria",
249 "Bahrain",
250 "Burundi",
251 "Benin",
252 "Bermuda",
253 "Brunei Darussalam",
254 "Bolivia",
255 "Brazil",
256 "Bahamas",
257 "Bhutan",
258 "Bouvet Island",
259 "Botswana",
260 "Belarus",
261 "Belize",
262 "Canada",
263 "Cocos (Keeling) Islands",
264 "Congo, The Democratic Republic of the",
265 "Central African Republic",
266 "Congo",
267 "Switzerland",
268 "Cote D'Ivoire",
269 "Cook Islands",
270 "Chile",
271 "Cameroon",
272 "China",
273 "Colombia",
274 "Costa Rica",
275 "Cuba",
276 "Cape Verde",
277 "Christmas Island",
278 "Cyprus",
279 "Czech Republic",
280 "Germany",
281 "Djibouti",
282 "Denmark",
283 "Dominica",
284 "Dominican Republic",
285 "Algeria",
286 "Ecuador",
287 "Estonia",
288 "Egypt",
289 "Western Sahara",
290 "Eritrea",
291 "Spain",
292 "Ethiopia",
293 "Finland",
294 "Fiji",
295 "Falkland Islands (Malvinas)",
296 "Micronesia, Federated States of",
297 "Faroe Islands",
298 "France",
299 "France, Metropolitan",
300 "Gabon",
301 "United Kingdom",
302 "Grenada",
303 "Georgia",
304 "French Guiana",
305 "Ghana",
306 "Gibraltar",
307 "Greenland",
308 "Gambia",
309 "Guinea",
310 "Guadeloupe",
311 "Equatorial Guinea",
312 "Greece",
313 "South Georgia and the South Sandwich Islands",
314 "Guatemala",
315 "Guam",
316 "Guinea-Bissau",
317 "Guyana",
318 "Hong Kong",
319 "Heard Island and McDonald Islands",
320 "Honduras",
321 "Croatia",
322 "Haiti",
323 "Hungary",
324 "Indonesia",
325 "Ireland",
326 "Israel",
327 "India",
328 "British Indian Ocean Territory",
329 "Iraq",
330 "Iran, Islamic Republic of",
331 "Iceland",
332 "Italy",
333 "Jamaica",
334 "Jordan",
335 "Japan",
336 "Kenya",
337 "Kyrgyzstan",
338 "Cambodia",
339 "Kiribati",
340 "Comoros",
341 "Saint Kitts and Nevis",
342 "Korea, Democratic People's Republic of",
343 "Korea, Republic of",
344 "Kuwait",
345 "Cayman Islands",
346 "Kazakhstan",
347 "Lao People's Democratic Republic",
348 "Lebanon",
349 "Saint Lucia",
350 "Liechtenstein",
351 "Sri Lanka",
352 "Liberia",
353 "Lesotho",
354 "Lithuania",
355 "Luxembourg",
356 "Latvia",
357 "Libyan Arab Jamahiriya",
358 "Morocco",
359 "Monaco",
360 "Moldova, Republic of",
361 "Madagascar",
362 "Marshall Islands",
363 "Macedonia",
364 "Mali",
365 "Myanmar",
366 "Mongolia",
367 "Macau",
368 "Northern Mariana Islands",
369 "Martinique",
370 "Mauritania",
371 "Montserrat",
372 "Malta",
373 "Mauritius",
374 "Maldives",
375 "Malawi",
376 "Mexico",
377 "Malaysia",
378 "Mozambique",
379 "Namibia",
380 "New Caledonia",
381 "Niger",
382 "Norfolk Island",
383 "Nigeria",
384 "Nicaragua",
385 "Netherlands",
386 "Norway",
387 "Nepal",
388 "Nauru",
389 "Niue",
390 "New Zealand",
391 "Oman",
392 "Panama",
393 "Peru",
394 "French Polynesia",
395 "Papua New Guinea",
396 "Philippines",
397 "Pakistan",
398 "Poland",
399 "Saint Pierre and Miquelon",
400 "Pitcairn Islands",
401 "Puerto Rico",
402 "Palestinian Territory",
403 "Portugal",
404 "Palau",
405 "Paraguay",
406 "Qatar",
407 "Reunion",
408 "Romania",
409 "Russian Federation",
410 "Rwanda",
411 "Saudi Arabia",
412 "Solomon Islands",
413 "Seychelles",
414 "Sudan",
415 "Sweden",
416 "Singapore",
417 "Saint Helena",
418 "Slovenia",
419 "Svalbard and Jan Mayen",
420 "Slovakia",
421 "Sierra Leone",
422 "San Marino",
423 "Senegal",
424 "Somalia",
425 "Suriname",
426 "Sao Tome and Principe",
427 "El Salvador",
428 "Syrian Arab Republic",
429 "Swaziland",
430 "Turks and Caicos Islands",
431 "Chad",
432 "French Southern Territories",
433 "Togo",
434 "Thailand",
435 "Tajikistan",
436 "Tokelau",
437 "Turkmenistan",
438 "Tunisia",
439 "Tonga",
440 "Timor-Leste",
441 "Turkey",
442 "Trinidad and Tobago",
443 "Tuvalu",
444 "Taiwan",
445 "Tanzania, United Republic of",
446 "Ukraine",
447 "Uganda",
448 "United States Minor Outlying Islands",
449 "United States",
450 "Uruguay",
451 "Uzbekistan",
452 "Holy See (Vatican City State)",
453 "Saint Vincent and the Grenadines",
454 "Venezuela",
455 "Virgin Islands, British",
456 "Virgin Islands, U.S.",
457 "Vietnam",
458 "Vanuatu",
459 "Wallis and Futuna",
460 "Samoa",
461 "Yemen",
462 "Mayotte",
463 "Serbia",
464 "South Africa",
465 "Zambia",
466 "Montenegro",
467 "Zimbabwe",
468 "Anonymous Proxy",
469 "Satellite Provider",
470 "Other",
471 "Aland Islands",
472 "Guernsey",
473 "Isle of Man",
474 "Jersey",
475 "Saint Barthelemy",
476 "Saint Martin"
477);
478
479# --- unfortunately we do not know the path so we assume the
480# default path /usr/local/share/GeoIP
481# if thats not true, you can set $Geo::IP::PP_OPEN_TYPE_PATH
482#
483sub open_type {
484 my ( $class, $type, $flags ) = @_;
485 my %type_dat_name_mapper = (
486 GEOIP_COUNTRY_EDITION() => 'GeoIP',
487 GEOIP_REGION_EDITION_REV0() => 'GeoIPRegion',
488 GEOIP_REGION_EDITION_REV1() => 'GeoIPRegion',
489 GEOIP_CITY_EDITION_REV0() => 'GeoIPCity',
490 GEOIP_CITY_EDITION_REV1() => 'GeoIPCity',
491 GEOIP_ISP_EDITION() => 'GeoIPISP',
492 GEOIP_ORG_EDITION() => 'GeoIPOrg',
493 GEOIP_PROXY_EDITION() => 'GeoIPProxy',
494 GEOIP_ASNUM_EDITION() => 'GeoIPASNum',
495 GEOIP_NETSPEED_EDITION() => 'GeoIPNetSpeed',
496 GEOIP_DOMAIN_EDITION() => 'GeoIPDomain',
497 );
498
499 my $name = $type_dat_name_mapper{$type};
500 die("Invalid database type $type\n") unless $name;
501
502 my $mkpath = sub { File::Spec->catfile( File::Spec->rootdir, @_ ) };
503
504 my $path =
505 defined $Geo::IP::PP_OPEN_TYPE_PATH
506 ? $Geo::IP::PP_OPEN_TYPE_PATH
507 : do {
508 $^O eq 'NetWare'
509 ? $mkpath->(qw/ etc GeoIP /)
510 : do {
511 $^O eq 'MSWin32'
512 ? $mkpath->(qw/ GeoIP /)
513 : $mkpath->(qw/ usr local share GeoIP /);
514 }
515 };
516
517 my $filename = File::Spec->catfile( $path, $name . '.dat' );
518 return $class->open( $filename, $flags );
519}
520
521sub open {
522 die "Geo::IP::open() requires a path name"
523 unless ( @_ > 1 and $_[1] );
524 my ( $class, $db_file, $flags ) = @_;
525 my $fh = FileHandle->new;
526 my $gi;
527 CORE::open $fh, "$db_file" or die "Error opening $db_file";
528 binmode($fh);
529 if ( $flags && ( $flags & ( GEOIP_MEMORY_CACHE | GEOIP_MMAP_CACHE ) ) ) {
530 my %self;
531 if ( $flags & GEOIP_MMAP_CACHE ) {
532 die "Sys::Mmap required for MMAP support"
533 unless defined $Sys::Mmap::VERSION;
534 mmap( $self{buf} = undef, 0, PROT_READ, MAP_PRIVATE, $fh )
535 or die "mmap: $!";
536 }
537 else {
538 local $/ = undef;
539 $self{buf} = <$fh>;
540 }
541 $self{fh} = $fh;
542 $gi = bless \%self, $class;
543 }
544 else {
545 $gi = bless { fh => $fh }, $class;
546 }
547 $gi->_setup_segments();
548 return $gi;
549}
550
551sub new {
552 my ( $class, $db_file, $flags ) = @_;
553
554 # this will be less messy once deprecated new( $path, [$flags] )
555 # is no longer supported (that's what open() is for)
556 my $def_db_file = '/usr/local/share/GeoIP/GeoIP.dat';
557 if ($^O eq 'NetWare') {
558 $def_db_file = 'sys:/etc/GeoIP/GeoIP.dat';
559 } elsif ($^O eq 'MSWin32') {
560 $def_db_file = 'c:/GeoIP/GeoIP.dat';
561 }
562 if ( !defined $db_file ) {
563
564 # called as new()
565 $db_file = $def_db_file;
566 }
567 elsif ( $db_file =~ /^\d+$/ ) {
568 # called as new( $flags )
569 $flags = $db_file;
570 $db_file = $def_db_file;
571 } # else called as new( $database_filename, [$flags] );
572
573 $class->open( $db_file, $flags );
574}
575
576#this function setups the database segments
577sub _setup_segments {
578 my ($gi) = @_;
579 my $a = 0;
580 my $i = 0;
581 my $j = 0;
582 my $delim;
583 my $buf;
584
585 $gi->{_charset} = GEOIP_CHARSET_ISO_8859_1;
586 $gi->{"databaseType"} = GEOIP_COUNTRY_EDITION;
587 $gi->{"record_length"} = STANDARD_RECORD_LENGTH;
588
589 my $filepos = tell( $gi->{fh} );
590 seek( $gi->{fh}, -3, 2 );
591 for ( $i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++ ) {
592 read( $gi->{fh}, $delim, 3 );
593
594 #find the delim
595 if ( $delim eq ( chr(255) . chr(255) . chr(255) ) ) {
596 read( $gi->{fh}, $a, 1 );
597
598 #read the databasetype
599 $gi->{"databaseType"} = ord($a);
600
601#chose the database segment for the database type
602#if database Type is GEOIP_REGION_EDITION then use database segment GEOIP_STATE_BEGIN
603 if ( $gi->{"databaseType"} == GEOIP_REGION_EDITION_REV0 ) {
604 $gi->{"databaseSegments"} = GEOIP_STATE_BEGIN_REV0;
605 }
606 elsif ( $gi->{"databaseType"} == GEOIP_REGION_EDITION_REV1 ) {
607 $gi->{"databaseSegments"} = GEOIP_STATE_BEGIN_REV1;
608 }
609
610#if database Type is GEOIP_CITY_EDITION, GEOIP_ISP_EDITION or GEOIP_ORG_EDITION then
611#read in the database segment
612 elsif ( ( $gi->{"databaseType"} == GEOIP_CITY_EDITION_REV0 )
613 || ( $gi->{"databaseType"} == GEOIP_CITY_EDITION_REV1 )
614 || ( $gi->{"databaseType"} == GEOIP_ORG_EDITION )
615 || ( $gi->{"databaseType"} == GEOIP_ISP_EDITION ) ) {
616 $gi->{"databaseSegments"} = 0;
617
618 #read in the database segment for the database type
619 read( $gi->{fh}, $buf, SEGMENT_RECORD_LENGTH );
620 for ( $j = 0; $j < SEGMENT_RECORD_LENGTH; $j++ ) {
621 $gi->{"databaseSegments"} +=
622 ( ord( substr( $buf, $j, 1 ) ) << ( $j * 8 ) );
623 }
624
625#record length is four for ISP databases and ORG databases
626#record length is three for country databases, region database and city databases
627 if ( $gi->{"databaseType"} == GEOIP_ORG_EDITION ) {
628 $gi->{"record_length"} = ORG_RECORD_LENGTH;
629 }
630 }
631 last;
632 }
633 else {
634 seek( $gi->{fh}, -4, 1 );
635 }
636 }
637
638#if database Type is GEOIP_COUNTY_EDITION then use database segment GEOIP_COUNTRY_BEGIN
639 if ( $gi->{"databaseType"} == GEOIP_COUNTRY_EDITION
640 || $gi->{"databaseType"} == GEOIP_NETSPEED_EDITION ) {
641 $gi->{"databaseSegments"} = GEOIP_COUNTRY_BEGIN;
642 }
643 seek( $gi->{fh}, $filepos, 0 );
644 return $gi;
645}
646
647sub _seek_country {
648 my ( $gi, $ipnum ) = @_;
649
650 my $fh = $gi->{fh};
651 my $offset = 0;
652
653 my ( $x0, $x1 );
654
655 my $reclen = $gi->{record_length};
656
657 for ( my $depth = 31; $depth >= 0; $depth-- ) {
658 unless ( exists $gi->{buf} ) {
659 seek $fh, $offset * 2 * $reclen, 0;
660 read $fh, $x0, $reclen;
661 read $fh, $x1, $reclen;
662 }
663 else {
664 $x0 = substr( $gi->{buf}, $offset * 2 * $reclen, $reclen );
665 $x1 = substr( $gi->{buf}, $offset * 2 * $reclen + $reclen, $reclen );
666 }
667
668 $x0 = unpack( "V1", $x0 . "\0" );
669 $x1 = unpack( "V1", $x1 . "\0" );
670
671 if ( $ipnum & ( 1 << $depth ) ) {
672 if ( $x1 >= $gi->{"databaseSegments"} ) {
673 $gi->{last_netmask} = 32 - $depth;
674 return $x1;
675 }
676 $offset = $x1;
677 }
678 else {
679 if ( $x0 >= $gi->{"databaseSegments"} ) {
680 $gi->{last_netmask} = 32 - $depth;
681 return $x0;
682 }
683 $offset = $x0;
684 }
685 }
686
687 print STDERR
688"Error Traversing Database for ipnum = $ipnum - Perhaps database is corrupt?";
689}
690
691sub charset {
692 return $_[0]->{_charset};
693}
694
695sub set_charset{
696 my ($gi, $charset) = @_;
697 my $old_charset = $gi->{_charset};
698 $gi->{_charset} = $charset;
699 return $old_charset;
700}
701
702#this function returns the country code of ip address
703sub country_code_by_addr {
704 my ( $gi, $ip_address ) = @_;
705 return unless $ip_address =~ m!^(?:\d{1,3}\.){3}\d{1,3}$!;
706 return $countries[ $gi->id_by_addr($ip_address) ];
707}
708
709#this function returns the country code3 of ip address
710sub country_code3_by_addr {
711 my ( $gi, $ip_address ) = @_;
712 return unless $ip_address =~ m!^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$!;
713 return $code3s[ $gi->id_by_addr($ip_address) ];
714}
715
716#this function returns the name of ip address
717sub country_name_by_addr {
718 my ( $gi, $ip_address ) = @_;
719 return unless $ip_address =~ m!^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$!;
720 return $names[ $gi->id_by_addr($ip_address) ];
721}
722
723sub id_by_addr {
724 my ( $gi, $ip_address ) = @_;
725 return unless $ip_address =~ m!^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$!;
726 return $gi->_seek_country( addr_to_num($ip_address) ) - GEOIP_COUNTRY_BEGIN;
727}
728
729#this function returns the country code of domain name
730sub country_code_by_name {
731 my ( $gi, $host ) = @_;
732 my $country_id = $gi->id_by_name($host);
733 return $countries[$country_id];
734}
735
736#this function returns the country code3 of domain name
737sub country_code3_by_name {
738 my ( $gi, $host ) = @_;
739 my $country_id = $gi->id_by_name($host);
740 return $code3s[$country_id];
741}
742
743#this function returns the country name of domain name
744sub country_name_by_name {
745 my ( $gi, $host ) = @_;
746 my $country_id = $gi->id_by_name($host);
747 return $names[$country_id];
748}
749
750sub id_by_name {
751 my ( $gi, $host ) = @_;
752 my $ip_address;
753 if ( $host =~ m!^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$! ) {
754 $ip_address = $host;
755 }
756 else {
757 $ip_address = join( '.', unpack( 'C4', ( gethostbyname($host) )[4] ) );
758 }
759 return unless $ip_address;
760 return $gi->_seek_country( addr_to_num($ip_address) ) - GEOIP_COUNTRY_BEGIN;
761}
762
763#this function returns the city record as a array
764sub get_city_record {
765 my ( $gi, $host ) = @_;
766 my $ip_address = $gi->get_ip_address($host);
767 return unless $ip_address;
768 my $record_buf;
769 my $record_buf_pos;
770 my $char;
771 my $metroarea_combo;
772 my $record_country_code = "";
773 my $record_country_code3 = "";
774 my $record_country_name = "";
775 my $record_region = "";
776 my $record_city = "";
777 my $record_postal_code = "";
778 my $record_latitude = "";
779 my $record_longitude = "";
780 my $record_metro_code = "";
781 my $record_area_code = "";
782 my $record_continent_code = '';
783 my $record_region_name = '';
784 my $str_length = 0;
785 my $i;
786 my $j;
787
788 #lookup the city
789 my $seek_country = $gi->_seek_country( addr_to_num($ip_address) );
790 if ( $seek_country == $gi->{"databaseSegments"} ) {
791 return;
792 }
793
794 #set the record pointer to location of the city record
795 my $record_pointer = $seek_country +
796 ( 2 * $gi->{"record_length"} - 1 ) * $gi->{"databaseSegments"};
797
798 unless ( exists $gi->{buf} ) {
799 seek( $gi->{"fh"}, $record_pointer, 0 );
800 read( $gi->{"fh"}, $record_buf, FULL_RECORD_LENGTH );
801 $record_buf_pos = 0;
802 }
803 else {
804 $record_buf = substr($gi->{buf}, $record_pointer, FULL_RECORD_LENGTH);
805 $record_buf_pos = 0;
806 }
807
808 #get the country
809 $char = ord( substr( $record_buf, $record_buf_pos, 1 ) );
810 $record_country_code = $countries[$char]; #get the country code
811 $record_country_code3 = $code3s[$char]; #get the country code with 3 letters
812 $record_country_name = $names[$char]; #get the country name
813 $record_buf_pos++;
814
815 # get the continent code
816 $record_continent_code = $continents[$char];
817
818 #get the region
819 $char = ord( substr( $record_buf, $record_buf_pos + $str_length, 1 ) );
820 while ( $char != 0 ) {
821 $str_length++; #get the length of string
822 $char = ord( substr( $record_buf, $record_buf_pos + $str_length, 1 ) );
823 }
824 if ( $str_length > 0 ) {
825 $record_region = substr( $record_buf, $record_buf_pos, $str_length );
826 }
827 $record_buf_pos += $str_length + 1;
828 $str_length = 0;
829
830 #get the city
831 $char = ord( substr( $record_buf, $record_buf_pos + $str_length, 1 ) );
832 while ( $char != 0 ) {
833 $str_length++; #get the length of string
834 $char = ord( substr( $record_buf, $record_buf_pos + $str_length, 1 ) );
835 }
836 if ( $str_length > 0 ) {
837 $record_city = substr( $record_buf, $record_buf_pos, $str_length );
838 }
839 $record_buf_pos += $str_length + 1;
840 $str_length = 0;
841
842 #get the postal code
843 $char = ord( substr( $record_buf, $record_buf_pos + $str_length, 1 ) );
844 while ( $char != 0 ) {
845 $str_length++; #get the length of string
846 $char = ord( substr( $record_buf, $record_buf_pos + $str_length, 1 ) );
847 }
848 if ( $str_length > 0 ) {
849 $record_postal_code = substr( $record_buf, $record_buf_pos, $str_length );
850 }
851 $record_buf_pos += $str_length + 1;
852 $str_length = 0;
853 my $latitude = 0;
854 my $longitude = 0;
855
856 #get the latitude
857 for ( $j = 0; $j < 3; ++$j ) {
858 $char = ord( substr( $record_buf, $record_buf_pos++, 1 ) );
859 $latitude += ( $char << ( $j * 8 ) );
860 }
861 $record_latitude = ( $latitude / 10000 ) - 180;
862
863 #get the longitude
864 for ( $j = 0; $j < 3; ++$j ) {
865 $char = ord( substr( $record_buf, $record_buf_pos++, 1 ) );
866 $longitude += ( $char << ( $j * 8 ) );
867 }
868 $record_longitude = ( $longitude / 10000 ) - 180;
869
870 #get the metro code and the area code
871 if ( GEOIP_CITY_EDITION_REV1 == $gi->{"databaseType"} ) {
872 $metroarea_combo = 0;
873 if ( $record_country_code eq "US" ) {
874
875 #if the country is US then read the dma/metro area combo
876 for ( $j = 0; $j < 3; ++$j ) {
877 $char = ord( substr( $record_buf, $record_buf_pos++, 1 ) );
878 $metroarea_combo += ( $char << ( $j * 8 ) );
879 }
880
881 #split the dma/metro area combo into the metro code and the area code
882 $record_metro_code = int( $metroarea_combo / 1000 );
883 $record_area_code = $metroarea_combo % 1000;
884 }
885 }
886 $record_region_name = _get_region_name($record_country_code, $record_region) || '';
887
888
889 # the pureperl API must convert the string by themself to UTF8
890 # using Encode for perl >= 5.008 otherwise use it's own iso-8859-1 to utf8 converter
891 $record_city = decode( 'iso-8859-1' => $record_city )
892 if $gi->charset == GEOIP_CHARSET_UTF8;
893
894 return (
895 $record_country_code, $record_country_code3, $record_country_name,
896 $record_region, $record_city, $record_postal_code,
897 $record_latitude, $record_longitude, $record_metro_code,
898 $record_area_code, $record_continent_code, $record_region_name,
899 $record_metro_code );
900}
901
902#this function returns the city record as a hash ref
903sub get_city_record_as_hash {
904 my ( $gi, $host ) = @_;
905 my %gir;
906
907 @gir{qw/ country_code country_code3 country_name region city
908 postal_code latitude longitude dma_code area_code
909 continent_code region_name metro_code/ } =
910 $gi->get_city_record($host);
911
912 return bless \%gir, 'Geo::IP::Record';
913}
914
915*record_by_addr = \&get_city_record_as_hash;
916*record_by_name = \&get_city_record_as_hash;
917
918#this function returns isp or org of the domain name
919sub org_by_name {
920 my ( $gi, $host ) = @_;
921 my $ip_address = $gi->get_ip_address($host);
922 my $seek_org = $gi->_seek_country( addr_to_num($ip_address) );
923 my $char;
924 my $org_buf;
925 my $org_buf_length = 0;
926 my $record_pointer;
927
928 if ( $seek_org == $gi->{"databaseSegments"} ) {
929 return undef;
930 }
931
932 $record_pointer =
933 $seek_org + ( 2 * $gi->{"record_length"} - 1 ) * $gi->{"databaseSegments"};
934
935 unless ( exists $gi->{buf} ) {
936 seek( $gi->{"fh"}, $record_pointer, 0 );
937 read( $gi->{"fh"}, $org_buf, MAX_ORG_RECORD_LENGTH );
938 }
939 else {
940 $org_buf = substr($gi->{buf}, $record_pointer, MAX_ORG_RECORD_LENGTH );
941 }
942
943 $char = ord( substr( $org_buf, 0, 1 ) );
944 while ( $char != 0 ) {
945 $org_buf_length++;
946 $char = ord( substr( $org_buf, $org_buf_length, 1 ) );
947 }
948
949 $org_buf = substr( $org_buf, 0, $org_buf_length );
950 return $org_buf;
951}
952
953#this function returns isp or org of the domain name
954*isp_by_name = \*org_by_name;
955*isp_by_addr = \*org_by_name;
956*org_by_addr = \*org_by_name;
957
958#this function returns the region
959sub region_by_name {
960 my ( $gi, $host ) = @_;
961 my $ip_address = $gi->get_ip_address($host);
962 return unless $ip_address;
963 if ( $gi->{"databaseType"} == GEOIP_REGION_EDITION_REV0 ) {
964 my $seek_region =
965 $gi->_seek_country( addr_to_num($ip_address) ) - GEOIP_STATE_BEGIN_REV0;
966 if ( $seek_region < 1000 ) {
967 return (
968 "US",
969 chr( ( $seek_region - 1000 ) / 26 + 65 )
970 . chr( ( $seek_region - 1000 ) % 26 + 65 )
971 );
972 }
973 else {
974 return ( $countries[$seek_region], "" );
975 }
976 }
977 elsif ( $gi->{"databaseType"} == GEOIP_REGION_EDITION_REV1 ) {
978 my $seek_region =
979 $gi->_seek_country( addr_to_num($ip_address) ) - GEOIP_STATE_BEGIN_REV1;
980 if ( $seek_region < US_OFFSET ) {
981 return ( "", "" );
982 }
983 elsif ( $seek_region < CANADA_OFFSET ) {
984
985 # return a us state
986 return (
987 "US",
988 chr( ( $seek_region - US_OFFSET ) / 26 + 65 )
989 . chr( ( $seek_region - US_OFFSET ) % 26 + 65 )
990 );
991 }
992 elsif ( $seek_region < WORLD_OFFSET ) {
993
994 # return a canada province
995 return (
996 "CA",
997 chr( ( $seek_region - CANADA_OFFSET ) / 26 + 65 )
998 . chr( ( $seek_region - CANADA_OFFSET ) % 26 + 65 )
999 );
1000 }
1001 else {
1002
1003 # return a country of the world
1004 my $c = $countries[ ( $seek_region - WORLD_OFFSET ) / FIPS_RANGE ];
1005 my $a2 = ( $seek_region - WORLD_OFFSET ) % FIPS_RANGE;
1006 my $r =
1007 chr( ( $a2 / 100 ) + 48 )
1008 . chr( ( ( $a2 / 10 ) % 10 ) + 48 )
1009 . chr( ( $a2 % 10 ) + 48 );
1010 return ( $c, $r );
1011 }
1012 }
1013}
1014
1015sub get_ip_address {
1016 my ( $gi, $host ) = @_;
1017 my $ip_address;
1018
1019 #check if host is ip address
1020 if ( $host =~ m!^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$! ) {
1021
1022 #host is ip address
1023 $ip_address = $host;
1024 }
1025 else {
1026
1027 #host is domain name do a dns lookup
1028 $ip_address = join( '.', unpack( 'C4', ( gethostbyname($host) )[4] ) );
1029 }
1030 return $ip_address;
1031}
1032
1033sub addr_to_num { unpack( N => pack( C4 => split( /\./, $_[0] ) ) ) }
1034sub num_to_addr { join q{.}, unpack( C4 => pack( N => $_[0] ) ) }
1035
1036#sub addr_to_num {
1037# my @a = split( '\.', $_[0] );
1038# return $a[0] * 16777216 + $a[1] * 65536 + $a[2] * 256 + $a[3];
1039#}
1040
1041sub database_info {
1042 my $gi = shift;
1043 my $i = 0;
1044 my $buf;
1045 my $retval;
1046 my $hasStructureInfo;
1047 seek( $gi->{fh}, -3, 2 );
1048 for ( my $i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++ ) {
1049 read( $gi->{fh}, $buf, 3 );
1050 if ( $buf eq ( chr(255) . chr(255) . chr(255) ) ) {
1051 $hasStructureInfo = 1;
1052 last;
1053 }
1054 seek( $gi->{fh}, -4, 1 );
1055 }
1056 if ( $hasStructureInfo == 1 ) {
1057 seek( $gi->{fh}, -6, 1 );
1058 }
1059 else {
1060
1061 # no structure info, must be pre Sep 2002 database, go back to
1062 seek( $gi->{fh}, -3, 2 );
1063 }
1064 for ( my $i = 0; $i < DATABASE_INFO_MAX_SIZE; $i++ ) {
1065 read( $gi->{fh}, $buf, 3 );
1066 if ( $buf eq ( chr(0) . chr(0) . chr(0) ) ) {
1067 read( $gi->{fh}, $retval, $i );
1068 return $retval;
1069 }
1070 seek( $gi->{fh}, -4, 1 );
1071 }
1072 return '';
1073}
1074
1075sub range_by_ip {
1076 my $gi = shift;
1077 my $ipnum = addr_to_num( shift );
1078 my $c = $gi->_seek_country( $ipnum );
1079 my $nm = $gi->last_netmask;
1080 my $m = 0xffffffff << 32 - $nm;
1081 my $left_seek_num = $ipnum & $m;
1082 my $right_seek_num = $left_seek_num + ( 0xffffffff & ~$m );
1083
1084 while ( $left_seek_num != 0
1085 and $c == $gi->_seek_country( $left_seek_num - 1) ) {
1086 my $lm = 0xffffffff << 32 - $gi->last_netmask;
1087 $left_seek_num = ( $left_seek_num - 1 ) & $lm;
1088 }
1089 while ( $right_seek_num != 0xffffffff
1090 and $c == $gi->_seek_country( $right_seek_num + 1 ) ) {
1091 my $rm = 0xffffffff << 32 - $gi->last_netmask;
1092 $right_seek_num = ( $right_seek_num + 1 ) & $rm;
1093 $right_seek_num += ( 0xffffffff & ~$rm );
1094 }
1095 return ( num_to_addr($left_seek_num), num_to_addr($right_seek_num) );
1096}
1097
1098
1099sub netmask { $_[0]->{last_netmask} = $_[1] }
1100
1101sub last_netmask {
1102 return $_[0]->{last_netmask};
1103}
1104
1105sub DESTROY {
1106 my $gi = shift;
1107
1108 if ( exists $gi->{buf} && $gi->{flags} && ( $gi->{flags} & GEOIP_MMAP_CACHE ) ) {
1109 munmap( $gi->{buf} ) or die "munmap: $!";
1110 delete $gi->{buf};
1111 }
1112}
1113
1114#sub _XS
1115__PP_CODE__
1116
111711.0e-61.0e-6print STDERR $@ if $@;
1118
1119
112011.1e-51.1e-5@EXPORT = qw(
1121 GEOIP_STANDARD GEOIP_MEMORY_CACHE
1122 GEOIP_CHECK_CACHE GEOIP_INDEX_CACHE
1123 GEOIP_UNKNOWN_SPEED GEOIP_DIALUP_SPEED
1124 GEOIP_CABLEDSL_SPEED GEOIP_CORPORATE_SPEED
1125 GEOIP_COUNTRY_EDITION GEOIP_REGION_EDITION_REV0
1126 GEOIP_CITY_EDITION_REV0 GEOIP_ORG_EDITION
1127 GEOIP_ISP_EDITION GEOIP_CITY_EDITION_REV1
1128 GEOIP_REGION_EDITION_REV1 GEOIP_PROXY_EDITION
1129 GEOIP_ASNUM_EDITION GEOIP_NETSPEED_EDITION
1130 GEOIP_CHARSET_ISO_8859_1 GEOIP_CHARSET_UTF8
1131 GEOIP_MMAP_CACHE
1132);
1133
1134## created with:
1135# perl -Ilib -e 'use MM::GeoIP::Reloaded::Country_Region_Names q{%country_region_names}; use Data::Dumper; print Dumper(\%country_region_names)' >/tmp/crn.pl
1136#
1137
113810.003090.00309my %country_region_names = (
1139 'GL' => {
1140 '01' => 'Nordgronland',
1141 '03' => 'Vestgronland',
1142 '02' => 'Ostgronland'
1143 },
1144 'DJ' => {
1145 '07' => 'Djibouti',
1146 '01' => 'Ali Sabieh',
1147 '05' => 'Tadjoura',
1148 '08' => 'Arta',
1149 '06' => 'Dikhil',
1150 '04' => 'Obock'
1151 },
1152 'JM' => {
1153 '11' => 'Saint Elizabeth',
1154 '01' => 'Clarendon',
1155 '04' => 'Manchester',
1156 '12' => 'Saint James',
1157 '17' => 'Kingston',
1158 '02' => 'Hanover',
1159 '14' => 'Saint Thomas',
1160 '15' => 'Trelawny',
1161 '07' => 'Portland',
1162 '08' => 'Saint Andrew',
1163 '10' => 'Saint Catherine',
1164 '13' => 'Saint Mary',
1165 '16' => 'Westmoreland',
1166 '09' => 'Saint Ann'
1167 },
1168 'PG' => {
1169 '11' => 'East Sepik',
1170 '05' => 'Southern Highlands',
1171 '04' => 'Northern',
1172 '17' => 'West New Britain',
1173 '02' => 'Gulf',
1174 '18' => 'Sandaun',
1175 '03' => 'Milne Bay',
1176 '08' => 'Chimbu',
1177 '06' => 'Western',
1178 '13' => 'Manus',
1179 '16' => 'Western Highlands',
1180 '01' => 'Central',
1181 '12' => 'Madang',
1182 '20' => 'National Capital',
1183 '14' => 'Morobe',
1184 '15' => 'New Ireland',
1185 '07' => 'North Solomons',
1186 '10' => 'East New Britain',
1187 '19' => 'Enga',
1188 '09' => 'Eastern Highlands'
1189 },
1190 'AT' => {
1191 '01' => 'Burgenland',
1192 '05' => 'Salzburg',
1193 '04' => 'Oberosterreich',
1194 '02' => 'Karnten',
1195 '07' => 'Tirol',
1196 '03' => 'Niederosterreich',
1197 '08' => 'Vorarlberg',
1198 '06' => 'Steiermark',
1199 '09' => 'Wien'
1200 },
1201 'KI' => {
1202 '01' => 'Gilbert Islands',
1203 '03' => 'Phoenix Islands',
1204 '02' => 'Line Islands'
1205 },
1206 'SZ' => {
1207 '01' => 'Hhohho',
1208 '03' => 'Manzini',
1209 '05' => 'Praslin',
1210 '04' => 'Shiselweni',
1211 '02' => 'Lubombo'
1212 },
1213 'BN' => {
1214 '11' => 'Collines',
1215 '12' => 'Kouffo',
1216 '17' => 'Plateau',
1217 '14' => 'Littoral',
1218 '15' => 'Tutong',
1219 '07' => 'Alibori',
1220 '18' => 'Zou',
1221 '08' => 'Belait',
1222 '13' => 'Donga',
1223 '16' => 'Oueme',
1224 '10' => 'Temburong',
1225 '09' => 'Brunei and Muara'
1226 },
1227 'ZM' => {
1228 '01' => 'Western',
1229 '05' => 'Northern',
1230 '04' => 'Luapula',
1231 '02' => 'Central',
1232 '07' => 'Southern',
1233 '03' => 'Eastern',
1234 '08' => 'Copperbelt',
1235 '06' => 'North-Western',
1236 '09' => 'Lusaka'
1237 },
1238 'CD' => {
1239 '11' => 'Nord-Kivu',
1240 '01' => 'Bandundu',
1241 '05' => 'Katanga',
1242 '04' => 'Kasai-Oriental',
1243 '12' => 'Sud-Kivu',
1244 '02' => 'Equateur',
1245 '07' => 'Kivu',
1246 '08' => 'Bas-Congo',
1247 '06' => 'Kinshasa',
1248 '10' => 'Maniema',
1249 '13' => 'Cuvette',
1250 '09' => 'Orientale'
1251 },
1252 'BW' => {
1253 '11' => 'North-West',
1254 '01' => 'Central',
1255 '05' => 'Kgatleng',
1256 '04' => 'Kgalagadi',
1257 '03' => 'Ghanzi',
1258 '08' => 'North-East',
1259 '06' => 'Kweneng',
1260 '10' => 'Southern',
1261 '09' => 'South-East'
1262 },
1263 'AO' => {
1264 '05' => 'Cuanza Norte',
1265 '04' => 'Cuando Cubango',
1266 '17' => 'Lunda Norte',
1267 '02' => 'Bie',
1268 '18' => 'Lunda Sul',
1269 '03' => 'Cabinda',
1270 '08' => 'Huambo',
1271 '16' => 'Zaire',
1272 '06' => 'Cuanza Sul',
1273 '01' => 'Benguela',
1274 '12' => 'Malanje',
1275 '20' => 'Luanda',
1276 '14' => 'Moxico',
1277 '15' => 'Uige',
1278 '07' => 'Cunene',
1279 '19' => 'Bengo',
1280 '10' => 'Luanda',
1281 '09' => 'Huila'
1282 },
1283 'ZW' => {
1284 '01' => 'Manicaland',
1285 '05' => 'Mashonaland West',
1286 '04' => 'Mashonaland East',
1287 '02' => 'Midlands',
1288 '07' => 'Matabeleland South',
1289 '03' => 'Mashonaland Central',
1290 '08' => 'Masvingo',
1291 '10' => 'Harare',
1292 '06' => 'Matabeleland North',
1293 '09' => 'Bulawayo'
1294 },
1295 'VC' => {
1296 '01' => 'Charlotte',
1297 '03' => 'Saint David',
1298 '05' => 'Saint Patrick',
1299 '06' => 'Grenadines',
1300 '04' => 'Saint George',
1301 '02' => 'Saint Andrew'
1302 },
1303 'JP' => {
1304 '32' => 'Osaka',
1305 '33' => 'Saga',
1306 '21' => 'Kumamoto',
1307 '05' => 'Ehime',
1308 '26' => 'Nagano',
1309 '04' => 'Chiba',
1310 '17' => 'Kagawa',
1311 '02' => 'Akita',
1312 '18' => 'Kagoshima',
1313 '03' => 'Aomori',
1314 '30' => 'Oita',
1315 '06' => 'Fukui',
1316 '16' => 'Iwate',
1317 '44' => 'Yamagata',
1318 '27' => 'Nagasaki',
1319 '25' => 'Miyazaki',
1320 '01' => 'Aichi',
1321 '28' => 'Nara',
1322 '40' => 'Tokyo',
1323 '14' => 'Ibaraki',
1324 '20' => 'Kochi',
1325 '07' => 'Fukuoka',
1326 '24' => 'Miyagi',
1327 '10' => 'Gumma',
1328 '31' => 'Okayama',
1329 '35' => 'Shiga',
1330 '11' => 'Hiroshima',
1331 '42' => 'Toyama',
1332 '22' => 'Kyoto',
1333 '46' => 'Yamanashi',
1334 '08' => 'Fukushima',
1335 '23' => 'Mie',
1336 '13' => 'Hyogo',
1337 '29' => 'Niigata',
1338 '39' => 'Tokushima',
1339 '36' => 'Shimane',
1340 '12' => 'Hokkaido',
1341 '41' => 'Tottori',
1342 '15' => 'Ishikawa',
1343 '47' => 'Okinawa',
1344 '38' => 'Tochigi',
1345 '34' => 'Saitama',
1346 '37' => 'Shizuoka',
1347 '45' => 'Yamaguchi',
1348 '19' => 'Kanagawa',
1349 '43' => 'Wakayama',
1350 '09' => 'Gifu'
1351 },
1352 'NA' => {
1353 '32' => 'Kunene',
1354 '33' => 'Ohangwena',
1355 '21' => 'Windhoek',
1356 '05' => 'Grootfontein',
1357 '26' => 'Mariental',
1358 '04' => 'Gobabis',
1359 '17' => 'Swakopmund',
1360 '02' => 'Caprivi Oos',
1361 '18' => 'Tsumeb',
1362 '03' => 'Boesmanland',
1363 '30' => 'Hardap',
1364 '06' => 'Kaokoland',
1365 '16' => 'Rehoboth',
1366 '27' => 'Namaland',
1367 '25' => 'Kavango',
1368 '01' => 'Bethanien',
1369 '28' => 'Caprivi',
1370 '14' => 'Outjo',
1371 '20' => 'Karasburg',
1372 '07' => 'Karibib',
1373 '24' => 'Hereroland Wes',
1374 '10' => 'Maltahohe',
1375 '31' => 'Karas',
1376 '35' => 'Omaheke',
1377 '11' => 'Okahandja',
1378 '22' => 'Damaraland',
1379 '08' => 'Keetmanshoop',
1380 '13' => 'Otjiwarongo',
1381 '23' => 'Hereroland Oos',
1382 '29' => 'Erongo',
1383 '39' => 'Otjozondjupa',
1384 '36' => 'Omusati',
1385 '12' => 'Omaruru',
1386 '15' => 'Owambo',
1387 '38' => 'Oshikoto',
1388 '34' => 'Okavango',
1389 '37' => 'Oshana',
1390 '09' => 'Luderitz'
1391 },
1392 'SH' => {
1393 '01' => 'Ascension',
1394 '03' => 'Tristan da Cunha',
1395 '02' => 'Saint Helena'
1396 },
1397 'TJ' => {
1398 '01' => 'Kuhistoni Badakhshon',
1399 '03' => 'Sughd',
1400 '02' => 'Khatlon'
1401 },
1402 'LC' => {
1403 '11' => 'Praslin',
1404 '01' => 'Anse-la-Raye',
1405 '05' => 'Dennery',
1406 '04' => 'Choiseul',
1407 '02' => 'Dauphin',
1408 '07' => 'Laborie',
1409 '03' => 'Castries',
1410 '08' => 'Micoud',
1411 '06' => 'Gros-Islet',
1412 '10' => 'Vieux-Fort',
1413 '09' => 'Soufriere'
1414 },
1415 'MA' => {
1416 '32' => 'Tiznit',
1417 '33' => 'Guelmim',
1418 '21' => 'Nador',
1419 '05' => 'Beni Mellal',
1420 '26' => 'Settat',
1421 '04' => 'Ben Slimane',
1422 '17' => 'Khenifra',
1423 '02' => 'Al Hoceima',
1424 '18' => 'Khouribga',
1425 '03' => 'Azilal',
1426 '30' => 'Taza',
1427 '06' => 'Boulemane',
1428 '16' => 'Khemisset',
1429 '55' => 'Souss-Massa-Dr,a',
1430 '27' => 'Tanger',
1431 '25' => 'Safi',
1432 '01' => 'Agadir',
1433 '40' => 'Tetouan',
1434 '57' => 'Tanger-Tetouan',
1435 '14' => 'Figuig',
1436 '20' => 'Meknes',
1437 '07' => 'Casablanca',
1438 '59' => 'La,youne-Boujdour-Sakia El Hamra',
1439 '49' => 'Rabat-Sale-Zemmour-Zaer',
1440 '24' => 'Rabat-Sale',
1441 '10' => 'El Kelaa des Srarhna',
1442 '35' => 'Laayoune',
1443 '11' => 'Er Rachidia',
1444 '53' => 'Guelmim-Es Smara',
1445 '48' => 'Meknes-Tafilalet',
1446 '22' => 'Ouarzazate',
1447 '08' => 'Chaouen',
1448 '46' => 'Fes-Boulemane',
1449 '23' => 'Oujda',
1450 '13' => 'Fes',
1451 '29' => 'Tata',
1452 '50' => 'Chaouia-Ouardigha',
1453 '39' => 'Taroudannt',
1454 '36' => 'Tan-Tan',
1455 '51' => 'Doukkala-Abda',
1456 '12' => 'Essaouira',
1457 '41' => 'Larache',
1458 '58' => 'Taza-Al Hoceima-Taounate',
1459 '15' => 'Kenitra',
1460 '47' => 'Marrakech-Tensift-Al Haouz',
1461 '38' => 'Sidi Kacem',
1462 '52' => 'Gharb-Chrarda-Beni Hssen',
1463 '34' => 'Ifrane',
1464 '56' => 'Tadla-Azilal',
1465 '37' => 'Taounate',
1466 '45' => 'Grand Casablanca',
1467 '19' => 'Marrakech',
1468 '09' => 'El Jadida',
1469 '54' => 'Oriental'
1470 },
1471 'VU' => {
1472 '11' => 'Paama',
1473 '05' => 'Ambrym',
1474 '12' => 'Pentecote',
1475 '17' => 'Penama',
1476 '14' => 'Shepherd',
1477 '15' => 'Tafea',
1478 '07' => 'Torba',
1479 '18' => 'Shefa',
1480 '08' => 'Efate',
1481 '10' => 'Malakula',
1482 '06' => 'Aoba',
1483 '13' => 'Sanma',
1484 '16' => 'Malampa',
1485 '09' => 'Epi'
1486 },
1487 'SV' => {
1488 '11' => 'Santa Ana',
1489 '01' => 'Ahuachapan',
1490 '05' => 'La Libertad',
1491 '04' => 'Cuscatlan',
1492 '12' => 'San Vicente',
1493 '02' => 'Cabanas',
1494 '14' => 'Usulutan',
1495 '07' => 'La Union',
1496 '08' => 'Morazan',
1497 '03' => 'Chalatenango',
1498 '06' => 'La Paz',
1499 '10' => 'San Salvador',
1500 '13' => 'Sonsonate',
1501 '09' => 'San Miguel'
1502 },
1503 'MN' => {
1504 '11' => 'Hentiy',
1505 '21' => 'Bulgan',
1506 '05' => 'Darhan',
1507 '17' => 'Suhbaatar',
1508 '02' => 'Bayanhongor',
1509 '22' => 'Erdenet',
1510 '18' => 'Tov',
1511 '08' => 'Dundgovi',
1512 '03' => 'Bayan-Olgiy',
1513 '06' => 'Dornod',
1514 '13' => 'Hovsgol',
1515 '16' => 'Selenge',
1516 '23' => 'Darhan-Uul',
1517 '25' => 'Orhon',
1518 '01' => 'Arhangay',
1519 '12' => 'Hovd',
1520 '15' => 'Ovorhangay',
1521 '14' => 'Omnogovi',
1522 '20' => 'Ulaanbaatar',
1523 '07' => 'Dornogovi',
1524 '24' => 'Govisumber',
1525 '10' => 'Govi-Altay',
1526 '19' => 'Uvs',
1527 '09' => 'Dzavhan'
1528 },
1529 'IT' => {
1530 '11' => 'Molise',
1531 '05' => 'Emilia-Romagna',
1532 '04' => 'Campania',
1533 '17' => 'Trentino-Alto Adige',
1534 '02' => 'Basilicata',
1535 '18' => 'Umbria',
1536 '03' => 'Calabria',
1537 '08' => 'Liguria',
1538 '06' => 'Friuli-Venezia Giulia',
1539 '13' => 'Puglia',
1540 '16' => 'Toscana',
1541 '01' => 'Abruzzi',
1542 '12' => 'Piemonte',
1543 '20' => 'Veneto',
1544 '14' => 'Sardegna',
1545 '15' => 'Sicilia',
1546 '07' => 'Lazio',
1547 '10' => 'Marche',
1548 '19' => 'Valle d\'Aosta',
1549 '09' => 'Lombardia'
1550 },
1551 'WS' => {
1552 '11' => 'Vaisigano',
1553 '05' => 'Gaga',
1554 '04' => 'Fa',
1555 '02' => 'Aiga-i-le-Tai',
1556 '07' => 'Gagaifomauga',
1557 '03' => 'Atua',
1558 '08' => 'Palauli',
1559 '10' => 'Tuamasaga',
1560 '06' => 'Va',
1561 '09' => 'Satupa'
1562 },
1563 'FR' => {
1564 'A1' => 'Bourgogne',
1565 'B4' => 'Nord-Pas-de-Calais',
1566 'A2' => 'Bretagne',
1567 'B6' => 'Picardie',
1568 'C1' => 'Alsace',
1569 '99' => 'Basse-Normandie',
1570 'A8' => 'Ile-de-France',
1571 'B2' => 'Lorraine',
1572 'B8' => 'Provence-Alpes-Cote d\'Azur',
1573 'A7' => 'Haute-Normandie',
1574 'B5' => 'Pays de la Loire',
1575 'B1' => 'Limousin',
1576 'A6' => 'Franche-Comte',
1577 '97' => 'Aquitaine',
1578 'A5' => 'Corse',
1579 'A4' => 'Champagne-Ardenne',
1580 'B7' => 'Poitou-Charentes',
1581 '98' => 'Auvergne',
1582 'A3' => 'Centre',
1583 'B9' => 'Rhone-Alpes',
1584 'B3' => 'Midi-Pyrenees',
1585 'A9' => 'Languedoc-Roussillon'
1586 },
1587 'EG' => {
1588 '11' => 'Al Qahirah',
1589 '21' => 'Kafr ash Shaykh',
1590 '05' => 'Al Gharbiyah',
1591 '26' => 'Janub Sina\'',
1592 '04' => 'Al Fayyum',
1593 '17' => 'Asyut',
1594 '02' => 'Al Bahr al Ahmar',
1595 '22' => 'Matruh',
1596 '18' => 'Bani Suwayf',
1597 '08' => 'Al Jizah',
1598 '03' => 'Al Buhayrah',
1599 '06' => 'Al Iskandariyah',
1600 '13' => 'Al Wadi al Jadid',
1601 '16' => 'Aswan',
1602 '23' => 'Qina',
1603 '27' => 'Shamal Sina\'',
1604 '01' => 'Ad Daqahliyah',
1605 '12' => 'Al Qalyubiyah',
1606 '15' => 'As Suways',
1607 '14' => 'Ash Sharqiyah',
1608 '20' => 'Dumyat',
1609 '07' => 'Al Isma\'iliyah',
1610 '24' => 'Suhaj',
1611 '10' => 'Al Minya',
1612 '19' => 'Bur Sa\'id',
1613 '09' => 'Al Minufiyah'
1614 },
1615 'UZ' => {
1616 '11' => 'Sirdaryo',
1617 '01' => 'Andijon',
1618 '05' => 'Khorazm',
1619 '04' => 'Jizzakh',
1620 '12' => 'Surkhondaryo',
1621 '02' => 'Bukhoro',
1622 '14' => 'Toshkent',
1623 '07' => 'Nawoiy',
1624 '08' => 'Qashqadaryo',
1625 '03' => 'Farghona',
1626 '06' => 'Namangan',
1627 '10' => 'Samarqand',
1628 '13' => 'Toshkent',
1629 '09' => 'Qoraqalpoghiston'
1630 },
1631 'LR' => {
1632 '11' => 'Grand Bassa',
1633 '01' => 'Bong',
1634 '04' => 'Grand Cape Mount',
1635 '14' => 'Montserrado',
1636 '20' => 'Lofa',
1637 '07' => 'Monrovia',
1638 '19' => 'Grand Gedeh',
1639 '06' => 'Maryland',
1640 '10' => 'Sino',
1641 '09' => 'Nimba'
1642 },
1643 'RW' => {
1644 '11' => 'Est',
1645 '01' => 'Butare',
1646 '12' => 'Kigali',
1647 '14' => 'Ouest',
1648 '15' => 'Sud',
1649 '13' => 'Nord',
1650 '06' => 'Gitarama',
1651 '09' => 'Kigali'
1652 },
1653 'TN' => {
1654 '35' => 'Tawzar',
1655 '32' => 'Safaqis',
1656 '33' => 'Sidi Bu Zayd',
1657 '17' => 'Bajah',
1658 '02' => 'Al Qasrayn',
1659 '22' => 'Silyanah',
1660 '18' => 'Banzart',
1661 '03' => 'Al Qayrawan',
1662 '30' => 'Qafşah',
1663 '16' => 'Al Munastir',
1664 '23' => 'Susah',
1665 '06' => 'Jundubah',
1666 '29' => 'Qabis',
1667 '27' => 'Bin',
1668 '39' => 'Manouba',
1669 '28' => 'Madanin',
1670 '36' => 'Tunis',
1671 '15' => 'Al Mahdiyah',
1672 '14' => 'Kef',
1673 '38' => 'Ariana',
1674 '34' => 'Tatawin',
1675 '37' => 'Zaghwan',
1676 '10' => 'Qafsah',
1677 '19' => 'Nabul',
1678 '31' => 'Qibili'
1679 },
1680 'BE' => {
1681 '11' => 'Brussels Hoofdstedelijk Gewest',
1682 '01' => 'Antwerpen',
1683 '05' => 'Limburg',
1684 '04' => 'Liege',
1685 '12' => 'Vlaams-Brabant',
1686 '02' => 'Brabant',
1687 '07' => 'Namur',
1688 '08' => 'Oost-Vlaanderen',
1689 '03' => 'Hainaut',
1690 '06' => 'Luxembourg',
1691 '10' => 'Brabant Wallon',
1692 '09' => 'West-Vlaanderen'
1693 },
1694 'EE' => {
1695 '11' => 'Parnumaa',
1696 '21' => 'Vorumaa',
1697 '05' => 'Jogevamaa',
1698 '04' => 'Jarvamaa',
1699 '17' => 'Tartu',
1700 '02' => 'Hiiumaa',
1701 '18' => 'Tartumaa',
1702 '08' => 'Laane-Virumaa',
1703 '03' => 'Ida-Virumaa',
1704 '06' => 'Kohtla-Jarve',
1705 '13' => 'Raplamaa',
1706 '16' => 'Tallinn',
1707 '01' => 'Harjumaa',
1708 '12' => 'Polvamaa',
1709 '15' => 'Sillamae',
1710 '20' => 'Viljandimaa',
1711 '14' => 'Saaremaa',
1712 '07' => 'Laanemaa',
1713 '10' => 'Parnu',
1714 '19' => 'Valgamaa',
1715 '09' => 'Narva'
1716 },
1717 'BY' => {
1718 '07' => 'Vitsyebskaya Voblasts\'',
1719 '01' => 'Brestskaya Voblasts\'',
1720 '03' => 'Hrodzyenskaya Voblasts\'',
1721 '05' => 'Minskaya Voblasts\'',
1722 '06' => 'Mahilyowskaya Voblasts\'',
1723 '04' => 'Minsk',
1724 '02' => 'Homyel\'skaya Voblasts\''
1725 },
1726 'SA' => {
1727 '05' => 'Al Madinah',
1728 '17' => 'Jizan',
1729 '02' => 'Al Bahah',
1730 '14' => 'Makkah',
1731 '15' => 'Al Hudud ash Shamaliyah',
1732 '20' => 'Al Jawf',
1733 '03' => 'Al Jawf',
1734 '08' => 'Al Qasim',
1735 '13' => 'Ha\'il',
1736 '10' => 'Ar Riyad',
1737 '06' => 'Ash Sharqiyah',
1738 '16' => 'Najran',
1739 '19' => 'Tabuk',
1740 '09' => 'Al Qurayyat'
1741 },
1742 'NO' => {
1743 '11' => 'Oppland',
1744 '05' => 'Finnmark',
1745 '04' => 'Buskerud',
1746 '17' => 'Telemark',
1747 '02' => 'Aust-Agder',
1748 '18' => 'Troms',
1749 '08' => 'More og Romsdal',
1750 '06' => 'Hedmark',
1751 '16' => 'Sor-Trondelag',
1752 '13' => 'Ostfold',
1753 '01' => 'Akershus',
1754 '12' => 'Oslo',
1755 '20' => 'Vestfold',
1756 '14' => 'Rogaland',
1757 '15' => 'Sogn og Fjordane',
1758 '07' => 'Hordaland',
1759 '10' => 'Nord-Trondelag',
1760 '19' => 'Vest-Agder',
1761 '09' => 'Nordland'
1762 },
1763 'LS' => {
1764 '11' => 'Butha-Buthe',
1765 '12' => 'Leribe',
1766 '17' => 'Qachas Nek',
1767 '14' => 'Maseru',
1768 '15' => 'Mohales Hoek',
1769 '18' => 'Quthing',
1770 '16' => 'Mokhotlong',
1771 '13' => 'Mafeteng',
1772 '19' => 'Thaba-Tseka',
1773 '10' => 'Berea'
1774 },
1775 'KR' => {
1776 '11' => 'Seoul-t\'ukpyolsi',
1777 '21' => 'Ulsan-gwangyoksi',
1778 '05' => 'Ch\'ungch\'ong-bukto',
1779 '17' => 'Ch\'ungch\'ong-namdo',
1780 '18' => 'Kwangju-jikhalsi',
1781 '03' => 'Cholla-bukto',
1782 '13' => 'Kyonggi-do',
1783 '16' => 'Cholla-namdo',
1784 '06' => 'Kangwon-do',
1785 '01' => 'Cheju-do',
1786 '12' => 'Inch\'on-jikhalsi',
1787 '14' => 'Kyongsang-bukto',
1788 '15' => 'Taegu-jikhalsi',
1789 '20' => 'Kyongsang-namdo',
1790 '10' => 'Pusan-jikhalsi',
1791 '19' => 'Taejon-jikhalsi'
1792 },
1793 'ZA' => {
1794 '11' => 'Western Cape',
1795 '05' => 'Eastern Cape',
1796 '02' => 'KwaZulu-Natal',
1797 '07' => 'Mpumalanga',
1798 '03' => 'Free State',
1799 '08' => 'Northern Cape',
1800 '06' => 'Gauteng',
1801 '10' => 'North-West',
1802 '09' => 'Limpopo'
1803 },
1804 'PT' => {
1805 '11' => 'Guarda',
1806 '21' => 'Vila Real',
1807 '05' => 'Braganca',
1808 '04' => 'Braga',
1809 '17' => 'Porto',
1810 '02' => 'Aveiro',
1811 '22' => 'Viseu',
1812 '18' => 'Santarem',
1813 '08' => 'Evora',
1814 '03' => 'Beja',
1815 '06' => 'Castelo Branco',
1816 '13' => 'Leiria',
1817 '16' => 'Portalegre',
1818 '23' => 'Azores',
1819 '20' => 'Viana do Castelo',
1820 '14' => 'Lisboa',
1821 '07' => 'Coimbra',
1822 '19' => 'Setubal',
1823 '10' => 'Madeira',
1824 '09' => 'Faro'
1825 },
1826 'BF' => {
1827 '33' => 'Oudalan',
1828 '67' => 'Noumbiel',
1829 '21' => 'Gnagna',
1830 '63' => 'Mouhoun',
1831 '70' => 'Sanmatenga',
1832 '71' => 'Seno',
1833 '68' => 'Oubritenga',
1834 '72' => 'Sissili',
1835 '44' => 'Zoundweogo',
1836 '55' => 'Komoe',
1837 '74' => 'Tuy',
1838 '28' => 'Kouritenga',
1839 '75' => 'Yagha',
1840 '57' => 'Kompienga',
1841 '40' => 'Soum',
1842 '61' => 'Leraba',
1843 '20' => 'Ganzourgou',
1844 '69' => 'Poni',
1845 '59' => 'Koulpelogo',
1846 '49' => 'Boulgou',
1847 '53' => 'Kadiogo',
1848 '78' => 'Zondoma',
1849 '48' => 'Bougouriba',
1850 '42' => 'Tapoa',
1851 '77' => 'Ziro',
1852 '46' => 'Banwa',
1853 '65' => 'Naouri',
1854 '50' => 'Gourma',
1855 '36' => 'Sanguie',
1856 '64' => 'Namentenga',
1857 '51' => 'Houet',
1858 '58' => 'Kossi',
1859 '15' => 'Bam',
1860 '47' => 'Bazega',
1861 '52' => 'Ioba',
1862 '60' => 'Kourweogo',
1863 '34' => 'Passore',
1864 '56' => 'Komondjari',
1865 '45' => 'Bale',
1866 '66' => 'Nayala',
1867 '73' => 'Sourou',
1868 '19' => 'Boulkiemde',
1869 '76' => 'Yatenga',
1870 '62' => 'Loroum',
1871 '54' => 'Kenedougou'
1872 },
1873 'CA' => {
1874 'NT' => 'Northwest Territories',
1875 'BC' => 'British Columbia',
1876 'NL' => 'Newfoundland',
1877 'MB' => 'Manitoba',
1878 'NS' => 'Nova Scotia',
1879 'ON' => 'Ontario',
1880 'QC' => 'Quebec',
1881 'YT' => 'Yukon Territory',
1882 'NU' => 'Nunavut',
1883 'PE' => 'Prince Edward Island',
1884 'NB' => 'New Brunswick',
1885 'SK' => 'Saskatchewan',
1886 'AB' => 'Alberta'
1887 },
1888 'AM' => {
1889 '11' => 'Yerevan',
1890 '01' => 'Aragatsotn',
1891 '05' => 'Kotayk\'',
1892 '04' => 'Geghark\'unik\'',
1893 '02' => 'Ararat',
1894 '07' => 'Shirak',
1895 '03' => 'Armavir',
1896 '08' => 'Syunik\'',
1897 '06' => 'Lorri',
1898 '10' => 'Vayots\' Dzor',
1899 '09' => 'Tavush'
1900 },
1901 'CM' => {
1902 '11' => 'Centre',
1903 '05' => 'Littoral',
1904 '04' => 'Est',
1905 '12' => 'Extreme-Nord',
1906 '14' => 'Sud',
1907 '07' => 'Nord-Ouest',
1908 '08' => 'Ouest',
1909 '13' => 'Nord',
1910 '10' => 'Adamaoua',
1911 '09' => 'Sud-Ouest'
1912 },
1913 'SR' => {
1914 '11' => 'Commewijne',
1915 '12' => 'Coronie',
1916 '17' => 'Saramacca',
1917 '14' => 'Nickerie',
1918 '15' => 'Para',
1919 '18' => 'Sipaliwini',
1920 '16' => 'Paramaribo',
1921 '13' => 'Marowijne',
1922 '19' => 'Wanica',
1923 '10' => 'Brokopondo'
1924 },
1925 'MG' => {
1926 '01' => 'Antsiranana',
1927 '03' => 'Mahajanga',
1928 '05' => 'Antananarivo',
1929 '06' => 'Toliara',
1930 '04' => 'Toamasina',
1931 '02' => 'Fianarantsoa'
1932 },
1933 'NP' => {
1934 '11' => 'Narayani',
1935 '01' => 'Bagmati',
1936 '05' => 'Janakpur',
1937 '04' => 'Gandaki',
1938 '12' => 'Rapti',
1939 '02' => 'Bheri',
1940 '14' => 'Seti',
1941 '07' => 'Kosi',
1942 '08' => 'Lumbini',
1943 '03' => 'Dhawalagiri',
1944 '06' => 'Karnali',
1945 '10' => 'Mechi',
1946 '13' => 'Sagarmatha',
1947 '09' => 'Mahakali'
1948 },
1949 'BT' => {
1950 '11' => 'Lhuntshi',
1951 '21' => 'Tongsa',
1952 '05' => 'Bumthang',
1953 '17' => 'Samdrup',
1954 '22' => 'Wangdi Phodrang',
1955 '18' => 'Shemgang',
1956 '08' => 'Daga',
1957 '06' => 'Chhukha',
1958 '16' => 'Samchi',
1959 '13' => 'Paro',
1960 '12' => 'Mongar',
1961 '14' => 'Pemagatsel',
1962 '15' => 'Punakha',
1963 '20' => 'Thimphu',
1964 '07' => 'Chirang',
1965 '19' => 'Tashigang',
1966 '10' => 'Ha',
1967 '09' => 'Geylegphug'
1968 },
1969 'PL' => {
1970 '32' => 'Gorzow',
1971 '33' => 'Jelenia Gora',
1972 '63' => 'Tarnobrzeg',
1973 '71' => 'Zielona Gora',
1974 '26' => 'Bydgoszcz',
1975 '80' => 'Podkarpackie',
1976 '72' => 'Dolnoslaskie',
1977 '44' => 'Lomza',
1978 '55' => 'Radom',
1979 '84' => 'Swietokrzyskie',
1980 '74' => 'Lodzkie',
1981 '27' => 'Chelm',
1982 '57' => 'Siedlce',
1983 '61' => 'Suwalki',
1984 '31' => 'Gdansk',
1985 '35' => 'Katowice',
1986 '78' => 'Mazowieckie',
1987 '48' => 'Opole',
1988 '87' => 'Zachodniopomorskie',
1989 '77' => 'Malopolskie',
1990 '65' => 'Torun',
1991 '29' => 'Czestochowa',
1992 '50' => 'Pila',
1993 '39' => 'Krakow',
1994 '64' => 'Tarnow',
1995 '58' => 'Sieradz',
1996 '41' => 'Legnica',
1997 '81' => 'Podlaskie',
1998 '52' => 'Plock',
1999 '60' => 'Slupsk',
2000 '56' => 'Rzeszow',
2001 '45' => 'Lublin',
2002 '73' => 'Kujawsko-Pomorskie',
2003 '66' => 'Walbrzych',
2004 '76' => 'Lubuskie',
2005 '86' => 'Wielkopolskie',
2006 '62' => 'Szczecin',
2007 '54' => 'Przemysl',
2008 '67' => 'Warszawa',
2009 '70' => 'Zamosc',
2010 '68' => 'Wloclawek',
2011 '30' => 'Elblag',
2012 '82' => 'Pomorskie',
2013 '25' => 'Bielsko',
2014 '28' => 'Ciechanow',
2015 '40' => 'Krosno',
2016 '75' => 'Lubelskie',
2017 '83' => 'Slaskie',
2018 '59' => 'Skierniewice',
2019 '69' => 'Wroclaw',
2020 '49' => 'Ostroleka',
2021 '24' => 'Bialystok',
2022 '53' => 'Poznan',
2023 '79' => 'Opolskie',
2024 '42' => 'Leszno',
2025 '46' => 'Nowy Sacz',
2026 '23' => 'Biala Podlaska',
2027 '85' => 'Warminsko-Mazurskie',
2028 '36' => 'Kielce',
2029 '51' => 'Piotrkow',
2030 '47' => 'Olsztyn',
2031 '38' => 'Koszalin',
2032 '34' => 'Kalisz',
2033 '37' => 'Konin',
2034 '43' => 'Lodz'
2035 },
2036 'TM' => {
2037 '01' => 'Ahal',
2038 '03' => 'Dashoguz',
2039 '05' => 'Mary',
2040 '04' => 'Lebap',
2041 '02' => 'Balkan'
2042 },
2043 'GA' => {
2044 '01' => 'Estuaire',
2045 '05' => 'Nyanga',
2046 '04' => 'Ngounie',
2047 '02' => 'Haut-Ogooue',
2048 '07' => 'Ogooue-Lolo',
2049 '03' => 'Moyen-Ogooue',
2050 '08' => 'Ogooue-Maritime',
2051 '06' => 'Ogooue-Ivindo',
2052 '09' => 'Woleu-Ntem'
2053 },
2054 'CF' => {
2055 '11' => 'Ouaka',
2056 '01' => 'Bamingui-Bangoran',
2057 '05' => 'Haut-Mbomou',
2058 '12' => 'Ouham',
2059 '04' => 'Mambere-Kadei',
2060 '17' => 'Ombella-Mpoko',
2061 '15' => 'Nana-Grebizi',
2062 '14' => 'Cuvette-Ouest',
2063 '02' => 'Basse-Kotto',
2064 '07' => 'Lobaye',
2065 '18' => 'Bangui',
2066 '03' => 'Haute-Kotto',
2067 '08' => 'Mbomou',
2068 '06' => 'Kemo',
2069 '13' => 'Ouham-Pende',
2070 '16' => 'Sangha-Mbaere',
2071 '09' => 'Nana-Mambere'
2072 },
2073 'BA' => {
2074 '01' => 'Federation of Bosnia and Herzegovina',
2075 '02' => 'Republika Srpska'
2076 },
2077 'AE' => {
2078 '07' => 'Umm Al Quwain',
2079 '01' => 'Abu Dhabi',
2080 '03' => 'Dubai',
2081 '05' => 'Ras Al Khaimah',
2082 '06' => 'Sharjah',
2083 '04' => 'Fujairah',
2084 '02' => 'Ajman'
2085 },
2086 'TH' => {
2087 '32' => 'Chai Nat',
2088 '33' => 'Sing Buri',
2089 '21' => 'Nakhon Phanom',
2090 '63' => 'Krabi',
2091 '71' => 'Ubon Ratchathani',
2092 '26' => 'Chaiyaphum',
2093 '02' => 'Chiang Mai',
2094 '18' => 'Loei',
2095 '03' => 'Chiang Rai',
2096 '72' => 'Yasothon',
2097 '16' => 'Nakhon Sawan',
2098 '44' => 'Chachoengsao',
2099 '55' => 'Samut Sakhon',
2100 '27' => 'Nakhon Ratchasima',
2101 '01' => 'Mae Hong Son',
2102 '57' => 'Prachuap Khiri Khan',
2103 '61' => 'Phangnga',
2104 '20' => 'Sakon Nakhon',
2105 '10' => 'Uttaradit',
2106 '31' => 'Narathiwat',
2107 '35' => 'Ang Thong',
2108 '11' => 'Kamphaeng Phet',
2109 '78' => 'Mukdahan',
2110 '48' => 'Chanthaburi',
2111 '08' => 'Tak',
2112 '65' => 'Trang',
2113 '29' => 'Surin',
2114 '50' => 'Kanchanaburi',
2115 '39' => 'Pathum Thani',
2116 '64' => 'Nakhon Si Thammarat',
2117 '12' => 'Phitsanulok',
2118 '58' => 'Chumphon',
2119 '41' => 'Phayao',
2120 '15' => 'Uthai Thani',
2121 '52' => 'Ratchaburi',
2122 '60' => 'Surat Thani',
2123 '56' => 'Phetchaburi',
2124 '45' => 'Prachin Buri',
2125 '66' => 'Phatthalung',
2126 '76' => 'Udon Thani',
2127 '09' => 'Sukhothai',
2128 '62' => 'Phuket',
2129 '54' => 'Samut Songkhram',
2130 '67' => 'Satun',
2131 '70' => 'Yala',
2132 '05' => 'Lamphun',
2133 '68' => 'Songkhla',
2134 '04' => 'Nan',
2135 '17' => 'Nong Khai',
2136 '30' => 'Sisaket',
2137 '06' => 'Lampang',
2138 '25' => 'Roi Et',
2139 '28' => 'Buriram',
2140 '75' => 'Ubon Ratchathani',
2141 '40' => 'Krung Thep',
2142 '14' => 'Phetchabun',
2143 '69' => 'Pattani',
2144 '07' => 'Phrae',
2145 '59' => 'Ranong',
2146 '49' => 'Trat',
2147 '24' => 'Maha Sarakham',
2148 '53' => 'Nakhon Pathom',
2149 '22' => 'Khon Kaen',
2150 '42' => 'Samut Prakan',
2151 '46' => 'Chon Buri',
2152 '13' => 'Phichit',
2153 '23' => 'Kalasin',
2154 '36' => 'Phra Nakhon Si Ayutthaya',
2155 '51' => 'Suphan Buri',
2156 '47' => 'Rayong',
2157 '38' => 'Nonthaburi',
2158 '34' => 'Lop Buri',
2159 '37' => 'Saraburi',
2160 '43' => 'Nakhon Nayok'
2161 },
2162 'KY' => {
2163 '07' => 'West End',
2164 '01' => 'Creek',
2165 '08' => 'Western',
2166 '03' => 'Midland',
2167 '05' => 'Spot Bay',
2168 '06' => 'Stake Bay',
2169 '04' => 'South Town',
2170 '02' => 'Eastern'
2171 },
2172 'LA' => {
2173 '11' => 'Vientiane',
2174 '01' => 'Attapu',
2175 '05' => 'Louang Namtha',
2176 '04' => 'Khammouan',
2177 '17' => 'Louangphrabang',
2178 '02' => 'Champasak',
2179 '14' => 'Xiangkhoang',
2180 '07' => 'Oudomxai',
2181 '08' => 'Phongsali',
2182 '03' => 'Houaphan',
2183 '10' => 'Savannakhet',
2184 '13' => 'Xaignabouri',
2185 '09' => 'Saravan'
2186 },
2187 'PH' => {
2188 '32' => 'Kalinga-Apayao',
2189 '71' => 'Sultan Kudarat',
2190 'B6' => 'Cavite City',
2191 '02' => 'Agusan del Norte',
2192 'C1' => 'Danao',
2193 'E8' => 'Palayan',
2194 '18' => 'Capiz',
2195 '16' => 'Camarines Sur',
2196 '44' => 'Mountain',
2197 'C8' => 'Iligan',
2198 '55' => 'Samar',
2199 'H3' => 'Negros Occidental',
2200 '27' => 'Ifugao',
2201 'E7' => 'Pagadian',
2202 'B1' => 'Cadiz',
2203 '57' => 'North Cotabato',
2204 '20' => 'Cavite',
2205 'F3' => 'Roxas',
2206 '31' => 'Isabela',
2207 'G6' => 'Trece Martires',
2208 '35' => 'Lanao del Sur',
2209 '11' => 'Bohol',
2210 '65' => 'Zamboanga del Norte',
2211 '29' => 'Ilocos Sur',
2212 'E3' => 'Olongapo',
2213 '58' => 'Sorsogon',
2214 '15' => 'Camarines Norte',
2215 'F6' => 'San Jose',
2216 'D7' => 'Lucena',
2217 '60' => 'Sulu',
2218 'B3' => 'Calbayog',
2219 '09' => 'Batangas',
2220 '62' => 'Surigao del Sur',
2221 '67' => 'Northern Samar',
2222 'A1' => 'Angeles',
2223 '05' => 'Albay',
2224 '17' => 'Camiguin',
2225 'G2' => 'Tagaytay',
2226 'F7' => 'San Pablo',
2227 'E4' => 'Ormoc',
2228 'C5' => 'Dumaguete',
2229 'H2' => 'Quezon',
2230 '14' => 'Cagayan',
2231 '69' => 'Siquijor',
2232 '07' => 'Bataan',
2233 'F9' => 'Surigao',
2234 'A3' => 'Bago',
2235 '49' => 'Palawan',
2236 '24' => 'Davao',
2237 'G8' => 'Aurora',
2238 'D2' => 'La Carlota',
2239 'B8' => 'Cotabato',
2240 '23' => 'Eastern Samar',
2241 'B5' => 'Canlaon',
2242 'A6' => 'Basilan City',
2243 'C7' => 'Gingoog',
2244 'D4' => 'Lapu-Lapu',
2245 'D1' => 'Iriga',
2246 'A4' => 'Baguio',
2247 'G4' => 'Tangub',
2248 '47' => 'Nueva Ecija',
2249 'F5' => 'San Carlos',
2250 '37' => 'Leyte',
2251 '43' => 'Misamis Oriental',
2252 'A9' => 'Cabanatuan',
2253 '33' => 'Laguna',
2254 '21' => 'Cebu',
2255 '63' => 'Tarlac',
2256 '26' => 'Davao Oriental',
2257 '03' => 'Agusan del Sur',
2258 '72' => 'Tawitawi',
2259 'E9' => 'Pasay',
2260 'G7' => 'Zamboanga',
2261 'C2' => 'Dapitan',
2262 '01' => 'Abra',
2263 'F8' => 'Silay',
2264 '61' => 'Surigao del Norte',
2265 'E6' => 'Ozamis',
2266 'E2' => 'Naga',
2267 '10' => 'Benguet',
2268 'D6' => 'Lipa',
2269 '48' => 'Nueva Vizcaya',
2270 '08' => 'Batanes',
2271 'F2' => 'Quezon City',
2272 'D8' => 'Mandaue',
2273 '50' => 'Pampanga',
2274 '39' => 'Masbate',
2275 '64' => 'Zambales',
2276 '12' => 'Bukidnon',
2277 '41' => 'Mindoro Oriental',
2278 'B7' => 'Cebu City',
2279 '56' => 'Maguindanao',
2280 '66' => 'Zamboanga del Sur',
2281 '19' => 'Catanduanes',
2282 '54' => 'Romblon',
2283 'G1' => 'Tacloban',
2284 '70' => 'South Cotabato',
2285 'B4' => 'Caloocan',
2286 '68' => 'Quirino',
2287 'A2' => 'Bacolod',
2288 'G3' => 'Tagbilaran',
2289 '04' => 'Aklan',
2290 'D5' => 'Legaspi',
2291 'A8' => 'Butuan',
2292 '30' => 'Iloilo',
2293 '06' => 'Antique',
2294 '25' => 'Davao del Sur',
2295 'C6' => 'General Santos',
2296 '28' => 'Ilocos Norte',
2297 'D9' => 'Manila',
2298 '40' => 'Mindoro Occidental',
2299 'C4' => 'Dipolog',
2300 '59' => 'Southern Leyte',
2301 'F1' => 'Puerto Princesa',
2302 'C9' => 'Iloilo City',
2303 'F4' => 'San Carlos',
2304 '53' => 'Rizal',
2305 'D3' => 'Laoag',
2306 'E1' => 'Marawi',
2307 '42' => 'Misamis Occidental',
2308 '22' => 'Basilan',
2309 '46' => 'Negros Oriental',
2310 '13' => 'Bulacan',
2311 'B2' => 'Cagayan de Oro',
2312 'A7' => 'Batangas City',
2313 'G5' => 'Toledo',
2314 '36' => 'La Union',
2315 'A5' => 'Bais',
2316 '51' => 'Pangasinan',
2317 '38' => 'Marinduque',
2318 'B9' => 'Dagupan',
2319 'C3' => 'Davao City',
2320 '34' => 'Lanao del Norte',
2321 'E5' => 'Oroquieta'
2322 },
2323 'NI' => {
2324 '11' => 'Masaya',
2325 '01' => 'Boaco',
2326 '05' => 'Esteli',
2327 '12' => 'Matagalpa',
2328 '04' => 'Chontales',
2329 '15' => 'Rivas',
2330 '14' => 'Rio San Juan',
2331 '02' => 'Carazo',
2332 '07' => 'Jinotega',
2333 '03' => 'Chinandega',
2334 '08' => 'Leon',
2335 '10' => 'Managua',
2336 '06' => 'Granada',
2337 '16' => 'Zelaya',
2338 '13' => 'Nueva Segovia',
2339 '09' => 'Madriz'
2340 },
2341 'KZ' => {
2342 '11' => 'Pavlodar',
2343 '05' => 'Astana',
2344 '04' => 'Aqtobe',
2345 '17' => 'Zhambyl',
2346 '02' => 'Almaty City',
2347 '03' => 'Aqmola',
2348 '08' => 'Bayqonyr',
2349 '06' => 'Atyrau',
2350 '16' => 'North Kazakhstan',
2351 '13' => 'Qostanay',
2352 '01' => 'Almaty',
2353 '12' => 'Qaraghandy',
2354 '14' => 'Qyzylorda',
2355 '15' => 'East Kazakhstan',
2356 '07' => 'West Kazakhstan',
2357 '10' => 'South Kazakhstan',
2358 '09' => 'Mangghystau'
2359 },
2360 'MM' => {
2361 '11' => 'Shan State',
2362 '01' => 'Rakhine State',
2363 '05' => 'Karan State',
2364 '04' => 'Kachin State',
2365 '12' => 'Tenasserim',
2366 '17' => 'Yangon',
2367 '02' => 'Chin State',
2368 '14' => 'Rangoon',
2369 '07' => 'Magwe',
2370 '08' => 'Mandalay',
2371 '03' => 'Irrawaddy',
2372 '06' => 'Kayah State',
2373 '10' => 'Sagaing',
2374 '13' => 'Mon State',
2375 '09' => 'Pegu'
2376 },
2377 'NR' => {
2378 '11' => 'Meneng',
2379 '01' => 'Aiwo',
2380 '05' => 'Baiti',
2381 '04' => 'Anibare',
2382 '12' => 'Nibok',
2383 '02' => 'Anabar',
2384 '14' => 'Yaren',
2385 '07' => 'Buada',
2386 '08' => 'Denigomodu',
2387 '03' => 'Anetan',
2388 '06' => 'Boe',
2389 '10' => 'Ijuw',
2390 '13' => 'Uaboe',
2391 '09' => 'Ewa'
2392 },
2393 'NE' => {
2394 '07' => 'Zinder',
2395 '01' => 'Agadez',
2396 '08' => 'Niamey',
2397 '03' => 'Dosso',
2398 '05' => 'Niamey',
2399 '06' => 'Tahoua',
2400 '04' => 'Maradi',
2401 '02' => 'Diffa'
2402 },
2403 'DM' => {
2404 '11' => 'Saint Peter',
2405 '05' => 'Saint John',
2406 '04' => 'Saint George',
2407 '02' => 'Saint Andrew',
2408 '07' => 'Saint Luke',
2409 '03' => 'Saint David',
2410 '08' => 'Saint Mark',
2411 '10' => 'Saint Paul',
2412 '06' => 'Saint Joseph',
2413 '09' => 'Saint Patrick'
2414 },
2415 'TO' => {
2416 '01' => 'Ha',
2417 '03' => 'Vava',
2418 '02' => 'Tongatapu'
2419 },
2420 'MR' => {
2421 '11' => 'Tiris Zemmour',
2422 '01' => 'Hodh Ech Chargui',
2423 '05' => 'Brakna',
2424 '04' => 'Gorgol',
2425 '12' => 'Inchiri',
2426 '02' => 'Hodh El Gharbi',
2427 '07' => 'Adrar',
2428 '08' => 'Dakhlet Nouadhibou',
2429 '03' => 'Assaba',
2430 '06' => 'Trarza',
2431 '10' => 'Guidimaka',
2432 '09' => 'Tagant'
2433 },
2434 'AD' => {
2435 '07' => 'Andorra la Vella',
2436 '03' => 'Encamp',
2437 '05' => 'Ordino',
2438 '08' => 'Escaldes-Engordany',
2439 '06' => 'Sant Julia de Loria',
2440 '04' => 'La Massana',
2441 '02' => 'Canillo'
2442 },
2443 'SE' => {
2444 '11' => 'Kristianstads Lan',
2445 '21' => 'Uppsala Lan',
2446 '05' => 'Gotlands Lan',
2447 '26' => 'Stockholms Lan',
2448 '04' => 'Goteborgs och Bohus Lan',
2449 '17' => 'Skaraborgs Lan',
2450 '02' => 'Blekinge Lan',
2451 '22' => 'Varmlands Lan',
2452 '18' => 'Sodermanlands Lan',
2453 '08' => 'Jonkopings Lan',
2454 '03' => 'Gavleborgs Lan',
2455 '06' => 'Hallands Lan',
2456 '13' => 'Malmohus Lan',
2457 '16' => 'Ostergotlands Lan',
2458 '23' => 'Vasterbottens Lan',
2459 '27' => 'Skane Lan',
2460 '25' => 'Vastmanlands Lan',
2461 '01' => 'Alvsborgs Lan',
2462 '28' => 'Vastra Gotaland',
2463 '12' => 'Kronobergs Lan',
2464 '15' => 'Orebro Lan',
2465 '14' => 'Norrbottens Lan',
2466 '07' => 'Jamtlands Lan',
2467 '24' => 'Vasternorrlands Lan',
2468 '10' => 'Dalarnas Lan',
2469 '09' => 'Kalmar Lan'
2470 },
2471 'AZ' => {
2472 '32' => 'Masalli',
2473 '33' => 'Mingacevir',
2474 '21' => 'Goranboy',
2475 '63' => 'Xizi',
2476 '71' => 'Zardab',
2477 '26' => 'Kalbacar',
2478 '02' => 'Agcabadi',
2479 '18' => 'Fuzuli',
2480 '03' => 'Agdam',
2481 '16' => 'Daskasan',
2482 '44' => 'Qusar',
2483 '55' => 'Susa',
2484 '27' => 'Kurdamir',
2485 '01' => 'Abseron',
2486 '57' => 'Tartar',
2487 '61' => 'Xankandi',
2488 '20' => 'Ganca',
2489 '10' => 'Balakan',
2490 '31' => 'Lerik',
2491 '35' => 'Naxcivan',
2492 '11' => 'Barda',
2493 '48' => 'Saki',
2494 '08' => 'Astara',
2495 '65' => 'Xocavand',
2496 '29' => 'Lankaran',
2497 '50' => 'Samaxi',
2498 '39' => 'Qax',
2499 '64' => 'Xocali',
2500 '58' => 'Tovuz',
2501 '41' => 'Qobustan',
2502 '12' => 'Beylaqan',
2503 '15' => 'Calilabad',
2504 '52' => 'Samux',
2505 '60' => 'Xacmaz',
2506 '56' => 'Susa',
2507 '45' => 'Saatli',
2508 '66' => 'Yardimli',
2509 '19' => 'Gadabay',
2510 '09' => 'Baki',
2511 '62' => 'Xanlar',
2512 '54' => 'Sumqayit',
2513 '67' => 'Yevlax',
2514 '70' => 'Zaqatala',
2515 '05' => 'Agstafa',
2516 '68' => 'Yevlax',
2517 '04' => 'Agdas',
2518 '17' => 'Davaci',
2519 '30' => 'Lankaran',
2520 '06' => 'Agsu',
2521 '25' => 'Ismayilli',
2522 '28' => 'Lacin',
2523 '40' => 'Qazax',
2524 '14' => 'Cabrayil',
2525 '69' => 'Zangilan',
2526 '07' => 'Ali Bayramli',
2527 '59' => 'Ucar',
2528 '49' => 'Salyan',
2529 '24' => 'Imisli',
2530 '53' => 'Siyazan',
2531 '22' => 'Goycay',
2532 '42' => 'Quba',
2533 '46' => 'Sabirabad',
2534 '23' => 'Haciqabul',
2535 '13' => 'Bilasuvar',
2536 '36' => 'Neftcala',
2537 '51' => 'Samkir',
2538 '47' => 'Saki',
2539 '38' => 'Qabala',
2540 '34' => 'Naftalan',
2541 '37' => 'Oguz',
2542 '43' => 'Qubadli'
2543 },
2544 'AF' => {
2545 '32' => 'Samangan',
2546 '33' => 'Sar-e Pol',
2547 '21' => 'Paktia',
2548 '05' => 'Bamian',
2549 '26' => 'Takhar',
2550 '17' => 'Lowgar',
2551 '02' => 'Badghis',
2552 '18' => 'Nangarhar',
2553 '03' => 'Baghlan',
2554 '30' => 'Balkh',
2555 '06' => 'Farah',
2556 '16' => 'Laghman',
2557 '27' => 'Vardak',
2558 '28' => 'Zabol',
2559 '01' => 'Badakhshan',
2560 '40' => 'Parvan',
2561 '14' => 'Kapisa',
2562 '07' => 'Faryab',
2563 '24' => 'Kondoz',
2564 '10' => 'Helmand',
2565 '31' => 'Jowzjan',
2566 '35' => 'Laghman',
2567 '11' => 'Herat',
2568 '42' => 'Panjshir',
2569 '22' => 'Parvan',
2570 '08' => 'Ghazni',
2571 '13' => 'Kabol',
2572 '23' => 'Kandahar',
2573 '29' => 'Paktika',
2574 '39' => 'Oruzgan',
2575 '36' => 'Paktia',
2576 '41' => 'Daykondi',
2577 '15' => 'Konar',
2578 '38' => 'Nurestan',
2579 '34' => 'Konar',
2580 '37' => 'Khowst',
2581 '19' => 'Nimruz',
2582 '09' => 'Ghowr'
2583 },
2584 'NG' => {
2585 '32' => 'Oyo',
2586 '21' => 'Akwa Ibom',
2587 '05' => 'Lagos',
2588 '26' => 'Benue',
2589 '17' => 'Ondo',
2590 '30' => 'Kwara',
2591 '16' => 'Ogun',
2592 '44' => 'Yobe',
2593 '55' => 'Gombe',
2594 '25' => 'Anambra',
2595 '27' => 'Borno',
2596 '28' => 'Imo',
2597 '57' => 'Zamfara',
2598 '40' => 'Kebbi',
2599 '49' => 'Plateau',
2600 '24' => 'Katsina',
2601 '10' => 'Rivers',
2602 '31' => 'Niger',
2603 '35' => 'Adamawa',
2604 '11' => 'Federal Capital Territory',
2605 '53' => 'Ebonyi',
2606 '48' => 'Ondo',
2607 '22' => 'Cross River',
2608 '42' => 'Osun',
2609 '46' => 'Bauchi',
2610 '23' => 'Kaduna',
2611 '29' => 'Kano',
2612 '50' => 'Rivers',
2613 '39' => 'Jigawa',
2614 '36' => 'Delta',
2615 '51' => 'Sokoto',
2616 '41' => 'Kogi',
2617 '47' => 'Enugu',
2618 '52' => 'Bayelsa',
2619 '56' => 'Nassarawa',
2620 '45' => 'Abia',
2621 '37' => 'Edo',
2622 '43' => 'Taraba',
2623 '54' => 'Ekiti'
2624 },
2625 'KE' => {
2626 '07' => 'Nyanza',
2627 '01' => 'Central',
2628 '03' => 'Eastern',
2629 '05' => 'Nairobi Area',
2630 '08' => 'Rift Valley',
2631 '06' => 'North-Eastern',
2632 '09' => 'Western',
2633 '02' => 'Coast'
2634 },
2635 'BJ' => {
2636 '01' => 'Atakora',
2637 '03' => 'Borgou',
2638 '05' => 'Oueme',
2639 '06' => 'Zou',
2640 '04' => 'Mono',
2641 '02' => 'Atlantique',
2642 '14' => 'Littoral'
2643 },
2644 'OM' => {
2645 '07' => 'Musandam',
2646 '01' => 'Ad Dakhiliyah',
2647 '08' => 'Zufar',
2648 '03' => 'Al Wusta',
2649 '05' => 'Az Zahirah',
2650 '06' => 'Masqat',
2651 '04' => 'Ash Sharqiyah',
2652 '02' => 'Al Batinah'
2653 },
2654 'VN' => {
2655 '32' => 'Son La',
2656 '33' => 'Tay Ninh',
2657 '63' => 'Kon Tum',
2658 '90' => 'Lao Cai',
2659 '21' => 'Kien Giang',
2660 '71' => 'Quang Ngai',
2661 '26' => 'Nghe Tinh',
2662 '80' => 'Ha Nam',
2663 '02' => 'Bac Thai',
2664 '03' => 'Ben Tre',
2665 '72' => 'Quang Tri',
2666 '16' => 'Ha Son Binh',
2667 '44' => 'Dac Lac',
2668 '55' => 'Binh Thuan',
2669 '74' => 'Thua Thien',
2670 '84' => 'Quang Nam',
2671 '27' => 'Nghia Binh',
2672 '01' => 'An Giang',
2673 '57' => 'Gia Lai',
2674 '61' => 'Hoa Binh',
2675 '20' => 'Ho Chi Minh',
2676 '92' => 'Dien Bien',
2677 '89' => 'Lai Chau',
2678 '31' => 'Song Be',
2679 '35' => 'Thai Binh',
2680 '11' => 'Ha Bac',
2681 '91' => 'Dak Nong',
2682 '78' => 'Da Nang',
2683 '48' => 'Minh Hai',
2684 '87' => 'Can Tho',
2685 '93' => 'Hau Giang',
2686 '77' => 'Vinh Long',
2687 '29' => 'Quang Nam-Da Nang',
2688 '65' => 'Nam Ha',
2689 '50' => 'Vinh Phu',
2690 '39' => 'Lang Son',
2691 '64' => 'Quang Tri',
2692 '58' => 'Ha Giang',
2693 '12' => 'Hai Hung',
2694 '52' => 'Ho Chi Minh',
2695 '81' => 'Hung Yen',
2696 '60' => 'Ha Tinh',
2697 '56' => 'Can Tho',
2698 '45' => 'Dong Nai',
2699 '66' => 'Nghe An',
2700 '73' => 'Soc Trang',
2701 '76' => 'Tuyen Quang',
2702 '19' => 'Hoang Lien Son',
2703 '62' => 'Khanh Hoa',
2704 '09' => 'Dong Thap',
2705 '54' => 'Binh Dinh',
2706 '67' => 'Ninh Binh',
2707 '05' => 'Cao Bang',
2708 '70' => 'Quang Binh',
2709 '68' => 'Ninh Thuan',
2710 '04' => 'Binh Tri Thien',
2711 '17' => 'Ha Tuyen',
2712 '88' => 'Dak Lak',
2713 '30' => 'Quang Ninh',
2714 '82' => 'Nam Dinh',
2715 '25' => 'Minh Hai',
2716 '28' => 'Phu Khanh',
2717 '75' => 'Tra Vinh',
2718 '83' => 'Phu Tho',
2719 '40' => 'Dong Nai',
2720 '14' => 'Ha Nam Ninh',
2721 '07' => 'Dac Lac',
2722 '69' => 'Phu Yen',
2723 '59' => 'Ha Tay',
2724 '49' => 'Song Be',
2725 '24' => 'Long An',
2726 '53' => 'Ba Ria-Vung Tau',
2727 '79' => 'Hai Duong',
2728 '22' => 'Lai Chau',
2729 '46' => 'Dong Thap',
2730 '23' => 'Lam Dong',
2731 '13' => 'Hai Phong',
2732 '85' => 'Thai Nguyen',
2733 '36' => 'Thuan Hai',
2734 '51' => 'Ha Noi',
2735 '47' => 'Kien Giang',
2736 '38' => 'Vinh Phu',
2737 '34' => 'Thanh Hoa',
2738 '37' => 'Tien Giang',
2739 '43' => 'An Giang'
2740 },
2741 'YE' => {
2742 '11' => 'Dhamar',
2743 '21' => 'Al Jawf',
2744 '05' => 'Shabwah',
2745 '04' => 'Hadramawt',
2746 '02' => 'Adan',
2747 '22' => 'Hajjah',
2748 '03' => 'Al Mahrah',
2749 '08' => 'Al Hudaydah',
2750 '16' => 'San',
2751 '23' => 'Ibb',
2752 '25' => 'Ta',
2753 '01' => 'Abyan',
2754 '14' => 'Ma\'rib',
2755 '15' => 'Sa',
2756 '20' => 'Al Bayda\'',
2757 '24' => 'Lahij',
2758 '10' => 'Al Mahwit'
2759 },
2760 'CI' => {
2761 '90' => 'Vallee du Bandama',
2762 '80' => 'Haut-Sassandra',
2763 '91' => 'Worodougou',
2764 '78' => 'Dix-Huit Montagnes',
2765 '79' => 'Fromager',
2766 '87' => 'Savanes',
2767 '88' => 'Sud-Bandama',
2768 '77' => 'Denguele',
2769 '82' => 'Lagunes',
2770 '74' => 'Agneby',
2771 '84' => 'Moyen-Cavally',
2772 '85' => 'Moyen-Comoe',
2773 '75' => 'Bafing',
2774 '83' => 'Marahoue',
2775 '61' => 'Abidjan',
2776 '51' => 'Sassandra',
2777 '81' => 'Lacs',
2778 '92' => 'Zanzan',
2779 '89' => 'Sud-Comoe',
2780 '86' => 'N\'zi-Comoe',
2781 '76' => 'Bas-Sassandra'
2782 },
2783 'DZ' => {
2784 '33' => 'Tebessa',
2785 '21' => 'Bouira',
2786 '26' => 'Mascara',
2787 '04' => 'Constantine',
2788 '18' => 'Bejaia',
2789 '03' => 'Batna',
2790 '30' => 'Sidi Bel Abbes',
2791 '06' => 'Medea',
2792 '44' => 'El Tarf',
2793 '55' => 'Tipaza',
2794 '27' => 'M\'sila',
2795 '25' => 'Laghouat',
2796 '01' => 'Alger',
2797 '40' => 'Boumerdes',
2798 '14' => 'Tizi Ouzou',
2799 '20' => 'Blida',
2800 '07' => 'Mostaganem',
2801 '49' => 'Naama',
2802 '24' => 'Jijel',
2803 '10' => 'Saida',
2804 '31' => 'Skikda',
2805 '35' => 'Ain Defla',
2806 '53' => 'Tamanghasset',
2807 '48' => 'Mila',
2808 '42' => 'El Bayadh',
2809 '22' => 'Djelfa',
2810 '46' => 'Illizi',
2811 '13' => 'Tiaret',
2812 '23' => 'Guelma',
2813 '29' => 'Oum el Bouaghi',
2814 '50' => 'Ouargla',
2815 '39' => 'Bordj Bou Arreridj',
2816 '36' => 'Ain Temouchent',
2817 '51' => 'Relizane',
2818 '12' => 'Setif',
2819 '41' => 'Chlef',
2820 '15' => 'Tlemcen',
2821 '47' => 'Khenchela',
2822 '38' => 'Bechar',
2823 '52' => 'Souk Ahras',
2824 '34' => 'Adrar',
2825 '56' => 'Tissemsilt',
2826 '37' => 'Annaba',
2827 '45' => 'Ghardaia',
2828 '19' => 'Biskra',
2829 '43' => 'El Oued',
2830 '09' => 'Oran',
2831 '54' => 'Tindouf'
2832 },
2833 'LK' => {
2834 '32' => 'North Western',
2835 '33' => 'Sabaragamuwa',
2836 '21' => 'Trincomalee',
2837 '26' => 'Mannar',
2838 '04' => 'Batticaloa',
2839 '17' => 'Nuwara Eliya',
2840 '02' => 'Anuradhapura',
2841 '18' => 'Polonnaruwa',
2842 '03' => 'Badulla',
2843 '30' => 'North Central',
2844 '06' => 'Galle',
2845 '16' => 'Moneragala',
2846 '25' => 'Jaffna',
2847 '27' => 'Mullaittivu',
2848 '01' => 'Amparai',
2849 '28' => 'Vavuniya',
2850 '14' => 'Matale',
2851 '20' => 'Ratnapura',
2852 '07' => 'Hambantota',
2853 '24' => 'Gampaha',
2854 '10' => 'Kandy',
2855 '31' => 'Northern',
2856 '35' => 'Uva',
2857 '11' => 'Kegalla',
2858 '23' => 'Colombo',
2859 '29' => 'Central',
2860 '36' => 'Western',
2861 '12' => 'Kurunegala',
2862 '15' => 'Matara',
2863 '34' => 'Southern',
2864 '19' => 'Puttalam',
2865 '09' => 'Kalutara'
2866 },
2867 'ID' => {
2868 '32' => 'Sumatera Selatan',
2869 '33' => 'Banten',
2870 '21' => 'Sulawesi Tengah',
2871 '05' => 'Jambi',
2872 '26' => 'Sumatera Utara',
2873 '04' => 'Jakarta Raya',
2874 '17' => 'Nusa Tenggara Barat',
2875 '02' => 'Bali',
2876 '18' => 'Nusa Tenggara Timur',
2877 '03' => 'Bengkulu',
2878 '30' => 'Jawa Barat',
2879 '06' => 'Jawa Barat',
2880 '16' => 'Maluku',
2881 '25' => 'Sumatera Selatan',
2882 '28' => 'Maluku',
2883 '01' => 'Aceh',
2884 '40' => 'Kepulauan Riau',
2885 '14' => 'Kalimantan Timur',
2886 '20' => 'Sulawesi Selatan',
2887 '07' => 'Jawa Tengah',
2888 '24' => 'Sumatera Barat',
2889 '10' => 'Yogyakarta',
2890 '31' => 'Sulawesi Utara',
2891 '35' => 'Kepulauan Bangka Belitung',
2892 '11' => 'Kalimantan Barat',
2893 '22' => 'Sulawesi Tenggara',
2894 '08' => 'Jawa Timur',
2895 '23' => 'Sulawesi Utara',
2896 '13' => 'Kalimantan Tengah',
2897 '29' => 'Maluku Utara',
2898 '39' => 'Irian Jaya Barat',
2899 '36' => 'Papua',
2900 '12' => 'Kalimantan Selatan',
2901 '41' => 'Sulawesi Barat',
2902 '15' => 'Lampung',
2903 '38' => 'Sulawesi Selatan',
2904 '34' => 'Gorontalo',
2905 '37' => 'Riau',
2906 '19' => 'Riau',
2907 '09' => 'Papua'
2908 },
2909 'FM' => {
2910 '01' => 'Kosrae',
2911 '03' => 'Chuuk',
2912 '04' => 'Yap',
2913 '02' => 'Pohnpei'
2914 },
2915 'GE' => {
2916 '32' => 'Lagodekhis Raioni',
2917 '33' => 'Lanch\'khut\'is Raioni',
2918 '21' => 'Gori',
2919 '63' => 'Zugdidi',
2920 '26' => 'Kaspis Raioni',
2921 '02' => 'Abkhazia',
2922 '18' => 'Dmanisis Raioni',
2923 '03' => 'Adigenis Raioni',
2924 '16' => 'Ch\'okhatauris Raioni',
2925 '44' => 'Qvarlis Raioni',
2926 '55' => 'T\'ianet\'is Raioni',
2927 '27' => 'Kharagaulis Raioni',
2928 '01' => 'Abashis Raioni',
2929 '57' => 'Ts\'ageris Raioni',
2930 '61' => 'Vanis Raioni',
2931 '20' => 'Gardabanis Raioni',
2932 '10' => 'Aspindzis Raioni',
2933 '31' => 'K\'ut\'aisi',
2934 '35' => 'Marneulis Raioni',
2935 '11' => 'Baghdat\'is Raioni',
2936 '48' => 'Samtrediis Raioni',
2937 '08' => 'Akhmetis Raioni',
2938 '29' => 'Khobis Raioni',
2939 '50' => 'Sighnaghis Raioni',
2940 '39' => 'Ninotsmindis Raioni',
2941 '64' => 'Zugdidis Raioni',
2942 '58' => 'Tsalenjikhis Raioni',
2943 '41' => 'Ozurget\'is Raioni',
2944 '12' => 'Bolnisis Raioni',
2945 '15' => 'Ch\'khorotsqus Raioni',
2946 '52' => 'T\'elavis Raioni',
2947 '60' => 'Tsqaltubo',
2948 '56' => 'Tqibuli',
2949 '45' => 'Rust\'avi',
2950 '19' => 'Dushet\'is Raioni',
2951 '09' => 'Ambrolauris Raioni',
2952 '62' => 'Zestap\'onis Raioni',
2953 '54' => 'T\'et\'ritsqaros Raioni',
2954 '05' => 'Akhalgoris Raioni',
2955 '04' => 'Ajaria',
2956 '17' => 'Dedop\'listsqaros Raioni',
2957 '30' => 'Khonis Raioni',
2958 '06' => 'Akhalk\'alak\'is Raioni',
2959 '25' => 'K\'arelis Raioni',
2960 '28' => 'Khashuris Raioni',
2961 '40' => 'Onis Raioni',
2962 '14' => 'Chiat\'ura',
2963 '07' => 'Akhalts\'ikhis Raioni',
2964 '59' => 'Tsalkis Raioni',
2965 '49' => 'Senakis Raioni',
2966 '24' => 'Javis Raioni',
2967 '53' => 'T\'erjolis Raioni',
2968 '22' => 'Goris Raioni',
2969 '42' => 'P\'ot\'i',
2970 '46' => 'Sach\'kheris Raioni',
2971 '23' => 'Gurjaanis Raioni',
2972 '13' => 'Borjomis Raioni',
2973 '36' => 'Martvilis Raioni',
2974 '51' => 'T\'bilisi',
2975 '47' => 'Sagarejos Raioni',
2976 '38' => 'Mts\'khet\'is Raioni',
2977 '34' => 'Lentekhis Raioni',
2978 '37' => 'Mestiis Raioni',
2979 '43' => 'Qazbegis Raioni'
2980 },
2981 'GM' => {
2982 '07' => 'North Bank',
2983 '01' => 'Banjul',
2984 '03' => 'Central River',
2985 '05' => 'Western',
2986 '04' => 'Upper River',
2987 '02' => 'Lower River'
2988 },
2989 'LV' => {
2990 '32' => 'Ventspils',
2991 '33' => 'Ventspils',
2992 '21' => 'Ogres',
2993 '05' => 'Cesu',
2994 '26' => 'Rigas',
2995 '04' => 'Bauskas',
2996 '17' => 'Liepajas',
2997 '02' => 'Aluksnes',
2998 '18' => 'Limbazu',
2999 '03' => 'Balvu',
3000 '30' => 'Valkas',
3001 '06' => 'Daugavpils',
3002 '16' => 'Liepaja',
3003 '27' => 'Saldus',
3004 '25' => 'Riga',
3005 '01' => 'Aizkraukles',
3006 '28' => 'Talsu',
3007 '14' => 'Kraslavas',
3008 '20' => 'Madonas',
3009 '07' => 'Daugavpils',
3010 '24' => 'Rezeknes',
3011 '10' => 'Jekabpils',
3012 '31' => 'Valmieras',
3013 '11' => 'Jelgava',
3014 '22' => 'Preilu',
3015 '08' => 'Dobeles',
3016 '13' => 'Jurmala',
3017 '23' => 'Rezekne',
3018 '29' => 'Tukuma',
3019 '12' => 'Jelgavas',
3020 '15' => 'Kuldigas',
3021 '19' => 'Ludzas',
3022 '09' => 'Gulbenes'
3023 },
3024 'RU' => {
3025 '32' => 'Khanty-Mansiy',
3026 '33' => 'Kirov',
3027 '21' => 'Ivanovo',
3028 '63' => 'Sakha',
3029 '90' => 'Permskiy Kray',
3030 '71' => 'Sverdlovsk',
3031 '26' => 'Kamchatka',
3032 '80' => 'Udmurt',
3033 '02' => 'Aginsky Buryatsky AO',
3034 '18' => 'Evenk',
3035 '03' => 'Gorno-Altay',
3036 '72' => 'Tambovskaya oblast',
3037 '16' => 'Chuvashia',
3038 '44' => 'Magadan',
3039 '55' => 'Orenburg',
3040 '27' => 'Karachay-Cherkess',
3041 '84' => 'Volgograd',
3042 '74' => 'Taymyr',
3043 '01' => 'Adygeya, Republic of',
3044 '57' => 'Penza',
3045 '61' => 'Rostov',
3046 '20' => 'Irkutsk',
3047 '89' => 'Yevrey',
3048 '10' => 'Bryansk',
3049 '31' => 'Khakass',
3050 '35' => 'Komi-Permyak',
3051 '11' => 'Buryat',
3052 '91' => 'Krasnoyarskiy Kray',
3053 '78' => 'Tyumen\'',
3054 '48' => 'Moscow City',
3055 '87' => 'Yamal-Nenets',
3056 '77' => 'Tver\'',
3057 '08' => 'Bashkortostan',
3058 '29' => 'Kemerovo',
3059 '65' => 'Samara',
3060 '50' => 'Nenets',
3061 '39' => 'Krasnoyarsk',
3062 '64' => 'Sakhalin',
3063 '12' => 'Chechnya',
3064 '41' => 'Kursk',
3065 '58' => 'Perm\'',
3066 '15' => 'Chukot',
3067 '52' => 'Novgorod',
3068 '81' => 'Ul\'yanovsk',
3069 '60' => 'Pskov',
3070 '56' => 'Orel',
3071 '45' => 'Mariy-El',
3072 '66' => 'Saint Petersburg City',
3073 '73' => 'Tatarstan',
3074 '19' => 'Ingush',
3075 '76' => 'Tula',
3076 '86' => 'Voronezh',
3077 '09' => 'Belgorod',
3078 '62' => 'Ryazan\'',
3079 '54' => 'Omsk',
3080 '67' => 'Saratov',
3081 '70' => 'Stavropol\'',
3082 '05' => 'Amur',
3083 '68' => 'North Ossetia',
3084 '04' => 'Altaisky krai',
3085 '17' => 'Dagestan',
3086 '88' => 'Yaroslavl\'',
3087 '30' => 'Khabarovsk',
3088 '06' => 'Arkhangel\'sk',
3089 '82' => 'Ust-Orda Buryat',
3090 '25' => 'Kaluga',
3091 '28' => 'Karelia',
3092 '40' => 'Kurgan',
3093 '75' => 'Tomsk',
3094 '83' => 'Vladimir',
3095 '14' => 'Chita',
3096 '59' => 'Primor\'ye',
3097 '07' => 'Astrakhan\'',
3098 '69' => 'Smolensk',
3099 '49' => 'Murmansk',
3100 '24' => 'Kalmyk',
3101 '53' => 'Novosibirsk',
3102 '79' => 'Tuva',
3103 '42' => 'Leningrad',
3104 '22' => 'Kabardin-Balkar',
3105 '46' => 'Mordovia',
3106 '13' => 'Chelyabinsk',
3107 '23' => 'Kaliningrad',
3108 '85' => 'Vologda',
3109 '36' => 'Koryak',
3110 '51' => 'Nizhegorod',
3111 '47' => 'Moskva',
3112 '38' => 'Krasnodar',
3113 '34' => 'Komi',
3114 '37' => 'Kostroma',
3115 '43' => 'Lipetsk'
3116 },
3117 'LB' => {
3118 '11' => 'Baalbek-Hermel',
3119 '01' => 'Beqaa',
3120 '05' => 'Mont-Liban',
3121 '04' => 'Beyrouth',
3122 '07' => 'Nabatiye',
3123 '03' => 'Liban-Nord',
3124 '08' => 'Beqaa',
3125 '10' => 'Aakk,r',
3126 '06' => 'Liban-Sud',
3127 '09' => 'Liban-Nord'
3128 },
3129 'DE' => {
3130 '11' => 'Brandenburg',
3131 '01' => 'Baden-Wurttemberg',
3132 '05' => 'Hessen',
3133 '12' => 'Mecklenburg-Vorpommern',
3134 '04' => 'Hamburg',
3135 '15' => 'Thuringen',
3136 '14' => 'Sachsen-Anhalt',
3137 '02' => 'Bayern',
3138 '07' => 'Nordrhein-Westfalen',
3139 '03' => 'Bremen',
3140 '08' => 'Rheinland-Pfalz',
3141 '10' => 'Schleswig-Holstein',
3142 '06' => 'Niedersachsen',
3143 '16' => 'Berlin',
3144 '13' => 'Sachsen',
3145 '09' => 'Saarland'
3146 },
3147 'FI' => {
3148 '01' => 'Aland',
3149 '08' => 'Oulu',
3150 '06' => 'Lapland',
3151 '13' => 'Southern Finland',
3152 '14' => 'Eastern Finland',
3153 '15' => 'Western Finland'
3154 },
3155 'MV' => {
3156 '05' => 'Laamu',
3157 '26' => 'Kaafu',
3158 '04' => 'Waavu',
3159 '17' => 'Daalu',
3160 '02' => 'Aliff',
3161 '03' => 'Laviyani',
3162 '08' => 'Thaa',
3163 '13' => 'Raa',
3164 '23' => 'Haa Daalu',
3165 '29' => 'Naviyani',
3166 '25' => 'Noonu',
3167 '27' => 'Gaafu Aliff',
3168 '28' => 'Gaafu Daalu',
3169 '01' => 'Seenu',
3170 '40' => 'Male',
3171 '12' => 'Meemu',
3172 '20' => 'Baa',
3173 '14' => 'Faafu',
3174 '07' => 'Haa Aliff',
3175 '24' => 'Shaviyani'
3176 },
3177 'LU' => {
3178 '01' => 'Diekirch',
3179 '03' => 'Luxembourg',
3180 '02' => 'Grevenmacher'
3181 },
3182 'VE' => {
3183 '11' => 'Falcon',
3184 '21' => 'Trujillo',
3185 '05' => 'Barinas',
3186 '26' => 'Vargas',
3187 '04' => 'Aragua',
3188 '17' => 'Nueva Esparta',
3189 '02' => 'Anzoategui',
3190 '22' => 'Yaracuy',
3191 '18' => 'Portuguesa',
3192 '08' => 'Cojedes',
3193 '03' => 'Apure',
3194 '06' => 'Bolivar',
3195 '13' => 'Lara',
3196 '16' => 'Monagas',
3197 '23' => 'Zulia',
3198 '25' => 'Distrito Federal',
3199 '01' => 'Amazonas',
3200 '12' => 'Guarico',
3201 '15' => 'Miranda',
3202 '14' => 'Merida',
3203 '20' => 'Tachira',
3204 '07' => 'Carabobo',
3205 '24' => 'Dependencias Federales',
3206 '19' => 'Sucre',
3207 '09' => 'Delta Amacuro'
3208 },
3209 'BH' => {
3210 '11' => 'Al Mintaqah al Wusta',
3211 '05' => 'Jidd Hafs',
3212 '17' => 'Al Janubiyah',
3213 '02' => 'Al Manamah',
3214 '18' => 'Ash Shamaliyah',
3215 '03' => 'Al Muharraq',
3216 '08' => 'Al Mintaqah al Gharbiyah',
3217 '06' => 'Sitrah',
3218 '16' => 'Al Asimah',
3219 '13' => 'Ar Rifa',
3220 '01' => 'Al Hadd',
3221 '12' => 'Madinat',
3222 '14' => 'Madinat Hamad',
3223 '15' => 'Al Muharraq',
3224 '10' => 'Al Mintaqah ash Shamaliyah',
3225 '19' => 'Al Wusta',
3226 '09' => 'Mintaqat Juzur Hawar'
3227 },
3228 'RO' => {
3229 '32' => 'Satu Mare',
3230 '33' => 'Sibiu',
3231 '21' => 'Hunedoara',
3232 '05' => 'Bihor',
3233 '26' => 'Mehedinti',
3234 '04' => 'Bacau',
3235 '17' => 'Dolj',
3236 '02' => 'Arad',
3237 '18' => 'Galati',
3238 '03' => 'Arges',
3239 '30' => 'Prahova',
3240 '06' => 'Bistrita-Nasaud',
3241 '16' => 'Dambovita',
3242 '27' => 'Mures',
3243 '25' => 'Maramures',
3244 '01' => 'Alba',
3245 '28' => 'Neamt',
3246 '40' => 'Vrancea',
3247 '14' => 'Constanta',
3248 '20' => 'Harghita',
3249 '07' => 'Botosani',
3250 '10' => 'Bucuresti',
3251 '31' => 'Salaj',
3252 '35' => 'Teleorman',
3253 '11' => 'Buzau',
3254 '42' => 'Giurgiu',
3255 '22' => 'Ialomita',
3256 '08' => 'Braila',
3257 '13' => 'Cluj',
3258 '23' => 'Iasi',
3259 '29' => 'Olt',
3260 '39' => 'Valcea',
3261 '36' => 'Timis',
3262 '12' => 'Caras-Severin',
3263 '41' => 'Calarasi',
3264 '15' => 'Covasna',
3265 '38' => 'Vaslui',
3266 '34' => 'Suceava',
3267 '37' => 'Tulcea',
3268 '19' => 'Gorj',
3269 '43' => 'Ilfov',
3270 '09' => 'Brasov'
3271 },
3272 'IN' => {
3273 '32' => 'Daman and Diu',
3274 '33' => 'Goa',
3275 '21' => 'Orissa',
3276 '05' => 'Chandigarh',
3277 '26' => 'Tripura',
3278 '17' => 'Manipur',
3279 '02' => 'Andhra Pradesh',
3280 '18' => 'Meghalaya',
3281 '03' => 'Assam',
3282 '30' => 'Arunachal Pradesh',
3283 '06' => 'Dadra and Nagar Haveli',
3284 '16' => 'Maharashtra',
3285 '25' => 'Tamil Nadu',
3286 '28' => 'West Bengal',
3287 '01' => 'Andaman and Nicobar Islands',
3288 '14' => 'Lakshadweep',
3289 '20' => 'Nagaland',
3290 '07' => 'Delhi',
3291 '24' => 'Rajasthan',
3292 '10' => 'Haryana',
3293 '31' => 'Mizoram',
3294 '35' => 'Madhya Pradesh',
3295 '11' => 'Himachal Pradesh',
3296 '22' => 'Puducherry',
3297 '13' => 'Kerala',
3298 '23' => 'Punjab',
3299 '29' => 'Sikkim',
3300 '39' => 'Uttarakhand',
3301 '36' => 'Uttar Pradesh',
3302 '12' => 'Jammu and Kashmir',
3303 '38' => 'Jharkhand',
3304 '34' => 'Bihar',
3305 '37' => 'Chhattisgarh',
3306 '19' => 'Karnataka',
3307 '09' => 'Gujarat'
3308 },
3309 'AR' => {
3310 '11' => 'La Pampa',
3311 '21' => 'Santa Fe',
3312 '05' => 'Cordoba',
3313 '04' => 'Chubut',
3314 '17' => 'Salta',
3315 '02' => 'Catamarca',
3316 '22' => 'Santiago del Estero',
3317 '18' => 'San Juan',
3318 '08' => 'Entre Rios',
3319 '03' => 'Chaco',
3320 '06' => 'Corrientes',
3321 '13' => 'Mendoza',
3322 '16' => 'Rio Negro',
3323 '23' => 'Tierra del Fuego',
3324 '01' => 'Buenos Aires',
3325 '12' => 'La Rioja',
3326 '15' => 'Neuquen',
3327 '14' => 'Misiones',
3328 '20' => 'Santa Cruz',
3329 '07' => 'Distrito Federal',
3330 '24' => 'Tucuman',
3331 '10' => 'Jujuy',
3332 '19' => 'San Luis',
3333 '09' => 'Formosa'
3334 },
3335 'SN' => {
3336 '11' => 'Kolda',
3337 '01' => 'Dakar',
3338 '05' => 'Tambacounda',
3339 '04' => 'Saint-Louis',
3340 '12' => 'Ziguinchor',
3341 '14' => 'Saint-Louis',
3342 '15' => 'Matam',
3343 '07' => 'Thies',
3344 '03' => 'Diourbel',
3345 '10' => 'Kaolack',
3346 '13' => 'Louga',
3347 '09' => 'Fatick'
3348 },
3349 'MX' => {
3350 '32' => 'Zacatecas',
3351 '21' => 'Puebla',
3352 '05' => 'Chiapas',
3353 '26' => 'Sonora',
3354 '04' => 'Campeche',
3355 '17' => 'Morelos',
3356 '02' => 'Baja California',
3357 '18' => 'Nayarit',
3358 '03' => 'Baja California Sur',
3359 '30' => 'Veracruz-Llave',
3360 '06' => 'Chihuahua',
3361 '16' => 'Michoacan de Ocampo',
3362 '27' => 'Tabasco',
3363 '25' => 'Sinaloa',
3364 '28' => 'Tamaulipas',
3365 '01' => 'Aguascalientes',
3366 '14' => 'Jalisco',
3367 '20' => 'Oaxaca',
3368 '07' => 'Coahuila de Zaragoza',
3369 '24' => 'San Luis Potosi',
3370 '10' => 'Durango',
3371 '31' => 'Yucatan',
3372 '11' => 'Guanajuato',
3373 '22' => 'Queretaro de Arteaga',
3374 '08' => 'Colima',
3375 '13' => 'Hidalgo',
3376 '23' => 'Quintana Roo',
3377 '29' => 'Tlaxcala',
3378 '12' => 'Guerrero',
3379 '15' => 'Mexico',
3380 '19' => 'Nuevo Leon',
3381 '09' => 'Distrito Federal'
3382 },
3383 'MC' => {
3384 '01' => 'La Condamine',
3385 '03' => 'Monte-Carlo',
3386 '02' => 'Monaco'
3387 },
3388 'HN' => {
3389 '11' => 'Islas de la Bahia',
3390 '05' => 'Copan',
3391 '04' => 'Comayagua',
3392 '17' => 'Valle',
3393 '02' => 'Choluteca',
3394 '18' => 'Yoro',
3395 '03' => 'Colon',
3396 '08' => 'Francisco Morazan',
3397 '06' => 'Cortes',
3398 '13' => 'Lempira',
3399 '16' => 'Santa Barbara',
3400 '01' => 'Atlantida',
3401 '12' => 'La Paz',
3402 '14' => 'Ocotepeque',
3403 '15' => 'Olancho',
3404 '07' => 'El Paraiso',
3405 '10' => 'Intibuca',
3406 '09' => 'Gracias a Dios'
3407 },
3408 'BR' => {
3409 '11' => 'Mato Grosso do Sul',
3410 '21' => 'Rio de Janeiro',
3411 '05' => 'Bahia',
3412 '26' => 'Santa Catarina',
3413 '04' => 'Amazonas',
3414 '17' => 'Paraiba',
3415 '02' => 'Alagoas',
3416 '22' => 'Rio Grande do Norte',
3417 '18' => 'Parana',
3418 '08' => 'Espirito Santo',
3419 '03' => 'Amapa',
3420 '30' => 'Pernambuco',
3421 '06' => 'Ceara',
3422 '13' => 'Maranhao',
3423 '16' => 'Para',
3424 '23' => 'Rio Grande do Sul',
3425 '29' => 'Goias',
3426 '25' => 'Roraima',
3427 '27' => 'Sao Paulo',
3428 '01' => 'Acre',
3429 '28' => 'Sergipe',
3430 '20' => 'Piaui',
3431 '15' => 'Minas Gerais',
3432 '14' => 'Mato Grosso',
3433 '07' => 'Distrito Federal',
3434 '24' => 'Rondonia',
3435 '31' => 'Tocantins'
3436 },
3437 'IL' => {
3438 '01' => 'HaDarom',
3439 '03' => 'HaZafon',
3440 '05' => 'Tel Aviv',
3441 '06' => 'Yerushalayim',
3442 '04' => 'Hefa',
3443 '02' => 'HaMerkaz'
3444 },
3445 'SB' => {
3446 '11' => 'Western',
3447 '12' => 'Choiseul',
3448 '07' => 'Isabel',
3449 '03' => 'Malaita',
3450 '08' => 'Makira',
3451 '13' => 'Rennell and Bellona',
3452 '06' => 'Guadalcanal',
3453 '10' => 'Central',
3454 '09' => 'Temotu'
3455 },
3456 'PS' => {
3457 'GZ' => 'Gaza',
3458 'WE' => 'West Bank'
3459 },
3460 'NZ' => {
3461 'F4' => 'Marlborough',
3462 'G1' => 'Waikato',
3463 'E7' => 'Auckland',
3464 'F8' => 'Southland',
3465 'G3' => 'West Coast',
3466 'E8' => 'Bay of Plenty',
3467 'F6' => 'Northland',
3468 'G2' => 'Wellington',
3469 'F9' => 'Taranaki',
3470 'F5' => 'Nelson',
3471 'F3' => 'Manawatu-Wanganui',
3472 'F2' => 'Hawke\'s Bay',
3473 'E9' => 'Canterbury',
3474 'F1' => 'Gisborne',
3475 '10' => 'Chatham Islands',
3476 'F7' => 'Otago'
3477 },
3478 'HU' => {
3479 '32' => 'Nagykanizsa',
3480 '33' => 'Nyiregyhaza',
3481 '21' => 'Tolna',
3482 '05' => 'Budapest',
3483 '26' => 'Bekescsaba',
3484 '04' => 'Borsod-Abauj-Zemplen',
3485 '17' => 'Somogy',
3486 '02' => 'Baranya',
3487 '18' => 'Szabolcs-Szatmar-Bereg',
3488 '03' => 'Bekes',
3489 '30' => 'Kaposvar',
3490 '06' => 'Csongrad',
3491 '16' => 'Pest',
3492 '27' => 'Dunaujvaros',
3493 '25' => 'Gyor',
3494 '01' => 'Bacs-Kiskun',
3495 '28' => 'Eger',
3496 '40' => 'Zalaegerszeg',
3497 '14' => 'Nograd',
3498 '20' => 'Jasz-Nagykun-Szolnok',
3499 '07' => 'Debrecen',
3500 '24' => 'Zala',
3501 '10' => 'Hajdu-Bihar',
3502 '31' => 'Kecskemet',
3503 '35' => 'Szekesfehervar',
3504 '11' => 'Heves',
3505 '42' => 'Szekszard',
3506 '22' => 'Vas',
3507 '08' => 'Fejer',
3508 '13' => 'Miskolc',
3509 '23' => 'Veszprem',
3510 '29' => 'Hodmezovasarhely',
3511 '39' => 'Veszprem',
3512 '36' => 'Szolnok',
3513 '12' => 'Komarom-Esztergom',
3514 '41' => 'Salgotarjan',
3515 '15' => 'Pecs',
3516 '38' => 'Tatabanya',
3517 '34' => 'Sopron',
3518 '37' => 'Szombathely',
3519 '19' => 'Szeged',
3520 '09' => 'Gyor-Moson-Sopron'
3521 },
3522 'DO' => {
3523 '32' => 'Monte Plata',
3524 '33' => 'San Cristobal',
3525 '21' => 'Sanchez Ramirez',
3526 '05' => 'Distrito Nacional',
3527 '26' => 'Santiago Rodriguez',
3528 '04' => 'Dajabon',
3529 '17' => 'Peravia',
3530 '02' => 'Baoruco',
3531 '18' => 'Puerto Plata',
3532 '03' => 'Barahona',
3533 '30' => 'La Vega',
3534 '06' => 'Duarte',
3535 '16' => 'Pedernales',
3536 '27' => 'Valverde',
3537 '25' => 'Santiago',
3538 '01' => 'Azua',
3539 '28' => 'El Seibo',
3540 '14' => 'Maria Trinidad Sanchez',
3541 '20' => 'Samana',
3542 '24' => 'San Pedro De Macoris',
3543 '10' => 'La Altagracia',
3544 '31' => 'Monsenor Nouel',
3545 '35' => 'Peravia',
3546 '11' => 'Elias Pina',
3547 '08' => 'Espaillat',
3548 '23' => 'San Juan',
3549 '29' => 'Hato Mayor',
3550 '36' => 'San Jose de Ocoa',
3551 '12' => 'La Romana',
3552 '15' => 'Monte Cristi',
3553 '34' => 'Distrito Nacional',
3554 '37' => 'Santo Domingo',
3555 '19' => 'Salcedo',
3556 '09' => 'Independencia'
3557 },
3558 'UG' => {
3559 '67' => 'Busia',
3560 '21' => 'Nile',
3561 '90' => 'Mukono',
3562 '05' => 'Busoga',
3563 '80' => 'Kaberamaido',
3564 '88' => 'Moroto',
3565 '18' => 'Central',
3566 '82' => 'Kanungu',
3567 '84' => 'Kitgum',
3568 '74' => 'Sembabule',
3569 '25' => 'Western',
3570 '95' => 'Soroti',
3571 '83' => 'Kayunga',
3572 '20' => 'Eastern',
3573 '92' => 'Pader',
3574 '69' => 'Katakwi',
3575 '24' => 'Southern',
3576 '89' => 'Mpigi',
3577 '91' => 'Nakapiripirit',
3578 '78' => 'Iganga',
3579 '79' => 'Kabarole',
3580 '22' => 'North Buganda',
3581 '87' => 'Mbale',
3582 '93' => 'Rukungiri',
3583 '77' => 'Arua',
3584 '08' => 'Karamoja',
3585 '23' => 'Northern',
3586 '96' => 'Wakiso',
3587 '65' => 'Adjumani',
3588 '85' => 'Kyenjojo',
3589 '97' => 'Yumbe',
3590 '94' => 'Sironko',
3591 '12' => 'South Buganda',
3592 '81' => 'Kamwenge',
3593 '56' => 'Mubende',
3594 '37' => 'Kampala',
3595 '66' => 'Bugiri',
3596 '73' => 'Nakasongola',
3597 '86' => 'Mayuge'
3598 },
3599 'KH' => {
3600 '11' => 'Phnum Penh',
3601 '05' => 'Kampong Thum',
3602 '04' => 'Kampong Spoe',
3603 '17' => 'Stoeng Treng',
3604 '02' => 'Kampong Cham',
3605 '18' => 'Svay Rieng',
3606 '03' => 'Kampong Chhnang',
3607 '08' => 'Kaoh Kong',
3608 '30' => 'Pailin',
3609 '06' => 'Kampot',
3610 '13' => 'Preah Vihear',
3611 '16' => 'Siemreab-Otdar Meanchey',
3612 '29' => 'Batdambang',
3613 '12' => 'Pouthisat',
3614 '14' => 'Prey Veng',
3615 '15' => 'Rotanokiri',
3616 '07' => 'Kandal',
3617 '10' => 'Mondol Kiri',
3618 '19' => 'Takev',
3619 '09' => 'Kracheh'
3620 },
3621 'TG' => {
3622 '22' => 'Centrale',
3623 '25' => 'Plateaux',
3624 '18' => 'Tsevie',
3625 '24' => 'Maritime',
3626 '23' => 'Kara',
3627 '26' => 'Savanes',
3628 '09' => 'Lama-Kara'
3629 },
3630 'GB' => {
3631 'R1' => 'Ballymoney',
3632 'T9' => 'Scottish Borders, The',
3633 '90' => 'Clwyd',
3634 'X6' => 'Ceredigion',
3635 'N2' => 'Stockport',
3636 'Q3' => 'Wolverhampton',
3637 'B6' => 'Brighton and Hove',
3638 'C1' => 'Bury',
3639 'E8' => 'Hackney',
3640 'J2' => 'North East Lincolnshire',
3641 'L1' => 'Richmond upon Thames',
3642 'U3' => 'Dundee City',
3643 'W1' => 'Perth and Kinross',
3644 'O8' => 'Walsall',
3645 'I5' => 'Middlesbrough',
3646 'J9' => 'Nottinghamshire',
3647 '18' => 'Greater Manchester',
3648 'M8' => 'Southwark',
3649 'V5' => 'Midlothian',
3650 'P3' => 'Warwickshire',
3651 'U1' => 'Clackmannanshire',
3652 'Y6' => 'Newport',
3653 'C8' => 'Croydon',
3654 'H9' => 'London, City of',
3655 'V1' => 'Fife',
3656 'Z3' => 'Vale of Glamorgan, The',
3657 'H3' => 'Leeds',
3658 '84' => 'Lothian',
3659 'T1' => 'Newtownabbey',
3660 'E7' => 'Greenwich',
3661 'P5' => 'Westminster',
3662 'R3' => 'Belfast',
3663 'B1' => 'Bolton',
3664 'K3' => 'Peterborough',
3665 'Y1' => 'Flintshire',
3666 '20' => 'Hereford and Worcester',
3667 'T3' => 'Omagh',
3668 'X3' => 'Bridgend',
3669 'F3' => 'Haringey',
3670 'G6' => 'Kingston upon Hull, City of',
3671 'O4' => 'Torbay',
3672 'T2' => 'North Down',
3673 'S9' => 'Newry and Mourne',
3674 'P1' => 'Wandsworth',
3675 'X1' => 'Isle of Anglesey',
3676 'L2' => 'Rochdale',
3677 'M1' => 'Slough',
3678 'W2' => 'Renfrewshire',
3679 'E3' => 'Enfield',
3680 'M3' => 'Somerset',
3681 'V7' => 'North Ayrshire',
3682 'N6' => 'Sunderland',
3683 'L6' => 'Shropshire',
3684 'V9' => 'Orkney',
3685 'S4' => 'Limavady',
3686 'D7' => 'Dudley',
3687 'F6' => 'Havering',
3688 'B3' => 'Bracknell Forest',
3689 'U8' => 'Edinburgh, City of',
3690 'X9' => 'Denbighshire',
3691 'P8' => 'Wiltshire',
3692 'R8' => 'Craigavon',
3693 'S7' => 'Magherafelt',
3694 'T5' => 'Aberdeen City',
3695 'H6' => 'Lewisham',
3696 'I1' => 'Luton',
3697 'N4' => 'Stoke-on-Trent',
3698 'Q8' => 'Armagh',
3699 'W8' => 'Eilean Siar',
3700 'A1' => 'Barking and Dagenham',
3701 'M5' => 'Southend-on-Sea',
3702 'V3' => 'Highland',
3703 '17' => 'Greater London',
3704 'V8' => 'North Lanarkshire',
3705 'X8' => 'Conwy',
3706 'N8' => 'Sutton',
3707 'O1' => 'Tameside',
3708 'U6' => 'East Lothian',
3709 'G2' => 'Isle of Wight',
3710 'Q5' => 'York',
3711 'Y9' => 'Rhondda Cynon Taff',
3712 'E4' => 'Essex',
3713 'F7' => 'Herefordshire',
3714 'O3' => 'Thurrock',
3715 'V6' => 'Moray',
3716 '82' => 'Grampian',
3717 'K9' => 'Redcar and Cleveland',
3718 'C5' => 'Cheshire',
3719 'H1' => 'Lambeth',
3720 'U4' => 'East Ayrshire',
3721 'H2' => 'Lancashire',
3722 'I8' => 'Newham',
3723 '07' => 'Cleveland',
3724 'A3' => 'Barnsley',
3725 'F9' => 'Hillingdon',
3726 'J6' => 'Northumberland',
3727 'K6' => 'Portsmouth',
3728 'K1' => 'Oldham',
3729 'J5' => 'North Tyneside',
3730 'D2' => 'Derby',
3731 'G8' => 'Kirklees',
3732 'Z1' => 'Swansea',
3733 'I7' => 'Newcastle upon Tyne',
3734 '79' => 'Central',
3735 'L4' => 'Rutland',
3736 'W7' => 'West Dunbartonshire',
3737 'H7' => 'Lincolnshire',
3738 'B8' => 'Bromley',
3739 '96' => 'South Glamorgan',
3740 'B5' => 'Brent',
3741 'X7' => 'Carmarthenshire',
3742 'A6' => 'Bexley',
3743 'Q7' => 'Ards',
3744 'R6' => 'Coleraine',
3745 'I3' => 'Medway',
3746 'W5' => 'South Lanarkshire',
3747 'C7' => 'Coventry',
3748 'D4' => 'Devon',
3749 'D1' => 'Darlington',
3750 'A4' => 'Bath and North East Somerset',
3751 'X4' => 'Caerphilly',
3752 'G4' => 'Kensington and Chelsea',
3753 'L7' => 'Sandwell',
3754 'Q2' => 'Wokingham',
3755 'Y3' => 'Merthyr Tydfil',
3756 'F5' => 'Hartlepool',
3757 'M7' => 'South Tyneside',
3758 'T7' => 'Angus',
3759 '37' => 'South Yorkshire',
3760 '43' => 'West Midlands',
3761 'A9' => 'Blackpool',
3762 'M9' => 'Staffordshire',
3763 'S1' => 'Dungannon',
3764 'W3' => 'Shetland Islands',
3765 'N9' => 'Swindon',
3766 'O5' => 'Tower Hamlets',
3767 'N3' => 'Stockton-on-Tees',
3768 'P2' => 'Warrington',
3769 'T4' => 'Strabane',
3770 'P9' => 'Windsor and Maidenhead',
3771 'E9' => 'Halton',
3772 '03' => 'Berkshire',
3773 'G7' => 'Kingston upon Thames',
3774 'N5' => 'Suffolk',
3775 'I6' => 'Milton Keynes',
3776 'C2' => 'Calderdale',
3777 'P7' => 'Wigan',
3778 'V4' => 'Inverclyde',
3779 'F8' => 'Hertford',
3780 '01' => 'Avon',
3781 'W4' => 'South Ayrshire',
3782 'O9' => 'Waltham Forest',
3783 'E6' => 'Gloucestershire',
3784 'R4' => 'Carrickfergus',
3785 'R5' => 'Castlereagh',
3786 '92' => 'Gwent',
3787 'E2' => 'East Sussex',
3788 'J1' => 'Northamptonshire',
3789 'L9' => 'Sheffield',
3790 'O7' => 'Wakefield',
3791 'P4' => 'West Berkshire',
3792 'R2' => 'Banbridge',
3793 'K4' => 'Plymouth',
3794 'S3' => 'Larne',
3795 'Y2' => 'Gwynedd',
3796 'H8' => 'Liverpool',
3797 'J8' => 'Nottingham',
3798 'D6' => 'Dorset',
3799 'I4' => 'Merton',
3800 'Y5' => 'Neath Port Talbot',
3801 '91' => 'Dyfed',
3802 '87' => 'Strathclyde',
3803 'S8' => 'Moyle',
3804 'X2' => 'Blaenau Gwent',
3805 'P6' => 'West Sussex',
3806 'F2' => 'Hampshire',
3807 'S5' => 'Lisburn',
3808 'R9' => 'Down',
3809 'D8' => 'Durham',
3810 'Z2' => 'Torfaen',
3811 'Y7' => 'Pembrokeshire',
3812 'K2' => 'Oxfordshire',
3813 'S6' => 'Derry',
3814 '97' => 'West Glamorgan',
3815 'N7' => 'Surrey',
3816 'U2' => 'Dumfries and Galloway',
3817 '41' => 'Tyne and Wear',
3818 'U9' => 'Falkirk',
3819 'H4' => 'Leicester',
3820 'B7' => 'Bristol, City of',
3821 'J3' => 'North Lincolnshire',
3822 '45' => 'West Yorkshire',
3823 'M2' => 'Solihull',
3824 'G1' => 'Hounslow',
3825 'K7' => 'Reading',
3826 'H5' => 'Leicestershire',
3827 'B4' => 'Bradford',
3828 'G3' => 'Islington',
3829 'A2' => 'Barnet',
3830 'U5' => 'East Dunbartonshire',
3831 'D5' => 'Doncaster',
3832 '88' => 'Tayside',
3833 'A8' => 'Blackburn with Darwen',
3834 'U7' => 'East Renfrewshire',
3835 'Q6' => 'Antrim',
3836 'C6' => 'Cornwall',
3837 'X5' => 'Cardiff',
3838 '28' => 'Merseyside',
3839 'D9' => 'Ealing',
3840 'R7' => 'Cookstown',
3841 'C4' => 'Camden',
3842 'Q4' => 'Worcestershire',
3843 'I2' => 'Manchester',
3844 'F1' => 'Hammersmith and Fulham',
3845 'L5' => 'Salford',
3846 'F4' => 'Harrow',
3847 'C9' => 'Cumbria',
3848 'D3' => 'Derbyshire',
3849 'G9' => 'Knowsley',
3850 'T8' => 'Argyll and Bute',
3851 'Z4' => 'Wrexham',
3852 'E1' => 'East Riding of Yorkshire',
3853 'M4' => 'Southampton',
3854 '22' => 'Humberside',
3855 'T6' => 'Aberdeenshire',
3856 'S2' => 'Fermanagh',
3857 'L8' => 'Sefton',
3858 'B2' => 'Bournemouth',
3859 'Q9' => 'Ballymena',
3860 'W9' => 'West Lothian',
3861 'A7' => 'Birmingham',
3862 'M6' => 'South Gloucestershire',
3863 'N1' => 'St. Helens',
3864 'Y4' => 'Monmouthshire',
3865 'K5' => 'Poole',
3866 'I9' => 'Norfolk',
3867 'G5' => 'Kent',
3868 'O2' => 'Telford and Wrekin',
3869 'A5' => 'Bedfordshire',
3870 '94' => 'Mid Glamorgan',
3871 'K8' => 'Redbridge',
3872 'V2' => 'Glasgow City',
3873 'J7' => 'North Yorkshire',
3874 'Q1' => 'Wirral',
3875 'Y8' => 'Powys',
3876 'B9' => 'Buckinghamshire',
3877 'C3' => 'Cambridgeshire',
3878 'L3' => 'Rotherham',
3879 'J4' => 'North Somerset',
3880 'E5' => 'Gateshead',
3881 'W6' => 'Stirling',
3882 'O6' => 'Trafford'
3883 },
3884 'BB' => {
3885 '11' => 'Saint Thomas',
3886 '01' => 'Christ Church',
3887 '05' => 'Saint John',
3888 '04' => 'Saint James',
3889 '02' => 'Saint Andrew',
3890 '07' => 'Saint Lucy',
3891 '03' => 'Saint George',
3892 '08' => 'Saint Michael',
3893 '06' => 'Saint Joseph',
3894 '10' => 'Saint Philip',
3895 '09' => 'Saint Peter'
3896 },
3897 'HT' => {
3898 '11' => 'Ouest',
3899 '12' => 'Sud',
3900 '14' => 'Grand\' Anse',
3901 '15' => 'Nippes',
3902 '07' => 'Centre',
3903 '03' => 'Nord-Ouest',
3904 '13' => 'Sud-Est',
3905 '06' => 'Artibonite',
3906 '10' => 'Nord-Est',
3907 '09' => 'Nord'
3908 },
3909 'DK' => {
3910 '11' => 'Sonderjylland',
3911 '21' => 'Syddanmark',
3912 '05' => 'Kobenhavn',
3913 '04' => 'Fyn',
3914 '17' => 'Hovedstaden',
3915 '02' => 'Bornholm',
3916 '18' => 'Midtjyllen',
3917 '08' => 'Ribe',
3918 '03' => 'Frederiksborg',
3919 '06' => 'Staden Kobenhavn',
3920 '13' => 'Vejle',
3921 '01' => 'Arhus',
3922 '12' => 'Storstrom',
3923 '20' => 'Sjelland',
3924 '14' => 'Vestsjalland',
3925 '15' => 'Viborg',
3926 '07' => 'Nordjylland',
3927 '10' => 'Roskilde',
3928 '19' => 'Nordjylland',
3929 '09' => 'Ringkobing'
3930 },
3931 'PA' => {
3932 '01' => 'Bocas del Toro',
3933 '05' => 'Darien',
3934 '04' => 'Colon',
3935 '02' => 'Chiriqui',
3936 '07' => 'Los Santos',
3937 '03' => 'Cocle',
3938 '08' => 'Panama',
3939 '10' => 'Veraguas',
3940 '06' => 'Herrera',
3941 '09' => 'San Blas'
3942 },
3943 'QA' => {
3944 '11' => 'Jariyan al Batnah',
3945 '01' => 'Ad Dawhah',
3946 '05' => 'Al Wakrah Municipality',
3947 '04' => 'Al Khawr',
3948 '12' => 'Umm Sa\'id',
3949 '02' => 'Al Ghuwariyah',
3950 '03' => 'Al Jumaliyah',
3951 '08' => 'Madinat ach Shamal',
3952 '10' => 'Al Wakrah',
3953 '06' => 'Ar Rayyan',
3954 '09' => 'Umm Salal'
3955 },
3956 'CV' => {
3957 '11' => 'Sao Vicente',
3958 '05' => 'Paul',
3959 '04' => 'Maio',
3960 '17' => 'Sao Domingos',
3961 '02' => 'Brava',
3962 '18' => 'Sao Filipe',
3963 '08' => 'Sal',
3964 '16' => 'Santa Cruz',
3965 '13' => 'Mosteiros',
3966 '01' => 'Boa Vista',
3967 '14' => 'Praia',
3968 '15' => 'Santa Catarina',
3969 '20' => 'Tarrafal',
3970 '07' => 'Ribeira Grande',
3971 '10' => 'Sao Nicolau',
3972 '19' => 'Sao Miguel'
3973 },
3974 'GD' => {
3975 '01' => 'Saint Andrew',
3976 '03' => 'Saint George',
3977 '05' => 'Saint Mark',
3978 '06' => 'Saint Patrick',
3979 '04' => 'Saint John',
3980 '02' => 'Saint David'
3981 },
3982 'MO' => {
3983 '01' => 'Ilhas',
3984 '02' => 'Macau'
3985 },
3986 'KM' => {
3987 '01' => 'Anjouan',
3988 '03' => 'Moheli',
3989 '02' => 'Grande Comore'
3990 },
3991 'HR' => {
3992 '11' => 'Pozesko-Slavonska',
3993 '21' => 'Grad Zagreb',
3994 '05' => 'Karlovacka',
3995 '04' => 'Istarska',
3996 '17' => 'Viroviticko-Podravska',
3997 '02' => 'Brodsko-Posavska',
3998 '18' => 'Vukovarsko-Srijemska',
3999 '08' => 'Licko-Senjska',
4000 '03' => 'Dubrovacko-Neretvanska',
4001 '06' => 'Koprivnicko-Krizevacka',
4002 '13' => 'Sibensko-Kninska',
4003 '16' => 'Varazdinska',
4004 '01' => 'Bjelovarsko-Bilogorska',
4005 '12' => 'Primorsko-Goranska',
4006 '15' => 'Splitsko-Dalmatinska',
4007 '20' => 'Zagrebacka',
4008 '14' => 'Sisacko-Moslavacka',
4009 '07' => 'Krapinsko-Zagorska',
4010 '10' => 'Osjecko-Baranjska',
4011 '19' => 'Zadarska',
4012 '09' => 'Medimurska'
4013 },
4014 'KW' => {
4015 '07' => 'Al Farwaniyah',
4016 '01' => 'Al Ahmadi',
4017 '05' => 'Al Jahra',
4018 '08' => 'Hawalli',
4019 '09' => 'Mubarak al Kabir',
4020 '02' => 'Al Kuwayt'
4021 },
4022 'CZ' => {
4023 '33' => 'Liberec',
4024 '21' => 'Jablonec nad Nisou',
4025 '90' => 'Zlinsky kraj',
4026 '70' => 'Trutnov',
4027 '80' => 'Vysocina',
4028 '04' => 'Breclav',
4029 '78' => 'Jihomoravsky kraj',
4030 '79' => 'Jihocesky kraj',
4031 '87' => 'Plzensky kraj',
4032 '88' => 'Stredocesky kraj',
4033 '03' => 'Blansko',
4034 '30' => 'Kolin',
4035 '23' => 'Jicin',
4036 '82' => 'Kralovehradecky kraj',
4037 '84' => 'Olomoucky kraj',
4038 '39' => 'Nachod',
4039 '85' => 'Moravskoslezsky kraj',
4040 '36' => 'Melnik',
4041 '83' => 'Liberecky kraj',
4042 '61' => 'Semily',
4043 '41' => 'Nymburk',
4044 '20' => 'Hradec Kralove',
4045 '52' => 'Hlavni mesto Praha',
4046 '81' => 'Karlovarsky kraj',
4047 '45' => 'Pardubice',
4048 '37' => 'Mlada Boleslav',
4049 '24' => 'Jihlava',
4050 '89' => 'Ustecky kraj',
4051 '86' => 'Pardubicky kraj'
4052 },
4053 'ES' => {
4054 '32' => 'Navarra',
4055 '53' => 'Canarias',
4056 '29' => 'Madrid',
4057 '55' => 'Castilla y Leon',
4058 '27' => 'La Rioja',
4059 '39' => 'Cantabria',
4060 '57' => 'Extremadura',
4061 '51' => 'Andalucia',
4062 '58' => 'Galicia',
4063 '52' => 'Aragon',
4064 '07' => 'Islas Baleares',
4065 '59' => 'Pais Vasco',
4066 '60' => 'Comunidad Valenciana',
4067 '34' => 'Asturias',
4068 '56' => 'Catalonia',
4069 '31' => 'Murcia',
4070 '54' => 'Castilla-La Mancha'
4071 },
4072 'MZ' => {
4073 '11' => 'Maputo',
4074 '01' => 'Cabo Delgado',
4075 '05' => 'Sofala',
4076 '04' => 'Maputo',
4077 '02' => 'Gaza',
4078 '07' => 'Niassa',
4079 '03' => 'Inhambane',
4080 '08' => 'Tete',
4081 '06' => 'Nampula',
4082 '10' => 'Manica',
4083 '09' => 'Zambezia'
4084 },
4085 'BO' => {
4086 '01' => 'Chuquisaca',
4087 '05' => 'Oruro',
4088 '04' => 'La Paz',
4089 '02' => 'Cochabamba',
4090 '07' => 'Potosi',
4091 '03' => 'El Beni',
4092 '08' => 'Santa Cruz',
4093 '06' => 'Pando',
4094 '09' => 'Tarija'
4095 },
4096 'ST' => {
4097 '01' => 'Principe',
4098 '02' => 'Sao Tome'
4099 },
4100 'AU' => {
4101 '07' => 'Victoria',
4102 '01' => 'Australian Capital Territory',
4103 '08' => 'Western Australia',
4104 '03' => 'Northern Territory',
4105 '05' => 'South Australia',
4106 '06' => 'Tasmania',
4107 '04' => 'Queensland',
4108 '02' => 'New South Wales'
4109 },
4110 'AL' => {
4111 '50' => 'Tirane',
4112 '40' => 'Berat',
4113 '51' => 'Vlore',
4114 '41' => 'Diber',
4115 '47' => 'Kukes',
4116 '48' => 'Lezhe',
4117 '42' => 'Durres',
4118 '46' => 'Korce',
4119 '49' => 'Shkoder',
4120 '45' => 'Gjirokaster',
4121 '43' => 'Elbasan',
4122 '44' => 'Fier'
4123 },
4124 'IR' => {
4125 '32' => 'Ardabil',
4126 '33' => 'East Azarbaijan',
4127 '21' => 'Zanjan',
4128 '05' => 'Kohkiluyeh va Buyer Ahmadi',
4129 '26' => 'Tehran',
4130 '04' => 'Sistan va Baluchestan',
4131 '17' => 'Mazandaran',
4132 '02' => 'Azarbayjan-e Khavari',
4133 '18' => 'Semnān Province',
4134 '03' => 'Chahar Mahall va Bakhtiari',
4135 '30' => 'Khorasan',
4136 '16' => 'Kordestan',
4137 '27' => 'Zanjan',
4138 '25' => 'Semnan',
4139 '01' => 'Azarbayjan-e Bakhtari',
4140 '28' => 'Esfahan',
4141 '40' => 'Yazd',
4142 '07' => 'Fars',
4143 '24' => 'Markazi',
4144 '10' => 'Ilam',
4145 '31' => 'Yazd',
4146 '35' => 'Mazandaran',
4147 '11' => 'Hormozgan',
4148 '22' => 'Bushehr',
4149 '42' => 'Khorasan-e Razavi',
4150 '08' => 'Gilan',
4151 '13' => 'Bakhtaran',
4152 '23' => 'Lorestan',
4153 '29' => 'Kerman',
4154 '39' => 'Qom',
4155 '36' => 'Zanjan',
4156 '12' => 'Kerman',
4157 '41' => 'Khorasan-e Janubi',
4158 '15' => 'Khuzestan',
4159 '38' => 'Qazvin',
4160 '34' => 'Markazi',
4161 '37' => 'Golestan',
4162 '43' => 'Khorasan-e Shemali',
4163 '19' => 'Markazi',
4164 '09' => 'Hamadan'
4165 },
4166 'CG' => {
4167 '11' => 'Pool',
4168 '01' => 'Bouenza',
4169 '05' => 'Lekoumou',
4170 '04' => 'Kouilou',
4171 '12' => 'Brazzaville',
4172 '07' => 'Niari',
4173 '03' => 'Cuvette',
4174 '08' => 'Plateaux',
4175 '10' => 'Sangha',
4176 '06' => 'Likouala'
4177 },
4178 'TR' => {
4179 '32' => 'Icel',
4180 '33' => 'Isparta',
4181 '21' => 'Diyarbakir',
4182 '63' => 'Sanliurfa',
4183 '90' => 'Kilis',
4184 '71' => 'Konya',
4185 '26' => 'Eskisehir',
4186 '80' => 'Sirnak',
4187 '02' => 'Adiyaman',
4188 '03' => 'Afyonkarahisar',
4189 '72' => 'Mardin',
4190 '16' => 'Bursa',
4191 '44' => 'Malatya',
4192 '55' => 'Samsun',
4193 '84' => 'Kars',
4194 '74' => 'Siirt',
4195 '57' => 'Sinop',
4196 '61' => 'Trabzon',
4197 '20' => 'Denizli',
4198 '92' => 'Yalova',
4199 '89' => 'Karabuk',
4200 '10' => 'Balikesir',
4201 '31' => 'Hatay',
4202 '35' => 'Izmir',
4203 '11' => 'Bilecik',
4204 '91' => 'Osmaniye',
4205 '78' => 'Karaman',
4206 '48' => 'Mugla',
4207 '87' => 'Bartin',
4208 '93' => 'Duzce',
4209 '77' => 'Bayburt',
4210 '08' => 'Artvin',
4211 '65' => 'Van',
4212 '50' => 'Nevsehir',
4213 '39' => 'Kirklareli',
4214 '64' => 'Usak',
4215 '12' => 'Bingol',
4216 '41' => 'Kocaeli',
4217 '58' => 'Sivas',
4218 '15' => 'Burdur',
4219 '52' => 'Ordu',
4220 '81' => 'Adana',
4221 '60' => 'Tokat',
4222 '45' => 'Manisa',
4223 '66' => 'Yozgat',
4224 '73' => 'Nigde',
4225 '19' => 'Corum',
4226 '76' => 'Batman',
4227 '86' => 'Ardahan',
4228 '09' => 'Aydin',
4229 '62' => 'Tunceli',
4230 '54' => 'Sakarya',
4231 '05' => 'Amasya',
4232 '70' => 'Hakkari',
4233 '68' => 'Ankara',
4234 '04' => 'Agri',
4235 '17' => 'Canakkale',
4236 '88' => 'Igdir',
4237 '82' => 'Cankiri',
4238 '25' => 'Erzurum',
4239 '28' => 'Giresun',
4240 '83' => 'Gaziantep',
4241 '40' => 'Kirsehir',
4242 '75' => 'Aksaray',
4243 '14' => 'Bolu',
4244 '69' => 'Gumushane',
4245 '59' => 'Tekirdag',
4246 '07' => 'Antalya',
4247 '49' => 'Mus',
4248 '24' => 'Erzincan',
4249 '53' => 'Rize',
4250 '79' => 'Kirikkale',
4251 '22' => 'Edirne',
4252 '46' => 'Kahramanmaras',
4253 '13' => 'Bitlis',
4254 '23' => 'Elazig',
4255 '85' => 'Zonguldak',
4256 '38' => 'Kayseri',
4257 '34' => 'Istanbul',
4258 '37' => 'Kastamonu',
4259 '43' => 'Kutahya'
4260 },
4261 'MD' => {
4262 '67' => 'Causeni',
4263 '63' => 'Briceni',
4264 '90' => 'Taraclia',
4265 '70' => 'Donduseni',
4266 '71' => 'Drochia',
4267 '68' => 'Cimislia',
4268 '80' => 'Nisporeni',
4269 '88' => 'Stefan-Voda',
4270 '72' => 'Dubasari',
4271 '55' => 'Tighina',
4272 '84' => 'Riscani',
4273 '74' => 'Falesti',
4274 '83' => 'Rezina',
4275 '75' => 'Floresti',
4276 '61' => 'Basarabeasca',
4277 '59' => 'Anenii Noi',
4278 '92' => 'Ungheni',
4279 '69' => 'Criuleni',
4280 '49' => 'Stinga Nistrului',
4281 '89' => 'Straseni',
4282 '53' => 'Orhei',
4283 '91' => 'Telenesti',
4284 '78' => 'Ialoveni',
4285 '48' => 'Chisinau',
4286 '79' => 'Leova',
4287 '87' => 'Soroca',
4288 '77' => 'Hincesti',
4289 '46' => 'Balti',
4290 '65' => 'Cantemir',
4291 '50' => 'Edinet',
4292 '85' => 'Singerei',
4293 '64' => 'Cahul',
4294 '51' => 'Gagauzia',
4295 '58' => 'Stinga Nistrului',
4296 '47' => 'Cahul',
4297 '52' => 'Lapusna',
4298 '81' => 'Ocnita',
4299 '60' => 'Balti',
4300 '56' => 'Ungheni',
4301 '73' => 'Edinet',
4302 '66' => 'Calarasi',
4303 '76' => 'Glodeni',
4304 '86' => 'Soldanesti',
4305 '62' => 'Bender',
4306 '54' => 'Soroca'
4307 },
4308 'BI' => {
4309 '11' => 'Cankuzo',
4310 '21' => 'Ruyigi',
4311 '12' => 'Cibitoke',
4312 '17' => 'Makamba',
4313 '20' => 'Rutana',
4314 '15' => 'Kayanza',
4315 '14' => 'Karuzi',
4316 '02' => 'Bujumbura',
4317 '22' => 'Muramvya',
4318 '18' => 'Muyinga',
4319 '19' => 'Ngozi',
4320 '10' => 'Bururi',
4321 '13' => 'Gitega',
4322 '23' => 'Mwaro',
4323 '16' => 'Kirundo',
4324 '09' => 'Bubanza'
4325 },
4326 'GN' => {
4327 '32' => 'Kankan',
4328 '33' => 'Koubia',
4329 '21' => 'Macenta',
4330 '05' => 'Dabola',
4331 '04' => 'Conakry',
4332 '17' => 'Kissidougou',
4333 '02' => 'Boffa',
4334 '18' => 'Koundara',
4335 '03' => 'Boke',
4336 '30' => 'Coyah',
4337 '06' => 'Dalaba',
4338 '16' => 'Kindia',
4339 '27' => 'Telimele',
4340 '25' => 'Pita',
4341 '28' => 'Tougue',
4342 '01' => 'Beyla',
4343 '07' => 'Dinguiraye',
4344 '10' => 'Forecariah',
4345 '31' => 'Dubreka',
4346 '35' => 'Lelouma',
4347 '11' => 'Fria',
4348 '22' => 'Mali',
4349 '13' => 'Gueckedou',
4350 '23' => 'Mamou',
4351 '29' => 'Yomou',
4352 '39' => 'Siguiri',
4353 '36' => 'Lola',
4354 '12' => 'Gaoual',
4355 '15' => 'Kerouane',
4356 '38' => 'Nzerekore',
4357 '34' => 'Labe',
4358 '37' => 'Mandiana',
4359 '19' => 'Kouroussa',
4360 '09' => 'Faranah'
4361 },
4362 'GW' => {
4363 '11' => 'Bissau',
4364 '01' => 'Bafata',
4365 '05' => 'Bolama',
4366 '04' => 'Oio',
4367 '12' => 'Biombo',
4368 '02' => 'Quinara',
4369 '07' => 'Tombali',
4370 '06' => 'Cacheu',
4371 '10' => 'Gabu'
4372 },
4373 'MK' => {
4374 '32' => 'Gazi Baba',
4375 '33' => 'Gevgelija',
4376 '21' => 'Debar',
4377 '63' => 'Makedonski Brod',
4378 '90' => 'Saraj',
4379 '71' => 'Novaci',
4380 '26' => 'Dobrusevo',
4381 '80' => 'Plasnica',
4382 'B6' => 'Vranestica',
4383 '02' => 'Bac',
4384 'C1' => 'Zajas',
4385 '99' => 'Struga',
4386 '18' => 'Centar Zupa',
4387 '03' => 'Belcista',
4388 '72' => 'Novo Selo',
4389 '16' => 'Cegrane',
4390 '44' => 'Kisela Voda',
4391 '55' => 'Kuklis',
4392 'C2' => 'Zelenikovo',
4393 '27' => 'Dolna Banjica',
4394 '74' => 'Ohrid',
4395 '84' => 'Radovis',
4396 '01' => 'Aracinovo',
4397 'B1' => 'Veles',
4398 '57' => 'Kumanovo',
4399 '95' => 'Staravina',
4400 '61' => 'Lukovo',
4401 '20' => 'Cucer-Sandevo',
4402 '92' => 'Sopiste',
4403 '89' => 'Samokov',
4404 '10' => 'Bogovinje',
4405 '31' => 'Dzepciste',
4406 '35' => 'Gradsko',
4407 '11' => 'Bosilovo',
4408 '91' => 'Sipkovica',
4409 '78' => 'Pehcevo',
4410 '48' => 'Kondovo',
4411 '87' => 'Rosoman',
4412 '77' => 'Oslomej',
4413 '93' => 'Sopotnica',
4414 '08' => 'Bogdanci',
4415 '29' => 'Dorce Petrov',
4416 '65' => 'Meseista',
4417 '50' => 'Kosel',
4418 '39' => 'Kamenjane',
4419 '64' => 'Mavrovi Anovi',
4420 '97' => 'Staro Nagoricane',
4421 '12' => 'Brvenica',
4422 '41' => 'Karpos',
4423 '58' => 'Labunista',
4424 '15' => 'Caska',
4425 '52' => 'Kriva Palanka',
4426 '81' => 'Podares',
4427 'B7' => 'Vrapciste',
4428 '60' => 'Lozovo',
4429 'B3' => 'Vevcani',
4430 '56' => 'Kukurecani',
4431 '45' => 'Klecevce',
4432 '66' => 'Miravci',
4433 '73' => 'Oblesevo',
4434 '19' => 'Cesinovo',
4435 '76' => 'Orizari',
4436 '86' => 'Resen',
4437 '09' => 'Bogomila',
4438 '62' => 'Makedonska Kamenica',
4439 '54' => 'Krusevo',
4440 '67' => 'Mogila',
4441 'A1' => 'Strumica',
4442 '05' => 'Bistrica',
4443 '70' => 'Negotino-Polosko',
4444 'B4' => 'Vinica',
4445 '68' => 'Murtino',
4446 'A2' => 'Studenicani',
4447 '17' => 'Centar',
4448 '04' => 'Berovo',
4449 '88' => 'Rostusa',
4450 'A8' => 'Valandovo',
4451 '30' => 'Drugovo',
4452 '06' => 'Bitola',
4453 '82' => 'Prilep',
4454 '25' => 'Demir Kapija',
4455 'C6' => 'Zrnovci',
4456 '28' => 'Dolneni',
4457 'C5' => 'Zletovo',
4458 '40' => 'Karbinci',
4459 '75' => 'Orasac',
4460 '83' => 'Probistip',
4461 '14' => 'Capari',
4462 'C4' => 'Zitose',
4463 '59' => 'Lipkovo',
4464 '07' => 'Blatec',
4465 '69' => 'Negotino',
4466 'A3' => 'Suto Orizari',
4467 '49' => 'Konopiste',
4468 '24' => 'Demir Hisar',
4469 '53' => 'Krivogastani',
4470 '79' => 'Petrovec',
4471 '42' => 'Kavadarci',
4472 '22' => 'Delcevo',
4473 '46' => 'Kocani',
4474 '13' => 'Cair',
4475 '23' => 'Delogozdi',
4476 'B2' => 'Velesta',
4477 'B8' => 'Vratnica',
4478 '96' => 'Star Dojran',
4479 'A7' => 'Topolcani',
4480 'B5' => 'Vitoliste',
4481 '85' => 'Rankovce',
4482 '36' => 'Ilinden',
4483 'A6' => 'Tetovo',
4484 '94' => 'Srbinovo',
4485 'A5' => 'Tearce',
4486 '51' => 'Kratovo',
4487 'A4' => 'Sveti Nikole',
4488 '47' => 'Konce',
4489 '38' => 'Jegunovce',
4490 '98' => 'Stip',
4491 'B9' => 'Vrutok',
4492 '34' => 'Gostivar',
4493 'C3' => 'Zelino',
4494 '37' => 'Izvor',
4495 '43' => 'Kicevo',
4496 'A9' => 'Vasilevo'
4497 },
4498 'GR' => {
4499 '32' => 'Fokis',
4500 '33' => 'Voiotia',
4501 '21' => 'Larisa',
4502 '05' => 'Serrai',
4503 '26' => 'Levkas',
4504 '04' => 'Drama',
4505 '17' => 'Ioannina',
4506 '02' => 'Rodhopi',
4507 '18' => 'Thesprotia',
4508 '03' => 'Xanthi',
4509 '30' => 'Evritania',
4510 '06' => 'Kilkis',
4511 '16' => 'Pieria',
4512 '44' => 'Rethimni',
4513 '27' => 'Kefallinia',
4514 '25' => 'Kerkira',
4515 '01' => 'Evros',
4516 '28' => 'Zakinthos',
4517 '40' => 'Messinia',
4518 '14' => 'Kavala',
4519 '20' => 'Arta',
4520 '07' => 'Pella',
4521 '49' => 'Kikladhes',
4522 '24' => 'Magnisia',
4523 '10' => 'Grevena',
4524 '31' => 'Aitolia kai Akarnania',
4525 '35' => 'Attiki',
4526 '11' => 'Kozani',
4527 '48' => 'Samos',
4528 '42' => 'Lakonia',
4529 '22' => 'Trikala',
4530 '08' => 'Florina',
4531 '46' => 'Lasithi',
4532 '23' => 'Kardhitsa',
4533 '13' => 'Thessaloniki',
4534 '29' => 'Fthiotis',
4535 '50' => 'Khios',
4536 '39' => 'Ilia',
4537 '36' => 'Argolis',
4538 '51' => 'Lesvos',
4539 '12' => 'Imathia',
4540 '41' => 'Arkadhia',
4541 '15' => 'Khalkidhiki',
4542 '47' => 'Dhodhekanisos',
4543 '38' => 'Akhaia',
4544 '34' => 'Evvoia',
4545 '37' => 'Korinthia',
4546 '45' => 'Iraklion',
4547 '19' => 'Preveza',
4548 '43' => 'Khania',
4549 '09' => 'Kastoria'
4550 },
4551 'AG' => {
4552 '07' => 'Saint Peter',
4553 '01' => 'Barbuda',
4554 '03' => 'Saint George',
4555 '05' => 'Saint Mary',
4556 '08' => 'Saint Philip',
4557 '06' => 'Saint Paul',
4558 '04' => 'Saint John'
4559 },
4560 'SI' => {
4561 '32' => 'Grosuplje',
4562 '71' => 'Medvode',
4563 'N2' => 'Videm',
4564 'B6' => 'Sevnica',
4565 '02' => 'Beltinci',
4566 'C1' => 'Skofljica',
4567 'J2' => 'Maribor',
4568 'L1' => 'Ribnica',
4569 'I5' => 'Litija',
4570 'J9' => 'Piran',
4571 '16' => 'Crna na Koroskem',
4572 '44' => 'Kanal',
4573 'C8' => 'Starse',
4574 '55' => 'Kungota',
4575 '84' => 'Nova Gorica',
4576 '27' => 'Gorenja Vas-Poljane',
4577 'E7' => 'Zagorje ob Savi',
4578 'B1' => 'Semic',
4579 '57' => 'Lasko',
4580 '20' => 'Dobrepolje',
4581 'F3' => 'Zrece',
4582 '89' => 'Pesnica',
4583 '31' => 'Gornji Petrovci',
4584 '35' => 'Hrpelje-Kozina',
4585 '11' => 'Celje',
4586 '78' => 'Moravske Toplice',
4587 '29' => 'Gornja Radgona',
4588 'E3' => 'Vodice',
4589 '15' => 'Crensovci',
4590 '81' => 'Muta',
4591 'D7' => 'Velenje',
4592 'B3' => 'Sentilj',
4593 '73' => 'Metlika',
4594 '76' => 'Mislinja',
4595 '86' => 'Odranci',
4596 '09' => 'Brezovica',
4597 '62' => 'Ljubno',
4598 'H6' => 'Kamnik',
4599 'A1' => 'Radenci',
4600 '05' => 'Borovnica',
4601 '17' => 'Crnomelj',
4602 '82' => 'Naklo',
4603 'C5' => 'Smarje pri Jelsah',
4604 '14' => 'Cerkno',
4605 '07' => 'Brda',
4606 'A3' => 'Radovljica',
4607 '49' => 'Komen',
4608 '24' => 'Dornava',
4609 'J5' => 'Miren-Kostanjevica',
4610 'D2' => 'Tolmin',
4611 'I7' => 'Loska Dolina',
4612 '79' => 'Mozirje',
4613 'H7' => 'Kocevje',
4614 'B8' => 'Skocjan',
4615 'A6' => 'Rogasovci',
4616 'I3' => 'Lenart',
4617 'C7' => 'Sostanj',
4618 'D4' => 'Trebnje',
4619 'D1' => 'Sveti Jurij',
4620 'L7' => 'Sentjur pri Celju',
4621 'G4' => 'Dobrova-Horjul-Polhov Gradec',
4622 '47' => 'Kobilje',
4623 '98' => 'Racam',
4624 '37' => 'Ig',
4625 'N3' => 'Vojnik',
4626 '26' => 'Duplek',
4627 '80' => 'Murska Sobota',
4628 '99' => 'Radece',
4629 '03' => 'Bled',
4630 '72' => 'Menges',
4631 'E9' => 'Zavrc',
4632 'N5' => 'Zalec',
4633 'G7' => 'Domzale',
4634 'C2' => 'Slovenj Gradec',
4635 'I6' => 'Ljutomer',
4636 '74' => 'Mezica',
4637 '01' => 'Ajdovscina',
4638 '61' => 'Ljubljana',
4639 'E6' => 'Vuzenica',
4640 '92' => 'Podcetrtek',
4641 'E2' => 'Vitanje',
4642 'J1' => 'Majsperk',
4643 'D6' => 'Turnisce',
4644 '91' => 'Pivka',
4645 '87' => 'Ormoz',
4646 '77' => 'Moravce',
4647 '08' => 'Brezice',
4648 'F2' => 'Ziri',
4649 'D8' => 'Velike Lasce',
4650 '50' => 'Koper-Capodistria',
4651 '39' => 'Ivancna Gorica',
4652 '64' => 'Logatec',
4653 '97' => 'Puconci',
4654 '12' => 'Cerklje na Gorenjskem',
4655 '52' => 'Kranj',
4656 'B7' => 'Sezana',
4657 'H4' => 'Jesenice',
4658 '45' => 'Kidricevo',
4659 '66' => 'Loski Potok',
4660 '19' => 'Divaca',
4661 '54' => 'Krsko',
4662 'K7' => 'Ptuj',
4663 'B4' => 'Sentjernej',
4664 '68' => 'Lukovica',
4665 'A2' => 'Radlje ob Dravi',
4666 '04' => 'Bohinj',
4667 'D5' => 'Trzic',
4668 '88' => 'Osilnica',
4669 'A8' => 'Rogatec',
4670 '30' => 'Gornji Grad',
4671 '06' => 'Bovec',
4672 '25' => 'Dravograd',
4673 'C6' => 'Smartno ob Paki',
4674 '28' => 'Gorisnica',
4675 '40' => 'Izola-Isola',
4676 '83' => 'Nazarje',
4677 'C4' => 'Slovenske Konjice',
4678 'I2' => 'Kuzma',
4679 'F1' => 'Zelezniki',
4680 'C9' => 'Store',
4681 '53' => 'Kranjska Gora',
4682 'D3' => 'Trbovlje',
4683 'E1' => 'Vipava',
4684 '42' => 'Jursinci',
4685 '22' => 'Dol pri Ljubljani',
4686 'L8' => 'Slovenska Bistrica',
4687 '46' => 'Kobarid',
4688 'B2' => 'Sencur',
4689 '13' => 'Cerknica',
4690 'A7' => 'Rogaska Slatina',
4691 'K5' => 'Preddvor',
4692 'I9' => 'Luce',
4693 '36' => 'Idrija',
4694 '94' => 'Postojna',
4695 '51' => 'Kozje',
4696 'J7' => 'Novo Mesto',
4697 '38' => 'Ilirska Bistrica',
4698 'B9' => 'Skofja Loka',
4699 '34' => 'Hrastnik',
4700 'L3' => 'Ruse',
4701 'E5' => 'Vrhnika'
4702 },
4703 'CO' => {
4704 '32' => 'Casanare',
4705 '33' => 'Cundinamarca',
4706 '21' => 'Norte de Santander',
4707 '05' => 'Bolívar Department',
4708 '26' => 'Santander',
4709 '04' => 'Atlantico',
4710 '17' => 'La Guajira',
4711 '02' => 'Antioquia',
4712 '18' => 'Magdalena Department',
4713 '03' => 'Arauca',
4714 '30' => 'Vaupes',
4715 '16' => 'Huila',
4716 '06' => 'Boyacá Department',
4717 '27' => 'Sucre',
4718 '25' => 'San Andres y Providencia',
4719 '01' => 'Amazonas',
4720 '28' => 'Tolima',
4721 '20' => 'Narino',
4722 '14' => 'Guaviare',
4723 '07' => 'Caldas Department',
4724 '24' => 'Risaralda',
4725 '10' => 'Cesar',
4726 '31' => 'Vichada',
4727 '35' => 'Bolivar',
4728 '11' => 'Choco',
4729 '22' => 'Putumayo',
4730 '08' => 'Caqueta',
4731 '23' => 'Quindio',
4732 '29' => 'Valle del Cauca',
4733 '36' => 'Boyaca',
4734 '12' => 'Cordoba',
4735 '15' => 'Guainia',
4736 '38' => 'Magdalena',
4737 '34' => 'Distrito Especial',
4738 '37' => 'Caldas',
4739 '19' => 'Meta',
4740 '09' => 'Cauca'
4741 },
4742 'JO' => {
4743 '11' => 'Amman Governorate',
4744 '12' => 'At Tafilah',
4745 '02' => 'Al Balqa\'',
4746 '14' => 'Irbid',
4747 '07' => 'Ma',
4748 '10' => 'Al Mafraq',
4749 '13' => 'Az Zarqa',
4750 '16' => 'Amman',
4751 '09' => 'Al Karak'
4752 },
4753 'SM' => {
4754 '01' => 'Acquaviva',
4755 '05' => 'Fiorentino',
4756 '04' => 'Faetano',
4757 '02' => 'Chiesanuova',
4758 '07' => 'San Marino',
4759 '03' => 'Domagnano',
4760 '08' => 'Monte Giardino',
4761 '06' => 'Borgo Maggiore',
4762 '09' => 'Serravalle'
4763 },
4764 'UA' => {
4765 '11' => 'Krym',
4766 '21' => 'Sums\'ka Oblast\'',
4767 '05' => 'Donets\'ka Oblast\'',
4768 '26' => 'Zaporiz\'ka Oblast\'',
4769 '04' => 'Dnipropetrovs\'ka Oblast\'',
4770 '17' => 'Odes\'ka Oblast\'',
4771 '02' => 'Chernihivs\'ka Oblast\'',
4772 '22' => 'Ternopil\'s\'ka Oblast\'',
4773 '18' => 'Poltavs\'ka Oblast\'',
4774 '08' => 'Khersons\'ka Oblast\'',
4775 '03' => 'Chernivets\'ka Oblast\'',
4776 '06' => 'Ivano-Frankivs\'ka Oblast\'',
4777 '13' => 'Kyyivs\'ka Oblast\'',
4778 '16' => 'Mykolayivs\'ka Oblast\'',
4779 '23' => 'Vinnyts\'ka Oblast\'',
4780 '27' => 'Zhytomyrs\'ka Oblast\'',
4781 '25' => 'Zakarpats\'ka Oblast\'',
4782 '01' => 'Cherkas\'ka Oblast\'',
4783 '12' => 'Kyyiv',
4784 '15' => 'L\'vivs\'ka Oblast\'',
4785 '14' => 'Luhans\'ka Oblast\'',
4786 '20' => 'Sevastopol\'',
4787 '07' => 'Kharkivs\'ka Oblast\'',
4788 '24' => 'Volyns\'ka Oblast\'',
4789 '10' => 'Kirovohrads\'ka Oblast\'',
4790 '19' => 'Rivnens\'ka Oblast\'',
4791 '09' => 'Khmel\'nyts\'ka Oblast\''
4792 },
4793 'CL' => {
4794 '11' => 'Maule',
4795 '01' => 'Valparaiso',
4796 '05' => 'Atacama',
4797 '04' => 'Araucania',
4798 '12' => 'Region Metropolitana',
4799 '02' => 'Aisen del General Carlos Ibanez del Campo',
4800 '07' => 'Coquimbo',
4801 '08' => 'Libertador General Bernardo O\'Higgins',
4802 '03' => 'Antofagasta',
4803 '06' => 'Bio-Bio',
4804 '10' => 'Magallanes y de la Antartica Chilena',
4805 '13' => 'Tarapaca',
4806 '09' => 'Los Lagos'
4807 },
4808 'CU' => {
4809 '11' => 'La Habana',
4810 '01' => 'Pinar del Rio',
4811 '05' => 'Camaguey',
4812 '04' => 'Isla de la Juventud',
4813 '12' => 'Holguin',
4814 '02' => 'Ciudad de la Habana',
4815 '14' => 'Sancti Spiritus',
4816 '15' => 'Santiago de Cuba',
4817 '07' => 'Ciego de Avila',
4818 '08' => 'Cienfuegos',
4819 '03' => 'Matanzas',
4820 '10' => 'Guantanamo',
4821 '13' => 'Las Tunas',
4822 '16' => 'Villa Clara',
4823 '09' => 'Granma'
4824 },
4825 'KN' => {
4826 '11' => 'Saint Peter Basseterre',
4827 '01' => 'Christ Church Nichola Town',
4828 '05' => 'Saint James Windward',
4829 '04' => 'Saint George Gingerland',
4830 '12' => 'Saint Thomas Lowland',
4831 '02' => 'Saint Anne Sandy Point',
4832 '15' => 'Trinity Palmetto Point',
4833 '07' => 'Saint John Figtree',
4834 '08' => 'Saint Mary Cayon',
4835 '03' => 'Saint George Basseterre',
4836 '06' => 'Saint John Capisterre',
4837 '10' => 'Saint Paul Charlestown',
4838 '13' => 'Saint Thomas Middle Island',
4839 '09' => 'Saint Paul Capisterre'
4840 },
4841 'ML' => {
4842 '01' => 'Bamako',
4843 '05' => 'Segou',
4844 '04' => 'Mopti',
4845 '07' => 'Koulikoro',
4846 '03' => 'Kayes',
4847 '08' => 'Tombouctou',
4848 '10' => 'Kidal',
4849 '06' => 'Sikasso',
4850 '09' => 'Gao'
4851 },
4852 'SC' => {
4853 '11' => 'Cascade',
4854 '21' => 'Port Glaud',
4855 '05' => 'Anse Royale',
4856 '04' => 'Anse Louis',
4857 '17' => 'Mont Buxton',
4858 '02' => 'Anse Boileau',
4859 '22' => 'Saint Louis',
4860 '18' => 'Mont Fleuri',
4861 '08' => 'Beau Vallon',
4862 '03' => 'Anse Etoile',
4863 '06' => 'Baie Lazare',
4864 '13' => 'Grand\' Anse',
4865 '16' => 'La Riviere Anglaise',
4866 '23' => 'Takamaka',
4867 '01' => 'Anse aux Pins',
4868 '12' => 'Glacis',
4869 '15' => 'La Digue',
4870 '14' => 'Grand\' Anse',
4871 '20' => 'Pointe La Rue',
4872 '07' => 'Baie Sainte Anne',
4873 '10' => 'Bel Ombre',
4874 '19' => 'Plaisance',
4875 '09' => 'Bel Air'
4876 },
4877 'ET' => {
4878 '11' => 'Southern',
4879 '53' => 'Tigray',
4880 '02' => 'Amhara',
4881 '48' => 'Dire Dawa',
4882 '46' => 'Amara',
4883 '08' => 'Gambella',
4884 '13' => 'Benishangul',
4885 '44' => 'Adis Abeba',
4886 '50' => 'Hareri Hizb',
4887 '51' => 'Oromiya',
4888 '12' => 'Tigray',
4889 '14' => 'Afar',
4890 '47' => 'Binshangul Gumuz',
4891 '07' => 'Somali',
4892 '52' => 'Sumale',
4893 '49' => 'Gambela Hizboch',
4894 '45' => 'Afar',
4895 '10' => 'Addis Abeba',
4896 '54' => 'YeDebub Biheroch Bihereseboch na Hizboch'
4897 },
4898 'IS' => {
4899 '35' => 'Vestur-Hunavatnssysla',
4900 '32' => 'Sudur-Tingeyjarsysla',
4901 '21' => 'Nordur-Tingeyjarsysla',
4902 '05' => 'Austur-Hunavatnssysla',
4903 '17' => 'Myrasysla',
4904 '42' => 'Suourland',
4905 '03' => 'Arnessysla',
4906 '23' => 'Rangarvallasysla',
4907 '06' => 'Austur-Skaftafellssysla',
4908 '29' => 'Snafellsnes- og Hnappadalssysla',
4909 '44' => 'Vestfiroir',
4910 '28' => 'Skagafjardarsysla',
4911 '40' => 'Norourland Eystra',
4912 '36' => 'Vestur-Isafjardarsysla',
4913 '41' => 'Norourland Vestra',
4914 '20' => 'Nordur-Mulasysla',
4915 '15' => 'Kjosarsysla',
4916 '07' => 'Borgarfjardarsysla',
4917 '34' => 'Vestur-Bardastrandarsysla',
4918 '37' => 'Vestur-Skaftafellssysla',
4919 '45' => 'Vesturland',
4920 '10' => 'Gullbringusysla',
4921 '43' => 'Suournes',
4922 '31' => 'Sudur-Mulasysla',
4923 '09' => 'Eyjafjardarsysla'
4924 },
4925 'NL' => {
4926 '11' => 'Zuid-Holland',
4927 '01' => 'Drenthe',
4928 '05' => 'Limburg',
4929 '12' => 'Dronten',
4930 '04' => 'Groningen',
4931 '15' => 'Overijssel',
4932 '14' => 'Lelystad',
4933 '02' => 'Friesland',
4934 '07' => 'Noord-Holland',
4935 '03' => 'Gelderland',
4936 '08' => 'Overijssel',
4937 '10' => 'Zeeland',
4938 '06' => 'Noord-Brabant',
4939 '16' => 'Flevoland',
4940 '13' => 'Zuidelijke IJsselmeerpolders',
4941 '09' => 'Utrecht'
4942 },
4943 'MS' => {
4944 '01' => 'Saint Anthony',
4945 '03' => 'Saint Peter',
4946 '02' => 'Saint Georges'
4947 },
4948 'EC' => {
4949 '11' => 'Imbabura',
4950 '05' => 'Carchi',
4951 '04' => 'Canar',
4952 '17' => 'Pastaza',
4953 '02' => 'Azuay',
4954 '22' => 'Sucumbios',
4955 '18' => 'Pichincha',
4956 '08' => 'El Oro',
4957 '03' => 'Bolivar',
4958 '06' => 'Chimborazo',
4959 '13' => 'Los Rios',
4960 '23' => 'Napo',
4961 '01' => 'Galapagos',
4962 '12' => 'Loja',
4963 '15' => 'Morona-Santiago',
4964 '20' => 'Zamora-Chinchipe',
4965 '14' => 'Manabi',
4966 '07' => 'Cotopaxi',
4967 '24' => 'Orellana',
4968 '10' => 'Guayas',
4969 '19' => 'Tungurahua',
4970 '09' => 'Esmeraldas'
4971 },
4972 'MY' => {
4973 '11' => 'Sarawak',
4974 '01' => 'Johor',
4975 '05' => 'Negeri Sembilan',
4976 '12' => 'Selangor',
4977 '04' => 'Melaka',
4978 '17' => 'Putrajaya',
4979 '15' => 'Labuan',
4980 '14' => 'Kuala Lumpur',
4981 '02' => 'Kedah',
4982 '07' => 'Perak',
4983 '03' => 'Kelantan',
4984 '08' => 'Perlis',
4985 '06' => 'Pahang',
4986 '16' => 'Sabah',
4987 '13' => 'Terengganu',
4988 '09' => 'Pulau Pinang'
4989 },
4990 'CR' => {
4991 '07' => 'Puntarenas',
4992 '01' => 'Alajuela',
4993 '03' => 'Guanacaste',
4994 '08' => 'San Jose',
4995 '06' => 'Limon',
4996 '04' => 'Heredia',
4997 '02' => 'Cartago'
4998 },
4999 'SD' => {
5000 '27' => 'Al Wusta',
5001 '35' => 'Upper Nile',
5002 '32' => 'Bahr al Ghazal',
5003 '33' => 'Darfur',
5004 '28' => 'Al Istiwa\'iyah',
5005 '34' => 'Kurdufan',
5006 '30' => 'Ash Shamaliyah',
5007 '29' => 'Al Khartum',
5008 '31' => 'Ash Sharqiyah'
5009 },
5010 'RS' => {
5011 '01' => 'Kosovo',
5012 '00' => 'Serbia proper',
5013 '02' => 'Vojvodina'
5014 },
5015 'CN' => {
5016 '11' => 'Hunan',
5017 '32' => 'Sichuan',
5018 '33' => 'Chongqing',
5019 '21' => 'Ningxia',
5020 '05' => 'Jilin',
5021 '26' => 'Shaanxi',
5022 '04' => 'Jiangsu',
5023 '02' => 'Zhejiang',
5024 '22' => 'Beijing',
5025 '18' => 'Guizhou',
5026 '08' => 'Heilongjiang',
5027 '03' => 'Jiangxi',
5028 '30' => 'Guangdong',
5029 '06' => 'Qinghai',
5030 '13' => 'Xinjiang',
5031 '16' => 'Guangxi',
5032 '23' => 'Shanghai',
5033 '29' => 'Yunnan',
5034 '25' => 'Shandong',
5035 '01' => 'Anhui',
5036 '28' => 'Tianjin',
5037 '12' => 'Hubei',
5038 '15' => 'Gansu',
5039 '14' => 'Xizang',
5040 '20' => 'Nei Mongol',
5041 '07' => 'Fujian',
5042 '24' => 'Shanxi',
5043 '10' => 'Hebei',
5044 '19' => 'Liaoning',
5045 '09' => 'Henan',
5046 '31' => 'Hainan'
5047 },
5048 'BG' => {
5049 '33' => 'Mikhaylovgrad',
5050 '53' => 'Ruse',
5051 '63' => 'Vidin',
5052 '48' => 'Pazardzhik',
5053 '42' => 'Grad Sofiya',
5054 '46' => 'Lovech',
5055 '65' => 'Yambol',
5056 '44' => 'Kurdzhali',
5057 '55' => 'Silistra',
5058 '50' => 'Pleven',
5059 '39' => 'Burgas',
5060 '64' => 'Vratsa',
5061 '57' => 'Smolyan',
5062 '40' => 'Dobrich',
5063 '61' => 'Varna',
5064 '51' => 'Plovdiv',
5065 '58' => 'Sofiya',
5066 '41' => 'Gabrovo',
5067 '47' => 'Montana',
5068 '52' => 'Razgrad',
5069 '38' => 'Blagoevgrad',
5070 '59' => 'Stara Zagora',
5071 '60' => 'Turgovishte',
5072 '49' => 'Pernik',
5073 '56' => 'Sliven',
5074 '45' => 'Kyustendil',
5075 '43' => 'Khaskovo',
5076 '62' => 'Veliko Turnovo',
5077 '54' => 'Shumen'
5078 },
5079 'UY' => {
5080 '11' => 'Paysandu',
5081 '05' => 'Durazno',
5082 '04' => 'Colonia',
5083 '17' => 'Soriano',
5084 '02' => 'Canelones',
5085 '18' => 'Tacuarembo',
5086 '03' => 'Cerro Largo',
5087 '08' => 'Lavalleja',
5088 '06' => 'Flores',
5089 '13' => 'Rivera',
5090 '16' => 'San Jose',
5091 '01' => 'Artigas',
5092 '12' => 'Rio Negro',
5093 '14' => 'Rocha',
5094 '15' => 'Salto',
5095 '07' => 'Florida',
5096 '10' => 'Montevideo',
5097 '19' => 'Treinta y Tres',
5098 '09' => 'Maldonado'
5099 },
5100 'PY' => {
5101 '11' => 'Itapua',
5102 '21' => 'Nueva Asuncion',
5103 '05' => 'Caazapa',
5104 '04' => 'Caaguazu',
5105 '17' => 'San Pedro',
5106 '02' => 'Amambay',
5107 '03' => 'Boqueron',
5108 '08' => 'Cordillera',
5109 '06' => 'Central',
5110 '13' => 'Neembucu',
5111 '16' => 'Presidente Hayes',
5112 '23' => 'Alto Paraguay',
5113 '01' => 'Alto Parana',
5114 '12' => 'Misiones',
5115 '20' => 'Chaco',
5116 '15' => 'Paraguari',
5117 '07' => 'Concepcion',
5118 '19' => 'Canindeyu',
5119 '10' => 'Guaira'
5120 },
5121 'BS' => {
5122 '35' => 'San Salvador and Rum Cay',
5123 '32' => 'Nichollstown and Berry Islands',
5124 '33' => 'Rock Sound',
5125 '05' => 'Bimini',
5126 '26' => 'Fresh Creek',
5127 '22' => 'Harbour Island',
5128 '18' => 'Ragged Island',
5129 '30' => 'Kemps Bay',
5130 '23' => 'New Providence',
5131 '16' => 'Mayaguana',
5132 '13' => 'Inagua',
5133 '06' => 'Cat Island',
5134 '29' => 'High Rock',
5135 '25' => 'Freeport',
5136 '27' => 'Governor\'s Harbour',
5137 '28' => 'Green Turtle Cay',
5138 '15' => 'Long Island',
5139 '34' => 'Sandy Point',
5140 '24' => 'Acklins and Crooked Islands',
5141 '10' => 'Exuma',
5142 '31' => 'Marsh Harbour'
5143 },
5144 'MU' => {
5145 '21' => 'Agalega Islands',
5146 '12' => 'Black River',
5147 '17' => 'Plaines Wilhems',
5148 '14' => 'Grand Port',
5149 '15' => 'Moka',
5150 '20' => 'Savanne',
5151 '22' => 'Cargados Carajos',
5152 '18' => 'Port Louis',
5153 '19' => 'Riviere du Rempart',
5154 '16' => 'Pamplemousses',
5155 '13' => 'Flacq',
5156 '23' => 'Rodrigues'
5157 },
5158 'CH' => {
5159 '11' => 'Luzern',
5160 '21' => 'Uri',
5161 '05' => 'Bern',
5162 '26' => 'Jura',
5163 '04' => 'Basel-Stadt',
5164 '17' => 'Schwyz',
5165 '02' => 'Ausser-Rhoden',
5166 '22' => 'Valais',
5167 '18' => 'Solothurn',
5168 '08' => 'Glarus',
5169 '03' => 'Basel-Landschaft',
5170 '06' => 'Fribourg',
5171 '13' => 'Nidwalden',
5172 '16' => 'Schaffhausen',
5173 '23' => 'Vaud',
5174 '25' => 'Zurich',
5175 '01' => 'Aargau',
5176 '12' => 'Neuchatel',
5177 '15' => 'Sankt Gallen',
5178 '14' => 'Obwalden',
5179 '20' => 'Ticino',
5180 '07' => 'Geneve',
5181 '24' => 'Zug',
5182 '10' => 'Inner-Rhoden',
5183 '19' => 'Thurgau',
5184 '09' => 'Graubunden'
5185 },
5186 'LI' => {
5187 '11' => 'Vaduz',
5188 '01' => 'Balzers',
5189 '21' => 'Gbarpolu',
5190 '05' => 'Planken',
5191 '04' => 'Mauren',
5192 '02' => 'Eschen',
5193 '22' => 'River Gee',
5194 '07' => 'Schaan',
5195 '08' => 'Schellenberg',
5196 '03' => 'Gamprin',
5197 '06' => 'Ruggell',
5198 '10' => 'Triesenberg',
5199 '09' => 'Triesen'
5200 },
5201 'GH' => {
5202 '11' => 'Upper West',
5203 '01' => 'Greater Accra',
5204 '05' => 'Eastern',
5205 '04' => 'Central',
5206 '02' => 'Ashanti',
5207 '03' => 'Brong-Ahafo',
5208 '08' => 'Volta',
5209 '10' => 'Upper East',
5210 '06' => 'Northern',
5211 '09' => 'Western'
5212 },
5213 'KG' => {
5214 '01' => 'Bishkek',
5215 '05' => 'Osh',
5216 '04' => 'Naryn',
5217 '02' => 'Chuy',
5218 '07' => 'Ysyk-Kol',
5219 '03' => 'Jalal-Abad',
5220 '08' => 'Osh',
5221 '06' => 'Talas',
5222 '09' => 'Batken'
5223 },
5224 'US' => {
5225 'LA' => 'Louisiana',
5226 'SC' => 'South Carolina',
5227 'GU' => 'Guam',
5228 'MS' => 'Mississippi',
5229 'NC' => 'North Carolina',
5230 'OK' => 'Oklahoma',
5231 'NY' => 'New York',
5232 'VA' => 'Virginia',
5233 'HI' => 'Hawaii',
5234 'PA' => 'Pennsylvania',
5235 'NE' => 'Nebraska',
5236 'DC' => 'District of Columbia',
5237 'PR' => 'Puerto Rico',
5238 'SD' => 'South Dakota',
5239 'OH' => 'Ohio',
5240 'WV' => 'West Virginia',
5241 'NM' => 'New Mexico',
5242 'WI' => 'Wisconsin',
5243 'MH' => 'Marshall Islands',
5244 'MO' => 'Missouri',
5245 'AZ' => 'Arizona',
5246 'NH' => 'New Hampshire',
5247 'MA' => 'Massachusetts',
5248 'MT' => 'Montana',
5249 'MN' => 'Minnesota',
5250 'MP' => 'Northern Mariana Islands',
5251 'TX' => 'Texas',
5252 'ME' => 'Maine',
5253 'NJ' => 'New Jersey',
5254 'WY' => 'Wyoming',
5255 'NV' => 'Nevada',
5256 'OR' => 'Oregon',
5257 'WA' => 'Washington',
5258 'PW' => 'Palau',
5259 'ID' => 'Idaho',
5260 'FM' => 'Federated States of Micronesia',
5261 'RI' => 'Rhode Island',
5262 'AL' => 'Alabama',
5263 'KS' => 'Kansas',
5264 'TN' => 'Tennessee',
5265 'UT' => 'Utah',
5266 'ND' => 'North Dakota',
5267 'AA' => 'Armed Forces Americas',
5268 'FL' => 'Florida',
5269 'CT' => 'Connecticut',
5270 'AS' => 'American Samoa',
5271 'MD' => 'Maryland',
5272 'CA' => 'California',
5273 'IA' => 'Iowa',
5274 'DE' => 'Delaware',
5275 'AP' => 'Armed Forces Pacific',
5276 'CO' => 'Colorado',
5277 'MI' => 'Michigan',
5278 'IN' => 'Indiana',
5279 'AR' => 'Arkansas',
5280 'VI' => 'Virgin Islands',
5281 'VT' => 'Vermont',
5282 'GA' => 'Georgia',
5283 'AE' => 'Armed Forces Europe, Middle East, & Canada',
5284 'KY' => 'Kentucky',
5285 'IL' => 'Illinois',
5286 'AK' => 'Alaska'
5287 },
5288 'PE' => {
5289 '11' => 'Ica',
5290 '21' => 'Puno',
5291 '05' => 'Ayacucho',
5292 '04' => 'Arequipa',
5293 '17' => 'Madre de Dios',
5294 '02' => 'Ancash',
5295 '22' => 'San Martin',
5296 '18' => 'Moquegua',
5297 '08' => 'Cusco',
5298 '03' => 'Apurimac',
5299 '06' => 'Cajamarca',
5300 '13' => 'La Libertad',
5301 '16' => 'Loreto',
5302 '23' => 'Tacna',
5303 '25' => 'Ucayali',
5304 '01' => 'Amazonas',
5305 '12' => 'Junin',
5306 '15' => 'Lima',
5307 '14' => 'Lambayeque',
5308 '20' => 'Piura',
5309 '07' => 'Callao',
5310 '24' => 'Tumbes',
5311 '10' => 'Huanuco',
5312 '19' => 'Pasco',
5313 '09' => 'Huancavelica'
5314 },
5315 'SL' => {
5316 '01' => 'Eastern',
5317 '03' => 'Southern',
5318 '04' => 'Western Area',
5319 '02' => 'Northern'
5320 },
5321 'BZ' => {
5322 '01' => 'Belize',
5323 '03' => 'Corozal',
5324 '05' => 'Stann Creek',
5325 '06' => 'Toledo',
5326 '04' => 'Orange Walk',
5327 '02' => 'Cayo'
5328 },
5329 'CY' => {
5330 '01' => 'Famagusta',
5331 '03' => 'Larnaca',
5332 '05' => 'Limassol',
5333 '06' => 'Paphos',
5334 '04' => 'Nicosia',
5335 '02' => 'Kyrenia'
5336 },
5337 'FJ' => {
5338 '01' => 'Central',
5339 '03' => 'Northern',
5340 '05' => 'Western',
5341 '04' => 'Rotuma',
5342 '02' => 'Eastern'
5343 },
5344 'IE' => {
5345 '11' => 'Kerry',
5346 '21' => 'Meath',
5347 '26' => 'Tipperary',
5348 '04' => 'Cork',
5349 '02' => 'Cavan',
5350 '22' => 'Monaghan',
5351 '18' => 'Longford',
5352 '03' => 'Clare',
5353 '30' => 'Wexford',
5354 '06' => 'Donegal',
5355 '13' => 'Kilkenny',
5356 '16' => 'Limerick',
5357 '23' => 'Offaly',
5358 '29' => 'Westmeath',
5359 '27' => 'Waterford',
5360 '25' => 'Sligo',
5361 '01' => 'Carlow',
5362 '12' => 'Kildare',
5363 '20' => 'Mayo',
5364 '15' => 'Laois',
5365 '14' => 'Leitrim',
5366 '07' => 'Dublin',
5367 '24' => 'Roscommon',
5368 '19' => 'Louth',
5369 '10' => 'Galway',
5370 '31' => 'Wicklow'
5371 },
5372 'TW' => {
5373 '01' => 'Fu-chien',
5374 '03' => 'T\'ai-pei',
5375 '04' => 'T\'ai-wan',
5376 '02' => 'Kao-hsiung'
5377 },
5378 'KP' => {
5379 '11' => 'P\'yongan-bukto',
5380 '01' => 'Chagang-do',
5381 '12' => 'P\'yongyang-si',
5382 '17' => 'Hamgyong-bukto',
5383 '14' => 'Namp\'o-si',
5384 '15' => 'P\'yongan-namdo',
5385 '07' => 'Hwanghae-bukto',
5386 '18' => 'Najin Sonbong-si',
5387 '08' => 'Kaesong-si',
5388 '03' => 'Hamgyong-namdo',
5389 '06' => 'Hwanghae-namdo',
5390 '13' => 'Yanggang-do',
5391 '09' => 'Kangwon-do'
5392 },
5393 'ER' => {
5394 '01' => 'Anseba',
5395 '03' => 'Debubawi K\'eyih Bahri',
5396 '05' => 'Ma\'akel',
5397 '06' => 'Semenawi K\'eyih Bahri',
5398 '04' => 'Gash Barka',
5399 '02' => 'Debub'
5400 },
5401 'IQ' => {
5402 '11' => 'Arbil',
5403 '05' => 'As Sulaymaniyah',
5404 '04' => 'Al Qadisiyah',
5405 '17' => 'An Najaf',
5406 '02' => 'Al Basrah',
5407 '18' => 'Salah ad Din',
5408 '03' => 'Al Muthanna',
5409 '08' => 'Dahuk',
5410 '06' => 'Babil',
5411 '13' => 'At Ta\'mim',
5412 '16' => 'Wasit',
5413 '01' => 'Al Anbar',
5414 '12' => 'Karbala\'',
5415 '14' => 'Maysan',
5416 '15' => 'Ninawa',
5417 '07' => 'Baghdad',
5418 '10' => 'Diyala',
5419 '09' => 'Dhi Qar'
5420 },
5421 'TZ' => {
5422 '11' => 'Mtwara',
5423 '21' => 'Zanzibar Central',
5424 '05' => 'Kigoma',
5425 '26' => 'Arusha',
5426 '04' => 'Iringa',
5427 '17' => 'Tabora',
5428 '02' => 'Pwani',
5429 '22' => 'Zanzibar North',
5430 '18' => 'Tanga',
5431 '08' => 'Mara',
5432 '03' => 'Dodoma',
5433 '06' => 'Kilimanjaro',
5434 '13' => 'Pemba North',
5435 '16' => 'Singida',
5436 '23' => 'Dar es Salaam',
5437 '27' => 'Manyara',
5438 '25' => 'Zanzibar Urban',
5439 '12' => 'Mwanza',
5440 '15' => 'Shinyanga',
5441 '14' => 'Ruvuma',
5442 '20' => 'Pemba South',
5443 '07' => 'Lindi',
5444 '24' => 'Rukwa',
5445 '10' => 'Morogoro',
5446 '19' => 'Kagera',
5447 '09' => 'Mbeya'
5448 },
5449 'MW' => {
5450 '11' => 'Lilongwe',
5451 '21' => 'Rumphi',
5452 '05' => 'Thyolo',
5453 '26' => 'Balaka',
5454 '04' => 'Chitipa',
5455 '17' => 'Nkhata Bay',
5456 '02' => 'Chikwawa',
5457 '22' => 'Salima',
5458 '18' => 'Nkhotakota',
5459 '08' => 'Karonga',
5460 '03' => 'Chiradzulu',
5461 '30' => 'Phalombe',
5462 '06' => 'Dedza',
5463 '13' => 'Mchinji',
5464 '16' => 'Ntcheu',
5465 '23' => 'Zomba',
5466 '29' => 'Mulanje',
5467 '25' => 'Mwanza',
5468 '27' => 'Likoma',
5469 '28' => 'Machinga',
5470 '12' => 'Mangochi',
5471 '15' => 'Mzimba',
5472 '20' => 'Ntchisi',
5473 '07' => 'Dowa',
5474 '24' => 'Blantyre',
5475 '19' => 'Nsanje',
5476 '09' => 'Kasungu'
5477 },
5478 'LY' => {
5479 '53' => 'Az Zawiyah',
5480 '05' => 'Al Jufrah',
5481 '48' => 'Al Fatih',
5482 '42' => 'Tubruq',
5483 '03' => 'Al Aziziyah',
5484 '08' => 'Al Kufrah',
5485 '30' => 'Murzuq',
5486 '13' => 'Ash Shati\'',
5487 '55' => 'Darnah',
5488 '50' => 'Al Khums',
5489 '57' => 'Gharyan',
5490 '61' => 'Tarabulus',
5491 '51' => 'An Nuqat al Khams',
5492 '58' => 'Misratah',
5493 '41' => 'Tarhunah',
5494 '47' => 'Ajdabiya',
5495 '52' => 'Awbari',
5496 '59' => 'Sawfajjin',
5497 '60' => 'Surt',
5498 '34' => 'Sabha',
5499 '49' => 'Al Jabal al Akhdar',
5500 '56' => 'Ghadamis',
5501 '45' => 'Zlitan',
5502 '62' => 'Yafran',
5503 '54' => 'Banghazi'
5504 },
5505 'GT' => {
5506 '11' => 'Jutiapa',
5507 '21' => 'Totonicapan',
5508 '05' => 'El Progreso',
5509 '04' => 'Chiquimula',
5510 '17' => 'San Marcos',
5511 '02' => 'Baja Verapaz',
5512 '22' => 'Zacapa',
5513 '18' => 'Santa Rosa',
5514 '08' => 'Huehuetenango',
5515 '03' => 'Chimaltenango',
5516 '06' => 'Escuintla',
5517 '13' => 'Quetzaltenango',
5518 '16' => 'Sacatepequez',
5519 '01' => 'Alta Verapaz',
5520 '12' => 'Peten',
5521 '15' => 'Retalhuleu',
5522 '14' => 'Quiche',
5523 '20' => 'Suchitepequez',
5524 '07' => 'Guatemala',
5525 '10' => 'Jalapa',
5526 '19' => 'Solola',
5527 '09' => 'Izabal'
5528 },
5529 'GY' => {
5530 '11' => 'Cuyuni-Mazaruni',
5531 '12' => 'Demerara-Mahaica',
5532 '17' => 'Potaro-Siparuni',
5533 '14' => 'Essequibo Islands-West Demerara',
5534 '15' => 'Mahaica-Berbice',
5535 '18' => 'Upper Demerara-Berbice',
5536 '16' => 'Pomeroon-Supenaam',
5537 '13' => 'East Berbice-Corentyne',
5538 '19' => 'Upper Takutu-Upper Essequibo',
5539 '10' => 'Barima-Waini'
5540 },
5541 'BM' => {
5542 '11' => 'Warwick',
5543 '01' => 'Devonshire',
5544 '05' => 'Pembroke',
5545 '04' => 'Paget',
5546 '02' => 'Hamilton',
5547 '07' => 'Saint George\'s',
5548 '03' => 'Hamilton',
5549 '08' => 'Sandys',
5550 '06' => 'Saint George',
5551 '10' => 'Southampton',
5552 '09' => 'Smiths'
5553 },
5554 'PK' => {
5555 '07' => 'Northern Areas',
5556 '01' => 'Federally Administered Tribal Areas',
5557 '08' => 'Islamabad',
5558 '03' => 'North-West Frontier',
5559 '05' => 'Sindh',
5560 '06' => 'Azad Kashmir',
5561 '04' => 'Punjab',
5562 '02' => 'Balochistan'
5563 },
5564 'GQ' => {
5565 '07' => 'Kie-Ntem',
5566 '03' => 'Annobon',
5567 '05' => 'Bioko Sur',
5568 '08' => 'Litoral',
5569 '06' => 'Centro Sur',
5570 '04' => 'Bioko Norte',
5571 '09' => 'Wele-Nzas'
5572 },
5573 'LT' => {
5574 '63' => 'Telsiu Apskritis',
5575 '57' => 'Kauno Apskritis',
5576 '64' => 'Utenos Apskritis',
5577 '61' => 'Siauliu Apskritis',
5578 '58' => 'Klaipedos Apskritis',
5579 '59' => 'Marijampoles Apskritis',
5580 '60' => 'Panevezio Apskritis',
5581 '56' => 'Alytaus Apskritis',
5582 '62' => 'Taurages Apskritis',
5583 '65' => 'Vilniaus Apskritis'
5584 },
5585 'TT' => {
5586 '11' => 'Tobago',
5587 '01' => 'Arima',
5588 '05' => 'Port-of-Spain',
5589 '04' => 'Nariva',
5590 '12' => 'Victoria',
5591 '02' => 'Caroni',
5592 '07' => 'Saint David',
5593 '08' => 'Saint George',
5594 '03' => 'Mayaro',
5595 '06' => 'Saint Andrew',
5596 '10' => 'San Fernando',
5597 '09' => 'Saint Patrick'
5598 },
5599 'TD' => {
5600 '11' => 'Moyen-Chari',
5601 '01' => 'Batha',
5602 '05' => 'Guera',
5603 '04' => 'Chari-Baguirmi',
5604 '12' => 'Ouaddai',
5605 '02' => 'Biltine',
5606 '14' => 'Tandjile',
5607 '07' => 'Lac',
5608 '08' => 'Logone Occidental',
5609 '03' => 'Borkou-Ennedi-Tibesti',
5610 '06' => 'Kanem',
5611 '10' => 'Mayo-Kebbi',
5612 '13' => 'Salamat',
5613 '09' => 'Logone Oriental'
5614 },
5615 'SO' => {
5616 '11' => 'Nugaal',
5617 '21' => 'Awdal',
5618 '05' => 'Galguduud',
5619 '04' => 'Bay',
5620 '02' => 'Banaadir',
5621 '22' => 'Sool',
5622 '18' => 'Nugaal',
5623 '08' => 'Jubbada Dhexe',
5624 '03' => 'Bari',
5625 '06' => 'Gedo',
5626 '13' => 'Shabeellaha Dhexe',
5627 '16' => 'Woqooyi Galbeed',
5628 '01' => 'Bakool',
5629 '12' => 'Sanaag',
5630 '20' => 'Woqooyi Galbeed',
5631 '14' => 'Shabeellaha Hoose',
5632 '07' => 'Hiiraan',
5633 '19' => 'Togdheer',
5634 '10' => 'Mudug',
5635 '09' => 'Jubbada Hoose'
5636 },
5637 'SY' => {
5638 '11' => 'Hims',
5639 '01' => 'Al Hasakah',
5640 '05' => 'As Suwayda\'',
5641 '04' => 'Ar Raqqah',
5642 '12' => 'Idlib',
5643 '02' => 'Al Ladhiqiyah',
5644 '14' => 'Tartus',
5645 '07' => 'Dayr az Zawr',
5646 '08' => 'Rif Dimashq',
5647 '03' => 'Al Qunaytirah',
5648 '06' => 'Dar',
5649 '10' => 'Hamah',
5650 '13' => 'Dimashq',
5651 '09' => 'Halab'
5652 },
5653 'SK' => {
5654 '07' => 'Trnava',
5655 '01' => 'Banska Bystrica',
5656 '08' => 'Zilina',
5657 '03' => 'Kosice',
5658 '05' => 'Presov',
5659 '06' => 'Trencin',
5660 '04' => 'Nitra',
5661 '02' => 'Bratislava'
5662 },
5663 'BD' => {
5664 '32' => 'Dhaka',
5665 '33' => 'Dinajpur',
5666 '63' => 'Netrakona',
5667 '71' => 'Rangpur',
5668 '26' => 'Brahmanbaria',
5669 '72' => 'Satkhira',
5670 '44' => 'Jhenaidah',
5671 '55' => 'Meherpur',
5672 '84' => 'Chittagong',
5673 '74' => 'Sherpur',
5674 '27' => 'Chandpur',
5675 '01' => 'Barisal',
5676 '57' => 'Munshiganj',
5677 '61' => 'Narsingdi',
5678 '31' => 'Cox\'s Bazar',
5679 '35' => 'Feni',
5680 '78' => 'Tangail',
5681 '48' => 'Kurigram',
5682 '77' => 'Sylhet',
5683 '65' => 'Pabna',
5684 '29' => 'Chattagram',
5685 '50' => 'Laksmipur',
5686 '39' => 'Habiganj',
5687 '64' => 'Nilphamari',
5688 '58' => 'Naogaon',
5689 '12' => 'Mymensingh',
5690 '41' => 'Jamalpur',
5691 '15' => 'Patuakhali',
5692 '81' => 'Dhaka',
5693 '52' => 'Madaripur',
5694 '60' => 'Narayanganj',
5695 '56' => 'Moulavibazar',
5696 '45' => 'Khagrachari',
5697 '73' => 'Shariyatpur',
5698 '66' => 'Panchagar',
5699 '76' => 'Sunamganj',
5700 '86' => 'Sylhet',
5701 '62' => 'Nator',
5702 '54' => 'Manikganj',
5703 '67' => 'Parbattya Chattagram',
5704 '05' => 'Comilla',
5705 '70' => 'Rajshahi',
5706 '68' => 'Pirojpur',
5707 '04' => 'Bandarban',
5708 '30' => 'Chuadanga',
5709 '82' => 'Khulna',
5710 '25' => 'Barguna',
5711 '28' => 'Chapai Nawabganj',
5712 '83' => 'Rajshahi',
5713 '40' => 'Jaipurhat',
5714 '75' => 'Sirajganj',
5715 '59' => 'Narail',
5716 '69' => 'Rajbari',
5717 '49' => 'Kushtia',
5718 '24' => 'Bogra',
5719 '53' => 'Magura',
5720 '79' => 'Thakurgaon',
5721 '42' => 'Jessore',
5722 '22' => 'Bagerhat',
5723 '46' => 'Khulna',
5724 '13' => 'Noakhali',
5725 '23' => 'Bhola',
5726 '85' => 'Barisal',
5727 '36' => 'Gaibandha',
5728 '51' => 'Lalmonirhat',
5729 '47' => 'Kishorganj',
5730 '38' => 'Gopalganj',
5731 '34' => 'Faridpur',
5732 '37' => 'Gazipur',
5733 '43' => 'Jhalakati'
5734 }
5735);
5736
5737sub _get_region_name {
5738 my ( $ccode, $region ) = @_;
5739 return unless $region;
5740 return if $region eq '00';
5741
5742 return $country_region_names{$ccode}->{$region}
5743 if exists $country_region_names{$ccode};
5744
5745}
5746
574710.001610.001611;
5748__END__
5749
5750=head1 NAME
5751
5752Geo::IP - Look up location and network information by IP Address
5753
5754=head1 SYNOPSIS
5755
5756 use Geo::IP;
5757
5758 my $gi = Geo::IP->new(GEOIP_STANDARD);
5759
5760 # look up IP address '24.24.24.24'
5761 # returns undef if country is unallocated, or not defined in our database
5762 my $country = $gi->country_code_by_addr('24.24.24.24');
5763 $country = $gi->country_code_by_name('yahoo.com');
5764 # $country is equal to "US"
5765
5766=head1 DESCRIPTION
5767
5768This module uses a file based database. This database simply contains
5769IP blocks as keys, and countries as values.
5770This database should be more
5771complete and accurate than reverse DNS lookups.
5772
5773This module can be used to automatically select the geographically closest mirror,
5774to analyze your web server logs
5775to determine the countries of your visitors, for credit card fraud
5776detection, and for software export controls.
5777
5778=head1 IP ADDRESS TO COUNTRY DATABASES
5779
5780Free monthly updates to the database are available from
5781
5782 http://www.maxmind.com/download/geoip/database/
5783
5784This free database is similar to the database contained in IP::Country, as
5785well as many paid databases. It uses ARIN, RIPE, APNIC, and LACNIC whois to
5786obtain the IP->Country mappings.
5787
5788If you require greater accuracy, MaxMind offers a database on a paid
5789subscription basis. Also included with this is a service that updates your
5790database automatically each month, by running a program called geoipupdate
5791included with the C API from a cronjob. For more details on the differences
5792between the free and paid databases, see:
5793http://www.maxmind.com/app/geoip_country
5794
5795=head1 CLASS METHODS
5796
5797=over 4
5798
5799=item $gi = Geo::IP->new( $flags );
5800
5801Constructs a new Geo::IP object with the default database located inside your system's
5802I<datadir>, typically I</usr/local/share/GeoIP/GeoIP.dat>.
5803
5804Flags can be set to either GEOIP_STANDARD, or for faster performance
5805(at a cost of using more memory), GEOIP_MEMORY_CACHE. When using memory
5806cache you can force a reload if the file is updated by setting GEOIP_CHECK_CACHE.
5807GEOIP_INDEX_CACHE caches
5808the most frequently accessed index portion of the database, resulting
5809in faster lookups than GEOIP_STANDARD, but less memory usage than
5810GEOIP_MEMORY_CACHE - useful for larger databases such as
5811GeoIP Organization and GeoIP City. Note, for GeoIP Country, Region
5812and Netspeed databases, GEOIP_INDEX_CACHE is equivalent to GEOIP_MEMORY_CACHE
5813
5814To combine flags, use the bitwise OR operator, |. For example, to cache the database
5815in memory, but check for an updated GeoIP.dat file, use:
5816Geo::IP->new( GEOIP_MEMORY_CACHE | GEOIP_CHECK_CACHE. );
5817
5818=item $gi = Geo::IP->open( $database_filename, $flags );
5819
5820Constructs a new Geo::IP object with the database located at C<$database_filename>.
5821
5822=item $gi = Geo::IP->open_type( $database_type, $flags );
5823
5824Constructs a new Geo::IP object with the $database_type database located in the standard
5825location. For example
5826
5827 $gi = Geo::IP->open_type( GEOIP_CITY_EDITION_REV1 , GEOIP_STANDARD );
5828
5829opens the database file in the standard location for GeoIP City, typically
5830I</usr/local/share/GeoIP/GeoIPCity.dat>.
5831
5832=back
5833
5834=head1 OBJECT METHODS
5835
5836=over 4
5837
5838=item $code = $gi->country_code_by_addr( $ipaddr );
5839
5840Returns the ISO 3166 country code for an IP address.
5841
5842=item $code = $gi->country_code_by_name( $hostname );
5843
5844Returns the ISO 3166 country code for a hostname.
5845
5846=item $code = $gi->country_code3_by_addr( $ipaddr );
5847
5848Returns the 3 letter country code for an IP address.
5849
5850=item $code = $gi->country_code3_by_name( $hostname );
5851
5852Returns the 3 letter country code for a hostname.
5853
5854=item $name = $gi->country_name_by_addr( $ipaddr );
5855
5856Returns the full country name for an IP address.
5857
5858=item $name = $gi->country_name_by_name( $hostname );
5859
5860Returns the full country name for a hostname.
5861
5862=item $r = $gi->record_by_addr( $ipaddr );
5863
5864Returns a Geo::IP::Record object containing city location for an IP address.
5865
5866=item $r = $gi->record_by_name( $hostname );
5867
5868Returns a Geo::IP::Record object containing city location for a hostname.
5869
5870=item $org = $gi->org_by_addr( $ipaddr );
5871
5872Returns the Organization, ISP name or Domain Name for an IP address.
5873
5874=item $org = $gi->org_by_name( $hostname );
5875
5876Returns the Organization, ISP name or Domain Name for a hostname.
5877
5878=item $info = $gi->database_info;
5879
5880Returns database string, includes version, date, build number and copyright notice.
5881
5882=item $old_charset = $gi->set_charset( $charset );
5883
5884Set the charset for the city name - defaults to GEOIP_CHARSET_ISO_8859_1. To
5885set UTF8, pass GEOIP_CHARSET_UTF8 to set_charset.
5886For perl >= 5.008 the utf8 flag is honored.
5887
5888=item $charset = $gi->charset;
5889
5890Gets the currently used charset.
5891
5892=item $netmask = $gi->last_netmask;
5893
5894Gets netmask of network block from last lookup.
5895
5896=item $gi->netmask(12);
5897
5898Sets netmask for the last lookup
5899
5900=item my ( $from, $to ) = $gi->range_by_ip('24.24.24.24');
5901
5902Returns the start and end of the current network block. The method tries to join several continous netblocks.
5903
5904=back
5905
5906=head1 MAILING LISTS AND CVS
5907
5908Are available from SourceForge, see
5909http://sourceforge.net/projects/geoip/
5910
5911The direct link to the mailing list is
5912http://lists.sourceforge.net/lists/listinfo/geoip-perl
5913
5914=head1 VERSION
5915
59161.36
5917
5918=head1 SEE ALSO
5919
5920Geo::IP::Record
5921
5922=head1 AUTHOR
5923
5924Copyright (c) 2008, MaxMind, Inc
5925
5926All rights reserved. This package is free software; you can redistribute it
5927and/or modify it under the same terms as Perl itself.
5928
5929=cut
5930
5931
# spent 13µs within Geo::IP::GEOIP_STANDARD which was called # once (13µs+0) by main::Init_geoip at line 69 of plugins/geoip.pm
sub Geo::IP::GEOIP_STANDARD; # xsub
# spent 144µs within Geo::IP::bootstrap which was called # once (144µs+0) by DynaLoader::bootstrap at line 245 of /usr/lib/perl/5.8/DynaLoader.pm
sub Geo::IP::bootstrap; # xsub
# spent 590µs within Geo::IP::open which was called # once (590µs+0) by main::Init_geoip at line 76 of plugins/geoip.pm
sub Geo::IP::open; # xsub