This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Locale::Codes to 3.12
authorSteffen Mueller <smueller@cpan.org>
Wed, 21 Apr 2010 10:18:49 +0000 (12:18 +0200)
committerSteffen Mueller <smueller@cpan.org>
Wed, 21 Apr 2010 10:20:47 +0000 (12:20 +0200)
We're skipping inclusion of some files such as the unused Build.PL,
INSTALL, etc. cpan/Locale-Codes/internal/* should probably also not be
included in perl core.

53 files changed:
MANIFEST
Porting/Maintainers.pl
cpan/Locale-Codes/ChangeLog
cpan/Locale-Codes/LICENSE [new file with mode: 0644]
cpan/Locale-Codes/Makefile.PL [deleted file]
cpan/Locale-Codes/README [deleted file]
cpan/Locale-Codes/README.first [new file with mode: 0644]
cpan/Locale-Codes/examples/README.examples [new file with mode: 0644]
cpan/Locale-Codes/internal/NOTES [new file with mode: 0644]
cpan/Locale-Codes/internal/VERSION [new file with mode: 0644]
cpan/Locale-Codes/internal/build.yaml [new file with mode: 0644]
cpan/Locale-Codes/internal/data.country.pl [new file with mode: 0644]
cpan/Locale-Codes/internal/data.currency.pl [new file with mode: 0644]
cpan/Locale-Codes/internal/data.language.pl [new file with mode: 0644]
cpan/Locale-Codes/internal/data.script.pl [new file with mode: 0644]
cpan/Locale-Codes/internal/get_codes [new file with mode: 0755]
cpan/Locale-Codes/internal/ispell.isp [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes.pod [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/Changes.pod [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/Country.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/Currency.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/Language.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/Script.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Constants.pm
cpan/Locale-Codes/lib/Locale/Constants.pod
cpan/Locale-Codes/lib/Locale/Country.pm
cpan/Locale-Codes/lib/Locale/Country.pod
cpan/Locale-Codes/lib/Locale/Currency.pm
cpan/Locale-Codes/lib/Locale/Currency.pod
cpan/Locale-Codes/lib/Locale/Language.pm
cpan/Locale-Codes/lib/Locale/Language.pod
cpan/Locale-Codes/lib/Locale/Script.pm
cpan/Locale-Codes/lib/Locale/Script.pod
cpan/Locale-Codes/t/alias_code.t [new file with mode: 0755]
cpan/Locale-Codes/t/all.t [deleted file]
cpan/Locale-Codes/t/code2country.t [new file with mode: 0755]
cpan/Locale-Codes/t/code2currency.t [new file with mode: 0755]
cpan/Locale-Codes/t/code2language.t [new file with mode: 0755]
cpan/Locale-Codes/t/code2script.t [new file with mode: 0755]
cpan/Locale-Codes/t/constants.t [deleted file]
cpan/Locale-Codes/t/country.t [changed mode: 0644->0755]
cpan/Locale-Codes/t/country2code.t [new file with mode: 0755]
cpan/Locale-Codes/t/country_code2code.t [new file with mode: 0755]
cpan/Locale-Codes/t/currency.t [deleted file]
cpan/Locale-Codes/t/currency2code.t [new file with mode: 0755]
cpan/Locale-Codes/t/language.t [changed mode: 0644->0755]
cpan/Locale-Codes/t/language2code.t [new file with mode: 0755]
cpan/Locale-Codes/t/rename.t [deleted file]
cpan/Locale-Codes/t/script.t [deleted file]
cpan/Locale-Codes/t/script2code.t [new file with mode: 0755]
cpan/Locale-Codes/t/testfunc.pl [new file with mode: 0644]
cpan/Locale-Codes/t/uk.t [deleted file]

index 86b663e..520ed36 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1346,6 +1346,23 @@ cpan/List-Util/t/tainted.t               Scalar::Util
 cpan/List-Util/t/weak.t                        Scalar::Util
 cpan/List-Util/XS.pp                   List::Util
 cpan/Locale-Codes/ChangeLog                    Locale::Codes
 cpan/List-Util/t/weak.t                        Scalar::Util
 cpan/List-Util/XS.pp                   List::Util
 cpan/Locale-Codes/ChangeLog                    Locale::Codes
+cpan/Locale-Codes/examples/README.examples     Locale::Codes
+cpan/Locale-Codes/internal/build.yaml          Locale::Codes maintainer file
+cpan/Locale-Codes/internal/data.country.pl     Locale::Codes maintainer file
+cpan/Locale-Codes/internal/data.currency.pl    Locale::Codes maintainer file
+cpan/Locale-Codes/internal/data.language.pl    Locale::Codes maintainer file
+cpan/Locale-Codes/internal/data.script.pl      Locale::Codes maintainer file
+cpan/Locale-Codes/internal/get_codes           Locale::Codes maintainer file
+cpan/Locale-Codes/internal/ispell.isp          Locale::Codes maintainer file
+cpan/Locale-Codes/internal/NOTES               Locale::Codes maintainer file
+cpan/Locale-Codes/internal/VERSION             Locale::Codes maintainer file
+cpan/Locale-Codes/lib/Locale/Codes/Changes.pod Locale::Codes documentation
+cpan/Locale-Codes/lib/Locale/Codes/Country.pm  Locale::Codes
+cpan/Locale-Codes/lib/Locale/Codes/Currency.pm Locale::Codes
+cpan/Locale-Codes/lib/Locale/Codes/Language.pm Locale::Codes
+cpan/Locale-Codes/lib/Locale/Codes.pm          Locale::Codes
+cpan/Locale-Codes/lib/Locale/Codes.pod         Locale::Codes documentation
+cpan/Locale-Codes/lib/Locale/Codes/Script.pm   Locale::Codes
 cpan/Locale-Codes/lib/Locale/Constants.pm      Locale::Codes
 cpan/Locale-Codes/lib/Locale/Constants.pod     Locale::Codes documentation
 cpan/Locale-Codes/lib/Locale/Country.pm                Locale::Codes
 cpan/Locale-Codes/lib/Locale/Constants.pm      Locale::Codes
 cpan/Locale-Codes/lib/Locale/Constants.pod     Locale::Codes documentation
 cpan/Locale-Codes/lib/Locale/Country.pm                Locale::Codes
@@ -1356,16 +1373,21 @@ cpan/Locale-Codes/lib/Locale/Language.pm        Locale::Codes
 cpan/Locale-Codes/lib/Locale/Language.pod      Locale::Codes documentation
 cpan/Locale-Codes/lib/Locale/Script.pm         Locale::Codes
 cpan/Locale-Codes/lib/Locale/Script.pod                Locale::Codes documentation
 cpan/Locale-Codes/lib/Locale/Language.pod      Locale::Codes documentation
 cpan/Locale-Codes/lib/Locale/Script.pm         Locale::Codes
 cpan/Locale-Codes/lib/Locale/Script.pod                Locale::Codes documentation
-cpan/Locale-Codes/Makefile.PL
-cpan/Locale-Codes/README                       Locale::Codes
-cpan/Locale-Codes/t/all.t                      See if Locale::Codes work
-cpan/Locale-Codes/t/constants.t                        See if Locale::Codes work
-cpan/Locale-Codes/t/country.t                  See if Locale::Codes work
-cpan/Locale-Codes/t/currency.t                 See if Locale::Codes work
-cpan/Locale-Codes/t/language.t                 See if Locale::Codes work
-cpan/Locale-Codes/t/rename.t                   See if Locale::Codes work
-cpan/Locale-Codes/t/script.t                   See if Locale::Codes work
-cpan/Locale-Codes/t/uk.t                       See if Locale::Codes work
+cpan/Locale-Codes/LICENSE                      Locale::Codes
+cpan/Locale-Codes/README.first                 Locale::Codes
+cpan/Locale-Codes/t/alias_code.t               Locale::Codes tests
+cpan/Locale-Codes/t/code2country.t             Locale::Codes tests
+cpan/Locale-Codes/t/code2currency.t            Locale::Codes tests
+cpan/Locale-Codes/t/code2language.t            Locale::Codes tests
+cpan/Locale-Codes/t/code2script.t              Locale::Codes tests
+cpan/Locale-Codes/t/country2code.t             Locale::Codes tests
+cpan/Locale-Codes/t/country_code2code.t                Locale::Codes tests
+cpan/Locale-Codes/t/country.t                  Locale::Codes tests
+cpan/Locale-Codes/t/currency2code.t            Locale::Codes tests
+cpan/Locale-Codes/t/language2code.t            Locale::Codes tests
+cpan/Locale-Codes/t/language.t                 Locale::Codes tests
+cpan/Locale-Codes/t/script2code.t              Locale::Codes tests
+cpan/Locale-Codes/t/testfunc.pl                        Locale::Codes tests
 cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm      Locale::Simple
 cpan/Locale-Maketext-Simple/t/0-signature.t                    Locale::Simple tests
 cpan/Locale-Maketext-Simple/t/1-basic.t                                Locale::Simple tests
 cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm      Locale::Simple
 cpan/Locale-Maketext-Simple/t/0-signature.t                    Locale::Simple tests
 cpan/Locale-Maketext-Simple/t/1-basic.t                                Locale::Simple tests
index 475945f..98ad6c9 100755 (executable)
@@ -843,8 +843,9 @@ use File::Glob qw(:case);
     'Locale-Codes' =>
        {
        'MAINTAINER'    => 'sbeck',
     'Locale-Codes' =>
        {
        'MAINTAINER'    => 'sbeck',
-       'DISTRIBUTION'  => 'NEILB/Locale-Codes-2.07.tar.gz',
+       'DISTRIBUTION'  => 'SBECK/Locale-Codes-3.12.tar.gz',
        'FILES'         => q[cpan/Locale-Codes],
        'FILES'         => q[cpan/Locale-Codes],
+       'EXCLUDED'      => [ qw{t/pod_coverage.t t/pod.t}, qr{^t/runtests} ],
        'CPAN'          => 1,
        'UPSTREAM'      => 'cpan',
        },
        'CPAN'          => 1,
        'UPSTREAM'      => 'cpan',
        },
index c724b38..627bdcf 100644 (file)
@@ -1,6 +1,74 @@
 
                ChangeLog for Locale-Codes Distribution
 
 
                ChangeLog for Locale-Codes Distribution
 
+As of 3.00, the codes are autogenerated from the standards. With each release, codes will
+be re-generated and tested to see if any code changed. Any time there are any changes to
+the codes, it will be flagged below with a change: NEW CODE(s).
+
+3.13
+
+3.12  2010-04-06 sbeck
+       * NEW CODE(s)
+       * Renamed test.pl to testfunc.pl to avoid causing an error
+         when built as part of perl.
+
+3.11  2010-03-01 sbeck
+       * NEW CODE(s)
+       * Added the IANA domain names to Country
+       * Fixed a problem that produced warnings with perl 5.11.5.
+               Jerry D. Hedden
+
+3.10  2010-02-18 sbeck
+       * NEW CODE(s)
+       * Moved support files into the Locale::Codes namespace.
+       * The work done in each of the Locale::XXX modules was
+               virtually identical to each other. It has all
+               been moved to a central module and the
+               Locale::XXX moduels are now just wrappers.
+       * The XXX_code2code functions would return undef if the
+               same codeset were passed in for both the 2nd and
+               3rd arguments. This doesn't make sense and has
+               been changed.
+       * Added all semi-private routines (except for the
+               couple that were already present):
+                       rename_XXX
+                       add_XXX
+                       delete_XXX
+                       add_XXX_alias
+                       delete_XXX_alias
+                       rename_XXX_code
+                       add_XXX_code_alias
+                       delete_XXX_code_alias
+       * Added "UK" alias. Steve Hay
+
+3.01  2010-02-15 sbeck
+       * Fixed Makefile.PL and Build.PL to install as core
+               modules.
+
+3.00  2010-02-10 sbeck
+       * NEW CODE(s)
+       * Took over maintenance of the code
+       * All codes and country names come from the official
+               standards
+       * code2country now returns the name of the country specified
+               in the standard (if the different standards refer
+               to the country by different variations in the name,
+               the results will differe based on the CODESET)
+       * Added code sets
+               FIPS 10 country codes
+               Alpha-3 and Term language codes
+               Numeric currency codes
+       * The rename_country funcion from 2.07 would guess the
+               CODESET (unlike all other functions which used
+               a default of LOCALE_CODE_ALPHA_2). The guess can
+               cause problems since (with the addition of FIPS)
+               codes may appear in different codesets for different
+               countries. The behavior has been changed to be
+               the same as other functions (default to
+               LOCALE_CODE_ALPHA_2).
+       * Dropped support for _alias_code
+       * Added language_code2code, currency_code2code
+
 2.07  2004-06-10 neilb
        * made $_ local in the initialisation code for each module
                change back-propagated from Perl distribution
 2.07  2004-06-10 neilb
        * made $_ local in the initialisation code for each module
                change back-propagated from Perl distribution
diff --git a/cpan/Locale-Codes/LICENSE b/cpan/Locale-Codes/LICENSE
new file mode 100644 (file)
index 0000000..ae8dd20
--- /dev/null
@@ -0,0 +1,3 @@
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
diff --git a/cpan/Locale-Codes/Makefile.PL b/cpan/Locale-Codes/Makefile.PL
deleted file mode 100644 (file)
index e1121eb..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-use strict;
-use ExtUtils::MakeMaker;
-
-WriteMakefile (
-    NAME      => 'Locale-Codes',
-    DISTNAME  => 'Locale-Codes',
-    VERSION   => '2.07',
-    AUTHOR    => 'Neil Bowers <neil@bowers.com>',
-    ABSTRACT  => 'modules for ISO codes identifying countries, languages, currencies, and scripts',
-);
diff --git a/cpan/Locale-Codes/README b/cpan/Locale-Codes/README
deleted file mode 100644 (file)
index 9920aba..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-
-                       Locale-Codes Distribution
-                               v2.07
-
-For changes in this release, please see the ChangeLog file.
-
-This distribution contains four Perl modules which can be used to process
-ISO codes for identifying languages, countries, scripts,
-and currencies & funds.
-
-    Locale::Language
-       Two letter codes for language identification (ISO 639).
-       For example, 'en' is the code for 'English'.
-
-    Locale::Country
-       Codes for country identification (ISO 3166). This module
-       supports the three different code sets defined by the
-       standard: alpha-2, alpha-3, and numeric codes.
-       For example, 'bo' is the code for 'Bolivia'.
-
-    Locale::Currency
-       Three letter codes for currency and fund identification (ISO 4217).
-       For example, 'sek' is the code for 'Swedish Krona'.
-
-    Locale::Script
-       Codes for script identification (ISO 15924). This module supports
-       the three different code sets defined by the standard:
-       alpha-2, alpha-3, and numeric codes.
-
-To install these modules, you should just have to run the following:
-
-       % perl Makefile.PL
-       % make
-       % make test
-       % make install
-
-The modules are documented using pod. When you "make install", you
-will get four man-pages: Locale::Language, Locale::Country,
-Locale::Currency, Locale::Script.
-
-The first version of Locale::Currency was written by Michael Hennecke,
-with modifications for inclusion by me. Kudos to Michael.
-
-Please let me know if you experience any problems with these modules,
-or have any ideas for additions.
-
-
-Neil Bowers
-<neil@bowers.com>
diff --git a/cpan/Locale-Codes/README.first b/cpan/Locale-Codes/README.first
new file mode 100644 (file)
index 0000000..8609e5e
--- /dev/null
@@ -0,0 +1,54 @@
+
+                       Locale-Codes Distribution
+
+For changes in this release, please refer to the Locale::Changes
+man-page.
+
+For changes prior to 3.00, please see the ChangeLog file.
+
+This distribution contains Perl modules which can be used to process
+ISO codes for identifying languages, countries, scripts,
+and currencies & funds.
+
+    Locale::Language
+
+       Codes for language identification including ISO 639.
+
+       For example, 'en' is the code for 'English'.
+
+    Locale::Country
+
+       Codes for country identification including ISO 3166
+        and FIPS 10.
+
+       For example, 'us' is the code for 'United States'.
+
+    Locale::Currency
+
+       Codes for currency and fund identification including
+        ISO 4217.
+
+       For example, 'sek' is the code for 'Swedish Krona'.
+
+    Locale::Script
+
+       Codes for script identification including ISO 15924.
+
+        For example, 'Phnx' is the code for 'Phoenician'.
+
+The modules are documented using pod. When you "make install", you
+will get man-pages: Local::Codes and each of the modules listed above.
+
+The first version of Locale::Currency was written by Michael Hennecke,
+with modifications by Neil Bowers for inclusion.
+
+The first versions of Locale::Language, Locale::Country, and Locale::Script
+were written by Neil Bowers.
+
+Please let me know if you experience any problems with these modules,
+or have any ideas for additions.
+
+Also, I plan on releasing a new version a couple of times a year to make
+sure that all of the codes are current. If a code changes in any standard,
+and you want a new release, just email me and I'll put out a new release.
+
diff --git a/cpan/Locale-Codes/examples/README.examples b/cpan/Locale-Codes/examples/README.examples
new file mode 100644 (file)
index 0000000..faa94b9
--- /dev/null
@@ -0,0 +1,96 @@
+Please refer to the ../t directory for examples of how to use this
+module.
+
+The tests are organized fairly simply. In each .t file (except for
+pod and pod_coverage) is a line of the form:
+
+  test_Func(\&FUNC,$tests,$runtests,ARGS)
+
+FUNC is the name of one of the functions available in the module,
+or some function defined in the test script which calls one or more
+of the module functions.
+
+Also in the file are a series of tests organized as:
+
+   $tests = "
+   TEST1
+
+   TEST2
+
+   ...
+   ";
+
+or
+
+  $tests = [
+  TEST1,
+
+  TEST2,
+
+  ... ];
+
+
+In the first case, a test is a list of strings, some of which are used
+as arguments for the function being called, and some are expected results.
+If the expected result is a simple scalar, each TEST may be a simple list
+of space separated strings, the last of which is treated as the expected
+output.
+
+For example, if the following line appears in the test script:
+
+  test_Func(\&somefunc,$tests,$runtests);
+
+and one of the tests is:
+
+  A B C
+
+then the following behavior is expected:
+
+  somefunc(A,B)
+     => C
+
+The list of strings may also be given on separate lines as:
+
+  A
+  B
+  C
+
+If the expected results are a list of values, then the arguments
+to the function and the expected results are separated by a tilde (~).
+So if the following behavior is expected:
+
+  somefunc(A,B)
+     => (C,D)
+
+the test could be written in either of the following ways:
+
+  A B ~ C D
+
+  A
+  B
+  ~
+  C
+  D
+
+In all cases, leading spaces are ignored. Also, the strings may include
+spaces if (and only if) they are given one per line.
+
+Two special strings "_undef_" and "_blank_" may be included in the list
+to have the values undef or "" repectively included as either an argument
+or an expected return value.
+
+
+In the second method of entering tests, tests are given as a list reference
+with two values. The first is a list reference containing arguments, and
+the second is a list reference containing the expected return value(s). The
+expected values should be simple strings.
+
+So, a test could be entered as:
+
+  [ [ qw(A B) ],
+    [ qw(C D) ] ]
+
+and be equivalent to:
+
+  A B ~ C D
+
diff --git a/cpan/Locale-Codes/internal/NOTES b/cpan/Locale-Codes/internal/NOTES
new file mode 100644 (file)
index 0000000..e3ecf5c
--- /dev/null
@@ -0,0 +1,64 @@
+The files in this directory are for primary use by me, the maintainer
+of Locale::Codes to prepare a new release.
+
+There is no reason for an end user to need to do this. However, it
+is documented for the sake of completeness, and to remind me of the
+steps I need to do.
+
+It's also available in case someone ever chooses to fork the
+module (though I hope that won't be necessary).
+
+#########################################################################
+Before every release, spellcheck the documents:
+
+   for i in `find lib -type f -name \*.pod` ;do
+      podspell $i > $i.txt
+      ispell -p internal/ispell.isp $i.txt
+      rm -f $i.txt $i.txt.bak
+   done
+
+#########################################################################
+Get the newest codes:
+
+   ./internal/get_codes -c
+   diff lib/Locale/Codes/Country.pm{.bak,}
+
+   ./internal/get_codes -l
+   diff lib/Locale/Codes/Language.pm{.bak,}
+
+   ./internal/get_codes -r
+   diff lib/Locale/Codes/Currency.pm{.bak,}
+
+   ./internal/get_codes -s
+   diff lib/Locale/Codes/Script.pm{.bak,}
+
+   ./internal/get_codes -C
+   rm lib/Locale/Codes/*.bak
+
+#########################################################################
+Set the release version
+
+   v=`cat internal/VERSION`
+   for i in \
+       internal/get_codes \
+       `find lib -name \*.pm` \
+   ;do
+      sed -e "s,VERSION *=.*;,VERSION='$v';," $i > z
+      mv z $i
+   done
+
+#########################################################################
+Update the history file with the date
+
+#########################################################################
+Update the copyright
+
+   y=`date '+%Y'`
+   for i in `find . -type f | xargs egrep -l 'Copyright \(c\) ....\-.... Sullivan Beck'` ;do
+     sed -e "s,\(Copyright (c) ....\)\-.... \(Sullivan Beck\),\1-$y \2," $i > z
+     mv z $i
+   done
+
+#########################################################################
+Regenerate the MANIFEST, Build.PL, Makefile.PL
+Run the kwalitee tests
diff --git a/cpan/Locale-Codes/internal/VERSION b/cpan/Locale-Codes/internal/VERSION
new file mode 100644 (file)
index 0000000..e4fba21
--- /dev/null
@@ -0,0 +1 @@
+3.12
diff --git a/cpan/Locale-Codes/internal/build.yaml b/cpan/Locale-Codes/internal/build.yaml
new file mode 100644 (file)
index 0000000..fc5f8e8
--- /dev/null
@@ -0,0 +1,2 @@
+---
+core: 5.007003
diff --git a/cpan/Locale-Codes/internal/data.country.pl b/cpan/Locale-Codes/internal/data.country.pl
new file mode 100644 (file)
index 0000000..4db889e
--- /dev/null
@@ -0,0 +1,416 @@
+#!/usr/bin/perl -w
+# Copyright (c) 2010-2010 Sullivan Beck.  All rights reserved.
+# This program is free software; you can redistribute it and/or modify it
+# under the same terms as Perl itself.
+
+# This is used to match country names from one source with those from
+# an existing source.
+#
+%country_alias =
+  (
+   "Bahamas, The"                                 => "Bahamas",
+   "Bolivia (Plurinational State of)"             => "Bolivia, Plurinational State of",
+   "Bolivia"                                      => "Bolivia, Plurinational State of",
+   "British Virgin Islands"                       => "Virgin Islands, British",
+   "Brunei"                                       => "Brunei Darussalam",
+   "Burma"                                        => "Myanmar",
+   "China, Hong Kong Special Administrative Region" => "Hong Kong",
+   "China, Macao Special Administrative Region"   => "Macao",
+   "Cocos Islands"                                => "Cocos (Keeling) Islands",
+   "Congo (Brazzaville)"                          => "Congo",
+   "Democratic People's Republic of Korea"        => "Korea, Democratic People's Republic of",
+   "Democratic Republic of the Congo"             => "Congo, The Democratic Republic of the",
+   "East Timor"                                   => "Timor-Leste",
+   "Faeroe Islands"                               => "Faroe Islands",
+   "Falkland Islands (Islas Malvinas)"            => "Falkland Islands (Malvinas)",
+   "Federated States of Micronesia"               => "Micronesia, Federated States of",
+   "French Southern and Antarctic Lands"          => "French Southern Territories",
+   "Gambia, The"                                  => "Gambia",
+   "Golan Heights (Israeli-occupied)"             => "Syrian Arab Republic",
+   "Great Britain"                                => "United Kingdom",
+   "Holy See"                                     => "Holy See (Vatican City State)",
+   "Hong Kong S.A.R."                             => "Hong Kong",
+   "Hong Kong Special Administrative Region of China" => "Hong Kong",
+   "Iran (Islamic Republic of)"                   => "Iran, Islamic Republic of",
+   "Iran"                                         => "Iran, Islamic Republic of",
+   "Kazakstan"                                    => "Kazakhstan",
+   "Keeling Islands"                              => "Cocos (Keeling) Islands",
+   "Libya"                                        => "Libyan Arab Jamahiriya",
+   "Macao Special Administrative Region of China" => "Macao",
+   "Macau S.A.R"                                  => "Macao",
+   "Macau S.A.R."                                 => "Macao",
+   "Macedonia"                                    => "Macedonia, The Former Yugoslav Republic of",
+   "Macedonia, Former Yugoslav Republic of"       => "Macedonia, The Former Yugoslav Republic of",
+   "Micronesia (Federated States of)"             => "Micronesia, Federated States of",
+   "North Korea"                                  => "Korea, Democratic People's Republic of",
+   "Occupied Palestinian Territory"               => "Palestinian Territory, Occupied",
+   "Pitcairn Island"                              => "Pitcairn",
+   "Pitcairn Islands"                             => "Pitcairn",
+   "Republic of Korea"                            => "Korea, Republic of",
+   "Republic of Moldova"                          => "Moldova, Republic of",
+   "Saint Helena"                                 => "Saint Helena, Ascension and Tristan da Cunha",
+   "Saint-Barthelemy"                             => "Saint Barthelemy",
+   "Saint-Martin (French part)"                   => "Saint Martin",
+   "South Korea"                                  => "Korea, Republic of",
+   "Svalbard and Jan Mayen Islands"               => "Svalbard and Jan Mayen",
+   "Taiwan"                                       => "Taiwan, Province of China",
+   "The Bahamas"                                  => "Bahamas",
+   "The Democratic Republic of the Congo"         => "Congo, The Democratic Republic of the",
+   "The Republic of the Congo"                    => "Congo",
+   "The former Yugoslav Republic of Macedonia"    => "Macedonia, The Former Yugoslav Republic of",
+   "UK"                                           => "United Kingdom",
+   "US"                                           => "United States",
+   "USA"                                          => "United States",
+   "United Kingdom of Great Britain and Northern Ireland" => "United Kingdom",
+   "United Republic of Tanzania"                  => "Tanzania, United Republic of",
+   "United States Virgin Islands"                 => "Virgin Islands, U.S.",
+   "United States of America"                     => "United States",
+   "Vatican City"                                 => "Holy See (Vatican City State)",
+   "Venezuela (Bolivarian Republic of)"           => "Venezuela, Bolivarian Republic of",
+   "Venezuela"                                    => "Venezuela, Bolivarian Republic of",
+   "Vietnam"                                      => "Viet Nam",
+   "Virgin Islands (UK)"                          => "Virgin Islands, British",
+   "Virgin Islands (US)"                          => "Virgin Islands, U.S.",
+   "Virgin Islands"                               => "Virgin Islands, U.S.",
+   "Wallis and Futuna Islands"                    => "Wallis and Futuna",
+  );
+
+# From v. 2.xx:
+#   Zaire
+#   Serbia and Montenegro
+#   Yugoslavia
+#   Jan Mayen
+#   Svalbard
+
+################################################################################
+# ISO 3166-1 countries
+
+%country_iso_orig =
+  (
+   "AFGHANISTAN"                                  => "Afghanistan",
+   "ÅLAND ISLANDS"                                => "Aland Islands",
+   "ALBANIA"                                      => "Albania",
+   "ALGERIA"                                      => "Algeria",
+   "AMERICAN SAMOA"                               => "American Samoa",
+   "ANDORRA"                                      => "Andorra",
+   "ANGOLA"                                       => "Angola",
+   "ANGUILLA"                                     => "Anguilla",
+   "ANTARCTICA"                                   => "Antarctica",
+   "ANTIGUA AND BARBUDA"                          => "Antigua and Barbuda",
+   "ARGENTINA"                                    => "Argentina",
+   "ARMENIA"                                      => "Armenia",
+   "ARUBA"                                        => "Aruba",
+   "AUSTRALIA"                                    => "Australia",
+   "AUSTRIA"                                      => "Austria",
+   "AZERBAIJAN"                                   => "Azerbaijan",
+   "BAHAMAS"                                      => "Bahamas",
+   "BAHRAIN"                                      => "Bahrain",
+   "BANGLADESH"                                   => "Bangladesh",
+   "BARBADOS"                                     => "Barbados",
+   "BELARUS"                                      => "Belarus",
+   "BELGIUM"                                      => "Belgium",
+   "BELIZE"                                       => "Belize",
+   "BENIN"                                        => "Benin",
+   "BERMUDA"                                      => "Bermuda",
+   "BHUTAN"                                       => "Bhutan",
+   "BOLIVIA, PLURINATIONAL STATE OF"              => "Bolivia, Plurinational State of",
+   "BOSNIA AND HERZEGOVINA"                       => "Bosnia and Herzegovina",
+   "BOTSWANA"                                     => "Botswana",
+   "BOUVET ISLAND"                                => "Bouvet Island",
+   "BRAZIL"                                       => "Brazil",
+   "BRITISH INDIAN OCEAN TERRITORY"               => "British Indian Ocean Territory",
+   "BRUNEI DARUSSALAM"                            => "Brunei Darussalam",
+   "BULGARIA"                                     => "Bulgaria",
+   "BURKINA FASO"                                 => "Burkina Faso",
+   "BURUNDI"                                      => "Burundi",
+   "CAMBODIA"                                     => "Cambodia",
+   "CAMEROON"                                     => "Cameroon",
+   "CANADA"                                       => "Canada",
+   "CAPE VERDE"                                   => "Cape Verde",
+   "CAYMAN ISLANDS"                               => "Cayman Islands",
+   "CENTRAL AFRICAN REPUBLIC"                     => "Central African Republic",
+   "CHAD"                                         => "Chad",
+   "CHILE"                                        => "Chile",
+   "CHINA"                                        => "China",
+   "CHRISTMAS ISLAND"                             => "Christmas Island",
+   "COCOS (KEELING) ISLANDS"                      => "Cocos (Keeling) Islands",
+   "COLOMBIA"                                     => "Colombia",
+   "COMOROS"                                      => "Comoros",
+   "CONGO"                                        => "Congo",
+   "CONGO, THE DEMOCRATIC REPUBLIC OF THE"        => "Congo, The Democratic Republic of the",
+   "COOK ISLANDS"                                 => "Cook Islands",
+   "COSTA RICA"                                   => "Costa Rica",
+   "CÔTE D'IVOIRE"                                => "Cote d'Ivoire",
+   "CROATIA"                                      => "Croatia",
+   "CUBA"                                         => "Cuba",
+   "CYPRUS"                                       => "Cyprus",
+   "CZECH REPUBLIC"                               => "Czech Republic",
+   "DENMARK"                                      => "Denmark",
+   "DJIBOUTI"                                     => "Djibouti",
+   "DOMINICA"                                     => "Dominica",
+   "DOMINICAN REPUBLIC"                           => "Dominican Republic",
+   "ECUADOR"                                      => "Ecuador",
+   "EGYPT"                                        => "Egypt",
+   "EL SALVADOR"                                  => "El Salvador",
+   "EQUATORIAL GUINEA"                            => "Equatorial Guinea",
+   "ERITREA"                                      => "Eritrea",
+   "ESTONIA"                                      => "Estonia",
+   "ETHIOPIA"                                     => "Ethiopia",
+   "FALKLAND ISLANDS (MALVINAS)"                  => "Falkland Islands (Malvinas)",
+   "FAROE ISLANDS"                                => "Faroe Islands",
+   "FIJI"                                         => "Fiji",
+   "FINLAND"                                      => "Finland",
+   "FRANCE"                                       => "France",
+   "FRENCH GUIANA"                                => "French Guiana",
+   "FRENCH POLYNESIA"                             => "French Polynesia",
+   "FRENCH SOUTHERN TERRITORIES"                  => "French Southern Territories",
+   "GABON"                                        => "Gabon",
+   "GAMBIA"                                       => "Gambia",
+   "GEORGIA"                                      => "Georgia",
+   "GERMANY"                                      => "Germany",
+   "GHANA"                                        => "Ghana",
+   "GIBRALTAR"                                    => "Gibraltar",
+   "GREECE"                                       => "Greece",
+   "GREENLAND"                                    => "Greenland",
+   "GRENADA"                                      => "Grenada",
+   "GUADELOUPE"                                   => "Guadeloupe",
+   "GUAM"                                         => "Guam",
+   "GUATEMALA"                                    => "Guatemala",
+   "GUERNSEY"                                     => "Guernsey",
+   "GUINEA"                                       => "Guinea",
+   "GUINEA-BISSAU"                                => "Guinea-Bissau",
+   "GUYANA"                                       => "Guyana",
+   "HAITI"                                        => "Haiti",
+   "HEARD ISLAND AND MCDONALD ISLANDS"            => "Heard Island and Mcdonald Islands",
+   "HOLY SEE (VATICAN CITY STATE)"                => "Holy See (Vatican City State)",
+   "HONDURAS"                                     => "Honduras",
+   "HONG KONG"                                    => "Hong Kong",
+   "HUNGARY"                                      => "Hungary",
+   "ICELAND"                                      => "Iceland",
+   "INDIA"                                        => "India",
+   "INDONESIA"                                    => "Indonesia",
+   "IRAN, ISLAMIC REPUBLIC OF"                    => "Iran, Islamic Republic of",
+   "IRAQ"                                         => "Iraq",
+   "IRELAND"                                      => "Ireland",
+   "ISLE OF MAN"                                  => "Isle of Man",
+   "ISRAEL"                                       => "Israel",
+   "ITALY"                                        => "Italy",
+   "JAMAICA"                                      => "Jamaica",
+   "JAPAN"                                        => "Japan",
+   "JERSEY"                                       => "Jersey",
+   "JORDAN"                                       => "Jordan",
+   "KAZAKHSTAN"                                   => "Kazakhstan",
+   "KENYA"                                        => "Kenya",
+   "KIRIBATI"                                     => "Kiribati",
+   "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF"       => "Korea, Democratic People's Republic of",
+   "KOREA, REPUBLIC OF"                           => "Korea, Republic of",
+   "KUWAIT"                                       => "Kuwait",
+   "KYRGYZSTAN"                                   => "Kyrgyzstan",
+   "LAO PEOPLE'S DEMOCRATIC REPUBLIC"             => "Lao People's Democratic Republic",
+   "LATVIA"                                       => "Latvia",
+   "LEBANON"                                      => "Lebanon",
+   "LESOTHO"                                      => "Lesotho",
+   "LIBERIA"                                      => "Liberia",
+   "LIBYAN ARAB JAMAHIRIYA"                       => "Libyan Arab Jamahiriya",
+   "LIECHTENSTEIN"                                => "Liechtenstein",
+   "LITHUANIA"                                    => "Lithuania",
+   "LUXEMBOURG"                                   => "Luxembourg",
+   "MACAO"                                        => "Macao",
+   "MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF"   => "Macedonia, The Former Yugoslav Republic of",
+   "MADAGASCAR"                                   => "Madagascar",
+   "MALAWI"                                       => "Malawi",
+   "MALAYSIA"                                     => "Malaysia",
+   "MALDIVES"                                     => "Maldives",
+   "MALI"                                         => "Mali",
+   "MALTA"                                        => "Malta",
+   "MARSHALL ISLANDS"                             => "Marshall Islands",
+   "MARTINIQUE"                                   => "Martinique",
+   "MAURITANIA"                                   => "Mauritania",
+   "MAURITIUS"                                    => "Mauritius",
+   "MAYOTTE"                                      => "Mayotte",
+   "MEXICO"                                       => "Mexico",
+   "MICRONESIA, FEDERATED STATES OF"              => "Micronesia, Federated States of",
+   "MOLDOVA, REPUBLIC OF"                         => "Moldova, Republic of",
+   "MONACO"                                       => "Monaco",
+   "MONGOLIA"                                     => "Mongolia",
+   "MONTENEGRO"                                   => "Montenegro",
+   "MONTSERRAT"                                   => "Montserrat",
+   "MOROCCO"                                      => "Morocco",
+   "MOZAMBIQUE"                                   => "Mozambique",
+   "MYANMAR"                                      => "Myanmar",
+   "NAMIBIA"                                      => "Namibia",
+   "NAURU"                                        => "Nauru",
+   "NEPAL"                                        => "Nepal",
+   "NETHERLANDS"                                  => "Netherlands",
+   "NETHERLANDS ANTILLES"                         => "Netherlands Antilles",
+   "NEW CALEDONIA"                                => "New Caledonia",
+   "NEW ZEALAND"                                  => "New Zealand",
+   "NICARAGUA"                                    => "Nicaragua",
+   "NIGER"                                        => "Niger",
+   "NIGERIA"                                      => "Nigeria",
+   "NIUE"                                         => "Niue",
+   "NORFOLK ISLAND"                               => "Norfolk Island",
+   "NORTHERN MARIANA ISLANDS"                     => "Northern Mariana Islands",
+   "NORWAY"                                       => "Norway",
+   "OMAN"                                         => "Oman",
+   "PAKISTAN"                                     => "Pakistan",
+   "PALAU"                                        => "Palau",
+   "PALESTINIAN TERRITORY, OCCUPIED"              => "Palestinian Territory, Occupied",
+   "PANAMA"                                       => "Panama",
+   "PAPUA NEW GUINEA"                             => "Papua New Guinea",
+   "PARAGUAY"                                     => "Paraguay",
+   "PERU"                                         => "Peru",
+   "PHILIPPINES"                                  => "Philippines",
+   "PITCAIRN"                                     => "Pitcairn",
+   "POLAND"                                       => "Poland",
+   "PORTUGAL"                                     => "Portugal",
+   "PUERTO RICO"                                  => "Puerto Rico",
+   "QATAR"                                        => "Qatar",
+   "RÉUNION"                                      => "Reunion",
+   "ROMANIA"                                      => "Romania",
+   "RUSSIAN FEDERATION"                           => "Russian Federation",
+   "RWANDA"                                       => "Rwanda",
+   "SAINT BARTHÉLEMY"                             => "Saint Barthelemy",
+   "SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA" => "Saint Helena, Ascension and Tristan da Cunha",
+   "SAINT KITTS AND NEVIS"                        => "Saint Kitts and Nevis",
+   "SAINT LUCIA"                                  => "Saint Lucia",
+   "SAINT MARTIN"                                 => "Saint Martin",
+   "SAINT PIERRE AND MIQUELON"                    => "Saint Pierre and Miquelon",
+   "SAINT VINCENT AND THE GRENADINES"             => "Saint Vincent and the Grenadines",
+   "SAMOA"                                        => "Samoa",
+   "SAN MARINO"                                   => "San Marino",
+   "SAO TOME AND PRINCIPE"                        => "Sao Tome and Principe",
+   "SAUDI ARABIA"                                 => "Saudi Arabia",
+   "SENEGAL"                                      => "Senegal",
+   "SERBIA"                                       => "Serbia",
+   "SEYCHELLES"                                   => "Seychelles",
+   "SIERRA LEONE"                                 => "Sierra Leone",
+   "SINGAPORE"                                    => "Singapore",
+   "SLOVAKIA"                                     => "Slovakia",
+   "SLOVENIA"                                     => "Slovenia",
+   "SOLOMON ISLANDS"                              => "Solomon Islands",
+   "SOMALIA"                                      => "Somalia",
+   "SOUTH AFRICA"                                 => "South Africa",
+   "SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS" => "South Georgia and the South Sandwich Islands",
+   "SPAIN"                                        => "Spain",
+   "SRI LANKA"                                    => "Sri Lanka",
+   "SUDAN"                                        => "Sudan",
+   "SURINAME"                                     => "Suriname",
+   "SVALBARD AND JAN MAYEN"                       => "Svalbard and Jan Mayen",
+   "SWAZILAND"                                    => "Swaziland",
+   "SWEDEN"                                       => "Sweden",
+   "SWITZERLAND"                                  => "Switzerland",
+   "SYRIAN ARAB REPUBLIC"                         => "Syrian Arab Republic",
+   "TAIWAN, PROVINCE OF CHINA"                    => "Taiwan, Province of China",
+   "TAJIKISTAN"                                   => "Tajikistan",
+   "TANZANIA, UNITED REPUBLIC OF"                 => "Tanzania, United Republic of",
+   "THAILAND"                                     => "Thailand",
+   "TIMOR-LESTE"                                  => "Timor-Leste",
+   "TOGO"                                         => "Togo",
+   "TOKELAU"                                      => "Tokelau",
+   "TONGA"                                        => "Tonga",
+   "TRINIDAD AND TOBAGO"                          => "Trinidad and Tobago",
+   "TUNISIA"                                      => "Tunisia",
+   "TURKEY"                                       => "Turkey",
+   "TURKMENISTAN"                                 => "Turkmenistan",
+   "TURKS AND CAICOS ISLANDS"                     => "Turks and Caicos Islands",
+   "TUVALU"                                       => "Tuvalu",
+   "UGANDA"                                       => "Uganda",
+   "UKRAINE"                                      => "Ukraine",
+   "UNITED ARAB EMIRATES"                         => "United Arab Emirates",
+   "UNITED KINGDOM"                               => "United Kingdom",
+   "UNITED STATES"                                => "United States",
+   "UNITED STATES MINOR OUTLYING ISLANDS"         => "United States Minor Outlying Islands",
+   "URUGUAY"                                      => "Uruguay",
+   "UZBEKISTAN"                                   => "Uzbekistan",
+   "VANUATU"                                      => "Vanuatu",
+   "VENEZUELA, BOLIVARIAN REPUBLIC OF"            => "Venezuela, Bolivarian Republic of",
+   "VIET NAM"                                     => "Viet Nam",
+   "VIRGIN ISLANDS, BRITISH"                      => "Virgin Islands, British",
+   "VIRGIN ISLANDS, U.S."                         => "Virgin Islands, U.S.",
+   "WALLIS AND FUTUNA"                            => "Wallis and Futuna",
+   "WESTERN SAHARA"                               => "Western Sahara",
+   "YEMEN"                                        => "Yemen",
+   "ZAMBIA"                                       => "Zambia",
+   "ZIMBABWE"                                     => "Zimbabwe",
+  );
+
+################################################################################
+# United Nations (source of alpha-3 and numeric codes)
+
+%country_un_orig =
+  (
+   '&Aring;land Islands'                          => "Aland Islands",
+   'C&ocirc;te d'."'Ivoire"                       => "Cote d'Ivoire",
+   'Réunion'                                      => "Reunion",
+   'Saint-Barth&eacute;lemy'                      => "Saint-Barthelemy",
+  );
+
+################################################################################
+# NGA (source of FIPS 10 codes)
+
+%country_nga_orig =
+  (
+  );
+
+%country_nga_ignore =
+  (
+   "Golan Heights (Israeli-occupied)"            => 1,
+  );
+
+################################################################################
+# IANA (source of top level domains)
+
+%country_iana_orig =
+  (
+  );
+
+################################################################################
+# CIA World Factbook (checks for codes)
+
+%country_cia_orig =
+  (
+  );
+
+%country_cia_ignore =
+  (
+   "Western Samoa"               => 1,
+   "World"                       => 1,
+   "Zaire"                       => 1,
+  );
+
+%country_cia_codes =
+  (
+   "alpha2" => {"Gaza Strip"      => "-",
+                "West Bank"       => "-",
+                "Svalbard"        => "-",
+               },
+   "alpha3" => {"Gaza Strip"      => "-",
+                "West Bank"       => "-",
+                "Svalbard"        => "-",
+               },
+   "num"    => {"Gaza Strip"      => "-",
+                "West Bank"       => "-",
+                "Svalbard"        => "-",
+               },
+   "fips"   => {
+               },
+   "dom"    => {"Gaza Strip"      => "-",
+                "West Bank"       => "-",
+                "Svalbard"        => "-",
+               },
+  );
+
+1;
+
+# Local Variables:
+# mode: cperl
+# indent-tabs-mode: nil
+# cperl-indent-level: 3
+# cperl-continued-statement-offset: 2
+# cperl-continued-brace-offset: 0
+# cperl-brace-offset: 0
+# cperl-brace-imaginary-offset: 0
+# cperl-label-offset: -2
+# End:
+
diff --git a/cpan/Locale-Codes/internal/data.currency.pl b/cpan/Locale-Codes/internal/data.currency.pl
new file mode 100644 (file)
index 0000000..0410143
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/perl -w
+# Copyright (c) 2010-2010 Sullivan Beck.  All rights reserved.
+# This program is free software; you can redistribute it and/or modify it
+# under the same terms as Perl itself.
+
+%currency_alias =
+  (
+  );
+
+%currency_iso_orig =
+  (
+  );
+
+%currency_iso_ignore =
+  (
+    "XTS"  => 1,
+    "XXX"  => 1,
+  );
+
+1;
+
+# Local Variables:
+# mode: cperl
+# indent-tabs-mode: nil
+# cperl-indent-level: 3
+# cperl-continued-statement-offset: 2
+# cperl-continued-brace-offset: 0
+# cperl-brace-offset: 0
+# cperl-brace-imaginary-offset: 0
+# cperl-label-offset: -2
+# End:
+
diff --git a/cpan/Locale-Codes/internal/data.language.pl b/cpan/Locale-Codes/internal/data.language.pl
new file mode 100644 (file)
index 0000000..73eb08d
--- /dev/null
@@ -0,0 +1,34 @@
+#!/usr/bin/perl -w
+# Copyright (c) 2010-2010 Sullivan Beck.  All rights reserved.
+# This program is free software; you can redistribute it and/or modify it
+# under the same terms as Perl itself.
+
+%language_alias =
+  (
+   "Greek"                            => 'Greek, Modern (1453-)',
+   "Tonga"                            => 'Tonga (Tonga Islands)',
+  );
+
+%language_iso_orig =
+  (
+   "Bokm\x{e5}l, Norwegian; Norwegian Bokm\x{e5}l"
+                                      => 'Bokmal, Norwegian; Norwegian Bokmal',
+   "Occitan (post 1500); Proven\x{e7}al"
+                                      => 'Occitan (post 1500); Provencal',
+   "Proven\x{e7}al, Old (to 1500)"    => 'Provencal, Old (to 1500)',
+   "Volap\x{fc}k"                     => 'Volapuk',
+  );
+
+1;
+
+# Local Variables:
+# mode: cperl
+# indent-tabs-mode: nil
+# cperl-indent-level: 3
+# cperl-continued-statement-offset: 2
+# cperl-continued-brace-offset: 0
+# cperl-brace-offset: 0
+# cperl-brace-imaginary-offset: 0
+# cperl-label-offset: -2
+# End:
+
diff --git a/cpan/Locale-Codes/internal/data.script.pl b/cpan/Locale-Codes/internal/data.script.pl
new file mode 100644 (file)
index 0000000..d1554c3
--- /dev/null
@@ -0,0 +1,41 @@
+#!/usr/bin/perl -w
+# Copyright (c) 2010-2010 Sullivan Beck.  All rights reserved.
+# This program is free software; you can redistribute it and/or modify it
+# under the same terms as Perl itself.
+
+%script_alias =
+  (
+  );
+
+%script_iso_orig =
+  (
+   "Ethiopic (Ge\x{2bb}ez)"          => "Ethiopic (Geez)",
+   "Hangul (Hang\x{16d}l, Hangeul)"  => "Hangul (Hangul, Hangeul)",
+   "Hanunoo (Hanun\x{f3}o)"          => "Hanunoo (Hanunoo)",
+   "Lepcha (R\x{f3}ng)"              => "Lepcha (Rong)",
+   "Nakhi Geba ('Na-'Khi \x{b2}Gg\x{14f}-\x{b9}baw, Naxi Geba)" =>
+      "Nakhi Geba ('Na-'Khi Ggo-baw, Naxi Geba)",
+   "N\x{2019}Ko"                     => "N'Ko",
+   "Ol Chiki (Ol Cemet\x{2019}, Ol, Santali)" =>
+      "Ol Chiki (Ol Cemet, Ol, Santali)",
+  );
+
+%script_iso_ignore =
+  (
+   "Zxxx"    => 1,
+   "Zyyy"    => 1,
+   "Zzzz"    => 1,
+  );
+1;
+
+# Local Variables:
+# mode: cperl
+# indent-tabs-mode: nil
+# cperl-indent-level: 3
+# cperl-continued-statement-offset: 2
+# cperl-continued-brace-offset: 0
+# cperl-brace-offset: 0
+# cperl-brace-imaginary-offset: 0
+# cperl-label-offset: -2
+# End:
+
diff --git a/cpan/Locale-Codes/internal/get_codes b/cpan/Locale-Codes/internal/get_codes
new file mode 100755 (executable)
index 0000000..29042aa
--- /dev/null
@@ -0,0 +1,1589 @@
+#!/usr/bin/perl -w
+# Copyright (c) 2010-2010 Sullivan Beck.  All rights reserved.
+# This program is free software; you can redistribute it and/or modify it
+# under the same terms as Perl itself.
+
+###############################################################################
+###############################################################################
+# This script is used to automatically generate the Locale::Codes module
+# which contain the actual codes.
+
+require 5.000000;
+use YAML;
+use IO::File;
+use strict;
+use warnings;
+use Archive::Zip;
+
+use lib "./internal";
+
+use vars qw($VERSION);
+$VERSION='3.12';
+
+use vars qw($DEBUG);
+$DEBUG = 0;
+
+###############################################################################
+# GLOBAL VARIABLES
+###############################################################################
+
+# We need to create the following variables:
+#
+#  %Country{COUNTRY_ID}           => [ COUNTRY, COUNTRY, ... ]
+#                                    A list of all valid country names that
+#                                    correspond to a given COUNTRY_ID.
+#                                    The names are all real (i.e. correct
+#                                    spelling and capitalization).
+#  %CountryAlias{ALIAS}           => [ COUNTRY_ID, I ]
+#                                    A hash of all aliases for a country.
+#                                    Aliases are all lowercase.
+#  %Code2CountryID{CODESET}{CODE} => [ COUNTRY_ID, I ]
+#                                    In a given CODESET, CODE corresponds to
+#                                    the I'th entry list of countries.
+#  %CountryID2Code{CODESET}{COUNTRY_ID} => CODE
+#                                    In the given CODESET, the COUNTRY_ID
+#                                    corresponds to the given CODE.
+
+use vars qw( $CountryID %Country %CountryAlias %Code2CountryID %CountryID2Code );
+use vars qw(%country_alias);
+
+$CountryID = "0001";
+
+use vars qw( $ModDir $CountryModule );
+
+$ModDir        = "lib/Locale/Codes";
+$CountryModule = "Country";
+
+#
+# We'll first read data from the official ISO 3166.
+#
+# Data available consists only of the country names and 2-character
+# codes. Country names include non-ASCII characters encoded in
+# ISO-8859-1. Also, they're all uppercase! Every line in the file ends
+# with one unprintable character. In other words, they're distributed
+# in the most unfriendly fashion you could ask for! We'll store the
+# first country for error checking.
+#
+
+use vars qw($country_iso_url $country_iso_file $country_iso_1st);
+use vars qw(%country_iso_orig);
+
+$country_iso_url    = "http://www.iso.org/iso/list-en1-semic-3.txt";
+$country_iso_1st    = "AFGHANISTAN";
+($country_iso_file) = $country_iso_url =~ m,/([^/]*)$,;
+
+#
+# The UN Stats Division contains some (but not all) of the ISO 3166
+# 3-character codes and 3-digit codes. Since they are the maintainers
+# of this data, this is an official source.
+#
+
+use vars qw($country_un_url $country_un_file);
+use vars qw(%country_un_orig);
+
+$country_un_url    = "http://unstats.un.org/unsd/methods/m49/m49alpha.htm";
+($country_un_file) = $country_un_url =~ m,/([^/]*)$,;
+
+#
+# The National Geospatial-Intelligence Agency is the official source
+# for FIPS 10 codes.
+#
+
+use vars qw($country_nga_url $country_nga_file);
+use vars qw(%country_nga_orig %country_nga_ignore);
+
+$country_nga_url    = "http://earth-info.nga.mil/gns/html/digraphs.htm";
+($country_nga_file) = $country_nga_url =~ m,/([^/]*)$,;
+
+#
+# IANA domains
+#
+
+use vars qw($country_iana_url $country_iana_file);
+use vars qw(%country_iana_orig);
+
+$country_iana_url    = "http://www.iana.org/domains/root/db/index.html";
+($country_iana_file) = $country_iana_url =~ m,/([^/]*)$,;
+
+#
+# This is the CIA World Factbook, which is assumed to be a reliable
+# source of this data. Due to the complexity of the data, we'll store
+# the last country so we know when to stop.
+#
+# We have to force-override some codes.
+#
+
+use vars qw($country_cia_url $country_cia_file $country_cia_last);
+use vars qw(%country_cia_ignore %country_cia_orig %country_cia_codes);
+
+$country_cia_url = "https://www.cia.gov/library/publications/the-world-factbook/appendix/print_appendix-d.html";
+($country_cia_file) = $country_cia_url =~ m,/([^/]*)$,;
+$country_cia_last = "Zimbabwe";
+
+require "data.country.pl";
+
+########################################
+
+# We need to create the following variables:
+#
+#  %Language{LANGUAGE_ID}           => [ LANGUAGE, LANGUAGE, ... ]
+#                                     A list of all valid language names that
+#                                     correspond to a given LANGUAGE_ID.
+#                                     The names are all real (i.e. correct
+#                                     spelling and capitalization).
+#  %LanguageAlias{ALIAS}           => [ LANGUAGE_ID, I ]
+#                                     A hash of all aliases for a language.
+#                                     Aliases are all lowercase.
+#  %Code2LanguageID{CODESET}{CODE} => [ LANGUAGE_ID, I ]
+#                                     In a given CODESET, CODE corresponds to
+#                                     the I'th entry in the list of languages.
+#  %LanguageID2Code{CODESET}{LANGUAGE_ID} => CODE
+#                                     In the given CODESET, the LANGUAGE_ID
+#                                     corresponds to the given CODE.
+
+use vars qw( $LanguageID %Language %LanguageAlias %Code2LanguageID %LanguageID2Code );
+use vars qw(%language_alias);
+
+$LanguageID = "0001";
+
+use vars qw( $LanguageModule );
+
+$LanguageModule = "Language";
+
+#
+# We'll first read data from the official ISO 639.
+#
+# Data available consists of the language names and 2-letter and
+# 3-letter codes. Language names include non-ASCII characters encoded in
+# UTF-8. And (amazingly enough) it's available in a field delimited file!!!
+#
+
+use vars qw($language_iso_url $language_iso_file);
+use vars qw(%language_iso_orig);
+
+$language_iso_url    = "http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt";
+($language_iso_file) = $language_iso_url =~ m,/([^/]*)$,;
+
+require "data.language.pl";
+
+########################################
+
+# We need to create the following variables:
+#
+#  %Currency{CURRENCY_ID}           => [ CURRENCY, CURRENCY, ... ]
+#                                      A list of all valid currency names that
+#                                      correspond to a given CURRENCY_ID.
+#                                      The names are all real (i.e. correct
+#                                      spelling and capitalization).
+#  %CurrencyAlias{ALIAS}            => [ CURRENCY_ID, I ]
+#                                      A hash of all aliases for a currency.
+#                                      Aliases are all lowercase.
+#  %Code2CurrencyID{CODESET}{CODE}  => [ CURRENCY_ID, I ]
+#                                      In a given CODESET, CODE corresponds to
+#                                      the I'th entry in the list of currencies.
+#  %CurrencyID2Code{CODESET}{CURRENCY_ID} => CODE
+#                                      In the given CODESET, the CURRENCY_ID
+#                                      corresponds to the given CODE.
+
+use vars qw( $CurrencyID %Currency %CurrencyAlias %Code2CurrencyID %CurrencyID2Code );
+use vars qw(%currency_alias);
+
+$CurrencyID = "0001";
+
+use vars qw( $CurrencyModule );
+
+$CurrencyModule = "Currency";
+
+#
+# We'll first read data from the official ISO 4217.
+#
+
+use vars qw($currency_iso_url $currency_iso_file $currency_iso_last);
+use vars qw(%currency_iso_orig %currency_iso_ignore);
+
+$currency_iso_url    = "http://www.iso.org/iso/support/currency_codes_list-1.htm";
+($currency_iso_file) = $currency_iso_url =~ m,/([^/]*)$,;
+$currency_iso_last   = "XXX";
+
+require "data.currency.pl";
+
+########################################
+
+# We need to create the following variables:
+#
+#  %Script{SCRIPT_ID}              => [ SCRIPT, SCRIPT, ... ]
+#                                     A list of all valid script names that
+#                                     correspond to a given SCRIPT_ID.
+#                                     The names are all real (i.e. correct
+#                                     spelling and capitalization).
+#  %ScriptAlias{ALIAS}             => [ SCRIPT_ID, I ]
+#                                     A hash of all aliases for a script.
+#                                     Aliases are all lowercase.
+#  %Code2ScriptID{CODESET}{CODE}   => [ SCRIPT_ID, I ]
+#                                     In a given CODESET, CODE corresponds to
+#                                     the I'th entry in the list of scripts.
+#  %ScriptID2Code{CODESET}{SCRIPT_ID} => CODE
+#                                     In the given CODESET, the SCRIPT_ID
+#                                     corresponds to the given CODE.
+
+use vars qw( $ScriptID %Script %ScriptAlias %Code2ScriptID %ScriptID2Code );
+use vars qw(%script_alias);
+
+$ScriptID = "0001";
+
+use vars qw( $ScriptModule );
+
+$ScriptModule = "Script";
+
+#
+# We'll first read data from the official ISO 15924.
+#
+# Data available consists of the script names and 2-letter and
+# 3-letter codes. Script names include non-ASCII characters encoded in
+# UTF-8. And (amazingly enough) it's available in a field delimited file!!!
+#
+
+use vars qw($script_iso_url $script_iso_file $script_iso_tmp);
+use vars qw(%script_iso_orig %script_iso_ignore);
+
+$script_iso_url    = "http://www.unicode.org/iso15924/iso15924.txt.zip";
+($script_iso_file) = $script_iso_url =~ m,/([^/]*)$,;
+$script_iso_tmp    = "iso15924.txt";
+
+require "data.script.pl";
+
+###############################################################################
+# HELP
+###############################################################################
+
+use vars qw($usage);
+my $COM = $0;
+$COM =~ s/^.*\///;
+
+$usage=
+  "usage: $COM OPTIONS
+      -h/--help       : Print help.
+
+      -a/--all        : Do all steps
+
+      -c/--country    : Get the country codes
+      -l/--language   : Get the language codes
+      -r/--currency   : Get the currency codes
+      -s/--script     : Get the script codes
+      -C/--clean      : Clean up all temporary files
+";
+
+###############################################################################
+# PARSE ARGUMENTS
+###############################################################################
+
+my $do_all      = 0;
+my $do_country  = 0;
+my $do_language = 0;
+my $do_currency = 0;
+my $do_script   = 0;
+my $do_clean    = 0;
+
+while ($_ = shift) {
+
+   (print $usage),   exit  if ($_ eq "-h"   ||  $_ eq "--help");
+
+   $do_all = 1,      next  if ($_ eq "-a"   ||  $_ eq "--all");
+
+   $do_country = 1,  next  if ($_ eq "-c"   ||  $_ eq "--country");
+   $do_language = 1, next  if ($_ eq "-l"   ||  $_ eq "--language");
+   $do_currency = 1, next  if ($_ eq "-r"   ||  $_ eq "--currency");
+   $do_script = 1,   next  if ($_ eq "-s"   ||  $_ eq "--script");
+   $do_clean = 1,    next  if ($_ eq "-C"   ||  $_ eq "--clean");
+}
+
+############################################################################
+# MAIN PROGRAM
+############################################################################
+
+do_country()    if ($do_all  ||  $do_country);
+do_language()   if ($do_all  ||  $do_language);
+do_currency()   if ($do_all  ||  $do_currency);
+do_script()     if ($do_all  ||  $do_script);
+do_clean()      if ($do_all  ||  $do_clean);
+
+############################################################################
+# DO_COUNTRY
+############################################################################
+
+sub do_country {
+   print "Country codes...\n";
+
+   do_country_iso();
+   print_table("country")  if ($DEBUG == 2);
+
+   do_country_un();
+   print_table("country")  if ($DEBUG == 2);
+
+   do_country_nga();
+   print_table("country")  if ($DEBUG == 2);
+
+   do_country_iana();
+   print_table("country")  if ($DEBUG == 2);
+
+   do_country_cia();
+   print_table("country")  if ($DEBUG == 2);
+
+   # Go through all aliases to pick up any that haven't already been
+   # added (since some aliases are for human convenience rather than
+   # dealing with variations between codesets).
+   do_aliases("country");
+   print_table("country")  if ($DEBUG);
+
+   write_module("country");
+}
+
+########################################
+sub do_country_iso {
+
+   ###
+   ### The first set we'll do is the ISO 3166-1 2-character
+   ### codes. These country names must be adjusted (since they're all
+   ### uppercase). Also, the lines all end with some strange
+   ### unprintable character.
+   ###
+
+   my $codeset = "alpha2";
+
+   system("wget -N -q $country_iso_url");
+   my @in = `cat $country_iso_file`;
+   chomp(@in);
+   chop(@in);
+
+   # File is a line of text followed by a blank line followed by the
+   # codes as ORIGNAME;CODE .
+
+   if ($in[1]  ||  $in[2] !~ /^$country_iso_1st;/) {
+      die "ERROR [iso]: country code file format changed!\n";
+   }
+
+   shift(@in);
+   shift(@in);
+
+   foreach my $line (@in) {
+      if ($line !~ /^(.*);(.*)$/) {
+         die "ERROR [iso]: line invalid\n" .
+             "             $line\n";
+      }
+      my($country,$code) = ($1,$2);
+      $code = lc($code);
+      if (exists $country_iso_orig{$country}) {
+         $country = $country_iso_orig{$country};
+      } else {
+         print "WARNING [iso]: unknown country: $country\n";
+         next;
+      }
+
+      my $countryID = $CountryID++;
+
+      $Country{$countryID}                  = [ $country ];
+      $CountryAlias{lc($country)}           = [ $countryID, 0 ];
+      $Code2CountryID{$codeset}{$code}      = [ $countryID, 0 ];
+      $CountryID2Code{$codeset}{$countryID} = $code;
+   }
+}
+
+########################################
+sub do_country_un {
+
+   print "\nINFO [un]: expect Channel Islands\n";
+
+   ###
+   ### The UN data contains most of the alpha-3 and numeric code sets.
+   ###
+
+   system("wget -N -q $country_un_url");
+   my @in = `cat $country_un_file`;
+   chomp(@in);
+   my $in = join("",@in);
+
+   # Clean up some things that could cause problems in parsing:
+
+   strip_tags(\$in,1,"br","p","strong","div");
+   $in =~ s,\&nbsp;, ,g;
+   $in =~ s,\s+, ,g;
+
+   # Look for a table who's first row has the header:
+   #    ISO ALPHA-3 code
+
+   my $found = jump_to_row(\$in,"ISO ALPHA-3 code");
+   if (! $found) {
+      die "ERROR [un]: country code file format changed!\n";
+   }
+
+   while (1) {
+      my @row = get_row("un",\$in);
+      last  if (! @row);
+
+      my($num,$country,$alpha3) = @row;
+      $alpha3 = lc($alpha3);
+
+      if ($num) {
+         if ($num !~ /^\d+$/  ||  length($num) > 3) {
+           print "WARNING [un]: Invalid numeric code: $country => $num\n";
+           next;
+        }
+      }
+
+      if ($alpha3  &&  $alpha3 !~ /^[a-z][a-z][a-z]$/) {
+         print "WARNING [un]: Invalid alpha-3 code: $country => $alpha3\n";
+         next;
+      }
+
+      if (exists $country_un_orig{$country}) {
+         $country = $country_un_orig{$country};
+      }
+
+      my($err,$countryID,$i,$t) = get_countryID("un",$country);
+      next  if ($err);
+
+      if ($t eq "new") {
+         print "INFO [un]: new country: $alpha3/$num\t$country\n";
+      }
+
+      if ($num) {
+         $num = "0$num"  while (length($num) < 3);
+         $Code2CountryID{"num"}{$num} = [ $countryID, $i ];
+         $CountryID2Code{"num"}{$countryID} = $num;
+      }
+
+      if ($alpha3) {
+         $Code2CountryID{"alpha3"}{$alpha3} = [ $countryID, $i ];
+         $CountryID2Code{"alpha3"}{$countryID} = $alpha3;
+      }
+   }
+}
+
+########################################
+sub do_country_nga {
+
+   print "\nINFO [nga]: expect Serbia, Ashmore, Baker, Bassas, Clipperton,\n" .
+           "            Coral, Europa, Gaza, Glorioso, Howland, Jan Mayen,\n" .
+           "            Jarvis, Johnston, Juan, Kingman, Midway, Navassa, Palmyra,\n" .
+           "            Paracel, Spratly, Svalbard, Tromelin, Wake, West\n";
+
+   ###
+   ### The NGA data contains the FIPS 10 codes
+   ###
+
+   system("wget -N -q $country_nga_url");
+   my @in = `cat $country_nga_file`;
+   chomp(@in);
+   my $in = join("",@in);
+
+   # Clean up some things that could cause problems in parsing:
+
+   strip_tags(\$in,1,"br","p","strong","div");
+   $in =~ s,\Q[United States}\E,,;       # A horrible typo in the HTML
+   $in =~ s,\&nbsp;, ,g;
+   $in =~ s,Other:, ,g;
+   $in =~ s,\(see note[^\)]*\), ,g;
+   $in =~ s,\[[^\]]*\], ,g;
+   $in =~ s,\s+, ,g;
+
+   # Look for a table who's first row has the header:
+   #    SHORT FORM NAME
+   # and then a table with the header:
+   #    Short Form Name
+
+   foreach my $table ("SHORT FORM NAME","Short Form Name") {
+      my $found = jump_to_row(\$in,$table);
+      if (! $found) {
+         die "ERROR [nga]: country code file format changed!\n";
+      }
+
+      while (1) {
+         my @row = get_row("nga",\$in);
+         last  if (! @row);
+
+         my($short,$long,$code) = @row;
+         $code  = uc($code);
+         next  if ($code eq "N/A");
+         next  if (exists $country_nga_ignore{$short});
+
+         if ($code !~ /^[A-Z][A-Z]$/) {
+            print "WARNING [nga]: Invalid code: $short => $code\n";
+         }
+
+         if ($short eq "None") {
+            print "ERROR [nga]: no short definition: $code  $long\n";
+            next;
+         }
+         $long  = ""  if ($long  eq "None");
+
+         if (exists $country_nga_orig{$short}) {
+            $short = $country_nga_orig{$short};
+         }
+         if (exists $country_nga_orig{$long}) {
+            $long = $country_nga_orig{$long};
+         }
+
+         my($countryID,$i);
+         my($err,$c,$ii,$t) = get_countryID("nga",$short,1);
+         next  if ($err);
+
+         if ($t ne "new") {
+            ($countryID,$i) = ($c,$ii);
+         } else {
+            ($err,$c,$ii,$t) = get_countryID("nga",$long,1);
+            ($countryID,$i) = ($c,-1);
+            if ($t eq "new") {
+               print "INFO [nga]: new country: $code\t$short\n";
+            }
+         }
+
+         if ($countryID == -1) {
+            # New country
+            $countryID = $CountryID++;
+            $i = 0;
+            $Country{$countryID} = [ $short ];
+            $CountryAlias{lc($short)} = [ $countryID, $i ];
+
+         } elsif ($i == -1) {
+            # $short is a new alias
+            push @{ $Country{$countryID} },$short;
+            $i = $#{ $Country{$countryID} };
+            $CountryAlias{lc($short)} = [ $countryID, $i ];
+         }
+
+         if ($long  &&
+             ! exists $CountryAlias{lc($long)}) {
+            # $long is a new alias
+            push @{ $Country{$countryID} },$long;
+            $i = $#{ $Country{$countryID} };
+            $CountryAlias{lc($long)} = [ $countryID, $i ];
+         }
+
+         $Code2CountryID{"fips"}{$code} = [ $countryID, $i ];
+         $CountryID2Code{"fips"}{$countryID} = $code;
+      }
+   }
+}
+
+########################################
+sub do_country_iana {
+
+   print "\nINFO [iana]: expect Acension, European, Soviet, Portuguese\n";
+
+   ###
+   ### The IANA data contains the domain names
+   ###
+
+   system("wget -N -q $country_iana_url");
+   my @in = `cat $country_iana_file`;
+   chomp(@in);
+   my $in = join("",@in);
+
+   # Clean up some things that could cause problems in parsing:
+
+   strip_tags(\$in,1,"a");
+   $in =~ s,\&nbsp;, ,g;
+   $in =~ s,\(being phased out\), ,g;
+   $in =~ s,\s+, ,g;
+
+   # Look for a table who's first row has the header:
+   #    Sponsoring Organisation
+
+   my $found = jump_to_row(\$in,"Sponsoring Organisation");
+   if (! $found) {
+      die "ERROR [iana]: country code file format changed!\n";
+   }
+
+   while (1) {
+      my @row = get_row("iana",\$in);
+      last  if (! @row);
+
+      my($dom,$type,$country) = @row;
+      next  unless ($type eq "country-code");
+      $dom     =~ s/^\.//;
+      $country =~ s,<br.*,,;
+
+      if (exists $country_un_orig{$country}) {
+         $country = $country_un_orig{$country};
+      }
+
+      my($err,$countryID,$i,$t) = get_countryID("iana",$country);
+      next  if ($err);
+
+      if ($t eq "new") {
+         print "INFO [iana]: new country: $dom\t$country\n";
+      }
+
+      $Code2CountryID{"dom"}{$dom} = [ $countryID, $i ];
+      $CountryID2Code{"dom"}{$countryID} = $dom;
+   }
+}
+
+########################################
+sub do_country_cia {
+
+   print "\nINFO [cia]: expect Antarctica, Bouvet, British, Christmas, Cocos,\n" .
+         "            France (Metro), French, Heard, Kosovo, Montenegro,\n" .
+         "            Saint Barth, Saint Martin, Serbia, Taiwan, US\n";
+
+   ###
+   ### The CIA data is used to check:
+   ###    alpha-2, alpha-3, numeric, fips 10
+   ###
+
+   system("wget -N -q $country_cia_url");
+   my @in = `cat $country_cia_file`;
+   chomp(@in);
+   my $in = join("",@in);
+   $in =~ s/\015/ /sg;
+
+   # Clean up some things that could cause problems in parsing:
+
+   strip_tags(\$in,1,"br","p","strong","div","a","b","img");
+   $in =~ s,\&nbsp;, ,g;
+   $in =~ s,\s+, ,g;
+
+   # Move to a table with "Entity" as one of the entries. This
+   # table is followed by the entires.
+
+   my $found = jump_to_entry(\$in,"Entity");
+   if (! $found) {
+      die "ERROR [cia]: country code file format changed!\n";
+   }
+
+   # Each entry is quite complicated. Each is a single table (with a
+   # table nested in it) of the form:
+   #
+   #   <table>
+   #      <tr>
+   #         <td>COUNTRY</td>
+   #         <td>FIPS</td>
+   #         <td>
+   #            <table>
+   #               <tr>
+   #                  <td>ALPHA-2</td>
+   #                  <td>ALPHA-3</td>
+   #                  <td>NUMERIC</td>
+   #            </table>
+   #         </td>
+   #         ...
+   #     </tr>
+   #     ...
+   #  </table>
+   #
+   # After all of the "A" entries, a special table containing the headers
+   # is given again.
+
+   while (1) {
+
+      #
+      # Read the next entry
+      #
+
+      my($country,$fips,$alpha2,$alpha3,$num,$stanag,$dom);
+
+      my $found   = jump_to_table(\$in);
+      if (! $found) {
+         print "ERROR [cia]: malformed file\n";
+         last;
+      }
+      $country = get_entry(\$in);
+      if (! $country) {
+         # The first entry is empty if it's at the end of the entries
+         # for a given letter.
+         $found = jump_to_entry(\$in,"Entity");
+         if (! $found) {
+            die "ERROR [cia]: country code file format changed!\n";
+         }
+         next;
+      }
+
+      if (exists $country_cia_orig{$country}) {
+         $country = $country_cia_orig{$country};
+      }
+
+      $fips    = uc(get_entry(\$in));
+      $found   = jump_to_table(\$in);
+      if (! $found) {
+         print "ERROR [cia]: malformed file\n";
+         last;
+      }
+      $alpha2  = lc(get_entry(\$in));
+      $alpha3  = lc(get_entry(\$in));
+      $num     = get_entry(\$in);
+      $stanag  = get_entry(\$in);
+      $dom     = uc(get_entry(\$in));
+      $dom     =~ s/^\.//;
+
+      next  if (exists $country_cia_ignore{$country});
+
+      $alpha2 = $country_cia_codes{"alpha2"}{$country}
+        if (exists $country_cia_codes{"alpha2"}{$country});
+      $alpha3 = $country_cia_codes{"alpha3"}{$country}
+        if (exists $country_cia_codes{"alpha3"}{$country});
+      $num = $country_cia_codes{"num"}{$country}
+        if (exists $country_cia_codes{"num"}{$country});
+      $fips = $country_cia_codes{"fips"}{$country}
+        if (exists $country_cia_codes{"fips"}{$country});
+      $dom  = $country_cia_codes{"dom"}{$country}
+        if (exists $country_cia_codes{"dom"}{$country});
+
+      #
+      # Get the countryID if the country or ANY of the codes match.
+      #
+
+      my($err,$countryID,$i,$type) = get_countryID("cia",$country,1);
+      next  if ($err);
+
+      if ($countryID == -1  &&  $alpha2 ne "-") {
+         if (exists $Code2CountryID{"alpha2"}{$alpha2}) {
+            ($countryID,$i) = @{ $Code2CountryID{"alpha2"}{$alpha2} };
+         }
+      }
+
+      if ($countryID == -1  &&  $alpha3 ne "-") {
+         if (exists $Code2CountryID{"alpha3"}{$alpha3}) {
+            ($countryID,$i) = @{ $Code2CountryID{"alpha3"}{$alpha3} };
+         }
+      }
+
+      if ($countryID == -1  &&  $num ne "-") {
+         if (exists $Code2CountryID{"num"}{$num}) {
+            ($countryID,$i) = @{ $Code2CountryID{"num"}{$num} };
+         }
+      }
+
+      if ($countryID == -1  &&  $fips ne "-") {
+         if (exists $Code2CountryID{"fips"}{$fips}) {
+            ($countryID,$i) = @{ $Code2CountryID{"fips"}{$fips} };
+         }
+      }
+
+      if ($countryID == -1  &&  $dom ne "-") {
+         if (exists $Code2CountryID{"dom"}{$dom}) {
+            ($countryID,$i) = @{ $Code2CountryID{"dom"}{$dom} };
+         }
+      }
+
+      if ($countryID == -1) {
+         $countryID = $CountryID++;
+         $i = 0;
+         $Country{$countryID} = [ $country ];
+         $CountryAlias{lc($country)} = [ $countryID, $i ];
+      }
+
+      #
+      # Now check that any previously defined values match the
+      # CIA data.
+      #
+
+      if ($alpha2 ne "-") {
+         my $err = check_code("cia","alpha2",$alpha2,$country,$countryID);
+         next  if ($err);
+      }
+
+      if ($alpha3 ne "-") {
+         my $err = check_code("cia","alpha3",$alpha3,$country,$countryID);
+         next  if ($err);
+      }
+
+      if ($num ne "-") {
+         my $err = check_code("cia","num",$num,$country,$countryID);
+         next  if ($err);
+      }
+
+      if ($fips ne "-") {
+         my $err = check_code("cia","fips",$fips,$country,$countryID);
+         next  if ($err);
+      }
+
+      if ($dom ne "-") {
+         my $err = check_code("cia","dom",$dom,$country,$countryID);
+         next  if ($err);
+      }
+
+      last  if ($country eq $country_cia_last);
+   }
+}
+
+########################################
+sub check_code {
+   my($type,$codeset,$code,$country,$countryID) = @_;
+
+   # Check to make sure that the code is defined.
+
+   if (exists $Code2CountryID{$codeset}{$code}) {
+      return _check_code_exists($type,$codeset,$code,$country,$countryID);
+   } else {
+      return _check_code_new($type,$codeset,$code,$country,$countryID);
+   }
+}
+
+sub _check_code_exists {
+   my($type,$codeset,$code,$country,$countryID) = @_;
+
+   # Check the countryID for the code. It must be the same as the one
+   # passed in.
+
+   my $old_countryID = $Code2CountryID{$codeset}{$code}[0];
+   if ($countryID != $old_countryID) {
+      print "ERROR [$type]: countryID mismatch in code: [$codeset, $country, $code, $countryID != $old_countryID ]\n";
+      return 1;
+   }
+
+   # If the country is defined, it must be the same CountryID. If it
+   # is not, create a new alias.
+
+   if (exists $CountryAlias{lc($country)}) {
+
+      my $alt_countryID = $CountryAlias{lc($country)}[0];
+
+      if ($countryID != $alt_countryID) {
+         print "ERROR [$type]: countryID mismatch in country: [$codeset, $country, $code, $countryID != $alt_countryID ]\n";
+         return 1;
+      }
+
+   } else {
+      push @{ $Country{$countryID} },$country;
+      my $i = $#{ $Country{$countryID} };
+      $CountryAlias{lc($country)} = [ $countryID, $i ];
+   }
+}
+
+# This is a new code.
+sub _check_code_new {
+   my($type,$codeset,$code,$country,$countryID) = @_;
+
+   print "INFO [$type]: New code: $codeset [$code] => $country\n";
+
+   # If this country name isn't defined, create it.
+
+   my $i;
+   if (exists $CountryAlias{lc($country)}) {
+      $i = $CountryAlias{lc($country)}[1];
+   } else {
+      push @{ $Country{$countryID} },$country;
+      $i = $#{ $Country{$countryID} };
+      $CountryAlias{lc($country)} = [ $countryID, $i ];
+   }
+
+   # This country name is the canonical name for the code.
+
+   $CountryID2Code{$codeset}{$countryID} = $code;
+   $Code2CountryID{$codeset}{$code} = [ $countryID, $i ];
+
+   return 0;
+}
+
+########################################
+sub get_countryID {
+   my($type,$country,$no_create) = @_;
+
+   my($countryID,$i,$t);
+   if (exists $CountryAlias{lc($country)}) {
+      # The country is the same name as one previously defined
+      ($countryID,$i) = @{ $CountryAlias{lc($country)} };
+      $t = "same";
+
+   } elsif (exists $country_alias{$country}) {
+      # It's a new alias for an existing country
+      my $c = $country_alias{$country};
+      if (! exists $CountryAlias{lc($c)}) {
+         print "WARNING [$type]: alias referenced before it is defined: $country => $c\n";
+         return (1);
+      }
+      $countryID = $CountryAlias{lc($c)}[0];
+      push @{ $Country{$countryID} },$country;
+      $i = $#{ $Country{$countryID} };
+      $CountryAlias{lc($country)} = [ $countryID, $i ];
+      $t = "alias";
+
+   } else {
+      # It's a new country.
+      if ($no_create) {
+         return(0,-1,-1,"new");
+      }
+      $countryID = $CountryID++;
+      $i         = 0;
+      $Country{$countryID} = [ $country ];
+      $CountryAlias{lc($country)} = [ $countryID, $i ];
+      $t = "new";
+   }
+
+   return(0,$countryID,$i,$t);
+}
+
+############################################################################
+# DO_LANGUAGE
+############################################################################
+
+sub do_language {
+   print "Language codes...\n";
+
+   do_language_iso();
+   print_table("language")  if ($DEBUG == 2);
+
+   # Go through all aliases to pick up any that haven't already been
+   # added (since some aliases are for human convenience rather than
+   # dealing with variations between codesets).
+   do_aliases("language");
+   print_table("language")  if ($DEBUG);
+
+   write_module("language");
+}
+
+########################################
+sub do_language_iso {
+   ###
+   ### The first set we'll do is the ISO codes.
+   ###
+
+   system("wget -N -q $language_iso_url");
+   open(my $in,'<:encoding(utf8)',$language_iso_file);
+   my @in = <$in>;
+   close($in);
+   chomp(@in);
+
+   # File is a set of lines of fields delimited by "|". Fields are:
+   #
+   #    alpha3
+   #    term
+   #    alpha2
+   #    English names (semicolon separated list)
+   #    French name
+
+   foreach my $line (@in) {
+      my($alpha3,$term,$alpha2,$english,$french) = split(/\|/,$line);
+      # The first line has some binary characters at the start.
+      if (length($alpha3)>3) {
+         $alpha3 = substr($alpha3,length($alpha3)-3);
+      }
+
+      if (exists $language_iso_orig{$english}) {
+         $english = $language_iso_orig{$english};
+      }
+      my $languageID = $LanguageID++;
+      my @language = split(/\s*;\s*/,$english);
+
+      $Language{$languageID}                  = [ @language ];
+      for (my $i=0; $i<=$#language; $i++) {
+         my $language = $language[$i];
+         $LanguageAlias{lc($language)}         = [ $languageID, $i ];
+      }
+
+      if ($alpha3) {
+         $Code2LanguageID{"alpha3"}{$alpha3}     = [ $languageID, 0 ];
+         $LanguageID2Code{"alpha3"}{$languageID} = $alpha3;
+      }
+
+      if ($term) {
+         $Code2LanguageID{"term"}{$term}         = [ $languageID, 0 ];
+         $LanguageID2Code{"term"}{$languageID}   = $term;
+      }
+
+      if ($alpha2) {
+         $Code2LanguageID{"alpha2"}{$alpha2}     = [ $languageID, 0 ];
+         $LanguageID2Code{"alpha2"}{$languageID} = $alpha2;
+      }
+   }
+}
+
+############################################################################
+# DO_CURRENCY
+############################################################################
+
+sub do_currency {
+   print "Currency codes...\n";
+
+   do_currency_iso();
+   print_table("currency")  if ($DEBUG == 2);
+
+   # Go through all aliases to pick up any that haven't already been
+   # added (since some aliases are for human convenience rather than
+   # dealing with variations between codesets).
+   do_aliases("currency");
+   print_table("currency")  if ($DEBUG);
+
+   write_module("currency");
+}
+
+########################################
+sub do_currency_iso {
+   ###
+   ### The first set we'll do is the ISO 4217 codes.
+   ###
+
+   system("wget -N -q $currency_iso_url");
+   my @in = `cat $currency_iso_file`;
+   chomp(@in);
+   my $in = join("",@in);
+
+   # Clean up some things that could cause problems in parsing:
+
+   strip_tags(\$in,1,"p","a","strong","div");
+   $in =~ s,\&nbsp;, ,g;
+   $in =~ s,†,,g;
+   $in =~ s,‡,,g;
+   $in =~ s,\s+, ,g;
+
+   # Look for a table who's first row has the header:
+   #    Entity
+
+   my $found = jump_to_row(\$in,"Entity");
+   if (! $found) {
+      die "ERROR [iso]: currency code file format changed!\n";
+   }
+
+   LINE: while (1) {
+      my @row = get_row("iso",\$in);
+      last  if (! @row);
+
+      my($ent,$currencies,$alphas,$nums) = @row;
+      $nums     = ""  if ($nums eq "Nil");
+      next  if (! $alphas  &&  ! $nums);
+
+      my(@currency,@num,@alpha,$done);
+      @currency = split(/<br\s*\/><br\s*\/>/,$currencies);
+      @num      = split(/<br\s*\/><br\s*\/>/,$nums);
+      @alpha    = split(/<br\s*\/><br\s*\/>/,$alphas);
+
+      if ( ($nums    &&  $#num   != $#currency)  ||
+           ($alphas  &&  $#alpha != $#currency) ) {
+         print "WARNING [iso]: Invalid line: $currencies => $alphas, $nums\n";
+         next;
+      }
+
+      for (my $i=0; $i<=$#currency; $i++) {
+         my $currency = $currency[$i];
+         my $num      = (@num   ? $num[$i]   : "");
+         my $alpha    = (@alpha ? $alpha[$i] : "");
+         $done        = 1  if ($alpha eq $currency_iso_last);
+
+         if (exists $currency_iso_orig{$currency}) {
+            $currency = $currency_iso_orig{$currency};
+         }
+
+         if ($num) {
+            if ($num !~ /^\d+$/  ||  length($num) > 3) {
+               print "WARNING [iso]: Invalid numeric code: $currency => $num\n";
+               next LINE;
+            }
+         }
+
+         $alpha = uc($alpha);
+         if ($alpha  &&  $alpha !~ /^[A-Z][A-Z][A-Z]$/) {
+            print "WARNING [iso]: Invalid alpha code: $currency => $alpha\n";
+            next LINE;
+         }
+
+         next  if (exists $currency_iso_ignore{$alpha});
+
+         # There's a lot of duplication, so make sure that if this code
+         # exists, it is consistant.
+
+         my $new = 1;
+         my @currencyID;
+         if (exists $Code2CurrencyID{"num"}{$num}) {
+            $new = 0;
+            my($currencyID,$i) = @{ $Code2CurrencyID{"num"}{$num} };
+            push(@currencyID,$currencyID);
+         }
+         if (exists $Code2CurrencyID{"alpha"}{$alpha}) {
+            $new = 0;
+            my($currencyID,$i) = @{ $Code2CurrencyID{"alpha"}{$alpha} };
+            push(@currencyID,$currencyID);
+         }
+
+         if ($#currencyID == 1) {
+            if ($currencyID[0] != $currencyID[1]) {
+               print "WARNING [iso]: CurrencyID mismatch: $currency => $alpha,$num\n";
+               next LINE;
+            }
+         }
+
+         my $currencyID;
+         if ($new) {
+            $currencyID = $CurrencyID++;
+            $Currency{$currencyID} = [ $currency ];
+            $CurrencyAlias{lc($currency)} = [ $currencyID, 0 ]
+         } else {
+            $currencyID = $currencyID[0];
+         }
+
+         if ($num) {
+            $num = "0$num"  while (length($num) < 3);
+            $Code2CurrencyID{"num"}{$num} = [ $currencyID, 0 ];
+            $CurrencyID2Code{"num"}{$currencyID} = $num;
+         }
+
+         if ($alpha) {
+            $Code2CurrencyID{"alpha"}{$alpha} = [ $currencyID, 0 ];
+            $CurrencyID2Code{"alpha"}{$currencyID} = $alpha;
+         }
+
+      }
+
+      last  if ($done);
+   }
+}
+
+############################################################################
+# DO_SCRIPT
+############################################################################
+
+sub do_script {
+   print "Script codes...\n";
+
+   do_script_iso();
+   print_table("script")  if ($DEBUG == 2);
+
+   # Go through all aliases to pick up any that haven't already been
+   # added (since some aliases are for human convenience rather than
+   # dealing with variations between codesets).
+   do_aliases("script");
+   print_table("script")  if ($DEBUG);
+
+   write_module("script");
+}
+
+########################################
+sub do_script_iso {
+   ###
+   ### The first set we'll do is the ISO 15924 codes. We
+   ### can get a zip file which contains the data.
+   ###
+
+   system("wget -N -q $script_iso_url");
+   my $zip = Archive::Zip->new($script_iso_file);
+
+   my @members = grep(/^iso15924.*\.txt/,$zip->memberNames());
+   if (@members != 1) {
+      die "ERROR [iso]: zip file changed format\n";
+   }
+   my($file) = @members;
+   $zip->extractMember($file,$script_iso_tmp);
+
+   #
+   # The zip file contains a series of lines in the form:
+   #   alpha;numeric;english;...
+   # The data is in UTF-8.
+   #
+   # Every line has an unprintable character at the end.
+   #
+
+   open(my $in,'<:encoding(utf8)',$script_iso_tmp);
+   my @in = <$in>;
+   close($in);
+   chomp(@in);
+   chop(@in);
+
+   foreach my $line (@in) {
+      next  if (! $line  ||  $line =~ /^\043/);
+      my($alpha,$num,$script) = split(/;/,$line);
+      $alpha = ucfirst(lc($alpha));
+      next  if (exists $script_iso_ignore{$alpha});
+
+      if (exists $script_iso_orig{$script}) {
+         $script = $script_iso_orig{$script};
+      }
+      my $scriptID = $ScriptID++;
+
+      $Script{$scriptID}                 = [ $script ];
+      $ScriptAlias{lc($script)}          = [ $scriptID, 0 ];
+
+      $Code2ScriptID{"alpha"}{$alpha}    = [ $scriptID, 0 ];
+      $ScriptID2Code{"alpha"}{$scriptID} = $alpha;
+
+      $Code2ScriptID{"num"}{$num}        = [ $scriptID, 0 ];
+      $ScriptID2Code{"num"}{$scriptID}   = $num;
+   }
+}
+
+############################################################################
+# PRINT_TABLE
+############################################################################
+
+sub _type_hashes {
+   my($caller) = @_;
+
+   my ($type_alias,$TypeAlias,$Type,$TypeID2Code,$Code2TypeID);
+
+   if      ($caller eq "country") {
+      $type_alias   = \%country_alias;
+      $TypeAlias    = \%CountryAlias;
+      $Type         = \%Country;
+      $TypeID2Code  = \%CountryID2Code;
+      $Code2TypeID  = \%Code2CountryID;
+
+   } elsif ($caller eq "language") {
+      $type_alias   = \%language_alias;
+      $TypeAlias    = \%LanguageAlias;
+      $Type         = \%Language;
+      $TypeID2Code  = \%LanguageID2Code;
+      $Code2TypeID  = \%Code2LanguageID;
+
+   } elsif ($caller eq "currency") {
+      $type_alias   = \%currency_alias;
+      $TypeAlias    = \%CurrencyAlias;
+      $Type         = \%Currency;
+      $TypeID2Code  = \%CurrencyID2Code;
+      $Code2TypeID  = \%Code2CurrencyID;
+
+   } elsif ($caller eq "script") {
+      $type_alias   = \%script_alias;
+      $TypeAlias    = \%ScriptAlias;
+      $Type         = \%Script;
+      $TypeID2Code  = \%ScriptID2Code;
+      $Code2TypeID  = \%Code2ScriptID;
+   }
+
+   return($type_alias,$TypeAlias,$Type,$TypeID2Code,$Code2TypeID);
+}
+
+sub print_table {
+   my($caller) = @_;
+
+   my ($type_alias,$TypeAlias,$Type,$TypeID2Code,$Code2TypeID)
+     = _type_hashes($caller);
+
+   foreach my $typeID (sort keys %$Type) {
+      my @type = @{ $$Type{$typeID} };
+      my $i = 0;
+
+      my $type = shift(@type);
+      if (length($type) < 40) {
+         $type .= " "x(40-length($type));
+      } else {
+         $type = substr($type,0,40);
+      }
+
+      print "${typeID}[$i] = $type  ";
+      foreach my $codeset (keys %$Code2TypeID) {
+         my $field = "";
+         if (exists $$TypeID2Code{$codeset}{$typeID}) {
+            my $code = $$TypeID2Code{$codeset}{$typeID};
+            my($code_id,$code_i) = @{ $$Code2TypeID{$codeset}{$code} };
+            $field = "$code [$code_id,$code_i]";
+            $field .= " ERR"  if ($code_id != $typeID);
+         }
+         $field = $field . " "x(18-length($field));
+         print $field;
+      }
+      print "\n";
+      foreach $type (@type) {
+         $i++;
+         if (length($type) > 40) {
+            $type = substr($type,0,40);
+         }
+         print "    [$i] = $type\n";
+      }
+   }
+}
+
+############################################################################
+# DO_ALIASES
+############################################################################
+
+sub do_aliases {
+   my($caller) = @_;
+
+   my ($type_alias,$TypeAlias,$Type,$TypeID2Code,$Code2TypeID)
+     = _type_hashes($caller);
+
+   # Add remaining aliases.
+
+   foreach my $alias (keys %$type_alias) {
+      my $type = $$type_alias{$alias};
+
+      next  if (exists $$TypeAlias{lc($type)}  &&
+                exists $$TypeAlias{lc($alias)});
+
+      if (! exists $$TypeAlias{lc($type)}  &&
+          ! exists $$TypeAlias{lc($alias)}) {
+         print "WARNING: unused type in alias list: $type\n";
+         print "WARNING: unused type in alias list: $alias\n";
+         next;
+      }
+
+      my ($typeID);
+      if (exists $$TypeAlias{lc($type)}) {
+         $typeID = $$TypeAlias{lc($type)}[0];
+         $type   = $alias;
+      } else {
+         $typeID = $$TypeAlias{lc($alias)}[0];
+      }
+
+      push @{ $$Type{$typeID} },$type;
+      my $i = $#{ $$Type{$typeID} };
+      $$TypeAlias{lc($type)} = [ $typeID, $i ];
+   }
+}
+
+############################################################################
+# WRITE_MODULE
+############################################################################
+
+sub write_module {
+   my($type) = @_;
+
+   my($module,%hashes,$id);
+
+   if ($type eq "country") {
+      $module = $CountryModule;
+      %hashes = ("id2names"  => "Country",
+                 "alias2id"  => "CountryAlias",
+                 "code2id"   => "Code2CountryID",
+                 "id2code"   => "CountryID2Code");
+      $id     = $CountryID;
+   } elsif ($type eq "language") {
+      $module = $LanguageModule;
+      %hashes = ("id2names"  => "Language",
+                 "alias2id"  => "LanguageAlias",
+                 "code2id"   => "Code2LanguageID",
+                 "id2code"   => "LanguageID2Code");
+      $id     = $LanguageID;
+   } elsif ($type eq "currency") {
+      $module = $CurrencyModule;
+      %hashes = ("id2names"  => "Currency",
+                 "alias2id"  => "CurrencyAlias",
+                 "code2id"   => "Code2CurrencyID",
+                 "id2code"   => "CurrencyID2Code");
+      $id     = $CurrencyID;
+   } elsif ($type eq "script") {
+      $module = $ScriptModule;
+      %hashes = ("id2names"  => "Script",
+                 "alias2id"  => "ScriptAlias",
+                 "code2id"   => "Code2ScriptID",
+                 "id2code"   => "ScriptID2Code");
+      $id     = $ScriptID;
+   }
+
+   my $file = "$ModDir/$module.pm";
+   if (-f $file) {
+      system("mv $file $file.bak");
+   }
+
+   my $out = new IO::File;
+   $out->open(">$file");
+   my $timestamp   = `date`;
+   chomp($timestamp);
+
+   my $podstr = '=pod';    # so the CPAN indexer won't treat this as a POD file
+
+   print $out "package Locale::Codes::$module;
+
+# This file was automatically generated.  Any changes to this file will
+# be lost the next time 'get_codes' is run.
+#    Generated on: $timestamp
+
+$podstr
+
+=head1 NAME
+
+Locale::Codes::$module - $type codes for the Locale::$module module
+
+=head1 SYNOPSIS
+
+This module contains data used by the Locale::$module module. It is
+not intended to be used directly, and contains no calleable routines.
+
+=head1 AUTHOR
+
+See Locale::Codes for full author history.
+
+Currently maintained by Sullivan Beck (sbeck\@cpan.org).
+
+=head1 COPYRIGHT
+
+   Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
+   Copyright (c) 2001-2010 Neil Bowers
+   Copyright (c) 2010-2010 Sullivan Beck
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
+use strict;
+use warnings;
+require 5.002;
+
+use vars qw(\$VERSION);
+\$VERSION='3.12';
+
+\$Locale::Codes::Data{'$type'}{'id'} = '$id';
+
+";
+
+   foreach my $h qw(id2names alias2id code2id id2code) {
+      my $hash = $hashes{$h};
+      print $out "\$Locale::Codes::Data{'$type'}{'$h'} = {\n";
+      _write_hash($out,$hash);
+
+      print $out "};\n\n";
+   }
+
+   print $out "1;\n";
+
+   $out->close();
+}
+
+sub _write_hash {
+   my($out,$hashname) = @_;
+
+   no strict 'refs';
+   my %hash = %$hashname;
+   use strict 'refs';
+   _write_subhash($out,3,\%hash);
+}
+
+sub _write_subhash {
+   my($out,$indent,$hashref) = @_;
+
+   my %hash = %$hashref;
+   my $ind  = " "x$indent;
+
+   foreach my $key (sort keys %hash) {
+      my $val = $hash{$key};
+      if (ref($val) eq "HASH") {
+         print $out "${ind}q($key) => {\n";
+         _write_subhash($out,$indent+3,$val);
+         print $out "${ind}   },\n";
+      } elsif (ref($val) eq "ARRAY") {
+         print $out "${ind}q($key) => [\n";
+         _write_sublist($out,$indent+3,$val);
+         print $out "${ind}   ],\n";
+      } else {
+         print $out "${ind}q($key) => q($val),\n";
+      }
+   }
+}
+
+sub _write_sublist {
+   my($out,$indent,$listref) = @_;
+
+   my @list = @$listref;
+   my $ind  = " "x$indent;
+
+   foreach my $val (@list) {
+      if (ref($val) eq "HASH") {
+         print $out "${ind}{\n";
+         _write_subhash($out,$indent+3,$val);
+         print $out "${ind}},\n";
+      } elsif (ref($val) eq "ARRAY") {
+         print $out "${ind}[\n";
+         _write_sublist($out,$indent+3,$val);
+         print $out "${ind}],\n";
+      } else {
+         print $out "${ind}q($val),\n";
+      }
+   }
+}
+
+############################################################################
+# DO_CLEAN
+############################################################################
+
+sub do_clean {
+   print "Cleaning...\n";
+
+   system("rm -f $country_iso_file");
+   system("rm -f $country_un_file");
+   system("rm -f $country_nga_file");
+   system("rm -f $country_cia_file");
+   system("rm -f $country_iana_file");
+   system("rm -f $language_iso_file");
+   system("rm -f $currency_iso_file");
+   system("rm -f $script_iso_file");
+   system("rm -f $script_iso_tmp");
+   system("rm -rf __MACOSX");
+}
+
+############################################################################
+# HTML SCRAPING
+############################################################################
+
+sub get_row {
+   my($type,$inref) = @_;
+
+   return ()  if ($$inref !~ m,^\s*<tr,);
+
+   if ($$inref !~ s,^(.*?)</tr[^>]*>,,) {
+      die "ERROR [$type]: malformed HTML\n";
+   }
+   my $row = $1;
+
+   if ($row =~ m,<table,) {
+      die "ERROR [$type]: embedded table\n";
+   }
+
+   my @row;
+   while ($row =~ s,(?:.*?)<(td|th)[^>]*>\s*(.*?)\s*</\1[^>]*>,,) {
+      my $val = $2;
+      push(@row,$val);
+   }
+
+   return @row;
+}
+
+sub jump_to_row {
+   my($inref,$header) = @_;
+
+   if ($$inref =~ s,(.*?)\Q$header\E(.*?)</tr[^>]*>(.*?)(?=<tr),,) {
+      return 1;
+   } else {
+      return 0;
+   }
+}
+
+sub jump_to_entry {
+   my($inref,$value) = @_;
+
+   if ($$inref =~ s,(.*?)(?=<(?:td|th)[^>]*>\s*\Q$value\E\s*),,) {
+      return 1;
+   } else {
+      return 0;
+   }
+}
+
+sub jump_to_table {
+   my($inref) = @_;
+
+   if ($$inref =~ s,(.*?)(?=<table),,) {
+      return 1;
+   } else {
+      return 0;
+   }
+}
+
+sub get_entry {
+   my($inref) = @_;
+
+   if ($$inref =~ s,.*?<td[^>]*>\s*(.*?)\s*</td[^>]*>,,) {
+      return $1;
+   }
+   return "";
+}
+
+sub strip_tags {
+   my($inref,$close,@tags) = @_;
+
+   foreach my $tag (@tags) {
+      if ($close) {
+         $$inref =~ s,</?$tag[^>]*>, ,g;
+      } else {
+         $$inref =~ s,<$tag[^>]*>, ,g;
+      }
+   }
+}
+
+# Local Variables:
+# mode: cperl
+# indent-tabs-mode: nil
+# cperl-indent-level: 3
+# cperl-continued-statement-offset: 2
+# cperl-continued-brace-offset: 0
+# cperl-brace-offset: 0
+# cperl-brace-imaginary-offset: 0
+# cperl-label-offset: -2
+# End:
diff --git a/cpan/Locale-Codes/internal/ispell.isp b/cpan/Locale-Codes/internal/ispell.isp
new file mode 100644 (file)
index 0000000..e76fe64
--- /dev/null
@@ -0,0 +1,30 @@
+bo
+bol
+Bower's
+bR
+br
+brb
+Centre
+CODESET
+CODESETs
+CPAN
+CRE
+EUR
+Factbook
+fi
+fips
+Geospatial
+gf
+heb
+Hennecke
+IANA
+num
+Phnx
+Plurinational
+terminologic
+tv
+uk
+XTS
+Zxxx
+Zyyy
+Zzzz
diff --git a/cpan/Locale-Codes/lib/Locale/Codes.pm b/cpan/Locale-Codes/lib/Locale/Codes.pm
new file mode 100644 (file)
index 0000000..82516b9
--- /dev/null
@@ -0,0 +1,628 @@
+package Locale::Codes;
+# Copyright (C) 2001      Canon Research Centre Europe (CRE).
+# Copyright (C) 2002-2009 Neil Bowers
+# Copyright (c) 2010-2010 Sullivan Beck
+# This program is free software; you can redistribute it and/or modify it
+# under the same terms as Perl itself.
+
+use strict;
+use warnings;
+require 5.002;
+
+use Carp;
+
+#=======================================================================
+#       Public Global Variables
+#=======================================================================
+
+# This module is not called directly... %Data is filled in by the
+# calling modules.
+
+use vars qw($VERSION %Data);
+
+# $Data{ TYPE }{ code2id   }{ CODESET } { CODE }  = [ ID, I ]
+#              { id2code   }{ CODESET } { ID }    = CODE
+#              { id2names  }{ ID }                = [ NAME, NAME, ... ]
+#              { alias2id  }{ NAME }              = [ ID, I ]
+#              { id        }                      = FIRST_UNUSED_ID
+#              { codealias }{ CODESET } { ALIAS } = CODE
+
+$VERSION='3.12';
+
+#=======================================================================
+#
+# _code2name ( TYPE,CODE,CODESET )
+#
+#=======================================================================
+
+sub _code2name {
+   my($type,$code,$codeset) = @_;
+
+   $code = $Data{$type}{'codealias'}{$codeset}{$code}
+     if (exists $Data{$type}{'codealias'}{$codeset}{$code});
+
+   if (exists $Data{$type}{'code2id'}{$codeset}  &&
+       exists $Data{$type}{'code2id'}{$codeset}{$code}) {
+      my ($id,$i) = @{ $Data{$type}{'code2id'}{$codeset}{$code} };
+      my $name    = $Data{$type}{'id2names'}{$id}[$i];
+      return $name;
+   } else {
+      #---------------------------------------------------------------
+      # no such code!
+      #---------------------------------------------------------------
+      return undef;
+   }
+}
+
+#=======================================================================
+#
+# _name2code ( TYPE,NAME,CODESET )
+#
+#=======================================================================
+
+sub _name2code {
+   my($type,$name,$codeset) = @_;
+   $name = ""  if (! $name);
+   $name = lc($name);
+
+   if (exists $Data{$type}{'alias2id'}{$name}) {
+      my $id = $Data{$type}{'alias2id'}{$name}[0];
+      if (exists $Data{$type}{'id2code'}{$codeset}{$id}) {
+         return $Data{$type}{'id2code'}{$codeset}{$id};
+      }
+   }
+
+   #---------------------------------------------------------------
+   # no such name!
+   #---------------------------------------------------------------
+   return undef;
+  }
+
+#=======================================================================
+#
+# _code2code ( TYPE,CODE,CODESET )
+#
+#=======================================================================
+
+sub _code2code {
+   my($type,$code,$inset,$outset) = @_;
+
+   my $name    = _code2name($type,$code,$inset);
+   my $outcode = _name2code($type,$name,$outset);
+   return $outcode;
+}
+
+#=======================================================================
+#
+# _all_codes ( TYPE,CODESET )
+#
+#=======================================================================
+
+sub _all_codes {
+   my($type,$codeset) = @_;
+
+   if (! exists $Data{$type}{'code2id'}{$codeset}) {
+      return ();
+   }
+   my @codes = keys %{ $Data{$type}{'code2id'}{$codeset} };
+   return (sort @codes);
+}
+
+#=======================================================================
+#
+# _all_names ( TYPE,CODESET )
+#
+#=======================================================================
+
+sub _all_names {
+   my($type,$codeset) = @_;
+
+   my @codes = _all_codes($type,$codeset);
+   return ()  if (! @codes);
+   my @names;
+
+   foreach my $code (@codes) {
+      my($id,$i) = @{ $Data{$type}{'code2id'}{$codeset}{$code} };
+      my $name   = $Data{$type}{'id2names'}{$id}[$i];
+      push(@names,$name);
+   }
+   return (sort @names);
+}
+
+#=======================================================================
+#
+# _rename ( TYPE,CODE,NAME,CODESET )
+#
+# Change the official name for a code. The original is retained
+# as an alias, but the new name will be returned if you lookup the
+# name from code.
+#
+#=======================================================================
+
+sub _rename {
+   my($type,$code,$new_name,$codeset,$nowarn) = @_;
+
+   if (! $codeset) {
+      carp "rename_$type(): unknown codeset\n"  unless ($nowarn);
+      return 0;
+   }
+
+   $code = $Data{$type}{'codealias'}{$codeset}{$code}
+     if (exists $Data{$type}{'codealias'}{$codeset}{$code});
+
+   # Check that $code exists in the codeset.
+
+   my $id;
+   if (exists $Data{$type}{'code2id'}{$codeset}{$code}) {
+      $id = $Data{$type}{'code2id'}{$codeset}{$code}[0];
+   } else {
+      carp "rename_$type(): unknown code: $code\n"  unless ($nowarn);
+      return 0;
+   }
+
+   # Cases:
+   #   1. Renaming to a name which exists with a different ID
+   #      Error
+   #
+   #   2. Renaming to a name which exists with the same ID
+   #      Just change code2id (I value)
+   #
+   #   3. Renaming to a new name
+   #      Create a new alias
+   #      Change code2id (I value)
+
+   if (exists $Data{$type}{'alias2id'}{lc($new_name)}) {
+      # Existing name (case 1 and 2)
+
+      my ($new_id,$i) = @{ $Data{$type}{'alias2id'}{lc($new_name)} };
+      if ($new_id != $id) {
+         # Case 1
+        carp "rename_$type(): rename to an existing $type not allowed\n"
+          unless ($nowarn);
+        return 0;
+      }
+
+      # Case 2
+
+      $Data{$type}{'code2id'}{$codeset}{$code}[1] = $i;
+
+   } else {
+
+      # Case 3
+
+      push @{ $Data{$type}{'id2names'}{$id} },$new_name;
+      my $i = $#{ $Data{$type}{'id2names'}{$id} };
+      $Data{$type}{'alias2id'}{lc($new_name)} = [ $id,$i ];
+      $Data{$type}{'code2id'}{$codeset}{$code}[1] = $i;
+   }
+
+   return 1;
+}
+
+#=======================================================================
+#
+# _add_code ( TYPE,CODE,NAME,CODESET )
+#
+# Add a new code to the codeset. Both CODE and NAME must be
+# unused in the code set.
+#
+#=======================================================================
+
+sub _add_code {
+   my($type,$code,$name,$codeset,$nowarn) = @_;
+
+   if (! $codeset) {
+      carp "add_$type(): unknown codeset\n"  unless ($nowarn);
+      return 0;
+   }
+
+   # Check that $code is unused.
+
+   if (exists $Data{$type}{'code2id'}{$codeset}{$code}  ||
+       exists $Data{$type}{'codealias'}{$codeset}{$code}) {
+      carp "add_$type(): code already in use: $code\n"  unless ($nowarn);
+      return 0;
+   }
+
+   # Check to see that $name is unused in this code set.  If it is
+   # used (but not in this code set), we'll use that ID.  Otherwise,
+   # we'll need to get the next available ID.
+
+   my ($id,$i);
+   if (exists $Data{$type}{'alias2id'}{lc($name)}) {
+      ($id,$i) = @{ $Data{$type}{'alias2id'}{lc($name)} };
+      if (exists $Data{$type}{'id2code'}{$codeset}{$id}) {
+         carp "add_$type(): name already in use: $name\n"  unless ($nowarn);
+         return 0;
+      }
+
+   } else {
+      $id = $Data{$type}{'id'}++;
+      $i  = 0;
+      $Data{$type}{'alias2id'}{lc($name)} = [ $id,$i ];
+      $Data{$type}{'id2names'}{$id}       = [ $name ];
+   }
+
+   # Add the new code
+
+   $Data{$type}{'code2id'}{$codeset}{$code} = [ $id,$i ];
+   $Data{$type}{'id2code'}{$codeset}{$id}   = $code;
+
+   return 1;
+}
+
+#=======================================================================
+#
+# _delete_code ( TYPE,CODE,CODESET )
+#
+# Delete a code from the codeset.
+#
+#=======================================================================
+
+sub _delete_code {
+   my($type,$code,$codeset,$nowarn) = @_;
+
+   if (! $codeset) {
+      carp "delete_$type(): unknown codeset\n"  unless ($nowarn);
+      return 0;
+   }
+
+   $code = $Data{$type}{'codealias'}{$codeset}{$code}
+     if (exists $Data{$type}{'codealias'}{$codeset}{$code});
+
+   # Check that $code is valid.
+
+   if (! exists $Data{$type}{'code2id'}{$codeset}{$code}) {
+      carp "delete_$type(): code does not exist: $code\n"  unless ($nowarn);
+      return 0;
+   }
+
+   # Delete the code
+
+   my $id = $Data{$type}{'code2id'}{$codeset}{$code}[0];
+   delete $Data{$type}{'code2id'}{$codeset}{$code};
+   delete $Data{$type}{'id2code'}{$codeset}{$id};
+
+   # Delete any aliases that are linked to this code
+
+   foreach my $alias (keys %{ $Data{$type}{'codealias'}{$codeset} }) {
+      next  if ($Data{$type}{'codealias'}{$codeset}{$alias} ne $code);
+      delete $Data{$type}{'codealias'}{$codeset}{$alias};
+   }
+
+   # If this ID is not used in any other codeset, delete it completely.
+
+   foreach my $c (keys %{ $Data{$type}{'id2code'} }) {
+      return 1  if (exists $Data{$type}{'id2code'}{$c}{$id});
+   }
+
+   my @names = @{ $Data{$type}{'id2names'}{$id} };
+   delete $Data{$type}{'id2names'}{$id};
+
+   foreach my $name (@names) {
+      delete $Data{$type}{'alias2id'}{lc($name)};
+   }
+
+   return 1;
+}
+
+#=======================================================================
+#
+# _add_alias ( TYPE,NAME,NEW_NAME )
+#
+# Add a new alias. NAME must exist, and NEW_NAME must be unused.
+#
+#=======================================================================
+
+sub _add_alias {
+   my($type,$name,$new_name,$nowarn) = @_;
+
+   # Check that $name is used and $new_name is new.
+
+   my($id);
+   if (exists $Data{$type}{'alias2id'}{lc($name)}) {
+      $id = $Data{$type}{'alias2id'}{lc($name)}[0];
+   } else {
+      carp "add_${type}_alias(): name does not exist: $name\n"  unless ($nowarn);
+      return 0;
+   }
+
+   if (exists $Data{$type}{'alias2id'}{lc($new_name)}) {
+      carp "add_${type}_alias(): alias already in use: $new_name\n"  unless ($nowarn);
+      return 0;
+   }
+
+   # Add the new alias
+
+   push @{ $Data{$type}{'id2names'}{$id} },$new_name;
+   my $i = $#{ $Data{$type}{'id2names'}{$id} };
+   $Data{$type}{'alias2id'}{lc($new_name)} = [ $id,$i ];
+
+   return 1;
+}
+
+#=======================================================================
+#
+# _delete_alias ( TYPE,NAME )
+#
+# This deletes a name from the list of names used by an element.
+# NAME must be used, but must NOT be the only name in the list.
+#
+# Any id2name that references this name will be changed to
+# refer to the first name in the list.
+#
+#=======================================================================
+
+sub _delete_alias {
+   my($type,$name,$nowarn) = @_;
+
+   # Check that $name is used.
+
+   my($id,$i);
+   if (exists $Data{$type}{'alias2id'}{lc($name)}) {
+      ($id,$i) = @{ $Data{$type}{'alias2id'}{lc($name)} };
+   } else {
+      carp "delete_${type}_alias(): name does not exist: $name\n"  unless ($nowarn);
+      return 0;
+   }
+
+   my $n = $#{ $Data{$type}{'id2names'}{$id} };
+   if ($n == 1) {
+      carp "delete_${type}_alias(): only one name defined (use _delete_${type} instead)\n"
+        unless ($nowarn);
+      return 0;
+   }
+
+   # Delete the alias.
+
+   splice (@{ $Data{$type}{'id2names'}{$id} },$i,1);
+   delete $Data{$type}{'alias2id'}{lc($name)};
+
+   # Every element that refers to this ID:
+   #   Ignore     if I < $i
+   #   Set to 0   if I = $i
+   #   Decrement  if I > $i
+
+   foreach my $codeset (keys %{ $Data{'code2id'} }) {
+      foreach my $code (keys %{ $Data{'code2id'}{$codeset} }) {
+         my($jd,$j) = @{ $Data{'code2id'}{$codeset}{$code} };
+         next  if ($jd ne $id  ||
+                   $j < $i);
+         if ($i == $j) {
+            $Data{'code2id'}{$codeset}{$code}[1] = 0;
+         } else {
+            $Data{'code2id'}{$codeset}{$code}[1]--;
+         }
+      }
+   }
+
+   return 1;
+}
+
+#=======================================================================
+#
+# _rename_code ( TYPE,CODE,NEW_CODE,CODESET )
+#
+# Change the official code. The original is retained as an alias, but
+# the new name will be returned if you lookup the code from name.
+#
+#=======================================================================
+
+sub _rename_code {
+   my($type,$code,$new_code,$codeset,$nowarn) = @_;
+
+   if (! $codeset) {
+      carp "rename_$type(): unknown codeset\n"  unless ($nowarn);
+      return 0;
+   }
+
+   $code = $Data{$type}{'codealias'}{$codeset}{$code}
+     if (exists $Data{$type}{'codealias'}{$codeset}{$code});
+
+   # Check that $code exists in the codeset.
+
+   if (! exists $Data{$type}{'code2id'}{$codeset}{$code}) {
+      carp "rename_$type(): unknown code: $code\n"  unless ($nowarn);
+      return 0;
+   }
+
+   # Cases:
+   #   1. Renaming code to an existing alias of this code:
+   #      Make the alias real and the code an alias
+   #
+   #   2. Renaming code to some other existing alias:
+   #      Error
+   #
+   #   3. Renaming code to some other code:
+   #      Error (
+   #
+   #   4. Renaming code to a new code:
+   #      Make code into an alias
+   #      Replace code with new_code.
+
+   if (exists $Data{$type}{'codealias'}{$codeset}{$new_code}) {
+      # Cases 1 and 2
+      if ($Data{$type}{'codealias'}{$codeset}{$new_code} eq $code) {
+         # Case 1
+
+         delete $Data{$type}{'codealias'}{$codeset}{$new_code};
+
+      } else {
+         # Case 2
+         carp "rename_$type(): new code already in use: $new_code\n"  unless ($nowarn);
+         return 0;
+      }
+
+   } elsif (exists $Data{$type}{'code2id'}{$codeset}{$new_code}) {
+      # Case 3
+      carp "rename_$type(): new code already in use: $new_code\n"  unless ($nowarn);
+      return 0;
+   }
+
+   # Cases 1 and 4
+
+   $Data{$type}{'codealias'}{$codeset}{$code} = $new_code;
+
+   my $id = $Data{$type}{'code2id'}{$codeset}{$code}[0];
+   $Data{$type}{'code2id'}{$codeset}{$new_code} = $Data{$type}{'code2id'}{$codeset}{$code};
+   delete $Data{$type}{'code2id'}{$codeset}{$code};
+
+   $Data{$type}{'id2code'}{$codeset}{$id} = $new_code;
+
+   return 1;
+}
+
+#=======================================================================
+#
+# _add_code_alias ( TYPE,CODE,NEW_CODE,CODESET )
+#
+# Adds an alias for the code.
+#
+#=======================================================================
+
+sub _add_code_alias {
+   my($type,$code,$new_code,$codeset,$nowarn) = @_;
+
+   if (! $codeset) {
+      carp "add_${type}_code_alias(): unknown codeset\n"  unless ($nowarn);
+      return 0;
+   }
+
+   $code = $Data{$type}{'codealias'}{$codeset}{$code}
+     if (exists $Data{$type}{'codealias'}{$codeset}{$code});
+
+   # Check that $code exists in the codeset and that $new_code
+   # does not exist.
+
+   if (! exists $Data{$type}{'code2id'}{$codeset}{$code}) {
+      carp "add_${type}_code_alias(): unknown code: $code\n"  unless ($nowarn);
+      return 0;
+   }
+
+   if (exists $Data{$type}{'code2id'}{$codeset}{$new_code}  ||
+       exists $Data{$type}{'codealias'}{$codeset}{$new_code}) {
+      carp "add_${type}_code_alias(): code already in use: $new_code\n"  unless ($nowarn);
+      return 0;
+   }
+
+   # Add the alias
+
+   $Data{$type}{'codealias'}{$codeset}{$new_code} = $code;
+
+   return 1;
+}
+
+#=======================================================================
+#
+# _delete_code_alias ( TYPE,CODE,CODESET )
+#
+# Deletes an alias for the code.
+#
+#=======================================================================
+
+sub _delete_code_alias {
+   my($type,$code,$codeset,$nowarn) = @_;
+
+   if (! $codeset) {
+      carp "delete_${type}_code_alias(): unknown codeset\n"  unless ($nowarn);
+      return 0;
+   }
+
+   # Check that $code exists in the codeset as an alias.
+
+   if (! exists $Data{$type}{'codealias'}{$codeset}{$code}) {
+      carp "delete_${type}_code_alias(): no alias defined: $code\n"  unless ($nowarn);
+      return 0;
+   }
+
+   # Delete the alias
+
+   delete $Data{$type}{'codealias'}{$codeset}{$code};
+
+   return 1;
+}
+
+#=======================================================================
+#
+# alias_code ( ALIAS => CODE [ , CODESET ] )
+#
+# Add an alias for an existing code. If the CODESET isn't specified,
+# then we use the default (currently the alpha-2 codeset).
+#
+#   Locale::Country::alias_code('uk' => 'gb');
+#
+#=======================================================================
+
+# sub alias_code {
+#    my $nowarn   = 0;
+#    $nowarn      = 1, pop  if ($_[$#_] eq "nowarn");
+#    my $alias    = shift;
+#    my $code     = shift;
+#    my $codeset  = @_ > 0 ? shift : LOCALE_CODE_DEFAULT;
+
+#    return 0  if ($codeset !~ /^\d+$/);
+
+#    if      ($codeset == LOCALE_CODE_ALPHA_2) {
+#       $codeset = "alpha2";
+#       $alias   = lc($alias);
+#    } elsif ($codeset == LOCALE_CODE_ALPHA_3) {
+#       $codeset = "alpha3";
+#       $alias   = lc($alias);
+#    } elsif ($codeset == LOCALE_CODE_FIPS) {
+#       $codeset = "fips";
+#       $alias   = uc($alias);
+#    } elsif ($codeset == LOCALE_CODE_NUMERIC) {
+#       $codeset = "num";
+#       return undef if ($alias =~ /\D/);
+#       $alias   = sprintf("%.3d", $alias);
+#    } else {
+#       carp "rename_country(): unknown codeset\n"  unless ($nowarn);
+#       return 0;
+#    }
+
+#    # Check that $code exists in the codeset.
+
+#    my ($id,$i);
+#    if (exists $Data{$type}{'code2id'}{$codeset}{$code}) {
+#       ($id,$i) = @{ $Data{$type}{'code2id'}{$codeset}{$code} };
+#    } else {
+#       carp "alias_code: attempt to alias \"$alias\" to unknown country code \"$code\"\n"
+#      unless ($nowarn);
+#       return 0;
+#    }
+
+#    # Cases:
+#    #   The alias already exists.
+#    #      Error
+#    #
+#    #   It's new
+#    #      Create a new entry in Code2CountryID
+#    #      Replace the entiry in CountryID2Code
+#    #      Regenerate %Codes
+
+#    if (exists $Data{$type}{'code2id'}{$codeset}{$alias}) {
+#       carp "alias_code: attempt to alias \"$alias\" which is already in use\n"
+#      unless ($nowarn);
+#       return 0;
+#    }
+
+#    $Data{$type}{'code2id'}{$codeset}{$alias} = [ $id, $i ];
+#    $Data{$type}{'id2names'}ID2Code{$codeset}{$id} = $alias;
+
+#    my @codes = keys %{ $Data{$type}{'code2id'}{$codeset} };
+#    $Locale::CountryCodes::Codes{$codeset} = [ sort @codes ];
+
+#    return $alias;
+# }
+
+1;
+# Local Variables:
+# mode: cperl
+# indent-tabs-mode: nil
+# cperl-indent-level: 3
+# cperl-continued-statement-offset: 2
+# cperl-continued-brace-offset: 0
+# cperl-brace-offset: 0
+# cperl-brace-imaginary-offset: 0
+# cperl-label-offset: -2
+# End:
diff --git a/cpan/Locale-Codes/lib/Locale/Codes.pod b/cpan/Locale-Codes/lib/Locale/Codes.pod
new file mode 100644 (file)
index 0000000..447aa4b
--- /dev/null
@@ -0,0 +1,540 @@
+=pod
+
+=head1 NAME
+
+Locale::Codes - a distribution of modules to handle locale codes
+
+=head1 DESCRIPTION
+
+B<Locale::Codes> is a distribution containing a set of modules.  The
+modules each deal with different types of codes which identify parts
+of the locale including languages, countries, currency, etc.
+
+Currently, the following modules are included:
+
+=over 4
+
+=item B<Locale::Country>
+
+This includes support for country codes (such as those listed in ISO-3166)
+to specify the country.
+
+=item B<Locale::Language>
+
+This includes support for language codes (such as those listed in ISO-639)
+to specify the language.
+
+=item B<Locale::Currency>
+
+This includes support for currency codes (such as those listed in ISO-4217)
+to specify the currency.
+
+=item B<Locale::Script>
+
+This includes support for script codes (such as those listed in ISO-15924)
+to specify the script.
+
+=back
+
+Each module can support an arbitrary number of code sets, and it it
+not required that the relationship between these code sets be
+one-to-one.  For example, the Locale::Country module supports code
+sets from ISO-3166 and the FIPS 10 standard, and they do not break the
+world down into exactly the same sets of countries. This does not
+cause any problem (though converting codes from ISO-3166 to FIPS or
+back will not work except for countries that are one-to-one).
+
+All data in all of these modules comes directly from the original
+standards (or as close to direct as possible), so it should be
+up-to-date at the time of release.
+
+I plan on releasing a new version a couple of times a year to
+incorporate any changes made in the standards. However, I don't always
+know about changes that occur, so if any of the standards change, and
+you want a new release sooner, just email me and I'll get one out.
+
+=head1 NEW CODE SETS
+
+I'm always open to suggestions for new code sets.
+
+In order for me to add a code set, I want the following criteria
+to be met:
+
+=over 4
+
+=item B<General-use code set>
+
+If a code set is not general use, I'm not likely to spend the time
+to add and support it.
+
+=item B<An official source of data>
+
+I require an official (or at least, a NEARLY official) source where I
+can get the data on a regular basis.
+
+Ideally, I'd only get data from an official source, but sometimes that
+is not possible. For example the ISO standards are not typically
+available for free, so I may have to get some of that data from
+alternate sources that I'm confident are getting their data from the
+official source.
+
+As an example, I get some country data from the CIA World
+Factbook. Given the nature of the source, I'm sure they're updating
+data from the official sources and I consider it "nearly" official.
+
+There are many 3rd party sites which maintain lists (many of which are
+actually in a more convenient form than the official sites).
+Unfortunately, I will reject most of them since I have no feel for how
+"official" they are.
+
+=item B<A free source of the data>
+
+Obviously, the data must be free-of-charge. I'm not interested in
+paying for the data (and I'm not interested in the overhead of having
+someone else pay for the data for me).
+
+=item B<A reliable source of data>
+
+The source of data must come from a source that I can reasonably expect
+to exist for the foreseeable future since I will be extremely reluctant
+to drop support for a data set once it's included.
+
+I am also reluctant to accept data sent to me by an individual.
+Although I appreciate the offer, it is simply not practical to consider
+an individual contribution as a reliable source of data. The source
+should be an official agency of some sort.
+
+=back
+
+These requirements are open to discussion. If you have a code set
+you'd like to see added, but which may not meet all of the above
+requirements, feel free to email me and we'll discuss it.  Depending
+on circumstances, I may be willing to waive some of these criteria.
+
+=head1 COMMON ALIASES
+
+As of version 2.00, the modules supported common variants of names.
+
+For example, Locale::Country supports variant names for countries, and
+a few of the most common ones are included in the data. The country
+code for "United States" is "us", so:
+
+   country2code('United States');
+      => "us"
+
+Now the following will also return 'us':
+
+   country2code('United States of America');
+   country2code('USA');
+
+Any number of common aliases may be included in the data, in addition
+to the names that come directly from the standards.  If you have a
+common alias for a country, language, or any other of the types of
+codes, let me know and I'll add it, with some restrictions.
+
+For example, the country name "North Korea" never appeared in any of
+the official sources (instead, it was "Korea, North" or "Korea,
+Democratic People's Republic of". I would honor a request to add an
+alias "North Korea" since that's a very common way to specify the
+country (please don't request this... I've already added it).
+
+On the other hand, a request to add Zaire as an alias for "Congo, The
+Democratic Republic of" may not be honored. The country's official
+name is not Zaire, so adding it as an alias violates the standard.
+Zaire was kept as an alias in versions prior to 3.00, but it has been
+removed. Other aliases (if any) which no longer appear in any standard
+have also been removed.
+
+=head1 ROUTINES
+
+As of 3.10, the interface for all of the modules listed above are
+identical (as a matter of fact, they are all just wrappers around a
+central module which does all the real work).
+
+In order to maintain the documentation for the modules consistently,
+the functions are all documented here, rather than in the documentation
+for the separate modules.
+
+The name of the function depends on the module. For example, every module
+contains a function "code2XXX" where XXX refers to the type of data
+(country, language, currency, or script). So, the Locale::Country module
+contains the function code2country, the Locale::Language module contains
+the function code2language, etc.
+
+In all of the functions below, CODE refers to a code for one element in
+the code set. For example, in the two-letter country codes from ISO 3166-1,
+the code 'fi' is used to refer to the country Finland. CODE is always
+case insensitive (though when a code is returned, it will always be in
+the case as used in the standard), so 'fi', 'FI', and 'Fi' would all
+be equivalent.
+
+CODESET refers to a constant specified in the documentation for each
+module to label the various code sets. For example, in the
+Locale::Language module, CODESET could be LOCALE_CODE_ALPHA_2 or
+LOCALE_CODE_ALPHA_3 (among others). Most functions have a default one,
+so they do not need to be specified. So the following calls are valid:
+
+   code2country("fi");
+   code2country("fi",LOCALE_CODE_ALPHA_2);
+   code2country("fin",LOCALE_CODE_ALPHA_3);
+
+Since LOCALE_CODE_ALPHA_2 is the default code set, the first two are
+identical.
+
+=over 4
+
+=item B<code2country ( CODE [,CODESET] )>
+
+=item B<code2language( CODE [,CODESET] )>
+
+=item B<code2currency( CODE [,CODESET] )>
+
+=item B<code2script  ( CODE [,CODESET] )>
+
+These functions take a code and returns a string which contains
+the name of the element identified.  If the code is not a valid
+code in the CODESET specified then C<undef> will be returned.
+
+The name of the element is the name as specified in the standard,
+and as a result, different variations of an element name may
+be returned for different values of CODESET.
+
+For example, the B<alpha-2> country code set defines the two-letter
+code "bo" to be "Bolivia, Plurinational State of", whereas the
+B<alpha-3> code set defines the code 'bol' to be the country "Bolivia
+(Plurinational State of)". So:
+
+   code2country('bo',LOCALE_CODE_ALPHA_2);
+      => 'Bolivia, Plurinational State of'
+
+   code2country('bol',LOCALE_CODE_ALPHA_3);
+      => 'Bolivia (Plurinational State of)'
+
+=item B<country2code ( NAME [,CODESET] )>
+
+=item B<language2code( NAME [,CODESET] )>
+
+=item B<currency2code( NAME [,CODESET] )>
+
+=item B<script2code  ( NAME [,CODESET] )>
+
+These functions takes the name of an element (or any of it's aliases)
+and returns the code that corresponds to it, if it exists. If NAME
+could not be identified as the name of one of the elements, then
+C<undef> will be returned.
+
+The name is not case sensitive. Also, any known variation of a name
+may be passed in.
+
+For example, even though the country name returned using
+LOCALE_CODE_ALPHA_2 and LOCALE_CODE_ALPHA_3 country codes for Bolivia is different,
+either country name may be passed in since for each code set, in addition to
+the alias 'Bolivia'. So:
+
+   country2code('Bolivia, Plurinational State of',
+                LOCALE_CODE_ALPHA_2);
+      => bo
+
+   country2code('Bolivia (Plurinational State of)',
+                LOCALE_CODE_ALPHA_2);
+      => bo
+
+   country2code('Bolivia',LOCALE_CODE_ALPHA_2);
+      => bo
+
+=item B<country_code2code ( CODE ,CODESET ,CODESET2 )>
+
+=item B<language_code2code( CODE ,CODESET ,CODESET2 )>
+
+=item B<currency_code2code( CODE ,CODESET ,CODESET2 )>
+
+=item B<script_code2code  ( CODE ,CODESET ,CODESET2 )>
+
+These functions takes a a code from one code set, and returns the
+corresponding code from another code set. CODE must exists in the code
+set specified by CODESET and must have a corresponding code in the
+code set specified by CODESET2 or C<undef> will be returned.
+
+Both CODESETs must be explicitly entered.
+
+   country_code2code('fin', LOCALE_CODE_ALPHA_3,
+                     LOCALE_CODE_ALPHA_2);
+      => 'fi'
+
+=item B<all_country_codes ( [CODESET] )>
+
+=item B<all_language_codes( [CODESET] )>
+
+=item B<all_currency_codes( [CODESET] )>
+
+=item B<all_script_codes  ( [CODESET] )>
+
+These returns a list of all code in the code set. The codes will be
+sorted.
+
+=item B<all_country_names ( [CODESET] )>
+
+=item B<all_language_names( [CODESET] )>
+
+=item B<all_currency_names( [CODESET] )>
+
+=item B<all_script_names  ( [CODESET] )>
+
+These return a list of all elements names for which there is a
+corresponding code in the specified code set.
+
+The names returned are exactly as they are specified in the standard,
+and are sorted.
+
+Since not all elements are listed in all code sets, the list of
+elements may differ depending on the code set specified.
+
+=back
+
+=head1 SEMI-PRIVATE ROUTINES
+
+Additional semi-private routines which may be used to modify the
+internal data are also available.  Given their status, they aren't
+exported, and so need to be called by prefixing the function name with
+the package name.
+
+=over 4
+
+=item B<Locale::Country::rename_country  ( CODE ,NEW_NAME [,CODESET] )>
+
+=item B<Locale::Language::rename_language( CODE ,NEW_NAME [,CODESET] )>
+
+=item B<Locale::Currency::rename_currency( CODE ,NEW_NAME [,CODESET] )>
+
+=item B<Locale::Script::rename_script    ( CODE ,NEW_NAME [,CODESET] )>
+
+These routines are used to change the official name of an element. At
+that point, the name returned by the code2XXX routine would be
+NEW_NAME instead of the name specified in the standard.
+
+The original name will remain as an alias.
+
+For example, the official country name for code 'gb' is 'United
+Kingdom'.  If you want to change that, you might call:
+
+   Locale::Country::rename_country('gb', 'Great Britain');
+
+This means that calling code2country('gb') will now return 'Great
+Britain' instead of 'United Kingdom'.
+
+If any error occurs, a warning is issued and 0 is returned. An error
+occurs if CODE doesn't exist in the specified code set, or if
+NEW_NAME is already in use but for a different element.
+
+If the routine succeeds, 1 is returned.
+
+=item B<Locale::Country::add_country  ( CODE ,NAME [,CODESET] )>
+
+=item B<Locale::Language::add_language( CODE ,NAME [,CODESET] )>
+
+=item B<Locale::Currency::add_currency( CODE ,NAME [,CODESET] )>
+
+=item B<Locale::Script::add_script    ( CODE ,NAME [,CODESET] )>
+
+These routines are used to add a new code and name to the data.
+
+Both CODE and NAME must be unused in the data set or an error
+occurs (though NAME may be used in a different data set).
+
+For example, to create the fictitious country named "Duchy of
+Grand Fenwick" with codes "gf" and "fen", use the following:
+
+   Locale::Country::add_country("fe","Duchy of Grand Fenwick",
+                                LOCALE_CODE_ALPHA_2);
+
+   Locale::Country::add_country("fen","Duchy of Grand Fenwick",
+                                LOCALE_CODE_ALPHA_3);
+
+The return value is 1 on success, 0 on an error.
+
+=item B<Locale::Country::delete_country  ( CODE [,CODESET] )>
+
+=item B<Locale::Language::delete_language( CODE [,CODESET] )>
+
+=item B<Locale::Currency::delete_currency( CODE [,CODESET] )>
+
+=item B<Locale::Script::delete_script    ( CODE [,CODESET] )>
+
+These routines are used to delete a code from the data.
+
+CODE must refer to an existing code in the code set.
+
+The return value is 1 on success, 0 on an error.
+
+=item B<Locale::Country::add_country_alias  ( NAME ,NEW_NAME )>
+
+=item B<Locale::Language::add_language_alias( NAME ,NEW_NAME )>
+
+=item B<Locale::Currency::add_currency_alias( NAME ,NEW_NAME )>
+
+=item B<Locale::Script::add_script_alias    ( NAME ,NEW_NAME )>
+
+These routines are used to add a new alias to the data. They do
+not alter the return value of the code2XXX function.
+
+NAME must be an existing element name, and NEW_NAME must
+be unused or an error occurs.
+
+The return value is 1 on success, 0 on an error.
+
+=item B<Locale::Country::delete_country_alias  ( NAME )>
+
+=item B<Locale::Language::delete_language_alias( NAME )>
+
+=item B<Locale::Currency::delete_currency_alias( NAME )>
+
+=item B<Locale::Script::delete_script_alias    ( NAME )>
+
+These routines are used to delete an alias from the data. Once
+removed, the element may not be referred to by NAME.
+
+NAME must be one of a list of at least two names that may be used to
+specify an element. If the element may only be referred to by a single
+name, you'll need to use the add_XXX_alias function to add a new alias
+first, or the remove_XXX function to remove the element entirely.
+
+If the alias is used as the name in any code set, one of the other
+names will be used instead. Predicting exactly which one will
+be used requires you to know the order in which the standards
+were read, which is not reliable, so you may want to use the
+rename_XXX function to force one of the alternate names to be
+used.
+
+The return value is 1 on success, 0 on an error.
+
+=item B<Locale::Country::rename_country_code  ( CODE ,NEW_CODE [,CODESET] )>
+
+=item B<Locale::Language::rename_language_code( CODE ,NEW_CODE [,CODESET] )>
+
+=item B<Locale::Currency::rename_currency_code( CODE ,NEW_CODE [,CODESET] )>
+
+=item B<Locale::Script::rename_script_code    ( CODE ,NEW_CODE [,CODESET] )>
+
+These routines are used to change the official code for an element. At
+that point, the code returned by the XXX2code routine would be
+NEW_CODE instead of the code specified in the standard.
+
+NEW_CODE may either be a code that is not in use, or it may be an
+alias for CODE (in which case, CODE becomes and alias and NEW_CODE
+becomes the "real" code).
+
+The original code is kept as an alias, so that the code2XXX routines
+will work with either the code from the standard or the new code.
+
+However, the all_XXX_codes routine will only return the codes which
+are considered "real" (which means that the list of codes will now
+contain NEW_CODE, but will not contain CODE).
+
+=item B<Locale::Country::add_country_code_alias  ( CODE ,NEW_CODE [,CODESET] )>
+
+=item B<Locale::Language::add_language_code_alias( CODE ,NEW_CODE [,CODESET] )>
+
+=item B<Locale::Currency::add_currency_code_alias( CODE ,NEW_CODE [,CODESET] )>
+
+=item B<Locale::Script::add_script_code_alias    ( CODE ,NEW_CODE [,CODESET] )>
+
+These routines add an alias for the code. At that point, NEW_CODE and CODE
+will both work in the code2XXX routines. However, the XXX2code routines will
+still return the original code.
+
+=item B<Locale::Country::delete_country_code_alias  ( CODE [,CODESET] )>
+
+=item B<Locale::Language::delete_language_code_alias( CODE [,CODESET] )>
+
+=item B<Locale::Currency::delete_currency_code_alias( CODE [,CODESET] )>
+
+=item B<Locale::Script::delete_script_code_alias    ( CODE [,CODESET] )>
+
+These routines delete an alias for the code.
+
+These will only work if CODE is actually an alias. If it is the "real"
+code, it will not be deleted. You will need to use the rename_XXX_code
+function to switch the real code with one of the aliases, and then
+delete the alias.
+
+=back
+
+=head1 KNOWN BUGS AND LIMITATIONS
+
+=over 4
+
+=item B<*>
+
+Because each code set uses a slightly different list of elements, and
+they are not necessarily one-to-one, there may be some confusion
+about the relationship between codes from different code sets.
+
+For example, ISO 3166 assigns one code to the country "United States
+Minor Outlying Islands", but the FIPS 10 codes give different codes
+to different islands (Baker Island, Howland Island, etc.).
+
+This may cause some confusion... I've done the best that I could do
+to minimize it.
+
+=item B<*>
+
+Currently all names must be all ASCII. I plan on relaxing that
+limitation in the future.
+
+=back
+
+=head1 SEE ALSO
+
+=over 4
+
+=item B<Locale::Constants>
+
+Constants for Locale codes.
+
+=item B<Locale::Country>
+
+Codes for identification of countries.
+
+=item B<Locale::Language>
+
+Codes for identification of languages.
+
+=item B<Locale::Script>
+
+Codes for identification of scripts.
+
+=item B<Locale::Currency>
+
+Codes for identification of currencies and funds.
+
+=back
+
+=head1 AUTHOR
+
+Locale::Country and Locale::Language were originally written by Neil
+Bowers at the Canon Research Centre Europe (CRE). They maintained the
+distribution from 1997 to 2001.
+
+Locale::Currency was originally written by Michael Hennecke.
+
+From 2001 to 2004, maintenance was continued by Neil Bowers.  He
+modified Locale::Currency for inclusion in the distribution. He also
+added Locale::Constants and Locale::Script.
+
+From 2004-2009, the module was unmaintained.
+
+In 2010, maintenance was taken over by Sullivan Beck (sbeck@cpan.org)
+with Neil Bower's permission.
+
+=head1 COPYRIGHT
+
+   Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
+   Copyright (c) 2001      Michael Hennecke (Locale::Currency)
+   Copyright (c) 2001-2010 Neil Bowers
+   Copyright (c) 2010-2010 Sullivan Beck
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
diff --git a/cpan/Locale-Codes/lib/Locale/Codes/Changes.pod b/cpan/Locale-Codes/lib/Locale/Codes/Changes.pod
new file mode 100644 (file)
index 0000000..02694d9
--- /dev/null
@@ -0,0 +1,171 @@
+=pod
+
+=head1 NAME
+
+Locale::Codes::Changes - details important changes after 2.07
+
+=head1 3.10
+
+=over 4
+
+=item B<Changed XXX_code2code behavior slightly>
+
+In previous versions, passing in the same code set for both code set
+arguments would automatically return undef. For example:
+
+   country_code2code('bo',LOCALE_CODE_ALPHA_2,LOCALE_CODE_ALPHA_2);
+      => undef
+
+This doesn't seem like reasonable behavior, so it has been changed
+to allow the same code set:
+
+   country_code2code('bo',LOCALE_CODE_ALPHA_2,LOCALE_CODE_ALPHA_2);
+      => 'bo'
+
+Note that if an invalid code is passed in, undef will still be
+returned:
+
+   country_code2code('bol',LOCALE_CODE_ALPHA_2,LOCALE_CODE_ALPHA_2);
+      => undef
+
+=item B<Added many semi-private routines>
+
+Previous versions had only two semi-private routines: rename_country
+and alias_code which had the ability to modify the internal data in
+a couple very limited ways. It was requested (in an anonymous posting
+by someone named Steve and also by Steve Hay) that better support
+for modifying internal data, so a full set of routines were added.
+
+The full set of routines includes:
+
+   rename_country
+   rename_language
+   rename_currency
+   rename_script
+
+   add_country
+   add_language
+   add_currency
+   add_script
+
+   delete_country
+   delete_language
+   delete_currency
+   delete_script
+
+   add_country_alias
+   add_language_alias
+   add_currency_alias
+   add_script_alias
+
+   delete_country_alias
+   delete_language_alias
+   delete_currency_alias
+   delete_script_alias
+
+   rename_country_code
+   rename_language_code
+   rename_currency_code
+   rename_script_code
+
+   add_country_code_alias
+   add_language_code_alias
+   add_currency_code_alias
+   add_script_code_alias
+
+   delete_country_code_alias
+   delete_language_code_alias
+   delete_currency_code_alias
+   delete_script_code_alias
+
+=back
+
+=head1 3.00
+
+=over 4
+
+=item B<New maintainer>
+
+From 1997 to 2004, Locale::Codes was maintained by Neil
+Bowers. Unfortunately, no updates were made from June 2004 to January
+2010. During that time, a number of changes have been made to the
+standards since then, so the data included was out-of-date.
+
+I contacted Neil to get his permission to assume maintenance of
+the module, and he kindly agreed.
+
+=item B<All codes are generated from standards>
+
+All of the values returned by the various functions are now values
+directly from the standards. This means that the values returned in
+the 2.xx series are not necessarily the same as the values returned
+here.
+
+As an example, the ISO 3166 standard which lists country codes refers
+to the country associated with the code "bo" as "Bolivia,
+Plurinational State of", so that is what is returned. In the 2.xx
+series, "Bolivia" was returned.  Also, the country names vary from one
+standard to another. So the code "bol" which is maintained by the
+United Nations returns the name of the country as "Bolivia
+(Plurinational State of)". Some common aliases have been added, so you
+can still request a code associated with a county name "Bolivia".
+
+Since the data comes from the standards, some "incorrect" values are
+no longer supported. For example, 2.07 treated "Zaire" as an alias for
+"Congo", but the country changed it's name, and "Zaire" is not in the
+standard, so it has been dropped in 3.00.
+
+=item B<Added several code sets from standards>
+
+I've added the following code sets:
+
+   FIPS 10 country codes
+   Alpha-3 and Term language codes
+   Numeric currency codes
+
+=item B<Locale::Script changed>
+
+In 2.xx, Locale::Script assigned scripts to country codes, which is NOT
+how it is done currently in the standards. It appears that an older version
+of ISO 15924 did this, but I haven't found an old version to confirm
+that, and in any case, that is not the case in the current standards.
+
+As a result, the Locale::Script module is completely incompatible with
+the 2.xx version with respect to the types of codes it supports. None of
+the old codes will work.
+
+=item B<Added missing functions>
+
+I've added in some functions which were "missing" previously (since there was
+only one set of codes supported, the code2code functions didn't apply):
+
+   language_code2code
+   currency_code2code
+
+so the interfaces for each type of codes are consistent.
+
+=item B<Dropped support for _alias_code>
+
+In Locale::Country, _alias_code was an allowed, but deprecated function
+which was documented to be supported in the 2.xx series. I've removed it.
+
+=back
+
+=head1 SEE ALSO
+
+Locale::Codes
+
+=head1 AUTHOR
+
+See Locale::Codes for full author history.
+
+Currently maintained by Sullivan Beck (sbeck@cpan.org).
+
+=head1 COPYRIGHT
+
+   Copyright (c) 2010-2010 Sullivan Beck
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
diff --git a/cpan/Locale-Codes/lib/Locale/Codes/Country.pm b/cpan/Locale-Codes/lib/Locale/Codes/Country.pm
new file mode 100644 (file)
index 0000000..49badc0
--- /dev/null
@@ -0,0 +1,9589 @@
+package Locale::Codes::Country;
+
+# This file was automatically generated.  Any changes to this file will
+# be lost the next time 'get_codes' is run.
+#    Generated on: Mon Apr  5 15:40:50 EDT 2010
+
+=pod
+
+=head1 NAME
+
+Locale::Codes::Country - country codes for the Locale::Country module
+
+=head1 SYNOPSIS
+
+This module contains data used by the Locale::Country module. It is
+not intended to be used directly, and contains no calleable routines.
+
+=head1 AUTHOR
+
+See Locale::Codes for full author history.
+
+Currently maintained by Sullivan Beck (sbeck@cpan.org).
+
+=head1 COPYRIGHT
+
+   Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
+   Copyright (c) 2001-2010 Neil Bowers
+   Copyright (c) 2010-2010 Sullivan Beck
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
+use strict;
+use warnings;
+require 5.002;
+
+use vars qw($VERSION);
+$VERSION='3.12';
+
+$Locale::Codes::Data{'country'}{'id'} = '0278';
+
+$Locale::Codes::Data{'country'}{'id2names'} = {
+   q(0001) => [
+      q(Afghanistan),
+      q(Islamic State of Afghanistan),
+      ],
+   q(0002) => [
+      q(Aland Islands),
+      ],
+   q(0003) => [
+      q(Albania),
+      q(Republic of Albania),
+      ],
+   q(0004) => [
+      q(Algeria),
+      q(People's Democratic Republic of Algeria),
+      ],
+   q(0005) => [
+      q(American Samoa),
+      q(Territory of American Samoa),
+      ],
+   q(0006) => [
+      q(Andorra),
+      q(Principality of Andorra),
+      ],
+   q(0007) => [
+      q(Angola),
+      q(Republic of Angola),
+      ],
+   q(0008) => [
+      q(Anguilla),
+      ],
+   q(0009) => [
+      q(Antarctica),
+      ],
+   q(0010) => [
+      q(Antigua and Barbuda),
+      ],
+   q(0011) => [
+      q(Argentina),
+      q(Argentine Republic),
+      ],
+   q(0012) => [
+      q(Armenia),
+      q(Republic of Armenia),
+      ],
+   q(0013) => [
+      q(Aruba),
+      ],
+   q(0014) => [
+      q(Australia),
+      q(Commonwealth of Australia),
+      ],
+   q(0015) => [
+      q(Austria),
+      q(Republic of Austria),
+      ],
+   q(0016) => [
+      q(Azerbaijan),
+      q(Republic of Azerbaijan),
+      ],
+   q(0017) => [
+      q(Bahamas),
+      q(Bahamas, The),
+      q(Commonwealth of the Bahamas),
+      q(The Bahamas),
+      ],
+   q(0018) => [
+      q(Bahrain),
+      q(State of Bahrain),
+      ],
+   q(0019) => [
+      q(Bangladesh),
+      q(People's Republic of Bangladesh),
+      ],
+   q(0020) => [
+      q(Barbados),
+      ],
+   q(0021) => [
+      q(Belarus),
+      q(Republic of Belarus),
+      ],
+   q(0022) => [
+      q(Belgium),
+      q(Kingdom of Belgium),
+      ],
+   q(0023) => [
+      q(Belize),
+      ],
+   q(0024) => [
+      q(Benin),
+      q(Republic of Benin),
+      ],
+   q(0025) => [
+      q(Bermuda),
+      ],
+   q(0026) => [
+      q(Bhutan),
+      q(Kingdom of Bhutan),
+      ],
+   q(0027) => [
+      q(Bolivia, Plurinational State of),
+      q(Bolivia (Plurinational State of)),
+      q(Bolivia),
+      q(Republic of Bolivia),
+      ],
+   q(0028) => [
+      q(Bosnia and Herzegovina),
+      ],
+   q(0029) => [
+      q(Botswana),
+      q(Republic of Botswana),
+      ],
+   q(0030) => [
+      q(Bouvet Island),
+      ],
+   q(0031) => [
+      q(Brazil),
+      q(Federative Republic of Brazil),
+      ],
+   q(0032) => [
+      q(British Indian Ocean Territory),
+      ],
+   q(0033) => [
+      q(Brunei Darussalam),
+      q(Brunei),
+      q(Negara Brunei Darussalam),
+      ],
+   q(0034) => [
+      q(Bulgaria),
+      ],
+   q(0035) => [
+      q(Burkina Faso),
+      ],
+   q(0036) => [
+      q(Burundi),
+      q(Republic of Burundi),
+      ],
+   q(0037) => [
+      q(Cambodia),
+      q(Kingdom of Cambodia),
+      ],
+   q(0038) => [
+      q(Cameroon),
+      q(Republic of Cameroon),
+      ],
+   q(0039) => [
+      q(Canada),
+      ],
+   q(0040) => [
+      q(Cape Verde),
+      q(Republic of Cape Verde),
+      ],
+   q(0041) => [
+      q(Cayman Islands),
+      ],
+   q(0042) => [
+      q(Central African Republic),
+      ],
+   q(0043) => [
+      q(Chad),
+      q(Republic of Chad),
+      ],
+   q(0044) => [
+      q(Chile),
+      q(Republic of Chile),
+      ],
+   q(0045) => [
+      q(China),
+      q(People's Republic of China),
+      ],
+   q(0046) => [
+      q(Christmas Island),
+      q(Territory of Christmas Island),
+      ],
+   q(0047) => [
+      q(Cocos (Keeling) Islands),
+      q(Territory of Cocos (Keeling) Islands),
+      q(Keeling Islands),
+      q(Cocos Islands),
+      ],
+   q(0048) => [
+      q(Colombia),
+      q(Republic of Colombia),
+      ],
+   q(0049) => [
+      q(Comoros),
+      q(Federal Islamic Republic of the Comoros),
+      ],
+   q(0050) => [
+      q(Congo),
+      q(Congo (Brazzaville)),
+      q(Republic of the Congo),
+      q(Congo, Republic of the),
+      q(The Republic of the Congo),
+      ],
+   q(0051) => [
+      q(Congo, The Democratic Republic of the),
+      q(Democratic Republic of the Congo),
+      q(Congo (Kinshasa)),
+      q(Congo, Democratic Republic of the),
+      q(The Democratic Republic of the Congo),
+      ],
+   q(0052) => [
+      q(Cook Islands),
+      ],
+   q(0053) => [
+      q(Costa Rica),
+      q(Republic of Costa Rica),
+      ],
+   q(0054) => [
+      q(Cote d'Ivoire),
+      q(Republic of Cote D'Ivoire),
+      ],
+   q(0055) => [
+      q(Croatia),
+      q(Republic of Croatia),
+      ],
+   q(0056) => [
+      q(Cuba),
+      q(Republic of Cuba),
+      ],
+   q(0057) => [
+      q(Cyprus),
+      q(Republic of Cyprus),
+      ],
+   q(0058) => [
+      q(Czech Republic),
+      ],
+   q(0059) => [
+      q(Denmark),
+      q(Kingdom of Denmark),
+      ],
+   q(0060) => [
+      q(Djibouti),
+      q(Republic of Djibouti),
+      ],
+   q(0061) => [
+      q(Dominica),
+      q(Commonwealth of Dominica),
+      ],
+   q(0062) => [
+      q(Dominican Republic),
+      ],
+   q(0063) => [
+      q(Ecuador),
+      q(Republic of Ecuador),
+      ],
+   q(0064) => [
+      q(Egypt),
+      q(Arab Republic of Egypt),
+      ],
+   q(0065) => [
+      q(El Salvador),
+      q(Republic of El Salvador),
+      ],
+   q(0066) => [
+      q(Equatorial Guinea),
+      q(Republic of Equatorial Guinea),
+      ],
+   q(0067) => [
+      q(Eritrea),
+      q(State of Eritrea),
+      ],
+   q(0068) => [
+      q(Estonia),
+      q(Republic of Estonia),
+      ],
+   q(0069) => [
+      q(Ethiopia),
+      q(Federal Democratic Republic of Ethiopia),
+      ],
+   q(0070) => [
+      q(Falkland Islands (Malvinas)),
+      q(Falkland Islands (Islas Malvinas)),
+      ],
+   q(0071) => [
+      q(Faroe Islands),
+      q(Faeroe Islands),
+      ],
+   q(0072) => [
+      q(Fiji),
+      q(Republic of the Fiji Islands),
+      ],
+   q(0073) => [
+      q(Finland),
+      q(Republic of Finland),
+      ],
+   q(0074) => [
+      q(France),
+      q(French Republic),
+      ],
+   q(0075) => [
+      q(French Guiana),
+      q(Department of Guiana),
+      ],
+   q(0076) => [
+      q(French Polynesia),
+      q(Territory of French Polynesia),
+      ],
+   q(0077) => [
+      q(French Southern Territories),
+      q(French Southern and Antarctic Lands),
+      q(Territory of the French Southern and Antarctic Lands),
+      ],
+   q(0078) => [
+      q(Gabon),
+      q(Gabonese Republic),
+      ],
+   q(0079) => [
+      q(Gambia),
+      q(Gambia, The),
+      q(Republic of the Gambia),
+      ],
+   q(0080) => [
+      q(Georgia),
+      ],
+   q(0081) => [
+      q(Germany),
+      q(Federal Republic of Germany),
+      ],
+   q(0082) => [
+      q(Ghana),
+      q(Republic of Ghana),
+      ],
+   q(0083) => [
+      q(Gibraltar),
+      ],
+   q(0084) => [
+      q(Greece),
+      q(Hellenic Republic),
+      ],
+   q(0085) => [
+      q(Greenland),
+      ],
+   q(0086) => [
+      q(Grenada),
+      ],
+   q(0087) => [
+      q(Guadeloupe),
+      q(Department of Guadeloupe),
+      ],
+   q(0088) => [
+      q(Guam),
+      q(Territory of Guam),
+      ],
+   q(0089) => [
+      q(Guatemala),
+      q(Republic of Guatemala),
+      ],
+   q(0090) => [
+      q(Guernsey),
+      q(Bailiwick of Guernsey),
+      ],
+   q(0091) => [
+      q(Guinea),
+      q(Republic of Guinea),
+      ],
+   q(0092) => [
+      q(Guinea-Bissau),
+      q(Republic of Guinea-Bissau),
+      ],
+   q(0093) => [
+      q(Guyana),
+      q(Co-operative Republic of Guyana),
+      ],
+   q(0094) => [
+      q(Haiti),
+      q(Republic of Haiti),
+      ],
+   q(0095) => [
+      q(Heard Island and Mcdonald Islands),
+      q(Territory of Heard Island and McDonald Islands),
+      ],
+   q(0096) => [
+      q(Holy See (Vatican City State)),
+      q(Holy See),
+      q(Vatican City),
+      q(State of the Vatican City),
+      q(Holy See (Vatican City)),
+      ],
+   q(0097) => [
+      q(Honduras),
+      q(Republic of Honduras),
+      ],
+   q(0098) => [
+      q(Hong Kong),
+      q(China, Hong Kong Special Administrative Region),
+      q(Hong Kong S.A.R.),
+      q(Hong Kong Special Administrative Region),
+      q(Hong Kong Special Administrative Region of China),
+      ],
+   q(0099) => [
+      q(Hungary),
+      q(Republic of Hungary),
+      ],
+   q(0100) => [
+      q(Iceland),
+      q(Republic of Iceland),
+      ],
+   q(0101) => [
+      q(India),
+      q(Republic of India),
+      ],
+   q(0102) => [
+      q(Indonesia),
+      q(Republic of Indonesia),
+      ],
+   q(0103) => [
+      q(Iran, Islamic Republic of),
+      q(Iran (Islamic Republic of)),
+      q(Iran),
+      q(Islamic Republic of Iran),
+      ],
+   q(0104) => [
+      q(Iraq),
+      q(Republic of Iraq),
+      ],
+   q(0105) => [
+      q(Ireland),
+      ],
+   q(0106) => [
+      q(Isle of Man),
+      ],
+   q(0107) => [
+      q(Israel),
+      q(State of Israel),
+      ],
+   q(0108) => [
+      q(Italy),
+      q(Italian Republic),
+      ],
+   q(0109) => [
+      q(Jamaica),
+      ],
+   q(0110) => [
+      q(Japan),
+      ],
+   q(0111) => [
+      q(Jersey),
+      q(Bailiwick of Jersey),
+      ],
+   q(0112) => [
+      q(Jordan),
+      q(Hashemite Kingdom of Jordan),
+      ],
+   q(0113) => [
+      q(Kazakhstan),
+      q(Republic of Kazakhstan),
+      q(Kazakstan),
+      ],
+   q(0114) => [
+      q(Kenya),
+      q(Republic of Kenya),
+      ],
+   q(0115) => [
+      q(Kiribati),
+      q(Republic of Kiribati),
+      ],
+   q(0116) => [
+      q(Korea, Democratic People's Republic of),
+      q(Democratic People's Republic of Korea),
+      q(Korea, North),
+      q(North Korea),
+      ],
+   q(0117) => [
+      q(Korea, Republic of),
+      q(Republic of Korea),
+      q(Korea, South),
+      q(South Korea),
+      ],
+   q(0118) => [
+      q(Kuwait),
+      q(State of Kuwait),
+      ],
+   q(0119) => [
+      q(Kyrgyzstan),
+      q(Kyrgyz Republic),
+      ],
+   q(0120) => [
+      q(Lao People's Democratic Republic),
+      q(Laos),
+      ],
+   q(0121) => [
+      q(Latvia),
+      q(Republic of Latvia),
+      ],
+   q(0122) => [
+      q(Lebanon),
+      q(Lebanese Republic),
+      ],
+   q(0123) => [
+      q(Lesotho),
+      q(Republic of Lesotho),
+      ],
+   q(0124) => [
+      q(Liberia),
+      q(Republic of Liberia),
+      ],
+   q(0125) => [
+      q(Libyan Arab Jamahiriya),
+      q(Libya),
+      q(Great Socialist People's Libyan Arab Jamahiriya),
+      ],
+   q(0126) => [
+      q(Liechtenstein),
+      q(Principality of Liechtenstein),
+      ],
+   q(0127) => [
+      q(Lithuania),
+      q(Republic of Lithuania),
+      ],
+   q(0128) => [
+      q(Luxembourg),
+      q(Grand Duchy of Luxembourg),
+      ],
+   q(0129) => [
+      q(Macao),
+      q(China, Macao Special Administrative Region),
+      q(Macau S.A.R),
+      q(Macau Special Administrative Region),
+      q(Macau),
+      q(Macau S.A.R.),
+      q(Macao Special Administrative Region of China),
+      ],
+   q(0130) => [
+      q(Macedonia, The Former Yugoslav Republic of),
+      q(The former Yugoslav Republic of Macedonia),
+      q(Macedonia),
+      q(Republic of Macedonia),
+      q(Macedonia, Former Yugoslav Republic of),
+      ],
+   q(0131) => [
+      q(Madagascar),
+      q(Republic of Madagascar),
+      ],
+   q(0132) => [
+      q(Malawi),
+      q(Republic of Malawi),
+      ],
+   q(0133) => [
+      q(Malaysia),
+      ],
+   q(0134) => [
+      q(Maldives),
+      q(Republic of Maldives),
+      ],
+   q(0135) => [
+      q(Mali),
+      q(Republic of Mali),
+      ],
+   q(0136) => [
+      q(Malta),
+      q(Republic of Malta),
+      ],
+   q(0137) => [
+      q(Marshall Islands),
+      q(Republic of the Marshall Islands),
+      ],
+   q(0138) => [
+      q(Martinique),
+      q(Department of Martinique),
+      ],
+   q(0139) => [
+      q(Mauritania),
+      q(Islamic Republic of Mauritania),
+      ],
+   q(0140) => [
+      q(Mauritius),
+      q(Republic of Mauritius),
+      ],
+   q(0141) => [
+      q(Mayotte),
+      q(Territorial Collectivity of Mayotte),
+      ],
+   q(0142) => [
+      q(Mexico),
+      q(United Mexican States),
+      ],
+   q(0143) => [
+      q(Micronesia, Federated States of),
+      q(Micronesia (Federated States of)),
+      q(Federated States of Micronesia),
+      ],
+   q(0144) => [
+      q(Moldova, Republic of),
+      q(Republic of Moldova),
+      q(Moldova),
+      ],
+   q(0145) => [
+      q(Monaco),
+      q(Principality of Monaco),
+      ],
+   q(0146) => [
+      q(Mongolia),
+      ],
+   q(0147) => [
+      q(Montenegro),
+      ],
+   q(0148) => [
+      q(Montserrat),
+      ],
+   q(0149) => [
+      q(Morocco),
+      q(Kingdom of Morocco),
+      ],
+   q(0150) => [
+      q(Mozambique),
+      q(Republic of Mozambique),
+      ],
+   q(0151) => [
+      q(Myanmar),
+      q(Burma),
+      q(Union of Burma),
+      ],
+   q(0152) => [
+      q(Namibia),
+      q(Republic of Namibia),
+      ],
+   q(0153) => [
+      q(Nauru),
+      q(Republic of Nauru),
+      ],
+   q(0154) => [
+      q(Nepal),
+      q(Kingdom of Nepal),
+      ],
+   q(0155) => [
+      q(Netherlands),
+      q(Kingdom of the Netherlands),
+      ],
+   q(0156) => [
+      q(Netherlands Antilles),
+      ],
+   q(0157) => [
+      q(New Caledonia),
+      q(Territory of New Caledonia and Dependencies),
+      ],
+   q(0158) => [
+      q(New Zealand),
+      ],
+   q(0159) => [
+      q(Nicaragua),
+      q(Republic of Nicaragua),
+      ],
+   q(0160) => [
+      q(Niger),
+      q(Republic of Niger),
+      ],
+   q(0161) => [
+      q(Nigeria),
+      q(Federal Republic of Nigeria),
+      ],
+   q(0162) => [
+      q(Niue),
+      ],
+   q(0163) => [
+      q(Norfolk Island),
+      q(Territory of Norfolk Island),
+      ],
+   q(0164) => [
+      q(Northern Mariana Islands),
+      q(Commonwealth of the Northern Mariana Islands),
+      ],
+   q(0165) => [
+      q(Norway),
+      q(Kingdom of Norway),
+      ],
+   q(0166) => [
+      q(Oman),
+      q(Sultanate of Oman),
+      ],
+   q(0167) => [
+      q(Pakistan),
+      q(Islamic Republic of Pakistan),
+      ],
+   q(0168) => [
+      q(Palau),
+      q(Republic of Palau),
+      ],
+   q(0169) => [
+      q(Palestinian Territory, Occupied),
+      q(Occupied Palestinian Territory),
+      ],
+   q(0170) => [
+      q(Panama),
+      q(Republic of Panama),
+      ],
+   q(0171) => [
+      q(Papua New Guinea),
+      q(Independent State of Papua New Guinea),
+      ],
+   q(0172) => [
+      q(Paraguay),
+      q(Republic of Paraguay),
+      ],
+   q(0173) => [
+      q(Peru),
+      q(Republic of Peru),
+      ],
+   q(0174) => [
+      q(Philippines),
+      q(Republic of the Philippines),
+      ],
+   q(0175) => [
+      q(Pitcairn),
+      q(Pitcairn Islands),
+      q(Pitcairn, Henderson, Ducie and Oeno Islands),
+      q(Pitcairn Island),
+      ],
+   q(0176) => [
+      q(Poland),
+      q(Republic of Poland),
+      ],
+   q(0177) => [
+      q(Portugal),
+      q(Portuguese Republic),
+      ],
+   q(0178) => [
+      q(Puerto Rico),
+      q(Commonwealth of Puerto Rico),
+      ],
+   q(0179) => [
+      q(Qatar),
+      q(State of Qatar),
+      ],
+   q(0180) => [
+      q(Reunion),
+      q(Department of Reunion),
+      ],
+   q(0181) => [
+      q(Romania),
+      ],
+   q(0182) => [
+      q(Russian Federation),
+      q(Russia),
+      ],
+   q(0183) => [
+      q(Rwanda),
+      q(Rwandese Republic),
+      ],
+   q(0184) => [
+      q(Saint Barthelemy),
+      q(Saint-Barthelemy),
+      ],
+   q(0185) => [
+      q(Saint Helena, Ascension and Tristan da Cunha),
+      q(Saint Helena),
+      ],
+   q(0186) => [
+      q(Saint Kitts and Nevis),
+      q(Federation of Saint Kitts and Nevis),
+      ],
+   q(0187) => [
+      q(Saint Lucia),
+      ],
+   q(0188) => [
+      q(Saint Martin),
+      q(Saint-Martin (French part)),
+      ],
+   q(0189) => [
+      q(Saint Pierre and Miquelon),
+      q(Territorial Collectivity of Saint Pierre and Miquelon),
+      ],
+   q(0190) => [
+      q(Saint Vincent and the Grenadines),
+      ],
+   q(0191) => [
+      q(Samoa),
+      q(Independent State of Samoa),
+      ],
+   q(0192) => [
+      q(San Marino),
+      q(Republic of San Marino),
+      ],
+   q(0193) => [
+      q(Sao Tome and Principe),
+      q(Democratic Republic of Sao Tome and Principe),
+      ],
+   q(0194) => [
+      q(Saudi Arabia),
+      q(Kingdom of Saudi Arabia),
+      ],
+   q(0195) => [
+      q(Senegal),
+      q(Republic of Senegal),
+      ],
+   q(0196) => [
+      q(Serbia),
+      ],
+   q(0197) => [
+      q(Seychelles),
+      q(Republic of Seychelles),
+      ],
+   q(0198) => [
+      q(Sierra Leone),
+      q(Republic of Sierra Leone),
+      ],
+   q(0199) => [
+      q(Singapore),
+      q(Republic of Singapore),
+      ],
+   q(0200) => [
+      q(Slovakia),
+      q(Slovak Republic),
+      ],
+   q(0201) => [
+      q(Slovenia),
+      q(Republic of Slovenia),
+      ],
+   q(0202) => [
+      q(Solomon Islands),
+      ],
+   q(0203) => [
+      q(Somalia),
+      ],
+   q(0204) => [
+      q(South Africa),
+      q(Republic of South Africa),
+      ],
+   q(0205) => [
+      q(South Georgia and the South Sandwich Islands),
+      q(South Georgia and the Islands),
+      ],
+   q(0206) => [
+      q(Spain),
+      q(Kingdom of Spain),
+      ],
+   q(0207) => [
+      q(Sri Lanka),
+      q(Democratic Socialist Republic of Sri Lanka),
+      ],
+   q(0208) => [
+      q(Sudan),
+      q(Republic of the Sudan),
+      ],
+   q(0209) => [
+      q(Suriname),
+      q(Republic of Suriname),
+      ],
+   q(0210) => [
+      q(Svalbard and Jan Mayen),
+      q(Svalbard and Jan Mayen Islands),
+      ],
+   q(0211) => [
+      q(Swaziland),
+      q(Kingdom of Swaziland),
+      ],
+   q(0212) => [
+      q(Sweden),
+      q(Kingdom of Sweden),
+      ],
+   q(0213) => [
+      q(Switzerland),
+      q(Swiss Confederation),
+      ],
+   q(0214) => [
+      q(Syrian Arab Republic),
+      q(Syria),
+      q(Golan Heights (Israeli-occupied)),
+      ],
+   q(0215) => [
+      q(Taiwan, Province of China),
+      q(Taiwan),
+      ],
+   q(0216) => [
+      q(Tajikistan),
+      q(Republic of Tajikistan),
+      ],
+   q(0217) => [
+      q(Tanzania, United Republic of),
+      q(United Republic of Tanzania),
+      q(Tanzania),
+      ],
+   q(0218) => [
+      q(Thailand),
+      q(Kingdom of Thailand),
+      ],
+   q(0219) => [
+      q(Timor-Leste),
+      q(East Timor),
+      ],
+   q(0220) => [
+      q(Togo),
+      q(Togolese Republic),
+      ],
+   q(0221) => [
+      q(Tokelau),
+      ],
+   q(0222) => [
+      q(Tonga),
+      q(Kingdom of Tonga),
+      ],
+   q(0223) => [
+      q(Trinidad and Tobago),
+      q(Republic of Trinidad and Tobago),
+      ],
+   q(0224) => [
+      q(Tunisia),
+      q(Republic of Tunisia),
+      ],
+   q(0225) => [
+      q(Turkey),
+      q(Republic of Turkey),
+      ],
+   q(0226) => [
+      q(Turkmenistan),
+      ],
+   q(0227) => [
+      q(Turks and Caicos Islands),
+      ],
+   q(0228) => [
+      q(Tuvalu),
+      ],
+   q(0229) => [
+      q(Uganda),
+      ],
+   q(0230) => [
+      q(Ukraine),
+      ],
+   q(0231) => [
+      q(United Arab Emirates),
+      ],
+   q(0232) => [
+      q(United Kingdom),
+      q(United Kingdom of Great Britain and Northern Ireland),
+      q(Great Britain),
+      q(UK),
+      ],
+   q(0233) => [
+      q(United States),
+      q(United States of America),
+      q(US),
+      q(USA),
+      ],
+   q(0234) => [
+      q(United States Minor Outlying Islands),
+      ],
+   q(0235) => [
+      q(Uruguay),
+      q(Oriental Republic of Uruguay),
+      ],
+   q(0236) => [
+      q(Uzbekistan),
+      q(Republic of Uzbekistan),
+      ],
+   q(0237) => [
+      q(Vanuatu),
+      q(Republic of Vanuatu),
+      ],
+   q(0238) => [
+      q(Venezuela, Bolivarian Republic of),
+      q(Venezuela (Bolivarian Republic of)),
+      q(Venezuela),
+      q(Bolivarian Republic of Venezuela),
+      ],
+   q(0239) => [
+      q(Viet Nam),
+      q(Vietnam),
+      q(Socialist Republic of Vietnam),
+      ],
+   q(0240) => [
+      q(Virgin Islands, British),
+      q(British Virgin Islands),
+      q(Virgin Islands (UK)),
+      ],
+   q(0241) => [
+      q(Virgin Islands, U.S.),
+      q(United States Virgin Islands),
+      q(Virgin Islands),
+      q(Virgin Islands of the United States),
+      q(Virgin Islands (US)),
+      ],
+   q(0242) => [
+      q(Wallis and Futuna),
+      q(Wallis and Futuna Islands),
+      q(Territory of the Wallis and Futuna Islands),
+      ],
+   q(0243) => [
+      q(Western Sahara),
+      ],
+   q(0244) => [
+      q(Yemen),
+      q(Republic of Yemen),
+      ],
+   q(0245) => [
+      q(Zambia),
+      q(Republic of Zambia),
+      ],
+   q(0246) => [
+      q(Zimbabwe),
+      q(Republic of Zimbabwe),
+      ],
+   q(0247) => [
+      q(Channel Islands),
+      ],
+   q(0248) => [
+      q(Serbia and Montenegro),
+      ],
+   q(0249) => [
+      q(Ashmore and Cartier Islands),
+      q(Territory of Ashmore and Cartier Islands),
+      ],
+   q(0250) => [
+      q(Baker Island),
+      ],
+   q(0251) => [
+      q(Bassas da India),
+      ],
+   q(0252) => [
+      q(Clipperton Island),
+      ],
+   q(0253) => [
+      q(Coral Sea Islands),
+      q(Coral Sea Islands Territory),
+      ],
+   q(0254) => [
+      q(Europa Island),
+      ],
+   q(0255) => [
+      q(Gaza Strip),
+      ],
+   q(0256) => [
+      q(Glorioso Islands),
+      ],
+   q(0257) => [
+      q(Howland Island),
+      ],
+   q(0258) => [
+      q(Jan Mayen),
+      ],
+   q(0259) => [
+      q(Jarvis Island),
+      ],
+   q(0260) => [
+      q(Johnston Atoll),
+      ],
+   q(0261) => [
+      q(Juan De Nova Island),
+      ],
+   q(0262) => [
+      q(Kingman Reef),
+      ],
+   q(0263) => [
+      q(Midway Islands),
+      ],
+   q(0264) => [
+      q(Navassa Island),
+      ],
+   q(0265) => [
+      q(Palmyra Atoll),
+      ],
+   q(0266) => [
+      q(Paracel Islands),
+      ],
+   q(0267) => [
+      q(Spratly Islands),
+      ],
+   q(0268) => [
+      q(Svalbard),
+      ],
+   q(0269) => [
+      q(Tromelin Island),
+      ],
+   q(0270) => [
+      q(Wake Atoll),
+      q(Wake Island),
+      ],
+   q(0271) => [
+      q(West Bank),
+      ],
+   q(0272) => [
+      q(Ascension Island),
+      ],
+   q(0273) => [
+      q(European Union),
+      ],
+   q(0274) => [
+      q(Soviet Union ),
+      ],
+   q(0275) => [
+      q(Portuguese Timor ),
+      ],
+   q(0276) => [
+      q(France, Metropolitan),
+      ],
+   q(0277) => [
+      q(Kosovo),
+      ],
+};
+
+$Locale::Codes::Data{'country'}{'alias2id'} = {
+   q(afghanistan) => [
+      q(0001),
+      q(0),
+      ],
+   q(aland islands) => [
+      q(0002),
+      q(0),
+      ],
+   q(albania) => [
+      q(0003),
+      q(0),
+      ],
+   q(algeria) => [
+      q(0004),
+      q(0),
+      ],
+   q(american samoa) => [
+      q(0005),
+      q(0),
+      ],
+   q(andorra) => [
+      q(0006),
+      q(0),
+      ],
+   q(angola) => [
+      q(0007),
+      q(0),
+      ],
+   q(anguilla) => [
+      q(0008),
+      q(0),
+      ],
+   q(antarctica) => [
+      q(0009),
+      q(0),
+      ],
+   q(antigua and barbuda) => [
+      q(0010),
+      q(0),
+      ],
+   q(arab republic of egypt) => [
+      q(0064),
+      q(1),
+      ],
+   q(argentina) => [
+      q(0011),
+      q(0),
+      ],
+   q(argentine republic) => [
+      q(0011),
+      q(1),
+      ],
+   q(armenia) => [
+      q(0012),
+      q(0),
+      ],
+   q(aruba) => [
+      q(0013),
+      q(0),
+      ],
+   q(ascension island) => [
+      q(0272),
+      q(0),
+      ],
+   q(ashmore and cartier islands) => [
+      q(0249),
+      q(0),
+      ],
+   q(australia) => [
+      q(0014),
+      q(0),
+      ],
+   q(austria) => [
+      q(0015),
+      q(0),
+      ],
+   q(azerbaijan) => [
+      q(0016),
+      q(0),
+      ],
+   q(bahamas) => [
+      q(0017),
+      q(0),
+      ],
+   q(bahamas, the) => [
+      q(0017),
+      q(1),
+      ],
+   q(bahrain) => [
+      q(0018),
+      q(0),
+      ],
+   q(bailiwick of guernsey) => [
+      q(0090),
+      q(1),
+      ],
+   q(bailiwick of jersey) => [
+      q(0111),
+      q(1),
+      ],
+   q(baker island) => [
+      q(0250),
+      q(0),
+      ],
+   q(bangladesh) => [
+      q(0019),
+      q(0),
+      ],
+   q(barbados) => [
+      q(0020),
+      q(0),
+      ],
+   q(bassas da india) => [
+      q(0251),
+      q(0),
+      ],
+   q(belarus) => [
+      q(0021),
+      q(0),
+      ],
+   q(belgium) => [
+      q(0022),
+      q(0),
+      ],
+   q(belize) => [
+      q(0023),
+      q(0),
+      ],
+   q(benin) => [
+      q(0024),
+      q(0),
+      ],
+   q(bermuda) => [
+      q(0025),
+      q(0),
+      ],
+   q(bhutan) => [
+      q(0026),
+      q(0),
+      ],
+   q(bolivarian republic of venezuela) => [
+      q(0238),
+      q(3),
+      ],
+   q(bolivia) => [
+      q(0027),
+      q(2),
+      ],
+   q(bolivia (plurinational state of)) => [
+      q(0027),
+      q(1),
+      ],
+   q(bolivia, plurinational state of) => [
+      q(0027),
+      q(0),
+      ],
+   q(bosnia and herzegovina) => [
+      q(0028),
+      q(0),
+      ],
+   q(botswana) => [
+      q(0029),
+      q(0),
+      ],
+   q(bouvet island) => [
+      q(0030),
+      q(0),
+      ],
+   q(brazil) => [
+      q(0031),
+      q(0),
+      ],
+   q(british indian ocean territory) => [
+      q(0032),
+      q(0),
+      ],
+   q(british virgin islands) => [
+      q(0240),
+      q(1),
+      ],
+   q(brunei) => [
+      q(0033),
+      q(1),
+      ],
+   q(brunei darussalam) => [
+      q(0033),
+      q(0),
+      ],
+   q(bulgaria) => [
+      q(0034),
+      q(0),
+      ],
+   q(burkina faso) => [
+      q(0035),
+      q(0),
+      ],
+   q(burma) => [
+      q(0151),
+      q(1),
+      ],
+   q(burundi) => [
+      q(0036),
+      q(0),
+      ],
+   q(cambodia) => [
+      q(0037),
+      q(0),
+      ],
+   q(cameroon) => [
+      q(0038),
+      q(0),
+      ],
+   q(canada) => [
+      q(0039),
+      q(0),
+      ],
+   q(cape verde) => [
+      q(0040),
+      q(0),
+      ],
+   q(cayman islands) => [
+      q(0041),
+      q(0),
+      ],
+   q(central african republic) => [
+      q(0042),
+      q(0),
+      ],
+   q(chad) => [
+      q(0043),
+      q(0),
+      ],
+   q(channel islands) => [
+      q(0247),
+      q(0),
+      ],
+   q(chile) => [
+      q(0044),
+      q(0),
+      ],
+   q(china) => [
+      q(0045),
+      q(0),
+      ],
+   q(china, hong kong special administrative region) => [
+      q(0098),
+      q(1),
+      ],
+   q(china, macao special administrative region) => [
+      q(0129),
+      q(1),
+      ],
+   q(christmas island) => [
+      q(0046),
+      q(0),
+      ],
+   q(clipperton island) => [
+      q(0252),
+      q(0),
+      ],
+   q(co-operative republic of guyana) => [
+      q(0093),
+      q(1),
+      ],
+   q(cocos (keeling) islands) => [
+      q(0047),
+      q(0),
+      ],
+   q(cocos islands) => [
+      q(0047),
+      q(3),
+      ],
+   q(colombia) => [
+      q(0048),
+      q(0),
+      ],
+   q(commonwealth of australia) => [
+      q(0014),
+      q(1),
+      ],
+   q(commonwealth of dominica) => [
+      q(0061),
+      q(1),
+      ],
+   q(commonwealth of puerto rico) => [
+      q(0178),
+      q(1),
+      ],
+   q(commonwealth of the bahamas) => [
+      q(0017),
+      q(2),
+      ],
+   q(commonwealth of the northern mariana islands) => [
+      q(0164),
+      q(1),
+      ],
+   q(comoros) => [
+      q(0049),
+      q(0),
+      ],
+   q(congo) => [
+      q(0050),
+      q(0),
+      ],
+   q(congo (brazzaville)) => [
+      q(0050),
+      q(1),
+      ],
+   q(congo (kinshasa)) => [
+      q(0051),
+      q(2),
+      ],
+   q(congo, democratic republic of the) => [
+      q(0051),
+      q(3),
+      ],
+   q(congo, republic of the) => [
+      q(0050),
+      q(3),
+      ],
+   q(congo, the democratic republic of the) => [
+      q(0051),
+      q(0),
+      ],
+   q(cook islands) => [
+      q(0052),
+      q(0),
+      ],
+   q(coral sea islands) => [
+      q(0253),
+      q(0),
+      ],
+   q(coral sea islands territory) => [
+      q(0253),
+      q(1),
+      ],
+   q(costa rica) => [
+      q(0053),
+      q(0),
+      ],
+   q(cote d'ivoire) => [
+      q(0054),
+      q(0),
+      ],
+   q(croatia) => [
+      q(0055),
+      q(0),
+      ],
+   q(cuba) => [
+      q(0056),
+      q(0),
+      ],
+   q(cyprus) => [
+      q(0057),
+      q(0),
+      ],
+   q(czech republic) => [
+      q(0058),
+      q(0),
+      ],
+   q(democratic people's republic of korea) => [
+      q(0116),
+      q(1),
+      ],
+   q(democratic republic of sao tome and principe) => [
+      q(0193),
+      q(1),
+      ],
+   q(democratic republic of the congo) => [
+      q(0051),
+      q(1),
+      ],
+   q(democratic socialist republic of sri lanka) => [
+      q(0207),
+      q(1),
+      ],
+   q(denmark) => [
+      q(0059),
+      q(0),
+      ],
+   q(department of guadeloupe) => [
+      q(0087),
+      q(1),
+      ],
+   q(department of guiana) => [
+      q(0075),
+      q(1),
+      ],
+   q(department of martinique) => [
+      q(0138),
+      q(1),
+      ],
+   q(department of reunion) => [
+      q(0180),
+      q(1),
+      ],
+   q(djibouti) => [
+      q(0060),
+      q(0),
+      ],
+   q(dominica) => [
+      q(0061),
+      q(0),
+      ],
+   q(dominican republic) => [
+      q(0062),
+      q(0),
+      ],
+   q(east timor) => [
+      q(0219),
+      q(1),
+      ],
+   q(ecuador) => [
+      q(0063),
+      q(0),
+      ],
+   q(egypt) => [
+      q(0064),
+      q(0),
+      ],
+   q(el salvador) => [
+      q(0065),
+      q(0),
+      ],
+   q(equatorial guinea) => [
+      q(0066),
+      q(0),
+      ],
+   q(eritrea) => [
+      q(0067),
+      q(0),
+      ],
+   q(estonia) => [
+      q(0068),
+      q(0),
+      ],
+   q(ethiopia) => [
+      q(0069),
+      q(0),
+      ],
+   q(europa island) => [
+      q(0254),
+      q(0),
+      ],
+   q(european union) => [
+      q(0273),
+      q(0),
+      ],
+   q(faeroe islands) => [
+      q(0071),
+      q(1),
+      ],
+   q(falkland islands (islas malvinas)) => [
+      q(0070),
+      q(1),
+      ],
+   q(falkland islands (malvinas)) => [
+      q(0070),
+      q(0),
+      ],
+   q(faroe islands) => [
+      q(0071),
+      q(0),
+      ],
+   q(federal democratic republic of ethiopia) => [
+      q(0069),
+      q(1),
+      ],
+   q(federal islamic republic of the comoros) => [
+      q(0049),
+      q(1),
+      ],
+   q(federal republic of germany) => [
+      q(0081),
+      q(1),
+      ],
+   q(federal republic of nigeria) => [
+      q(0161),
+      q(1),
+      ],
+   q(federated states of micronesia) => [
+      q(0143),
+      q(2),
+      ],
+   q(federation of saint kitts and nevis) => [
+      q(0186),
+      q(1),
+      ],
+   q(federative republic of brazil) => [
+      q(0031),
+      q(1),
+      ],
+   q(fiji) => [
+      q(0072),
+      q(0),
+      ],
+   q(finland) => [
+      q(0073),
+      q(0),
+      ],
+   q(france) => [
+      q(0074),
+      q(0),
+      ],
+   q(france, metropolitan) => [
+      q(0276),
+      q(0),
+      ],
+   q(french guiana) => [
+      q(0075),
+      q(0),
+      ],
+   q(french polynesia) => [
+      q(0076),
+      q(0),
+      ],
+   q(french republic) => [
+      q(0074),
+      q(1),
+      ],
+   q(french southern and antarctic lands) => [
+      q(0077),
+      q(1),
+      ],
+   q(french southern territories) => [
+      q(0077),
+      q(0),
+      ],
+   q(gabon) => [
+      q(0078),
+      q(0),
+      ],
+   q(gabonese republic) => [
+      q(0078),
+      q(1),
+      ],
+   q(gambia) => [
+      q(0079),
+      q(0),
+      ],
+   q(gambia, the) => [
+      q(0079),
+      q(1),
+      ],
+   q(gaza strip) => [
+      q(0255),
+      q(0),
+      ],
+   q(georgia) => [
+      q(0080),
+      q(0),
+      ],
+   q(germany) => [
+      q(0081),
+      q(0),
+      ],
+   q(ghana) => [
+      q(0082),
+      q(0),
+      ],
+   q(gibraltar) => [
+      q(0083),
+      q(0),
+      ],
+   q(glorioso islands) => [
+      q(0256),
+      q(0),
+      ],
+   q(golan heights (israeli-occupied)) => [
+      q(0214),
+      q(2),
+      ],
+   q(grand duchy of luxembourg) => [
+      q(0128),
+      q(1),
+      ],
+   q(great britain) => [
+      q(0232),
+      q(2),
+      ],
+   q(great socialist people's libyan arab jamahiriya) => [
+      q(0125),
+      q(2),
+      ],
+   q(greece) => [
+      q(0084),
+      q(0),
+      ],
+   q(greenland) => [
+      q(0085),
+      q(0),
+      ],
+   q(grenada) => [
+      q(0086),
+      q(0),
+      ],
+   q(guadeloupe) => [
+      q(0087),
+      q(0),
+      ],
+   q(guam) => [
+      q(0088),
+      q(0),
+      ],
+   q(guatemala) => [
+      q(0089),
+      q(0),
+      ],
+   q(guernsey) => [
+      q(0090),
+      q(0),
+      ],
+   q(guinea) => [
+      q(0091),
+      q(0),
+      ],
+   q(guinea-bissau) => [
+      q(0092),
+      q(0),
+      ],
+   q(guyana) => [
+      q(0093),
+      q(0),
+      ],
+   q(haiti) => [
+      q(0094),
+      q(0),
+      ],
+   q(hashemite kingdom of jordan) => [
+      q(0112),
+      q(1),
+      ],
+   q(heard island and mcdonald islands) => [
+      q(0095),
+      q(0),
+      ],
+   q(hellenic republic) => [
+      q(0084),
+      q(1),
+      ],
+   q(holy see) => [
+      q(0096),
+      q(1),
+      ],
+   q(holy see (vatican city state)) => [
+      q(0096),
+      q(0),
+      ],
+   q(holy see (vatican city)) => [
+      q(0096),
+      q(4),
+      ],
+   q(honduras) => [
+      q(0097),
+      q(0),
+      ],
+   q(hong kong) => [
+      q(0098),
+      q(0),
+      ],
+   q(hong kong s.a.r.) => [
+      q(0098),
+      q(2),
+      ],
+   q(hong kong special administrative region) => [
+      q(0098),
+      q(3),
+      ],
+   q(hong kong special administrative region of china) => [
+      q(0098),
+      q(4),
+      ],
+   q(howland island) => [
+      q(0257),
+      q(0),
+      ],
+   q(hungary) => [
+      q(0099),
+      q(0),
+      ],
+   q(iceland) => [
+      q(0100),
+      q(0),
+      ],
+   q(independent state of papua new guinea) => [
+      q(0171),
+      q(1),
+      ],
+   q(independent state of samoa) => [
+      q(0191),
+      q(1),
+      ],
+   q(india) => [
+      q(0101),
+      q(0),
+      ],
+   q(indonesia) => [
+      q(0102),
+      q(0),
+      ],
+   q(iran) => [
+      q(0103),
+      q(2),
+      ],
+   q(iran (islamic republic of)) => [
+      q(0103),
+      q(1),
+      ],
+   q(iran, islamic republic of) => [
+      q(0103),
+      q(0),
+      ],
+   q(iraq) => [
+      q(0104),
+      q(0),
+      ],
+   q(ireland) => [
+      q(0105),
+      q(0),
+      ],
+   q(islamic republic of iran) => [
+      q(0103),
+      q(3),
+      ],
+   q(islamic republic of mauritania) => [
+      q(0139),
+      q(1),
+      ],
+   q(islamic republic of pakistan) => [
+      q(0167),
+      q(1),
+      ],
+   q(islamic state of afghanistan) => [
+      q(0001),
+      q(1),
+      ],
+   q(isle of man) => [
+      q(0106),
+      q(0),
+      ],
+   q(israel) => [
+      q(0107),
+      q(0),
+      ],
+   q(italian republic) => [
+      q(0108),
+      q(1),
+      ],
+   q(italy) => [
+      q(0108),
+      q(0),
+      ],
+   q(jamaica) => [
+      q(0109),
+      q(0),
+      ],
+   q(jan mayen) => [
+      q(0258),
+      q(0),
+      ],
+   q(japan) => [
+      q(0110),
+      q(0),
+      ],
+   q(jarvis island) => [
+      q(0259),
+      q(0),
+      ],
+   q(jersey) => [
+      q(0111),
+      q(0),
+      ],
+   q(johnston atoll) => [
+      q(0260),
+      q(0),
+      ],
+   q(jordan) => [
+      q(0112),
+      q(0),
+      ],
+   q(juan de nova island) => [
+      q(0261),
+      q(0),
+      ],
+   q(kazakhstan) => [
+      q(0113),
+      q(0),
+      ],
+   q(kazakstan) => [
+      q(0113),
+      q(2),
+      ],
+   q(keeling islands) => [
+      q(0047),
+      q(2),
+      ],
+   q(kenya) => [
+      q(0114),
+      q(0),
+      ],
+   q(kingdom of belgium) => [
+      q(0022),
+      q(1),
+      ],
+   q(kingdom of bhutan) => [
+      q(0026),
+      q(1),
+      ],
+   q(kingdom of cambodia) => [
+      q(0037),
+      q(1),
+      ],
+   q(kingdom of denmark) => [
+      q(0059),
+      q(1),
+      ],
+   q(kingdom of morocco) => [
+      q(0149),
+      q(1),
+      ],
+   q(kingdom of nepal) => [
+      q(0154),
+      q(1),
+      ],
+   q(kingdom of norway) => [
+      q(0165),
+      q(1),
+      ],
+   q(kingdom of saudi arabia) => [
+      q(0194),
+      q(1),
+      ],
+   q(kingdom of spain) => [
+      q(0206),
+      q(1),
+      ],
+   q(kingdom of swaziland) => [
+      q(0211),
+      q(1),
+      ],
+   q(kingdom of sweden) => [
+      q(0212),
+      q(1),
+      ],
+   q(kingdom of thailand) => [
+      q(0218),
+      q(1),
+      ],
+   q(kingdom of the netherlands) => [
+      q(0155),
+      q(1),
+      ],
+   q(kingdom of tonga) => [
+      q(0222),
+      q(1),
+      ],
+   q(kingman reef) => [
+      q(0262),
+      q(0),
+      ],
+   q(kiribati) => [
+      q(0115),
+      q(0),
+      ],
+   q(korea, democratic people's republic of) => [
+      q(0116),
+      q(0),
+      ],
+   q(korea, north) => [
+      q(0116),
+      q(2),
+      ],
+   q(korea, republic of) => [
+      q(0117),
+      q(0),
+      ],
+   q(korea, south) => [
+      q(0117),
+      q(2),
+      ],
+   q(kosovo) => [
+      q(0277),
+      q(0),
+      ],
+   q(kuwait) => [
+      q(0118),
+      q(0),
+      ],
+   q(kyrgyz republic) => [
+      q(0119),
+      q(1),
+      ],
+   q(kyrgyzstan) => [
+      q(0119),
+      q(0),
+      ],
+   q(lao people's democratic republic) => [
+      q(0120),
+      q(0),
+      ],
+   q(laos) => [
+      q(0120),
+      q(1),
+      ],
+   q(latvia) => [
+      q(0121),
+      q(0),
+      ],
+   q(lebanese republic) => [
+      q(0122),
+      q(1),
+      ],
+   q(lebanon) => [
+      q(0122),
+      q(0),
+      ],
+   q(lesotho) => [
+      q(0123),
+      q(0),
+      ],
+   q(liberia) => [
+      q(0124),
+      q(0),
+      ],
+   q(libya) => [
+      q(0125),
+      q(1),
+      ],
+   q(libyan arab jamahiriya) => [
+      q(0125),
+      q(0),
+      ],
+   q(liechtenstein) => [
+      q(0126),
+      q(0),
+      ],
+   q(lithuania) => [
+      q(0127),
+      q(0),
+      ],
+   q(luxembourg) => [
+      q(0128),
+      q(0),
+      ],
+   q(macao) => [
+      q(0129),
+      q(0),
+      ],
+   q(macao special administrative region of china) => [
+      q(0129),
+      q(6),
+      ],
+   q(macau) => [
+      q(0129),
+      q(4),
+      ],
+   q(macau s.a.r) => [
+      q(0129),
+      q(2),
+      ],
+   q(macau s.a.r.) => [
+      q(0129),
+      q(5),
+      ],
+   q(macau special administrative region) => [
+      q(0129),
+      q(3),
+      ],
+   q(macedonia) => [
+      q(0130),
+      q(2),
+      ],
+   q(macedonia, former yugoslav republic of) => [
+      q(0130),
+      q(4),
+      ],
+   q(macedonia, the former yugoslav republic of) => [
+      q(0130),
+      q(0),
+      ],
+   q(madagascar) => [
+      q(0131),
+      q(0),
+      ],
+   q(malawi) => [
+      q(0132),
+      q(0),
+      ],
+   q(malaysia) => [
+      q(0133),
+      q(0),
+      ],
+   q(maldives) => [
+      q(0134),
+      q(0),
+      ],
+   q(mali) => [
+      q(0135),
+      q(0),
+      ],
+   q(malta) => [
+      q(0136),
+      q(0),
+      ],
+   q(marshall islands) => [
+      q(0137),
+      q(0),
+      ],
+   q(martinique) => [
+      q(0138),
+      q(0),
+      ],
+   q(mauritania) => [
+      q(0139),
+      q(0),
+      ],
+   q(mauritius) => [
+      q(0140),
+      q(0),
+      ],
+   q(mayotte) => [
+      q(0141),
+      q(0),
+      ],
+   q(mexico) => [
+      q(0142),
+      q(0),
+      ],
+   q(micronesia (federated states of)) => [
+      q(0143),
+      q(1),
+      ],
+   q(micronesia, federated states of) => [
+      q(0143),
+      q(0),
+      ],
+   q(midway islands) => [
+      q(0263),
+      q(0),
+      ],
+   q(moldova) => [
+      q(0144),
+      q(2),
+      ],
+   q(moldova, republic of) => [
+      q(0144),
+      q(0),
+      ],
+   q(monaco) => [
+      q(0145),
+      q(0),
+      ],
+   q(mongolia) => [
+      q(0146),
+      q(0),
+      ],
+   q(montenegro) => [
+      q(0147),
+      q(0),
+      ],
+   q(montserrat) => [
+      q(0148),
+      q(0),
+      ],
+   q(morocco) => [
+      q(0149),
+      q(0),
+      ],
+   q(mozambique) => [
+      q(0150),
+      q(0),
+      ],
+   q(myanmar) => [
+      q(0151),
+      q(0),
+      ],
+   q(namibia) => [
+      q(0152),
+      q(0),
+      ],
+   q(nauru) => [
+      q(0153),
+      q(0),
+      ],
+   q(navassa island) => [
+      q(0264),
+      q(0),
+      ],
+   q(negara brunei darussalam) => [
+      q(0033),
+      q(2),
+      ],
+   q(nepal) => [
+      q(0154),
+      q(0),
+      ],
+   q(netherlands) => [
+      q(0155),
+      q(0),
+      ],
+   q(netherlands antilles) => [
+      q(0156),
+      q(0),
+      ],
+   q(new caledonia) => [
+      q(0157),
+      q(0),
+      ],
+   q(new zealand) => [
+      q(0158),
+      q(0),
+      ],
+   q(nicaragua) => [
+      q(0159),
+      q(0),
+      ],
+   q(niger) => [
+      q(0160),
+      q(0),
+      ],
+   q(nigeria) => [
+      q(0161),
+      q(0),
+      ],
+   q(niue) => [
+      q(0162),
+      q(0),
+      ],
+   q(norfolk island) => [
+      q(0163),
+      q(0),
+      ],
+   q(north korea) => [
+      q(0116),
+      q(3),
+      ],
+   q(northern mariana islands) => [
+      q(0164),
+      q(0),
+      ],
+   q(norway) => [
+      q(0165),
+      q(0),
+      ],
+   q(occupied palestinian territory) => [
+      q(0169),
+      q(1),
+      ],
+   q(oman) => [
+      q(0166),
+      q(0),
+      ],
+   q(oriental republic of uruguay) => [
+      q(0235),
+      q(1),
+      ],
+   q(pakistan) => [
+      q(0167),
+      q(0),
+      ],
+   q(palau) => [
+      q(0168),
+      q(0),
+      ],
+   q(palestinian territory, occupied) => [
+      q(0169),
+      q(0),
+      ],
+   q(palmyra atoll) => [
+      q(0265),
+      q(0),
+      ],
+   q(panama) => [
+      q(0170),
+      q(0),
+      ],
+   q(papua new guinea) => [
+      q(0171),
+      q(0),
+      ],
+   q(paracel islands) => [
+      q(0266),
+      q(0),
+      ],
+   q(paraguay) => [
+      q(0172),
+      q(0),
+      ],
+   q(people's democratic republic of algeria) => [
+      q(0004),
+      q(1),
+      ],
+   q(people's republic of bangladesh) => [
+      q(0019),
+      q(1),
+      ],
+   q(people's republic of china) => [
+      q(0045),
+      q(1),
+      ],
+   q(peru) => [
+      q(0173),
+      q(0),
+      ],
+   q(philippines) => [
+      q(0174),
+      q(0),
+      ],
+   q(pitcairn) => [
+      q(0175),
+      q(0),
+      ],
+   q(pitcairn island) => [
+      q(0175),
+      q(3),
+      ],
+   q(pitcairn islands) => [
+      q(0175),
+      q(1),
+      ],
+   q(pitcairn, henderson, ducie and oeno islands) => [
+      q(0175),
+      q(2),
+      ],
+   q(poland) => [
+      q(0176),
+      q(0),
+      ],
+   q(portugal) => [
+      q(0177),
+      q(0),
+      ],
+   q(portuguese republic) => [
+      q(0177),
+      q(1),
+      ],
+   q(portuguese timor ) => [
+      q(0275),
+      q(0),
+      ],
+   q(principality of andorra) => [
+      q(0006),
+      q(1),
+      ],
+   q(principality of liechtenstein) => [
+      q(0126),
+      q(1),
+      ],
+   q(principality of monaco) => [
+      q(0145),
+      q(1),
+      ],
+   q(puerto rico) => [
+      q(0178),
+      q(0),
+      ],
+   q(qatar) => [
+      q(0179),
+      q(0),
+      ],
+   q(republic of albania) => [
+      q(0003),
+      q(1),
+      ],
+   q(republic of angola) => [
+      q(0007),
+      q(1),
+      ],
+   q(republic of armenia) => [
+      q(0012),
+      q(1),
+      ],
+   q(republic of austria) => [
+      q(0015),
+      q(1),
+      ],
+   q(republic of azerbaijan) => [
+      q(0016),
+      q(1),
+      ],
+   q(republic of belarus) => [
+      q(0021),
+      q(1),
+      ],
+   q(republic of benin) => [
+      q(0024),
+      q(1),
+      ],
+   q(republic of bolivia) => [
+      q(0027),
+      q(3),
+      ],
+   q(republic of botswana) => [
+      q(0029),
+      q(1),
+      ],
+   q(republic of burundi) => [
+      q(0036),
+      q(1),
+      ],
+   q(republic of cameroon) => [
+      q(0038),
+      q(1),
+      ],
+   q(republic of cape verde) => [
+      q(0040),
+      q(1),
+      ],
+   q(republic of chad) => [
+      q(0043),
+      q(1),
+      ],
+   q(republic of chile) => [
+      q(0044),
+      q(1),
+      ],
+   q(republic of colombia) => [
+      q(0048),
+      q(1),
+      ],
+   q(republic of costa rica) => [
+      q(0053),
+      q(1),
+      ],
+   q(republic of cote d'ivoire) => [
+      q(0054),
+      q(1),
+      ],
+   q(republic of croatia) => [
+      q(0055),
+      q(1),
+      ],
+   q(republic of cuba) => [
+      q(0056),
+      q(1),
+      ],
+   q(republic of cyprus) => [
+      q(0057),
+      q(1),
+      ],
+   q(republic of djibouti) => [
+      q(0060),
+      q(1),
+      ],
+   q(republic of ecuador) => [
+      q(0063),
+      q(1),
+      ],
+   q(republic of el salvador) => [
+      q(0065),
+      q(1),
+      ],
+   q(republic of equatorial guinea) => [
+      q(0066),
+      q(1),
+      ],
+   q(republic of estonia) => [
+      q(0068),
+      q(1),
+      ],
+   q(republic of finland) => [
+      q(0073),
+      q(1),
+      ],
+   q(republic of ghana) => [
+      q(0082),
+      q(1),
+      ],
+   q(republic of guatemala) => [
+      q(0089),
+      q(1),
+      ],
+   q(republic of guinea) => [
+      q(0091),
+      q(1),
+      ],
+   q(republic of guinea-bissau) => [
+      q(0092),
+      q(1),
+      ],
+   q(republic of haiti) => [
+      q(0094),
+      q(1),
+      ],
+   q(republic of honduras) => [
+      q(0097),
+      q(1),
+      ],
+   q(republic of hungary) => [
+      q(0099),
+      q(1),
+      ],
+   q(republic of iceland) => [
+      q(0100),
+      q(1),
+      ],
+   q(republic of india) => [
+      q(0101),
+      q(1),
+      ],
+   q(republic of indonesia) => [
+      q(0102),
+      q(1),
+      ],
+   q(republic of iraq) => [
+      q(0104),
+      q(1),
+      ],
+   q(republic of kazakhstan) => [
+      q(0113),
+      q(1),
+      ],
+   q(republic of kenya) => [
+      q(0114),
+      q(1),
+      ],
+   q(republic of kiribati) => [
+      q(0115),
+      q(1),
+      ],
+   q(republic of korea) => [
+      q(0117),
+      q(1),
+      ],
+   q(republic of latvia) => [
+      q(0121),
+      q(1),
+      ],
+   q(republic of lesotho) => [
+      q(0123),
+      q(1),
+      ],
+   q(republic of liberia) => [
+      q(0124),
+      q(1),
+      ],
+   q(republic of lithuania) => [
+      q(0127),
+      q(1),
+      ],
+   q(republic of macedonia) => [
+      q(0130),
+      q(3),
+      ],
+   q(republic of madagascar) => [
+      q(0131),
+      q(1),
+      ],
+   q(republic of malawi) => [
+      q(0132),
+      q(1),
+      ],
+   q(republic of maldives) => [
+      q(0134),
+      q(1),
+      ],
+   q(republic of mali) => [
+      q(0135),
+      q(1),
+      ],
+   q(republic of malta) => [
+      q(0136),
+      q(1),
+      ],
+   q(republic of mauritius) => [
+      q(0140),
+      q(1),
+      ],
+   q(republic of moldova) => [
+      q(0144),
+      q(1),
+      ],
+   q(republic of mozambique) => [
+      q(0150),
+      q(1),
+      ],
+   q(republic of namibia) => [
+      q(0152),
+      q(1),
+      ],
+   q(republic of nauru) => [
+      q(0153),
+      q(1),
+      ],
+   q(republic of nicaragua) => [
+      q(0159),
+      q(1),
+      ],
+   q(republic of niger) => [
+      q(0160),
+      q(1),
+      ],
+   q(republic of palau) => [
+      q(0168),
+      q(1),
+      ],
+   q(republic of panama) => [
+      q(0170),
+      q(1),
+      ],
+   q(republic of paraguay) => [
+      q(0172),
+      q(1),
+      ],
+   q(republic of peru) => [
+      q(0173),
+      q(1),
+      ],
+   q(republic of poland) => [
+      q(0176),
+      q(1),
+      ],
+   q(republic of san marino) => [
+      q(0192),
+      q(1),
+      ],
+   q(republic of senegal) => [
+      q(0195),
+      q(1),
+      ],
+   q(republic of seychelles) => [
+      q(0197),
+      q(1),
+      ],
+   q(republic of sierra leone) => [
+      q(0198),
+      q(1),
+      ],
+   q(republic of singapore) => [
+      q(0199),
+      q(1),
+      ],
+   q(republic of slovenia) => [
+      q(0201),
+      q(1),
+      ],
+   q(republic of south africa) => [
+      q(0204),
+      q(1),
+      ],
+   q(republic of suriname) => [
+      q(0209),
+      q(1),
+      ],
+   q(republic of tajikistan) => [
+      q(0216),
+      q(1),
+      ],
+   q(republic of the congo) => [
+      q(0050),
+      q(2),
+      ],
+   q(republic of the fiji islands) => [
+      q(0072),
+      q(1),
+      ],
+   q(republic of the gambia) => [
+      q(0079),
+      q(2),
+      ],
+   q(republic of the marshall islands) => [
+      q(0137),
+      q(1),
+      ],
+   q(republic of the philippines) => [
+      q(0174),
+      q(1),
+      ],
+   q(republic of the sudan) => [
+      q(0208),
+      q(1),
+      ],
+   q(republic of trinidad and tobago) => [
+      q(0223),
+      q(1),
+      ],
+   q(republic of tunisia) => [
+      q(0224),
+      q(1),
+      ],
+   q(republic of turkey) => [
+      q(0225),
+      q(1),
+      ],
+   q(republic of uzbekistan) => [
+      q(0236),
+      q(1),
+      ],
+   q(republic of vanuatu) => [
+      q(0237),
+      q(1),
+      ],
+   q(republic of yemen) => [
+      q(0244),
+      q(1),
+      ],
+   q(republic of zambia) => [
+      q(0245),
+      q(1),
+      ],
+   q(republic of zimbabwe) => [
+      q(0246),
+      q(1),
+      ],
+   q(reunion) => [
+      q(0180),
+      q(0),
+      ],
+   q(romania) => [
+      q(0181),
+      q(0),
+      ],
+   q(russia) => [
+      q(0182),
+      q(1),
+      ],
+   q(russian federation) => [
+      q(0182),
+      q(0),
+      ],
+   q(rwanda) => [
+      q(0183),
+      q(0),
+      ],
+   q(rwandese republic) => [
+      q(0183),
+      q(1),
+      ],
+   q(saint barthelemy) => [
+      q(0184),
+      q(0),
+      ],
+   q(saint helena) => [
+      q(0185),
+      q(1),
+      ],
+   q(saint helena, ascension and tristan da cunha) => [
+      q(0185),
+      q(0),
+      ],
+   q(saint kitts and nevis) => [
+      q(0186),
+      q(0),
+      ],
+   q(saint lucia) => [
+      q(0187),
+      q(0),
+      ],
+   q(saint martin) => [
+      q(0188),
+      q(0),
+      ],
+   q(saint pierre and miquelon) => [
+      q(0189),
+      q(0),
+      ],
+   q(saint vincent and the grenadines) => [
+      q(0190),
+      q(0),
+      ],
+   q(saint-barthelemy) => [
+      q(0184),
+      q(1),
+      ],
+   q(saint-martin (french part)) => [
+      q(0188),
+      q(1),
+      ],
+   q(samoa) => [
+      q(0191),
+      q(0),
+      ],
+   q(san marino) => [
+      q(0192),
+      q(0),
+      ],
+   q(sao tome and principe) => [
+      q(0193),
+      q(0),
+      ],
+   q(saudi arabia) => [
+      q(0194),
+      q(0),
+      ],
+   q(senegal) => [
+      q(0195),
+      q(0),
+      ],
+   q(serbia) => [
+      q(0196),
+      q(0),
+      ],
+   q(serbia and montenegro) => [
+      q(0248),
+      q(0),
+      ],
+   q(seychelles) => [
+      q(0197),
+      q(0),
+      ],
+   q(sierra leone) => [
+      q(0198),
+      q(0),
+      ],
+   q(singapore) => [
+      q(0199),
+      q(0),
+      ],
+   q(slovak republic) => [
+      q(0200),
+      q(1),
+      ],
+   q(slovakia) => [
+      q(0200),
+      q(0),
+      ],
+   q(slovenia) => [
+      q(0201),
+      q(0),
+      ],
+   q(socialist republic of vietnam) => [
+      q(0239),
+      q(2),
+      ],
+   q(solomon islands) => [
+      q(0202),
+      q(0),
+      ],
+   q(somalia) => [
+      q(0203),
+      q(0),
+      ],
+   q(south africa) => [
+      q(0204),
+      q(0),
+      ],
+   q(south georgia and the islands) => [
+      q(0205),
+      q(1),
+      ],
+   q(south georgia and the south sandwich islands) => [
+      q(0205),
+      q(0),
+      ],
+   q(south korea) => [
+      q(0117),
+      q(3),
+      ],
+   q(soviet union ) => [
+      q(0274),
+      q(0),
+      ],
+   q(spain) => [
+      q(0206),
+      q(0),
+      ],
+   q(spratly islands) => [
+      q(0267),
+      q(0),
+      ],
+   q(sri lanka) => [
+      q(0207),
+      q(0),
+      ],
+   q(state of bahrain) => [
+      q(0018),
+      q(1),
+      ],
+   q(state of eritrea) => [
+      q(0067),
+      q(1),
+      ],
+   q(state of israel) => [
+      q(0107),
+      q(1),
+      ],
+   q(state of kuwait) => [
+      q(0118),
+      q(1),
+      ],
+   q(state of qatar) => [
+      q(0179),
+      q(1),
+      ],
+   q(state of the vatican city) => [
+      q(0096),
+      q(3),
+      ],
+   q(sudan) => [
+      q(0208),
+      q(0),
+      ],
+   q(sultanate of oman) => [
+      q(0166),
+      q(1),
+      ],
+   q(suriname) => [
+      q(0209),
+      q(0),
+      ],
+   q(svalbard) => [
+      q(0268),
+      q(0),
+      ],
+   q(svalbard and jan mayen) => [
+      q(0210),
+      q(0),
+      ],
+   q(svalbard and jan mayen islands) => [
+      q(0210),
+      q(1),
+      ],
+   q(swaziland) => [
+      q(0211),
+      q(0),
+      ],
+   q(sweden) => [
+      q(0212),
+      q(0),
+      ],
+   q(swiss confederation) => [
+      q(0213),
+      q(1),
+      ],
+   q(switzerland) => [
+      q(0213),
+      q(0),
+      ],
+   q(syria) => [
+      q(0214),
+      q(1),
+      ],
+   q(syrian arab republic) => [
+      q(0214),
+      q(0),
+      ],
+   q(taiwan) => [
+      q(0215),
+      q(1),
+      ],
+   q(taiwan, province of china) => [
+      q(0215),
+      q(0),
+      ],
+   q(tajikistan) => [
+      q(0216),
+      q(0),
+      ],
+   q(tanzania) => [
+      q(0217),
+      q(2),
+      ],
+   q(tanzania, united republic of) => [
+      q(0217),
+      q(0),
+      ],
+   q(territorial collectivity of mayotte) => [
+      q(0141),
+      q(1),
+      ],
+   q(territorial collectivity of saint pierre and miquelon) => [
+      q(0189),
+      q(1),
+      ],
+   q(territory of american samoa) => [
+      q(0005),
+      q(1),
+      ],
+   q(territory of ashmore and cartier islands) => [
+      q(0249),
+      q(1),
+      ],
+   q(territory of christmas island) => [
+      q(0046),
+      q(1),
+      ],
+   q(territory of cocos (keeling) islands) => [
+      q(0047),
+      q(1),
+      ],
+   q(territory of french polynesia) => [
+      q(0076),
+      q(1),
+      ],
+   q(territory of guam) => [
+      q(0088),
+      q(1),
+      ],
+   q(territory of heard island and mcdonald islands) => [
+      q(0095),
+      q(1),
+      ],
+   q(territory of new caledonia and dependencies) => [
+      q(0157),
+      q(1),
+      ],
+   q(territory of norfolk island) => [
+      q(0163),
+      q(1),
+      ],
+   q(territory of the french southern and antarctic lands) => [
+      q(0077),
+      q(2),
+      ],
+   q(territory of the wallis and futuna islands) => [
+      q(0242),
+      q(2),
+      ],
+   q(thailand) => [
+      q(0218),
+      q(0),
+      ],
+   q(the bahamas) => [
+      q(0017),
+      q(3),
+      ],
+   q(the democratic republic of the congo) => [
+      q(0051),
+      q(4),
+      ],
+   q(the former yugoslav republic of macedonia) => [
+      q(0130),
+      q(1),
+      ],
+   q(the republic of the congo) => [
+      q(0050),
+      q(4),
+      ],
+   q(timor-leste) => [
+      q(0219),
+      q(0),
+      ],
+   q(togo) => [
+      q(0220),
+      q(0),
+      ],
+   q(togolese republic) => [
+      q(0220),
+      q(1),
+      ],
+   q(tokelau) => [
+      q(0221),
+      q(0),
+      ],
+   q(tonga) => [
+      q(0222),
+      q(0),
+      ],
+   q(trinidad and tobago) => [
+      q(0223),
+      q(0),
+      ],
+   q(tromelin island) => [
+      q(0269),
+      q(0),
+      ],
+   q(tunisia) => [
+      q(0224),
+      q(0),
+      ],
+   q(turkey) => [
+      q(0225),
+      q(0),
+      ],
+   q(turkmenistan) => [
+      q(0226),
+      q(0),
+      ],
+   q(turks and caicos islands) => [
+      q(0227),
+      q(0),
+      ],
+   q(tuvalu) => [
+      q(0228),
+      q(0),
+      ],
+   q(uganda) => [
+      q(0229),
+      q(0),
+      ],
+   q(uk) => [
+      q(0232),
+      q(3),
+      ],
+   q(ukraine) => [
+      q(0230),
+      q(0),
+      ],
+   q(union of burma) => [
+      q(0151),
+      q(2),
+      ],
+   q(united arab emirates) => [
+      q(0231),
+      q(0),
+      ],
+   q(united kingdom) => [
+      q(0232),
+      q(0),
+      ],
+   q(united kingdom of great britain and northern ireland) => [
+      q(0232),
+      q(1),
+      ],
+   q(united mexican states) => [
+      q(0142),
+      q(1),
+      ],
+   q(united republic of tanzania) => [
+      q(0217),
+      q(1),
+      ],
+   q(united states) => [
+      q(0233),
+      q(0),
+      ],
+   q(united states minor outlying islands) => [
+      q(0234),
+      q(0),
+      ],
+   q(united states of america) => [
+      q(0233),
+      q(1),
+      ],
+   q(united states virgin islands) => [
+      q(0241),
+      q(1),
+      ],
+   q(uruguay) => [
+      q(0235),
+      q(0),
+      ],
+   q(us) => [
+      q(0233),
+      q(2),
+      ],
+   q(usa) => [
+      q(0233),
+      q(3),
+      ],
+   q(uzbekistan) => [
+      q(0236),
+      q(0),
+      ],
+   q(vanuatu) => [
+      q(0237),
+      q(0),
+      ],
+   q(vatican city) => [
+      q(0096),
+      q(2),
+      ],
+   q(venezuela) => [
+      q(0238),
+      q(2),
+      ],
+   q(venezuela (bolivarian republic of)) => [
+      q(0238),
+      q(1),
+      ],
+   q(venezuela, bolivarian republic of) => [
+      q(0238),
+      q(0),
+      ],
+   q(viet nam) => [
+      q(0239),
+      q(0),
+      ],
+   q(vietnam) => [
+      q(0239),
+      q(1),
+      ],
+   q(virgin islands) => [
+      q(0241),
+      q(2),
+      ],
+   q(virgin islands (uk)) => [
+      q(0240),
+      q(2),
+      ],
+   q(virgin islands (us)) => [
+      q(0241),
+      q(4),
+      ],
+   q(virgin islands of the united states) => [
+      q(0241),
+      q(3),
+      ],
+   q(virgin islands, british) => [
+      q(0240),
+      q(0),
+      ],
+   q(virgin islands, u.s.) => [
+      q(0241),
+      q(0),
+      ],
+   q(wake atoll) => [
+      q(0270),
+      q(0),
+      ],
+   q(wake island) => [
+      q(0270),
+      q(1),
+      ],
+   q(wallis and futuna) => [
+      q(0242),
+      q(0),
+      ],
+   q(wallis and futuna islands) => [
+      q(0242),
+      q(1),
+      ],
+   q(west bank) => [
+      q(0271),
+      q(0),
+      ],
+   q(western sahara) => [
+      q(0243),
+      q(0),
+      ],
+   q(yemen) => [
+      q(0244),
+      q(0),
+      ],
+   q(zambia) => [
+      q(0245),
+      q(0),
+      ],
+   q(zimbabwe) => [
+      q(0246),
+      q(0),
+      ],
+};
+
+$Locale::Codes::Data{'country'}{'code2id'} = {
+   q(alpha2) => {
+      q(ad) => [
+         q(0006),
+         q(0),
+         ],
+      q(ae) => [
+         q(0231),
+         q(0),
+         ],
+      q(af) => [
+         q(0001),
+         q(0),
+         ],
+      q(ag) => [
+         q(0010),
+         q(0),
+         ],
+      q(ai) => [
+         q(0008),
+         q(0),
+         ],
+      q(al) => [
+         q(0003),
+         q(0),
+         ],
+      q(am) => [
+         q(0012),
+         q(0),
+         ],
+      q(an) => [
+         q(0156),
+         q(0),
+         ],
+      q(ao) => [
+         q(0007),
+         q(0),
+         ],
+      q(aq) => [
+         q(0009),
+         q(0),
+         ],
+      q(ar) => [
+         q(0011),
+         q(0),
+         ],
+      q(as) => [
+         q(0005),
+         q(0),
+         ],
+      q(at) => [
+         q(0015),
+         q(0),
+         ],
+      q(au) => [
+         q(0014),
+         q(0),
+         ],
+      q(aw) => [
+         q(0013),
+         q(0),
+         ],
+      q(ax) => [
+         q(0002),
+         q(0),
+         ],
+      q(az) => [
+         q(0016),
+         q(0),
+         ],
+      q(ba) => [
+         q(0028),
+         q(0),
+         ],
+      q(bb) => [
+         q(0020),
+         q(0),
+         ],
+      q(bd) => [
+         q(0019),
+         q(0),
+         ],
+      q(be) => [
+         q(0022),
+         q(0),
+         ],
+      q(bf) => [
+         q(0035),
+         q(0),
+         ],
+      q(bg) => [
+         q(0034),
+         q(0),
+         ],
+      q(bh) => [
+         q(0018),
+         q(0),
+         ],
+      q(bi) => [
+         q(0036),
+         q(0),
+         ],
+      q(bj) => [
+         q(0024),
+         q(0),
+         ],
+      q(bl) => [
+         q(0184),
+         q(0),
+         ],
+      q(bm) => [
+         q(0025),
+         q(0),
+         ],
+      q(bn) => [
+         q(0033),
+         q(0),
+         ],
+      q(bo) => [
+         q(0027),
+         q(0),
+         ],
+      q(br) => [
+         q(0031),
+         q(0),
+         ],
+      q(bs) => [
+         q(0017),
+         q(0),
+         ],
+      q(bt) => [
+         q(0026),
+         q(0),
+         ],
+      q(bv) => [
+         q(0030),
+         q(0),
+         ],
+      q(bw) => [
+         q(0029),
+         q(0),
+         ],
+      q(by) => [
+         q(0021),
+         q(0),
+         ],
+      q(bz) => [
+         q(0023),
+         q(0),
+         ],
+      q(ca) => [
+         q(0039),
+         q(0),
+         ],
+      q(cc) => [
+         q(0047),
+         q(0),
+         ],
+      q(cd) => [
+         q(0051),
+         q(0),
+         ],
+      q(cf) => [
+         q(0042),
+         q(0),
+         ],
+      q(cg) => [
+         q(0050),
+         q(0),
+         ],
+      q(ch) => [
+         q(0213),
+         q(0),
+         ],
+      q(ci) => [
+         q(0054),
+         q(0),
+         ],
+      q(ck) => [
+         q(0052),
+         q(0),
+         ],
+      q(cl) => [
+         q(0044),
+         q(0),
+         ],
+      q(cm) => [
+         q(0038),
+         q(0),
+         ],
+      q(cn) => [
+         q(0045),
+         q(0),
+         ],
+      q(co) => [
+         q(0048),
+         q(0),
+         ],
+      q(cr) => [
+         q(0053),
+         q(0),
+         ],
+      q(cu) => [
+         q(0056),
+         q(0),
+         ],
+      q(cv) => [
+         q(0040),
+         q(0),
+         ],
+      q(cx) => [
+         q(0046),
+         q(0),
+         ],
+      q(cy) => [
+         q(0057),
+         q(0),
+         ],
+      q(cz) => [
+         q(0058),
+         q(0),
+         ],
+      q(de) => [
+         q(0081),
+         q(0),
+         ],
+      q(dj) => [
+         q(0060),
+         q(0),
+         ],
+      q(dk) => [
+         q(0059),
+         q(0),
+         ],
+      q(dm) => [
+         q(0061),
+         q(0),
+         ],
+      q(do) => [
+         q(0062),
+         q(0),
+         ],
+      q(dz) => [
+         q(0004),
+         q(0),
+         ],
+      q(ec) => [
+         q(0063),
+         q(0),
+         ],
+      q(ee) => [
+         q(0068),
+         q(0),
+         ],
+      q(eg) => [
+         q(0064),
+         q(0),
+         ],
+      q(eh) => [
+         q(0243),
+         q(0),
+         ],
+      q(er) => [
+         q(0067),
+         q(0),
+         ],
+      q(es) => [
+         q(0206),
+         q(0),
+         ],
+      q(et) => [
+         q(0069),
+         q(0),
+         ],
+      q(fi) => [
+         q(0073),
+         q(0),
+         ],
+      q(fj) => [
+         q(0072),
+         q(0),
+         ],
+      q(fk) => [
+         q(0070),
+         q(0),
+         ],
+      q(fm) => [
+         q(0143),
+         q(0),
+         ],
+      q(fo) => [
+         q(0071),
+         q(0),
+         ],
+      q(fr) => [
+         q(0074),
+         q(0),
+         ],
+      q(fx) => [
+         q(0276),
+         q(0),
+         ],
+      q(ga) => [
+         q(0078),
+         q(0),
+         ],
+      q(gb) => [
+         q(0232),
+         q(0),
+         ],
+      q(gd) => [
+         q(0086),
+         q(0),
+         ],
+      q(ge) => [
+         q(0080),
+         q(0),
+         ],
+      q(gf) => [
+         q(0075),
+         q(0),
+         ],
+      q(gg) => [
+         q(0090),
+         q(0),
+         ],
+      q(gh) => [
+         q(0082),
+         q(0),
+         ],
+      q(gi) => [
+         q(0083),
+         q(0),
+         ],
+      q(gl) => [
+         q(0085),
+         q(0),
+         ],
+      q(gm) => [
+         q(0079),
+         q(0),
+         ],
+      q(gn) => [
+         q(0091),
+         q(0),
+         ],
+      q(gp) => [
+         q(0087),
+         q(0),
+         ],
+      q(gq) => [
+         q(0066),
+         q(0),
+         ],
+      q(gr) => [
+         q(0084),
+         q(0),
+         ],
+      q(gs) => [
+         q(0205),
+         q(0),
+         ],
+      q(gt) => [
+         q(0089),
+         q(0),
+         ],
+      q(gu) => [
+         q(0088),
+         q(0),
+         ],
+      q(gw) => [
+         q(0092),
+         q(0),
+         ],
+      q(gy) => [
+         q(0093),
+         q(0),
+         ],
+      q(hk) => [
+         q(0098),
+         q(0),
+         ],
+      q(hm) => [
+         q(0095),
+         q(0),
+         ],
+      q(hn) => [
+         q(0097),
+         q(0),
+         ],
+      q(hr) => [
+         q(0055),
+         q(0),
+         ],
+      q(ht) => [
+         q(0094),
+         q(0),
+         ],
+      q(hu) => [
+         q(0099),
+         q(0),
+         ],
+      q(id) => [
+         q(0102),
+         q(0),
+         ],
+      q(ie) => [
+         q(0105),
+         q(0),
+         ],
+      q(il) => [
+         q(0107),
+         q(0),
+         ],
+      q(im) => [
+         q(0106),
+         q(0),
+         ],
+      q(in) => [
+         q(0101),
+         q(0),
+         ],
+      q(io) => [
+         q(0032),
+         q(0),
+         ],
+      q(iq) => [
+         q(0104),
+         q(0),
+         ],
+      q(ir) => [
+         q(0103),
+         q(0),
+         ],
+      q(is) => [
+         q(0100),
+         q(0),
+         ],
+      q(it) => [
+         q(0108),
+         q(0),
+         ],
+      q(je) => [
+         q(0111),
+         q(0),
+         ],
+      q(jm) => [
+         q(0109),
+         q(0),
+         ],
+      q(jo) => [
+         q(0112),
+         q(0),
+         ],
+      q(jp) => [
+         q(0110),
+         q(0),
+         ],
+      q(ke) => [
+         q(0114),
+         q(0),
+         ],
+      q(kg) => [
+         q(0119),
+         q(0),
+         ],
+      q(kh) => [
+         q(0037),
+         q(0),
+         ],
+      q(ki) => [
+         q(0115),
+         q(0),
+         ],
+      q(km) => [
+         q(0049),
+         q(0),
+         ],
+      q(kn) => [
+         q(0186),
+         q(0),
+         ],
+      q(kp) => [
+         q(0116),
+         q(0),
+         ],
+      q(kr) => [
+         q(0117),
+         q(0),
+         ],
+      q(kw) => [
+         q(0118),
+         q(0),
+         ],
+      q(ky) => [
+         q(0041),
+         q(0),
+         ],
+      q(kz) => [
+         q(0113),
+         q(0),
+         ],
+      q(la) => [
+         q(0120),
+         q(0),
+         ],
+      q(lb) => [
+         q(0122),
+         q(0),
+         ],
+      q(lc) => [
+         q(0187),
+         q(0),
+         ],
+      q(li) => [
+         q(0126),
+         q(0),
+         ],
+      q(lk) => [
+         q(0207),
+         q(0),
+         ],
+      q(lr) => [
+         q(0124),
+         q(0),
+         ],
+      q(ls) => [
+         q(0123),
+         q(0),
+         ],
+      q(lt) => [
+         q(0127),
+         q(0),
+         ],
+      q(lu) => [
+         q(0128),
+         q(0),
+         ],
+      q(lv) => [
+         q(0121),
+         q(0),
+         ],
+      q(ly) => [
+         q(0125),
+         q(0),
+         ],
+      q(ma) => [
+         q(0149),
+         q(0),
+         ],
+      q(mc) => [
+         q(0145),
+         q(0),
+         ],
+      q(md) => [
+         q(0144),
+         q(0),
+         ],
+      q(me) => [
+         q(0147),
+         q(0),
+         ],
+      q(mf) => [
+         q(0188),
+         q(0),
+         ],
+      q(mg) => [
+         q(0131),
+         q(0),
+         ],
+      q(mh) => [
+         q(0137),
+         q(0),
+         ],
+      q(mk) => [
+         q(0130),
+         q(0),
+         ],
+      q(ml) => [
+         q(0135),
+         q(0),
+         ],
+      q(mm) => [
+         q(0151),
+         q(0),
+         ],
+      q(mn) => [
+         q(0146),
+         q(0),
+         ],
+      q(mo) => [
+         q(0129),
+         q(0),
+         ],
+      q(mp) => [
+         q(0164),
+         q(0),
+         ],
+      q(mq) => [
+         q(0138),
+         q(0),
+         ],
+      q(mr) => [
+         q(0139),
+         q(0),
+         ],
+      q(ms) => [
+         q(0148),
+         q(0),
+         ],
+      q(mt) => [
+         q(0136),
+         q(0),
+         ],
+      q(mu) => [
+         q(0140),
+         q(0),
+         ],
+      q(mv) => [
+         q(0134),
+         q(0),
+         ],
+      q(mw) => [
+         q(0132),
+         q(0),
+         ],
+      q(mx) => [
+         q(0142),
+         q(0),
+         ],
+      q(my) => [
+         q(0133),
+         q(0),
+         ],
+      q(mz) => [
+         q(0150),
+         q(0),
+         ],
+      q(na) => [
+         q(0152),
+         q(0),
+         ],
+      q(nc) => [
+         q(0157),
+         q(0),
+         ],
+      q(ne) => [
+         q(0160),
+         q(0),
+         ],
+      q(nf) => [
+         q(0163),
+         q(0),
+         ],
+      q(ng) => [
+         q(0161),
+         q(0),
+         ],
+      q(ni) => [
+         q(0159),
+         q(0),
+         ],
+      q(nl) => [
+         q(0155),
+         q(0),
+         ],
+      q(no) => [
+         q(0165),
+         q(0),
+         ],
+      q(np) => [
+         q(0154),
+         q(0),
+         ],
+      q(nr) => [
+         q(0153),
+         q(0),
+         ],
+      q(nu) => [
+         q(0162),
+         q(0),
+         ],
+      q(nz) => [
+         q(0158),
+         q(0),
+         ],
+      q(om) => [
+         q(0166),
+         q(0),
+         ],
+      q(pa) => [
+         q(0170),
+         q(0),
+         ],
+      q(pe) => [
+         q(0173),
+         q(0),
+         ],
+      q(pf) => [
+         q(0076),
+         q(0),
+         ],
+      q(pg) => [
+         q(0171),
+         q(0),
+         ],
+      q(ph) => [
+         q(0174),
+         q(0),
+         ],
+      q(pk) => [
+         q(0167),
+         q(0),
+         ],
+      q(pl) => [
+         q(0176),
+         q(0),
+         ],
+      q(pm) => [
+         q(0189),
+         q(0),
+         ],
+      q(pn) => [
+         q(0175),
+         q(0),
+         ],
+      q(pr) => [
+         q(0178),
+         q(0),
+         ],
+      q(ps) => [
+         q(0169),
+         q(0),
+         ],
+      q(pt) => [
+         q(0177),
+         q(0),
+         ],
+      q(pw) => [
+         q(0168),
+         q(0),
+         ],
+      q(py) => [
+         q(0172),
+         q(0),
+         ],
+      q(qa) => [
+         q(0179),
+         q(0),
+         ],
+      q(re) => [
+         q(0180),
+         q(0),
+         ],
+      q(ro) => [
+         q(0181),
+         q(0),
+         ],
+      q(rs) => [
+         q(0196),
+         q(0),
+         ],
+      q(ru) => [
+         q(0182),
+         q(0),
+         ],
+      q(rw) => [
+         q(0183),
+         q(0),
+         ],
+      q(sa) => [
+         q(0194),
+         q(0),
+         ],
+      q(sb) => [
+         q(0202),
+         q(0),
+         ],
+      q(sc) => [
+         q(0197),
+         q(0),
+         ],
+      q(sd) => [
+         q(0208),
+         q(0),
+         ],
+      q(se) => [
+         q(0212),
+         q(0),
+         ],
+      q(sg) => [
+         q(0199),
+         q(0),
+         ],
+      q(sh) => [
+         q(0185),
+         q(0),
+         ],
+      q(si) => [
+         q(0201),
+         q(0),
+         ],
+      q(sj) => [
+         q(0210),
+         q(0),
+         ],
+      q(sk) => [
+         q(0200),
+         q(0),
+         ],
+      q(sl) => [
+         q(0198),
+         q(0),
+         ],
+      q(sm) => [
+         q(0192),
+         q(0),
+         ],
+      q(sn) => [
+         q(0195),
+         q(0),
+         ],
+      q(so) => [
+         q(0203),
+         q(0),
+         ],
+      q(sr) => [
+         q(0209),
+         q(0),
+         ],
+      q(st) => [
+         q(0193),
+         q(0),
+         ],
+      q(sv) => [
+         q(0065),
+         q(0),
+         ],
+      q(sy) => [
+         q(0214),
+         q(0),
+         ],
+      q(sz) => [
+         q(0211),
+         q(0),
+         ],
+      q(tc) => [
+         q(0227),
+         q(0),
+         ],
+      q(td) => [
+         q(0043),
+         q(0),
+         ],
+      q(tf) => [
+         q(0077),
+         q(0),
+         ],
+      q(tg) => [
+         q(0220),
+         q(0),
+         ],
+      q(th) => [
+         q(0218),
+         q(0),
+         ],
+      q(tj) => [
+         q(0216),
+         q(0),
+         ],
+      q(tk) => [
+         q(0221),
+         q(0),
+         ],
+      q(tl) => [
+         q(0219),
+         q(0),
+         ],
+      q(tm) => [
+         q(0226),
+         q(0),
+         ],
+      q(tn) => [
+         q(0224),
+         q(0),
+         ],
+      q(to) => [
+         q(0222),
+         q(0),
+         ],
+      q(tr) => [
+         q(0225),
+         q(0),
+         ],
+      q(tt) => [
+         q(0223),
+         q(0),
+         ],
+      q(tv) => [
+         q(0228),
+         q(0),
+         ],
+      q(tw) => [
+         q(0215),
+         q(0),
+         ],
+      q(tz) => [
+         q(0217),
+         q(0),
+         ],
+      q(ua) => [
+         q(0230),
+         q(0),
+         ],
+      q(ug) => [
+         q(0229),
+         q(0),
+         ],
+      q(um) => [
+         q(0234),
+         q(0),
+         ],
+      q(us) => [
+         q(0233),
+         q(0),
+         ],
+      q(uy) => [
+         q(0235),
+         q(0),
+         ],
+      q(uz) => [
+         q(0236),
+         q(0),
+         ],
+      q(va) => [
+         q(0096),
+         q(0),
+         ],
+      q(vc) => [
+         q(0190),
+         q(0),
+         ],
+      q(ve) => [
+         q(0238),
+         q(0),
+         ],
+      q(vg) => [
+         q(0240),
+         q(0),
+         ],
+      q(vi) => [
+         q(0241),
+         q(0),
+         ],
+      q(vn) => [
+         q(0239),
+         q(0),
+         ],
+      q(vu) => [
+         q(0237),
+         q(0),
+         ],
+      q(wf) => [
+         q(0242),
+         q(0),
+         ],
+      q(ws) => [
+         q(0191),
+         q(0),
+         ],
+      q(ye) => [
+         q(0244),
+         q(0),
+         ],
+      q(yt) => [
+         q(0141),
+         q(0),
+         ],
+      q(za) => [
+         q(0204),
+         q(0),
+         ],
+      q(zm) => [
+         q(0245),
+         q(0),
+         ],
+      q(zw) => [
+         q(0246),
+         q(0),
+         ],
+      },
+   q(alpha3) => {
+      q(abw) => [
+         q(0013),
+         q(0),
+         ],
+      q(afg) => [
+         q(0001),
+         q(0),
+         ],
+      q(ago) => [
+         q(0007),
+         q(0),
+         ],
+      q(aia) => [
+         q(0008),
+         q(0),
+         ],
+      q(ala) => [
+         q(0002),
+         q(0),
+         ],
+      q(alb) => [
+         q(0003),
+         q(0),
+         ],
+      q(and) => [
+         q(0006),
+         q(0),
+         ],
+      q(ant) => [
+         q(0156),
+         q(0),
+         ],
+      q(are) => [
+         q(0231),
+         q(0),
+         ],
+      q(arg) => [
+         q(0011),
+         q(0),
+         ],
+      q(arm) => [
+         q(0012),
+         q(0),
+         ],
+      q(asm) => [
+         q(0005),
+         q(0),
+         ],
+      q(ata) => [
+         q(0009),
+         q(0),
+         ],
+      q(atf) => [
+         q(0077),
+         q(1),
+         ],
+      q(atg) => [
+         q(0010),
+         q(0),
+         ],
+      q(aus) => [
+         q(0014),
+         q(0),
+         ],
+      q(aut) => [
+         q(0015),
+         q(0),
+         ],
+      q(aze) => [
+         q(0016),
+         q(0),
+         ],
+      q(bdi) => [
+         q(0036),
+         q(0),
+         ],
+      q(bel) => [
+         q(0022),
+         q(0),
+         ],
+      q(ben) => [
+         q(0024),
+         q(0),
+         ],
+      q(bfa) => [
+         q(0035),
+         q(0),
+         ],
+      q(bgd) => [
+         q(0019),
+         q(0),
+         ],
+      q(bgr) => [
+         q(0034),
+         q(0),
+         ],
+      q(bhr) => [
+         q(0018),
+         q(0),
+         ],
+      q(bhs) => [
+         q(0017),
+         q(0),
+         ],
+      q(bih) => [
+         q(0028),
+         q(0),
+         ],
+      q(blm) => [
+         q(0184),
+         q(1),
+         ],
+      q(blr) => [
+         q(0021),
+         q(0),
+         ],
+      q(blz) => [
+         q(0023),
+         q(0),
+         ],
+      q(bmu) => [
+         q(0025),
+         q(0),
+         ],
+      q(bol) => [
+         q(0027),
+         q(1),
+         ],
+      q(bra) => [
+         q(0031),
+         q(0),
+         ],
+      q(brb) => [
+         q(0020),
+         q(0),
+         ],
+      q(brn) => [
+         q(0033),
+         q(0),
+         ],
+      q(btn) => [
+         q(0026),
+         q(0),
+         ],
+      q(bvt) => [
+         q(0030),
+         q(0),
+         ],
+      q(bwa) => [
+         q(0029),
+         q(0),
+         ],
+      q(caf) => [
+         q(0042),
+         q(0),
+         ],
+      q(can) => [
+         q(0039),
+         q(0),
+         ],
+      q(cck) => [
+         q(0047),
+         q(0),
+         ],
+      q(che) => [
+         q(0213),
+         q(0),
+         ],
+      q(chl) => [
+         q(0044),
+         q(0),
+         ],
+      q(chn) => [
+         q(0045),
+         q(0),
+         ],
+      q(civ) => [
+         q(0054),
+         q(0),
+         ],
+      q(cmr) => [
+         q(0038),
+         q(0),
+         ],
+      q(cod) => [
+         q(0051),
+         q(1),
+         ],
+      q(cog) => [
+         q(0050),
+         q(0),
+         ],
+      q(cok) => [
+         q(0052),
+         q(0),
+         ],
+      q(col) => [
+         q(0048),
+         q(0),
+         ],
+      q(com) => [
+         q(0049),
+         q(0),
+         ],
+      q(cpv) => [
+         q(0040),
+         q(0),
+         ],
+      q(cri) => [
+         q(0053),
+         q(0),
+         ],
+      q(cub) => [
+         q(0056),
+         q(0),
+         ],
+      q(cxr) => [
+         q(0046),
+         q(0),
+         ],
+      q(cym) => [
+         q(0041),
+         q(0),
+         ],
+      q(cyp) => [
+         q(0057),
+         q(0),
+         ],
+      q(cze) => [
+         q(0058),
+         q(0),
+         ],
+      q(deu) => [
+         q(0081),
+         q(0),
+         ],
+      q(dji) => [
+         q(0060),
+         q(0),
+         ],
+      q(dma) => [
+         q(0061),
+         q(0),
+         ],
+      q(dnk) => [
+         q(0059),
+         q(0),
+         ],
+      q(dom) => [
+         q(0062),
+         q(0),
+         ],
+      q(dza) => [
+         q(0004),
+         q(0),
+         ],
+      q(ecu) => [
+         q(0063),
+         q(0),
+         ],
+      q(egy) => [
+         q(0064),
+         q(0),
+         ],
+      q(eri) => [
+         q(0067),
+         q(0),
+         ],
+      q(esh) => [
+         q(0243),
+         q(0),
+         ],
+      q(esp) => [
+         q(0206),
+         q(0),
+         ],
+      q(est) => [
+         q(0068),
+         q(0),
+         ],
+      q(eth) => [
+         q(0069),
+         q(0),
+         ],
+      q(fin) => [
+         q(0073),
+         q(0),
+         ],
+      q(fji) => [
+         q(0072),
+         q(0),
+         ],
+      q(flk) => [
+         q(0070),
+         q(0),
+         ],
+      q(fra) => [
+         q(0074),
+         q(0),
+         ],
+      q(fro) => [
+         q(0071),
+         q(1),
+         ],
+      q(fsm) => [
+         q(0143),
+         q(1),
+         ],
+      q(fxx) => [
+         q(0276),
+         q(0),
+         ],
+      q(gab) => [
+         q(0078),
+         q(0),
+         ],
+      q(gbr) => [
+         q(0232),
+         q(1),
+         ],
+      q(geo) => [
+         q(0080),
+         q(0),
+         ],
+      q(ggy) => [
+         q(0090),
+         q(0),
+         ],
+      q(gha) => [
+         q(0082),
+         q(0),
+         ],
+      q(gib) => [
+         q(0083),
+         q(0),
+         ],
+      q(gin) => [
+         q(0091),
+         q(0),
+         ],
+      q(glp) => [
+         q(0087),
+         q(0),
+         ],
+      q(gmb) => [
+         q(0079),
+         q(0),
+         ],
+      q(gnb) => [
+         q(0092),
+         q(0),
+         ],
+      q(gnq) => [
+         q(0066),
+         q(0),
+         ],
+      q(grc) => [
+         q(0084),
+         q(0),
+         ],
+      q(grd) => [
+         q(0086),
+         q(0),
+         ],
+      q(grl) => [
+         q(0085),
+         q(0),
+         ],
+      q(gtm) => [
+         q(0089),
+         q(0),
+         ],
+      q(guf) => [
+         q(0075),
+         q(0),
+         ],
+      q(gum) => [
+         q(0088),
+         q(0),
+         ],
+      q(guy) => [
+         q(0093),
+         q(0),
+         ],
+      q(hkg) => [
+         q(0098),
+         q(1),
+         ],
+      q(hmd) => [
+         q(0095),
+         q(0),
+         ],
+      q(hnd) => [
+         q(0097),
+         q(0),
+         ],
+      q(hrv) => [
+         q(0055),
+         q(0),
+         ],
+      q(hti) => [
+         q(0094),
+         q(0),
+         ],
+      q(hun) => [
+         q(0099),
+         q(0),
+         ],
+      q(idn) => [
+         q(0102),
+         q(0),
+         ],
+      q(imn) => [
+         q(0106),
+         q(0),
+         ],
+      q(ind) => [
+         q(0101),
+         q(0),
+         ],
+      q(iot) => [
+         q(0032),
+         q(0),
+         ],
+      q(irl) => [
+         q(0105),
+         q(0),
+         ],
+      q(irn) => [
+         q(0103),
+         q(1),
+         ],
+      q(irq) => [
+         q(0104),
+         q(0),
+         ],
+      q(isl) => [
+         q(0100),
+         q(0),
+         ],
+      q(isr) => [
+         q(0107),
+         q(0),
+         ],
+      q(ita) => [
+         q(0108),
+         q(0),
+         ],
+      q(jam) => [
+         q(0109),
+         q(0),
+         ],
+      q(jey) => [
+         q(0111),
+         q(0),
+         ],
+      q(jor) => [
+         q(0112),
+         q(0),
+         ],
+      q(jpn) => [
+         q(0110),
+         q(0),
+         ],
+      q(kaz) => [
+         q(0113),
+         q(0),
+         ],
+      q(ken) => [
+         q(0114),
+         q(0),
+         ],
+      q(kgz) => [
+         q(0119),
+         q(0),
+         ],
+      q(khm) => [
+         q(0037),
+         q(0),
+         ],
+      q(kir) => [
+         q(0115),
+         q(0),
+         ],
+      q(kna) => [
+         q(0186),
+         q(0),
+         ],
+      q(kor) => [
+         q(0117),
+         q(1),
+         ],
+      q(kwt) => [
+         q(0118),
+         q(0),
+         ],
+      q(lao) => [
+         q(0120),
+         q(0),
+         ],
+      q(lbn) => [
+         q(0122),
+         q(0),
+         ],
+      q(lbr) => [
+         q(0124),
+         q(0),
+         ],
+      q(lby) => [
+         q(0125),
+         q(0),
+         ],
+      q(lca) => [
+         q(0187),
+         q(0),
+         ],
+      q(lie) => [
+         q(0126),
+         q(0),
+         ],
+      q(lka) => [
+         q(0207),
+         q(0),
+         ],
+      q(lso) => [
+         q(0123),
+         q(0),
+         ],
+      q(ltu) => [
+         q(0127),
+         q(0),
+         ],
+      q(lux) => [
+         q(0128),
+         q(0),
+         ],
+      q(lva) => [
+         q(0121),
+         q(0),
+         ],
+      q(mac) => [
+         q(0129),
+         q(1),
+         ],
+      q(maf) => [
+         q(0188),
+         q(1),
+         ],
+      q(mar) => [
+         q(0149),
+         q(0),
+         ],
+      q(mco) => [
+         q(0145),
+         q(0),
+         ],
+      q(mda) => [
+         q(0144),
+         q(1),
+         ],
+      q(mdg) => [
+         q(0131),
+         q(0),
+         ],
+      q(mdv) => [
+         q(0134),
+         q(0),
+         ],
+      q(mex) => [
+         q(0142),
+         q(0),
+         ],
+      q(mhl) => [
+         q(0137),
+         q(0),
+         ],
+      q(mkd) => [
+         q(0130),
+         q(1),
+         ],
+      q(mli) => [
+         q(0135),
+         q(0),
+         ],
+      q(mlt) => [
+         q(0136),
+         q(0),
+         ],
+      q(mmr) => [
+         q(0151),
+         q(0),
+         ],
+      q(mne) => [
+         q(0147),
+         q(0),
+         ],
+      q(mng) => [
+         q(0146),
+         q(0),
+         ],
+      q(mnp) => [
+         q(0164),
+         q(0),
+         ],
+      q(moz) => [
+         q(0150),
+         q(0),
+         ],
+      q(mrt) => [
+         q(0139),
+         q(0),
+         ],
+      q(msr) => [
+         q(0148),
+         q(0),
+         ],
+      q(mtq) => [
+         q(0138),
+         q(0),
+         ],
+      q(mus) => [
+         q(0140),
+         q(0),
+         ],
+      q(mwi) => [
+         q(0132),
+         q(0),
+         ],
+      q(mys) => [
+         q(0133),
+         q(0),
+         ],
+      q(myt) => [
+         q(0141),
+         q(0),
+         ],
+      q(nam) => [
+         q(0152),
+         q(0),
+         ],
+      q(ncl) => [
+         q(0157),
+         q(0),
+         ],
+      q(ner) => [
+         q(0160),
+         q(0),
+         ],
+      q(nfk) => [
+         q(0163),
+         q(0),
+         ],
+      q(nga) => [
+         q(0161),
+         q(0),
+         ],
+      q(nic) => [
+         q(0159),
+         q(0),
+         ],
+      q(niu) => [
+         q(0162),
+         q(0),
+         ],
+      q(nld) => [
+         q(0155),
+         q(0),
+         ],
+      q(nor) => [
+         q(0165),
+         q(0),
+         ],
+      q(npl) => [
+         q(0154),
+         q(0),
+         ],
+      q(nru) => [
+         q(0153),
+         q(0),
+         ],
+      q(nzl) => [
+         q(0158),
+         q(0),
+         ],
+      q(omn) => [
+         q(0166),
+         q(0),
+         ],
+      q(pak) => [
+         q(0167),
+         q(0),
+         ],
+      q(pan) => [
+         q(0170),
+         q(0),
+         ],
+      q(pcn) => [
+         q(0175),
+         q(0),
+         ],
+      q(per) => [
+         q(0173),
+         q(0),
+         ],
+      q(phl) => [
+         q(0174),
+         q(0),
+         ],
+      q(plw) => [
+         q(0168),
+         q(0),
+         ],
+      q(png) => [
+         q(0171),
+         q(0),
+         ],
+      q(pol) => [
+         q(0176),
+         q(0),
+         ],
+      q(pri) => [
+         q(0178),
+         q(0),
+         ],
+      q(prk) => [
+         q(0116),
+         q(1),
+         ],
+      q(prt) => [
+         q(0177),
+         q(0),
+         ],
+      q(pry) => [
+         q(0172),
+         q(0),
+         ],
+      q(pse) => [
+         q(0169),
+         q(1),
+         ],
+      q(pyf) => [
+         q(0076),
+         q(0),
+         ],
+      q(qat) => [
+         q(0179),
+         q(0),
+         ],
+      q(reu) => [
+         q(0180),
+         q(0),
+         ],
+      q(rou) => [
+         q(0181),
+         q(0),
+         ],
+      q(rus) => [
+         q(0182),
+         q(0),
+         ],
+      q(rwa) => [
+         q(0183),
+         q(0),
+         ],
+      q(sau) => [
+         q(0194),
+         q(0),
+         ],
+      q(sdn) => [
+         q(0208),
+         q(0),
+         ],
+      q(sen) => [
+         q(0195),
+         q(0),
+         ],
+      q(sgp) => [
+         q(0199),
+         q(0),
+         ],
+      q(shn) => [
+         q(0185),
+         q(1),
+         ],
+      q(sjm) => [
+         q(0210),
+         q(1),
+         ],
+      q(slb) => [
+         q(0202),
+         q(0),
+         ],
+      q(sle) => [
+         q(0198),
+         q(0),
+         ],
+      q(slv) => [
+         q(0065),
+         q(0),
+         ],
+      q(smr) => [
+         q(0192),
+         q(0),
+         ],
+      q(som) => [
+         q(0203),
+         q(0),
+         ],
+      q(spm) => [
+         q(0189),
+         q(0),
+         ],
+      q(srb) => [
+         q(0196),
+         q(0),
+         ],
+      q(stp) => [
+         q(0193),
+         q(0),
+         ],
+      q(sur) => [
+         q(0209),
+         q(0),
+         ],
+      q(svk) => [
+         q(0200),
+         q(0),
+         ],
+      q(svn) => [
+         q(0201),
+         q(0),
+         ],
+      q(swe) => [
+         q(0212),
+         q(0),
+         ],
+      q(swz) => [
+         q(0211),
+         q(0),
+         ],
+      q(syc) => [
+         q(0197),
+         q(0),
+         ],
+      q(syr) => [
+         q(0214),
+         q(0),
+         ],
+      q(tca) => [
+         q(0227),
+         q(0),
+         ],
+      q(tcd) => [
+         q(0043),
+         q(0),
+         ],
+      q(tgo) => [
+         q(0220),
+         q(0),
+         ],
+      q(tha) => [
+         q(0218),
+         q(0),
+         ],
+      q(tjk) => [
+         q(0216),
+         q(0),
+         ],
+      q(tkl) => [
+         q(0221),
+         q(0),
+         ],
+      q(tkm) => [
+         q(0226),
+         q(0),
+         ],
+      q(tls) => [
+         q(0219),
+         q(0),
+         ],
+      q(ton) => [
+         q(0222),
+         q(0),
+         ],
+      q(tto) => [
+         q(0223),
+         q(0),
+         ],
+      q(tun) => [
+         q(0224),
+         q(0),
+         ],
+      q(tur) => [
+         q(0225),
+         q(0),
+         ],
+      q(tuv) => [
+         q(0228),
+         q(0),
+         ],
+      q(twn) => [
+         q(0215),
+         q(1),
+         ],
+      q(tza) => [
+         q(0217),
+         q(1),
+         ],
+      q(uga) => [
+         q(0229),
+         q(0),
+         ],
+      q(ukr) => [
+         q(0230),
+         q(0),
+         ],
+      q(umi) => [
+         q(0234),
+         q(0),
+         ],
+      q(ury) => [
+         q(0235),
+         q(0),
+         ],
+      q(usa) => [
+         q(0233),
+         q(1),
+         ],
+      q(uzb) => [
+         q(0236),
+         q(0),
+         ],
+      q(vat) => [
+         q(0096),
+         q(1),
+         ],
+      q(vct) => [
+         q(0190),
+         q(0),
+         ],
+      q(ven) => [
+         q(0238),
+         q(1),
+         ],
+      q(vgb) => [
+         q(0240),
+         q(1),
+         ],
+      q(vir) => [
+         q(0241),
+         q(1),
+         ],
+      q(vnm) => [
+         q(0239),
+         q(0),
+         ],
+      q(vut) => [
+         q(0237),
+         q(0),
+         ],
+      q(wlf) => [
+         q(0242),
+         q(1),
+         ],
+      q(wsm) => [
+         q(0191),
+         q(0),
+         ],
+      q(yem) => [
+         q(0244),
+         q(0),
+         ],
+      q(zaf) => [
+         q(0204),
+         q(0),
+         ],
+      q(zmb) => [
+         q(0245),
+         q(0),
+         ],
+      q(zwe) => [
+         q(0246),
+         q(0),
+         ],
+      },
+   q(dom) => {
+      q(AC) => [
+         q(0272),
+         q(0),
+         ],
+      q(AD) => [
+         q(0006),
+         q(0),
+         ],
+      q(AE) => [
+         q(0231),
+         q(0),
+         ],
+      q(AF) => [
+         q(0001),
+         q(0),
+         ],
+      q(AG) => [
+         q(0010),
+         q(0),
+         ],
+      q(AI) => [
+         q(0008),
+         q(0),
+         ],
+      q(AL) => [
+         q(0003),
+         q(0),
+         ],
+      q(AM) => [
+         q(0012),
+         q(0),
+         ],
+      q(AN) => [
+         q(0156),
+         q(0),
+         ],
+      q(AO) => [
+         q(0007),
+         q(0),
+         ],
+      q(AQ) => [
+         q(0009),
+         q(0),
+         ],
+      q(AR) => [
+         q(0011),
+         q(0),
+         ],
+      q(AS) => [
+         q(0005),
+         q(0),
+         ],
+      q(AT) => [
+         q(0015),
+         q(0),
+         ],
+      q(AU) => [
+         q(0014),
+         q(0),
+         ],
+      q(AW) => [
+         q(0013),
+         q(0),
+         ],
+      q(AX) => [
+         q(0002),
+         q(0),
+         ],
+      q(AZ) => [
+         q(0016),
+         q(0),
+         ],
+      q(BA) => [
+         q(0028),
+         q(0),
+         ],
+      q(BB) => [
+         q(0020),
+         q(0),
+         ],
+      q(BD) => [
+         q(0019),
+         q(0),
+         ],
+      q(BE) => [
+         q(0022),
+         q(0),
+         ],
+      q(BF) => [
+         q(0035),
+         q(0),
+         ],
+      q(BG) => [
+         q(0034),
+         q(0),
+         ],
+      q(BH) => [
+         q(0018),
+         q(0),
+         ],
+      q(BI) => [
+         q(0036),
+         q(0),
+         ],
+      q(BJ) => [
+         q(0024),
+         q(0),
+         ],
+      q(BL) => [
+         q(0184),
+         q(0),
+         ],
+      q(BM) => [
+         q(0025),
+         q(0),
+         ],
+      q(BN) => [
+         q(0033),
+         q(0),
+         ],
+      q(BO) => [
+         q(0027),
+         q(2),
+         ],
+      q(BR) => [
+         q(0031),
+         q(0),
+         ],
+      q(BS) => [
+         q(0017),
+         q(0),
+         ],
+      q(BT) => [
+         q(0026),
+         q(0),
+         ],
+      q(BV) => [
+         q(0030),
+         q(0),
+         ],
+      q(BW) => [
+         q(0029),
+         q(0),
+         ],
+      q(BY) => [
+         q(0021),
+         q(0),
+         ],
+      q(BZ) => [
+         q(0023),
+         q(0),
+         ],
+      q(CA) => [
+         q(0039),
+         q(0),
+         ],
+      q(CC) => [
+         q(0047),
+         q(0),
+         ],
+      q(CD) => [
+         q(0051),
+         q(0),
+         ],
+      q(CF) => [
+         q(0042),
+         q(0),
+         ],
+      q(CG) => [
+         q(0050),
+         q(0),
+         ],
+      q(CH) => [
+         q(0213),
+         q(0),
+         ],
+      q(CI) => [
+         q(0054),
+         q(0),
+         ],
+      q(CK) => [
+         q(0052),
+         q(0),
+         ],
+      q(CL) => [
+         q(0044),
+         q(0),
+         ],
+      q(CM) => [
+         q(0038),
+         q(0),
+         ],
+      q(CN) => [
+         q(0045),
+         q(0),
+         ],
+      q(CO) => [
+         q(0048),
+         q(0),
+         ],
+      q(CR) => [
+         q(0053),
+         q(0),
+         ],
+      q(CU) => [
+         q(0056),
+         q(0),
+         ],
+      q(CV) => [
+         q(0040),
+         q(0),
+         ],
+      q(CX) => [
+         q(0046),
+         q(0),
+         ],
+      q(CY) => [
+         q(0057),
+         q(0),
+         ],
+      q(CZ) => [
+         q(0058),
+         q(0),
+         ],
+      q(DE) => [
+         q(0081),
+         q(0),
+         ],
+      q(DJ) => [
+         q(0060),
+         q(0),
+         ],
+      q(DK) => [
+         q(0059),
+         q(0),
+         ],
+      q(DM) => [
+         q(0061),
+         q(0),
+         ],
+      q(DO) => [
+         q(0062),
+         q(0),
+         ],
+      q(DZ) => [
+         q(0004),
+         q(0),
+         ],
+      q(EC) => [
+         q(0063),
+         q(0),
+         ],
+      q(EE) => [
+         q(0068),
+         q(0),
+         ],
+      q(EG) => [
+         q(0064),
+         q(0),
+         ],
+      q(EH) => [
+         q(0243),
+         q(0),
+         ],
+      q(ER) => [
+         q(0067),
+         q(0),
+         ],
+      q(ES) => [
+         q(0206),
+         q(0),
+         ],
+      q(ET) => [
+         q(0069),
+         q(0),
+         ],
+      q(EU) => [
+         q(0273),
+         q(0),
+         ],
+      q(FI) => [
+         q(0073),
+         q(0),
+         ],
+      q(FJ) => [
+         q(0072),
+         q(0),
+         ],
+      q(FK) => [
+         q(0070),
+         q(0),
+         ],
+      q(FM) => [
+         q(0143),
+         q(0),
+         ],
+      q(FO) => [
+         q(0071),
+         q(0),
+         ],
+      q(FR) => [
+         q(0074),
+         q(0),
+         ],
+      q(FX) => [
+         q(0276),
+         q(0),
+         ],
+      q(GA) => [
+         q(0078),
+         q(0),
+         ],
+      q(GB) => [
+         q(0232),
+         q(0),
+         ],
+      q(GD) => [
+         q(0086),
+         q(0),
+         ],
+      q(GE) => [
+         q(0080),
+         q(0),
+         ],
+      q(GF) => [
+         q(0075),
+         q(0),
+         ],
+      q(GG) => [
+         q(0090),
+         q(0),
+         ],
+      q(GH) => [
+         q(0082),
+         q(0),
+         ],
+      q(GI) => [
+         q(0083),
+         q(0),
+         ],
+      q(GL) => [
+         q(0085),
+         q(0),
+         ],
+      q(GM) => [
+         q(0079),
+         q(0),
+         ],
+      q(GN) => [
+         q(0091),
+         q(0),
+         ],
+      q(GP) => [
+         q(0087),
+         q(0),
+         ],
+      q(GQ) => [
+         q(0066),
+         q(0),
+         ],
+      q(GR) => [
+         q(0084),
+         q(0),
+         ],
+      q(GS) => [
+         q(0205),
+         q(0),
+         ],
+      q(GT) => [
+         q(0089),
+         q(0),
+         ],
+      q(GU) => [
+         q(0088),
+         q(0),
+         ],
+      q(GW) => [
+         q(0092),
+         q(0),
+         ],
+      q(GY) => [
+         q(0093),
+         q(0),
+         ],
+      q(HK) => [
+         q(0098),
+         q(0),
+         ],
+      q(HM) => [
+         q(0095),
+         q(0),
+         ],
+      q(HN) => [
+         q(0097),
+         q(0),
+         ],
+      q(HR) => [
+         q(0055),
+         q(0),
+         ],
+      q(HT) => [
+         q(0094),
+         q(0),
+         ],
+      q(HU) => [
+         q(0099),
+         q(0),
+         ],
+      q(ID) => [
+         q(0102),
+         q(0),
+         ],
+      q(IE) => [
+         q(0105),
+         q(0),
+         ],
+      q(IL) => [
+         q(0107),
+         q(0),
+         ],
+      q(IM) => [
+         q(0106),
+         q(0),
+         ],
+      q(IN) => [
+         q(0101),
+         q(0),
+         ],
+      q(IO) => [
+         q(0032),
+         q(0),
+         ],
+      q(IQ) => [
+         q(0104),
+         q(0),
+         ],
+      q(IR) => [
+         q(0103),
+         q(0),
+         ],
+      q(IS) => [
+         q(0100),
+         q(0),
+         ],
+      q(IT) => [
+         q(0108),
+         q(0),
+         ],
+      q(JE) => [
+         q(0111),
+         q(0),
+         ],
+      q(JM) => [
+         q(0109),
+         q(0),
+         ],
+      q(JO) => [
+         q(0112),
+         q(0),
+         ],
+      q(JP) => [
+         q(0110),
+         q(0),
+         ],
+      q(KE) => [
+         q(0114),
+         q(0),
+         ],
+      q(KG) => [
+         q(0119),
+         q(0),
+         ],
+      q(KH) => [
+         q(0037),
+         q(0),
+         ],
+      q(KI) => [
+         q(0115),
+         q(0),
+         ],
+      q(KM) => [
+         q(0049),
+         q(0),
+         ],
+      q(KN) => [
+         q(0186),
+         q(0),
+         ],
+      q(KP) => [
+         q(0116),
+         q(0),
+         ],
+      q(KR) => [
+         q(0117),
+         q(0),
+         ],
+      q(KW) => [
+         q(0118),
+         q(0),
+         ],
+      q(KY) => [
+         q(0041),
+         q(0),
+         ],
+      q(KZ) => [
+         q(0113),
+         q(0),
+         ],
+      q(LA) => [
+         q(0120),
+         q(0),
+         ],
+      q(LB) => [
+         q(0122),
+         q(0),
+         ],
+      q(LC) => [
+         q(0187),
+         q(0),
+         ],
+      q(LI) => [
+         q(0126),
+         q(0),
+         ],
+      q(LK) => [
+         q(0207),
+         q(0),
+         ],
+      q(LR) => [
+         q(0124),
+         q(0),
+         ],
+      q(LS) => [
+         q(0123),
+         q(0),
+         ],
+      q(LT) => [
+         q(0127),
+         q(0),
+         ],
+      q(LU) => [
+         q(0128),
+         q(0),
+         ],
+      q(LV) => [
+         q(0121),
+         q(0),
+         ],
+      q(LY) => [
+         q(0125),
+         q(0),
+         ],
+      q(MA) => [
+         q(0149),
+         q(0),
+         ],
+      q(MC) => [
+         q(0145),
+         q(0),
+         ],
+      q(MD) => [
+         q(0144),
+         q(0),
+         ],
+      q(ME) => [
+         q(0147),
+         q(0),
+         ],
+      q(MF) => [
+         q(0188),
+         q(0),
+         ],
+      q(MG) => [
+         q(0131),
+         q(0),
+         ],
+      q(MH) => [
+         q(0137),
+         q(0),
+         ],
+      q(MK) => [
+         q(0130),
+         q(0),
+         ],
+      q(ML) => [
+         q(0135),
+         q(0),
+         ],
+      q(MM) => [
+         q(0151),
+         q(0),
+         ],
+      q(MN) => [
+         q(0146),
+         q(0),
+         ],
+      q(MO) => [
+         q(0129),
+         q(0),
+         ],
+      q(MP) => [
+         q(0164),
+         q(0),
+         ],
+      q(MQ) => [
+         q(0138),
+         q(0),
+         ],
+      q(MR) => [
+         q(0139),
+         q(0),
+         ],
+      q(MS) => [
+         q(0148),
+         q(0),
+         ],
+      q(MT) => [
+         q(0136),
+         q(0),
+         ],
+      q(MU) => [
+         q(0140),
+         q(0),
+         ],
+      q(MV) => [
+         q(0134),
+         q(0),
+         ],
+      q(MW) => [
+         q(0132),
+         q(0),
+         ],
+      q(MX) => [
+         q(0142),
+         q(0),
+         ],
+      q(MY) => [
+         q(0133),
+         q(0),
+         ],
+      q(MZ) => [
+         q(0150),
+         q(0),
+         ],
+      q(NA) => [
+         q(0152),
+         q(0),
+         ],
+      q(NC) => [
+         q(0157),
+         q(0),
+         ],
+      q(NE) => [
+         q(0160),
+         q(0),
+         ],
+      q(NF) => [
+         q(0163),
+         q(0),
+         ],
+      q(NG) => [
+         q(0161),
+         q(0),
+         ],
+      q(NI) => [
+         q(0159),
+         q(0),
+         ],
+      q(NL) => [
+         q(0155),
+         q(0),
+         ],
+      q(NO) => [
+         q(0165),
+         q(0),
+         ],
+      q(NP) => [
+         q(0154),
+         q(0),
+         ],
+      q(NR) => [
+         q(0153),
+         q(0),
+         ],
+      q(NU) => [
+         q(0162),
+         q(0),
+         ],
+      q(NZ) => [
+         q(0158),
+         q(0),
+         ],
+      q(OM) => [
+         q(0166),
+         q(0),
+         ],
+      q(PA) => [
+         q(0170),
+         q(0),
+         ],
+      q(PE) => [
+         q(0173),
+         q(0),
+         ],
+      q(PF) => [
+         q(0076),
+         q(0),
+         ],
+      q(PG) => [
+         q(0171),
+         q(0),
+         ],
+      q(PH) => [
+         q(0174),
+         q(0),
+         ],
+      q(PK) => [
+         q(0167),
+         q(0),
+         ],
+      q(PL) => [
+         q(0176),
+         q(0),
+         ],
+      q(PM) => [
+         q(0189),
+         q(0),
+         ],
+      q(PN) => [
+         q(0175),
+         q(0),
+         ],
+      q(PR) => [
+         q(0178),
+         q(0),
+         ],
+      q(PS) => [
+         q(0169),
+         q(0),
+         ],
+      q(PT) => [
+         q(0177),
+         q(0),
+         ],
+      q(PW) => [
+         q(0168),
+         q(0),
+         ],
+      q(PY) => [
+         q(0172),
+         q(0),
+         ],
+      q(QA) => [
+         q(0179),
+         q(0),
+         ],
+      q(RE) => [
+         q(0180),
+         q(0),
+         ],
+      q(RO) => [
+         q(0181),
+         q(0),
+         ],
+      q(RS) => [
+         q(0196),
+         q(0),
+         ],
+      q(RU) => [
+         q(0182),
+         q(0),
+         ],
+      q(RW) => [
+         q(0183),
+         q(0),
+         ],
+      q(SA) => [
+         q(0194),
+         q(0),
+         ],
+      q(SB) => [
+         q(0202),
+         q(0),
+         ],
+      q(SC) => [
+         q(0197),
+         q(0),
+         ],
+      q(SD) => [
+         q(0208),
+         q(0),
+         ],
+      q(SE) => [
+         q(0212),
+         q(0),
+         ],
+      q(SG) => [
+         q(0199),
+         q(0),
+         ],
+      q(SH) => [
+         q(0185),
+         q(0),
+         ],
+      q(SI) => [
+         q(0201),
+         q(0),
+         ],
+      q(SJ) => [
+         q(0210),
+         q(0),
+         ],
+      q(SK) => [
+         q(0200),
+         q(0),
+         ],
+      q(SL) => [
+         q(0198),
+         q(0),
+         ],
+      q(SM) => [
+         q(0192),
+         q(0),
+         ],
+      q(SN) => [
+         q(0195),
+         q(0),
+         ],
+      q(SO) => [
+         q(0203),
+         q(0),
+         ],
+      q(SR) => [
+         q(0209),
+         q(0),
+         ],
+      q(ST) => [
+         q(0193),
+         q(0),
+         ],
+      q(SU) => [
+         q(0274),
+         q(0),
+         ],
+      q(SV) => [
+         q(0065),
+         q(0),
+         ],
+      q(SY) => [
+         q(0214),
+         q(0),
+         ],
+      q(SZ) => [
+         q(0211),
+         q(0),
+         ],
+      q(TC) => [
+         q(0227),
+         q(0),
+         ],
+      q(TD) => [
+         q(0043),
+         q(0),
+         ],
+      q(TF) => [
+         q(0077),
+         q(0),
+         ],
+      q(TG) => [
+         q(0220),
+         q(0),
+         ],
+      q(TH) => [
+         q(0218),
+         q(0),
+         ],
+      q(TJ) => [
+         q(0216),
+         q(0),
+         ],
+      q(TK) => [
+         q(0221),
+         q(0),
+         ],
+      q(TL) => [
+         q(0219),
+         q(0),
+         ],
+      q(TM) => [
+         q(0226),
+         q(0),
+         ],
+      q(TN) => [
+         q(0224),
+         q(0),
+         ],
+      q(TO) => [
+         q(0222),
+         q(0),
+         ],
+      q(TP) => [
+         q(0275),
+         q(0),
+         ],
+      q(TR) => [
+         q(0225),
+         q(0),
+         ],
+      q(TT) => [
+         q(0223),
+         q(0),
+         ],
+      q(TV) => [
+         q(0228),
+         q(0),
+         ],
+      q(TW) => [
+         q(0215),
+         q(1),
+         ],
+      q(TZ) => [
+         q(0217),
+         q(0),
+         ],
+      q(UA) => [
+         q(0230),
+         q(0),
+         ],
+      q(UG) => [
+         q(0229),
+         q(0),
+         ],
+      q(UK) => [
+         q(0232),
+         q(0),
+         ],
+      q(UM) => [
+         q(0234),
+         q(0),
+         ],
+      q(US) => [
+         q(0233),
+         q(0),
+         ],
+      q(UY) => [
+         q(0235),
+         q(0),
+         ],
+      q(UZ) => [
+         q(0236),
+         q(0),
+         ],
+      q(VA) => [
+         q(0096),
+         q(0),
+         ],
+      q(VC) => [
+         q(0190),
+         q(0),
+         ],
+      q(VE) => [
+         q(0238),
+         q(0),
+         ],
+      q(VG) => [
+         q(0240),
+         q(0),
+         ],
+      q(VI) => [
+         q(0241),
+         q(0),
+         ],
+      q(VN) => [
+         q(0239),
+         q(0),
+         ],
+      q(VU) => [
+         q(0237),
+         q(0),
+         ],
+      q(WF) => [
+         q(0242),
+         q(0),
+         ],
+      q(WS) => [
+         q(0191),
+         q(0),
+         ],
+      q(YE) => [
+         q(0244),
+         q(0),
+         ],
+      q(YT) => [
+         q(0141),
+         q(0),
+         ],
+      q(ZA) => [
+         q(0204),
+         q(0),
+         ],
+      q(ZM) => [
+         q(0245),
+         q(0),
+         ],
+      q(ZW) => [
+         q(0246),
+         q(0),
+         ],
+      },
+   q(fips) => {
+      q(AA) => [
+         q(0013),
+         q(0),
+         ],
+      q(AC) => [
+         q(0010),
+         q(0),
+         ],
+      q(AE) => [
+         q(0231),
+         q(0),
+         ],
+      q(AF) => [
+         q(0001),
+         q(1),
+         ],
+      q(AG) => [
+         q(0004),
+         q(1),
+         ],
+      q(AJ) => [
+         q(0016),
+         q(1),
+         ],
+      q(AL) => [
+         q(0003),
+         q(1),
+         ],
+      q(AM) => [
+         q(0012),
+         q(1),
+         ],
+      q(AN) => [
+         q(0006),
+         q(1),
+         ],
+      q(AO) => [
+         q(0007),
+         q(1),
+         ],
+      q(AQ) => [
+         q(0005),
+         q(1),
+         ],
+      q(AR) => [
+         q(0011),
+         q(1),
+         ],
+      q(AS) => [
+         q(0014),
+         q(1),
+         ],
+      q(AT) => [
+         q(0249),
+         q(1),
+         ],
+      q(AU) => [
+         q(0015),
+         q(1),
+         ],
+      q(AV) => [
+         q(0008),
+         q(0),
+         ],
+      q(AY) => [
+         q(0009),
+         q(0),
+         ],
+      q(BA) => [
+         q(0018),
+         q(1),
+         ],
+      q(BB) => [
+         q(0020),
+         q(0),
+         ],
+      q(BC) => [
+         q(0029),
+         q(1),
+         ],
+      q(BD) => [
+         q(0025),
+         q(0),
+         ],
+      q(BE) => [
+         q(0022),
+         q(1),
+         ],
+      q(BF) => [
+         q(0017),
+         q(2),
+         ],
+      q(BG) => [
+         q(0019),
+         q(1),
+         ],
+      q(BH) => [
+         q(0023),
+         q(0),
+         ],
+      q(BK) => [
+         q(0028),
+         q(0),
+         ],
+      q(BL) => [
+         q(0027),
+         q(3),
+         ],
+      q(BM) => [
+         q(0151),
+         q(2),
+         ],
+      q(BN) => [
+         q(0024),
+         q(1),
+         ],
+      q(BO) => [
+         q(0021),
+         q(1),
+         ],
+      q(BP) => [
+         q(0202),
+         q(0),
+         ],
+      q(BQ) => [
+         q(0264),
+         q(0),
+         ],
+      q(BR) => [
+         q(0031),
+         q(1),
+         ],
+      q(BS) => [
+         q(0251),
+         q(0),
+         ],
+      q(BT) => [
+         q(0026),
+         q(1),
+         ],
+      q(BU) => [
+         q(0034),
+         q(0),
+         ],
+      q(BV) => [
+         q(0030),
+         q(0),
+         ],
+      q(BX) => [
+         q(0033),
+         q(2),
+         ],
+      q(BY) => [
+         q(0036),
+         q(1),
+         ],
+      q(CA) => [
+         q(0039),
+         q(0),
+         ],
+      q(CB) => [
+         q(0037),
+         q(1),
+         ],
+      q(CD) => [
+         q(0043),
+         q(1),
+         ],
+      q(CE) => [
+         q(0207),
+         q(1),
+         ],
+      q(CF) => [
+         q(0050),
+         q(2),
+         ],
+      q(CG) => [
+         q(0051),
+         q(2),
+         ],
+      q(CH) => [
+         q(0045),
+         q(1),
+         ],
+      q(CI) => [
+         q(0044),
+         q(1),
+         ],
+      q(CJ) => [
+         q(0041),
+         q(0),
+         ],
+      q(CK) => [
+         q(0047),
+         q(1),
+         ],
+      q(CM) => [
+         q(0038),
+         q(1),
+         ],
+      q(CN) => [
+         q(0049),
+         q(1),
+         ],
+      q(CO) => [
+         q(0048),
+         q(1),
+         ],
+      q(CQ) => [
+         q(0164),
+         q(1),
+         ],
+      q(CR) => [
+         q(0253),
+         q(1),
+         ],
+      q(CS) => [
+         q(0053),
+         q(1),
+         ],
+      q(CT) => [
+         q(0042),
+         q(0),
+         ],
+      q(CU) => [
+         q(0056),
+         q(1),
+         ],
+      q(CV) => [
+         q(0040),
+         q(1),
+         ],
+      q(CW) => [
+         q(0052),
+         q(0),
+         ],
+      q(CY) => [
+         q(0057),
+         q(1),
+         ],
+      q(DA) => [
+         q(0059),
+         q(1),
+         ],
+      q(DJ) => [
+         q(0060),
+         q(1),
+         ],
+      q(DO) => [
+         q(0061),
+         q(1),
+         ],
+      q(DQ) => [
+         q(0259),
+         q(0),
+         ],
+      q(DR) => [
+         q(0062),
+         q(0),
+         ],
+      q(EC) => [
+         q(0063),
+         q(1),
+         ],
+      q(EG) => [
+         q(0064),
+         q(1),
+         ],
+      q(EI) => [
+         q(0105),
+         q(0),
+         ],
+      q(EK) => [
+         q(0066),
+         q(1),
+         ],
+      q(EN) => [
+         q(0068),
+         q(1),
+         ],
+      q(ER) => [
+         q(0067),
+         q(1),
+         ],
+      q(ES) => [
+         q(0065),
+         q(1),
+         ],
+      q(ET) => [
+         q(0069),
+         q(1),
+         ],
+      q(EU) => [
+         q(0254),
+         q(0),
+         ],
+      q(EZ) => [
+         q(0058),
+         q(0),
+         ],
+      q(FG) => [
+         q(0075),
+         q(1),
+         ],
+      q(FI) => [
+         q(0073),
+         q(1),
+         ],
+      q(FJ) => [
+         q(0072),
+         q(1),
+         ],
+      q(FK) => [
+         q(0070),
+         q(1),
+         ],
+      q(FM) => [
+         q(0143),
+         q(2),
+         ],
+      q(FO) => [
+         q(0071),
+         q(0),
+         ],
+      q(FP) => [
+         q(0076),
+         q(1),
+         ],
+      q(FQ) => [
+         q(0250),
+         q(0),
+         ],
+      q(FR) => [
+         q(0074),
+         q(1),
+         ],
+      q(FS) => [
+         q(0077),
+         q(2),
+         ],
+      q(GA) => [
+         q(0079),
+         q(2),
+         ],
+      q(GB) => [
+         q(0078),
+         q(1),
+         ],
+      q(GG) => [
+         q(0080),
+         q(0),
+         ],
+      q(GH) => [
+         q(0082),
+         q(1),
+         ],
+      q(GI) => [
+         q(0083),
+         q(0),
+         ],
+      q(GJ) => [
+         q(0086),
+         q(0),
+         ],
+      q(GK) => [
+         q(0090),
+         q(1),
+         ],
+      q(GL) => [
+         q(0085),
+         q(0),
+         ],
+      q(GM) => [
+         q(0081),
+         q(1),
+         ],
+      q(GO) => [
+         q(0256),