The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# automatically generated file, don't edit



# Copyright 2011 David Cantrell, derived from data from libphonenumber
# http://code.google.com/p/libphonenumber/
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
package Number::Phone::StubCountry::NA;
use base qw(Number::Phone::StubCountry);

use strict;
use warnings;
use utf8;
our $VERSION = 1.20170314173054;

my $formatters = [
                {
                  'leading_digits' => '8[1235]',
                  'pattern' => '(8\\d)(\\d{3})(\\d{4})'
                },
                {
                  'pattern' => '(6\\d)(\\d{3})(\\d{3,4})',
                  'leading_digits' => '6'
                },
                {
                  'leading_digits' => '88',
                  'pattern' => '(88)(\\d{3})(\\d{3})'
                },
                {
                  'pattern' => '(870)(\\d{3})(\\d{3})',
                  'leading_digits' => '870'
                }
              ];

my $validators = {
                'specialrate' => '(8701\\d{5})',
                'mobile' => '
          (?:
            60|
            8[125]
          )\\d{7}
        ',
                'toll_free' => '',
                'personal_number' => '',
                'geographic' => '
          6(?:
            1(?:
              17|
              2(?:
                [0189]\\d|
                [2-6]|
                7\\d?
              )|
              3(?:
                [01378]|
                2\\d
              )|
              4(?:
                [024]|
                10?|
                3[15]?
              )|
              69|
              7[014]
            )|
            2(?:
              17|
              5(?:
                [0-36-8]|
                4\\d?
              )|
              69|
              70
            )|
            3(?:
              17|
              2(?:
                [0237]\\d?|
                [14-689]
              )|
              34|
              6[289]|
              7[01]|
              81
            )|
            4(?:
              17|
              2(?:
                [012]|
                7\\d?
              )|
              4(?:
                [06]|
                1\\d?
              )|
              5(?:
                [01357]|
                [25]\\d?
              )|
              69|
              7[01]
            )|
            5(?:
              17|
              2(?:
                [0459]|
                [23678]\\d?
              )|
              69|
              7[01]
            )|
            6(?:
              17|
              2(?:
                5|
                6\\d?
              )|
              38|
              42|
              69|
              7[01]
            )|
            7(?:
              17|
              2(?:
                [569]|
                [234]\\d?
              )|
              3(?:
                0\\d?|
                [13]
              )|
              6[89]|
              7[01]
            )
          )\\d{4}
        ',
                'voip' => '
          8(?:
            3\\d{2}|
            86
          )\\d{5}
        ',
                'pager' => '',
                'fixed_line' => '
          6(?:
            1(?:
              17|
              2(?:
                [0189]\\d|
                [2-6]|
                7\\d?
              )|
              3(?:
                [01378]|
                2\\d
              )|
              4(?:
                [024]|
                10?|
                3[15]?
              )|
              69|
              7[014]
            )|
            2(?:
              17|
              5(?:
                [0-36-8]|
                4\\d?
              )|
              69|
              70
            )|
            3(?:
              17|
              2(?:
                [0237]\\d?|
                [14-689]
              )|
              34|
              6[289]|
              7[01]|
              81
            )|
            4(?:
              17|
              2(?:
                [012]|
                7\\d?
              )|
              4(?:
                [06]|
                1\\d?
              )|
              5(?:
                [01357]|
                [25]\\d?
              )|
              69|
              7[01]
            )|
            5(?:
              17|
              2(?:
                [0459]|
                [23678]\\d?
              )|
              69|
              7[01]
            )|
            6(?:
              17|
              2(?:
                5|
                6\\d?
              )|
              38|
              42|
              69|
              7[01]
            )|
            7(?:
              17|
              2(?:
                [569]|
                [234]\\d?
              )|
              3(?:
                0\\d?|
                [13]
              )|
              6[89]|
              7[01]
            )
          )\\d{4}
        '
              };
my %areanames = (
  26461 => "Windhoek",
  264621730 => "Babi\-Babi",
  264621732 => "Buitepos",
  264621734 => "Drimiopsis",
  264621735 => "Eland",
  264621737 => "Friedental",
  264621738 => "Gobabis",
  264621739 => "Gobabis",
  264621740 => "Gobabis",
  264621741 => "Groot\–Aub",
  264621743 => "Hochland",
  264621746 => "Many\ Hills",
  264621747 => "Namib\ Grens",
  264621748 => "Nina",
  264621750 => "Okahandja",
  264621751 => "Okahandja",
  264621752 => "Okahandja",
  264621754 => "Ombotozu",
  264621755 => "Omitara",
  264621756 => "Otjihase",
  264621759 => "Otjozondu",
  264621760 => "Plessisplaas",
  264621761 => "Rehoboth",
  264621762 => "Rehoboth",
  264621763 => "Rehoboth",
  264621766 => "Sandveld",
  264621767 => "Seeis",
  264621768 => "Spatzenfeld",
  264621769 => "Steinhausen",
  264621770 => "Summerdown",
  264621771 => "Hosea\ Kutako\ INT\ Airport",
  264621772 => "Witvlei",
  26462500 => "Okahandja",
  26462501 => "Okahandja",
  26462502 => "Okahandja",
  26462503 => "Okahandja\/Ovitoto\/Wilhelmstal",
  26462504 => "Okahandja",
  26462505 => "Okahandja",
  264625180 => "Otjozondu",
  264625181 => "Otjozondu",
  264625183 => "Ombotozu",
  264625184 => "Ombotozu",
  26462519 => "Okandjatu",
  26462522 => "Rehoboth",
  26462523 => "Rehoboth",
  26462524 => "Rehoboth",
  26462525 => "Rehoboth",
  264625390 => "Klein\ Aub",
  264625391 => "Klein\ Aub",
  264625392 => "Rietoog",
  264625393 => "Rietoog",
  26462540 => "Neudamm\/Hosea\ Kutako\ INT\ Airport",
  264625410 => "Otjihase",
  264625411 => "Otjihase",
  264625420 => "Groot\–Aub",
  264625421 => "Groot\–Aub",
  264625430 => "Hosea\ Kutako\ INT\ Airport",
  264625434 => "Hosea\ Kutako\ INT\ Airport",
  264625435 => "Hosea\ Kutako\ INT\ Airport",
  26462549 => "Hochfeld",
  264625600 => "Seeis",
  264625601 => "Seeis",
  264625602 => "Omitara",
  264625603 => "Omitara",
  264625604 => "Buitepos",
  264625605 => "Otjiwa",
  264625606 => "Otjiwa",
  264625607 => "Otjiwa",
  264625608 => "Otjiwa",
  264625609 => "Otjiwa",
  264625610 => "Otjiwa",
  264625611 => "Otjiwa",
  264625612 => "Otjiwa",
  264625613 => "Otjiwa",
  264625614 => "Steinhausen",
  264625615 => "Steinhausen",
  264625616 => "Summerdown",
  264625617 => "Summerdown",
  264625618 => "Summerdown",
  26462562 => "Gobabis",
  26462563 => "Gobabis",
  26462564 => "Gobabis",
  26462565 => "Gobabis",
  26462566 => "Gobabis",
  264625672 => "Epukiro",
  264625673 => "Epukiro",
  264625674 => "Epukiro",
  264625675 => "Otjinene",
  264625676 => "Otjinene",
  264625677 => "Otjinene",
  264625678 => "Otjinene",
  264625679 => "Otjinene",
  264625680 => "Drimiopsis",
  264625681 => "Drimiopsis",
  264625682 => "Plessisplaas",
  264625683 => "Plessisplaas",
  264625684 => "Sandveld",
  264625685 => "Sandveld",
  264625686 => "Epukiro",
  264625687 => "Epukiro",
  264625688 => "Epukiro",
  264625689 => "Babi\-Babi",
  264625690 => "Babi\-Babi",
  264625691 => "Leonardville",
  264625692 => "Leonardville",
  264625693 => "Leonardville",
  264625694 => "Leonardville",
  264625695 => "Leonardville",
  264625696 => "Leonardville",
  264625697 => "Blumfelde",
  264625698 => "Blumfelde",
  264625700 => "Witvlei",
  264625701 => "Witvlei",
  264625702 => "Witvlei",
  264625703 => "Witvlei",
  264625704 => "Witvlei",
  264625709 => "Witvlei",
  264625715 => "Eland",
  264625716 => "Eland",
  264625717 => "Spatzenfeld",
  264625718 => "Spatzenfeld",
  264625720 => "Namib\ Grens",
  264625721 => "Friedental",
  264625722 => "Hochland",
  264625723 => "Many\ Hills",
  264625731 => "Nina",
  264625733 => "Nouas",
  26462573 => "Dordabis",
  26462577 => "Gobabis",
  264625800 => "Epukiro",
  264625801 => "Epukiro",
  264625802 => "Epukiro",
  264625803 => "Epukiro",
  264625804 => "Eland",
  264625805 => "Drimiopsis",
  264625806 => "Summerdown",
  264625807 => "Plessisplaas",
  264625808 => "Otjinene",
  264625809 => "Otjiwa",
  264625810 => "Leonardville",
  264625811 => "Leonardville",
  264625812 => "Blumfelde",
  264625813 => "Blumfelde",
  264625814 => "Nouas",
  264625815 => "Nouas",
  264625816 => "Nina",
  264625817 => "Nina",
  264625818 => "Dordabis",
  264625819 => "Dordabis",
  26462692 => "Central",
  264627024 => "Hosea\ Kutako\ INT\ Airport",
  264627025 => "Hosea\ Kutako\ INT\ Airport",
  264631701 => "Aminuis",
  264631702 => "Aminuis",
  264631703 => "Aranos",
  264631704 => "Ariamsvlei",
  264631706 => "Asab",
  264631709 => "Bethanie",
  264631710 => "Bethanie",
  264631711 => "Bralano",
  264631712 => "Bulwana",
  264631713 => "Dawiab",
  264631714 => "Deurstamp",
  264631715 => "Feldschuhorn",
  264631717 => "Gibeon",
  264631718 => "Goageb",
  264631719 => "Gochas",
  264631720 => "Grenslyn",
  264631722 => "Guibis",
  264631723 => "Hamab",
  264631724 => "Helmeringhausen",
  264631725 => "Hoachanas",
  264631727 => "Kalahariplaas",
  264631728 => "Kalkrand",
  264631729 => "Kalkrand",
  264631730 => "Karasburg",
  264631731 => "Karasburg",
  264631732 => "Karasburg",
  264631733 => "Karasburg",
  264631734 => "Karasburg",
  264631735 => "Keetmanshoop",
  264631736 => "Keetmanshoop",
  264631737 => "Keetmanshoop",
  264631738 => "Keetmanshoop",
  264631739 => "Keetmanshoop",
  264631740 => "Klein\ Karas",
  264631743 => "Lorelei",
  264631744 => "Luderitz",
  264631745 => "Luderitz",
  264631746 => "Luderitz",
  264631747 => "Luderitz",
  264631748 => "Luderitz",
  264631749 => "Maltahohe",
  264631750 => "Maltahohe",
  264631751 => "Mariental",
  264631752 => "Mariental",
  264631753 => "Mariental",
  264631754 => "Mariental",
  264631755 => "Mariental",
  264631759 => "Noordoewer",
  264631760 => "Noordoewer",
  264631762 => "Oamseb",
  264631763 => "Oranjemund",
  264631764 => "Oranjemund",
  264631765 => "Oranjemund",
  264631766 => "Oranjemund",
  264631767 => "Oranjemund",
  264631769 => "Rosh\ Pinah",
  264631770 => "Rosh\ Pinah",
  264631771 => "Schilp",
  264631772 => "Seeheim",
  264631774 => "Stampriet",
  264631775 => "Stinkdoring",
  264631776 => "Tses",
  264631777 => "Tsumispark",
  264631778 => "Uhabis",
  264631779 => "Warmbad",
  26463200 => "Luderitz",
  26463201 => "Luderitz",
  26463202 => "Luderitz",
  26463203 => "Luderitz",
  26463204 => "Luderitz",
  26463207 => "Luderitz",
  26463210 => "Luderitz",
  26463220 => "Keetmanshoop",
  26463221 => "Keetmanshoop",
  26463222 => "Keetmanshoop",
  26463223 => "Keetmanshoop",
  26463224 => "Keetmanshoop",
  264632260 => "Keetmanshoop",
  264632261 => "Keetmanshoop",
  264632264 => "Deurstamp",
  264632267 => "Feldschuhorn",
  26463227 => "Keetmanshoop",
  26463228 => "Keetmanshoop",
  26463229 => "Keetmanshoop",
  264632300 => "Oranjemund",
  264632307 => "Oranjemund",
  264632308 => "Oranjemund",
  264632309 => "Oranjemund",
  26463232 => "Oranjemund",
  26463233 => "Oranjemund",
  26463234 => "Oranjemund",
  26463235 => "Oranjemund",
  26463236 => "Oranjemund",
  26463237 => "Oranjemund",
  264632380 => "Oranjemund",
  264632381 => "Oranjemund",
  264632382 => "Luderitz",
  264632383 => "Luderitz",
  264632384 => "Oranjemund",
  264632385 => "Oranjemund",
  264632386 => "Oranjemund",
  264632387 => "Oranjemund",
  264632389 => "Luderitz\ \-\ Elizabeth\ Bay",
  26463239 => "Oranjemund",
  264632403 => "Mariental",
  264632404 => "Mariental",
  264632405 => "Mariental",
  264632406 => "Mariental",
  264632407 => "Mariental",
  264632408 => "Mariental",
  264632409 => "Mariental",
  26463241 => "Mariental",
  26463242 => "Mariental",
  26463243 => "Mariental",
  26463244 => "Mariental",
  26463246 => "Mariental",
  26463247 => "Mariental",
  26463248 => "Mariental",
  264632492 => "Mariental",
  264632500 => "Gochas",
  264632501 => "Gochas",
  264632502 => "Gochas",
  264632505 => "Seeheim",
  264632507 => "Narubis",
  26463251 => "Gibeon",
  264632520 => "Grenslyn",
  264632522 => "Asab",
  264632523 => "Asab",
  264632524 => "Bulwana",
  26463257 => "Tses",
  264632580 => "Aus",
  264632581 => "Aus",
  264632583 => "Guibis",
  264632589 => "Aus",
  26463260 => "Stampriet",
  264632610 => "Oamseb",
  264632611 => "Oamseb",
  26463262 => "Grunau",
  26463264 => "Kalkrand",
  264632650 => "Schilp",
  264632651 => "Schilp",
  264632653 => "Hoachanas",
  264632654 => "Hoachanas",
  264632655 => "Tsumispark",
  264632656 => "Tsumispark",
  264632657 => "Tsumispark",
  264632660 => "Klein\ Karas",
  264632690 => "Warmbad",
  264632691 => "Warmbad",
  264632693 => "Hamab",
  264632696 => "Stinkdoring",
  264632699 => "Uhabis",
  26463270 => "Karasburg",
  264632711 => "Karasburg",
  264632712 => "Karasburg",
  264632714 => "Karasburg",
  264632718 => "Karasburg",
  264632719 => "Karasburg",
  26463272 => "Aranos",
  264632730 => "Aminuis",
  264632731 => "Aminuis",
  264632732 => "Aminuis",
  264632733 => "Aminuis",
  26463274 => "Rosh\ Pinah",
  264632750 => "Kalahariplaas",
  264632752 => "Bralano",
  264632753 => "Bralano",
  264632754 => "Bralano",
  264632768 => "Aranos",
  264632769 => "Aranos",
  264632800 => "Ariamsvlei",
  264632801 => "Ariamsvlei",
  264632803 => "Dawiab",
  264632805 => "Aroab",
  264632806 => "Aroab",
  264632807 => "Aroab",
  264632808 => "Kais",
  264632809 => "Ariamsvlei",
  264632810 => "Köes",
  264632811 => "Gaibis",
  264632812 => "Deurstamp",
  264632830 => "Bethanie",
  264632831 => "Bethanie",
  264632833 => "Helmeringhausen",
  264632835 => "Goageb",
  264632837 => "Lorelei",
  264632839 => "Bethanie",
  264632849 => "Bethanie",
  264632900 => "Rosh\ Pinah",
  264632901 => "Rosh\ Pinah",
  264632902 => "Rosh\ Pinah",
  26463293 => "Maltahohe\/Solitaire",
  264632942 => "Kumakams",
  264632950 => "Namgorab",
  26463297 => "Noordoewer",
  26463345 => "Mariental",
  26463626 => "Helmeringhausen",
  26463683 => "Keetmanshoop",
  26463693 => "South",
  264637034 => "Keetmanshoop",
  264637035 => "Luderitz",
  264637100 => "Keetmanshoop",
  264637130 => "Keetmanshoop",
  264637180 => "Keetmanshoop",
  264637181 => "Keetmanshoop",
  264637182 => "Keetmanshoop",
  264637183 => "Keetmanshoop",
  264637184 => "Keetmanshoop",
  264637185 => "Keetmanshoop",
  264637190 => "Keetmanshoop",
  264637191 => "Keetmanshoop",
  264637192 => "Keetmanshoop",
  26463811 => "Keetmanshoop",
  264641700 => "Arandis",
  264641701 => "Arandis",
  264641702 => "Henties\ Bay",
  264641703 => "Henties\ Bay",
  264641704 => "Henties\ Bay",
  264641705 => "Henties\ Bay",
  264641706 => "Henties\ Bay",
  264641707 => "Karibib",
  264641708 => "Karibib",
  264641709 => "Langstrand",
  264641710 => "Langstrand",
  264641711 => "Langstrand",
  264641712 => "Leoburn",
  264641713 => "Omaruru",
  264641714 => "Omaruru",
  264641715 => "Omaruru",
  264641716 => "Omaruru",
  264641717 => "Omaruru",
  264641718 => "Omaruru",
  264641721 => "Rössing\ Mine",
  264641722 => "Rössing\ Mine",
  264641723 => "Swakopmund",
  264641724 => "Swakopmund",
  264641725 => "Swakopmund",
  264641726 => "Swakopmund",
  264641727 => "Swakopmund",
  264641728 => "Swakopmund",
  264641729 => "Swakopmund",
  26464173 => "Swakopmund",
  264641741 => "Swakopmund",
  264641742 => "Swakopmund",
  264641743 => "Tsaobis",
  264641746 => "Usakos",
  264641747 => "Usakos",
  264641748 => "Usakos",
  264641749 => "Usakos",
  26464175 => "Walvis\ Bay",
  26464176 => "Walvis\ Bay",
  2646420 => "Walvis\ Bay",
  26464210 => "Walvis\ Bay",
  264642110 => "Langstrand",
  264642111 => "Langstrand",
  264642112 => "Langstrand",
  264642118 => "Walvis\ Bay",
  264642119 => "Walvis\ Bay",
  26464219 => "Walvis\ Bay",
  26464220 => "Walvis\ Bay",
  26464221 => "Walvis\ Bay",
  26464270 => "Walvis\ Bay",
  26464271 => "Walvis\ Bay",
  26464272 => "Walvis\ Bay",
  26464273 => "Walvis\ Bay",
  26464274 => "Walvis\ Bay",
  26464275 => "Walvis\ Bay",
  26464276 => "Walvis\ Bay",
  26464400 => "Swakopmund",
  26464401 => "Swakopmund",
  26464402 => "Swakopmund",
  26464403 => "Swakopmund",
  26464404 => "Swakopmund",
  26464405 => "Swakopmund",
  26464406 => "Swakopmund",
  26464407 => "Swakopmund",
  2646441 => "Swakopmund",
  26464461 => "Swakopmund",
  26464462 => "Swakopmund",
  26464463 => "Swakopmund",
  26464464 => "Swakopmund",
  264644650 => "Swakopmund",
  26464500 => "Henties\ Bay",
  26464501 => "Henties\ Bay",
  26464502 => "Henties\ Bay",
  26464504 => "Uis",
  26464510 => "Arandis",
  26464511 => "Arandis",
  26464512 => "Arandis",
  26464520 => "Rössing\ Mine",
  264645212 => "Rössing\ Mine",
  264645213 => "Rössing\ Mine",
  264645214 => "Rössing\ Mine",
  264645219 => "Rössing\ Mine",
  264645220 => "Rössing\ Mine",
  264645221 => "Rössing\ Mine",
  26464530 => "Usakos",
  264645315 => "Usakos",
  264645316 => "Usakos",
  264645317 => "Usakos",
  264645318 => "Usakos",
  264645319 => "Usakos",
  264645508 => "Tsaobis\/Karibib",
  26464550 => "Karibib",
  26464551 => "Otjimbingwe",
  264645520 => "Karibib",
  264645521 => "Karibib",
  264645537 => "Karibib",
  264645539 => "Karibib",
  26464570 => "Omaruru",
  264645710 => "Omaruru",
  264645711 => "Omaruru",
  264645712 => "Omaruru",
  264645713 => "Omaruru",
  264645714 => "Omaruru",
  26464572 => "Omaruru",
  26464573 => "Omaruru",
  26464694 => "Central",
  264647026 => "Walvis\ Bay",
  264647027 => "Walvis\ Bay",
  264647028 => "Swakopmund",
  264647100 => "Walvis\ Bay",
  264647130 => "Walvis\ Bay",
  264647162 => "Swakopmund",
  264647165 => "Walvis\ Bay",
  264647172 => "Swakopmund",
  264651701 => "Anamulenge",
  264651702 => "Blue\ Sodalite\ Mine",
  264651703 => "Edundja",
  264651704 => "Edundja",
  264651705 => "Eenhana",
  264651706 => "Eenhana",
  264651707 => "Ehomba",
  264651708 => "Elim",
  264651709 => "Elim",
  264651710 => "Endola",
  264651711 => "Etanga",
  264651712 => "Etunda",
  264651713 => "Etunda",
  264651714 => "Haiyandja",
  264651715 => "Kaoko\ Otavi",
  264651716 => "Kunene\ River\ Lodge",
  264651717 => "Mahenene",
  264651719 => "Ombombo",
  264651720 => "Odibo",
  264651721 => "Ogongo",
  264651722 => "Ohandungu",
  264651723 => "Ohangwena",
  264651724 => "Ohangwena",
  264651725 => "Ohangwena",
  264651726 => "Ohangwena",
  264651727 => "Okahao",
  264651728 => "Okalongo",
  264651729 => "Okangwati",
  264651730 => "Okatope",
  264651731 => "Okorosave",
  264651732 => "Oluno",
  264651733 => "Oluno",
  264651734 => "Oluno",
  264651735 => "Omafu",
  264651736 => "Ombalantu",
  264651737 => "Ombalantu",
  264651738 => "Ombalantu",
  264651739 => "Omungwelume",
  264651740 => "Omutsewonime",
  264651741 => "Onandjokwe",
  264651742 => "Onathinge",
  264651743 => "Ondangwa",
  264651744 => "Ondangwa",
  264651745 => "Ondangwa",
  264651746 => "Ondangwa",
  264651747 => "Ondangwa",
  264651748 => "Ondobe",
  264651749 => "Onuno",
  264651751 => "Onesi",
  264651752 => "Ongenga",
  264651753 => "Ongha",
  264651754 => "Ongha",
  264651756 => "Ongwediva",
  264651757 => "Ongwediva",
  264651759 => "Ondundu",
  264651760 => "Opuwo",
  264651761 => "Opuwo",
  264651762 => "Orumana",
  264651763 => "Oshakati",
  264651764 => "Oshakati",
  264651765 => "Oshakati",
  264651766 => "Oshakati",
  264651767 => "Oshakati",
  264651768 => "Oshifo",
  264651769 => "Oshigambo",
  264651770 => "Oshikango",
  264651771 => "Oshikuku",
  264651772 => "Oshitayi",
  264651773 => "Otjondeka",
  264651774 => "Otwani",
  264651775 => "Panosa",
  264651776 => "Ruacana",
  264651777 => "Ruacana",
  264651778 => "Sesfontein",
  264651781 => "Tsandi",
  264651782 => "Tsandi",
  264651783 => "Warmquelle",
  26465200 => "Ombalantu",
  26465201 => "Oshakati",
  26465202 => "Oshakati",
  26465203 => "Oshakati",
  26465204 => "Oshakati",
  26465205 => "Oshakati",
  26465206 => "Oshakati",
  26465207 => "Oshakati",
  26465208 => "Oshakati",
  26465209 => "Oshakati",
  26465220 => "Oshakati",
  26465221 => "Oshakati",
  26465222 => "Oshakati",
  26465223 => "Oshakati",
  26465224 => "Oshakati",
  26465225 => "Oshakati",
  26465226 => "Oshakati",
  26465227 => "Oshakati",
  264652290 => "Oshakati",
  26465230 => "Ongwediva",
  26465231 => "Ongwediva",
  264652320 => "Ongwediva",
  264652321 => "Ongwediva",
  264652324 => "Ongwediva",
  264652325 => "Ongwediva",
  264652327 => "Ongwediva",
  264652328 => "Ongwediva",
  264652329 => "Ongwediva",
  26465233 => "Ongwediva",
  26465234 => "Ongwediva",
  26465240 => "Ondangwa",
  26465241 => "Ondangwa",
  26465242 => "Ondangwa",
  26465243 => "Ondangwa",
  264652440 => "Omuthiya",
  264652441 => "Omuthiya",
  264652446 => "Omuthiya",
  264652447 => "Omuthiya",
  264652448 => "Omuthiya",
  264652449 => "Omuthiya",
  264652450 => "Oshitayi",
  264652451 => "Oshitayi",
  264652452 => "Haiyandja",
  264652453 => "Haiyandja",
  264652454 => "Ongha",
  264652455 => "Ongha",
  264652456 => "Oluno",
  264652457 => "Oluno",
  264652458 => "Oluno",
  264652459 => "Oluno",
  264652460 => "Oluno",
  264652461 => "Oluno",
  264652462 => "Oluno",
  264652463 => "Oluno",
  264652464 => "Oluno",
  264652481 => "Onandjokwe",
  264652482 => "Onandjokwe",
  264652483 => "Onandjokwe",
  264652488 => "Onathinge",
  264652489 => "Onathinge",
  264652490 => "Onathinge",
  264652491 => "Onathinge",
  264652492 => "Onathinge",
  264652493 => "Onathinge",
  264652494 => "Onathinge",
  264652503 => "Anamulenge",
  264652504 => "Anamulenge",
  264652507 => "Ombalantu",
  264652508 => "Ombalantu",
  264652509 => "Ombalantu",
  26465251 => "Ombalantu",
  264652520 => "Okahao",
  264652521 => "Okahao",
  264652522 => "Okahao",
  264652523 => "Okahao",
  264652524 => "Okahao",
  264652525 => "Okahao",
  264652526 => "Okahao",
  264652531 => "Okahao",
  264652532 => "Okahao",
  264652535 => "Okalongo",
  264652536 => "Okalongo",
  264652537 => "Okalongo",
  264652545 => "Oshikuku",
  264652546 => "Oshikuku",
  264652547 => "Oshikuku",
  264652560 => "Etilyasa",
  264652562 => "Onaanda",
  264652565 => "Elim",
  264652566 => "Elim",
  264652567 => "Elim",
  264652570 => "Ogongo",
  264652571 => "Ogongo",
  264652572 => "Ogongo",
  264652580 => "Tsandi",
  264652581 => "Tsandi",
  264652582 => "Tsandi",
  264652587 => "Onesi",
  264652588 => "Onesi",
  264652589 => "Onesi",
  264652590 => "Mahenene",
  264652591 => "Mahenene",
  264652595 => "Etunda",
  264652596 => "Etunda",
  264652598 => "Eunda",
  264652600 => "Ohangwena",
  264652601 => "Ohangwena",
  264652620 => "Onuno",
  264652621 => "Onuno",
  264652622 => "Okatope",
  264652623 => "Okatope",
  264652624 => "Ondobe",
  264652625 => "Ondobe",
  264652628 => "Ongha",
  264652629 => "Ongha",
  264652630 => "Eenhana",
  264652631 => "Eenhana",
  264652632 => "Eenhana",
  264652633 => "Eenhana",
  264652634 => "Eenhana",
  264652635 => "Eenhana",
  264652636 => "Eenhana",
  264652640 => "Eenhana",
  264652641 => "Eenhana",
  264652642 => "Eenhana",
  264652643 => "Eenhana",
  264652644 => "Oshigambo",
  264652645 => "Oshigambo",
  264652646 => "Oshikango",
  264652647 => "Oshikango",
  264652648 => "Oshikango",
  264652649 => "Oshikango",
  264652650 => "Oshikango",
  264652651 => "Oshikango",
  264652652 => "Oshikango",
  264652653 => "Oshikango",
  264652654 => "Oshikango",
  264652655 => "Oshikango",
  264652657 => "Oshikango",
  264652663 => "Oshikango",
  264652664 => "Oshikango",
  264652665 => "Oshikango",
  264652666 => "Omafu",
  264652667 => "Omafu",
  264652675 => "Omafu",
  264652676 => "Odibo",
  264652677 => "Odibo",
  264652681 => "Edundja",
  264652682 => "Edundja",
  264652683 => "Ongenga",
  264652688 => "Endola",
  264652689 => "Endola",
  264652690 => "Omungwelume",
  264652691 => "Omungwelume",
  264652692 => "Omungwelume",
  264652700 => "Ruacana",
  264652701 => "Ruacana",
  264652702 => "Ruacana",
  264652710 => "Etoto",
  264652714 => "Ruacana",
  264652715 => "Ruacana",
  264652716 => "Ruacana",
  264652717 => "Ruacana",
  264652718 => "Ruacana",
  264652719 => "Ruacana",
  264652720 => "Oshifo",
  264652721 => "Oshifo",
  264652725 => "Oshifo",
  264652728 => "Opuwo",
  264652729 => "Opuwo",
  264652730 => "Opuwo",
  264652731 => "Opuwo",
  264652732 => "Opuwo",
  264652733 => "Opuwo",
  264652734 => "Opuwo",
  264652735 => "Opuwo",
  264652737 => "Opuwo",
  264652738 => "Opuwo",
  264652739 => "Opuwo",
  26465273 => "Otjerunda",
  264652740 => "Ehomba",
  264652741 => "Sodalite",
  264652742 => "Panosa",
  264652743 => "Kunene\ River\ Lodge",
  264652744 => "Etanga",
  264652745 => "Okangwati",
  264652746 => "Ohandungu",
  264652747 => "Kaoko\ Otavi",
  264652748 => "Okorosave",
  264652749 => "Orumana",
  264652750 => "Otwani",
  264652751 => "Otjondeka",
  264652752 => "Ombombo",
  264652753 => "Warmquelle",
  264652755 => "Sesfontein",
  264652762 => "Kowares",
  264652764 => "Otjitjekwa",
  264652766 => "Oruvandjai",
  264652800 => "Ondangwa",
  264652801 => "Ondangwa",
  264652822 => "Ondangwa",
  264652850 => "Omutsewonime",
  264652853 => "Okashana",
  264652856 => "Onyaanya",
  264652860 => "Okapuku",
  264652863 => "Onankali",
  264652866 => "Okatope",
  264652870 => "Oniingo",
  264652880 => "Omundaungilo",
  264652882 => "Oshuli",
  264652884 => "Okongo",
  264652885 => "Okongo",
  264652886 => "Ekoka",
  264652888 => "Epembe",
  264652890 => "Okankolo",
  264652892 => "Omuntele",
  264652894 => "Oshikunde",
  264652896 => "Onyuulaye",
  26465290 => "Eenhana",
  26465695 => "North",
  264657031 => "Ondangwa",
  264657032 => "Oshakati",
  264657100 => "Oshakati",
  264657130 => "Oshakati",
  264657142 => "Oshakati",
  264657145 => "Oshakati",
  264657152 => "Oshakati",
  264657165 => "Oshakati",
  264661701 => "Bagani",
  264661702 => "Bagani",
  264661703 => "Bukalo",
  264661704 => "Bunia",
  264661705 => "Hakasembe",
  264661706 => "K\.\ Murangi",
  264661707 => "Kahenge",
  264661708 => "Katima\-Mulilo",
  264661709 => "Katima\-Mulilo",
  264661710 => "Katima\-Mulilo",
  264661711 => "Kongola",
  264661712 => "Mpacha",
  264661713 => "Marangi",
  264661714 => "Mashare",
  264661715 => "Matava",
  264661716 => "Muveke",
  264661717 => "Nkurenkuru",
  264661718 => "Nakayale\/Nkurenkuru",
  264661719 => "Nzinze",
  264661720 => "Omega",
  264661721 => "Rundu",
  264661722 => "Rundu",
  264661723 => "Rundu",
  264661724 => "Rundu",
  264661725 => "Rupara",
  264661726 => "Ruuga",
  264661727 => "Sikono",
  264661728 => "Nyangana",
  264662500 => "Nakayale\/Omega",
  264662501 => "Nakayale",
  264662502 => "Mpacha\/Ngoma",
  264662504 => "Kongola",
  264662506 => "Ngoma",
  264662508 => "Ngoma",
  26466251 => "Katima\-Mulilo",
  26466252 => "Katima\-Mulilo",
  26466253 => "Katima\-Mulilo",
  26466254 => "Katima\-Mulilo",
  26466255 => "Rundu",
  26466256 => "Rundu",
  264662570 => "Sikono",
  264662571 => "Ruuga",
  264662572 => "Hakasembe",
  264662573 => "Bunia",
  264662574 => "Matava",
  264662575 => "Nzinze",
  264662576 => "Rupara",
  264662577 => "Muveke",
  264662578 => "Marangi",
  264662579 => "Kahenge",
  264662580 => "Nkurenkuru",
  264662581 => "Nkurenkuru",
  264662582 => "Nyangana",
  264662586 => "Mashare",
  264662587 => "Mashare",
  264662588 => "Nyangana",
  264662589 => "Rundu",
  264662590 => "Bagani",
  264662591 => "Bagani",
  264662592 => "Bagani",
  264662593 => "Bagani",
  264662596 => "Sambyu",
  264662597 => "Sambyu",
  264662599 => "Muhembo",
  264662600 => "Mpungu",
  26466261 => "Katima\-Mulilo",
  264662627 => "Katima\-Mulilo",
  264662640 => "Nyangana",
  26466265 => "Rundu",
  26466266 => "Rundu",
  264662670 => "Rundu",
  264662671 => "Rundu",
  264662672 => "Rundu",
  264662673 => "Rundu",
  264662674 => "Rundu",
  26466269 => "Rundu",
  26466381 => "Maltahohe",
  26466385 => "Namgorab",
  26466423 => "Kalahariplaas",
  26466696 => "North\ East",
  264667030 => "Rundu",
  264667143 => "Rundu",
  264667145 => "Katima\-Mulilo",
  264667153 => "Rundu",
  264671700 => "Andara",
  264671740 => "Abenab",
  264671741 => "Anker",
  264671742 => "Sorris\-Sorris",
  264671743 => "Biermanskool",
  264671745 => "Halali",
  264671746 => "Horabe",
  264671747 => "Kalkfeld",
  264671748 => "Kamanjab",
  264671749 => "Khorixas",
  264671751 => "Khorixas",
  264671753 => "Kombat",
  264671754 => "Lindequest",
  264671756 => "Maroelaboom",
  264671757 => "Etosha\ Rurtel",
  264671759 => "Okakarara",
  264671760 => "Okakarara",
  264671762 => "Okaputa",
  264671763 => "Okaukuejo",
  264671764 => "Okorusu",
  264671765 => "Omatjene",
  264671766 => "Etosha\ Rurtel",
  264671767 => "Etosha\ Rurtel",
  264671768 => "Etosha\ Rurtel",
  264671770 => "Otavi",
  264671771 => "Otavi",
  264671773 => "Otjiwarongo",
  264671774 => "Otjiwarongo",
  264671775 => "Otjiwarongo",
  264671776 => "Otjiwarongo",
  264671777 => "Otjiwarongo",
  264671778 => "Outjo",
  264671779 => "Outjo",
  264671782 => "Toshari",
  264671783 => "Tsumeb",
  264671784 => "Tsumeb",
  264671785 => "Tsumeb",
  264671786 => "Tsumeb",
  264671787 => "Tsumeb",
  264671789 => "Uchab",
  264671790 => "Uib",
  264671791 => "Waterberg\ Plateau\ Park",
  264671792 => "Waterberg\ Plateau\ Park",
  264671793 => "Waterberg\ Plateau\ Park",
  264671794 => "Epupa",
  264671797 => "Grootfontein",
  264671798 => "Grootfontein",
  264671799 => "Grootfontein",
  26467220 => "Tsumeb",
  26467221 => "Tsumeb",
  26467222 => "Tsumeb",
  26467223 => "Tsumeb",
  26467224 => "Tsumeb",
  264672290 => "Etosha\ Rurtel",
  264672291 => "Etosha\ Rurtel",
  264672292 => "Etosha\ Rurtel\/Lindequest",
  264672293 => "Etosha\ Rurtel\/Namutoni",
  264672294 => "Etosha\ Rurtel\/Halali",
  264672295 => "Etosha\ Rurtel\/Ombika",
  264672296 => "Etosha\ Rurtel\/Ongava",
  264672297 => "Etosha\ Rurtel",
  264672298 => "Etosha\ Rurtel\/Okaukuejo",
  26467229 => "Mokuti",
  26467230 => "Oshivello",
  264672310 => "Kombat",
  264672311 => "Kombat",
  264672312 => "Kombat",
  264672315 => "Rietfontein",
  264672316 => "Rietfontein",
  264672320 => "Abenab",
  264672323 => "Horabe",
  264672326 => "Maroelaboom",
  264672327 => "Maroelaboom",
  264672329 => "Coblenz",
  26467234 => "Otavi",
  264672350 => "Uib",
  264672357 => "Otavi",
  264672358 => "Otavi",
  264672359 => "Otavi",
  26467240 => "Grootfontein",
  26467241 => "Grootfontein",
  26467242 => "Grootfontein",
  26467243 => "Grootfontein",
  264672440 => "Tsumkwe",
  264672441 => "Tsumkwe",
  264672450 => "Mangetti\ duin",
  264672455 => "Gam",
  26467248 => "Grootfontein",
  264672491 => "Grootfontein",
  264672492 => "Grootfontein",
  264672493 => "Grootfontein",
  264672494 => "Grootfontein",
  264672583 => "Andara",
  264672584 => "Andara",
  264672615 => "Uchab",
  264672616 => "Uchab",
  264672617 => "Uchab",
  264672900 => "Kalkfeld",
  264672901 => "Kalkfeld",
  264672902 => "Kalkfeld",
  264672903 => "Epupa",
  264672982 => "Tsumeb",
  26467300 => "Otjiwarongo",
  26467301 => "Otjiwarongo",
  26467302 => "Otjiwarongo",
  26467303 => "Otjiwarongo",
  26467304 => "Otjiwarongo",
  264673050 => "Waterberg\ Plateau\ Park",
  264673051 => "Waterberg\ Plateau\ Park",
  264673052 => "Otjiwarongo",
  264673053 => "Otjiwarongo",
  264673054 => "Okorusu",
  264673055 => "Okorusu",
  264673060 => "Otjiwarongo",
  264673061 => "Otjiwarongo",
  264673062 => "Klein\ Waterberg",
  264673063 => "Klein\ Waterberg",
  264673064 => "Klein\ Waterberg",
  264673065 => "Klein\ Waterberg",
  264673066 => "Klein\ Waterberg",
  264673067 => "Klein\ Waterberg",
  264673068 => "Omatjene",
  26467307 => "Otjiwarongo",
  26467308 => "Otjiwarongo",
  264673090 => "Okaputa",
  264673091 => "Okaputa",
  26467312 => "Outjo",
  26467313 => "Outjo",
  264673167 => "Okakarara",
  264673168 => "Okakarara",
  264673169 => "Okakarara",
  26467317 => "Okakarara",
  264673180 => "Okamatapati",
  264673181 => "Okamatapati",
  26467330 => "Kamanjab",
  26467331 => "Kamanjab\/Khorixas",
  264673320 => "Khorixas",
  264673321 => "Khorixas",
  264673322 => "Sorris\-Sorris",
  264673323 => "Sorris\-Sorris",
  264673324 => "Sorris\-Sorris",
  264673325 => "Sorris\-Sorris",
  26467332 => "Kamanjab",
  264673330 => "Anker",
  264673332 => "Biermanskool",
  264673333 => "Biermanskool",
  264673334 => "Toshari",
  264673335 => "Toshari",
  26467333 => "Kamanjab",
  26467334 => "Kamanjab",
  26467335 => "Kamanjab\/Khorixas",
  26467697 => "North",
  264677029 => "Grootfontein",
  264677140 => "Grootfontein",
  264677141 => "Grootfontein",
  264677145 => "Grootfontein",
  264677150 => "Grootfontein",
  264677151 => "Grootfontein",
  264677163 => "Otjiwarongo",
  264677165 => "Anker\/Braunfels\/Fransfontein",
  264677166 => "Kamanjab\/Otavi",
  264677173 => "Otjiwarongo",
);
    sub new {
      my $class = shift;
      my $number = shift;
      $number =~ s/(^\+264|\D)//g;
      my $self = bless({ number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
  
      return $self if ($self->is_valid());
      $number =~ s/(^0)//g;
      $self = bless({ number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
    return $self->is_valid() ? $self : undef;
}
1;