Free cookie consent management tool by TermsFeed Policy Generator

Changeset 6852


Ignore:
Timestamp:
09/29/11 17:16:42 (13 years ago)
Author:
ascheibe
Message:

#1648 worked on webservice

Location:
branches/ClientUserManagement
Files:
2 added
12 edited
3 copied

Legend:

Unmodified
Added
Removed
  • branches/ClientUserManagement/HeuristicLab.GeoIP/1.12/DatabaseInfo.cs

    r6826 r6852  
    2121
    2222using System;
    23 using System.IO;
    2423
    2524public class DatabaseInfo {
    2625
    27     public static int COUNTRY_EDITION = 1;
    28     public static int REGION_EDITION_REV0 = 7;
    29     public static int REGION_EDITION_REV1 = 3;
    30     public static int CITY_EDITION_REV0 = 6;
    31     public static int CITY_EDITION_REV1 = 2;
    32     public static int ORG_EDITION = 5;
    33     public static int ISP_EDITION = 4;
    34     public static int PROXY_EDITION = 8;
    35     public static int ASNUM_EDITION = 9;
    36     public static int NETSPEED_EDITION = 10;
     26  public static int COUNTRY_EDITION = 1;
     27  public static int REGION_EDITION_REV0 = 7;
     28  public static int REGION_EDITION_REV1 = 3;
     29  public static int CITY_EDITION_REV0 = 6;
     30  public static int CITY_EDITION_REV1 = 2;
     31  public static int ORG_EDITION = 5;
     32  public static int ISP_EDITION = 4;
     33  public static int PROXY_EDITION = 8;
     34  public static int ASNUM_EDITION = 9;
     35  public static int NETSPEED_EDITION = 10;
    3736
    38     //private static SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
     37  //private static SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
    3938
    40     private String info;
    41    /**
    42      * Creates a new DatabaseInfo object given the database info String.
    43      * @param info
    44      */
     39  private String info;
     40  /**
     41    * Creates a new DatabaseInfo object given the database info String.
     42    * @param info
     43    */
    4544
    46     public DatabaseInfo(String info) {
    47         this.info = info;
     45  public DatabaseInfo(String info) {
     46    this.info = info;
     47  }
     48
     49  public int getType() {
     50    if ((info == null) | (info == "")) {
     51      return COUNTRY_EDITION;
     52    } else {
     53      // Get the type code from the database info string and then
     54      // subtract 105 from the value to preserve compatability with
     55      // databases from April 2003 and earlier.
     56      return Convert.ToInt32(info.Substring(4, 7)) - 105;
    4857    }
     58  }
    4959
    50     public int getType() {
    51         if ((info == null) | (info == "")) {
    52             return COUNTRY_EDITION;
     60  /**
     61   * Returns true if the database is the premium version.
     62   *
     63   * @return true if the premium version of the database.
     64   */
     65  public bool isPremium() {
     66    return info.IndexOf("FREE") < 0;
     67  }
     68
     69  /**
     70   * Returns the date of the database.
     71   *
     72   * @return the date of the database.
     73   */
     74  public DateTime getDate() {
     75    for (int i = 0; i < info.Length - 9; i++) {
     76      if (Char.IsWhiteSpace(info[i]) == true) {
     77        String dateString = info.Substring(i + 1, i + 9);
     78        try {
     79          //synchronized (formatter) {
     80          return DateTime.ParseExact(dateString, "yyyyMMdd", null);
     81          //}
    5382        }
    54         else {
    55             // Get the type code from the database info string and then
    56             // subtract 105 from the value to preserve compatability with
    57             // databases from April 2003 and earlier.
    58             return Convert.ToInt32(info.Substring(4, 7)) - 105;
     83        catch (Exception e) {
     84          Console.Write(e.Message);
    5985        }
     86        break;
     87      }
    6088    }
     89    return DateTime.Now;
     90  }
    6191
    62     /**
    63      * Returns true if the database is the premium version.
    64      *
    65      * @return true if the premium version of the database.
    66      */
    67     public bool isPremium() {
    68         return info.IndexOf("FREE") < 0;
    69     }
    70 
    71     /**
    72      * Returns the date of the database.
    73      *
    74      * @return the date of the database.
    75      */
    76     public DateTime getDate() {
    77         for (int i=0; i<info.Length-9; i++) {
    78             if (Char.IsWhiteSpace(info[i]) == true) {
    79                String dateString = info.Substring(i+1, i+9);
    80                 try {
    81                     //synchronized (formatter) {
    82                         return DateTime.ParseExact(dateString,"yyyyMMdd",null);
    83                     //}
    84                 }
    85                 catch (Exception e) {
    86       Console.Write(e.Message);
    87     }
    88                 break;
    89             }
    90         }
    91         return DateTime.Now;
    92     }
    93 
    94     public String toString() {
    95         return info;
    96     }
     92  public String toString() {
     93    return info;
     94  }
    9795}
    9896
  • branches/ClientUserManagement/HeuristicLab.GeoIP/1.12/RegionName.cs

    r6826 r6852  
    44using System.Collections;
    55
    6 public static class RegionName
    7 {
     6public static class RegionName {
    87
    9     private static Hashtable GEOIP_REGION_NAME;
    10  
    11     public static String getRegionName(String ccode, String region ) {
    12         if ( GEOIP_REGION_NAME == null ) {
    13             init_region_names();
    14         }
     8  private static Hashtable GEOIP_REGION_NAME;
    159
    16         if ( region == null || region == "00" ){
    17             return null;
    18     }
    19 
    20         if ( !GEOIP_REGION_NAME.ContainsKey( ccode ) ) {
    21             return null;
    22         }
    23 
    24         return (String)((Hashtable)GEOIP_REGION_NAME[ccode])[region];
     10  public static String getRegionName(String ccode, String region) {
     11    if (GEOIP_REGION_NAME == null) {
     12      init_region_names();
    2513    }
    2614
    27     private static void init_region_names(){
     15    if (region == null || region == "00") {
     16      return null;
     17    }
    2818
    29         GEOIP_REGION_NAME = new Hashtable();
    30         Hashtable cc_reg_AD = new Hashtable();
    31         cc_reg_AD.Add( "02", "Canillo" );
    32         cc_reg_AD.Add( "03", "Encamp" );
    33         cc_reg_AD.Add( "04", "La Massana" );
    34         cc_reg_AD.Add( "05", "Ordino" );
    35         cc_reg_AD.Add( "06", "Sant Julia de Loria" );
    36         cc_reg_AD.Add( "07", "Andorra la Vella" );
    37         cc_reg_AD.Add( "08", "Escaldes-Engordany" );
    38         GEOIP_REGION_NAME.Add( "AD", cc_reg_AD );
    39         Hashtable cc_reg_AE = new Hashtable();
    40         cc_reg_AE.Add( "01", "Abu Dhabi" );
    41         cc_reg_AE.Add( "02", "Ajman" );
    42         cc_reg_AE.Add( "03", "Dubai" );
    43         cc_reg_AE.Add( "04", "Fujairah" );
    44         cc_reg_AE.Add( "05", "Ras Al Khaimah" );
    45         cc_reg_AE.Add( "06", "Sharjah" );
    46         cc_reg_AE.Add( "07", "Umm Al Quwain" );
    47         GEOIP_REGION_NAME.Add( "AE", cc_reg_AE );
    48         Hashtable cc_reg_AF = new Hashtable();
    49         cc_reg_AF.Add( "01", "Badakhshan" );
    50         cc_reg_AF.Add( "02", "Badghis" );
    51         cc_reg_AF.Add( "03", "Baghlan" );
    52         cc_reg_AF.Add( "05", "Bamian" );
    53         cc_reg_AF.Add( "06", "Farah" );
    54         cc_reg_AF.Add( "07", "Faryab" );
    55         cc_reg_AF.Add( "08", "Ghazni" );
    56         cc_reg_AF.Add( "09", "Ghowr" );
    57         cc_reg_AF.Add( "10", "Helmand" );
    58         cc_reg_AF.Add( "11", "Herat" );
    59         cc_reg_AF.Add( "13", "Kabol" );
    60         cc_reg_AF.Add( "14", "Kapisa" );
    61         cc_reg_AF.Add( "15", "Konar" );
    62         cc_reg_AF.Add( "16", "Laghman" );
    63         cc_reg_AF.Add( "17", "Lowgar" );
    64         cc_reg_AF.Add( "18", "Nangarhar" );
    65         cc_reg_AF.Add( "19", "Nimruz" );
    66         cc_reg_AF.Add( "21", "Paktia" );
    67         cc_reg_AF.Add( "22", "Parvan" );
    68         cc_reg_AF.Add( "23", "Kandahar" );
    69         cc_reg_AF.Add( "24", "Kondoz" );
    70         cc_reg_AF.Add( "26", "Takhar" );
    71         cc_reg_AF.Add( "27", "Vardak" );
    72         cc_reg_AF.Add( "28", "Zabol" );
    73         cc_reg_AF.Add( "29", "Paktika" );
    74         cc_reg_AF.Add( "30", "Balkh" );
    75         cc_reg_AF.Add( "31", "Jowzjan" );
    76         cc_reg_AF.Add( "32", "Samangan" );
    77         cc_reg_AF.Add( "33", "Sar-e Pol" );
    78         cc_reg_AF.Add( "34", "Konar" );
    79         cc_reg_AF.Add( "35", "Laghman" );
    80         cc_reg_AF.Add( "36", "Paktia" );
    81         cc_reg_AF.Add( "37", "Khowst" );
    82         cc_reg_AF.Add( "38", "Nurestan" );
    83         cc_reg_AF.Add( "39", "Oruzgan" );
    84         cc_reg_AF.Add( "40", "Parvan" );
    85         cc_reg_AF.Add( "41", "Daykondi" );
    86         cc_reg_AF.Add( "42", "Panjshir" );
    87         GEOIP_REGION_NAME.Add( "AF", cc_reg_AF );
    88         Hashtable cc_reg_AG = new Hashtable();
    89         cc_reg_AG.Add( "01", "Barbuda" );
    90         cc_reg_AG.Add( "03", "Saint George" );
    91         cc_reg_AG.Add( "04", "Saint John" );
    92         cc_reg_AG.Add( "05", "Saint Mary" );
    93         cc_reg_AG.Add( "06", "Saint Paul" );
    94         cc_reg_AG.Add( "07", "Saint Peter" );
    95         cc_reg_AG.Add( "08", "Saint Philip" );
    96         GEOIP_REGION_NAME.Add( "AG", cc_reg_AG );
    97         Hashtable cc_reg_AL = new Hashtable();
    98         cc_reg_AL.Add( "40", "Berat" );
    99         cc_reg_AL.Add( "41", "Diber" );
    100         cc_reg_AL.Add( "42", "Durres" );
    101         cc_reg_AL.Add( "43", "Elbasan" );
    102         cc_reg_AL.Add( "44", "Fier" );
    103         cc_reg_AL.Add( "45", "Gjirokaster" );
    104         cc_reg_AL.Add( "46", "Korce" );
    105         cc_reg_AL.Add( "47", "Kukes" );
    106         cc_reg_AL.Add( "48", "Lezhe" );
    107         cc_reg_AL.Add( "49", "Shkoder" );
    108         cc_reg_AL.Add( "50", "Tirane" );
    109         cc_reg_AL.Add( "51", "Vlore" );
    110         GEOIP_REGION_NAME.Add( "AL", cc_reg_AL );
    111         Hashtable cc_reg_AM = new Hashtable();
    112         cc_reg_AM.Add( "01", "Aragatsotn" );
    113         cc_reg_AM.Add( "02", "Ararat" );
    114         cc_reg_AM.Add( "03", "Armavir" );
    115         cc_reg_AM.Add( "04", "Geghark'unik'" );
    116         cc_reg_AM.Add( "05", "Kotayk'" );
    117         cc_reg_AM.Add( "06", "Lorri" );
    118         cc_reg_AM.Add( "07", "Shirak" );
    119         cc_reg_AM.Add( "08", "Syunik'" );
    120         cc_reg_AM.Add( "09", "Tavush" );
    121         cc_reg_AM.Add( "10", "Vayots' Dzor" );
    122         cc_reg_AM.Add( "11", "Yerevan" );
    123         GEOIP_REGION_NAME.Add( "AM", cc_reg_AM );
    124         Hashtable cc_reg_AO = new Hashtable();
    125         cc_reg_AO.Add( "01", "Benguela" );
    126         cc_reg_AO.Add( "02", "Bie" );
    127         cc_reg_AO.Add( "03", "Cabinda" );
    128         cc_reg_AO.Add( "04", "Cuando Cubango" );
    129         cc_reg_AO.Add( "05", "Cuanza Norte" );
    130         cc_reg_AO.Add( "06", "Cuanza Sul" );
    131         cc_reg_AO.Add( "07", "Cunene" );
    132         cc_reg_AO.Add( "08", "Huambo" );
    133         cc_reg_AO.Add( "09", "Huila" );
    134         cc_reg_AO.Add( "10", "Luanda" );
    135         cc_reg_AO.Add( "12", "Malanje" );
    136         cc_reg_AO.Add( "13", "Namibe" );
    137         cc_reg_AO.Add( "14", "Moxico" );
    138         cc_reg_AO.Add( "15", "Uige" );
    139         cc_reg_AO.Add( "16", "Zaire" );
    140         cc_reg_AO.Add( "17", "Lunda Norte" );
    141         cc_reg_AO.Add( "18", "Lunda Sul" );
    142         cc_reg_AO.Add( "19", "Bengo" );
    143         cc_reg_AO.Add( "20", "Luanda" );
    144         GEOIP_REGION_NAME.Add( "AO", cc_reg_AO );
    145         Hashtable cc_reg_AR = new Hashtable();
    146         cc_reg_AR.Add( "01", "Buenos Aires" );
    147         cc_reg_AR.Add( "02", "Catamarca" );
    148         cc_reg_AR.Add( "03", "Chaco" );
    149         cc_reg_AR.Add( "04", "Chubut" );
    150         cc_reg_AR.Add( "05", "Cordoba" );
    151         cc_reg_AR.Add( "06", "Corrientes" );
    152         cc_reg_AR.Add( "07", "Distrito Federal" );
    153         cc_reg_AR.Add( "08", "Entre Rios" );
    154         cc_reg_AR.Add( "09", "Formosa" );
    155         cc_reg_AR.Add( "10", "Jujuy" );
    156         cc_reg_AR.Add( "11", "La Pampa" );
    157         cc_reg_AR.Add( "12", "La Rioja" );
    158         cc_reg_AR.Add( "13", "Mendoza" );
    159         cc_reg_AR.Add( "14", "Misiones" );
    160         cc_reg_AR.Add( "15", "Neuquen" );
    161         cc_reg_AR.Add( "16", "Rio Negro" );
    162         cc_reg_AR.Add( "17", "Salta" );
    163         cc_reg_AR.Add( "18", "San Juan" );
    164         cc_reg_AR.Add( "19", "San Luis" );
    165         cc_reg_AR.Add( "20", "Santa Cruz" );
    166         cc_reg_AR.Add( "21", "Santa Fe" );
    167         cc_reg_AR.Add( "22", "Santiago del Estero" );
    168         cc_reg_AR.Add( "23", "Tierra del Fuego" );
    169         cc_reg_AR.Add( "24", "Tucuman" );
    170         GEOIP_REGION_NAME.Add( "AR", cc_reg_AR );
    171         Hashtable cc_reg_AT = new Hashtable();
    172         cc_reg_AT.Add( "01", "Burgenland" );
    173         cc_reg_AT.Add( "02", "Karnten" );
    174         cc_reg_AT.Add( "03", "Niederosterreich" );
    175         cc_reg_AT.Add( "04", "Oberosterreich" );
    176         cc_reg_AT.Add( "05", "Salzburg" );
    177         cc_reg_AT.Add( "06", "Steiermark" );
    178         cc_reg_AT.Add( "07", "Tirol" );
    179         cc_reg_AT.Add( "08", "Vorarlberg" );
    180         cc_reg_AT.Add( "09", "Wien" );
    181         GEOIP_REGION_NAME.Add( "AT", cc_reg_AT );
    182         Hashtable cc_reg_AU = new Hashtable();
    183         cc_reg_AU.Add( "01", "Australian Capital Territory" );
    184         cc_reg_AU.Add( "02", "New South Wales" );
    185         cc_reg_AU.Add( "03", "Northern Territory" );
    186         cc_reg_AU.Add( "04", "Queensland" );
    187         cc_reg_AU.Add( "05", "South Australia" );
    188         cc_reg_AU.Add( "06", "Tasmania" );
    189         cc_reg_AU.Add( "07", "Victoria" );
    190         cc_reg_AU.Add( "08", "Western Australia" );
    191         GEOIP_REGION_NAME.Add( "AU", cc_reg_AU );
    192         Hashtable cc_reg_AZ = new Hashtable();
    193         cc_reg_AZ.Add( "01", "Abseron" );
    194         cc_reg_AZ.Add( "02", "Agcabadi" );
    195         cc_reg_AZ.Add( "03", "Agdam" );
    196         cc_reg_AZ.Add( "04", "Agdas" );
    197         cc_reg_AZ.Add( "05", "Agstafa" );
    198         cc_reg_AZ.Add( "06", "Agsu" );
    199         cc_reg_AZ.Add( "07", "Ali Bayramli" );
    200         cc_reg_AZ.Add( "08", "Astara" );
    201         cc_reg_AZ.Add( "09", "Baki" );
    202         cc_reg_AZ.Add( "10", "Balakan" );
    203         cc_reg_AZ.Add( "11", "Barda" );
    204         cc_reg_AZ.Add( "12", "Beylaqan" );
    205         cc_reg_AZ.Add( "13", "Bilasuvar" );
    206         cc_reg_AZ.Add( "14", "Cabrayil" );
    207         cc_reg_AZ.Add( "15", "Calilabad" );
    208         cc_reg_AZ.Add( "16", "Daskasan" );
    209         cc_reg_AZ.Add( "17", "Davaci" );
    210         cc_reg_AZ.Add( "18", "Fuzuli" );
    211         cc_reg_AZ.Add( "19", "Gadabay" );
    212         cc_reg_AZ.Add( "20", "Ganca" );
    213         cc_reg_AZ.Add( "21", "Goranboy" );
    214         cc_reg_AZ.Add( "22", "Goycay" );
    215         cc_reg_AZ.Add( "23", "Haciqabul" );
    216         cc_reg_AZ.Add( "24", "Imisli" );
    217         cc_reg_AZ.Add( "25", "Ismayilli" );
    218         cc_reg_AZ.Add( "26", "Kalbacar" );
    219         cc_reg_AZ.Add( "27", "Kurdamir" );
    220         cc_reg_AZ.Add( "28", "Lacin" );
    221         cc_reg_AZ.Add( "29", "Lankaran" );
    222         cc_reg_AZ.Add( "30", "Lankaran" );
    223         cc_reg_AZ.Add( "31", "Lerik" );
    224         cc_reg_AZ.Add( "32", "Masalli" );
    225         cc_reg_AZ.Add( "33", "Mingacevir" );
    226         cc_reg_AZ.Add( "34", "Naftalan" );
    227         cc_reg_AZ.Add( "35", "Naxcivan" );
    228         cc_reg_AZ.Add( "36", "Neftcala" );
    229         cc_reg_AZ.Add( "37", "Oguz" );
    230         cc_reg_AZ.Add( "38", "Qabala" );
    231         cc_reg_AZ.Add( "39", "Qax" );
    232         cc_reg_AZ.Add( "40", "Qazax" );
    233         cc_reg_AZ.Add( "41", "Qobustan" );
    234         cc_reg_AZ.Add( "42", "Quba" );
    235         cc_reg_AZ.Add( "43", "Qubadli" );
    236         cc_reg_AZ.Add( "44", "Qusar" );
    237         cc_reg_AZ.Add( "45", "Saatli" );
    238         cc_reg_AZ.Add( "46", "Sabirabad" );
    239         cc_reg_AZ.Add( "47", "Saki" );
    240         cc_reg_AZ.Add( "48", "Saki" );
    241         cc_reg_AZ.Add( "49", "Salyan" );
    242         cc_reg_AZ.Add( "50", "Samaxi" );
    243         cc_reg_AZ.Add( "51", "Samkir" );
    244         cc_reg_AZ.Add( "52", "Samux" );
    245         cc_reg_AZ.Add( "53", "Siyazan" );
    246         cc_reg_AZ.Add( "54", "Sumqayit" );
    247         cc_reg_AZ.Add( "55", "Susa" );
    248         cc_reg_AZ.Add( "56", "Susa" );
    249         cc_reg_AZ.Add( "57", "Tartar" );
    250         cc_reg_AZ.Add( "58", "Tovuz" );
    251         cc_reg_AZ.Add( "59", "Ucar" );
    252         cc_reg_AZ.Add( "60", "Xacmaz" );
    253         cc_reg_AZ.Add( "61", "Xankandi" );
    254         cc_reg_AZ.Add( "62", "Xanlar" );
    255         cc_reg_AZ.Add( "63", "Xizi" );
    256         cc_reg_AZ.Add( "64", "Xocali" );
    257         cc_reg_AZ.Add( "65", "Xocavand" );
    258         cc_reg_AZ.Add( "66", "Yardimli" );
    259         cc_reg_AZ.Add( "67", "Yevlax" );
    260         cc_reg_AZ.Add( "68", "Yevlax" );
    261         cc_reg_AZ.Add( "69", "Zangilan" );
    262         cc_reg_AZ.Add( "70", "Zaqatala" );
    263         cc_reg_AZ.Add( "71", "Zardab" );
    264         GEOIP_REGION_NAME.Add( "AZ", cc_reg_AZ );
    265         Hashtable cc_reg_BA = new Hashtable();
    266         cc_reg_BA.Add( "01", "Federation of Bosnia and Herzegovina" );
    267         cc_reg_BA.Add( "02", "Republika Srpska" );
    268         GEOIP_REGION_NAME.Add( "BA", cc_reg_BA );
    269         Hashtable cc_reg_BB = new Hashtable();
    270         cc_reg_BB.Add( "01", "Christ Church" );
    271         cc_reg_BB.Add( "02", "Saint Andrew" );
    272         cc_reg_BB.Add( "03", "Saint George" );
    273         cc_reg_BB.Add( "04", "Saint James" );
    274         cc_reg_BB.Add( "05", "Saint John" );
    275         cc_reg_BB.Add( "06", "Saint Joseph" );
    276         cc_reg_BB.Add( "07", "Saint Lucy" );
    277         cc_reg_BB.Add( "08", "Saint Michael" );
    278         cc_reg_BB.Add( "09", "Saint Peter" );
    279         cc_reg_BB.Add( "10", "Saint Philip" );
    280         cc_reg_BB.Add( "11", "Saint Thomas" );
    281         GEOIP_REGION_NAME.Add( "BB", cc_reg_BB );
    282         Hashtable cc_reg_BD = new Hashtable();
    283         cc_reg_BD.Add( "01", "Barisal" );
    284         cc_reg_BD.Add( "04", "Bandarban" );
    285         cc_reg_BD.Add( "05", "Comilla" );
    286         cc_reg_BD.Add( "12", "Mymensingh" );
    287         cc_reg_BD.Add( "13", "Noakhali" );
    288         cc_reg_BD.Add( "15", "Patuakhali" );
    289         cc_reg_BD.Add( "22", "Bagerhat" );
    290         cc_reg_BD.Add( "23", "Bhola" );
    291         cc_reg_BD.Add( "24", "Bogra" );
    292         cc_reg_BD.Add( "25", "Barguna" );
    293         cc_reg_BD.Add( "26", "Brahmanbaria" );
    294         cc_reg_BD.Add( "27", "Chandpur" );
    295         cc_reg_BD.Add( "28", "Chapai Nawabganj" );
    296         cc_reg_BD.Add( "29", "Chattagram" );
    297         cc_reg_BD.Add( "30", "Chuadanga" );
    298         cc_reg_BD.Add( "31", "Cox's Bazar" );
    299         cc_reg_BD.Add( "32", "Dhaka" );
    300         cc_reg_BD.Add( "33", "Dinajpur" );
    301         cc_reg_BD.Add( "34", "Faridpur" );
    302         cc_reg_BD.Add( "35", "Feni" );
    303         cc_reg_BD.Add( "36", "Gaibandha" );
    304         cc_reg_BD.Add( "37", "Gazipur" );
    305         cc_reg_BD.Add( "38", "Gopalganj" );
    306         cc_reg_BD.Add( "39", "Habiganj" );
    307         cc_reg_BD.Add( "40", "Jaipurhat" );
    308         cc_reg_BD.Add( "41", "Jamalpur" );
    309         cc_reg_BD.Add( "42", "Jessore" );
    310         cc_reg_BD.Add( "43", "Jhalakati" );
    311         cc_reg_BD.Add( "44", "Jhenaidah" );
    312         cc_reg_BD.Add( "45", "Khagrachari" );
    313         cc_reg_BD.Add( "46", "Khulna" );
    314         cc_reg_BD.Add( "47", "Kishorganj" );
    315         cc_reg_BD.Add( "48", "Kurigram" );
    316         cc_reg_BD.Add( "49", "Kushtia" );
    317         cc_reg_BD.Add( "50", "Laksmipur" );
    318         cc_reg_BD.Add( "51", "Lalmonirhat" );
    319         cc_reg_BD.Add( "52", "Madaripur" );
    320         cc_reg_BD.Add( "53", "Magura" );
    321         cc_reg_BD.Add( "54", "Manikganj" );
    322         cc_reg_BD.Add( "55", "Meherpur" );
    323         cc_reg_BD.Add( "56", "Moulavibazar" );
    324         cc_reg_BD.Add( "57", "Munshiganj" );
    325         cc_reg_BD.Add( "58", "Naogaon" );
    326         cc_reg_BD.Add( "59", "Narail" );
    327         cc_reg_BD.Add( "60", "Narayanganj" );
    328         cc_reg_BD.Add( "61", "Narsingdi" );
    329         cc_reg_BD.Add( "62", "Nator" );
    330         cc_reg_BD.Add( "63", "Netrakona" );
    331         cc_reg_BD.Add( "64", "Nilphamari" );
    332         cc_reg_BD.Add( "65", "Pabna" );
    333         cc_reg_BD.Add( "66", "Panchagar" );
    334         cc_reg_BD.Add( "67", "Parbattya Chattagram" );
    335         cc_reg_BD.Add( "68", "Pirojpur" );
    336         cc_reg_BD.Add( "69", "Rajbari" );
    337         cc_reg_BD.Add( "70", "Rajshahi" );
    338         cc_reg_BD.Add( "71", "Rangpur" );
    339         cc_reg_BD.Add( "72", "Satkhira" );
    340         cc_reg_BD.Add( "73", "Shariyatpur" );
    341         cc_reg_BD.Add( "74", "Sherpur" );
    342         cc_reg_BD.Add( "75", "Sirajganj" );
    343         cc_reg_BD.Add( "76", "Sunamganj" );
    344         cc_reg_BD.Add( "77", "Sylhet" );
    345         cc_reg_BD.Add( "78", "Tangail" );
    346         cc_reg_BD.Add( "79", "Thakurgaon" );
    347         cc_reg_BD.Add( "81", "Dhaka" );
    348         cc_reg_BD.Add( "82", "Khulna" );
    349         cc_reg_BD.Add( "83", "Rajshahi" );
    350         cc_reg_BD.Add( "84", "Chittagong" );
    351         cc_reg_BD.Add( "85", "Barisal" );
    352         cc_reg_BD.Add( "86", "Sylhet" );
    353         GEOIP_REGION_NAME.Add( "BD", cc_reg_BD );
    354         Hashtable cc_reg_BE = new Hashtable();
    355         cc_reg_BE.Add( "01", "Antwerpen" );
    356         cc_reg_BE.Add( "02", "Brabant" );
    357         cc_reg_BE.Add( "03", "Hainaut" );
    358         cc_reg_BE.Add( "04", "Liege" );
    359         cc_reg_BE.Add( "05", "Limburg" );
    360         cc_reg_BE.Add( "06", "Luxembourg" );
    361         cc_reg_BE.Add( "07", "Namur" );
    362         cc_reg_BE.Add( "08", "Oost-Vlaanderen" );
    363         cc_reg_BE.Add( "09", "West-Vlaanderen" );
    364         cc_reg_BE.Add( "10", "Brabant Wallon" );
    365         cc_reg_BE.Add( "11", "Brussels Hoofdstedelijk Gewest" );
    366         cc_reg_BE.Add( "12", "Vlaams-Brabant" );
    367         GEOIP_REGION_NAME.Add( "BE", cc_reg_BE );
    368         Hashtable cc_reg_BF = new Hashtable();
    369         cc_reg_BF.Add( "15", "Bam" );
    370         cc_reg_BF.Add( "19", "Boulkiemde" );
    371         cc_reg_BF.Add( "20", "Ganzourgou" );
    372         cc_reg_BF.Add( "21", "Gnagna" );
    373         cc_reg_BF.Add( "28", "Kouritenga" );
    374         cc_reg_BF.Add( "33", "Oudalan" );
    375         cc_reg_BF.Add( "34", "Passore" );
    376         cc_reg_BF.Add( "36", "Sanguie" );
    377         cc_reg_BF.Add( "40", "Soum" );
    378         cc_reg_BF.Add( "42", "Tapoa" );
    379         cc_reg_BF.Add( "44", "Zoundweogo" );
    380         cc_reg_BF.Add( "45", "Bale" );
    381         cc_reg_BF.Add( "46", "Banwa" );
    382         cc_reg_BF.Add( "47", "Bazega" );
    383         cc_reg_BF.Add( "48", "Bougouriba" );
    384         cc_reg_BF.Add( "49", "Boulgou" );
    385         cc_reg_BF.Add( "50", "Gourma" );
    386         cc_reg_BF.Add( "51", "Houet" );
    387         cc_reg_BF.Add( "52", "Ioba" );
    388         cc_reg_BF.Add( "53", "Kadiogo" );
    389         cc_reg_BF.Add( "54", "Kenedougou" );
    390         cc_reg_BF.Add( "55", "Komoe" );
    391         cc_reg_BF.Add( "56", "Komondjari" );
    392         cc_reg_BF.Add( "57", "Kompienga" );
    393         cc_reg_BF.Add( "58", "Kossi" );
    394         cc_reg_BF.Add( "59", "Koulpelogo" );
    395         cc_reg_BF.Add( "60", "Kourweogo" );
    396         cc_reg_BF.Add( "61", "Leraba" );
    397         cc_reg_BF.Add( "62", "Loroum" );
    398         cc_reg_BF.Add( "63", "Mouhoun" );
    399         cc_reg_BF.Add( "64", "Namentenga" );
    400         cc_reg_BF.Add( "65", "Naouri" );
    401         cc_reg_BF.Add( "66", "Nayala" );
    402         cc_reg_BF.Add( "67", "Noumbiel" );
    403         cc_reg_BF.Add( "68", "Oubritenga" );
    404         cc_reg_BF.Add( "69", "Poni" );
    405         cc_reg_BF.Add( "70", "Sanmatenga" );
    406         cc_reg_BF.Add( "71", "Seno" );
    407         cc_reg_BF.Add( "72", "Sissili" );
    408         cc_reg_BF.Add( "73", "Sourou" );
    409         cc_reg_BF.Add( "74", "Tuy" );
    410         cc_reg_BF.Add( "75", "Yagha" );
    411         cc_reg_BF.Add( "76", "Yatenga" );
    412         cc_reg_BF.Add( "77", "Ziro" );
    413         cc_reg_BF.Add( "78", "Zondoma" );
    414         GEOIP_REGION_NAME.Add( "BF", cc_reg_BF );
    415         Hashtable cc_reg_BG = new Hashtable();
    416         cc_reg_BG.Add( "33", "Mikhaylovgrad" );
    417         cc_reg_BG.Add( "38", "Blagoevgrad" );
    418         cc_reg_BG.Add( "39", "Burgas" );
    419         cc_reg_BG.Add( "40", "Dobrich" );
    420         cc_reg_BG.Add( "41", "Gabrovo" );
    421         cc_reg_BG.Add( "42", "Grad Sofiya" );
    422         cc_reg_BG.Add( "43", "Khaskovo" );
    423         cc_reg_BG.Add( "44", "Kurdzhali" );
    424         cc_reg_BG.Add( "45", "Kyustendil" );
    425         cc_reg_BG.Add( "46", "Lovech" );
    426         cc_reg_BG.Add( "47", "Montana" );
    427         cc_reg_BG.Add( "48", "Pazardzhik" );
    428         cc_reg_BG.Add( "49", "Pernik" );
    429         cc_reg_BG.Add( "50", "Pleven" );
    430         cc_reg_BG.Add( "51", "Plovdiv" );
    431         cc_reg_BG.Add( "52", "Razgrad" );
    432         cc_reg_BG.Add( "53", "Ruse" );
    433         cc_reg_BG.Add( "54", "Shumen" );
    434         cc_reg_BG.Add( "55", "Silistra" );
    435         cc_reg_BG.Add( "56", "Sliven" );
    436         cc_reg_BG.Add( "57", "Smolyan" );
    437         cc_reg_BG.Add( "58", "Sofiya" );
    438         cc_reg_BG.Add( "59", "Stara Zagora" );
    439         cc_reg_BG.Add( "60", "Turgovishte" );
    440         cc_reg_BG.Add( "61", "Varna" );
    441         cc_reg_BG.Add( "62", "Veliko Turnovo" );
    442         cc_reg_BG.Add( "63", "Vidin" );
    443         cc_reg_BG.Add( "64", "Vratsa" );
    444         cc_reg_BG.Add( "65", "Yambol" );
    445         GEOIP_REGION_NAME.Add( "BG", cc_reg_BG );
    446         Hashtable cc_reg_BH = new Hashtable();
    447         cc_reg_BH.Add( "01", "Al Hadd" );
    448         cc_reg_BH.Add( "02", "Al Manamah" );
    449         cc_reg_BH.Add( "03", "Al Muharraq" );
    450         cc_reg_BH.Add( "05", "Jidd Hafs" );
    451         cc_reg_BH.Add( "06", "Sitrah" );
    452         cc_reg_BH.Add( "07", "Ar Rifa' wa al Mintaqah al Janubiyah" );
    453         cc_reg_BH.Add( "08", "Al Mintaqah al Gharbiyah" );
    454         cc_reg_BH.Add( "09", "Mintaqat Juzur Hawar" );
    455         cc_reg_BH.Add( "10", "Al Mintaqah ash Shamaliyah" );
    456         cc_reg_BH.Add( "11", "Al Mintaqah al Wusta" );
    457         cc_reg_BH.Add( "12", "Madinat" );
    458         cc_reg_BH.Add( "13", "Ar Rifa" );
    459         cc_reg_BH.Add( "14", "Madinat Hamad" );
    460         cc_reg_BH.Add( "15", "Al Muharraq" );
    461         cc_reg_BH.Add( "16", "Al Asimah" );
    462         cc_reg_BH.Add( "17", "Al Janubiyah" );
    463         cc_reg_BH.Add( "18", "Ash Shamaliyah" );
    464         cc_reg_BH.Add( "19", "Al Wusta" );
    465         GEOIP_REGION_NAME.Add( "BH", cc_reg_BH );
    466         Hashtable cc_reg_BI = new Hashtable();
    467         cc_reg_BI.Add( "02", "Bujumbura" );
    468         cc_reg_BI.Add( "09", "Bubanza" );
    469         cc_reg_BI.Add( "10", "Bururi" );
    470         cc_reg_BI.Add( "11", "Cankuzo" );
    471         cc_reg_BI.Add( "12", "Cibitoke" );
    472         cc_reg_BI.Add( "13", "Gitega" );
    473         cc_reg_BI.Add( "14", "Karuzi" );
    474         cc_reg_BI.Add( "15", "Kayanza" );
    475         cc_reg_BI.Add( "16", "Kirundo" );
    476         cc_reg_BI.Add( "17", "Makamba" );
    477         cc_reg_BI.Add( "18", "Muyinga" );
    478         cc_reg_BI.Add( "19", "Ngozi" );
    479         cc_reg_BI.Add( "20", "Rutana" );
    480         cc_reg_BI.Add( "21", "Ruyigi" );
    481         cc_reg_BI.Add( "22", "Muramvya" );
    482         cc_reg_BI.Add( "23", "Mwaro" );
    483         GEOIP_REGION_NAME.Add( "BI", cc_reg_BI );
    484         Hashtable cc_reg_BJ = new Hashtable();
    485         cc_reg_BJ.Add( "01", "Atakora" );
    486         cc_reg_BJ.Add( "02", "Atlantique" );
    487         cc_reg_BJ.Add( "03", "Borgou" );
    488         cc_reg_BJ.Add( "04", "Mono" );
    489         cc_reg_BJ.Add( "05", "Oueme" );
    490         cc_reg_BJ.Add( "06", "Zou" );
    491         cc_reg_BJ.Add( "07", "Alibori" );
    492         cc_reg_BJ.Add( "08", "Atakora" );
    493         cc_reg_BJ.Add( "09", "Atlanyique" );
    494         cc_reg_BJ.Add( "10", "Borgou" );
    495         cc_reg_BJ.Add( "11", "Collines" );
    496         cc_reg_BJ.Add( "12", "Kouffo" );
    497         cc_reg_BJ.Add( "13", "Donga" );
    498         cc_reg_BJ.Add( "14", "Littoral" );
    499         cc_reg_BJ.Add( "15", "Mono" );
    500         cc_reg_BJ.Add( "16", "Oueme" );
    501         cc_reg_BJ.Add( "17", "Plateau" );
    502         cc_reg_BJ.Add( "18", "Zou" );
    503         GEOIP_REGION_NAME.Add( "BJ", cc_reg_BJ );
    504         Hashtable cc_reg_BM = new Hashtable();
    505         cc_reg_BM.Add( "01", "Devonshire" );
    506         cc_reg_BM.Add( "02", "Hamilton" );
    507         cc_reg_BM.Add( "03", "Hamilton" );
    508         cc_reg_BM.Add( "04", "Paget" );
    509         cc_reg_BM.Add( "05", "Pembroke" );
    510         cc_reg_BM.Add( "06", "Saint George" );
    511         cc_reg_BM.Add( "07", "Saint George's" );
    512         cc_reg_BM.Add( "08", "Sandys" );
    513         cc_reg_BM.Add( "09", "Smiths" );
    514         cc_reg_BM.Add( "10", "Southampton" );
    515         cc_reg_BM.Add( "11", "Warwick" );
    516         GEOIP_REGION_NAME.Add( "BM", cc_reg_BM );
    517         Hashtable cc_reg_BN = new Hashtable();
    518         cc_reg_BN.Add( "07", "Alibori" );
    519         cc_reg_BN.Add( "08", "Belait" );
    520         cc_reg_BN.Add( "09", "Brunei and Muara" );
    521         cc_reg_BN.Add( "10", "Temburong" );
    522         cc_reg_BN.Add( "11", "Collines" );
    523         cc_reg_BN.Add( "12", "Kouffo" );
    524         cc_reg_BN.Add( "13", "Donga" );
    525         cc_reg_BN.Add( "14", "Littoral" );
    526         cc_reg_BN.Add( "15", "Tutong" );
    527         cc_reg_BN.Add( "16", "Oueme" );
    528         cc_reg_BN.Add( "17", "Plateau" );
    529         cc_reg_BN.Add( "18", "Zou" );
    530         GEOIP_REGION_NAME.Add( "BN", cc_reg_BN );
    531         Hashtable cc_reg_BO = new Hashtable();
    532         cc_reg_BO.Add( "01", "Chuquisaca" );
    533         cc_reg_BO.Add( "02", "Cochabamba" );
    534         cc_reg_BO.Add( "03", "El Beni" );
    535         cc_reg_BO.Add( "04", "La Paz" );
    536         cc_reg_BO.Add( "05", "Oruro" );
    537         cc_reg_BO.Add( "06", "Pando" );
    538         cc_reg_BO.Add( "07", "Potosi" );
    539         cc_reg_BO.Add( "08", "Santa Cruz" );
    540         cc_reg_BO.Add( "09", "Tarija" );
    541         GEOIP_REGION_NAME.Add( "BO", cc_reg_BO );
    542         Hashtable cc_reg_BR = new Hashtable();
    543         cc_reg_BR.Add( "01", "Acre" );
    544         cc_reg_BR.Add( "02", "Alagoas" );
    545         cc_reg_BR.Add( "03", "Amapa" );
    546         cc_reg_BR.Add( "04", "Amazonas" );
    547         cc_reg_BR.Add( "05", "Bahia" );
    548         cc_reg_BR.Add( "06", "Ceara" );
    549         cc_reg_BR.Add( "07", "Distrito Federal" );
    550         cc_reg_BR.Add( "08", "Espirito Santo" );
    551         cc_reg_BR.Add( "11", "Mato Grosso do Sul" );
    552         cc_reg_BR.Add( "13", "Maranhao" );
    553         cc_reg_BR.Add( "14", "Mato Grosso" );
    554         cc_reg_BR.Add( "15", "Minas Gerais" );
    555         cc_reg_BR.Add( "16", "Para" );
    556         cc_reg_BR.Add( "17", "Paraiba" );
    557         cc_reg_BR.Add( "18", "Parana" );
    558         cc_reg_BR.Add( "20", "Piaui" );
    559         cc_reg_BR.Add( "21", "Rio de Janeiro" );
    560         cc_reg_BR.Add( "22", "Rio Grande do Norte" );
    561         cc_reg_BR.Add( "23", "Rio Grande do Sul" );
    562         cc_reg_BR.Add( "24", "Rondonia" );
    563         cc_reg_BR.Add( "25", "Roraima" );
    564         cc_reg_BR.Add( "26", "Santa Catarina" );
    565         cc_reg_BR.Add( "27", "Sao Paulo" );
    566         cc_reg_BR.Add( "28", "Sergipe" );
    567         cc_reg_BR.Add( "29", "Goias" );
    568         cc_reg_BR.Add( "30", "Pernambuco" );
    569         cc_reg_BR.Add( "31", "Tocantins" );
    570         GEOIP_REGION_NAME.Add( "BR", cc_reg_BR );
    571         Hashtable cc_reg_BS = new Hashtable();
    572         cc_reg_BS.Add( "05", "Bimini" );
    573         cc_reg_BS.Add( "06", "Cat Island" );
    574         cc_reg_BS.Add( "10", "Exuma" );
    575         cc_reg_BS.Add( "13", "Inagua" );
    576         cc_reg_BS.Add( "15", "Long Island" );
    577         cc_reg_BS.Add( "16", "Mayaguana" );
    578         cc_reg_BS.Add( "18", "Ragged Island" );
    579         cc_reg_BS.Add( "22", "Harbour Island" );
    580         cc_reg_BS.Add( "23", "New Providence" );
    581         cc_reg_BS.Add( "24", "Acklins and Crooked Islands" );
    582         cc_reg_BS.Add( "25", "Freeport" );
    583         cc_reg_BS.Add( "26", "Fresh Creek" );
    584         cc_reg_BS.Add( "27", "Governor's Harbour" );
    585         cc_reg_BS.Add( "28", "Green Turtle Cay" );
    586         cc_reg_BS.Add( "29", "High Rock" );
    587         cc_reg_BS.Add( "30", "Kemps Bay" );
    588         cc_reg_BS.Add( "31", "Marsh Harbour" );
    589         cc_reg_BS.Add( "32", "Nichollstown and Berry Islands" );
    590         cc_reg_BS.Add( "33", "Rock Sound" );
    591         cc_reg_BS.Add( "34", "Sandy Point" );
    592         cc_reg_BS.Add( "35", "San Salvador and Rum Cay" );
    593         GEOIP_REGION_NAME.Add( "BS", cc_reg_BS );
    594         Hashtable cc_reg_BT = new Hashtable();
    595         cc_reg_BT.Add( "05", "Bumthang" );
    596         cc_reg_BT.Add( "06", "Chhukha" );
    597         cc_reg_BT.Add( "07", "Chirang" );
    598         cc_reg_BT.Add( "08", "Daga" );
    599         cc_reg_BT.Add( "09", "Geylegphug" );
    600         cc_reg_BT.Add( "10", "Ha" );
    601         cc_reg_BT.Add( "11", "Lhuntshi" );
    602         cc_reg_BT.Add( "12", "Mongar" );
    603         cc_reg_BT.Add( "13", "Paro" );
    604         cc_reg_BT.Add( "14", "Pemagatsel" );
    605         cc_reg_BT.Add( "15", "Punakha" );
    606         cc_reg_BT.Add( "16", "Samchi" );
    607         cc_reg_BT.Add( "17", "Samdrup" );
    608         cc_reg_BT.Add( "18", "Shemgang" );
    609         cc_reg_BT.Add( "19", "Tashigang" );
    610         cc_reg_BT.Add( "20", "Thimphu" );
    611         cc_reg_BT.Add( "21", "Tongsa" );
    612         cc_reg_BT.Add( "22", "Wangdi Phodrang" );
    613         GEOIP_REGION_NAME.Add( "BT", cc_reg_BT );
    614         Hashtable cc_reg_BW = new Hashtable();
    615         cc_reg_BW.Add( "01", "Central" );
    616         cc_reg_BW.Add( "03", "Ghanzi" );
    617         cc_reg_BW.Add( "04", "Kgalagadi" );
    618         cc_reg_BW.Add( "05", "Kgatleng" );
    619         cc_reg_BW.Add( "06", "Kweneng" );
    620         cc_reg_BW.Add( "08", "North-East" );
    621         cc_reg_BW.Add( "09", "South-East" );
    622         cc_reg_BW.Add( "10", "Southern" );
    623         cc_reg_BW.Add( "11", "North-West" );
    624         GEOIP_REGION_NAME.Add( "BW", cc_reg_BW );
    625         Hashtable cc_reg_BY = new Hashtable();
    626         cc_reg_BY.Add( "01", "Brestskaya Voblasts'" );
    627         cc_reg_BY.Add( "02", "Homyel'skaya Voblasts'" );
    628         cc_reg_BY.Add( "03", "Hrodzyenskaya Voblasts'" );
    629         cc_reg_BY.Add( "04", "Minsk" );
    630         cc_reg_BY.Add( "05", "Minskaya Voblasts'" );
    631         cc_reg_BY.Add( "06", "Mahilyowskaya Voblasts'" );
    632         cc_reg_BY.Add( "07", "Vitsyebskaya Voblasts'" );
    633         GEOIP_REGION_NAME.Add( "BY", cc_reg_BY );
    634         Hashtable cc_reg_BZ = new Hashtable();
    635         cc_reg_BZ.Add( "01", "Belize" );
    636         cc_reg_BZ.Add( "02", "Cayo" );
    637         cc_reg_BZ.Add( "03", "Corozal" );
    638         cc_reg_BZ.Add( "04", "Orange Walk" );
    639         cc_reg_BZ.Add( "05", "Stann Creek" );
    640         cc_reg_BZ.Add( "06", "Toledo" );
    641         GEOIP_REGION_NAME.Add( "BZ", cc_reg_BZ );
    642         Hashtable cc_reg_CA = new Hashtable();
    643         cc_reg_CA.Add( "AB", "Alberta" );
    644         cc_reg_CA.Add( "BC", "British Columbia" );
    645         cc_reg_CA.Add( "MB", "Manitoba" );
    646         cc_reg_CA.Add( "NB", "New Brunswick" );
    647         cc_reg_CA.Add( "NL", "Newfoundland" );
    648         cc_reg_CA.Add( "NS", "Nova Scotia" );
    649         cc_reg_CA.Add( "NT", "Northwest Territories" );
    650         cc_reg_CA.Add( "NU", "Nunavut" );
    651         cc_reg_CA.Add( "ON", "Ontario" );
    652         cc_reg_CA.Add( "PE", "Prince Edward Island" );
    653         cc_reg_CA.Add( "QC", "Quebec" );
    654         cc_reg_CA.Add( "SK", "Saskatchewan" );
    655         cc_reg_CA.Add( "YT", "Yukon Territory" );
    656         GEOIP_REGION_NAME.Add( "CA", cc_reg_CA );
    657         Hashtable cc_reg_CD = new Hashtable();
    658         cc_reg_CD.Add( "01", "Bandundu" );
    659         cc_reg_CD.Add( "02", "Equateur" );
    660         cc_reg_CD.Add( "04", "Kasai-Oriental" );
    661         cc_reg_CD.Add( "05", "Katanga" );
    662         cc_reg_CD.Add( "06", "Kinshasa" );
    663         cc_reg_CD.Add( "07", "Kivu" );
    664         cc_reg_CD.Add( "08", "Bas-Congo" );
    665         cc_reg_CD.Add( "09", "Orientale" );
    666         cc_reg_CD.Add( "10", "Maniema" );
    667         cc_reg_CD.Add( "11", "Nord-Kivu" );
    668         cc_reg_CD.Add( "12", "Sud-Kivu" );
    669         cc_reg_CD.Add( "13", "Cuvette" );
    670         GEOIP_REGION_NAME.Add( "CD", cc_reg_CD );
    671         Hashtable cc_reg_CF = new Hashtable();
    672         cc_reg_CF.Add( "01", "Bamingui-Bangoran" );
    673         cc_reg_CF.Add( "02", "Basse-Kotto" );
    674         cc_reg_CF.Add( "03", "Haute-Kotto" );
    675         cc_reg_CF.Add( "04", "Mambere-Kadei" );
    676         cc_reg_CF.Add( "05", "Haut-Mbomou" );
    677         cc_reg_CF.Add( "06", "Kemo" );
    678         cc_reg_CF.Add( "07", "Lobaye" );
    679         cc_reg_CF.Add( "08", "Mbomou" );
    680         cc_reg_CF.Add( "09", "Nana-Mambere" );
    681         cc_reg_CF.Add( "11", "Ouaka" );
    682         cc_reg_CF.Add( "12", "Ouham" );
    683         cc_reg_CF.Add( "13", "Ouham-Pende" );
    684         cc_reg_CF.Add( "14", "Cuvette-Ouest" );
    685         cc_reg_CF.Add( "15", "Nana-Grebizi" );
    686         cc_reg_CF.Add( "16", "Sangha-Mbaere" );
    687         cc_reg_CF.Add( "17", "Ombella-Mpoko" );
    688         cc_reg_CF.Add( "18", "Bangui" );
    689         GEOIP_REGION_NAME.Add( "CF", cc_reg_CF );
    690         Hashtable cc_reg_CG = new Hashtable();
    691         cc_reg_CG.Add( "01", "Bouenza" );
    692         cc_reg_CG.Add( "03", "Cuvette" );
    693         cc_reg_CG.Add( "04", "Kouilou" );
    694         cc_reg_CG.Add( "05", "Lekoumou" );
    695         cc_reg_CG.Add( "06", "Likouala" );
    696         cc_reg_CG.Add( "07", "Niari" );
    697         cc_reg_CG.Add( "08", "Plateaux" );
    698         cc_reg_CG.Add( "10", "Sangha" );
    699         cc_reg_CG.Add( "11", "Pool" );
    700         cc_reg_CG.Add( "12", "Brazzaville" );
    701         GEOIP_REGION_NAME.Add( "CG", cc_reg_CG );
    702         Hashtable cc_reg_CH = new Hashtable();
    703         cc_reg_CH.Add( "01", "Aargau" );
    704         cc_reg_CH.Add( "02", "Ausser-Rhoden" );
    705         cc_reg_CH.Add( "03", "Basel-Landschaft" );
    706         cc_reg_CH.Add( "04", "Basel-Stadt" );
    707         cc_reg_CH.Add( "05", "Bern" );
    708         cc_reg_CH.Add( "06", "Fribourg" );
    709         cc_reg_CH.Add( "07", "Geneve" );
    710         cc_reg_CH.Add( "08", "Glarus" );
    711         cc_reg_CH.Add( "09", "Graubunden" );
    712         cc_reg_CH.Add( "10", "Inner-Rhoden" );
    713         cc_reg_CH.Add( "11", "Luzern" );
    714         cc_reg_CH.Add( "12", "Neuchatel" );
    715         cc_reg_CH.Add( "13", "Nidwalden" );
    716         cc_reg_CH.Add( "14", "Obwalden" );
    717         cc_reg_CH.Add( "15", "Sankt Gallen" );
    718         cc_reg_CH.Add( "16", "Schaffhausen" );
    719         cc_reg_CH.Add( "17", "Schwyz" );
    720         cc_reg_CH.Add( "18", "Solothurn" );
    721         cc_reg_CH.Add( "19", "Thurgau" );
    722         cc_reg_CH.Add( "20", "Ticino" );
    723         cc_reg_CH.Add( "21", "Uri" );
    724         cc_reg_CH.Add( "22", "Valais" );
    725         cc_reg_CH.Add( "23", "Vaud" );
    726         cc_reg_CH.Add( "24", "Zug" );
    727         cc_reg_CH.Add( "25", "Zurich" );
    728         cc_reg_CH.Add( "26", "Jura" );
    729         GEOIP_REGION_NAME.Add( "CH", cc_reg_CH );
    730         Hashtable cc_reg_CI = new Hashtable();
    731         cc_reg_CI.Add( "05", "Atacama" );
    732         cc_reg_CI.Add( "06", "Biobio" );
    733         cc_reg_CI.Add( "51", "Sassandra" );
    734         cc_reg_CI.Add( "61", "Abidjan" );
    735         cc_reg_CI.Add( "74", "Agneby" );
    736         cc_reg_CI.Add( "75", "Bafing" );
    737         cc_reg_CI.Add( "76", "Bas-Sassandra" );
    738         cc_reg_CI.Add( "77", "Denguele" );
    739         cc_reg_CI.Add( "78", "Dix-Huit Montagnes" );
    740         cc_reg_CI.Add( "79", "Fromager" );
    741         cc_reg_CI.Add( "80", "Haut-Sassandra" );
    742         cc_reg_CI.Add( "81", "Lacs" );
    743         cc_reg_CI.Add( "82", "Lagunes" );
    744         cc_reg_CI.Add( "83", "Marahoue" );
    745         cc_reg_CI.Add( "84", "Moyen-Cavally" );
    746         cc_reg_CI.Add( "85", "Moyen-Comoe" );
    747         cc_reg_CI.Add( "86", "N'zi-Comoe" );
    748         cc_reg_CI.Add( "87", "Savanes" );
    749         cc_reg_CI.Add( "88", "Sud-Bandama" );
    750         cc_reg_CI.Add( "89", "Sud-Comoe" );
    751         cc_reg_CI.Add( "90", "Vallee du Bandama" );
    752         cc_reg_CI.Add( "91", "Worodougou" );
    753         cc_reg_CI.Add( "92", "Zanzan" );
    754         GEOIP_REGION_NAME.Add( "CI", cc_reg_CI );
    755         Hashtable cc_reg_CL = new Hashtable();
    756         cc_reg_CL.Add( "01", "Valparaiso" );
    757         cc_reg_CL.Add( "02", "Aisen del General Carlos Ibanez del Campo" );
    758         cc_reg_CL.Add( "03", "Antofagasta" );
    759         cc_reg_CL.Add( "04", "Araucania" );
    760         cc_reg_CL.Add( "05", "Atacama" );
    761         cc_reg_CL.Add( "06", "Bio-Bio" );
    762         cc_reg_CL.Add( "07", "Coquimbo" );
    763         cc_reg_CL.Add( "08", "Libertador General Bernardo O'Higgins" );
    764         cc_reg_CL.Add( "09", "Los Lagos" );
    765         cc_reg_CL.Add( "10", "Magallanes y de la Antartica Chilena" );
    766         cc_reg_CL.Add( "11", "Maule" );
    767         cc_reg_CL.Add( "12", "Region Metropolitana" );
    768         cc_reg_CL.Add( "13", "Tarapaca" );
    769         GEOIP_REGION_NAME.Add( "CL", cc_reg_CL );
    770         Hashtable cc_reg_CM = new Hashtable();
    771         cc_reg_CM.Add( "04", "Est" );
    772         cc_reg_CM.Add( "05", "Littoral" );
    773         cc_reg_CM.Add( "07", "Nord-Ouest" );
    774         cc_reg_CM.Add( "08", "Ouest" );
    775         cc_reg_CM.Add( "09", "Sud-Ouest" );
    776         cc_reg_CM.Add( "10", "Adamaoua" );
    777         cc_reg_CM.Add( "11", "Centre" );
    778         cc_reg_CM.Add( "12", "Extreme-Nord" );
    779         cc_reg_CM.Add( "13", "Nord" );
    780         cc_reg_CM.Add( "14", "Sud" );
    781         GEOIP_REGION_NAME.Add( "CM", cc_reg_CM );
    782         Hashtable cc_reg_CN = new Hashtable();
    783         cc_reg_CN.Add( "01", "Anhui" );
    784         cc_reg_CN.Add( "02", "Zhejiang" );
    785         cc_reg_CN.Add( "03", "Jiangxi" );
    786         cc_reg_CN.Add( "04", "Jiangsu" );
    787         cc_reg_CN.Add( "05", "Jilin" );
    788         cc_reg_CN.Add( "06", "Qinghai" );
    789         cc_reg_CN.Add( "07", "Fujian" );
    790         cc_reg_CN.Add( "08", "Heilongjiang" );
    791         cc_reg_CN.Add( "09", "Henan" );
    792         cc_reg_CN.Add( "10", "Hebei" );
    793         cc_reg_CN.Add( "11", "Hunan" );
    794         cc_reg_CN.Add( "12", "Hubei" );
    795         cc_reg_CN.Add( "13", "Xinjiang" );
    796         cc_reg_CN.Add( "14", "Xizang" );
    797         cc_reg_CN.Add( "15", "Gansu" );
    798         cc_reg_CN.Add( "16", "Guangxi" );
    799         cc_reg_CN.Add( "18", "Guizhou" );
    800         cc_reg_CN.Add( "19", "Liaoning" );
    801         cc_reg_CN.Add( "20", "Nei Mongol" );
    802         cc_reg_CN.Add( "21", "Ningxia" );
    803         cc_reg_CN.Add( "22", "Beijing" );
    804         cc_reg_CN.Add( "23", "Shanghai" );
    805         cc_reg_CN.Add( "24", "Shanxi" );
    806         cc_reg_CN.Add( "25", "Shandong" );
    807         cc_reg_CN.Add( "26", "Shaanxi" );
    808         cc_reg_CN.Add( "28", "Tianjin" );
    809         cc_reg_CN.Add( "29", "Yunnan" );
    810         cc_reg_CN.Add( "30", "Guangdong" );
    811         cc_reg_CN.Add( "31", "Hainan" );
    812         cc_reg_CN.Add( "32", "Sichuan" );
    813         cc_reg_CN.Add( "33", "Chongqing" );
    814         GEOIP_REGION_NAME.Add( "CN", cc_reg_CN );
    815         Hashtable cc_reg_CO = new Hashtable();
    816         cc_reg_CO.Add( "01", "Amazonas" );
    817         cc_reg_CO.Add( "02", "Antioquia" );
    818         cc_reg_CO.Add( "03", "Arauca" );
    819         cc_reg_CO.Add( "04", "Atlantico" );
    820         cc_reg_CO.Add( "05", "Bolivar Department" );
    821         cc_reg_CO.Add( "06", "Boyaca Department" );
    822         cc_reg_CO.Add( "07", "Caldas Department" );
    823         cc_reg_CO.Add( "08", "Caqueta" );
    824         cc_reg_CO.Add( "09", "Cauca" );
    825         cc_reg_CO.Add( "10", "Cesar" );
    826         cc_reg_CO.Add( "11", "Choco" );
    827         cc_reg_CO.Add( "12", "Cordoba" );
    828         cc_reg_CO.Add( "14", "Guaviare" );
    829         cc_reg_CO.Add( "15", "Guainia" );
    830         cc_reg_CO.Add( "16", "Huila" );
    831         cc_reg_CO.Add( "17", "La Guajira" );
    832         cc_reg_CO.Add( "18", "Magdalena Department" );
    833         cc_reg_CO.Add( "19", "Meta" );
    834         cc_reg_CO.Add( "20", "Narino" );
    835         cc_reg_CO.Add( "21", "Norte de Santander" );
    836         cc_reg_CO.Add( "22", "Putumayo" );
    837         cc_reg_CO.Add( "23", "Quindio" );
    838         cc_reg_CO.Add( "24", "Risaralda" );
    839         cc_reg_CO.Add( "25", "San Andres y Providencia" );
    840         cc_reg_CO.Add( "26", "Santander" );
    841         cc_reg_CO.Add( "27", "Sucre" );
    842         cc_reg_CO.Add( "28", "Tolima" );
    843         cc_reg_CO.Add( "29", "Valle del Cauca" );
    844         cc_reg_CO.Add( "30", "Vaupes" );
    845         cc_reg_CO.Add( "31", "Vichada" );
    846         cc_reg_CO.Add( "32", "Casanare" );
    847         cc_reg_CO.Add( "33", "Cundinamarca" );
    848         cc_reg_CO.Add( "34", "Distrito Especial" );
    849         cc_reg_CO.Add( "35", "Bolivar" );
    850         cc_reg_CO.Add( "36", "Boyaca" );
    851         cc_reg_CO.Add( "37", "Caldas" );
    852         cc_reg_CO.Add( "38", "Magdalena" );
    853         GEOIP_REGION_NAME.Add( "CO", cc_reg_CO );
    854         Hashtable cc_reg_CR = new Hashtable();
    855         cc_reg_CR.Add( "01", "Alajuela" );
    856         cc_reg_CR.Add( "02", "Cartago" );
    857         cc_reg_CR.Add( "03", "Guanacaste" );
    858         cc_reg_CR.Add( "04", "Heredia" );
    859         cc_reg_CR.Add( "06", "Limon" );
    860         cc_reg_CR.Add( "07", "Puntarenas" );
    861         cc_reg_CR.Add( "08", "San Jose" );
    862         GEOIP_REGION_NAME.Add( "CR", cc_reg_CR );
    863         Hashtable cc_reg_CU = new Hashtable();
    864         cc_reg_CU.Add( "01", "Pinar del Rio" );
    865         cc_reg_CU.Add( "02", "Ciudad de la Habana" );
    866         cc_reg_CU.Add( "03", "Matanzas" );
    867         cc_reg_CU.Add( "04", "Isla de la Juventud" );
    868         cc_reg_CU.Add( "05", "Camaguey" );
    869         cc_reg_CU.Add( "07", "Ciego de Avila" );
    870         cc_reg_CU.Add( "08", "Cienfuegos" );
    871         cc_reg_CU.Add( "09", "Granma" );
    872         cc_reg_CU.Add( "10", "Guantanamo" );
    873         cc_reg_CU.Add( "11", "La Habana" );
    874         cc_reg_CU.Add( "12", "Holguin" );
    875         cc_reg_CU.Add( "13", "Las Tunas" );
    876         cc_reg_CU.Add( "14", "Sancti Spiritus" );
    877         cc_reg_CU.Add( "15", "Santiago de Cuba" );
    878         cc_reg_CU.Add( "16", "Villa Clara" );
    879         GEOIP_REGION_NAME.Add( "CU", cc_reg_CU );
    880         Hashtable cc_reg_CV = new Hashtable();
    881         cc_reg_CV.Add( "01", "Boa Vista" );
    882         cc_reg_CV.Add( "02", "Brava" );
    883         cc_reg_CV.Add( "04", "Maio" );
    884         cc_reg_CV.Add( "05", "Paul" );
    885         cc_reg_CV.Add( "07", "Ribeira Grande" );
    886         cc_reg_CV.Add( "08", "Sal" );
    887         cc_reg_CV.Add( "10", "Sao Nicolau" );
    888         cc_reg_CV.Add( "11", "Sao Vicente" );
    889         cc_reg_CV.Add( "13", "Mosteiros" );
    890         cc_reg_CV.Add( "14", "Praia" );
    891         cc_reg_CV.Add( "15", "Santa Catarina" );
    892         cc_reg_CV.Add( "16", "Santa Cruz" );
    893         cc_reg_CV.Add( "17", "Sao Domingos" );
    894         cc_reg_CV.Add( "18", "Sao Filipe" );
    895         cc_reg_CV.Add( "19", "Sao Miguel" );
    896         cc_reg_CV.Add( "20", "Tarrafal" );
    897         GEOIP_REGION_NAME.Add( "CV", cc_reg_CV );
    898         Hashtable cc_reg_CY = new Hashtable();
    899         cc_reg_CY.Add( "01", "Famagusta" );
    900         cc_reg_CY.Add( "02", "Kyrenia" );
    901         cc_reg_CY.Add( "03", "Larnaca" );
    902         cc_reg_CY.Add( "04", "Nicosia" );
    903         cc_reg_CY.Add( "05", "Limassol" );
    904         cc_reg_CY.Add( "06", "Paphos" );
    905         GEOIP_REGION_NAME.Add( "CY", cc_reg_CY );
    906         Hashtable cc_reg_CZ = new Hashtable();
    907         cc_reg_CZ.Add( "03", "Blansko" );
    908         cc_reg_CZ.Add( "04", "Breclav" );
    909         cc_reg_CZ.Add( "20", "Hradec Kralove" );
    910         cc_reg_CZ.Add( "21", "Jablonec nad Nisou" );
    911         cc_reg_CZ.Add( "23", "Jicin" );
    912         cc_reg_CZ.Add( "24", "Jihlava" );
    913         cc_reg_CZ.Add( "30", "Kolin" );
    914         cc_reg_CZ.Add( "33", "Liberec" );
    915         cc_reg_CZ.Add( "36", "Melnik" );
    916         cc_reg_CZ.Add( "37", "Mlada Boleslav" );
    917         cc_reg_CZ.Add( "39", "Nachod" );
    918         cc_reg_CZ.Add( "41", "Nymburk" );
    919         cc_reg_CZ.Add( "45", "Pardubice" );
    920         cc_reg_CZ.Add( "52", "Hlavni mesto Praha" );
    921         cc_reg_CZ.Add( "61", "Semily" );
    922         cc_reg_CZ.Add( "70", "Trutnov" );
    923         cc_reg_CZ.Add( "78", "Jihomoravsky kraj" );
    924         cc_reg_CZ.Add( "79", "Jihocesky kraj" );
    925         cc_reg_CZ.Add( "80", "Vysocina" );
    926         cc_reg_CZ.Add( "81", "Karlovarsky kraj" );
    927         cc_reg_CZ.Add( "82", "Kralovehradecky kraj" );
    928         cc_reg_CZ.Add( "83", "Liberecky kraj" );
    929         cc_reg_CZ.Add( "84", "Olomoucky kraj" );
    930         cc_reg_CZ.Add( "85", "Moravskoslezsky kraj" );
    931         cc_reg_CZ.Add( "86", "Pardubicky kraj" );
    932         cc_reg_CZ.Add( "87", "Plzensky kraj" );
    933         cc_reg_CZ.Add( "88", "Stredocesky kraj" );
    934         cc_reg_CZ.Add( "89", "Ustecky kraj" );
    935         cc_reg_CZ.Add( "90", "Zlinsky kraj" );
    936         GEOIP_REGION_NAME.Add( "CZ", cc_reg_CZ );
    937         Hashtable cc_reg_DE = new Hashtable();
    938         cc_reg_DE.Add( "01", "Baden-Wurttemberg" );
    939         cc_reg_DE.Add( "02", "Bayern" );
    940         cc_reg_DE.Add( "03", "Bremen" );
    941         cc_reg_DE.Add( "04", "Hamburg" );
    942         cc_reg_DE.Add( "05", "Hessen" );
    943         cc_reg_DE.Add( "06", "Niedersachsen" );
    944         cc_reg_DE.Add( "07", "Nordrhein-Westfalen" );
    945         cc_reg_DE.Add( "08", "Rheinland-Pfalz" );
    946         cc_reg_DE.Add( "09", "Saarland" );
    947         cc_reg_DE.Add( "10", "Schleswig-Holstein" );
    948         cc_reg_DE.Add( "11", "Brandenburg" );
    949         cc_reg_DE.Add( "12", "Mecklenburg-Vorpommern" );
    950         cc_reg_DE.Add( "13", "Sachsen" );
    951         cc_reg_DE.Add( "14", "Sachsen-Anhalt" );
    952         cc_reg_DE.Add( "15", "Thuringen" );
    953         cc_reg_DE.Add( "16", "Berlin" );
    954         GEOIP_REGION_NAME.Add( "DE", cc_reg_DE );
    955         Hashtable cc_reg_DJ = new Hashtable();
    956         cc_reg_DJ.Add( "01", "Ali Sabieh" );
    957         cc_reg_DJ.Add( "04", "Obock" );
    958         cc_reg_DJ.Add( "05", "Tadjoura" );
    959         cc_reg_DJ.Add( "06", "Dikhil" );
    960         cc_reg_DJ.Add( "07", "Djibouti" );
    961         cc_reg_DJ.Add( "08", "Arta" );
    962         GEOIP_REGION_NAME.Add( "DJ", cc_reg_DJ );
    963         Hashtable cc_reg_DK = new Hashtable();
    964         cc_reg_DK.Add( "01", "Arhus" );
    965         cc_reg_DK.Add( "02", "Bornholm" );
    966         cc_reg_DK.Add( "03", "Frederiksborg" );
    967         cc_reg_DK.Add( "04", "Fyn" );
    968         cc_reg_DK.Add( "05", "Kobenhavn" );
    969         cc_reg_DK.Add( "06", "Staden Kobenhavn" );
    970         cc_reg_DK.Add( "07", "Nordjylland" );
    971         cc_reg_DK.Add( "08", "Ribe" );
    972         cc_reg_DK.Add( "09", "Ringkobing" );
    973         cc_reg_DK.Add( "10", "Roskilde" );
    974         cc_reg_DK.Add( "11", "Sonderjylland" );
    975         cc_reg_DK.Add( "12", "Storstrom" );
    976         cc_reg_DK.Add( "13", "Vejle" );
    977         cc_reg_DK.Add( "14", "Vestsjalland" );
    978         cc_reg_DK.Add( "15", "Viborg" );
    979         cc_reg_DK.Add( "17", "Hovedstaden" );
    980         cc_reg_DK.Add( "18", "Midtjyllen" );
    981         cc_reg_DK.Add( "19", "Nordjylland" );
    982         cc_reg_DK.Add( "20", "Sjelland" );
    983         cc_reg_DK.Add( "21", "Syddanmark" );
    984         GEOIP_REGION_NAME.Add( "DK", cc_reg_DK );
    985         Hashtable cc_reg_DM = new Hashtable();
    986         cc_reg_DM.Add( "02", "Saint Andrew" );
    987         cc_reg_DM.Add( "03", "Saint David" );
    988         cc_reg_DM.Add( "04", "Saint George" );
    989         cc_reg_DM.Add( "05", "Saint John" );
    990         cc_reg_DM.Add( "06", "Saint Joseph" );
    991         cc_reg_DM.Add( "07", "Saint Luke" );
    992         cc_reg_DM.Add( "08", "Saint Mark" );
    993         cc_reg_DM.Add( "09", "Saint Patrick" );
    994         cc_reg_DM.Add( "10", "Saint Paul" );
    995         cc_reg_DM.Add( "11", "Saint Peter" );
    996         GEOIP_REGION_NAME.Add( "DM", cc_reg_DM );
    997         Hashtable cc_reg_DO = new Hashtable();
    998         cc_reg_DO.Add( "01", "Azua" );
    999         cc_reg_DO.Add( "02", "Baoruco" );
    1000         cc_reg_DO.Add( "03", "Barahona" );
    1001         cc_reg_DO.Add( "04", "Dajabon" );
    1002         cc_reg_DO.Add( "05", "Distrito Nacional" );
    1003         cc_reg_DO.Add( "06", "Duarte" );
    1004         cc_reg_DO.Add( "08", "Espaillat" );
    1005         cc_reg_DO.Add( "09", "Independencia" );
    1006         cc_reg_DO.Add( "10", "La Altagracia" );
    1007         cc_reg_DO.Add( "11", "Elias Pina" );
    1008         cc_reg_DO.Add( "12", "La Romana" );
    1009         cc_reg_DO.Add( "14", "Maria Trinidad Sanchez" );
    1010         cc_reg_DO.Add( "15", "Monte Cristi" );
    1011         cc_reg_DO.Add( "16", "Pedernales" );
    1012         cc_reg_DO.Add( "17", "Peravia" );
    1013         cc_reg_DO.Add( "18", "Puerto Plata" );
    1014         cc_reg_DO.Add( "19", "Salcedo" );
    1015         cc_reg_DO.Add( "20", "Samana" );
    1016         cc_reg_DO.Add( "21", "Sanchez Ramirez" );
    1017         cc_reg_DO.Add( "23", "San Juan" );
    1018         cc_reg_DO.Add( "24", "San Pedro De Macoris" );
    1019         cc_reg_DO.Add( "25", "Santiago" );
    1020         cc_reg_DO.Add( "26", "Santiago Rodriguez" );
    1021         cc_reg_DO.Add( "27", "Valverde" );
    1022         cc_reg_DO.Add( "28", "El Seibo" );
    1023         cc_reg_DO.Add( "29", "Hato Mayor" );
    1024         cc_reg_DO.Add( "30", "La Vega" );
    1025         cc_reg_DO.Add( "31", "Monsenor Nouel" );
    1026         cc_reg_DO.Add( "32", "Monte Plata" );
    1027         cc_reg_DO.Add( "33", "San Cristobal" );
    1028         cc_reg_DO.Add( "34", "Distrito Nacional" );
    1029         cc_reg_DO.Add( "35", "Peravia" );
    1030         cc_reg_DO.Add( "36", "San Jose de Ocoa" );
    1031         cc_reg_DO.Add( "37", "Santo Domingo" );
    1032         GEOIP_REGION_NAME.Add( "DO", cc_reg_DO );
    1033         Hashtable cc_reg_DZ = new Hashtable();
    1034         cc_reg_DZ.Add( "01", "Alger" );
    1035         cc_reg_DZ.Add( "03", "Batna" );
    1036         cc_reg_DZ.Add( "04", "Constantine" );
    1037         cc_reg_DZ.Add( "06", "Medea" );
    1038         cc_reg_DZ.Add( "07", "Mostaganem" );
    1039         cc_reg_DZ.Add( "09", "Oran" );
    1040         cc_reg_DZ.Add( "10", "Saida" );
    1041         cc_reg_DZ.Add( "12", "Setif" );
    1042         cc_reg_DZ.Add( "13", "Tiaret" );
    1043         cc_reg_DZ.Add( "14", "Tizi Ouzou" );
    1044         cc_reg_DZ.Add( "15", "Tlemcen" );
    1045         cc_reg_DZ.Add( "18", "Bejaia" );
    1046         cc_reg_DZ.Add( "19", "Biskra" );
    1047         cc_reg_DZ.Add( "20", "Blida" );
    1048         cc_reg_DZ.Add( "21", "Bouira" );
    1049         cc_reg_DZ.Add( "22", "Djelfa" );
    1050         cc_reg_DZ.Add( "23", "Guelma" );
    1051         cc_reg_DZ.Add( "24", "Jijel" );
    1052         cc_reg_DZ.Add( "25", "Laghouat" );
    1053         cc_reg_DZ.Add( "26", "Mascara" );
    1054         cc_reg_DZ.Add( "27", "M'sila" );
    1055         cc_reg_DZ.Add( "29", "Oum el Bouaghi" );
    1056         cc_reg_DZ.Add( "30", "Sidi Bel Abbes" );
    1057         cc_reg_DZ.Add( "31", "Skikda" );
    1058         cc_reg_DZ.Add( "33", "Tebessa" );
    1059         cc_reg_DZ.Add( "34", "Adrar" );
    1060         cc_reg_DZ.Add( "35", "Ain Defla" );
    1061         cc_reg_DZ.Add( "36", "Ain Temouchent" );
    1062         cc_reg_DZ.Add( "37", "Annaba" );
    1063         cc_reg_DZ.Add( "38", "Bechar" );
    1064         cc_reg_DZ.Add( "39", "Bordj Bou Arreridj" );
    1065         cc_reg_DZ.Add( "40", "Boumerdes" );
    1066         cc_reg_DZ.Add( "41", "Chlef" );
    1067         cc_reg_DZ.Add( "42", "El Bayadh" );
    1068         cc_reg_DZ.Add( "43", "El Oued" );
    1069         cc_reg_DZ.Add( "44", "El Tarf" );
    1070         cc_reg_DZ.Add( "45", "Ghardaia" );
    1071         cc_reg_DZ.Add( "46", "Illizi" );
    1072         cc_reg_DZ.Add( "47", "Khenchela" );
    1073         cc_reg_DZ.Add( "48", "Mila" );
    1074         cc_reg_DZ.Add( "49", "Naama" );
    1075         cc_reg_DZ.Add( "50", "Ouargla" );
    1076         cc_reg_DZ.Add( "51", "Relizane" );
    1077         cc_reg_DZ.Add( "52", "Souk Ahras" );
    1078         cc_reg_DZ.Add( "53", "Tamanghasset" );
    1079         cc_reg_DZ.Add( "54", "Tindouf" );
    1080         cc_reg_DZ.Add( "55", "Tipaza" );
    1081         cc_reg_DZ.Add( "56", "Tissemsilt" );
    1082         GEOIP_REGION_NAME.Add( "DZ", cc_reg_DZ );
    1083         Hashtable cc_reg_EC = new Hashtable();
    1084         cc_reg_EC.Add( "01", "Galapagos" );
    1085         cc_reg_EC.Add( "02", "Azuay" );
    1086         cc_reg_EC.Add( "03", "Bolivar" );
    1087         cc_reg_EC.Add( "04", "Canar" );
    1088         cc_reg_EC.Add( "05", "Carchi" );
    1089         cc_reg_EC.Add( "06", "Chimborazo" );
    1090         cc_reg_EC.Add( "07", "Cotopaxi" );
    1091         cc_reg_EC.Add( "08", "El Oro" );
    1092         cc_reg_EC.Add( "09", "Esmeraldas" );
    1093         cc_reg_EC.Add( "10", "Guayas" );
    1094         cc_reg_EC.Add( "11", "Imbabura" );
    1095         cc_reg_EC.Add( "12", "Loja" );
    1096         cc_reg_EC.Add( "13", "Los Rios" );
    1097         cc_reg_EC.Add( "14", "Manabi" );
    1098         cc_reg_EC.Add( "15", "Morona-Santiago" );
    1099         cc_reg_EC.Add( "17", "Pastaza" );
    1100         cc_reg_EC.Add( "18", "Pichincha" );
    1101         cc_reg_EC.Add( "19", "Tungurahua" );
    1102         cc_reg_EC.Add( "20", "Zamora-Chinchipe" );
    1103         cc_reg_EC.Add( "22", "Sucumbios" );
    1104         cc_reg_EC.Add( "23", "Napo" );
    1105         cc_reg_EC.Add( "24", "Orellana" );
    1106         GEOIP_REGION_NAME.Add( "EC", cc_reg_EC );
    1107         Hashtable cc_reg_EE = new Hashtable();
    1108         cc_reg_EE.Add( "01", "Harjumaa" );
    1109         cc_reg_EE.Add( "02", "Hiiumaa" );
    1110         cc_reg_EE.Add( "03", "Ida-Virumaa" );
    1111         cc_reg_EE.Add( "04", "Jarvamaa" );
    1112         cc_reg_EE.Add( "05", "Jogevamaa" );
    1113         cc_reg_EE.Add( "06", "Kohtla-Jarve" );
    1114         cc_reg_EE.Add( "07", "Laanemaa" );
    1115         cc_reg_EE.Add( "08", "Laane-Virumaa" );
    1116         cc_reg_EE.Add( "09", "Narva" );
    1117         cc_reg_EE.Add( "10", "Parnu" );
    1118         cc_reg_EE.Add( "11", "Parnumaa" );
    1119         cc_reg_EE.Add( "12", "Polvamaa" );
    1120         cc_reg_EE.Add( "13", "Raplamaa" );
    1121         cc_reg_EE.Add( "14", "Saaremaa" );
    1122         cc_reg_EE.Add( "15", "Sillamae" );
    1123         cc_reg_EE.Add( "16", "Tallinn" );
    1124         cc_reg_EE.Add( "17", "Tartu" );
    1125         cc_reg_EE.Add( "18", "Tartumaa" );
    1126         cc_reg_EE.Add( "19", "Valgamaa" );
    1127         cc_reg_EE.Add( "20", "Viljandimaa" );
    1128         cc_reg_EE.Add( "21", "Vorumaa" );
    1129         GEOIP_REGION_NAME.Add( "EE", cc_reg_EE );
    1130         Hashtable cc_reg_EG = new Hashtable();
    1131         cc_reg_EG.Add( "01", "Ad Daqahliyah" );
    1132         cc_reg_EG.Add( "02", "Al Bahr al Ahmar" );
    1133         cc_reg_EG.Add( "03", "Al Buhayrah" );
    1134         cc_reg_EG.Add( "04", "Al Fayyum" );
    1135         cc_reg_EG.Add( "05", "Al Gharbiyah" );
    1136         cc_reg_EG.Add( "06", "Al Iskandariyah" );
    1137         cc_reg_EG.Add( "07", "Al Isma'iliyah" );
    1138         cc_reg_EG.Add( "08", "Al Jizah" );
    1139         cc_reg_EG.Add( "09", "Al Minufiyah" );
    1140         cc_reg_EG.Add( "10", "Al Minya" );
    1141         cc_reg_EG.Add( "11", "Al Qahirah" );
    1142         cc_reg_EG.Add( "12", "Al Qalyubiyah" );
    1143         cc_reg_EG.Add( "13", "Al Wadi al Jadid" );
    1144         cc_reg_EG.Add( "14", "Ash Sharqiyah" );
    1145         cc_reg_EG.Add( "15", "As Suways" );
    1146         cc_reg_EG.Add( "16", "Aswan" );
    1147         cc_reg_EG.Add( "17", "Asyut" );
    1148         cc_reg_EG.Add( "18", "Bani Suwayf" );
    1149         cc_reg_EG.Add( "19", "Bur Sa'id" );
    1150         cc_reg_EG.Add( "20", "Dumyat" );
    1151         cc_reg_EG.Add( "21", "Kafr ash Shaykh" );
    1152         cc_reg_EG.Add( "22", "Matruh" );
    1153         cc_reg_EG.Add( "23", "Qina" );
    1154         cc_reg_EG.Add( "24", "Suhaj" );
    1155         cc_reg_EG.Add( "26", "Janub Sina'" );
    1156         cc_reg_EG.Add( "27", "Shamal Sina'" );
    1157         GEOIP_REGION_NAME.Add( "EG", cc_reg_EG );
    1158         Hashtable cc_reg_ER = new Hashtable();
    1159         cc_reg_ER.Add( "01", "Anseba" );
    1160         cc_reg_ER.Add( "02", "Debub" );
    1161         cc_reg_ER.Add( "03", "Debubawi K'eyih Bahri" );
    1162         cc_reg_ER.Add( "04", "Gash Barka" );
    1163         cc_reg_ER.Add( "05", "Ma'akel" );
    1164         cc_reg_ER.Add( "06", "Semenawi K'eyih Bahri" );
    1165         GEOIP_REGION_NAME.Add( "ER", cc_reg_ER );
    1166         Hashtable cc_reg_ES = new Hashtable();
    1167         cc_reg_ES.Add( "07", "Islas Baleares" );
    1168         cc_reg_ES.Add( "27", "La Rioja" );
    1169         cc_reg_ES.Add( "29", "Madrid" );
    1170         cc_reg_ES.Add( "31", "Murcia" );
    1171         cc_reg_ES.Add( "32", "Navarra" );
    1172         cc_reg_ES.Add( "34", "Asturias" );
    1173         cc_reg_ES.Add( "39", "Cantabria" );
    1174         cc_reg_ES.Add( "51", "Andalucia" );
    1175         cc_reg_ES.Add( "52", "Aragon" );
    1176         cc_reg_ES.Add( "53", "Canarias" );
    1177         cc_reg_ES.Add( "54", "Castilla-La Mancha" );
    1178         cc_reg_ES.Add( "55", "Castilla y Leon" );
    1179         cc_reg_ES.Add( "56", "Catalonia" );
    1180         cc_reg_ES.Add( "57", "Extremadura" );
    1181         cc_reg_ES.Add( "58", "Galicia" );
    1182         cc_reg_ES.Add( "59", "Pais Vasco" );
    1183         cc_reg_ES.Add( "60", "Comunidad Valenciana" );
    1184         GEOIP_REGION_NAME.Add( "ES", cc_reg_ES );
    1185         Hashtable cc_reg_ET = new Hashtable();
    1186         cc_reg_ET.Add( "02", "Amhara" );
    1187         cc_reg_ET.Add( "07", "Somali" );
    1188         cc_reg_ET.Add( "08", "Gambella" );
    1189         cc_reg_ET.Add( "10", "Addis Abeba" );
    1190         cc_reg_ET.Add( "11", "Southern" );
    1191         cc_reg_ET.Add( "12", "Tigray" );
    1192         cc_reg_ET.Add( "13", "Benishangul" );
    1193         cc_reg_ET.Add( "14", "Afar" );
    1194         cc_reg_ET.Add( "44", "Adis Abeba" );
    1195         cc_reg_ET.Add( "45", "Afar" );
    1196         cc_reg_ET.Add( "46", "Amara" );
    1197         cc_reg_ET.Add( "47", "Binshangul Gumuz" );
    1198         cc_reg_ET.Add( "48", "Dire Dawa" );
    1199         cc_reg_ET.Add( "49", "Gambela Hizboch" );
    1200         cc_reg_ET.Add( "50", "Hareri Hizb" );
    1201         cc_reg_ET.Add( "51", "Oromiya" );
    1202         cc_reg_ET.Add( "52", "Sumale" );
    1203         cc_reg_ET.Add( "53", "Tigray" );
    1204         cc_reg_ET.Add( "54", "YeDebub Biheroch Bihereseboch na Hizboch" );
    1205         GEOIP_REGION_NAME.Add( "ET", cc_reg_ET );
    1206         Hashtable cc_reg_FI = new Hashtable();
    1207         cc_reg_FI.Add( "01", "Aland" );
    1208         cc_reg_FI.Add( "06", "Lapland" );
    1209         cc_reg_FI.Add( "08", "Oulu" );
    1210         cc_reg_FI.Add( "13", "Southern Finland" );
    1211         cc_reg_FI.Add( "14", "Eastern Finland" );
    1212         cc_reg_FI.Add( "15", "Western Finland" );
    1213         GEOIP_REGION_NAME.Add( "FI", cc_reg_FI );
    1214         Hashtable cc_reg_FJ = new Hashtable();
    1215         cc_reg_FJ.Add( "01", "Central" );
    1216         cc_reg_FJ.Add( "02", "Eastern" );
    1217         cc_reg_FJ.Add( "03", "Northern" );
    1218         cc_reg_FJ.Add( "04", "Rotuma" );
    1219         cc_reg_FJ.Add( "05", "Western" );
    1220         GEOIP_REGION_NAME.Add( "FJ", cc_reg_FJ );
    1221         Hashtable cc_reg_FM = new Hashtable();
    1222         cc_reg_FM.Add( "01", "Kosrae" );
    1223         cc_reg_FM.Add( "02", "Pohnpei" );
    1224         cc_reg_FM.Add( "03", "Chuuk" );
    1225         cc_reg_FM.Add( "04", "Yap" );
    1226         GEOIP_REGION_NAME.Add( "FM", cc_reg_FM );
    1227         Hashtable cc_reg_FR = new Hashtable();
    1228         cc_reg_FR.Add( "97", "Aquitaine" );
    1229         cc_reg_FR.Add( "98", "Auvergne" );
    1230         cc_reg_FR.Add( "99", "Basse-Normandie" );
    1231         cc_reg_FR.Add( "A1", "Bourgogne" );
    1232         cc_reg_FR.Add( "A2", "Bretagne" );
    1233         cc_reg_FR.Add( "A3", "Centre" );
    1234         cc_reg_FR.Add( "A4", "Champagne-Ardenne" );
    1235         cc_reg_FR.Add( "A5", "Corse" );
    1236         cc_reg_FR.Add( "A6", "Franche-Comte" );
    1237         cc_reg_FR.Add( "A7", "Haute-Normandie" );
    1238         cc_reg_FR.Add( "A8", "Ile-de-France" );
    1239         cc_reg_FR.Add( "A9", "Languedoc-Roussillon" );
    1240         cc_reg_FR.Add( "B1", "Limousin" );
    1241         cc_reg_FR.Add( "B2", "Lorraine" );
    1242         cc_reg_FR.Add( "B3", "Midi-Pyrenees" );
    1243         cc_reg_FR.Add( "B4", "Nord-Pas-de-Calais" );
    1244         cc_reg_FR.Add( "B5", "Pays de la Loire" );
    1245         cc_reg_FR.Add( "B6", "Picardie" );
    1246         cc_reg_FR.Add( "B7", "Poitou-Charentes" );
    1247         cc_reg_FR.Add( "B8", "Provence-Alpes-Cote d'Azur" );
    1248         cc_reg_FR.Add( "B9", "Rhone-Alpes" );
    1249         cc_reg_FR.Add( "C1", "Alsace" );
    1250         GEOIP_REGION_NAME.Add( "FR", cc_reg_FR );
    1251         Hashtable cc_reg_GA = new Hashtable();
    1252         cc_reg_GA.Add( "01", "Estuaire" );
    1253         cc_reg_GA.Add( "02", "Haut-Ogooue" );
    1254         cc_reg_GA.Add( "03", "Moyen-Ogooue" );
    1255         cc_reg_GA.Add( "04", "Ngounie" );
    1256         cc_reg_GA.Add( "05", "Nyanga" );
    1257         cc_reg_GA.Add( "06", "Ogooue-Ivindo" );
    1258         cc_reg_GA.Add( "07", "Ogooue-Lolo" );
    1259         cc_reg_GA.Add( "08", "Ogooue-Maritime" );
    1260         cc_reg_GA.Add( "09", "Woleu-Ntem" );
    1261         GEOIP_REGION_NAME.Add( "GA", cc_reg_GA );
    1262         Hashtable cc_reg_GB = new Hashtable();
    1263         cc_reg_GB.Add( "01", "Avon" );
    1264         cc_reg_GB.Add( "03", "Berkshire" );
    1265         cc_reg_GB.Add( "07", "Cleveland" );
    1266         cc_reg_GB.Add( "17", "Greater London" );
    1267         cc_reg_GB.Add( "18", "Greater Manchester" );
    1268         cc_reg_GB.Add( "20", "Hereford and Worcester" );
    1269         cc_reg_GB.Add( "22", "Humberside" );
    1270         cc_reg_GB.Add( "28", "Merseyside" );
    1271         cc_reg_GB.Add( "37", "South Yorkshire" );
    1272         cc_reg_GB.Add( "41", "Tyne and Wear" );
    1273         cc_reg_GB.Add( "43", "West Midlands" );
    1274         cc_reg_GB.Add( "45", "West Yorkshire" );
    1275         cc_reg_GB.Add( "79", "Central" );
    1276         cc_reg_GB.Add( "82", "Grampian" );
    1277         cc_reg_GB.Add( "84", "Lothian" );
    1278         cc_reg_GB.Add( "87", "Strathclyde" );
    1279         cc_reg_GB.Add( "88", "Tayside" );
    1280         cc_reg_GB.Add( "90", "Clwyd" );
    1281         cc_reg_GB.Add( "91", "Dyfed" );
    1282         cc_reg_GB.Add( "92", "Gwent" );
    1283         cc_reg_GB.Add( "94", "Mid Glamorgan" );
    1284         cc_reg_GB.Add( "96", "South Glamorgan" );
    1285         cc_reg_GB.Add( "97", "West Glamorgan" );
    1286         cc_reg_GB.Add( "A1", "Barking and Dagenham" );
    1287         cc_reg_GB.Add( "A2", "Barnet" );
    1288         cc_reg_GB.Add( "A3", "Barnsley" );
    1289         cc_reg_GB.Add( "A4", "Bath and North East Somerset" );
    1290         cc_reg_GB.Add( "A5", "Bedfordshire" );
    1291         cc_reg_GB.Add( "A6", "Bexley" );
    1292         cc_reg_GB.Add( "A7", "Birmingham" );
    1293         cc_reg_GB.Add( "A8", "Blackburn with Darwen" );
    1294         cc_reg_GB.Add( "A9", "Blackpool" );
    1295         cc_reg_GB.Add( "B1", "Bolton" );
    1296         cc_reg_GB.Add( "B2", "Bournemouth" );
    1297         cc_reg_GB.Add( "B3", "Bracknell Forest" );
    1298         cc_reg_GB.Add( "B4", "Bradford" );
    1299         cc_reg_GB.Add( "B5", "Brent" );
    1300         cc_reg_GB.Add( "B6", "Brighton and Hove" );
    1301         cc_reg_GB.Add( "B7", "Bristol, City of" );
    1302         cc_reg_GB.Add( "B8", "Bromley" );
    1303         cc_reg_GB.Add( "B9", "Buckinghamshire" );
    1304         cc_reg_GB.Add( "C1", "Bury" );
    1305         cc_reg_GB.Add( "C2", "Calderdale" );
    1306         cc_reg_GB.Add( "C3", "Cambridgeshire" );
    1307         cc_reg_GB.Add( "C4", "Camden" );
    1308         cc_reg_GB.Add( "C5", "Cheshire" );
    1309         cc_reg_GB.Add( "C6", "Cornwall" );
    1310         cc_reg_GB.Add( "C7", "Coventry" );
    1311         cc_reg_GB.Add( "C8", "Croydon" );
    1312         cc_reg_GB.Add( "C9", "Cumbria" );
    1313         cc_reg_GB.Add( "D1", "Darlington" );
    1314         cc_reg_GB.Add( "D2", "Derby" );
    1315         cc_reg_GB.Add( "D3", "Derbyshire" );
    1316         cc_reg_GB.Add( "D4", "Devon" );
    1317         cc_reg_GB.Add( "D5", "Doncaster" );
    1318         cc_reg_GB.Add( "D6", "Dorset" );
    1319         cc_reg_GB.Add( "D7", "Dudley" );
    1320         cc_reg_GB.Add( "D8", "Durham" );
    1321         cc_reg_GB.Add( "D9", "Ealing" );
    1322         cc_reg_GB.Add( "E1", "East Riding of Yorkshire" );
    1323         cc_reg_GB.Add( "E2", "East Sussex" );
    1324         cc_reg_GB.Add( "E3", "Enfield" );
    1325         cc_reg_GB.Add( "E4", "Essex" );
    1326         cc_reg_GB.Add( "E5", "Gateshead" );
    1327         cc_reg_GB.Add( "E6", "Gloucestershire" );
    1328         cc_reg_GB.Add( "E7", "Greenwich" );
    1329         cc_reg_GB.Add( "E8", "Hackney" );
    1330         cc_reg_GB.Add( "E9", "Halton" );
    1331         cc_reg_GB.Add( "F1", "Hammersmith and Fulham" );
    1332         cc_reg_GB.Add( "F2", "Hampshire" );
    1333         cc_reg_GB.Add( "F3", "Haringey" );
    1334         cc_reg_GB.Add( "F4", "Harrow" );
    1335         cc_reg_GB.Add( "F5", "Hartlepool" );
    1336         cc_reg_GB.Add( "F6", "Havering" );
    1337         cc_reg_GB.Add( "F7", "Herefordshire" );
    1338         cc_reg_GB.Add( "F8", "Hertford" );
    1339         cc_reg_GB.Add( "F9", "Hillingdon" );
    1340         cc_reg_GB.Add( "G1", "Hounslow" );
    1341         cc_reg_GB.Add( "G2", "Isle of Wight" );
    1342         cc_reg_GB.Add( "G3", "Islington" );
    1343         cc_reg_GB.Add( "G4", "Kensington and Chelsea" );
    1344         cc_reg_GB.Add( "G5", "Kent" );
    1345         cc_reg_GB.Add( "G6", "Kingston upon Hull, City of" );
    1346         cc_reg_GB.Add( "G7", "Kingston upon Thames" );
    1347         cc_reg_GB.Add( "G8", "Kirklees" );
    1348         cc_reg_GB.Add( "G9", "Knowsley" );
    1349         cc_reg_GB.Add( "H1", "Lambeth" );
    1350         cc_reg_GB.Add( "H2", "Lancashire" );
    1351         cc_reg_GB.Add( "H3", "Leeds" );
    1352         cc_reg_GB.Add( "H4", "Leicester" );
    1353         cc_reg_GB.Add( "H5", "Leicestershire" );
    1354         cc_reg_GB.Add( "H6", "Lewisham" );
    1355         cc_reg_GB.Add( "H7", "Lincolnshire" );
    1356         cc_reg_GB.Add( "H8", "Liverpool" );
    1357         cc_reg_GB.Add( "H9", "London, City of" );
    1358         cc_reg_GB.Add( "I1", "Luton" );
    1359         cc_reg_GB.Add( "I2", "Manchester" );
    1360         cc_reg_GB.Add( "I3", "Medway" );
    1361         cc_reg_GB.Add( "I4", "Merton" );
    1362         cc_reg_GB.Add( "I5", "Middlesbrough" );
    1363         cc_reg_GB.Add( "I6", "Milton Keynes" );
    1364         cc_reg_GB.Add( "I7", "Newcastle upon Tyne" );
    1365         cc_reg_GB.Add( "I8", "Newham" );
    1366         cc_reg_GB.Add( "I9", "Norfolk" );
    1367         cc_reg_GB.Add( "J1", "Northamptonshire" );
    1368         cc_reg_GB.Add( "J2", "North East Lincolnshire" );
    1369         cc_reg_GB.Add( "J3", "North Lincolnshire" );
    1370         cc_reg_GB.Add( "J4", "North Somerset" );
    1371         cc_reg_GB.Add( "J5", "North Tyneside" );
    1372         cc_reg_GB.Add( "J6", "Northumberland" );
    1373         cc_reg_GB.Add( "J7", "North Yorkshire" );
    1374         cc_reg_GB.Add( "J8", "Nottingham" );
    1375         cc_reg_GB.Add( "J9", "Nottinghamshire" );
    1376         cc_reg_GB.Add( "K1", "Oldham" );
    1377         cc_reg_GB.Add( "K2", "Oxfordshire" );
    1378         cc_reg_GB.Add( "K3", "Peterborough" );
    1379         cc_reg_GB.Add( "K4", "Plymouth" );
    1380         cc_reg_GB.Add( "K5", "Poole" );
    1381         cc_reg_GB.Add( "K6", "Portsmouth" );
    1382         cc_reg_GB.Add( "K7", "Reading" );
    1383         cc_reg_GB.Add( "K8", "Redbridge" );
    1384         cc_reg_GB.Add( "K9", "Redcar and Cleveland" );
    1385         cc_reg_GB.Add( "L1", "Richmond upon Thames" );
    1386         cc_reg_GB.Add( "L2", "Rochdale" );
    1387         cc_reg_GB.Add( "L3", "Rotherham" );
    1388         cc_reg_GB.Add( "L4", "Rutland" );
    1389         cc_reg_GB.Add( "L5", "Salford" );
    1390         cc_reg_GB.Add( "L6", "Shropshire" );
    1391         cc_reg_GB.Add( "L7", "Sandwell" );
    1392         cc_reg_GB.Add( "L8", "Sefton" );
    1393         cc_reg_GB.Add( "L9", "Sheffield" );
    1394         cc_reg_GB.Add( "M1", "Slough" );
    1395         cc_reg_GB.Add( "M2", "Solihull" );
    1396         cc_reg_GB.Add( "M3", "Somerset" );
    1397         cc_reg_GB.Add( "M4", "Southampton" );
    1398         cc_reg_GB.Add( "M5", "Southend-on-Sea" );
    1399         cc_reg_GB.Add( "M6", "South Gloucestershire" );
    1400         cc_reg_GB.Add( "M7", "South Tyneside" );
    1401         cc_reg_GB.Add( "M8", "Southwark" );
    1402         cc_reg_GB.Add( "M9", "Staffordshire" );
    1403         cc_reg_GB.Add( "N1", "St. Helens" );
    1404         cc_reg_GB.Add( "N2", "Stockport" );
    1405         cc_reg_GB.Add( "N3", "Stockton-on-Tees" );
    1406         cc_reg_GB.Add( "N4", "Stoke-on-Trent" );
    1407         cc_reg_GB.Add( "N5", "Suffolk" );
    1408         cc_reg_GB.Add( "N6", "Sunderland" );
    1409         cc_reg_GB.Add( "N7", "Surrey" );
    1410         cc_reg_GB.Add( "N8", "Sutton" );
    1411         cc_reg_GB.Add( "N9", "Swindon" );
    1412         cc_reg_GB.Add( "O1", "Tameside" );
    1413         cc_reg_GB.Add( "O2", "Telford and Wrekin" );
    1414         cc_reg_GB.Add( "O3", "Thurrock" );
    1415         cc_reg_GB.Add( "O4", "Torbay" );
    1416         cc_reg_GB.Add( "O5", "Tower Hamlets" );
    1417         cc_reg_GB.Add( "O6", "Trafford" );
    1418         cc_reg_GB.Add( "O7", "Wakefield" );
    1419         cc_reg_GB.Add( "O8", "Walsall" );
    1420         cc_reg_GB.Add( "O9", "Waltham Forest" );
    1421         cc_reg_GB.Add( "P1", "Wandsworth" );
    1422         cc_reg_GB.Add( "P2", "Warrington" );
    1423         cc_reg_GB.Add( "P3", "Warwickshire" );
    1424         cc_reg_GB.Add( "P4", "West Berkshire" );
    1425         cc_reg_GB.Add( "P5", "Westminster" );
    1426         cc_reg_GB.Add( "P6", "West Sussex" );
    1427         cc_reg_GB.Add( "P7", "Wigan" );
    1428         cc_reg_GB.Add( "P8", "Wiltshire" );
    1429         cc_reg_GB.Add( "P9", "Windsor and Maidenhead" );
    1430         cc_reg_GB.Add( "Q1", "Wirral" );
    1431         cc_reg_GB.Add( "Q2", "Wokingham" );
    1432         cc_reg_GB.Add( "Q3", "Wolverhampton" );
    1433         cc_reg_GB.Add( "Q4", "Worcestershire" );
    1434         cc_reg_GB.Add( "Q5", "York" );
    1435         cc_reg_GB.Add( "Q6", "Antrim" );
    1436         cc_reg_GB.Add( "Q7", "Ards" );
    1437         cc_reg_GB.Add( "Q8", "Armagh" );
    1438         cc_reg_GB.Add( "Q9", "Ballymena" );
    1439         cc_reg_GB.Add( "R1", "Ballymoney" );
    1440         cc_reg_GB.Add( "R2", "Banbridge" );
    1441         cc_reg_GB.Add( "R3", "Belfast" );
    1442         cc_reg_GB.Add( "R4", "Carrickfergus" );
    1443         cc_reg_GB.Add( "R5", "Castlereagh" );
    1444         cc_reg_GB.Add( "R6", "Coleraine" );
    1445         cc_reg_GB.Add( "R7", "Cookstown" );
    1446         cc_reg_GB.Add( "R8", "Craigavon" );
    1447         cc_reg_GB.Add( "R9", "Down" );
    1448         cc_reg_GB.Add( "S1", "Dungannon" );
    1449         cc_reg_GB.Add( "S2", "Fermanagh" );
    1450         cc_reg_GB.Add( "S3", "Larne" );
    1451         cc_reg_GB.Add( "S4", "Limavady" );
    1452         cc_reg_GB.Add( "S5", "Lisburn" );
    1453         cc_reg_GB.Add( "S6", "Derry" );
    1454         cc_reg_GB.Add( "S7", "Magherafelt" );
    1455         cc_reg_GB.Add( "S8", "Moyle" );
    1456         cc_reg_GB.Add( "S9", "Newry and Mourne" );
    1457         cc_reg_GB.Add( "T1", "Newtownabbey" );
    1458         cc_reg_GB.Add( "T2", "North Down" );
    1459         cc_reg_GB.Add( "T3", "Omagh" );
    1460         cc_reg_GB.Add( "T4", "Strabane" );
    1461         cc_reg_GB.Add( "T5", "Aberdeen City" );
    1462         cc_reg_GB.Add( "T6", "Aberdeenshire" );
    1463         cc_reg_GB.Add( "T7", "Angus" );
    1464         cc_reg_GB.Add( "T8", "Argyll and Bute" );
    1465         cc_reg_GB.Add( "T9", "Scottish Borders, The" );
    1466         cc_reg_GB.Add( "U1", "Clackmannanshire" );
    1467         cc_reg_GB.Add( "U2", "Dumfries and Galloway" );
    1468         cc_reg_GB.Add( "U3", "Dundee City" );
    1469         cc_reg_GB.Add( "U4", "East Ayrshire" );
    1470         cc_reg_GB.Add( "U5", "East Dunbartonshire" );
    1471         cc_reg_GB.Add( "U6", "East Lothian" );
    1472         cc_reg_GB.Add( "U7", "East Renfrewshire" );
    1473         cc_reg_GB.Add( "U8", "Edinburgh, City of" );
    1474         cc_reg_GB.Add( "U9", "Falkirk" );
    1475         cc_reg_GB.Add( "V1", "Fife" );
    1476         cc_reg_GB.Add( "V2", "Glasgow City" );
    1477         cc_reg_GB.Add( "V3", "Highland" );
    1478         cc_reg_GB.Add( "V4", "Inverclyde" );
    1479         cc_reg_GB.Add( "V5", "Midlothian" );
    1480         cc_reg_GB.Add( "V6", "Moray" );
    1481         cc_reg_GB.Add( "V7", "North Ayrshire" );
    1482         cc_reg_GB.Add( "V8", "North Lanarkshire" );
    1483         cc_reg_GB.Add( "V9", "Orkney" );
    1484         cc_reg_GB.Add( "W1", "Perth and Kinross" );
    1485         cc_reg_GB.Add( "W2", "Renfrewshire" );
    1486         cc_reg_GB.Add( "W3", "Shetland Islands" );
    1487         cc_reg_GB.Add( "W4", "South Ayrshire" );
    1488         cc_reg_GB.Add( "W5", "South Lanarkshire" );
    1489         cc_reg_GB.Add( "W6", "Stirling" );
    1490         cc_reg_GB.Add( "W7", "West Dunbartonshire" );
    1491         cc_reg_GB.Add( "W8", "Eilean Siar" );
    1492         cc_reg_GB.Add( "W9", "West Lothian" );
    1493         cc_reg_GB.Add( "X1", "Isle of Anglesey" );
    1494         cc_reg_GB.Add( "X2", "Blaenau Gwent" );
    1495         cc_reg_GB.Add( "X3", "Bridgend" );
    1496         cc_reg_GB.Add( "X4", "Caerphilly" );
    1497         cc_reg_GB.Add( "X5", "Cardiff" );
    1498         cc_reg_GB.Add( "X6", "Ceredigion" );
    1499         cc_reg_GB.Add( "X7", "Carmarthenshire" );
    1500         cc_reg_GB.Add( "X8", "Conwy" );
    1501         cc_reg_GB.Add( "X9", "Denbighshire" );
    1502         cc_reg_GB.Add( "Y1", "Flintshire" );
    1503         cc_reg_GB.Add( "Y2", "Gwynedd" );
    1504         cc_reg_GB.Add( "Y3", "Merthyr Tydfil" );
    1505         cc_reg_GB.Add( "Y4", "Monmouthshire" );
    1506         cc_reg_GB.Add( "Y5", "Neath Port Talbot" );
    1507         cc_reg_GB.Add( "Y6", "Newport" );
    1508         cc_reg_GB.Add( "Y7", "Pembrokeshire" );
    1509         cc_reg_GB.Add( "Y8", "Powys" );
    1510         cc_reg_GB.Add( "Y9", "Rhondda Cynon Taff" );
    1511         cc_reg_GB.Add( "Z1", "Swansea" );
    1512         cc_reg_GB.Add( "Z2", "Torfaen" );
    1513         cc_reg_GB.Add( "Z3", "Vale of Glamorgan, The" );
    1514         cc_reg_GB.Add( "Z4", "Wrexham" );
    1515         GEOIP_REGION_NAME.Add( "GB", cc_reg_GB );
    1516         Hashtable cc_reg_GD = new Hashtable();
    1517         cc_reg_GD.Add( "01", "Saint Andrew" );
    1518         cc_reg_GD.Add( "02", "Saint David" );
    1519         cc_reg_GD.Add( "03", "Saint George" );
    1520         cc_reg_GD.Add( "04", "Saint John" );
    1521         cc_reg_GD.Add( "05", "Saint Mark" );
    1522         cc_reg_GD.Add( "06", "Saint Patrick" );
    1523         GEOIP_REGION_NAME.Add( "GD", cc_reg_GD );
    1524         Hashtable cc_reg_GE = new Hashtable();
    1525         cc_reg_GE.Add( "01", "Abashis Raioni" );
    1526         cc_reg_GE.Add( "02", "Abkhazia" );
    1527         cc_reg_GE.Add( "03", "Adigenis Raioni" );
    1528         cc_reg_GE.Add( "04", "Ajaria" );
    1529         cc_reg_GE.Add( "05", "Akhalgoris Raioni" );
    1530         cc_reg_GE.Add( "06", "Akhalk'alak'is Raioni" );
    1531         cc_reg_GE.Add( "07", "Akhalts'ikhis Raioni" );
    1532         cc_reg_GE.Add( "08", "Akhmetis Raioni" );
    1533         cc_reg_GE.Add( "09", "Ambrolauris Raioni" );
    1534         cc_reg_GE.Add( "10", "Aspindzis Raioni" );
    1535         cc_reg_GE.Add( "11", "Baghdat'is Raioni" );
    1536         cc_reg_GE.Add( "12", "Bolnisis Raioni" );
    1537         cc_reg_GE.Add( "13", "Borjomis Raioni" );
    1538         cc_reg_GE.Add( "14", "Chiat'ura" );
    1539         cc_reg_GE.Add( "15", "Ch'khorotsqus Raioni" );
    1540         cc_reg_GE.Add( "16", "Ch'okhatauris Raioni" );
    1541         cc_reg_GE.Add( "17", "Dedop'listsqaros Raioni" );
    1542         cc_reg_GE.Add( "18", "Dmanisis Raioni" );
    1543         cc_reg_GE.Add( "19", "Dushet'is Raioni" );
    1544         cc_reg_GE.Add( "20", "Gardabanis Raioni" );
    1545         cc_reg_GE.Add( "21", "Gori" );
    1546         cc_reg_GE.Add( "22", "Goris Raioni" );
    1547         cc_reg_GE.Add( "23", "Gurjaanis Raioni" );
    1548         cc_reg_GE.Add( "24", "Javis Raioni" );
    1549         cc_reg_GE.Add( "25", "K'arelis Raioni" );
    1550         cc_reg_GE.Add( "26", "Kaspis Raioni" );
    1551         cc_reg_GE.Add( "27", "Kharagaulis Raioni" );
    1552         cc_reg_GE.Add( "28", "Khashuris Raioni" );
    1553         cc_reg_GE.Add( "29", "Khobis Raioni" );
    1554         cc_reg_GE.Add( "30", "Khonis Raioni" );
    1555         cc_reg_GE.Add( "31", "K'ut'aisi" );
    1556         cc_reg_GE.Add( "32", "Lagodekhis Raioni" );
    1557         cc_reg_GE.Add( "33", "Lanch'khut'is Raioni" );
    1558         cc_reg_GE.Add( "34", "Lentekhis Raioni" );
    1559         cc_reg_GE.Add( "35", "Marneulis Raioni" );
    1560         cc_reg_GE.Add( "36", "Martvilis Raioni" );
    1561         cc_reg_GE.Add( "37", "Mestiis Raioni" );
    1562         cc_reg_GE.Add( "38", "Mts'khet'is Raioni" );
    1563         cc_reg_GE.Add( "39", "Ninotsmindis Raioni" );
    1564         cc_reg_GE.Add( "40", "Onis Raioni" );
    1565         cc_reg_GE.Add( "41", "Ozurget'is Raioni" );
    1566         cc_reg_GE.Add( "42", "P'ot'i" );
    1567         cc_reg_GE.Add( "43", "Qazbegis Raioni" );
    1568         cc_reg_GE.Add( "44", "Qvarlis Raioni" );
    1569         cc_reg_GE.Add( "45", "Rust'avi" );
    1570         cc_reg_GE.Add( "46", "Sach'kheris Raioni" );
    1571         cc_reg_GE.Add( "47", "Sagarejos Raioni" );
    1572         cc_reg_GE.Add( "48", "Samtrediis Raioni" );
    1573         cc_reg_GE.Add( "49", "Senakis Raioni" );
    1574         cc_reg_GE.Add( "50", "Sighnaghis Raioni" );
    1575         cc_reg_GE.Add( "51", "T'bilisi" );
    1576         cc_reg_GE.Add( "52", "T'elavis Raioni" );
    1577         cc_reg_GE.Add( "53", "T'erjolis Raioni" );
    1578         cc_reg_GE.Add( "54", "T'et'ritsqaros Raioni" );
    1579         cc_reg_GE.Add( "55", "T'ianet'is Raioni" );
    1580         cc_reg_GE.Add( "56", "Tqibuli" );
    1581         cc_reg_GE.Add( "57", "Ts'ageris Raioni" );
    1582         cc_reg_GE.Add( "58", "Tsalenjikhis Raioni" );
    1583         cc_reg_GE.Add( "59", "Tsalkis Raioni" );
    1584         cc_reg_GE.Add( "60", "Tsqaltubo" );
    1585         cc_reg_GE.Add( "61", "Vanis Raioni" );
    1586         cc_reg_GE.Add( "62", "Zestap'onis Raioni" );
    1587         cc_reg_GE.Add( "63", "Zugdidi" );
    1588         cc_reg_GE.Add( "64", "Zugdidis Raioni" );
    1589         GEOIP_REGION_NAME.Add( "GE", cc_reg_GE );
    1590         Hashtable cc_reg_GH = new Hashtable();
    1591         cc_reg_GH.Add( "01", "Greater Accra" );
    1592         cc_reg_GH.Add( "02", "Ashanti" );
    1593         cc_reg_GH.Add( "03", "Brong-Ahafo" );
    1594         cc_reg_GH.Add( "04", "Central" );
    1595         cc_reg_GH.Add( "05", "Eastern" );
    1596         cc_reg_GH.Add( "06", "Northern" );
    1597         cc_reg_GH.Add( "08", "Volta" );
    1598         cc_reg_GH.Add( "09", "Western" );
    1599         cc_reg_GH.Add( "10", "Upper East" );
    1600         cc_reg_GH.Add( "11", "Upper West" );
    1601         GEOIP_REGION_NAME.Add( "GH", cc_reg_GH );
    1602         Hashtable cc_reg_GL = new Hashtable();
    1603         cc_reg_GL.Add( "01", "Nordgronland" );
    1604         cc_reg_GL.Add( "02", "Ostgronland" );
    1605         cc_reg_GL.Add( "03", "Vestgronland" );
    1606         GEOIP_REGION_NAME.Add( "GL", cc_reg_GL );
    1607         Hashtable cc_reg_GM = new Hashtable();
    1608         cc_reg_GM.Add( "01", "Banjul" );
    1609         cc_reg_GM.Add( "02", "Lower River" );
    1610         cc_reg_GM.Add( "03", "Central River" );
    1611         cc_reg_GM.Add( "04", "Upper River" );
    1612         cc_reg_GM.Add( "05", "Western" );
    1613         cc_reg_GM.Add( "07", "North Bank" );
    1614         GEOIP_REGION_NAME.Add( "GM", cc_reg_GM );
    1615         Hashtable cc_reg_GN = new Hashtable();
    1616         cc_reg_GN.Add( "01", "Beyla" );
    1617         cc_reg_GN.Add( "02", "Boffa" );
    1618         cc_reg_GN.Add( "03", "Boke" );
    1619         cc_reg_GN.Add( "04", "Conakry" );
    1620         cc_reg_GN.Add( "05", "Dabola" );
    1621         cc_reg_GN.Add( "06", "Dalaba" );
    1622         cc_reg_GN.Add( "07", "Dinguiraye" );
    1623         cc_reg_GN.Add( "09", "Faranah" );
    1624         cc_reg_GN.Add( "10", "Forecariah" );
    1625         cc_reg_GN.Add( "11", "Fria" );
    1626         cc_reg_GN.Add( "12", "Gaoual" );
    1627         cc_reg_GN.Add( "13", "Gueckedou" );
    1628         cc_reg_GN.Add( "15", "Kerouane" );
    1629         cc_reg_GN.Add( "16", "Kindia" );
    1630         cc_reg_GN.Add( "17", "Kissidougou" );
    1631         cc_reg_GN.Add( "18", "Koundara" );
    1632         cc_reg_GN.Add( "19", "Kouroussa" );
    1633         cc_reg_GN.Add( "21", "Macenta" );
    1634         cc_reg_GN.Add( "22", "Mali" );
    1635         cc_reg_GN.Add( "23", "Mamou" );
    1636         cc_reg_GN.Add( "25", "Pita" );
    1637         cc_reg_GN.Add( "27", "Telimele" );
    1638         cc_reg_GN.Add( "28", "Tougue" );
    1639         cc_reg_GN.Add( "29", "Yomou" );
    1640         cc_reg_GN.Add( "30", "Coyah" );
    1641         cc_reg_GN.Add( "31", "Dubreka" );
    1642         cc_reg_GN.Add( "32", "Kankan" );
    1643         cc_reg_GN.Add( "33", "Koubia" );
    1644         cc_reg_GN.Add( "34", "Labe" );
    1645         cc_reg_GN.Add( "35", "Lelouma" );
    1646         cc_reg_GN.Add( "36", "Lola" );
    1647         cc_reg_GN.Add( "37", "Mandiana" );
    1648         cc_reg_GN.Add( "38", "Nzerekore" );
    1649         cc_reg_GN.Add( "39", "Siguiri" );
    1650         GEOIP_REGION_NAME.Add( "GN", cc_reg_GN );
    1651         Hashtable cc_reg_GQ = new Hashtable();
    1652         cc_reg_GQ.Add( "03", "Annobon" );
    1653         cc_reg_GQ.Add( "04", "Bioko Norte" );
    1654         cc_reg_GQ.Add( "05", "Bioko Sur" );
    1655         cc_reg_GQ.Add( "06", "Centro Sur" );
    1656         cc_reg_GQ.Add( "07", "Kie-Ntem" );
    1657         cc_reg_GQ.Add( "08", "Litoral" );
    1658         cc_reg_GQ.Add( "09", "Wele-Nzas" );
    1659         GEOIP_REGION_NAME.Add( "GQ", cc_reg_GQ );
    1660         Hashtable cc_reg_GR = new Hashtable();
    1661         cc_reg_GR.Add( "01", "Evros" );
    1662         cc_reg_GR.Add( "02", "Rodhopi" );
    1663         cc_reg_GR.Add( "03", "Xanthi" );
    1664         cc_reg_GR.Add( "04", "Drama" );
    1665         cc_reg_GR.Add( "05", "Serrai" );
    1666         cc_reg_GR.Add( "06", "Kilkis" );
    1667         cc_reg_GR.Add( "07", "Pella" );
    1668         cc_reg_GR.Add( "08", "Florina" );
    1669         cc_reg_GR.Add( "09", "Kastoria" );
    1670         cc_reg_GR.Add( "10", "Grevena" );
    1671         cc_reg_GR.Add( "11", "Kozani" );
    1672         cc_reg_GR.Add( "12", "Imathia" );
    1673         cc_reg_GR.Add( "13", "Thessaloniki" );
    1674         cc_reg_GR.Add( "14", "Kavala" );
    1675         cc_reg_GR.Add( "15", "Khalkidhiki" );
    1676         cc_reg_GR.Add( "16", "Pieria" );
    1677         cc_reg_GR.Add( "17", "Ioannina" );
    1678         cc_reg_GR.Add( "18", "Thesprotia" );
    1679         cc_reg_GR.Add( "19", "Preveza" );
    1680         cc_reg_GR.Add( "20", "Arta" );
    1681         cc_reg_GR.Add( "21", "Larisa" );
    1682         cc_reg_GR.Add( "22", "Trikala" );
    1683         cc_reg_GR.Add( "23", "Kardhitsa" );
    1684         cc_reg_GR.Add( "24", "Magnisia" );
    1685         cc_reg_GR.Add( "25", "Kerkira" );
    1686         cc_reg_GR.Add( "26", "Levkas" );
    1687         cc_reg_GR.Add( "27", "Kefallinia" );
    1688         cc_reg_GR.Add( "28", "Zakinthos" );
    1689         cc_reg_GR.Add( "29", "Fthiotis" );
    1690         cc_reg_GR.Add( "30", "Evritania" );
    1691         cc_reg_GR.Add( "31", "Aitolia kai Akarnania" );
    1692         cc_reg_GR.Add( "32", "Fokis" );
    1693         cc_reg_GR.Add( "33", "Voiotia" );
    1694         cc_reg_GR.Add( "34", "Evvoia" );
    1695         cc_reg_GR.Add( "35", "Attiki" );
    1696         cc_reg_GR.Add( "36", "Argolis" );
    1697         cc_reg_GR.Add( "37", "Korinthia" );
    1698         cc_reg_GR.Add( "38", "Akhaia" );
    1699         cc_reg_GR.Add( "39", "Ilia" );
    1700         cc_reg_GR.Add( "40", "Messinia" );
    1701         cc_reg_GR.Add( "41", "Arkadhia" );
    1702         cc_reg_GR.Add( "42", "Lakonia" );
    1703         cc_reg_GR.Add( "43", "Khania" );
    1704         cc_reg_GR.Add( "44", "Rethimni" );
    1705         cc_reg_GR.Add( "45", "Iraklion" );
    1706         cc_reg_GR.Add( "46", "Lasithi" );
    1707         cc_reg_GR.Add( "47", "Dhodhekanisos" );
    1708         cc_reg_GR.Add( "48", "Samos" );
    1709         cc_reg_GR.Add( "49", "Kikladhes" );
    1710         cc_reg_GR.Add( "50", "Khios" );
    1711         cc_reg_GR.Add( "51", "Lesvos" );
    1712         GEOIP_REGION_NAME.Add( "GR", cc_reg_GR );
    1713         Hashtable cc_reg_GT = new Hashtable();
    1714         cc_reg_GT.Add( "01", "Alta Verapaz" );
    1715         cc_reg_GT.Add( "02", "Baja Verapaz" );
    1716         cc_reg_GT.Add( "03", "Chimaltenango" );
    1717         cc_reg_GT.Add( "04", "Chiquimula" );
    1718         cc_reg_GT.Add( "05", "El Progreso" );
    1719         cc_reg_GT.Add( "06", "Escuintla" );
    1720         cc_reg_GT.Add( "07", "Guatemala" );
    1721         cc_reg_GT.Add( "08", "Huehuetenango" );
    1722         cc_reg_GT.Add( "09", "Izabal" );
    1723         cc_reg_GT.Add( "10", "Jalapa" );
    1724         cc_reg_GT.Add( "11", "Jutiapa" );
    1725         cc_reg_GT.Add( "12", "Peten" );
    1726         cc_reg_GT.Add( "13", "Quetzaltenango" );
    1727         cc_reg_GT.Add( "14", "Quiche" );
    1728         cc_reg_GT.Add( "15", "Retalhuleu" );
    1729         cc_reg_GT.Add( "16", "Sacatepequez" );
    1730         cc_reg_GT.Add( "17", "San Marcos" );
    1731         cc_reg_GT.Add( "18", "Santa Rosa" );
    1732         cc_reg_GT.Add( "19", "Solola" );
    1733         cc_reg_GT.Add( "20", "Suchitepequez" );
    1734         cc_reg_GT.Add( "21", "Totonicapan" );
    1735         cc_reg_GT.Add( "22", "Zacapa" );
    1736         GEOIP_REGION_NAME.Add( "GT", cc_reg_GT );
    1737         Hashtable cc_reg_GW = new Hashtable();
    1738         cc_reg_GW.Add( "01", "Bafata" );
    1739         cc_reg_GW.Add( "02", "Quinara" );
    1740         cc_reg_GW.Add( "04", "Oio" );
    1741         cc_reg_GW.Add( "05", "Bolama" );
    1742         cc_reg_GW.Add( "06", "Cacheu" );
    1743         cc_reg_GW.Add( "07", "Tombali" );
    1744         cc_reg_GW.Add( "10", "Gabu" );
    1745         cc_reg_GW.Add( "11", "Bissau" );
    1746         cc_reg_GW.Add( "12", "Biombo" );
    1747         GEOIP_REGION_NAME.Add( "GW", cc_reg_GW );
    1748         Hashtable cc_reg_GY = new Hashtable();
    1749         cc_reg_GY.Add( "10", "Barima-Waini" );
    1750         cc_reg_GY.Add( "11", "Cuyuni-Mazaruni" );
    1751         cc_reg_GY.Add( "12", "Demerara-Mahaica" );
    1752         cc_reg_GY.Add( "13", "East Berbice-Corentyne" );
    1753         cc_reg_GY.Add( "14", "Essequibo Islands-West Demerara" );
    1754         cc_reg_GY.Add( "15", "Mahaica-Berbice" );
    1755         cc_reg_GY.Add( "16", "Pomeroon-Supenaam" );
    1756         cc_reg_GY.Add( "17", "Potaro-Siparuni" );
    1757         cc_reg_GY.Add( "18", "Upper Demerara-Berbice" );
    1758         cc_reg_GY.Add( "19", "Upper Takutu-Upper Essequibo" );
    1759         GEOIP_REGION_NAME.Add( "GY", cc_reg_GY );
    1760         Hashtable cc_reg_HN = new Hashtable();
    1761         cc_reg_HN.Add( "01", "Atlantida" );
    1762         cc_reg_HN.Add( "02", "Choluteca" );
    1763         cc_reg_HN.Add( "03", "Colon" );
    1764         cc_reg_HN.Add( "04", "Comayagua" );
    1765         cc_reg_HN.Add( "05", "Copan" );
    1766         cc_reg_HN.Add( "06", "Cortes" );
    1767         cc_reg_HN.Add( "07", "El Paraiso" );
    1768         cc_reg_HN.Add( "08", "Francisco Morazan" );
    1769         cc_reg_HN.Add( "09", "Gracias a Dios" );
    1770         cc_reg_HN.Add( "10", "Intibuca" );
    1771         cc_reg_HN.Add( "11", "Islas de la Bahia" );
    1772         cc_reg_HN.Add( "12", "La Paz" );
    1773         cc_reg_HN.Add( "13", "Lempira" );
    1774         cc_reg_HN.Add( "14", "Ocotepeque" );
    1775         cc_reg_HN.Add( "15", "Olancho" );
    1776         cc_reg_HN.Add( "16", "Santa Barbara" );
    1777         cc_reg_HN.Add( "17", "Valle" );
    1778         cc_reg_HN.Add( "18", "Yoro" );
    1779         GEOIP_REGION_NAME.Add( "HN", cc_reg_HN );
    1780         Hashtable cc_reg_HR = new Hashtable();
    1781         cc_reg_HR.Add( "01", "Bjelovarsko-Bilogorska" );
    1782         cc_reg_HR.Add( "02", "Brodsko-Posavska" );
    1783         cc_reg_HR.Add( "03", "Dubrovacko-Neretvanska" );
    1784         cc_reg_HR.Add( "04", "Istarska" );
    1785         cc_reg_HR.Add( "05", "Karlovacka" );
    1786         cc_reg_HR.Add( "06", "Koprivnicko-Krizevacka" );
    1787         cc_reg_HR.Add( "07", "Krapinsko-Zagorska" );
    1788         cc_reg_HR.Add( "08", "Licko-Senjska" );
    1789         cc_reg_HR.Add( "09", "Medimurska" );
    1790         cc_reg_HR.Add( "10", "Osjecko-Baranjska" );
    1791         cc_reg_HR.Add( "11", "Pozesko-Slavonska" );
    1792         cc_reg_HR.Add( "12", "Primorsko-Goranska" );
    1793         cc_reg_HR.Add( "13", "Sibensko-Kninska" );
    1794         cc_reg_HR.Add( "14", "Sisacko-Moslavacka" );
    1795         cc_reg_HR.Add( "15", "Splitsko-Dalmatinska" );
    1796         cc_reg_HR.Add( "16", "Varazdinska" );
    1797         cc_reg_HR.Add( "17", "Viroviticko-Podravska" );
    1798         cc_reg_HR.Add( "18", "Vukovarsko-Srijemska" );
    1799         cc_reg_HR.Add( "19", "Zadarska" );
    1800         cc_reg_HR.Add( "20", "Zagrebacka" );
    1801         cc_reg_HR.Add( "21", "Grad Zagreb" );
    1802         GEOIP_REGION_NAME.Add( "HR", cc_reg_HR );
    1803         Hashtable cc_reg_HT = new Hashtable();
    1804         cc_reg_HT.Add( "03", "Nord-Ouest" );
    1805         cc_reg_HT.Add( "06", "Artibonite" );
    1806         cc_reg_HT.Add( "07", "Centre" );
    1807         cc_reg_HT.Add( "09", "Nord" );
    1808         cc_reg_HT.Add( "10", "Nord-Est" );
    1809         cc_reg_HT.Add( "11", "Ouest" );
    1810         cc_reg_HT.Add( "12", "Sud" );
    1811         cc_reg_HT.Add( "13", "Sud-Est" );
    1812         cc_reg_HT.Add( "14", "Grand' Anse" );
    1813         cc_reg_HT.Add( "15", "Nippes" );
    1814         GEOIP_REGION_NAME.Add( "HT", cc_reg_HT );
    1815         Hashtable cc_reg_HU = new Hashtable();
    1816         cc_reg_HU.Add( "01", "Bacs-Kiskun" );
    1817         cc_reg_HU.Add( "02", "Baranya" );
    1818         cc_reg_HU.Add( "03", "Bekes" );
    1819         cc_reg_HU.Add( "04", "Borsod-Abauj-Zemplen" );
    1820         cc_reg_HU.Add( "05", "Budapest" );
    1821         cc_reg_HU.Add( "06", "Csongrad" );
    1822         cc_reg_HU.Add( "07", "Debrecen" );
    1823         cc_reg_HU.Add( "08", "Fejer" );
    1824         cc_reg_HU.Add( "09", "Gyor-Moson-Sopron" );
    1825         cc_reg_HU.Add( "10", "Hajdu-Bihar" );
    1826         cc_reg_HU.Add( "11", "Heves" );
    1827         cc_reg_HU.Add( "12", "Komarom-Esztergom" );
    1828         cc_reg_HU.Add( "13", "Miskolc" );
    1829         cc_reg_HU.Add( "14", "Nograd" );
    1830         cc_reg_HU.Add( "15", "Pecs" );
    1831         cc_reg_HU.Add( "16", "Pest" );
    1832         cc_reg_HU.Add( "17", "Somogy" );
    1833         cc_reg_HU.Add( "18", "Szabolcs-Szatmar-Bereg" );
    1834         cc_reg_HU.Add( "19", "Szeged" );
    1835         cc_reg_HU.Add( "20", "Jasz-Nagykun-Szolnok" );
    1836         cc_reg_HU.Add( "21", "Tolna" );
    1837         cc_reg_HU.Add( "22", "Vas" );
    1838         cc_reg_HU.Add( "23", "Veszprem" );
    1839         cc_reg_HU.Add( "24", "Zala" );
    1840         cc_reg_HU.Add( "25", "Gyor" );
    1841         cc_reg_HU.Add( "26", "Bekescsaba" );
    1842         cc_reg_HU.Add( "27", "Dunaujvaros" );
    1843         cc_reg_HU.Add( "28", "Eger" );
    1844         cc_reg_HU.Add( "29", "Hodmezovasarhely" );
    1845         cc_reg_HU.Add( "30", "Kaposvar" );
    1846         cc_reg_HU.Add( "31", "Kecskemet" );
    1847         cc_reg_HU.Add( "32", "Nagykanizsa" );
    1848         cc_reg_HU.Add( "33", "Nyiregyhaza" );
    1849         cc_reg_HU.Add( "34", "Sopron" );
    1850         cc_reg_HU.Add( "35", "Szekesfehervar" );
    1851         cc_reg_HU.Add( "36", "Szolnok" );
    1852         cc_reg_HU.Add( "37", "Szombathely" );
    1853         cc_reg_HU.Add( "38", "Tatabanya" );
    1854         cc_reg_HU.Add( "39", "Veszprem" );
    1855         cc_reg_HU.Add( "40", "Zalaegerszeg" );
    1856         cc_reg_HU.Add( "41", "Salgotarjan" );
    1857         cc_reg_HU.Add( "42", "Szekszard" );
    1858         GEOIP_REGION_NAME.Add( "HU", cc_reg_HU );
    1859         Hashtable cc_reg_ID = new Hashtable();
    1860         cc_reg_ID.Add( "01", "Aceh" );
    1861         cc_reg_ID.Add( "02", "Bali" );
    1862         cc_reg_ID.Add( "03", "Bengkulu" );
    1863         cc_reg_ID.Add( "04", "Jakarta Raya" );
    1864         cc_reg_ID.Add( "05", "Jambi" );
    1865         cc_reg_ID.Add( "06", "Jawa Barat" );
    1866         cc_reg_ID.Add( "07", "Jawa Tengah" );
    1867         cc_reg_ID.Add( "08", "Jawa Timur" );
    1868         cc_reg_ID.Add( "09", "Papua" );
    1869         cc_reg_ID.Add( "10", "Yogyakarta" );
    1870         cc_reg_ID.Add( "11", "Kalimantan Barat" );
    1871         cc_reg_ID.Add( "12", "Kalimantan Selatan" );
    1872         cc_reg_ID.Add( "13", "Kalimantan Tengah" );
    1873         cc_reg_ID.Add( "14", "Kalimantan Timur" );
    1874         cc_reg_ID.Add( "15", "Lampung" );
    1875         cc_reg_ID.Add( "16", "Maluku" );
    1876         cc_reg_ID.Add( "17", "Nusa Tenggara Barat" );
    1877         cc_reg_ID.Add( "18", "Nusa Tenggara Timur" );
    1878         cc_reg_ID.Add( "19", "Riau" );
    1879         cc_reg_ID.Add( "20", "Sulawesi Selatan" );
    1880         cc_reg_ID.Add( "21", "Sulawesi Tengah" );
    1881         cc_reg_ID.Add( "22", "Sulawesi Tenggara" );
    1882         cc_reg_ID.Add( "23", "Sulawesi Utara" );
    1883         cc_reg_ID.Add( "24", "Sumatera Barat" );
    1884         cc_reg_ID.Add( "25", "Sumatera Selatan" );
    1885         cc_reg_ID.Add( "26", "Sumatera Utara" );
    1886         cc_reg_ID.Add( "28", "Maluku" );
    1887         cc_reg_ID.Add( "29", "Maluku Utara" );
    1888         cc_reg_ID.Add( "30", "Jawa Barat" );
    1889         cc_reg_ID.Add( "31", "Sulawesi Utara" );
    1890         cc_reg_ID.Add( "32", "Sumatera Selatan" );
    1891         cc_reg_ID.Add( "33", "Banten" );
    1892         cc_reg_ID.Add( "34", "Gorontalo" );
    1893         cc_reg_ID.Add( "35", "Kepulauan Bangka Belitung" );
    1894         cc_reg_ID.Add( "36", "Papua" );
    1895         cc_reg_ID.Add( "37", "Riau" );
    1896         cc_reg_ID.Add( "38", "Sulawesi Selatan" );
    1897         cc_reg_ID.Add( "39", "Irian Jaya Barat" );
    1898         cc_reg_ID.Add( "40", "Kepulauan Riau" );
    1899         cc_reg_ID.Add( "41", "Sulawesi Barat" );
    1900         GEOIP_REGION_NAME.Add( "ID", cc_reg_ID );
    1901         Hashtable cc_reg_IE = new Hashtable();
    1902         cc_reg_IE.Add( "01", "Carlow" );
    1903         cc_reg_IE.Add( "02", "Cavan" );
    1904         cc_reg_IE.Add( "03", "Clare" );
    1905         cc_reg_IE.Add( "04", "Cork" );
    1906         cc_reg_IE.Add( "06", "Donegal" );
    1907         cc_reg_IE.Add( "07", "Dublin" );
    1908         cc_reg_IE.Add( "10", "Galway" );
    1909         cc_reg_IE.Add( "11", "Kerry" );
    1910         cc_reg_IE.Add( "12", "Kildare" );
    1911         cc_reg_IE.Add( "13", "Kilkenny" );
    1912         cc_reg_IE.Add( "14", "Leitrim" );
    1913         cc_reg_IE.Add( "15", "Laois" );
    1914         cc_reg_IE.Add( "16", "Limerick" );
    1915         cc_reg_IE.Add( "18", "Longford" );
    1916         cc_reg_IE.Add( "19", "Louth" );
    1917         cc_reg_IE.Add( "20", "Mayo" );
    1918         cc_reg_IE.Add( "21", "Meath" );
    1919         cc_reg_IE.Add( "22", "Monaghan" );
    1920         cc_reg_IE.Add( "23", "Offaly" );
    1921         cc_reg_IE.Add( "24", "Roscommon" );
    1922         cc_reg_IE.Add( "25", "Sligo" );
    1923         cc_reg_IE.Add( "26", "Tipperary" );
    1924         cc_reg_IE.Add( "27", "Waterford" );
    1925         cc_reg_IE.Add( "29", "Westmeath" );
    1926         cc_reg_IE.Add( "30", "Wexford" );
    1927         cc_reg_IE.Add( "31", "Wicklow" );
    1928         GEOIP_REGION_NAME.Add( "IE", cc_reg_IE );
    1929         Hashtable cc_reg_IL = new Hashtable();
    1930         cc_reg_IL.Add( "01", "HaDarom" );
    1931         cc_reg_IL.Add( "02", "HaMerkaz" );
    1932         cc_reg_IL.Add( "03", "HaZafon" );
    1933         cc_reg_IL.Add( "04", "Hefa" );
    1934         cc_reg_IL.Add( "05", "Tel Aviv" );
    1935         cc_reg_IL.Add( "06", "Yerushalayim" );
    1936         GEOIP_REGION_NAME.Add( "IL", cc_reg_IL );
    1937         Hashtable cc_reg_IN = new Hashtable();
    1938         cc_reg_IN.Add( "01", "Andaman and Nicobar Islands" );
    1939         cc_reg_IN.Add( "02", "Andhra Pradesh" );
    1940         cc_reg_IN.Add( "03", "Assam" );
    1941         cc_reg_IN.Add( "05", "Chandigarh" );
    1942         cc_reg_IN.Add( "06", "Dadra and Nagar Haveli" );
    1943         cc_reg_IN.Add( "07", "Delhi" );
    1944         cc_reg_IN.Add( "09", "Gujarat" );
    1945         cc_reg_IN.Add( "10", "Haryana" );
    1946         cc_reg_IN.Add( "11", "Himachal Pradesh" );
    1947         cc_reg_IN.Add( "12", "Jammu and Kashmir" );
    1948         cc_reg_IN.Add( "13", "Kerala" );
    1949         cc_reg_IN.Add( "14", "Lakshadweep" );
    1950         cc_reg_IN.Add( "16", "Maharashtra" );
    1951         cc_reg_IN.Add( "17", "Manipur" );
    1952         cc_reg_IN.Add( "18", "Meghalaya" );
    1953         cc_reg_IN.Add( "19", "Karnataka" );
    1954         cc_reg_IN.Add( "20", "Nagaland" );
    1955         cc_reg_IN.Add( "21", "Orissa" );
    1956         cc_reg_IN.Add( "22", "Puducherry" );
    1957         cc_reg_IN.Add( "23", "Punjab" );
    1958         cc_reg_IN.Add( "24", "Rajasthan" );
    1959         cc_reg_IN.Add( "25", "Tamil Nadu" );
    1960         cc_reg_IN.Add( "26", "Tripura" );
    1961         cc_reg_IN.Add( "28", "West Bengal" );
    1962         cc_reg_IN.Add( "29", "Sikkim" );
    1963         cc_reg_IN.Add( "30", "Arunachal Pradesh" );
    1964         cc_reg_IN.Add( "31", "Mizoram" );
    1965         cc_reg_IN.Add( "32", "Daman and Diu" );
    1966         cc_reg_IN.Add( "33", "Goa" );
    1967         cc_reg_IN.Add( "34", "Bihar" );
    1968         cc_reg_IN.Add( "35", "Madhya Pradesh" );
    1969         cc_reg_IN.Add( "36", "Uttar Pradesh" );
    1970         cc_reg_IN.Add( "37", "Chhattisgarh" );
    1971         cc_reg_IN.Add( "38", "Jharkhand" );
    1972         cc_reg_IN.Add( "39", "Uttarakhand" );
    1973         GEOIP_REGION_NAME.Add( "IN", cc_reg_IN );
    1974         Hashtable cc_reg_IQ = new Hashtable();
    1975         cc_reg_IQ.Add( "01", "Al Anbar" );
    1976         cc_reg_IQ.Add( "02", "Al Basrah" );
    1977         cc_reg_IQ.Add( "03", "Al Muthanna" );
    1978         cc_reg_IQ.Add( "04", "Al Qadisiyah" );
    1979         cc_reg_IQ.Add( "05", "As Sulaymaniyah" );
    1980         cc_reg_IQ.Add( "06", "Babil" );
    1981         cc_reg_IQ.Add( "07", "Baghdad" );
    1982         cc_reg_IQ.Add( "08", "Dahuk" );
    1983         cc_reg_IQ.Add( "09", "Dhi Qar" );
    1984         cc_reg_IQ.Add( "10", "Diyala" );
    1985         cc_reg_IQ.Add( "11", "Arbil" );
    1986         cc_reg_IQ.Add( "12", "Karbala'" );
    1987         cc_reg_IQ.Add( "13", "At Ta'mim" );
    1988         cc_reg_IQ.Add( "14", "Maysan" );
    1989         cc_reg_IQ.Add( "15", "Ninawa" );
    1990         cc_reg_IQ.Add( "16", "Wasit" );
    1991         cc_reg_IQ.Add( "17", "An Najaf" );
    1992         cc_reg_IQ.Add( "18", "Salah ad Din" );
    1993         GEOIP_REGION_NAME.Add( "IQ", cc_reg_IQ );
    1994         Hashtable cc_reg_IR = new Hashtable();
    1995         cc_reg_IR.Add( "01", "Azarbayjan-e Bakhtari" );
    1996         cc_reg_IR.Add( "02", "Azarbayjan-e Khavari" );
    1997         cc_reg_IR.Add( "03", "Chahar Mahall va Bakhtiari" );
    1998         cc_reg_IR.Add( "04", "Sistan va Baluchestan" );
    1999         cc_reg_IR.Add( "05", "Kohkiluyeh va Buyer Ahmadi" );
    2000         cc_reg_IR.Add( "07", "Fars" );
    2001         cc_reg_IR.Add( "08", "Gilan" );
    2002         cc_reg_IR.Add( "09", "Hamadan" );
    2003         cc_reg_IR.Add( "10", "Ilam" );
    2004         cc_reg_IR.Add( "11", "Hormozgan" );
    2005         cc_reg_IR.Add( "12", "Kerman" );
    2006         cc_reg_IR.Add( "13", "Bakhtaran" );
    2007         cc_reg_IR.Add( "15", "Khuzestan" );
    2008         cc_reg_IR.Add( "16", "Kordestan" );
    2009         cc_reg_IR.Add( "17", "Mazandaran" );
    2010         cc_reg_IR.Add( "18", "Semnan Province" );
    2011         cc_reg_IR.Add( "19", "Markazi" );
    2012         cc_reg_IR.Add( "21", "Zanjan" );
    2013         cc_reg_IR.Add( "22", "Bushehr" );
    2014         cc_reg_IR.Add( "23", "Lorestan" );
    2015         cc_reg_IR.Add( "24", "Markazi" );
    2016         cc_reg_IR.Add( "25", "Semnan" );
    2017         cc_reg_IR.Add( "26", "Tehran" );
    2018         cc_reg_IR.Add( "27", "Zanjan" );
    2019         cc_reg_IR.Add( "28", "Esfahan" );
    2020         cc_reg_IR.Add( "29", "Kerman" );
    2021         cc_reg_IR.Add( "30", "Khorasan" );
    2022         cc_reg_IR.Add( "31", "Yazd" );
    2023         cc_reg_IR.Add( "32", "Ardabil" );
    2024         cc_reg_IR.Add( "33", "East Azarbaijan" );
    2025         cc_reg_IR.Add( "34", "Markazi" );
    2026         cc_reg_IR.Add( "35", "Mazandaran" );
    2027         cc_reg_IR.Add( "36", "Zanjan" );
    2028         cc_reg_IR.Add( "37", "Golestan" );
    2029         cc_reg_IR.Add( "38", "Qazvin" );
    2030         cc_reg_IR.Add( "39", "Qom" );
    2031         cc_reg_IR.Add( "40", "Yazd" );
    2032         cc_reg_IR.Add( "41", "Khorasan-e Janubi" );
    2033         cc_reg_IR.Add( "42", "Khorasan-e Razavi" );
    2034         cc_reg_IR.Add( "43", "Khorasan-e Shemali" );
    2035         GEOIP_REGION_NAME.Add( "IR", cc_reg_IR );
    2036         Hashtable cc_reg_IS = new Hashtable();
    2037         cc_reg_IS.Add( "03", "Arnessysla" );
    2038         cc_reg_IS.Add( "05", "Austur-Hunavatnssysla" );
    2039         cc_reg_IS.Add( "06", "Austur-Skaftafellssysla" );
    2040         cc_reg_IS.Add( "07", "Borgarfjardarsysla" );
    2041         cc_reg_IS.Add( "09", "Eyjafjardarsysla" );
    2042         cc_reg_IS.Add( "10", "Gullbringusysla" );
    2043         cc_reg_IS.Add( "15", "Kjosarsysla" );
    2044         cc_reg_IS.Add( "17", "Myrasysla" );
    2045         cc_reg_IS.Add( "20", "Nordur-Mulasysla" );
    2046         cc_reg_IS.Add( "21", "Nordur-Tingeyjarsysla" );
    2047         cc_reg_IS.Add( "23", "Rangarvallasysla" );
    2048         cc_reg_IS.Add( "28", "Skagafjardarsysla" );
    2049         cc_reg_IS.Add( "29", "Snafellsnes- og Hnappadalssysla" );
    2050         cc_reg_IS.Add( "30", "Strandasysla" );
    2051         cc_reg_IS.Add( "31", "Sudur-Mulasysla" );
    2052         cc_reg_IS.Add( "32", "Sudur-Tingeyjarsysla" );
    2053         cc_reg_IS.Add( "34", "Vestur-Bardastrandarsysla" );
    2054         cc_reg_IS.Add( "35", "Vestur-Hunavatnssysla" );
    2055         cc_reg_IS.Add( "36", "Vestur-Isafjardarsysla" );
    2056         cc_reg_IS.Add( "37", "Vestur-Skaftafellssysla" );
    2057         cc_reg_IS.Add( "40", "Norourland Eystra" );
    2058         cc_reg_IS.Add( "41", "Norourland Vestra" );
    2059         cc_reg_IS.Add( "42", "Suourland" );
    2060         cc_reg_IS.Add( "43", "Suournes" );
    2061         cc_reg_IS.Add( "44", "Vestfiroir" );
    2062         cc_reg_IS.Add( "45", "Vesturland" );
    2063         GEOIP_REGION_NAME.Add( "IS", cc_reg_IS );
    2064         Hashtable cc_reg_IT = new Hashtable();
    2065         cc_reg_IT.Add( "01", "Abruzzi" );
    2066         cc_reg_IT.Add( "02", "Basilicata" );
    2067         cc_reg_IT.Add( "03", "Calabria" );
    2068         cc_reg_IT.Add( "04", "Campania" );
    2069         cc_reg_IT.Add( "05", "Emilia-Romagna" );
    2070         cc_reg_IT.Add( "06", "Friuli-Venezia Giulia" );
    2071         cc_reg_IT.Add( "07", "Lazio" );
    2072         cc_reg_IT.Add( "08", "Liguria" );
    2073         cc_reg_IT.Add( "09", "Lombardia" );
    2074         cc_reg_IT.Add( "10", "Marche" );
    2075         cc_reg_IT.Add( "11", "Molise" );
    2076         cc_reg_IT.Add( "12", "Piemonte" );
    2077         cc_reg_IT.Add( "13", "Puglia" );
    2078         cc_reg_IT.Add( "14", "Sardegna" );
    2079         cc_reg_IT.Add( "15", "Sicilia" );
    2080         cc_reg_IT.Add( "16", "Toscana" );
    2081         cc_reg_IT.Add( "17", "Trentino-Alto Adige" );
    2082         cc_reg_IT.Add( "18", "Umbria" );
    2083         cc_reg_IT.Add( "19", "Valle d'Aosta" );
    2084         cc_reg_IT.Add( "20", "Veneto" );
    2085         GEOIP_REGION_NAME.Add( "IT", cc_reg_IT );
    2086         Hashtable cc_reg_JM = new Hashtable();
    2087         cc_reg_JM.Add( "01", "Clarendon" );
    2088         cc_reg_JM.Add( "02", "Hanover" );
    2089         cc_reg_JM.Add( "04", "Manchester" );
    2090         cc_reg_JM.Add( "07", "Portland" );
    2091         cc_reg_JM.Add( "08", "Saint Andrew" );
    2092         cc_reg_JM.Add( "09", "Saint Ann" );
    2093         cc_reg_JM.Add( "10", "Saint Catherine" );
    2094         cc_reg_JM.Add( "11", "Saint Elizabeth" );
    2095         cc_reg_JM.Add( "12", "Saint James" );
    2096         cc_reg_JM.Add( "13", "Saint Mary" );
    2097         cc_reg_JM.Add( "14", "Saint Thomas" );
    2098         cc_reg_JM.Add( "15", "Trelawny" );
    2099         cc_reg_JM.Add( "16", "Westmoreland" );
    2100         cc_reg_JM.Add( "17", "Kingston" );
    2101         GEOIP_REGION_NAME.Add( "JM", cc_reg_JM );
    2102         Hashtable cc_reg_JO = new Hashtable();
    2103         cc_reg_JO.Add( "02", "Al Balqa'" );
    2104         cc_reg_JO.Add( "07", "Ma" );
    2105         cc_reg_JO.Add( "09", "Al Karak" );
    2106         cc_reg_JO.Add( "10", "Al Mafraq" );
    2107         cc_reg_JO.Add( "11", "Amman Governorate" );
    2108         cc_reg_JO.Add( "12", "At Tafilah" );
    2109         cc_reg_JO.Add( "13", "Az Zarqa" );
    2110         cc_reg_JO.Add( "14", "Irbid" );
    2111         cc_reg_JO.Add( "16", "Amman" );
    2112         GEOIP_REGION_NAME.Add( "JO", cc_reg_JO );
    2113         Hashtable cc_reg_JP = new Hashtable();
    2114         cc_reg_JP.Add( "01", "Aichi" );
    2115         cc_reg_JP.Add( "02", "Akita" );
    2116         cc_reg_JP.Add( "03", "Aomori" );
    2117         cc_reg_JP.Add( "04", "Chiba" );
    2118         cc_reg_JP.Add( "05", "Ehime" );
    2119         cc_reg_JP.Add( "06", "Fukui" );
    2120         cc_reg_JP.Add( "07", "Fukuoka" );
    2121         cc_reg_JP.Add( "08", "Fukushima" );
    2122         cc_reg_JP.Add( "09", "Gifu" );
    2123         cc_reg_JP.Add( "10", "Gumma" );
    2124         cc_reg_JP.Add( "11", "Hiroshima" );
    2125         cc_reg_JP.Add( "12", "Hokkaido" );
    2126         cc_reg_JP.Add( "13", "Hyogo" );
    2127         cc_reg_JP.Add( "14", "Ibaraki" );
    2128         cc_reg_JP.Add( "15", "Ishikawa" );
    2129         cc_reg_JP.Add( "16", "Iwate" );
    2130         cc_reg_JP.Add( "17", "Kagawa" );
    2131         cc_reg_JP.Add( "18", "Kagoshima" );
    2132         cc_reg_JP.Add( "19", "Kanagawa" );
    2133         cc_reg_JP.Add( "20", "Kochi" );
    2134         cc_reg_JP.Add( "21", "Kumamoto" );
    2135         cc_reg_JP.Add( "22", "Kyoto" );
    2136         cc_reg_JP.Add( "23", "Mie" );
    2137         cc_reg_JP.Add( "24", "Miyagi" );
    2138         cc_reg_JP.Add( "25", "Miyazaki" );
    2139         cc_reg_JP.Add( "26", "Nagano" );
    2140         cc_reg_JP.Add( "27", "Nagasaki" );
    2141         cc_reg_JP.Add( "28", "Nara" );
    2142         cc_reg_JP.Add( "29", "Niigata" );
    2143         cc_reg_JP.Add( "30", "Oita" );
    2144         cc_reg_JP.Add( "31", "Okayama" );
    2145         cc_reg_JP.Add( "32", "Osaka" );
    2146         cc_reg_JP.Add( "33", "Saga" );
    2147         cc_reg_JP.Add( "34", "Saitama" );
    2148         cc_reg_JP.Add( "35", "Shiga" );
    2149         cc_reg_JP.Add( "36", "Shimane" );
    2150         cc_reg_JP.Add( "37", "Shizuoka" );
    2151         cc_reg_JP.Add( "38", "Tochigi" );
    2152         cc_reg_JP.Add( "39", "Tokushima" );
    2153         cc_reg_JP.Add( "40", "Tokyo" );
    2154         cc_reg_JP.Add( "41", "Tottori" );
    2155         cc_reg_JP.Add( "42", "Toyama" );
    2156         cc_reg_JP.Add( "43", "Wakayama" );
    2157         cc_reg_JP.Add( "44", "Yamagata" );
    2158         cc_reg_JP.Add( "45", "Yamaguchi" );
    2159         cc_reg_JP.Add( "46", "Yamanashi" );
    2160         cc_reg_JP.Add( "47", "Okinawa" );
    2161         GEOIP_REGION_NAME.Add( "JP", cc_reg_JP );
    2162         Hashtable cc_reg_KE = new Hashtable();
    2163         cc_reg_KE.Add( "01", "Central" );
    2164         cc_reg_KE.Add( "02", "Coast" );
    2165         cc_reg_KE.Add( "03", "Eastern" );
    2166         cc_reg_KE.Add( "05", "Nairobi Area" );
    2167         cc_reg_KE.Add( "06", "North-Eastern" );
    2168         cc_reg_KE.Add( "07", "Nyanza" );
    2169         cc_reg_KE.Add( "08", "Rift Valley" );
    2170         cc_reg_KE.Add( "09", "Western" );
    2171         GEOIP_REGION_NAME.Add( "KE", cc_reg_KE );
    2172         Hashtable cc_reg_KG = new Hashtable();
    2173         cc_reg_KG.Add( "01", "Bishkek" );
    2174         cc_reg_KG.Add( "02", "Chuy" );
    2175         cc_reg_KG.Add( "03", "Jalal-Abad" );
    2176         cc_reg_KG.Add( "04", "Naryn" );
    2177         cc_reg_KG.Add( "05", "Osh" );
    2178         cc_reg_KG.Add( "06", "Talas" );
    2179         cc_reg_KG.Add( "07", "Ysyk-Kol" );
    2180         cc_reg_KG.Add( "08", "Osh" );
    2181         cc_reg_KG.Add( "09", "Batken" );
    2182         GEOIP_REGION_NAME.Add( "KG", cc_reg_KG );
    2183         Hashtable cc_reg_KH = new Hashtable();
    2184         cc_reg_KH.Add( "00", "Banteay Meanchey" );
    2185         cc_reg_KH.Add( "01", "Batdambang" );
    2186         cc_reg_KH.Add( "02", "Kampong Cham" );
    2187         cc_reg_KH.Add( "03", "Kampong Chhnang" );
    2188         cc_reg_KH.Add( "04", "Kampong Speu" );
    2189         cc_reg_KH.Add( "05", "Kampong Thum" );
    2190         cc_reg_KH.Add( "06", "Kampot" );
    2191         cc_reg_KH.Add( "07", "Kandal" );
    2192         cc_reg_KH.Add( "08", "Koh Kong" );
    2193         cc_reg_KH.Add( "09", "Kracheh" );
    2194         cc_reg_KH.Add( "10", "Mondulkiri" );
    2195         cc_reg_KH.Add( "11", "Phnum Penh" );
    2196         cc_reg_KH.Add( "12", "Pursat" );
    2197         cc_reg_KH.Add( "13", "Preah Vihear" );
    2198         cc_reg_KH.Add( "14", "Prey Veng" );
    2199         cc_reg_KH.Add( "15", "Ratanakiri Kiri" );
    2200         cc_reg_KH.Add( "16", "Siem Reap" );
    2201         cc_reg_KH.Add( "17", "Stung Treng" );
    2202         cc_reg_KH.Add( "18", "Svay Rieng" );
    2203         cc_reg_KH.Add( "19", "Takeo" );
    2204         cc_reg_KH.Add( "29", "Batdambang" );
    2205         cc_reg_KH.Add( "30", "Pailin" );
    2206         GEOIP_REGION_NAME.Add( "KH", cc_reg_KH );
    2207         Hashtable cc_reg_KI = new Hashtable();
    2208         cc_reg_KI.Add( "01", "Gilbert Islands" );
    2209         cc_reg_KI.Add( "02", "Line Islands" );
    2210         cc_reg_KI.Add( "03", "Phoenix Islands" );
    2211         GEOIP_REGION_NAME.Add( "KI", cc_reg_KI );
    2212         Hashtable cc_reg_KM = new Hashtable();
    2213         cc_reg_KM.Add( "01", "Anjouan" );
    2214         cc_reg_KM.Add( "02", "Grande Comore" );
    2215         cc_reg_KM.Add( "03", "Moheli" );
    2216         GEOIP_REGION_NAME.Add( "KM", cc_reg_KM );
    2217         Hashtable cc_reg_KN = new Hashtable();
    2218         cc_reg_KN.Add( "01", "Christ Church Nichola Town" );
    2219         cc_reg_KN.Add( "02", "Saint Anne Sandy Point" );
    2220         cc_reg_KN.Add( "03", "Saint George Basseterre" );
    2221         cc_reg_KN.Add( "04", "Saint George Gingerland" );
    2222         cc_reg_KN.Add( "05", "Saint James Windward" );
    2223         cc_reg_KN.Add( "06", "Saint John Capisterre" );
    2224         cc_reg_KN.Add( "07", "Saint John Figtree" );
    2225         cc_reg_KN.Add( "08", "Saint Mary Cayon" );
    2226         cc_reg_KN.Add( "09", "Saint Paul Capisterre" );
    2227         cc_reg_KN.Add( "10", "Saint Paul Charlestown" );
    2228         cc_reg_KN.Add( "11", "Saint Peter Basseterre" );
    2229         cc_reg_KN.Add( "12", "Saint Thomas Lowland" );
    2230         cc_reg_KN.Add( "13", "Saint Thomas Middle Island" );
    2231         cc_reg_KN.Add( "15", "Trinity Palmetto Point" );
    2232         GEOIP_REGION_NAME.Add( "KN", cc_reg_KN );
    2233         Hashtable cc_reg_KP = new Hashtable();
    2234         cc_reg_KP.Add( "01", "Chagang-do" );
    2235         cc_reg_KP.Add( "03", "Hamgyong-namdo" );
    2236         cc_reg_KP.Add( "06", "Hwanghae-namdo" );
    2237         cc_reg_KP.Add( "07", "Hwanghae-bukto" );
    2238         cc_reg_KP.Add( "08", "Kaesong-si" );
    2239         cc_reg_KP.Add( "09", "Kangwon-do" );
    2240         cc_reg_KP.Add( "11", "P'yongan-bukto" );
    2241         cc_reg_KP.Add( "12", "P'yongyang-si" );
    2242         cc_reg_KP.Add( "13", "Yanggang-do" );
    2243         cc_reg_KP.Add( "14", "Namp'o-si" );
    2244         cc_reg_KP.Add( "15", "P'yongan-namdo" );
    2245         cc_reg_KP.Add( "17", "Hamgyong-bukto" );
    2246         cc_reg_KP.Add( "18", "Najin Sonbong-si" );
    2247         GEOIP_REGION_NAME.Add( "KP", cc_reg_KP );
    2248         Hashtable cc_reg_KR = new Hashtable();
    2249         cc_reg_KR.Add( "01", "Cheju-do" );
    2250         cc_reg_KR.Add( "03", "Cholla-bukto" );
    2251         cc_reg_KR.Add( "05", "Ch'ungch'ong-bukto" );
    2252         cc_reg_KR.Add( "06", "Kangwon-do" );
    2253         cc_reg_KR.Add( "10", "Pusan-jikhalsi" );
    2254         cc_reg_KR.Add( "11", "Seoul-t'ukpyolsi" );
    2255         cc_reg_KR.Add( "12", "Inch'on-jikhalsi" );
    2256         cc_reg_KR.Add( "13", "Kyonggi-do" );
    2257         cc_reg_KR.Add( "14", "Kyongsang-bukto" );
    2258         cc_reg_KR.Add( "15", "Taegu-jikhalsi" );
    2259         cc_reg_KR.Add( "16", "Cholla-namdo" );
    2260         cc_reg_KR.Add( "17", "Ch'ungch'ong-namdo" );
    2261         cc_reg_KR.Add( "18", "Kwangju-jikhalsi" );
    2262         cc_reg_KR.Add( "19", "Taejon-jikhalsi" );
    2263         cc_reg_KR.Add( "20", "Kyongsang-namdo" );
    2264         cc_reg_KR.Add( "21", "Ulsan-gwangyoksi" );
    2265         GEOIP_REGION_NAME.Add( "KR", cc_reg_KR );
    2266         Hashtable cc_reg_KW = new Hashtable();
    2267         cc_reg_KW.Add( "01", "Al Ahmadi" );
    2268         cc_reg_KW.Add( "02", "Al Kuwayt" );
    2269         cc_reg_KW.Add( "05", "Al Jahra" );
    2270         cc_reg_KW.Add( "07", "Al Farwaniyah" );
    2271         cc_reg_KW.Add( "08", "Hawalli" );
    2272         cc_reg_KW.Add( "09", "Mubarak al Kabir" );
    2273         GEOIP_REGION_NAME.Add( "KW", cc_reg_KW );
    2274         Hashtable cc_reg_KY = new Hashtable();
    2275         cc_reg_KY.Add( "01", "Creek" );
    2276         cc_reg_KY.Add( "02", "Eastern" );
    2277         cc_reg_KY.Add( "03", "Midland" );
    2278         cc_reg_KY.Add( "04", "South Town" );
    2279         cc_reg_KY.Add( "05", "Spot Bay" );
    2280         cc_reg_KY.Add( "06", "Stake Bay" );
    2281         cc_reg_KY.Add( "07", "West End" );
    2282         cc_reg_KY.Add( "08", "Western" );
    2283         GEOIP_REGION_NAME.Add( "KY", cc_reg_KY );
    2284         Hashtable cc_reg_KZ = new Hashtable();
    2285         cc_reg_KZ.Add( "01", "Almaty" );
    2286         cc_reg_KZ.Add( "02", "Almaty City" );
    2287         cc_reg_KZ.Add( "03", "Aqmola" );
    2288         cc_reg_KZ.Add( "04", "Aqtobe" );
    2289         cc_reg_KZ.Add( "05", "Astana" );
    2290         cc_reg_KZ.Add( "06", "Atyrau" );
    2291         cc_reg_KZ.Add( "07", "West Kazakhstan" );
    2292         cc_reg_KZ.Add( "08", "Bayqonyr" );
    2293         cc_reg_KZ.Add( "09", "Mangghystau" );
    2294         cc_reg_KZ.Add( "10", "South Kazakhstan" );
    2295         cc_reg_KZ.Add( "11", "Pavlodar" );
    2296         cc_reg_KZ.Add( "12", "Qaraghandy" );
    2297         cc_reg_KZ.Add( "13", "Qostanay" );
    2298         cc_reg_KZ.Add( "14", "Qyzylorda" );
    2299         cc_reg_KZ.Add( "15", "East Kazakhstan" );
    2300         cc_reg_KZ.Add( "16", "North Kazakhstan" );
    2301         cc_reg_KZ.Add( "17", "Zhambyl" );
    2302         GEOIP_REGION_NAME.Add( "KZ", cc_reg_KZ );
    2303         Hashtable cc_reg_LA = new Hashtable();
    2304         cc_reg_LA.Add( "01", "Attapu" );
    2305         cc_reg_LA.Add( "02", "Champasak" );
    2306         cc_reg_LA.Add( "03", "Houaphan" );
    2307         cc_reg_LA.Add( "04", "Khammouan" );
    2308         cc_reg_LA.Add( "05", "Louang Namtha" );
    2309         cc_reg_LA.Add( "07", "Oudomxai" );
    2310         cc_reg_LA.Add( "08", "Phongsali" );
    2311         cc_reg_LA.Add( "09", "Saravan" );
    2312         cc_reg_LA.Add( "10", "Savannakhet" );
    2313         cc_reg_LA.Add( "11", "Vientiane" );
    2314         cc_reg_LA.Add( "13", "Xaignabouri" );
    2315         cc_reg_LA.Add( "14", "Xiangkhoang" );
    2316         cc_reg_LA.Add( "17", "Louangphrabang" );
    2317         GEOIP_REGION_NAME.Add( "LA", cc_reg_LA );
    2318         Hashtable cc_reg_LB = new Hashtable();
    2319         cc_reg_LB.Add( "01", "Beqaa" );
    2320         cc_reg_LB.Add( "02", "Al Janub" );
    2321         cc_reg_LB.Add( "03", "Liban-Nord" );
    2322         cc_reg_LB.Add( "04", "Beyrouth" );
    2323         cc_reg_LB.Add( "05", "Mont-Liban" );
    2324         cc_reg_LB.Add( "06", "Liban-Sud" );
    2325         cc_reg_LB.Add( "07", "Nabatiye" );
    2326         cc_reg_LB.Add( "08", "Beqaa" );
    2327         cc_reg_LB.Add( "09", "Liban-Nord" );
    2328         cc_reg_LB.Add( "10", "Aakk,r" );
    2329         cc_reg_LB.Add( "11", "Baalbek-Hermel" );
    2330         GEOIP_REGION_NAME.Add( "LB", cc_reg_LB );
    2331         Hashtable cc_reg_LC = new Hashtable();
    2332         cc_reg_LC.Add( "01", "Anse-la-Raye" );
    2333         cc_reg_LC.Add( "02", "Dauphin" );
    2334         cc_reg_LC.Add( "03", "Castries" );
    2335         cc_reg_LC.Add( "04", "Choiseul" );
    2336         cc_reg_LC.Add( "05", "Dennery" );
    2337         cc_reg_LC.Add( "06", "Gros-Islet" );
    2338         cc_reg_LC.Add( "07", "Laborie" );
    2339         cc_reg_LC.Add( "08", "Micoud" );
    2340         cc_reg_LC.Add( "09", "Soufriere" );
    2341         cc_reg_LC.Add( "10", "Vieux-Fort" );
    2342         cc_reg_LC.Add( "11", "Praslin" );
    2343         GEOIP_REGION_NAME.Add( "LC", cc_reg_LC );
    2344         Hashtable cc_reg_LI = new Hashtable();
    2345         cc_reg_LI.Add( "01", "Balzers" );
    2346         cc_reg_LI.Add( "02", "Eschen" );
    2347         cc_reg_LI.Add( "03", "Gamprin" );
    2348         cc_reg_LI.Add( "04", "Mauren" );
    2349         cc_reg_LI.Add( "05", "Planken" );
    2350         cc_reg_LI.Add( "06", "Ruggell" );
    2351         cc_reg_LI.Add( "07", "Schaan" );
    2352         cc_reg_LI.Add( "08", "Schellenberg" );
    2353         cc_reg_LI.Add( "09", "Triesen" );
    2354         cc_reg_LI.Add( "10", "Triesenberg" );
    2355         cc_reg_LI.Add( "11", "Vaduz" );
    2356         cc_reg_LI.Add( "21", "Gbarpolu" );
    2357         cc_reg_LI.Add( "22", "River Gee" );
    2358         GEOIP_REGION_NAME.Add( "LI", cc_reg_LI );
    2359         Hashtable cc_reg_LK = new Hashtable();
    2360         cc_reg_LK.Add( "01", "Amparai" );
    2361         cc_reg_LK.Add( "02", "Anuradhapura" );
    2362         cc_reg_LK.Add( "03", "Badulla" );
    2363         cc_reg_LK.Add( "04", "Batticaloa" );
    2364         cc_reg_LK.Add( "06", "Galle" );
    2365         cc_reg_LK.Add( "07", "Hambantota" );
    2366         cc_reg_LK.Add( "09", "Kalutara" );
    2367         cc_reg_LK.Add( "10", "Kandy" );
    2368         cc_reg_LK.Add( "11", "Kegalla" );
    2369         cc_reg_LK.Add( "12", "Kurunegala" );
    2370         cc_reg_LK.Add( "14", "Matale" );
    2371         cc_reg_LK.Add( "15", "Matara" );
    2372         cc_reg_LK.Add( "16", "Moneragala" );
    2373         cc_reg_LK.Add( "17", "Nuwara Eliya" );
    2374         cc_reg_LK.Add( "18", "Polonnaruwa" );
    2375         cc_reg_LK.Add( "19", "Puttalam" );
    2376         cc_reg_LK.Add( "20", "Ratnapura" );
    2377         cc_reg_LK.Add( "21", "Trincomalee" );
    2378         cc_reg_LK.Add( "23", "Colombo" );
    2379         cc_reg_LK.Add( "24", "Gampaha" );
    2380         cc_reg_LK.Add( "25", "Jaffna" );
    2381         cc_reg_LK.Add( "26", "Mannar" );
    2382         cc_reg_LK.Add( "27", "Mullaittivu" );
    2383         cc_reg_LK.Add( "28", "Vavuniya" );
    2384         cc_reg_LK.Add( "29", "Central" );
    2385         cc_reg_LK.Add( "30", "North Central" );
    2386         cc_reg_LK.Add( "31", "Northern" );
    2387         cc_reg_LK.Add( "32", "North Western" );
    2388         cc_reg_LK.Add( "33", "Sabaragamuwa" );
    2389         cc_reg_LK.Add( "34", "Southern" );
    2390         cc_reg_LK.Add( "35", "Uva" );
    2391         cc_reg_LK.Add( "36", "Western" );
    2392         GEOIP_REGION_NAME.Add( "LK", cc_reg_LK );
    2393         Hashtable cc_reg_LR = new Hashtable();
    2394         cc_reg_LR.Add( "01", "Bong" );
    2395         cc_reg_LR.Add( "04", "Grand Cape Mount" );
    2396         cc_reg_LR.Add( "05", "Lofa" );
    2397         cc_reg_LR.Add( "06", "Maryland" );
    2398         cc_reg_LR.Add( "07", "Monrovia" );
    2399         cc_reg_LR.Add( "09", "Nimba" );
    2400         cc_reg_LR.Add( "10", "Sino" );
    2401         cc_reg_LR.Add( "11", "Grand Bassa" );
    2402         cc_reg_LR.Add( "12", "Grand Cape Mount" );
    2403         cc_reg_LR.Add( "13", "Maryland" );
    2404         cc_reg_LR.Add( "14", "Montserrado" );
    2405         cc_reg_LR.Add( "17", "Margibi" );
    2406         cc_reg_LR.Add( "18", "River Cess" );
    2407         cc_reg_LR.Add( "19", "Grand Gedeh" );
    2408         cc_reg_LR.Add( "20", "Lofa" );
    2409         cc_reg_LR.Add( "21", "Gbarpolu" );
    2410         cc_reg_LR.Add( "22", "River Gee" );
    2411         GEOIP_REGION_NAME.Add( "LR", cc_reg_LR );
    2412         Hashtable cc_reg_LS = new Hashtable();
    2413         cc_reg_LS.Add( "10", "Berea" );
    2414         cc_reg_LS.Add( "11", "Butha-Buthe" );
    2415         cc_reg_LS.Add( "12", "Leribe" );
    2416         cc_reg_LS.Add( "13", "Mafeteng" );
    2417         cc_reg_LS.Add( "14", "Maseru" );
    2418         cc_reg_LS.Add( "15", "Mohales Hoek" );
    2419         cc_reg_LS.Add( "16", "Mokhotlong" );
    2420         cc_reg_LS.Add( "17", "Qachas Nek" );
    2421         cc_reg_LS.Add( "18", "Quthing" );
    2422         cc_reg_LS.Add( "19", "Thaba-Tseka" );
    2423         GEOIP_REGION_NAME.Add( "LS", cc_reg_LS );
    2424         Hashtable cc_reg_LT = new Hashtable();
    2425         cc_reg_LT.Add( "56", "Alytaus Apskritis" );
    2426         cc_reg_LT.Add( "57", "Kauno Apskritis" );
    2427         cc_reg_LT.Add( "58", "Klaipedos Apskritis" );
    2428         cc_reg_LT.Add( "59", "Marijampoles Apskritis" );
    2429         cc_reg_LT.Add( "60", "Panevezio Apskritis" );
    2430         cc_reg_LT.Add( "61", "Siauliu Apskritis" );
    2431         cc_reg_LT.Add( "62", "Taurages Apskritis" );
    2432         cc_reg_LT.Add( "63", "Telsiu Apskritis" );
    2433         cc_reg_LT.Add( "64", "Utenos Apskritis" );
    2434         cc_reg_LT.Add( "65", "Vilniaus Apskritis" );
    2435         GEOIP_REGION_NAME.Add( "LT", cc_reg_LT );
    2436         Hashtable cc_reg_LU = new Hashtable();
    2437         cc_reg_LU.Add( "01", "Diekirch" );
    2438         cc_reg_LU.Add( "02", "Grevenmacher" );
    2439         cc_reg_LU.Add( "03", "Luxembourg" );
    2440         GEOIP_REGION_NAME.Add( "LU", cc_reg_LU );
    2441         Hashtable cc_reg_LV = new Hashtable();
    2442         cc_reg_LV.Add( "01", "Aizkraukles" );
    2443         cc_reg_LV.Add( "02", "Aluksnes" );
    2444         cc_reg_LV.Add( "03", "Balvu" );
    2445         cc_reg_LV.Add( "04", "Bauskas" );
    2446         cc_reg_LV.Add( "05", "Cesu" );
    2447         cc_reg_LV.Add( "06", "Daugavpils" );
    2448         cc_reg_LV.Add( "07", "Daugavpils" );
    2449         cc_reg_LV.Add( "08", "Dobeles" );
    2450         cc_reg_LV.Add( "09", "Gulbenes" );
    2451         cc_reg_LV.Add( "10", "Jekabpils" );
    2452         cc_reg_LV.Add( "11", "Jelgava" );
    2453         cc_reg_LV.Add( "12", "Jelgavas" );
    2454         cc_reg_LV.Add( "13", "Jurmala" );
    2455         cc_reg_LV.Add( "14", "Kraslavas" );
    2456         cc_reg_LV.Add( "15", "Kuldigas" );
    2457         cc_reg_LV.Add( "16", "Liepaja" );
    2458         cc_reg_LV.Add( "17", "Liepajas" );
    2459         cc_reg_LV.Add( "18", "Limbazu" );
    2460         cc_reg_LV.Add( "19", "Ludzas" );
    2461         cc_reg_LV.Add( "20", "Madonas" );
    2462         cc_reg_LV.Add( "21", "Ogres" );
    2463         cc_reg_LV.Add( "22", "Preilu" );
    2464         cc_reg_LV.Add( "23", "Rezekne" );
    2465         cc_reg_LV.Add( "24", "Rezeknes" );
    2466         cc_reg_LV.Add( "25", "Riga" );
    2467         cc_reg_LV.Add( "26", "Rigas" );
    2468         cc_reg_LV.Add( "27", "Saldus" );
    2469         cc_reg_LV.Add( "28", "Talsu" );
    2470         cc_reg_LV.Add( "29", "Tukuma" );
    2471         cc_reg_LV.Add( "30", "Valkas" );
    2472         cc_reg_LV.Add( "31", "Valmieras" );
    2473         cc_reg_LV.Add( "32", "Ventspils" );
    2474         cc_reg_LV.Add( "33", "Ventspils" );
    2475         GEOIP_REGION_NAME.Add( "LV", cc_reg_LV );
    2476         Hashtable cc_reg_LY = new Hashtable();
    2477         cc_reg_LY.Add( "03", "Al Aziziyah" );
    2478         cc_reg_LY.Add( "05", "Al Jufrah" );
    2479         cc_reg_LY.Add( "08", "Al Kufrah" );
    2480         cc_reg_LY.Add( "13", "Ash Shati'" );
    2481         cc_reg_LY.Add( "30", "Murzuq" );
    2482         cc_reg_LY.Add( "34", "Sabha" );
    2483         cc_reg_LY.Add( "41", "Tarhunah" );
    2484         cc_reg_LY.Add( "42", "Tubruq" );
    2485         cc_reg_LY.Add( "45", "Zlitan" );
    2486         cc_reg_LY.Add( "47", "Ajdabiya" );
    2487         cc_reg_LY.Add( "48", "Al Fatih" );
    2488         cc_reg_LY.Add( "49", "Al Jabal al Akhdar" );
    2489         cc_reg_LY.Add( "50", "Al Khums" );
    2490         cc_reg_LY.Add( "51", "An Nuqat al Khams" );
    2491         cc_reg_LY.Add( "52", "Awbari" );
    2492         cc_reg_LY.Add( "53", "Az Zawiyah" );
    2493         cc_reg_LY.Add( "54", "Banghazi" );
    2494         cc_reg_LY.Add( "55", "Darnah" );
    2495         cc_reg_LY.Add( "56", "Ghadamis" );
    2496         cc_reg_LY.Add( "57", "Gharyan" );
    2497         cc_reg_LY.Add( "58", "Misratah" );
    2498         cc_reg_LY.Add( "59", "Sawfajjin" );
    2499         cc_reg_LY.Add( "60", "Surt" );
    2500         cc_reg_LY.Add( "61", "Tarabulus" );
    2501         cc_reg_LY.Add( "62", "Yafran" );
    2502         GEOIP_REGION_NAME.Add( "LY", cc_reg_LY );
    2503         Hashtable cc_reg_MA = new Hashtable();
    2504         cc_reg_MA.Add( "01", "Agadir" );
    2505         cc_reg_MA.Add( "02", "Al Hoceima" );
    2506         cc_reg_MA.Add( "03", "Azilal" );
    2507         cc_reg_MA.Add( "04", "Ben Slimane" );
    2508         cc_reg_MA.Add( "05", "Beni Mellal" );
    2509         cc_reg_MA.Add( "06", "Boulemane" );
    2510         cc_reg_MA.Add( "07", "Casablanca" );
    2511         cc_reg_MA.Add( "08", "Chaouen" );
    2512         cc_reg_MA.Add( "09", "El Jadida" );
    2513         cc_reg_MA.Add( "10", "El Kelaa des Srarhna" );
    2514         cc_reg_MA.Add( "11", "Er Rachidia" );
    2515         cc_reg_MA.Add( "12", "Essaouira" );
    2516         cc_reg_MA.Add( "13", "Fes" );
    2517         cc_reg_MA.Add( "14", "Figuig" );
    2518         cc_reg_MA.Add( "15", "Kenitra" );
    2519         cc_reg_MA.Add( "16", "Khemisset" );
    2520         cc_reg_MA.Add( "17", "Khenifra" );
    2521         cc_reg_MA.Add( "18", "Khouribga" );
    2522         cc_reg_MA.Add( "19", "Marrakech" );
    2523         cc_reg_MA.Add( "20", "Meknes" );
    2524         cc_reg_MA.Add( "21", "Nador" );
    2525         cc_reg_MA.Add( "22", "Ouarzazate" );
    2526         cc_reg_MA.Add( "23", "Oujda" );
    2527         cc_reg_MA.Add( "24", "Rabat-Sale" );
    2528         cc_reg_MA.Add( "25", "Safi" );
    2529         cc_reg_MA.Add( "26", "Settat" );
    2530         cc_reg_MA.Add( "27", "Tanger" );
    2531         cc_reg_MA.Add( "29", "Tata" );
    2532         cc_reg_MA.Add( "30", "Taza" );
    2533         cc_reg_MA.Add( "32", "Tiznit" );
    2534         cc_reg_MA.Add( "33", "Guelmim" );
    2535         cc_reg_MA.Add( "34", "Ifrane" );
    2536         cc_reg_MA.Add( "35", "Laayoune" );
    2537         cc_reg_MA.Add( "36", "Tan-Tan" );
    2538         cc_reg_MA.Add( "37", "Taounate" );
    2539         cc_reg_MA.Add( "38", "Sidi Kacem" );
    2540         cc_reg_MA.Add( "39", "Taroudannt" );
    2541         cc_reg_MA.Add( "40", "Tetouan" );
    2542         cc_reg_MA.Add( "41", "Larache" );
    2543         cc_reg_MA.Add( "45", "Grand Casablanca" );
    2544         cc_reg_MA.Add( "46", "Fes-Boulemane" );
    2545         cc_reg_MA.Add( "47", "Marrakech-Tensift-Al Haouz" );
    2546         cc_reg_MA.Add( "48", "Meknes-Tafilalet" );
    2547         cc_reg_MA.Add( "49", "Rabat-Sale-Zemmour-Zaer" );
    2548         cc_reg_MA.Add( "50", "Chaouia-Ouardigha" );
    2549         cc_reg_MA.Add( "51", "Doukkala-Abda" );
    2550         cc_reg_MA.Add( "52", "Gharb-Chrarda-Beni Hssen" );
    2551         cc_reg_MA.Add( "53", "Guelmim-Es Smara" );
    2552         cc_reg_MA.Add( "54", "Oriental" );
    2553         cc_reg_MA.Add( "55", "Souss-Massa-Dr,a" );
    2554         cc_reg_MA.Add( "56", "Tadla-Azilal" );
    2555         cc_reg_MA.Add( "57", "Tanger-Tetouan" );
    2556         cc_reg_MA.Add( "58", "Taza-Al Hoceima-Taounate" );
    2557         cc_reg_MA.Add( "59", "La,youne-Boujdour-Sakia El Hamra" );
    2558         GEOIP_REGION_NAME.Add( "MA", cc_reg_MA );
    2559         Hashtable cc_reg_MC = new Hashtable();
    2560         cc_reg_MC.Add( "01", "La Condamine" );
    2561         cc_reg_MC.Add( "02", "Monaco" );
    2562         cc_reg_MC.Add( "03", "Monte-Carlo" );
    2563         GEOIP_REGION_NAME.Add( "MC", cc_reg_MC );
    2564         Hashtable cc_reg_MD = new Hashtable();
    2565         cc_reg_MD.Add( "46", "Balti" );
    2566         cc_reg_MD.Add( "47", "Cahul" );
    2567         cc_reg_MD.Add( "48", "Chisinau" );
    2568         cc_reg_MD.Add( "49", "Stinga Nistrului" );
    2569         cc_reg_MD.Add( "50", "Edinet" );
    2570         cc_reg_MD.Add( "51", "Gagauzia" );
    2571         cc_reg_MD.Add( "52", "Lapusna" );
    2572         cc_reg_MD.Add( "53", "Orhei" );
    2573         cc_reg_MD.Add( "54", "Soroca" );
    2574         cc_reg_MD.Add( "55", "Tighina" );
    2575         cc_reg_MD.Add( "56", "Ungheni" );
    2576         cc_reg_MD.Add( "58", "Stinga Nistrului" );
    2577         cc_reg_MD.Add( "59", "Anenii Noi" );
    2578         cc_reg_MD.Add( "60", "Balti" );
    2579         cc_reg_MD.Add( "61", "Basarabeasca" );
    2580         cc_reg_MD.Add( "62", "Bender" );
    2581         cc_reg_MD.Add( "63", "Briceni" );
    2582         cc_reg_MD.Add( "64", "Cahul" );
    2583         cc_reg_MD.Add( "65", "Cantemir" );
    2584         cc_reg_MD.Add( "66", "Calarasi" );
    2585         cc_reg_MD.Add( "67", "Causeni" );
    2586         cc_reg_MD.Add( "68", "Cimislia" );
    2587         cc_reg_MD.Add( "69", "Criuleni" );
    2588         cc_reg_MD.Add( "70", "Donduseni" );
    2589         cc_reg_MD.Add( "71", "Drochia" );
    2590         cc_reg_MD.Add( "72", "Dubasari" );
    2591         cc_reg_MD.Add( "73", "Edinet" );
    2592         cc_reg_MD.Add( "74", "Falesti" );
    2593         cc_reg_MD.Add( "75", "Floresti" );
    2594         cc_reg_MD.Add( "76", "Glodeni" );
    2595         cc_reg_MD.Add( "77", "Hincesti" );
    2596         cc_reg_MD.Add( "78", "Ialoveni" );
    2597         cc_reg_MD.Add( "79", "Leova" );
    2598         cc_reg_MD.Add( "80", "Nisporeni" );
    2599         cc_reg_MD.Add( "81", "Ocnita" );
    2600         cc_reg_MD.Add( "83", "Rezina" );
    2601         cc_reg_MD.Add( "84", "Riscani" );
    2602         cc_reg_MD.Add( "85", "Singerei" );
    2603         cc_reg_MD.Add( "86", "Soldanesti" );
    2604         cc_reg_MD.Add( "87", "Soroca" );
    2605         cc_reg_MD.Add( "88", "Stefan-Voda" );
    2606         cc_reg_MD.Add( "89", "Straseni" );
    2607         cc_reg_MD.Add( "90", "Taraclia" );
    2608         cc_reg_MD.Add( "91", "Telenesti" );
    2609         cc_reg_MD.Add( "92", "Ungheni" );
    2610         GEOIP_REGION_NAME.Add( "MD", cc_reg_MD );
    2611         Hashtable cc_reg_MG = new Hashtable();
    2612         cc_reg_MG.Add( "01", "Antsiranana" );
    2613         cc_reg_MG.Add( "02", "Fianarantsoa" );
    2614         cc_reg_MG.Add( "03", "Mahajanga" );
    2615         cc_reg_MG.Add( "04", "Toamasina" );
    2616         cc_reg_MG.Add( "05", "Antananarivo" );
    2617         cc_reg_MG.Add( "06", "Toliara" );
    2618         GEOIP_REGION_NAME.Add( "MG", cc_reg_MG );
    2619         Hashtable cc_reg_MK = new Hashtable();
    2620         cc_reg_MK.Add( "01", "Aracinovo" );
    2621         cc_reg_MK.Add( "02", "Bac" );
    2622         cc_reg_MK.Add( "03", "Belcista" );
    2623         cc_reg_MK.Add( "04", "Berovo" );
    2624         cc_reg_MK.Add( "05", "Bistrica" );
    2625         cc_reg_MK.Add( "06", "Bitola" );
    2626         cc_reg_MK.Add( "07", "Blatec" );
    2627         cc_reg_MK.Add( "08", "Bogdanci" );
    2628         cc_reg_MK.Add( "09", "Bogomila" );
    2629         cc_reg_MK.Add( "10", "Bogovinje" );
    2630         cc_reg_MK.Add( "11", "Bosilovo" );
    2631         cc_reg_MK.Add( "12", "Brvenica" );
    2632         cc_reg_MK.Add( "13", "Cair" );
    2633         cc_reg_MK.Add( "14", "Capari" );
    2634         cc_reg_MK.Add( "15", "Caska" );
    2635         cc_reg_MK.Add( "16", "Cegrane" );
    2636         cc_reg_MK.Add( "17", "Centar" );
    2637         cc_reg_MK.Add( "18", "Centar Zupa" );
    2638         cc_reg_MK.Add( "19", "Cesinovo" );
    2639         cc_reg_MK.Add( "20", "Cucer-Sandevo" );
    2640         cc_reg_MK.Add( "21", "Debar" );
    2641         cc_reg_MK.Add( "22", "Delcevo" );
    2642         cc_reg_MK.Add( "23", "Delogozdi" );
    2643         cc_reg_MK.Add( "24", "Demir Hisar" );
    2644         cc_reg_MK.Add( "25", "Demir Kapija" );
    2645         cc_reg_MK.Add( "26", "Dobrusevo" );
    2646         cc_reg_MK.Add( "27", "Dolna Banjica" );
    2647         cc_reg_MK.Add( "28", "Dolneni" );
    2648         cc_reg_MK.Add( "29", "Dorce Petrov" );
    2649         cc_reg_MK.Add( "30", "Drugovo" );
    2650         cc_reg_MK.Add( "31", "Dzepciste" );
    2651         cc_reg_MK.Add( "32", "Gazi Baba" );
    2652         cc_reg_MK.Add( "33", "Gevgelija" );
    2653         cc_reg_MK.Add( "34", "Gostivar" );
    2654         cc_reg_MK.Add( "35", "Gradsko" );
    2655         cc_reg_MK.Add( "36", "Ilinden" );
    2656         cc_reg_MK.Add( "37", "Izvor" );
    2657         cc_reg_MK.Add( "38", "Jegunovce" );
    2658         cc_reg_MK.Add( "39", "Kamenjane" );
    2659         cc_reg_MK.Add( "40", "Karbinci" );
    2660         cc_reg_MK.Add( "41", "Karpos" );
    2661         cc_reg_MK.Add( "42", "Kavadarci" );
    2662         cc_reg_MK.Add( "43", "Kicevo" );
    2663         cc_reg_MK.Add( "44", "Kisela Voda" );
    2664         cc_reg_MK.Add( "45", "Klecevce" );
    2665         cc_reg_MK.Add( "46", "Kocani" );
    2666         cc_reg_MK.Add( "47", "Konce" );
    2667         cc_reg_MK.Add( "48", "Kondovo" );
    2668         cc_reg_MK.Add( "49", "Konopiste" );
    2669         cc_reg_MK.Add( "50", "Kosel" );
    2670         cc_reg_MK.Add( "51", "Kratovo" );
    2671         cc_reg_MK.Add( "52", "Kriva Palanka" );
    2672         cc_reg_MK.Add( "53", "Krivogastani" );
    2673         cc_reg_MK.Add( "54", "Krusevo" );
    2674         cc_reg_MK.Add( "55", "Kuklis" );
    2675         cc_reg_MK.Add( "56", "Kukurecani" );
    2676         cc_reg_MK.Add( "57", "Kumanovo" );
    2677         cc_reg_MK.Add( "58", "Labunista" );
    2678         cc_reg_MK.Add( "59", "Lipkovo" );
    2679         cc_reg_MK.Add( "60", "Lozovo" );
    2680         cc_reg_MK.Add( "61", "Lukovo" );
    2681         cc_reg_MK.Add( "62", "Makedonska Kamenica" );
    2682         cc_reg_MK.Add( "63", "Makedonski Brod" );
    2683         cc_reg_MK.Add( "64", "Mavrovi Anovi" );
    2684         cc_reg_MK.Add( "65", "Meseista" );
    2685         cc_reg_MK.Add( "66", "Miravci" );
    2686         cc_reg_MK.Add( "67", "Mogila" );
    2687         cc_reg_MK.Add( "68", "Murtino" );
    2688         cc_reg_MK.Add( "69", "Negotino" );
    2689         cc_reg_MK.Add( "70", "Negotino-Polosko" );
    2690         cc_reg_MK.Add( "71", "Novaci" );
    2691         cc_reg_MK.Add( "72", "Novo Selo" );
    2692         cc_reg_MK.Add( "73", "Oblesevo" );
    2693         cc_reg_MK.Add( "74", "Ohrid" );
    2694         cc_reg_MK.Add( "75", "Orasac" );
    2695         cc_reg_MK.Add( "76", "Orizari" );
    2696         cc_reg_MK.Add( "77", "Oslomej" );
    2697         cc_reg_MK.Add( "78", "Pehcevo" );
    2698         cc_reg_MK.Add( "79", "Petrovec" );
    2699         cc_reg_MK.Add( "80", "Plasnica" );
    2700         cc_reg_MK.Add( "81", "Podares" );
    2701         cc_reg_MK.Add( "82", "Prilep" );
    2702         cc_reg_MK.Add( "83", "Probistip" );
    2703         cc_reg_MK.Add( "84", "Radovis" );
    2704         cc_reg_MK.Add( "85", "Rankovce" );
    2705         cc_reg_MK.Add( "86", "Resen" );
    2706         cc_reg_MK.Add( "87", "Rosoman" );
    2707         cc_reg_MK.Add( "88", "Rostusa" );
    2708         cc_reg_MK.Add( "89", "Samokov" );
    2709         cc_reg_MK.Add( "90", "Saraj" );
    2710         cc_reg_MK.Add( "91", "Sipkovica" );
    2711         cc_reg_MK.Add( "92", "Sopiste" );
    2712         cc_reg_MK.Add( "93", "Sopotnica" );
    2713         cc_reg_MK.Add( "94", "Srbinovo" );
    2714         cc_reg_MK.Add( "95", "Staravina" );
    2715         cc_reg_MK.Add( "96", "Star Dojran" );
    2716         cc_reg_MK.Add( "97", "Staro Nagoricane" );
    2717         cc_reg_MK.Add( "98", "Stip" );
    2718         cc_reg_MK.Add( "99", "Struga" );
    2719         cc_reg_MK.Add( "A1", "Strumica" );
    2720         cc_reg_MK.Add( "A2", "Studenicani" );
    2721         cc_reg_MK.Add( "A3", "Suto Orizari" );
    2722         cc_reg_MK.Add( "A4", "Sveti Nikole" );
    2723         cc_reg_MK.Add( "A5", "Tearce" );
    2724         cc_reg_MK.Add( "A6", "Tetovo" );
    2725         cc_reg_MK.Add( "A7", "Topolcani" );
    2726         cc_reg_MK.Add( "A8", "Valandovo" );
    2727         cc_reg_MK.Add( "A9", "Vasilevo" );
    2728         cc_reg_MK.Add( "B1", "Veles" );
    2729         cc_reg_MK.Add( "B2", "Velesta" );
    2730         cc_reg_MK.Add( "B3", "Vevcani" );
    2731         cc_reg_MK.Add( "B4", "Vinica" );
    2732         cc_reg_MK.Add( "B5", "Vitoliste" );
    2733         cc_reg_MK.Add( "B6", "Vranestica" );
    2734         cc_reg_MK.Add( "B7", "Vrapciste" );
    2735         cc_reg_MK.Add( "B8", "Vratnica" );
    2736         cc_reg_MK.Add( "B9", "Vrutok" );
    2737         cc_reg_MK.Add( "C1", "Zajas" );
    2738         cc_reg_MK.Add( "C2", "Zelenikovo" );
    2739         cc_reg_MK.Add( "C3", "Zelino" );
    2740         cc_reg_MK.Add( "C4", "Zitose" );
    2741         cc_reg_MK.Add( "C5", "Zletovo" );
    2742         cc_reg_MK.Add( "C6", "Zrnovci" );
    2743         GEOIP_REGION_NAME.Add( "MK", cc_reg_MK );
    2744         Hashtable cc_reg_ML = new Hashtable();
    2745         cc_reg_ML.Add( "01", "Bamako" );
    2746         cc_reg_ML.Add( "03", "Kayes" );
    2747         cc_reg_ML.Add( "04", "Mopti" );
    2748         cc_reg_ML.Add( "05", "Segou" );
    2749         cc_reg_ML.Add( "06", "Sikasso" );
    2750         cc_reg_ML.Add( "07", "Koulikoro" );
    2751         cc_reg_ML.Add( "08", "Tombouctou" );
    2752         cc_reg_ML.Add( "09", "Gao" );
    2753         cc_reg_ML.Add( "10", "Kidal" );
    2754         GEOIP_REGION_NAME.Add( "ML", cc_reg_ML );
    2755         Hashtable cc_reg_MM = new Hashtable();
    2756         cc_reg_MM.Add( "01", "Rakhine State" );
    2757         cc_reg_MM.Add( "02", "Chin State" );
    2758         cc_reg_MM.Add( "03", "Irrawaddy" );
    2759         cc_reg_MM.Add( "04", "Kachin State" );
    2760         cc_reg_MM.Add( "05", "Karan State" );
    2761         cc_reg_MM.Add( "06", "Kayah State" );
    2762         cc_reg_MM.Add( "07", "Magwe" );
    2763         cc_reg_MM.Add( "08", "Mandalay" );
    2764         cc_reg_MM.Add( "09", "Pegu" );
    2765         cc_reg_MM.Add( "10", "Sagaing" );
    2766         cc_reg_MM.Add( "11", "Shan State" );
    2767         cc_reg_MM.Add( "12", "Tenasserim" );
    2768         cc_reg_MM.Add( "13", "Mon State" );
    2769         cc_reg_MM.Add( "14", "Rangoon" );
    2770         cc_reg_MM.Add( "17", "Yangon" );
    2771         GEOIP_REGION_NAME.Add( "MM", cc_reg_MM );
    2772         Hashtable cc_reg_MN = new Hashtable();
    2773         cc_reg_MN.Add( "01", "Arhangay" );
    2774         cc_reg_MN.Add( "02", "Bayanhongor" );
    2775         cc_reg_MN.Add( "03", "Bayan-Olgiy" );
    2776         cc_reg_MN.Add( "05", "Darhan" );
    2777         cc_reg_MN.Add( "06", "Dornod" );
    2778         cc_reg_MN.Add( "07", "Dornogovi" );
    2779         cc_reg_MN.Add( "08", "Dundgovi" );
    2780         cc_reg_MN.Add( "09", "Dzavhan" );
    2781         cc_reg_MN.Add( "10", "Govi-Altay" );
    2782         cc_reg_MN.Add( "11", "Hentiy" );
    2783         cc_reg_MN.Add( "12", "Hovd" );
    2784         cc_reg_MN.Add( "13", "Hovsgol" );
    2785         cc_reg_MN.Add( "14", "Omnogovi" );
    2786         cc_reg_MN.Add( "15", "Ovorhangay" );
    2787         cc_reg_MN.Add( "16", "Selenge" );
    2788         cc_reg_MN.Add( "17", "Suhbaatar" );
    2789         cc_reg_MN.Add( "18", "Tov" );
    2790         cc_reg_MN.Add( "19", "Uvs" );
    2791         cc_reg_MN.Add( "20", "Ulaanbaatar" );
    2792         cc_reg_MN.Add( "21", "Bulgan" );
    2793         cc_reg_MN.Add( "22", "Erdenet" );
    2794         cc_reg_MN.Add( "23", "Darhan-Uul" );
    2795         cc_reg_MN.Add( "24", "Govisumber" );
    2796         cc_reg_MN.Add( "25", "Orhon" );
    2797         GEOIP_REGION_NAME.Add( "MN", cc_reg_MN );
    2798         Hashtable cc_reg_MO = new Hashtable();
    2799         cc_reg_MO.Add( "01", "Ilhas" );
    2800         cc_reg_MO.Add( "02", "Macau" );
    2801         GEOIP_REGION_NAME.Add( "MO", cc_reg_MO );
    2802         Hashtable cc_reg_MR = new Hashtable();
    2803         cc_reg_MR.Add( "01", "Hodh Ech Chargui" );
    2804         cc_reg_MR.Add( "02", "Hodh El Gharbi" );
    2805         cc_reg_MR.Add( "03", "Assaba" );
    2806         cc_reg_MR.Add( "04", "Gorgol" );
    2807         cc_reg_MR.Add( "05", "Brakna" );
    2808         cc_reg_MR.Add( "06", "Trarza" );
    2809         cc_reg_MR.Add( "07", "Adrar" );
    2810         cc_reg_MR.Add( "08", "Dakhlet Nouadhibou" );
    2811         cc_reg_MR.Add( "09", "Tagant" );
    2812         cc_reg_MR.Add( "10", "Guidimaka" );
    2813         cc_reg_MR.Add( "11", "Tiris Zemmour" );
    2814         cc_reg_MR.Add( "12", "Inchiri" );
    2815         GEOIP_REGION_NAME.Add( "MR", cc_reg_MR );
    2816         Hashtable cc_reg_MS = new Hashtable();
    2817         cc_reg_MS.Add( "01", "Saint Anthony" );
    2818         cc_reg_MS.Add( "02", "Saint Georges" );
    2819         cc_reg_MS.Add( "03", "Saint Peter" );
    2820         GEOIP_REGION_NAME.Add( "MS", cc_reg_MS );
    2821         Hashtable cc_reg_MU = new Hashtable();
    2822         cc_reg_MU.Add( "12", "Black River" );
    2823         cc_reg_MU.Add( "13", "Flacq" );
    2824         cc_reg_MU.Add( "14", "Grand Port" );
    2825         cc_reg_MU.Add( "15", "Moka" );
    2826         cc_reg_MU.Add( "16", "Pamplemousses" );
    2827         cc_reg_MU.Add( "17", "Plaines Wilhems" );
    2828         cc_reg_MU.Add( "18", "Port Louis" );
    2829         cc_reg_MU.Add( "19", "Riviere du Rempart" );
    2830         cc_reg_MU.Add( "20", "Savanne" );
    2831         cc_reg_MU.Add( "21", "Agalega Islands" );
    2832         cc_reg_MU.Add( "22", "Cargados Carajos" );
    2833         cc_reg_MU.Add( "23", "Rodrigues" );
    2834         GEOIP_REGION_NAME.Add( "MU", cc_reg_MU );
    2835         Hashtable cc_reg_MV = new Hashtable();
    2836         cc_reg_MV.Add( "01", "Seenu" );
    2837         cc_reg_MV.Add( "02", "Aliff" );
    2838         cc_reg_MV.Add( "03", "Laviyani" );
    2839         cc_reg_MV.Add( "04", "Waavu" );
    2840         cc_reg_MV.Add( "05", "Laamu" );
    2841         cc_reg_MV.Add( "07", "Haa Aliff" );
    2842         cc_reg_MV.Add( "08", "Thaa" );
    2843         cc_reg_MV.Add( "12", "Meemu" );
    2844         cc_reg_MV.Add( "13", "Raa" );
    2845         cc_reg_MV.Add( "14", "Faafu" );
    2846         cc_reg_MV.Add( "17", "Daalu" );
    2847         cc_reg_MV.Add( "20", "Baa" );
    2848         cc_reg_MV.Add( "23", "Haa Daalu" );
    2849         cc_reg_MV.Add( "24", "Shaviyani" );
    2850         cc_reg_MV.Add( "25", "Noonu" );
    2851         cc_reg_MV.Add( "26", "Kaafu" );
    2852         cc_reg_MV.Add( "27", "Gaafu Aliff" );
    2853         cc_reg_MV.Add( "28", "Gaafu Daalu" );
    2854         cc_reg_MV.Add( "29", "Naviyani" );
    2855         cc_reg_MV.Add( "40", "Male" );
    2856         GEOIP_REGION_NAME.Add( "MV", cc_reg_MV );
    2857         Hashtable cc_reg_MW = new Hashtable();
    2858         cc_reg_MW.Add( "02", "Chikwawa" );
    2859         cc_reg_MW.Add( "03", "Chiradzulu" );
    2860         cc_reg_MW.Add( "04", "Chitipa" );
    2861         cc_reg_MW.Add( "05", "Thyolo" );
    2862         cc_reg_MW.Add( "06", "Dedza" );
    2863         cc_reg_MW.Add( "07", "Dowa" );
    2864         cc_reg_MW.Add( "08", "Karonga" );
    2865         cc_reg_MW.Add( "09", "Kasungu" );
    2866         cc_reg_MW.Add( "11", "Lilongwe" );
    2867         cc_reg_MW.Add( "12", "Mangochi" );
    2868         cc_reg_MW.Add( "13", "Mchinji" );
    2869         cc_reg_MW.Add( "15", "Mzimba" );
    2870         cc_reg_MW.Add( "16", "Ntcheu" );
    2871         cc_reg_MW.Add( "17", "Nkhata Bay" );
    2872         cc_reg_MW.Add( "18", "Nkhotakota" );
    2873         cc_reg_MW.Add( "19", "Nsanje" );
    2874         cc_reg_MW.Add( "20", "Ntchisi" );
    2875         cc_reg_MW.Add( "21", "Rumphi" );
    2876         cc_reg_MW.Add( "22", "Salima" );
    2877         cc_reg_MW.Add( "23", "Zomba" );
    2878         cc_reg_MW.Add( "24", "Blantyre" );
    2879         cc_reg_MW.Add( "25", "Mwanza" );
    2880         cc_reg_MW.Add( "26", "Balaka" );
    2881         cc_reg_MW.Add( "27", "Likoma" );
    2882         cc_reg_MW.Add( "28", "Machinga" );
    2883         cc_reg_MW.Add( "29", "Mulanje" );
    2884         cc_reg_MW.Add( "30", "Phalombe" );
    2885         GEOIP_REGION_NAME.Add( "MW", cc_reg_MW );
    2886         Hashtable cc_reg_MX = new Hashtable();
    2887         cc_reg_MX.Add( "01", "Aguascalientes" );
    2888         cc_reg_MX.Add( "02", "Baja California" );
    2889         cc_reg_MX.Add( "03", "Baja California Sur" );
    2890         cc_reg_MX.Add( "04", "Campeche" );
    2891         cc_reg_MX.Add( "05", "Chiapas" );
    2892         cc_reg_MX.Add( "06", "Chihuahua" );
    2893         cc_reg_MX.Add( "07", "Coahuila de Zaragoza" );
    2894         cc_reg_MX.Add( "08", "Colima" );
    2895         cc_reg_MX.Add( "09", "Distrito Federal" );
    2896         cc_reg_MX.Add( "10", "Durango" );
    2897         cc_reg_MX.Add( "11", "Guanajuato" );
    2898         cc_reg_MX.Add( "12", "Guerrero" );
    2899         cc_reg_MX.Add( "13", "Hidalgo" );
    2900         cc_reg_MX.Add( "14", "Jalisco" );
    2901         cc_reg_MX.Add( "15", "Mexico" );
    2902         cc_reg_MX.Add( "16", "Michoacan de Ocampo" );
    2903         cc_reg_MX.Add( "17", "Morelos" );
    2904         cc_reg_MX.Add( "18", "Nayarit" );
    2905         cc_reg_MX.Add( "19", "Nuevo Leon" );
    2906         cc_reg_MX.Add( "20", "Oaxaca" );
    2907         cc_reg_MX.Add( "21", "Puebla" );
    2908         cc_reg_MX.Add( "22", "Queretaro de Arteaga" );
    2909         cc_reg_MX.Add( "23", "Quintana Roo" );
    2910         cc_reg_MX.Add( "24", "San Luis Potosi" );
    2911         cc_reg_MX.Add( "25", "Sinaloa" );
    2912         cc_reg_MX.Add( "26", "Sonora" );
    2913         cc_reg_MX.Add( "27", "Tabasco" );
    2914         cc_reg_MX.Add( "28", "Tamaulipas" );
    2915         cc_reg_MX.Add( "29", "Tlaxcala" );
    2916         cc_reg_MX.Add( "30", "Veracruz-Llave" );
    2917         cc_reg_MX.Add( "31", "Yucatan" );
    2918         cc_reg_MX.Add( "32", "Zacatecas" );
    2919         GEOIP_REGION_NAME.Add( "MX", cc_reg_MX );
    2920         Hashtable cc_reg_MY = new Hashtable();
    2921         cc_reg_MY.Add( "01", "Johor" );
    2922         cc_reg_MY.Add( "02", "Kedah" );
    2923         cc_reg_MY.Add( "03", "Kelantan" );
    2924         cc_reg_MY.Add( "04", "Melaka" );
    2925         cc_reg_MY.Add( "05", "Negeri Sembilan" );
    2926         cc_reg_MY.Add( "06", "Pahang" );
    2927         cc_reg_MY.Add( "07", "Perak" );
    2928         cc_reg_MY.Add( "08", "Perlis" );
    2929         cc_reg_MY.Add( "09", "Pulau Pinang" );
    2930         cc_reg_MY.Add( "11", "Sarawak" );
    2931         cc_reg_MY.Add( "12", "Selangor" );
    2932         cc_reg_MY.Add( "13", "Terengganu" );
    2933         cc_reg_MY.Add( "14", "Kuala Lumpur" );
    2934         cc_reg_MY.Add( "15", "Labuan" );
    2935         cc_reg_MY.Add( "16", "Sabah" );
    2936         cc_reg_MY.Add( "17", "Putrajaya" );
    2937         GEOIP_REGION_NAME.Add( "MY", cc_reg_MY );
    2938         Hashtable cc_reg_MZ = new Hashtable();
    2939         cc_reg_MZ.Add( "01", "Cabo Delgado" );
    2940         cc_reg_MZ.Add( "02", "Gaza" );
    2941         cc_reg_MZ.Add( "03", "Inhambane" );
    2942         cc_reg_MZ.Add( "04", "Maputo" );
    2943         cc_reg_MZ.Add( "05", "Sofala" );
    2944         cc_reg_MZ.Add( "06", "Nampula" );
    2945         cc_reg_MZ.Add( "07", "Niassa" );
    2946         cc_reg_MZ.Add( "08", "Tete" );
    2947         cc_reg_MZ.Add( "09", "Zambezia" );
    2948         cc_reg_MZ.Add( "10", "Manica" );
    2949         cc_reg_MZ.Add( "11", "Maputo" );
    2950         GEOIP_REGION_NAME.Add( "MZ", cc_reg_MZ );
    2951         Hashtable cc_reg_NA = new Hashtable();
    2952         cc_reg_NA.Add( "01", "Bethanien" );
    2953         cc_reg_NA.Add( "02", "Caprivi Oos" );
    2954         cc_reg_NA.Add( "03", "Boesmanland" );
    2955         cc_reg_NA.Add( "04", "Gobabis" );
    2956         cc_reg_NA.Add( "05", "Grootfontein" );
    2957         cc_reg_NA.Add( "06", "Kaokoland" );
    2958         cc_reg_NA.Add( "07", "Karibib" );
    2959         cc_reg_NA.Add( "08", "Keetmanshoop" );
    2960         cc_reg_NA.Add( "09", "Luderitz" );
    2961         cc_reg_NA.Add( "10", "Maltahohe" );
    2962         cc_reg_NA.Add( "11", "Okahandja" );
    2963         cc_reg_NA.Add( "12", "Omaruru" );
    2964         cc_reg_NA.Add( "13", "Otjiwarongo" );
    2965         cc_reg_NA.Add( "14", "Outjo" );
    2966         cc_reg_NA.Add( "15", "Owambo" );
    2967         cc_reg_NA.Add( "16", "Rehoboth" );
    2968         cc_reg_NA.Add( "17", "Swakopmund" );
    2969         cc_reg_NA.Add( "18", "Tsumeb" );
    2970         cc_reg_NA.Add( "20", "Karasburg" );
    2971         cc_reg_NA.Add( "21", "Windhoek" );
    2972         cc_reg_NA.Add( "22", "Damaraland" );
    2973         cc_reg_NA.Add( "23", "Hereroland Oos" );
    2974         cc_reg_NA.Add( "24", "Hereroland Wes" );
    2975         cc_reg_NA.Add( "25", "Kavango" );
    2976         cc_reg_NA.Add( "26", "Mariental" );
    2977         cc_reg_NA.Add( "27", "Namaland" );
    2978         cc_reg_NA.Add( "28", "Caprivi" );
    2979         cc_reg_NA.Add( "29", "Erongo" );
    2980         cc_reg_NA.Add( "30", "Hardap" );
    2981         cc_reg_NA.Add( "31", "Karas" );
    2982         cc_reg_NA.Add( "32", "Kunene" );
    2983         cc_reg_NA.Add( "33", "Ohangwena" );
    2984         cc_reg_NA.Add( "34", "Okavango" );
    2985         cc_reg_NA.Add( "35", "Omaheke" );
    2986         cc_reg_NA.Add( "36", "Omusati" );
    2987         cc_reg_NA.Add( "37", "Oshana" );
    2988         cc_reg_NA.Add( "38", "Oshikoto" );
    2989         cc_reg_NA.Add( "39", "Otjozondjupa" );
    2990         GEOIP_REGION_NAME.Add( "NA", cc_reg_NA );
    2991         Hashtable cc_reg_NE = new Hashtable();
    2992         cc_reg_NE.Add( "01", "Agadez" );
    2993         cc_reg_NE.Add( "02", "Diffa" );
    2994         cc_reg_NE.Add( "03", "Dosso" );
    2995         cc_reg_NE.Add( "04", "Maradi" );
    2996         cc_reg_NE.Add( "05", "Niamey" );
    2997         cc_reg_NE.Add( "06", "Tahoua" );
    2998         cc_reg_NE.Add( "07", "Zinder" );
    2999         cc_reg_NE.Add( "08", "Niamey" );
    3000         GEOIP_REGION_NAME.Add( "NE", cc_reg_NE );
    3001         Hashtable cc_reg_NG = new Hashtable();
    3002         cc_reg_NG.Add( "05", "Lagos" );
    3003         cc_reg_NG.Add( "10", "Rivers" );
    3004         cc_reg_NG.Add( "11", "Federal Capital Territory" );
    3005         cc_reg_NG.Add( "12", "Gongola" );
    3006         cc_reg_NG.Add( "16", "Ogun" );
    3007         cc_reg_NG.Add( "17", "Ondo" );
    3008         cc_reg_NG.Add( "18", "Oyo" );
    3009         cc_reg_NG.Add( "21", "Akwa Ibom" );
    3010         cc_reg_NG.Add( "22", "Cross River" );
    3011         cc_reg_NG.Add( "23", "Kaduna" );
    3012         cc_reg_NG.Add( "24", "Katsina" );
    3013         cc_reg_NG.Add( "25", "Anambra" );
    3014         cc_reg_NG.Add( "26", "Benue" );
    3015         cc_reg_NG.Add( "27", "Borno" );
    3016         cc_reg_NG.Add( "28", "Imo" );
    3017         cc_reg_NG.Add( "29", "Kano" );
    3018         cc_reg_NG.Add( "30", "Kwara" );
    3019         cc_reg_NG.Add( "31", "Niger" );
    3020         cc_reg_NG.Add( "32", "Oyo" );
    3021         cc_reg_NG.Add( "35", "Adamawa" );
    3022         cc_reg_NG.Add( "36", "Delta" );
    3023         cc_reg_NG.Add( "37", "Edo" );
    3024         cc_reg_NG.Add( "39", "Jigawa" );
    3025         cc_reg_NG.Add( "40", "Kebbi" );
    3026         cc_reg_NG.Add( "41", "Kogi" );
    3027         cc_reg_NG.Add( "42", "Osun" );
    3028         cc_reg_NG.Add( "43", "Taraba" );
    3029         cc_reg_NG.Add( "44", "Yobe" );
    3030         cc_reg_NG.Add( "45", "Abia" );
    3031         cc_reg_NG.Add( "46", "Bauchi" );
    3032         cc_reg_NG.Add( "47", "Enugu" );
    3033         cc_reg_NG.Add( "48", "Ondo" );
    3034         cc_reg_NG.Add( "49", "Plateau" );
    3035         cc_reg_NG.Add( "50", "Rivers" );
    3036         cc_reg_NG.Add( "51", "Sokoto" );
    3037         cc_reg_NG.Add( "52", "Bayelsa" );
    3038         cc_reg_NG.Add( "53", "Ebonyi" );
    3039         cc_reg_NG.Add( "54", "Ekiti" );
    3040         cc_reg_NG.Add( "55", "Gombe" );
    3041         cc_reg_NG.Add( "56", "Nassarawa" );
    3042         cc_reg_NG.Add( "57", "Zamfara" );
    3043         GEOIP_REGION_NAME.Add( "NG", cc_reg_NG );
    3044         Hashtable cc_reg_NI = new Hashtable();
    3045         cc_reg_NI.Add( "01", "Boaco" );
    3046         cc_reg_NI.Add( "02", "Carazo" );
    3047         cc_reg_NI.Add( "03", "Chinandega" );
    3048         cc_reg_NI.Add( "04", "Chontales" );
    3049         cc_reg_NI.Add( "05", "Esteli" );
    3050         cc_reg_NI.Add( "06", "Granada" );
    3051         cc_reg_NI.Add( "07", "Jinotega" );
    3052         cc_reg_NI.Add( "08", "Leon" );
    3053         cc_reg_NI.Add( "09", "Madriz" );
    3054         cc_reg_NI.Add( "10", "Managua" );
    3055         cc_reg_NI.Add( "11", "Masaya" );
    3056         cc_reg_NI.Add( "12", "Matagalpa" );
    3057         cc_reg_NI.Add( "13", "Nueva Segovia" );
    3058         cc_reg_NI.Add( "14", "Rio San Juan" );
    3059         cc_reg_NI.Add( "15", "Rivas" );
    3060         cc_reg_NI.Add( "16", "Zelaya" );
    3061         cc_reg_NI.Add( "17", "Autonoma Atlantico Norte" );
    3062         cc_reg_NI.Add( "18", "Region Autonoma Atlantico Sur" );
    3063         GEOIP_REGION_NAME.Add( "NI", cc_reg_NI );
    3064         Hashtable cc_reg_NL = new Hashtable();
    3065         cc_reg_NL.Add( "01", "Drenthe" );
    3066         cc_reg_NL.Add( "02", "Friesland" );
    3067         cc_reg_NL.Add( "03", "Gelderland" );
    3068         cc_reg_NL.Add( "04", "Groningen" );
    3069         cc_reg_NL.Add( "05", "Limburg" );
    3070         cc_reg_NL.Add( "06", "Noord-Brabant" );
    3071         cc_reg_NL.Add( "07", "Noord-Holland" );
    3072         cc_reg_NL.Add( "08", "Overijssel" );
    3073         cc_reg_NL.Add( "09", "Utrecht" );
    3074         cc_reg_NL.Add( "10", "Zeeland" );
    3075         cc_reg_NL.Add( "11", "Zuid-Holland" );
    3076         cc_reg_NL.Add( "12", "Dronten" );
    3077         cc_reg_NL.Add( "13", "Zuidelijke IJsselmeerpolders" );
    3078         cc_reg_NL.Add( "14", "Lelystad" );
    3079         cc_reg_NL.Add( "15", "Overijssel" );
    3080         cc_reg_NL.Add( "16", "Flevoland" );
    3081         GEOIP_REGION_NAME.Add( "NL", cc_reg_NL );
    3082         Hashtable cc_reg_NO = new Hashtable();
    3083         cc_reg_NO.Add( "01", "Akershus" );
    3084         cc_reg_NO.Add( "02", "Aust-Agder" );
    3085         cc_reg_NO.Add( "04", "Buskerud" );
    3086         cc_reg_NO.Add( "05", "Finnmark" );
    3087         cc_reg_NO.Add( "06", "Hedmark" );
    3088         cc_reg_NO.Add( "07", "Hordaland" );
    3089         cc_reg_NO.Add( "08", "More og Romsdal" );
    3090         cc_reg_NO.Add( "09", "Nordland" );
    3091         cc_reg_NO.Add( "10", "Nord-Trondelag" );
    3092         cc_reg_NO.Add( "11", "Oppland" );
    3093         cc_reg_NO.Add( "12", "Oslo" );
    3094         cc_reg_NO.Add( "13", "Ostfold" );
    3095         cc_reg_NO.Add( "14", "Rogaland" );
    3096         cc_reg_NO.Add( "15", "Sogn og Fjordane" );
    3097         cc_reg_NO.Add( "16", "Sor-Trondelag" );
    3098         cc_reg_NO.Add( "17", "Telemark" );
    3099         cc_reg_NO.Add( "18", "Troms" );
    3100         cc_reg_NO.Add( "19", "Vest-Agder" );
    3101         cc_reg_NO.Add( "20", "Vestfold" );
    3102         GEOIP_REGION_NAME.Add( "NO", cc_reg_NO );
    3103         Hashtable cc_reg_NP = new Hashtable();
    3104         cc_reg_NP.Add( "01", "Bagmati" );
    3105         cc_reg_NP.Add( "02", "Bheri" );
    3106         cc_reg_NP.Add( "03", "Dhawalagiri" );
    3107         cc_reg_NP.Add( "04", "Gandaki" );
    3108         cc_reg_NP.Add( "05", "Janakpur" );
    3109         cc_reg_NP.Add( "06", "Karnali" );
    3110         cc_reg_NP.Add( "07", "Kosi" );
    3111         cc_reg_NP.Add( "08", "Lumbini" );
    3112         cc_reg_NP.Add( "09", "Mahakali" );
    3113         cc_reg_NP.Add( "10", "Mechi" );
    3114         cc_reg_NP.Add( "11", "Narayani" );
    3115         cc_reg_NP.Add( "12", "Rapti" );
    3116         cc_reg_NP.Add( "13", "Sagarmatha" );
    3117         cc_reg_NP.Add( "14", "Seti" );
    3118         GEOIP_REGION_NAME.Add( "NP", cc_reg_NP );
    3119         Hashtable cc_reg_NR = new Hashtable();
    3120         cc_reg_NR.Add( "01", "Aiwo" );
    3121         cc_reg_NR.Add( "02", "Anabar" );
    3122         cc_reg_NR.Add( "03", "Anetan" );
    3123         cc_reg_NR.Add( "04", "Anibare" );
    3124         cc_reg_NR.Add( "05", "Baiti" );
    3125         cc_reg_NR.Add( "06", "Boe" );
    3126         cc_reg_NR.Add( "07", "Buada" );
    3127         cc_reg_NR.Add( "08", "Denigomodu" );
    3128         cc_reg_NR.Add( "09", "Ewa" );
    3129         cc_reg_NR.Add( "10", "Ijuw" );
    3130         cc_reg_NR.Add( "11", "Meneng" );
    3131         cc_reg_NR.Add( "12", "Nibok" );
    3132         cc_reg_NR.Add( "13", "Uaboe" );
    3133         cc_reg_NR.Add( "14", "Yaren" );
    3134         GEOIP_REGION_NAME.Add( "NR", cc_reg_NR );
    3135         Hashtable cc_reg_NZ = new Hashtable();
    3136         cc_reg_NZ.Add( "10", "Chatham Islands" );
    3137         cc_reg_NZ.Add( "85", "Waikato" );
    3138         cc_reg_NZ.Add( "E7", "Auckland" );
    3139         cc_reg_NZ.Add( "E8", "Bay of Plenty" );
    3140         cc_reg_NZ.Add( "E9", "Canterbury" );
    3141         cc_reg_NZ.Add( "F1", "Gisborne" );
    3142         cc_reg_NZ.Add( "F2", "Hawke's Bay" );
    3143         cc_reg_NZ.Add( "F3", "Manawatu-Wanganui" );
    3144         cc_reg_NZ.Add( "F4", "Marlborough" );
    3145         cc_reg_NZ.Add( "F5", "Nelson" );
    3146         cc_reg_NZ.Add( "F6", "Northland" );
    3147         cc_reg_NZ.Add( "F7", "Otago" );
    3148         cc_reg_NZ.Add( "F8", "Southland" );
    3149         cc_reg_NZ.Add( "F9", "Taranaki" );
    3150         cc_reg_NZ.Add( "G1", "Waikato" );
    3151         cc_reg_NZ.Add( "G2", "Wellington" );
    3152         cc_reg_NZ.Add( "G3", "West Coast" );
    3153         GEOIP_REGION_NAME.Add( "NZ", cc_reg_NZ );
    3154         Hashtable cc_reg_OM = new Hashtable();
    3155         cc_reg_OM.Add( "01", "Ad Dakhiliyah" );
    3156         cc_reg_OM.Add( "02", "Al Batinah" );
    3157         cc_reg_OM.Add( "03", "Al Wusta" );
    3158         cc_reg_OM.Add( "04", "Ash Sharqiyah" );
    3159         cc_reg_OM.Add( "05", "Az Zahirah" );
    3160         cc_reg_OM.Add( "06", "Masqat" );
    3161         cc_reg_OM.Add( "07", "Musandam" );
    3162         cc_reg_OM.Add( "08", "Zufar" );
    3163         GEOIP_REGION_NAME.Add( "OM", cc_reg_OM );
    3164         Hashtable cc_reg_PA = new Hashtable();
    3165         cc_reg_PA.Add( "01", "Bocas del Toro" );
    3166         cc_reg_PA.Add( "02", "Chiriqui" );
    3167         cc_reg_PA.Add( "03", "Cocle" );
    3168         cc_reg_PA.Add( "04", "Colon" );
    3169         cc_reg_PA.Add( "05", "Darien" );
    3170         cc_reg_PA.Add( "06", "Herrera" );
    3171         cc_reg_PA.Add( "07", "Los Santos" );
    3172         cc_reg_PA.Add( "08", "Panama" );
    3173         cc_reg_PA.Add( "09", "San Blas" );
    3174         cc_reg_PA.Add( "10", "Veraguas" );
    3175         GEOIP_REGION_NAME.Add( "PA", cc_reg_PA );
    3176         Hashtable cc_reg_PE = new Hashtable();
    3177         cc_reg_PE.Add( "01", "Amazonas" );
    3178         cc_reg_PE.Add( "02", "Ancash" );
    3179         cc_reg_PE.Add( "03", "Apurimac" );
    3180         cc_reg_PE.Add( "04", "Arequipa" );
    3181         cc_reg_PE.Add( "05", "Ayacucho" );
    3182         cc_reg_PE.Add( "06", "Cajamarca" );
    3183         cc_reg_PE.Add( "07", "Callao" );
    3184         cc_reg_PE.Add( "08", "Cusco" );
    3185         cc_reg_PE.Add( "09", "Huancavelica" );
    3186         cc_reg_PE.Add( "10", "Huanuco" );
    3187         cc_reg_PE.Add( "11", "Ica" );
    3188         cc_reg_PE.Add( "12", "Junin" );
    3189         cc_reg_PE.Add( "13", "La Libertad" );
    3190         cc_reg_PE.Add( "14", "Lambayeque" );
    3191         cc_reg_PE.Add( "15", "Lima" );
    3192         cc_reg_PE.Add( "16", "Loreto" );
    3193         cc_reg_PE.Add( "17", "Madre de Dios" );
    3194         cc_reg_PE.Add( "18", "Moquegua" );
    3195         cc_reg_PE.Add( "19", "Pasco" );
    3196         cc_reg_PE.Add( "20", "Piura" );
    3197         cc_reg_PE.Add( "21", "Puno" );
    3198         cc_reg_PE.Add( "22", "San Martin" );
    3199         cc_reg_PE.Add( "23", "Tacna" );
    3200         cc_reg_PE.Add( "24", "Tumbes" );
    3201         cc_reg_PE.Add( "25", "Ucayali" );
    3202         GEOIP_REGION_NAME.Add( "PE", cc_reg_PE );
    3203         Hashtable cc_reg_PG = new Hashtable();
    3204         cc_reg_PG.Add( "01", "Central" );
    3205         cc_reg_PG.Add( "02", "Gulf" );
    3206         cc_reg_PG.Add( "03", "Milne Bay" );
    3207         cc_reg_PG.Add( "04", "Northern" );
    3208         cc_reg_PG.Add( "05", "Southern Highlands" );
    3209         cc_reg_PG.Add( "06", "Western" );
    3210         cc_reg_PG.Add( "07", "North Solomons" );
    3211         cc_reg_PG.Add( "08", "Chimbu" );
    3212         cc_reg_PG.Add( "09", "Eastern Highlands" );
    3213         cc_reg_PG.Add( "10", "East New Britain" );
    3214         cc_reg_PG.Add( "11", "East Sepik" );
    3215         cc_reg_PG.Add( "12", "Madang" );
    3216         cc_reg_PG.Add( "13", "Manus" );
    3217         cc_reg_PG.Add( "14", "Morobe" );
    3218         cc_reg_PG.Add( "15", "New Ireland" );
    3219         cc_reg_PG.Add( "16", "Western Highlands" );
    3220         cc_reg_PG.Add( "17", "West New Britain" );
    3221         cc_reg_PG.Add( "18", "Sandaun" );
    3222         cc_reg_PG.Add( "19", "Enga" );
    3223         cc_reg_PG.Add( "20", "National Capital" );
    3224         GEOIP_REGION_NAME.Add( "PG", cc_reg_PG );
    3225         Hashtable cc_reg_PH = new Hashtable();
    3226         cc_reg_PH.Add( "01", "Abra" );
    3227         cc_reg_PH.Add( "02", "Agusan del Norte" );
    3228         cc_reg_PH.Add( "03", "Agusan del Sur" );
    3229         cc_reg_PH.Add( "04", "Aklan" );
    3230         cc_reg_PH.Add( "05", "Albay" );
    3231         cc_reg_PH.Add( "06", "Antique" );
    3232         cc_reg_PH.Add( "07", "Bataan" );
    3233         cc_reg_PH.Add( "08", "Batanes" );
    3234         cc_reg_PH.Add( "09", "Batangas" );
    3235         cc_reg_PH.Add( "10", "Benguet" );
    3236         cc_reg_PH.Add( "11", "Bohol" );
    3237         cc_reg_PH.Add( "12", "Bukidnon" );
    3238         cc_reg_PH.Add( "13", "Bulacan" );
    3239         cc_reg_PH.Add( "14", "Cagayan" );
    3240         cc_reg_PH.Add( "15", "Camarines Norte" );
    3241         cc_reg_PH.Add( "16", "Camarines Sur" );
    3242         cc_reg_PH.Add( "17", "Camiguin" );
    3243         cc_reg_PH.Add( "18", "Capiz" );
    3244         cc_reg_PH.Add( "19", "Catanduanes" );
    3245         cc_reg_PH.Add( "20", "Cavite" );
    3246         cc_reg_PH.Add( "21", "Cebu" );
    3247         cc_reg_PH.Add( "22", "Basilan" );
    3248         cc_reg_PH.Add( "23", "Eastern Samar" );
    3249         cc_reg_PH.Add( "24", "Davao" );
    3250         cc_reg_PH.Add( "25", "Davao del Sur" );
    3251         cc_reg_PH.Add( "26", "Davao Oriental" );
    3252         cc_reg_PH.Add( "27", "Ifugao" );
    3253         cc_reg_PH.Add( "28", "Ilocos Norte" );
    3254         cc_reg_PH.Add( "29", "Ilocos Sur" );
    3255         cc_reg_PH.Add( "30", "Iloilo" );
    3256         cc_reg_PH.Add( "31", "Isabela" );
    3257         cc_reg_PH.Add( "32", "Kalinga-Apayao" );
    3258         cc_reg_PH.Add( "33", "Laguna" );
    3259         cc_reg_PH.Add( "34", "Lanao del Norte" );
    3260         cc_reg_PH.Add( "35", "Lanao del Sur" );
    3261         cc_reg_PH.Add( "36", "La Union" );
    3262         cc_reg_PH.Add( "37", "Leyte" );
    3263         cc_reg_PH.Add( "38", "Marinduque" );
    3264         cc_reg_PH.Add( "39", "Masbate" );
    3265         cc_reg_PH.Add( "40", "Mindoro Occidental" );
    3266         cc_reg_PH.Add( "41", "Mindoro Oriental" );
    3267         cc_reg_PH.Add( "42", "Misamis Occidental" );
    3268         cc_reg_PH.Add( "43", "Misamis Oriental" );
    3269         cc_reg_PH.Add( "44", "Mountain" );
    3270         cc_reg_PH.Add( "45", "Negros Occidental" );
    3271         cc_reg_PH.Add( "46", "Negros Oriental" );
    3272         cc_reg_PH.Add( "47", "Nueva Ecija" );
    3273         cc_reg_PH.Add( "48", "Nueva Vizcaya" );
    3274         cc_reg_PH.Add( "49", "Palawan" );
    3275         cc_reg_PH.Add( "50", "Pampanga" );
    3276         cc_reg_PH.Add( "51", "Pangasinan" );
    3277         cc_reg_PH.Add( "53", "Rizal" );
    3278         cc_reg_PH.Add( "54", "Romblon" );
    3279         cc_reg_PH.Add( "55", "Samar" );
    3280         cc_reg_PH.Add( "56", "Maguindanao" );
    3281         cc_reg_PH.Add( "57", "North Cotabato" );
    3282         cc_reg_PH.Add( "58", "Sorsogon" );
    3283         cc_reg_PH.Add( "59", "Southern Leyte" );
    3284         cc_reg_PH.Add( "60", "Sulu" );
    3285         cc_reg_PH.Add( "61", "Surigao del Norte" );
    3286         cc_reg_PH.Add( "62", "Surigao del Sur" );
    3287         cc_reg_PH.Add( "63", "Tarlac" );
    3288         cc_reg_PH.Add( "64", "Zambales" );
    3289         cc_reg_PH.Add( "65", "Zamboanga del Norte" );
    3290         cc_reg_PH.Add( "66", "Zamboanga del Sur" );
    3291         cc_reg_PH.Add( "67", "Northern Samar" );
    3292         cc_reg_PH.Add( "68", "Quirino" );
    3293         cc_reg_PH.Add( "69", "Siquijor" );
    3294         cc_reg_PH.Add( "70", "South Cotabato" );
    3295         cc_reg_PH.Add( "71", "Sultan Kudarat" );
    3296         cc_reg_PH.Add( "72", "Tawitawi" );
    3297         cc_reg_PH.Add( "A1", "Angeles" );
    3298         cc_reg_PH.Add( "A2", "Bacolod" );
    3299         cc_reg_PH.Add( "A3", "Bago" );
    3300         cc_reg_PH.Add( "A4", "Baguio" );
    3301         cc_reg_PH.Add( "A5", "Bais" );
    3302         cc_reg_PH.Add( "A6", "Basilan City" );
    3303         cc_reg_PH.Add( "A7", "Batangas City" );
    3304         cc_reg_PH.Add( "A8", "Butuan" );
    3305         cc_reg_PH.Add( "A9", "Cabanatuan" );
    3306         cc_reg_PH.Add( "B1", "Cadiz" );
    3307         cc_reg_PH.Add( "B2", "Cagayan de Oro" );
    3308         cc_reg_PH.Add( "B3", "Calbayog" );
    3309         cc_reg_PH.Add( "B4", "Caloocan" );
    3310         cc_reg_PH.Add( "B5", "Canlaon" );
    3311         cc_reg_PH.Add( "B6", "Cavite City" );
    3312         cc_reg_PH.Add( "B7", "Cebu City" );
    3313         cc_reg_PH.Add( "B8", "Cotabato" );
    3314         cc_reg_PH.Add( "B9", "Dagupan" );
    3315         cc_reg_PH.Add( "C1", "Danao" );
    3316         cc_reg_PH.Add( "C2", "Dapitan" );
    3317         cc_reg_PH.Add( "C3", "Davao City" );
    3318         cc_reg_PH.Add( "C4", "Dipolog" );
    3319         cc_reg_PH.Add( "C5", "Dumaguete" );
    3320         cc_reg_PH.Add( "C6", "General Santos" );
    3321         cc_reg_PH.Add( "C7", "Gingoog" );
    3322         cc_reg_PH.Add( "C8", "Iligan" );
    3323         cc_reg_PH.Add( "C9", "Iloilo City" );
    3324         cc_reg_PH.Add( "D1", "Iriga" );
    3325         cc_reg_PH.Add( "D2", "La Carlota" );
    3326         cc_reg_PH.Add( "D3", "Laoag" );
    3327         cc_reg_PH.Add( "D4", "Lapu-Lapu" );
    3328         cc_reg_PH.Add( "D5", "Legaspi" );
    3329         cc_reg_PH.Add( "D6", "Lipa" );
    3330         cc_reg_PH.Add( "D7", "Lucena" );
    3331         cc_reg_PH.Add( "D8", "Mandaue" );
    3332         cc_reg_PH.Add( "D9", "Manila" );
    3333         cc_reg_PH.Add( "E1", "Marawi" );
    3334         cc_reg_PH.Add( "E2", "Naga" );
    3335         cc_reg_PH.Add( "E3", "Olongapo" );
    3336         cc_reg_PH.Add( "E4", "Ormoc" );
    3337         cc_reg_PH.Add( "E5", "Oroquieta" );
    3338         cc_reg_PH.Add( "E6", "Ozamis" );
    3339         cc_reg_PH.Add( "E7", "Pagadian" );
    3340         cc_reg_PH.Add( "E8", "Palayan" );
    3341         cc_reg_PH.Add( "E9", "Pasay" );
    3342         cc_reg_PH.Add( "F1", "Puerto Princesa" );
    3343         cc_reg_PH.Add( "F2", "Quezon City" );
    3344         cc_reg_PH.Add( "F3", "Roxas" );
    3345         cc_reg_PH.Add( "F4", "San Carlos" );
    3346         cc_reg_PH.Add( "F5", "San Carlos" );
    3347         cc_reg_PH.Add( "F6", "San Jose" );
    3348         cc_reg_PH.Add( "F7", "San Pablo" );
    3349         cc_reg_PH.Add( "F8", "Silay" );
    3350         cc_reg_PH.Add( "F9", "Surigao" );
    3351         cc_reg_PH.Add( "G1", "Tacloban" );
    3352         cc_reg_PH.Add( "G2", "Tagaytay" );
    3353         cc_reg_PH.Add( "G3", "Tagbilaran" );
    3354         cc_reg_PH.Add( "G4", "Tangub" );
    3355         cc_reg_PH.Add( "G5", "Toledo" );
    3356         cc_reg_PH.Add( "G6", "Trece Martires" );
    3357         cc_reg_PH.Add( "G7", "Zamboanga" );
    3358         cc_reg_PH.Add( "G8", "Aurora" );
    3359         cc_reg_PH.Add( "H2", "Quezon" );
    3360         cc_reg_PH.Add( "H3", "Negros Occidental" );
    3361         GEOIP_REGION_NAME.Add( "PH", cc_reg_PH );
    3362         Hashtable cc_reg_PK = new Hashtable();
    3363         cc_reg_PK.Add( "01", "Federally Administered Tribal Areas" );
    3364         cc_reg_PK.Add( "02", "Balochistan" );
    3365         cc_reg_PK.Add( "03", "North-West Frontier" );
    3366         cc_reg_PK.Add( "04", "Punjab" );
    3367         cc_reg_PK.Add( "05", "Sindh" );
    3368         cc_reg_PK.Add( "06", "Azad Kashmir" );
    3369         cc_reg_PK.Add( "07", "Northern Areas" );
    3370         cc_reg_PK.Add( "08", "Islamabad" );
    3371         GEOIP_REGION_NAME.Add( "PK", cc_reg_PK );
    3372         Hashtable cc_reg_PL = new Hashtable();
    3373         cc_reg_PL.Add( "23", "Biala Podlaska" );
    3374         cc_reg_PL.Add( "24", "Bialystok" );
    3375         cc_reg_PL.Add( "25", "Bielsko" );
    3376         cc_reg_PL.Add( "26", "Bydgoszcz" );
    3377         cc_reg_PL.Add( "27", "Chelm" );
    3378         cc_reg_PL.Add( "28", "Ciechanow" );
    3379         cc_reg_PL.Add( "29", "Czestochowa" );
    3380         cc_reg_PL.Add( "30", "Elblag" );
    3381         cc_reg_PL.Add( "31", "Gdansk" );
    3382         cc_reg_PL.Add( "32", "Gorzow" );
    3383         cc_reg_PL.Add( "33", "Jelenia Gora" );
    3384         cc_reg_PL.Add( "34", "Kalisz" );
    3385         cc_reg_PL.Add( "35", "Katowice" );
    3386         cc_reg_PL.Add( "36", "Kielce" );
    3387         cc_reg_PL.Add( "37", "Konin" );
    3388         cc_reg_PL.Add( "38", "Koszalin" );
    3389         cc_reg_PL.Add( "39", "Krakow" );
    3390         cc_reg_PL.Add( "40", "Krosno" );
    3391         cc_reg_PL.Add( "41", "Legnica" );
    3392         cc_reg_PL.Add( "42", "Leszno" );
    3393         cc_reg_PL.Add( "43", "Lodz" );
    3394         cc_reg_PL.Add( "44", "Lomza" );
    3395         cc_reg_PL.Add( "45", "Lublin" );
    3396         cc_reg_PL.Add( "46", "Nowy Sacz" );
    3397         cc_reg_PL.Add( "47", "Olsztyn" );
    3398         cc_reg_PL.Add( "48", "Opole" );
    3399         cc_reg_PL.Add( "49", "Ostroleka" );
    3400         cc_reg_PL.Add( "50", "Pila" );
    3401         cc_reg_PL.Add( "51", "Piotrkow" );
    3402         cc_reg_PL.Add( "52", "Plock" );
    3403         cc_reg_PL.Add( "53", "Poznan" );
    3404         cc_reg_PL.Add( "54", "Przemysl" );
    3405         cc_reg_PL.Add( "55", "Radom" );
    3406         cc_reg_PL.Add( "56", "Rzeszow" );
    3407         cc_reg_PL.Add( "57", "Siedlce" );
    3408         cc_reg_PL.Add( "58", "Sieradz" );
    3409         cc_reg_PL.Add( "59", "Skierniewice" );
    3410         cc_reg_PL.Add( "60", "Slupsk" );
    3411         cc_reg_PL.Add( "61", "Suwalki" );
    3412         cc_reg_PL.Add( "62", "Szczecin" );
    3413         cc_reg_PL.Add( "63", "Tarnobrzeg" );
    3414         cc_reg_PL.Add( "64", "Tarnow" );
    3415         cc_reg_PL.Add( "65", "Torun" );
    3416         cc_reg_PL.Add( "66", "Walbrzych" );
    3417         cc_reg_PL.Add( "67", "Warszawa" );
    3418         cc_reg_PL.Add( "68", "Wloclawek" );
    3419         cc_reg_PL.Add( "69", "Wroclaw" );
    3420         cc_reg_PL.Add( "70", "Zamosc" );
    3421         cc_reg_PL.Add( "71", "Zielona Gora" );
    3422         cc_reg_PL.Add( "72", "Dolnoslaskie" );
    3423         cc_reg_PL.Add( "73", "Kujawsko-Pomorskie" );
    3424         cc_reg_PL.Add( "74", "Lodzkie" );
    3425         cc_reg_PL.Add( "75", "Lubelskie" );
    3426         cc_reg_PL.Add( "76", "Lubuskie" );
    3427         cc_reg_PL.Add( "77", "Malopolskie" );
    3428         cc_reg_PL.Add( "78", "Mazowieckie" );
    3429         cc_reg_PL.Add( "79", "Opolskie" );
    3430         cc_reg_PL.Add( "80", "Podkarpackie" );
    3431         cc_reg_PL.Add( "81", "Podlaskie" );
    3432         cc_reg_PL.Add( "82", "Pomorskie" );
    3433         cc_reg_PL.Add( "83", "Slaskie" );
    3434         cc_reg_PL.Add( "84", "Swietokrzyskie" );
    3435         cc_reg_PL.Add( "85", "Warminsko-Mazurskie" );
    3436         cc_reg_PL.Add( "86", "Wielkopolskie" );
    3437         cc_reg_PL.Add( "87", "Zachodniopomorskie" );
    3438         GEOIP_REGION_NAME.Add( "PL", cc_reg_PL );
    3439         Hashtable cc_reg_PS = new Hashtable();
    3440         cc_reg_PS.Add( "GZ", "Gaza" );
    3441         cc_reg_PS.Add( "WE", "West Bank" );
    3442         GEOIP_REGION_NAME.Add( "PS", cc_reg_PS );
    3443         Hashtable cc_reg_PT = new Hashtable();
    3444         cc_reg_PT.Add( "02", "Aveiro" );
    3445         cc_reg_PT.Add( "03", "Beja" );
    3446         cc_reg_PT.Add( "04", "Braga" );
    3447         cc_reg_PT.Add( "05", "Braganca" );
    3448         cc_reg_PT.Add( "06", "Castelo Branco" );
    3449         cc_reg_PT.Add( "07", "Coimbra" );
    3450         cc_reg_PT.Add( "08", "Evora" );
    3451         cc_reg_PT.Add( "09", "Faro" );
    3452         cc_reg_PT.Add( "10", "Madeira" );
    3453         cc_reg_PT.Add( "11", "Guarda" );
    3454         cc_reg_PT.Add( "13", "Leiria" );
    3455         cc_reg_PT.Add( "14", "Lisboa" );
    3456         cc_reg_PT.Add( "16", "Portalegre" );
    3457         cc_reg_PT.Add( "17", "Porto" );
    3458         cc_reg_PT.Add( "18", "Santarem" );
    3459         cc_reg_PT.Add( "19", "Setubal" );
    3460         cc_reg_PT.Add( "20", "Viana do Castelo" );
    3461         cc_reg_PT.Add( "21", "Vila Real" );
    3462         cc_reg_PT.Add( "22", "Viseu" );
    3463         cc_reg_PT.Add( "23", "Azores" );
    3464         GEOIP_REGION_NAME.Add( "PT", cc_reg_PT );
    3465         Hashtable cc_reg_PY = new Hashtable();
    3466         cc_reg_PY.Add( "01", "Alto Parana" );
    3467         cc_reg_PY.Add( "02", "Amambay" );
    3468         cc_reg_PY.Add( "03", "Boqueron" );
    3469         cc_reg_PY.Add( "04", "Caaguazu" );
    3470         cc_reg_PY.Add( "05", "Caazapa" );
    3471         cc_reg_PY.Add( "06", "Central" );
    3472         cc_reg_PY.Add( "07", "Concepcion" );
    3473         cc_reg_PY.Add( "08", "Cordillera" );
    3474         cc_reg_PY.Add( "10", "Guaira" );
    3475         cc_reg_PY.Add( "11", "Itapua" );
    3476         cc_reg_PY.Add( "12", "Misiones" );
    3477         cc_reg_PY.Add( "13", "Neembucu" );
    3478         cc_reg_PY.Add( "15", "Paraguari" );
    3479         cc_reg_PY.Add( "16", "Presidente Hayes" );
    3480         cc_reg_PY.Add( "17", "San Pedro" );
    3481         cc_reg_PY.Add( "19", "Canindeyu" );
    3482         cc_reg_PY.Add( "20", "Chaco" );
    3483         cc_reg_PY.Add( "21", "Nueva Asuncion" );
    3484         cc_reg_PY.Add( "23", "Alto Paraguay" );
    3485         GEOIP_REGION_NAME.Add( "PY", cc_reg_PY );
    3486         Hashtable cc_reg_QA = new Hashtable();
    3487         cc_reg_QA.Add( "01", "Ad Dawhah" );
    3488         cc_reg_QA.Add( "02", "Al Ghuwariyah" );
    3489         cc_reg_QA.Add( "03", "Al Jumaliyah" );
    3490         cc_reg_QA.Add( "04", "Al Khawr" );
    3491         cc_reg_QA.Add( "05", "Al Wakrah Municipality" );
    3492         cc_reg_QA.Add( "06", "Ar Rayyan" );
    3493         cc_reg_QA.Add( "08", "Madinat ach Shamal" );
    3494         cc_reg_QA.Add( "09", "Umm Salal" );
    3495         cc_reg_QA.Add( "10", "Al Wakrah" );
    3496         cc_reg_QA.Add( "11", "Jariyan al Batnah" );
    3497         cc_reg_QA.Add( "12", "Umm Sa'id" );
    3498         GEOIP_REGION_NAME.Add( "QA", cc_reg_QA );
    3499         Hashtable cc_reg_RO = new Hashtable();
    3500         cc_reg_RO.Add( "01", "Alba" );
    3501         cc_reg_RO.Add( "02", "Arad" );
    3502         cc_reg_RO.Add( "03", "Arges" );
    3503         cc_reg_RO.Add( "04", "Bacau" );
    3504         cc_reg_RO.Add( "05", "Bihor" );
    3505         cc_reg_RO.Add( "06", "Bistrita-Nasaud" );
    3506         cc_reg_RO.Add( "07", "Botosani" );
    3507         cc_reg_RO.Add( "08", "Braila" );
    3508         cc_reg_RO.Add( "09", "Brasov" );
    3509         cc_reg_RO.Add( "10", "Bucuresti" );
    3510         cc_reg_RO.Add( "11", "Buzau" );
    3511         cc_reg_RO.Add( "12", "Caras-Severin" );
    3512         cc_reg_RO.Add( "13", "Cluj" );
    3513         cc_reg_RO.Add( "14", "Constanta" );
    3514         cc_reg_RO.Add( "15", "Covasna" );
    3515         cc_reg_RO.Add( "16", "Dambovita" );
    3516         cc_reg_RO.Add( "17", "Dolj" );
    3517         cc_reg_RO.Add( "18", "Galati" );
    3518         cc_reg_RO.Add( "19", "Gorj" );
    3519         cc_reg_RO.Add( "20", "Harghita" );
    3520         cc_reg_RO.Add( "21", "Hunedoara" );
    3521         cc_reg_RO.Add( "22", "Ialomita" );
    3522         cc_reg_RO.Add( "23", "Iasi" );
    3523         cc_reg_RO.Add( "25", "Maramures" );
    3524         cc_reg_RO.Add( "26", "Mehedinti" );
    3525         cc_reg_RO.Add( "27", "Mures" );
    3526         cc_reg_RO.Add( "28", "Neamt" );
    3527         cc_reg_RO.Add( "29", "Olt" );
    3528         cc_reg_RO.Add( "30", "Prahova" );
    3529         cc_reg_RO.Add( "31", "Salaj" );
    3530         cc_reg_RO.Add( "32", "Satu Mare" );
    3531         cc_reg_RO.Add( "33", "Sibiu" );
    3532         cc_reg_RO.Add( "34", "Suceava" );
    3533         cc_reg_RO.Add( "35", "Teleorman" );
    3534         cc_reg_RO.Add( "36", "Timis" );
    3535         cc_reg_RO.Add( "37", "Tulcea" );
    3536         cc_reg_RO.Add( "38", "Vaslui" );
    3537         cc_reg_RO.Add( "39", "Valcea" );
    3538         cc_reg_RO.Add( "40", "Vrancea" );
    3539         cc_reg_RO.Add( "41", "Calarasi" );
    3540         cc_reg_RO.Add( "42", "Giurgiu" );
    3541         cc_reg_RO.Add( "43", "Ilfov" );
    3542         GEOIP_REGION_NAME.Add( "RO", cc_reg_RO );
    3543         Hashtable cc_reg_RS = new Hashtable();
    3544         cc_reg_RS.Add( "01", "Kosovo" );
    3545         cc_reg_RS.Add( "02", "Vojvodina" );
    3546         GEOIP_REGION_NAME.Add( "RS", cc_reg_RS );
    3547         Hashtable cc_reg_RU = new Hashtable();
    3548         cc_reg_RU.Add( "01", "Adygeya, Republic of" );
    3549         cc_reg_RU.Add( "02", "Aginsky Buryatsky AO" );
    3550         cc_reg_RU.Add( "03", "Gorno-Altay" );
    3551         cc_reg_RU.Add( "04", "Altaisky krai" );
    3552         cc_reg_RU.Add( "05", "Amur" );
    3553         cc_reg_RU.Add( "06", "Arkhangel'sk" );
    3554         cc_reg_RU.Add( "07", "Astrakhan'" );
    3555         cc_reg_RU.Add( "08", "Bashkortostan" );
    3556         cc_reg_RU.Add( "09", "Belgorod" );
    3557         cc_reg_RU.Add( "10", "Bryansk" );
    3558         cc_reg_RU.Add( "11", "Buryat" );
    3559         cc_reg_RU.Add( "12", "Chechnya" );
    3560         cc_reg_RU.Add( "13", "Chelyabinsk" );
    3561         cc_reg_RU.Add( "14", "Chita" );
    3562         cc_reg_RU.Add( "15", "Chukot" );
    3563         cc_reg_RU.Add( "16", "Chuvashia" );
    3564         cc_reg_RU.Add( "17", "Dagestan" );
    3565         cc_reg_RU.Add( "18", "Evenk" );
    3566         cc_reg_RU.Add( "19", "Ingush" );
    3567         cc_reg_RU.Add( "20", "Irkutsk" );
    3568         cc_reg_RU.Add( "21", "Ivanovo" );
    3569         cc_reg_RU.Add( "22", "Kabardin-Balkar" );
    3570         cc_reg_RU.Add( "23", "Kaliningrad" );
    3571         cc_reg_RU.Add( "24", "Kalmyk" );
    3572         cc_reg_RU.Add( "25", "Kaluga" );
    3573         cc_reg_RU.Add( "26", "Kamchatka" );
    3574         cc_reg_RU.Add( "27", "Karachay-Cherkess" );
    3575         cc_reg_RU.Add( "28", "Karelia" );
    3576         cc_reg_RU.Add( "29", "Kemerovo" );
    3577         cc_reg_RU.Add( "30", "Khabarovsk" );
    3578         cc_reg_RU.Add( "31", "Khakass" );
    3579         cc_reg_RU.Add( "32", "Khanty-Mansiy" );
    3580         cc_reg_RU.Add( "33", "Kirov" );
    3581         cc_reg_RU.Add( "34", "Komi" );
    3582         cc_reg_RU.Add( "35", "Komi-Permyak" );
    3583         cc_reg_RU.Add( "36", "Koryak" );
    3584         cc_reg_RU.Add( "37", "Kostroma" );
    3585         cc_reg_RU.Add( "38", "Krasnodar" );
    3586         cc_reg_RU.Add( "39", "Krasnoyarsk" );
    3587         cc_reg_RU.Add( "40", "Kurgan" );
    3588         cc_reg_RU.Add( "41", "Kursk" );
    3589         cc_reg_RU.Add( "42", "Leningrad" );
    3590         cc_reg_RU.Add( "43", "Lipetsk" );
    3591         cc_reg_RU.Add( "44", "Magadan" );
    3592         cc_reg_RU.Add( "45", "Mariy-El" );
    3593         cc_reg_RU.Add( "46", "Mordovia" );
    3594         cc_reg_RU.Add( "47", "Moskva" );
    3595         cc_reg_RU.Add( "48", "Moscow City" );
    3596         cc_reg_RU.Add( "49", "Murmansk" );
    3597         cc_reg_RU.Add( "50", "Nenets" );
    3598         cc_reg_RU.Add( "51", "Nizhegorod" );
    3599         cc_reg_RU.Add( "52", "Novgorod" );
    3600         cc_reg_RU.Add( "53", "Novosibirsk" );
    3601         cc_reg_RU.Add( "54", "Omsk" );
    3602         cc_reg_RU.Add( "55", "Orenburg" );
    3603         cc_reg_RU.Add( "56", "Orel" );
    3604         cc_reg_RU.Add( "57", "Penza" );
    3605         cc_reg_RU.Add( "58", "Perm'" );
    3606         cc_reg_RU.Add( "59", "Primor'ye" );
    3607         cc_reg_RU.Add( "60", "Pskov" );
    3608         cc_reg_RU.Add( "61", "Rostov" );
    3609         cc_reg_RU.Add( "62", "Ryazan'" );
    3610         cc_reg_RU.Add( "63", "Sakha" );
    3611         cc_reg_RU.Add( "64", "Sakhalin" );
    3612         cc_reg_RU.Add( "65", "Samara" );
    3613         cc_reg_RU.Add( "66", "Saint Petersburg City" );
    3614         cc_reg_RU.Add( "67", "Saratov" );
    3615         cc_reg_RU.Add( "68", "North Ossetia" );
    3616         cc_reg_RU.Add( "69", "Smolensk" );
    3617         cc_reg_RU.Add( "70", "Stavropol'" );
    3618         cc_reg_RU.Add( "71", "Sverdlovsk" );
    3619         cc_reg_RU.Add( "72", "Tambovskaya oblast" );
    3620         cc_reg_RU.Add( "73", "Tatarstan" );
    3621         cc_reg_RU.Add( "74", "Taymyr" );
    3622         cc_reg_RU.Add( "75", "Tomsk" );
    3623         cc_reg_RU.Add( "76", "Tula" );
    3624         cc_reg_RU.Add( "77", "Tver'" );
    3625         cc_reg_RU.Add( "78", "Tyumen'" );
    3626         cc_reg_RU.Add( "79", "Tuva" );
    3627         cc_reg_RU.Add( "80", "Udmurt" );
    3628         cc_reg_RU.Add( "81", "Ul'yanovsk" );
    3629         cc_reg_RU.Add( "82", "Ust-Orda Buryat" );
    3630         cc_reg_RU.Add( "83", "Vladimir" );
    3631         cc_reg_RU.Add( "84", "Volgograd" );
    3632         cc_reg_RU.Add( "85", "Vologda" );
    3633         cc_reg_RU.Add( "86", "Voronezh" );
    3634         cc_reg_RU.Add( "87", "Yamal-Nenets" );
    3635         cc_reg_RU.Add( "88", "Yaroslavl'" );
    3636         cc_reg_RU.Add( "89", "Yevrey" );
    3637         cc_reg_RU.Add( "90", "Permskiy Kray" );
    3638         cc_reg_RU.Add( "91", "Krasnoyarskiy Kray" );
    3639         cc_reg_RU.Add( "CI", "Chechnya Republic" );
    3640         GEOIP_REGION_NAME.Add( "RU", cc_reg_RU );
    3641         Hashtable cc_reg_RW = new Hashtable();
    3642         cc_reg_RW.Add( "01", "Butare" );
    3643         cc_reg_RW.Add( "06", "Gitarama" );
    3644         cc_reg_RW.Add( "07", "Kibungo" );
    3645         cc_reg_RW.Add( "09", "Kigali" );
    3646         cc_reg_RW.Add( "11", "Est" );
    3647         cc_reg_RW.Add( "12", "Kigali" );
    3648         cc_reg_RW.Add( "13", "Nord" );
    3649         cc_reg_RW.Add( "14", "Ouest" );
    3650         cc_reg_RW.Add( "15", "Sud" );
    3651         GEOIP_REGION_NAME.Add( "RW", cc_reg_RW );
    3652         Hashtable cc_reg_SA = new Hashtable();
    3653         cc_reg_SA.Add( "02", "Al Bahah" );
    3654         cc_reg_SA.Add( "03", "Al Jawf" );
    3655         cc_reg_SA.Add( "05", "Al Madinah" );
    3656         cc_reg_SA.Add( "06", "Ash Sharqiyah" );
    3657         cc_reg_SA.Add( "08", "Al Qasim" );
    3658         cc_reg_SA.Add( "09", "Al Qurayyat" );
    3659         cc_reg_SA.Add( "10", "Ar Riyad" );
    3660         cc_reg_SA.Add( "13", "Ha'il" );
    3661         cc_reg_SA.Add( "14", "Makkah" );
    3662         cc_reg_SA.Add( "15", "Al Hudud ash Shamaliyah" );
    3663         cc_reg_SA.Add( "16", "Najran" );
    3664         cc_reg_SA.Add( "17", "Jizan" );
    3665         cc_reg_SA.Add( "19", "Tabuk" );
    3666         cc_reg_SA.Add( "20", "Al Jawf" );
    3667         GEOIP_REGION_NAME.Add( "SA", cc_reg_SA );
    3668         Hashtable cc_reg_SB = new Hashtable();
    3669         cc_reg_SB.Add( "03", "Malaita" );
    3670         cc_reg_SB.Add( "06", "Guadalcanal" );
    3671         cc_reg_SB.Add( "07", "Isabel" );
    3672         cc_reg_SB.Add( "08", "Makira" );
    3673         cc_reg_SB.Add( "09", "Temotu" );
    3674         cc_reg_SB.Add( "10", "Central" );
    3675         cc_reg_SB.Add( "11", "Western" );
    3676         cc_reg_SB.Add( "12", "Choiseul" );
    3677         cc_reg_SB.Add( "13", "Rennell and Bellona" );
    3678         GEOIP_REGION_NAME.Add( "SB", cc_reg_SB );
    3679         Hashtable cc_reg_SC = new Hashtable();
    3680         cc_reg_SC.Add( "01", "Anse aux Pins" );
    3681         cc_reg_SC.Add( "02", "Anse Boileau" );
    3682         cc_reg_SC.Add( "03", "Anse Etoile" );
    3683         cc_reg_SC.Add( "04", "Anse Louis" );
    3684         cc_reg_SC.Add( "05", "Anse Royale" );
    3685         cc_reg_SC.Add( "06", "Baie Lazare" );
    3686         cc_reg_SC.Add( "07", "Baie Sainte Anne" );
    3687         cc_reg_SC.Add( "08", "Beau Vallon" );
    3688         cc_reg_SC.Add( "09", "Bel Air" );
    3689         cc_reg_SC.Add( "10", "Bel Ombre" );
    3690         cc_reg_SC.Add( "11", "Cascade" );
    3691         cc_reg_SC.Add( "12", "Glacis" );
    3692         cc_reg_SC.Add( "13", "Grand' Anse" );
    3693         cc_reg_SC.Add( "14", "Grand' Anse" );
    3694         cc_reg_SC.Add( "15", "La Digue" );
    3695         cc_reg_SC.Add( "16", "La Riviere Anglaise" );
    3696         cc_reg_SC.Add( "17", "Mont Buxton" );
    3697         cc_reg_SC.Add( "18", "Mont Fleuri" );
    3698         cc_reg_SC.Add( "19", "Plaisance" );
    3699         cc_reg_SC.Add( "20", "Pointe La Rue" );
    3700         cc_reg_SC.Add( "21", "Port Glaud" );
    3701         cc_reg_SC.Add( "22", "Saint Louis" );
    3702         cc_reg_SC.Add( "23", "Takamaka" );
    3703         GEOIP_REGION_NAME.Add( "SC", cc_reg_SC );
    3704         Hashtable cc_reg_SD = new Hashtable();
    3705         cc_reg_SD.Add( "27", "Al Wusta" );
    3706         cc_reg_SD.Add( "28", "Al Istiwa'iyah" );
    3707         cc_reg_SD.Add( "29", "Al Khartum" );
    3708         cc_reg_SD.Add( "30", "Ash Shamaliyah" );
    3709         cc_reg_SD.Add( "31", "Ash Sharqiyah" );
    3710         cc_reg_SD.Add( "32", "Bahr al Ghazal" );
    3711         cc_reg_SD.Add( "33", "Darfur" );
    3712         cc_reg_SD.Add( "34", "Kurdufan" );
    3713         cc_reg_SD.Add( "35", "Upper Nile" );
    3714         cc_reg_SD.Add( "40", "Al Wahadah State" );
    3715         cc_reg_SD.Add( "44", "Central Equatoria State" );
    3716         GEOIP_REGION_NAME.Add( "SD", cc_reg_SD );
    3717         Hashtable cc_reg_SE = new Hashtable();
    3718         cc_reg_SE.Add( "01", "Alvsborgs Lan" );
    3719         cc_reg_SE.Add( "02", "Blekinge Lan" );
    3720         cc_reg_SE.Add( "03", "Gavleborgs Lan" );
    3721         cc_reg_SE.Add( "04", "Goteborgs och Bohus Lan" );
    3722         cc_reg_SE.Add( "05", "Gotlands Lan" );
    3723         cc_reg_SE.Add( "06", "Hallands Lan" );
    3724         cc_reg_SE.Add( "07", "Jamtlands Lan" );
    3725         cc_reg_SE.Add( "08", "Jonkopings Lan" );
    3726         cc_reg_SE.Add( "09", "Kalmar Lan" );
    3727         cc_reg_SE.Add( "10", "Dalarnas Lan" );
    3728         cc_reg_SE.Add( "11", "Kristianstads Lan" );
    3729         cc_reg_SE.Add( "12", "Kronobergs Lan" );
    3730         cc_reg_SE.Add( "13", "Malmohus Lan" );
    3731         cc_reg_SE.Add( "14", "Norrbottens Lan" );
    3732         cc_reg_SE.Add( "15", "Orebro Lan" );
    3733         cc_reg_SE.Add( "16", "Ostergotlands Lan" );
    3734         cc_reg_SE.Add( "17", "Skaraborgs Lan" );
    3735         cc_reg_SE.Add( "18", "Sodermanlands Lan" );
    3736         cc_reg_SE.Add( "21", "Uppsala Lan" );
    3737         cc_reg_SE.Add( "22", "Varmlands Lan" );
    3738         cc_reg_SE.Add( "23", "Vasterbottens Lan" );
    3739         cc_reg_SE.Add( "24", "Vasternorrlands Lan" );
    3740         cc_reg_SE.Add( "25", "Vastmanlands Lan" );
    3741         cc_reg_SE.Add( "26", "Stockholms Lan" );
    3742         cc_reg_SE.Add( "27", "Skane Lan" );
    3743         cc_reg_SE.Add( "28", "Vastra Gotaland" );
    3744         GEOIP_REGION_NAME.Add( "SE", cc_reg_SE );
    3745         Hashtable cc_reg_SH = new Hashtable();
    3746         cc_reg_SH.Add( "01", "Ascension" );
    3747         cc_reg_SH.Add( "02", "Saint Helena" );
    3748         cc_reg_SH.Add( "03", "Tristan da Cunha" );
    3749         GEOIP_REGION_NAME.Add( "SH", cc_reg_SH );
    3750         Hashtable cc_reg_SI = new Hashtable();
    3751         cc_reg_SI.Add( "01", "Ajdovscina" );
    3752         cc_reg_SI.Add( "02", "Beltinci" );
    3753         cc_reg_SI.Add( "03", "Bled" );
    3754         cc_reg_SI.Add( "04", "Bohinj" );
    3755         cc_reg_SI.Add( "05", "Borovnica" );
    3756         cc_reg_SI.Add( "06", "Bovec" );
    3757         cc_reg_SI.Add( "07", "Brda" );
    3758         cc_reg_SI.Add( "08", "Brezice" );
    3759         cc_reg_SI.Add( "09", "Brezovica" );
    3760         cc_reg_SI.Add( "11", "Celje" );
    3761         cc_reg_SI.Add( "12", "Cerklje na Gorenjskem" );
    3762         cc_reg_SI.Add( "13", "Cerknica" );
    3763         cc_reg_SI.Add( "14", "Cerkno" );
    3764         cc_reg_SI.Add( "15", "Crensovci" );
    3765         cc_reg_SI.Add( "16", "Crna na Koroskem" );
    3766         cc_reg_SI.Add( "17", "Crnomelj" );
    3767         cc_reg_SI.Add( "19", "Divaca" );
    3768         cc_reg_SI.Add( "20", "Dobrepolje" );
    3769         cc_reg_SI.Add( "22", "Dol pri Ljubljani" );
    3770         cc_reg_SI.Add( "24", "Dornava" );
    3771         cc_reg_SI.Add( "25", "Dravograd" );
    3772         cc_reg_SI.Add( "26", "Duplek" );
    3773         cc_reg_SI.Add( "27", "Gorenja Vas-Poljane" );
    3774         cc_reg_SI.Add( "28", "Gorisnica" );
    3775         cc_reg_SI.Add( "29", "Gornja Radgona" );
    3776         cc_reg_SI.Add( "30", "Gornji Grad" );
    3777         cc_reg_SI.Add( "31", "Gornji Petrovci" );
    3778         cc_reg_SI.Add( "32", "Grosuplje" );
    3779         cc_reg_SI.Add( "34", "Hrastnik" );
    3780         cc_reg_SI.Add( "35", "Hrpelje-Kozina" );
    3781         cc_reg_SI.Add( "36", "Idrija" );
    3782         cc_reg_SI.Add( "37", "Ig" );
    3783         cc_reg_SI.Add( "38", "Ilirska Bistrica" );
    3784         cc_reg_SI.Add( "39", "Ivancna Gorica" );
    3785         cc_reg_SI.Add( "40", "Izola-Isola" );
    3786         cc_reg_SI.Add( "42", "Jursinci" );
    3787         cc_reg_SI.Add( "44", "Kanal" );
    3788         cc_reg_SI.Add( "45", "Kidricevo" );
    3789         cc_reg_SI.Add( "46", "Kobarid" );
    3790         cc_reg_SI.Add( "47", "Kobilje" );
    3791         cc_reg_SI.Add( "49", "Komen" );
    3792         cc_reg_SI.Add( "50", "Koper-Capodistria" );
    3793         cc_reg_SI.Add( "51", "Kozje" );
    3794         cc_reg_SI.Add( "52", "Kranj" );
    3795         cc_reg_SI.Add( "53", "Kranjska Gora" );
    3796         cc_reg_SI.Add( "54", "Krsko" );
    3797         cc_reg_SI.Add( "55", "Kungota" );
    3798         cc_reg_SI.Add( "57", "Lasko" );
    3799         cc_reg_SI.Add( "61", "Ljubljana" );
    3800         cc_reg_SI.Add( "62", "Ljubno" );
    3801         cc_reg_SI.Add( "64", "Logatec" );
    3802         cc_reg_SI.Add( "66", "Loski Potok" );
    3803         cc_reg_SI.Add( "68", "Lukovica" );
    3804         cc_reg_SI.Add( "71", "Medvode" );
    3805         cc_reg_SI.Add( "72", "Menges" );
    3806         cc_reg_SI.Add( "73", "Metlika" );
    3807         cc_reg_SI.Add( "74", "Mezica" );
    3808         cc_reg_SI.Add( "76", "Mislinja" );
    3809         cc_reg_SI.Add( "77", "Moravce" );
    3810         cc_reg_SI.Add( "78", "Moravske Toplice" );
    3811         cc_reg_SI.Add( "79", "Mozirje" );
    3812         cc_reg_SI.Add( "80", "Murska Sobota" );
    3813         cc_reg_SI.Add( "81", "Muta" );
    3814         cc_reg_SI.Add( "82", "Naklo" );
    3815         cc_reg_SI.Add( "83", "Nazarje" );
    3816         cc_reg_SI.Add( "84", "Nova Gorica" );
    3817         cc_reg_SI.Add( "86", "Odranci" );
    3818         cc_reg_SI.Add( "87", "Ormoz" );
    3819         cc_reg_SI.Add( "88", "Osilnica" );
    3820         cc_reg_SI.Add( "89", "Pesnica" );
    3821         cc_reg_SI.Add( "91", "Pivka" );
    3822         cc_reg_SI.Add( "92", "Podcetrtek" );
    3823         cc_reg_SI.Add( "94", "Postojna" );
    3824         cc_reg_SI.Add( "97", "Puconci" );
    3825         cc_reg_SI.Add( "98", "Racam" );
    3826         cc_reg_SI.Add( "99", "Radece" );
    3827         cc_reg_SI.Add( "A1", "Radenci" );
    3828         cc_reg_SI.Add( "A2", "Radlje ob Dravi" );
    3829         cc_reg_SI.Add( "A3", "Radovljica" );
    3830         cc_reg_SI.Add( "A6", "Rogasovci" );
    3831         cc_reg_SI.Add( "A7", "Rogaska Slatina" );
    3832         cc_reg_SI.Add( "A8", "Rogatec" );
    3833         cc_reg_SI.Add( "B1", "Semic" );
    3834         cc_reg_SI.Add( "B2", "Sencur" );
    3835         cc_reg_SI.Add( "B3", "Sentilj" );
    3836         cc_reg_SI.Add( "B4", "Sentjernej" );
    3837         cc_reg_SI.Add( "B6", "Sevnica" );
    3838         cc_reg_SI.Add( "B7", "Sezana" );
    3839         cc_reg_SI.Add( "B8", "Skocjan" );
    3840         cc_reg_SI.Add( "B9", "Skofja Loka" );
    3841         cc_reg_SI.Add( "C1", "Skofljica" );
    3842         cc_reg_SI.Add( "C2", "Slovenj Gradec" );
    3843         cc_reg_SI.Add( "C4", "Slovenske Konjice" );
    3844         cc_reg_SI.Add( "C5", "Smarje pri Jelsah" );
    3845         cc_reg_SI.Add( "C6", "Smartno ob Paki" );
    3846         cc_reg_SI.Add( "C7", "Sostanj" );
    3847         cc_reg_SI.Add( "C8", "Starse" );
    3848         cc_reg_SI.Add( "C9", "Store" );
    3849         cc_reg_SI.Add( "D1", "Sveti Jurij" );
    3850         cc_reg_SI.Add( "D2", "Tolmin" );
    3851         cc_reg_SI.Add( "D3", "Trbovlje" );
    3852         cc_reg_SI.Add( "D4", "Trebnje" );
    3853         cc_reg_SI.Add( "D5", "Trzic" );
    3854         cc_reg_SI.Add( "D6", "Turnisce" );
    3855         cc_reg_SI.Add( "D7", "Velenje" );
    3856         cc_reg_SI.Add( "D8", "Velike Lasce" );
    3857         cc_reg_SI.Add( "E1", "Vipava" );
    3858         cc_reg_SI.Add( "E2", "Vitanje" );
    3859         cc_reg_SI.Add( "E3", "Vodice" );
    3860         cc_reg_SI.Add( "E5", "Vrhnika" );
    3861         cc_reg_SI.Add( "E6", "Vuzenica" );
    3862         cc_reg_SI.Add( "E7", "Zagorje ob Savi" );
    3863         cc_reg_SI.Add( "E9", "Zavrc" );
    3864         cc_reg_SI.Add( "F1", "Zelezniki" );
    3865         cc_reg_SI.Add( "F2", "Ziri" );
    3866         cc_reg_SI.Add( "F3", "Zrece" );
    3867         cc_reg_SI.Add( "G4", "Dobrova-Horjul-Polhov Gradec" );
    3868         cc_reg_SI.Add( "G7", "Domzale" );
    3869         cc_reg_SI.Add( "H4", "Jesenice" );
    3870         cc_reg_SI.Add( "H6", "Kamnik" );
    3871         cc_reg_SI.Add( "H7", "Kocevje" );
    3872         cc_reg_SI.Add( "I2", "Kuzma" );
    3873         cc_reg_SI.Add( "I3", "Lenart" );
    3874         cc_reg_SI.Add( "I5", "Litija" );
    3875         cc_reg_SI.Add( "I6", "Ljutomer" );
    3876         cc_reg_SI.Add( "I7", "Loska Dolina" );
    3877         cc_reg_SI.Add( "I9", "Luce" );
    3878         cc_reg_SI.Add( "J1", "Majsperk" );
    3879         cc_reg_SI.Add( "J2", "Maribor" );
    3880         cc_reg_SI.Add( "J5", "Miren-Kostanjevica" );
    3881         cc_reg_SI.Add( "J7", "Novo Mesto" );
    3882         cc_reg_SI.Add( "J9", "Piran" );
    3883         cc_reg_SI.Add( "K5", "Preddvor" );
    3884         cc_reg_SI.Add( "K7", "Ptuj" );
    3885         cc_reg_SI.Add( "L1", "Ribnica" );
    3886         cc_reg_SI.Add( "L3", "Ruse" );
    3887         cc_reg_SI.Add( "L7", "Sentjur pri Celju" );
    3888         cc_reg_SI.Add( "L8", "Slovenska Bistrica" );
    3889         cc_reg_SI.Add( "N2", "Videm" );
    3890         cc_reg_SI.Add( "N3", "Vojnik" );
    3891         cc_reg_SI.Add( "N5", "Zalec" );
    3892         GEOIP_REGION_NAME.Add( "SI", cc_reg_SI );
    3893         Hashtable cc_reg_SK = new Hashtable();
    3894         cc_reg_SK.Add( "01", "Banska Bystrica" );
    3895         cc_reg_SK.Add( "02", "Bratislava" );
    3896         cc_reg_SK.Add( "03", "Kosice" );
    3897         cc_reg_SK.Add( "04", "Nitra" );
    3898         cc_reg_SK.Add( "05", "Presov" );
    3899         cc_reg_SK.Add( "06", "Trencin" );
    3900         cc_reg_SK.Add( "07", "Trnava" );
    3901         cc_reg_SK.Add( "08", "Zilina" );
    3902         GEOIP_REGION_NAME.Add( "SK", cc_reg_SK );
    3903         Hashtable cc_reg_SL = new Hashtable();
    3904         cc_reg_SL.Add( "01", "Eastern" );
    3905         cc_reg_SL.Add( "02", "Northern" );
    3906         cc_reg_SL.Add( "03", "Southern" );
    3907         cc_reg_SL.Add( "04", "Western Area" );
    3908         GEOIP_REGION_NAME.Add( "SL", cc_reg_SL );
    3909         Hashtable cc_reg_SM = new Hashtable();
    3910         cc_reg_SM.Add( "01", "Acquaviva" );
    3911         cc_reg_SM.Add( "02", "Chiesanuova" );
    3912         cc_reg_SM.Add( "03", "Domagnano" );
    3913         cc_reg_SM.Add( "04", "Faetano" );
    3914         cc_reg_SM.Add( "05", "Fiorentino" );
    3915         cc_reg_SM.Add( "06", "Borgo Maggiore" );
    3916         cc_reg_SM.Add( "07", "San Marino" );
    3917         cc_reg_SM.Add( "08", "Monte Giardino" );
    3918         cc_reg_SM.Add( "09", "Serravalle" );
    3919         GEOIP_REGION_NAME.Add( "SM", cc_reg_SM );
    3920         Hashtable cc_reg_SN = new Hashtable();
    3921         cc_reg_SN.Add( "01", "Dakar" );
    3922         cc_reg_SN.Add( "03", "Diourbel" );
    3923         cc_reg_SN.Add( "04", "Saint-Louis" );
    3924         cc_reg_SN.Add( "05", "Tambacounda" );
    3925         cc_reg_SN.Add( "07", "Thies" );
    3926         cc_reg_SN.Add( "08", "Louga" );
    3927         cc_reg_SN.Add( "09", "Fatick" );
    3928         cc_reg_SN.Add( "10", "Kaolack" );
    3929         cc_reg_SN.Add( "11", "Kolda" );
    3930         cc_reg_SN.Add( "12", "Ziguinchor" );
    3931         cc_reg_SN.Add( "13", "Louga" );
    3932         cc_reg_SN.Add( "14", "Saint-Louis" );
    3933         cc_reg_SN.Add( "15", "Matam" );
    3934         GEOIP_REGION_NAME.Add( "SN", cc_reg_SN );
    3935         Hashtable cc_reg_SO = new Hashtable();
    3936         cc_reg_SO.Add( "01", "Bakool" );
    3937         cc_reg_SO.Add( "02", "Banaadir" );
    3938         cc_reg_SO.Add( "03", "Bari" );
    3939         cc_reg_SO.Add( "04", "Bay" );
    3940         cc_reg_SO.Add( "05", "Galguduud" );
    3941         cc_reg_SO.Add( "06", "Gedo" );
    3942         cc_reg_SO.Add( "07", "Hiiraan" );
    3943         cc_reg_SO.Add( "08", "Jubbada Dhexe" );
    3944         cc_reg_SO.Add( "09", "Jubbada Hoose" );
    3945         cc_reg_SO.Add( "10", "Mudug" );
    3946         cc_reg_SO.Add( "11", "Nugaal" );
    3947         cc_reg_SO.Add( "12", "Sanaag" );
    3948         cc_reg_SO.Add( "13", "Shabeellaha Dhexe" );
    3949         cc_reg_SO.Add( "14", "Shabeellaha Hoose" );
    3950         cc_reg_SO.Add( "16", "Woqooyi Galbeed" );
    3951         cc_reg_SO.Add( "18", "Nugaal" );
    3952         cc_reg_SO.Add( "19", "Togdheer" );
    3953         cc_reg_SO.Add( "20", "Woqooyi Galbeed" );
    3954         cc_reg_SO.Add( "21", "Awdal" );
    3955         cc_reg_SO.Add( "22", "Sool" );
    3956         GEOIP_REGION_NAME.Add( "SO", cc_reg_SO );
    3957         Hashtable cc_reg_SR = new Hashtable();
    3958         cc_reg_SR.Add( "10", "Brokopondo" );
    3959         cc_reg_SR.Add( "11", "Commewijne" );
    3960         cc_reg_SR.Add( "12", "Coronie" );
    3961         cc_reg_SR.Add( "13", "Marowijne" );
    3962         cc_reg_SR.Add( "14", "Nickerie" );
    3963         cc_reg_SR.Add( "15", "Para" );
    3964         cc_reg_SR.Add( "16", "Paramaribo" );
    3965         cc_reg_SR.Add( "17", "Saramacca" );
    3966         cc_reg_SR.Add( "18", "Sipaliwini" );
    3967         cc_reg_SR.Add( "19", "Wanica" );
    3968         GEOIP_REGION_NAME.Add( "SR", cc_reg_SR );
    3969         Hashtable cc_reg_ST = new Hashtable();
    3970         cc_reg_ST.Add( "01", "Principe" );
    3971         cc_reg_ST.Add( "02", "Sao Tome" );
    3972         GEOIP_REGION_NAME.Add( "ST", cc_reg_ST );
    3973         Hashtable cc_reg_SV = new Hashtable();
    3974         cc_reg_SV.Add( "01", "Ahuachapan" );
    3975         cc_reg_SV.Add( "02", "Cabanas" );
    3976         cc_reg_SV.Add( "03", "Chalatenango" );
    3977         cc_reg_SV.Add( "04", "Cuscatlan" );
    3978         cc_reg_SV.Add( "05", "La Libertad" );
    3979         cc_reg_SV.Add( "06", "La Paz" );
    3980         cc_reg_SV.Add( "07", "La Union" );
    3981         cc_reg_SV.Add( "08", "Morazan" );
    3982         cc_reg_SV.Add( "09", "San Miguel" );
    3983         cc_reg_SV.Add( "10", "San Salvador" );
    3984         cc_reg_SV.Add( "11", "Santa Ana" );
    3985         cc_reg_SV.Add( "12", "San Vicente" );
    3986         cc_reg_SV.Add( "13", "Sonsonate" );
    3987         cc_reg_SV.Add( "14", "Usulutan" );
    3988         GEOIP_REGION_NAME.Add( "SV", cc_reg_SV );
    3989         Hashtable cc_reg_SY = new Hashtable();
    3990         cc_reg_SY.Add( "01", "Al Hasakah" );
    3991         cc_reg_SY.Add( "02", "Al Ladhiqiyah" );
    3992         cc_reg_SY.Add( "03", "Al Qunaytirah" );
    3993         cc_reg_SY.Add( "04", "Ar Raqqah" );
    3994         cc_reg_SY.Add( "05", "As Suwayda'" );
    3995         cc_reg_SY.Add( "06", "Dar" );
    3996         cc_reg_SY.Add( "07", "Dayr az Zawr" );
    3997         cc_reg_SY.Add( "08", "Rif Dimashq" );
    3998         cc_reg_SY.Add( "09", "Halab" );
    3999         cc_reg_SY.Add( "10", "Hamah" );
    4000         cc_reg_SY.Add( "11", "Hims" );
    4001         cc_reg_SY.Add( "12", "Idlib" );
    4002         cc_reg_SY.Add( "13", "Dimashq" );
    4003         cc_reg_SY.Add( "14", "Tartus" );
    4004         GEOIP_REGION_NAME.Add( "SY", cc_reg_SY );
    4005         Hashtable cc_reg_SZ = new Hashtable();
    4006         cc_reg_SZ.Add( "01", "Hhohho" );
    4007         cc_reg_SZ.Add( "02", "Lubombo" );
    4008         cc_reg_SZ.Add( "03", "Manzini" );
    4009         cc_reg_SZ.Add( "04", "Shiselweni" );
    4010         cc_reg_SZ.Add( "05", "Praslin" );
    4011         GEOIP_REGION_NAME.Add( "SZ", cc_reg_SZ );
    4012         Hashtable cc_reg_TD = new Hashtable();
    4013         cc_reg_TD.Add( "01", "Batha" );
    4014         cc_reg_TD.Add( "02", "Biltine" );
    4015         cc_reg_TD.Add( "03", "Borkou-Ennedi-Tibesti" );
    4016         cc_reg_TD.Add( "04", "Chari-Baguirmi" );
    4017         cc_reg_TD.Add( "05", "Guera" );
    4018         cc_reg_TD.Add( "06", "Kanem" );
    4019         cc_reg_TD.Add( "07", "Lac" );
    4020         cc_reg_TD.Add( "08", "Logone Occidental" );
    4021         cc_reg_TD.Add( "09", "Logone Oriental" );
    4022         cc_reg_TD.Add( "10", "Mayo-Kebbi" );
    4023         cc_reg_TD.Add( "11", "Moyen-Chari" );
    4024         cc_reg_TD.Add( "12", "Ouaddai" );
    4025         cc_reg_TD.Add( "13", "Salamat" );
    4026         cc_reg_TD.Add( "14", "Tandjile" );
    4027         GEOIP_REGION_NAME.Add( "TD", cc_reg_TD );
    4028         Hashtable cc_reg_TG = new Hashtable();
    4029         cc_reg_TG.Add( "09", "Lama-Kara" );
    4030         cc_reg_TG.Add( "18", "Tsevie" );
    4031         cc_reg_TG.Add( "22", "Centrale" );
    4032         cc_reg_TG.Add( "23", "Kara" );
    4033         cc_reg_TG.Add( "24", "Maritime" );
    4034         cc_reg_TG.Add( "25", "Plateaux" );
    4035         cc_reg_TG.Add( "26", "Savanes" );
    4036         GEOIP_REGION_NAME.Add( "TG", cc_reg_TG );
    4037         Hashtable cc_reg_TH = new Hashtable();
    4038         cc_reg_TH.Add( "01", "Mae Hong Son" );
    4039         cc_reg_TH.Add( "02", "Chiang Mai" );
    4040         cc_reg_TH.Add( "03", "Chiang Rai" );
    4041         cc_reg_TH.Add( "04", "Nan" );
    4042         cc_reg_TH.Add( "05", "Lamphun" );
    4043         cc_reg_TH.Add( "06", "Lampang" );
    4044         cc_reg_TH.Add( "07", "Phrae" );
    4045         cc_reg_TH.Add( "08", "Tak" );
    4046         cc_reg_TH.Add( "09", "Sukhothai" );
    4047         cc_reg_TH.Add( "10", "Uttaradit" );
    4048         cc_reg_TH.Add( "11", "Kamphaeng Phet" );
    4049         cc_reg_TH.Add( "12", "Phitsanulok" );
    4050         cc_reg_TH.Add( "13", "Phichit" );
    4051         cc_reg_TH.Add( "14", "Phetchabun" );
    4052         cc_reg_TH.Add( "15", "Uthai Thani" );
    4053         cc_reg_TH.Add( "16", "Nakhon Sawan" );
    4054         cc_reg_TH.Add( "17", "Nong Khai" );
    4055         cc_reg_TH.Add( "18", "Loei" );
    4056         cc_reg_TH.Add( "20", "Sakon Nakhon" );
    4057         cc_reg_TH.Add( "21", "Nakhon Phanom" );
    4058         cc_reg_TH.Add( "22", "Khon Kaen" );
    4059         cc_reg_TH.Add( "23", "Kalasin" );
    4060         cc_reg_TH.Add( "24", "Maha Sarakham" );
    4061         cc_reg_TH.Add( "25", "Roi Et" );
    4062         cc_reg_TH.Add( "26", "Chaiyaphum" );
    4063         cc_reg_TH.Add( "27", "Nakhon Ratchasima" );
    4064         cc_reg_TH.Add( "28", "Buriram" );
    4065         cc_reg_TH.Add( "29", "Surin" );
    4066         cc_reg_TH.Add( "30", "Sisaket" );
    4067         cc_reg_TH.Add( "31", "Narathiwat" );
    4068         cc_reg_TH.Add( "32", "Chai Nat" );
    4069         cc_reg_TH.Add( "33", "Sing Buri" );
    4070         cc_reg_TH.Add( "34", "Lop Buri" );
    4071         cc_reg_TH.Add( "35", "Ang Thong" );
    4072         cc_reg_TH.Add( "36", "Phra Nakhon Si Ayutthaya" );
    4073         cc_reg_TH.Add( "37", "Saraburi" );
    4074         cc_reg_TH.Add( "38", "Nonthaburi" );
    4075         cc_reg_TH.Add( "39", "Pathum Thani" );
    4076         cc_reg_TH.Add( "40", "Krung Thep" );
    4077         cc_reg_TH.Add( "41", "Phayao" );
    4078         cc_reg_TH.Add( "42", "Samut Prakan" );
    4079         cc_reg_TH.Add( "43", "Nakhon Nayok" );
    4080         cc_reg_TH.Add( "44", "Chachoengsao" );
    4081         cc_reg_TH.Add( "45", "Prachin Buri" );
    4082         cc_reg_TH.Add( "46", "Chon Buri" );
    4083         cc_reg_TH.Add( "47", "Rayong" );
    4084         cc_reg_TH.Add( "48", "Chanthaburi" );
    4085         cc_reg_TH.Add( "49", "Trat" );
    4086         cc_reg_TH.Add( "50", "Kanchanaburi" );
    4087         cc_reg_TH.Add( "51", "Suphan Buri" );
    4088         cc_reg_TH.Add( "52", "Ratchaburi" );
    4089         cc_reg_TH.Add( "53", "Nakhon Pathom" );
    4090         cc_reg_TH.Add( "54", "Samut Songkhram" );
    4091         cc_reg_TH.Add( "55", "Samut Sakhon" );
    4092         cc_reg_TH.Add( "56", "Phetchaburi" );
    4093         cc_reg_TH.Add( "57", "Prachuap Khiri Khan" );
    4094         cc_reg_TH.Add( "58", "Chumphon" );
    4095         cc_reg_TH.Add( "59", "Ranong" );
    4096         cc_reg_TH.Add( "60", "Surat Thani" );
    4097         cc_reg_TH.Add( "61", "Phangnga" );
    4098         cc_reg_TH.Add( "62", "Phuket" );
    4099         cc_reg_TH.Add( "63", "Krabi" );
    4100         cc_reg_TH.Add( "64", "Nakhon Si Thammarat" );
    4101         cc_reg_TH.Add( "65", "Trang" );
    4102         cc_reg_TH.Add( "66", "Phatthalung" );
    4103         cc_reg_TH.Add( "67", "Satun" );
    4104         cc_reg_TH.Add( "68", "Songkhla" );
    4105         cc_reg_TH.Add( "69", "Pattani" );
    4106         cc_reg_TH.Add( "70", "Yala" );
    4107         cc_reg_TH.Add( "71", "Ubon Ratchathani" );
    4108         cc_reg_TH.Add( "72", "Yasothon" );
    4109         cc_reg_TH.Add( "73", "Nakhon Phanom" );
    4110         cc_reg_TH.Add( "75", "Ubon Ratchathani" );
    4111         cc_reg_TH.Add( "76", "Udon Thani" );
    4112         cc_reg_TH.Add( "77", "Amnat Charoen" );
    4113         cc_reg_TH.Add( "78", "Mukdahan" );
    4114         cc_reg_TH.Add( "79", "Nong Bua Lamphu" );
    4115         cc_reg_TH.Add( "80", "Sa Kaeo" );
    4116         GEOIP_REGION_NAME.Add( "TH", cc_reg_TH );
    4117         Hashtable cc_reg_TJ = new Hashtable();
    4118         cc_reg_TJ.Add( "01", "Kuhistoni Badakhshon" );
    4119         cc_reg_TJ.Add( "02", "Khatlon" );
    4120         cc_reg_TJ.Add( "03", "Sughd" );
    4121         GEOIP_REGION_NAME.Add( "TJ", cc_reg_TJ );
    4122         Hashtable cc_reg_TM = new Hashtable();
    4123         cc_reg_TM.Add( "01", "Ahal" );
    4124         cc_reg_TM.Add( "02", "Balkan" );
    4125         cc_reg_TM.Add( "03", "Dashoguz" );
    4126         cc_reg_TM.Add( "04", "Lebap" );
    4127         cc_reg_TM.Add( "05", "Mary" );
    4128         GEOIP_REGION_NAME.Add( "TM", cc_reg_TM );
    4129         Hashtable cc_reg_TN = new Hashtable();
    4130         cc_reg_TN.Add( "02", "Kasserine" );
    4131         cc_reg_TN.Add( "03", "Kairouan" );
    4132         cc_reg_TN.Add( "06", "Jendouba" );
    4133         cc_reg_TN.Add( "14", "El Kef" );
    4134         cc_reg_TN.Add( "15", "Al Mahdia" );
    4135         cc_reg_TN.Add( "16", "Al Munastir" );
    4136         cc_reg_TN.Add( "17", "Bajah" );
    4137         cc_reg_TN.Add( "18", "Bizerte" );
    4138         cc_reg_TN.Add( "19", "Nabeul" );
    4139         cc_reg_TN.Add( "22", "Siliana" );
    4140         cc_reg_TN.Add( "23", "Sousse" );
    4141         cc_reg_TN.Add( "26", "Ariana" );
    4142         cc_reg_TN.Add( "27", "Ben Arous" );
    4143         cc_reg_TN.Add( "28", "Madanin" );
    4144         cc_reg_TN.Add( "29", "Gabes" );
    4145         cc_reg_TN.Add( "30", "Gafsa" );
    4146         cc_reg_TN.Add( "31", "Kebili" );
    4147         cc_reg_TN.Add( "32", "Sfax" );
    4148         cc_reg_TN.Add( "33", "Sidi Bou Zid" );
    4149         cc_reg_TN.Add( "34", "Tataouine" );
    4150         cc_reg_TN.Add( "35", "Tozeur" );
    4151         cc_reg_TN.Add( "36", "Tunis" );
    4152         cc_reg_TN.Add( "37", "Zaghouan" );
    4153         GEOIP_REGION_NAME.Add( "TN", cc_reg_TN );
    4154         Hashtable cc_reg_TO = new Hashtable();
    4155         cc_reg_TO.Add( "01", "Ha" );
    4156         cc_reg_TO.Add( "02", "Tongatapu" );
    4157         cc_reg_TO.Add( "03", "Vava" );
    4158         GEOIP_REGION_NAME.Add( "TO", cc_reg_TO );
    4159         Hashtable cc_reg_TR = new Hashtable();
    4160         cc_reg_TR.Add( "02", "Adiyaman" );
    4161         cc_reg_TR.Add( "03", "Afyonkarahisar" );
    4162         cc_reg_TR.Add( "04", "Agri" );
    4163         cc_reg_TR.Add( "05", "Amasya" );
    4164         cc_reg_TR.Add( "07", "Antalya" );
    4165         cc_reg_TR.Add( "08", "Artvin" );
    4166         cc_reg_TR.Add( "09", "Aydin" );
    4167         cc_reg_TR.Add( "10", "Balikesir" );
    4168         cc_reg_TR.Add( "11", "Bilecik" );
    4169         cc_reg_TR.Add( "12", "Bingol" );
    4170         cc_reg_TR.Add( "13", "Bitlis" );
    4171         cc_reg_TR.Add( "14", "Bolu" );
    4172         cc_reg_TR.Add( "15", "Burdur" );
    4173         cc_reg_TR.Add( "16", "Bursa" );
    4174         cc_reg_TR.Add( "17", "Canakkale" );
    4175         cc_reg_TR.Add( "19", "Corum" );
    4176         cc_reg_TR.Add( "20", "Denizli" );
    4177         cc_reg_TR.Add( "21", "Diyarbakir" );
    4178         cc_reg_TR.Add( "22", "Edirne" );
    4179         cc_reg_TR.Add( "23", "Elazig" );
    4180         cc_reg_TR.Add( "24", "Erzincan" );
    4181         cc_reg_TR.Add( "25", "Erzurum" );
    4182         cc_reg_TR.Add( "26", "Eskisehir" );
    4183         cc_reg_TR.Add( "28", "Giresun" );
    4184         cc_reg_TR.Add( "31", "Hatay" );
    4185         cc_reg_TR.Add( "32", "Icel" );
    4186         cc_reg_TR.Add( "33", "Isparta" );
    4187         cc_reg_TR.Add( "34", "Istanbul" );
    4188         cc_reg_TR.Add( "35", "Izmir" );
    4189         cc_reg_TR.Add( "37", "Kastamonu" );
    4190         cc_reg_TR.Add( "38", "Kayseri" );
    4191         cc_reg_TR.Add( "39", "Kirklareli" );
    4192         cc_reg_TR.Add( "40", "Kirsehir" );
    4193         cc_reg_TR.Add( "41", "Kocaeli" );
    4194         cc_reg_TR.Add( "43", "Kutahya" );
    4195         cc_reg_TR.Add( "44", "Malatya" );
    4196         cc_reg_TR.Add( "45", "Manisa" );
    4197         cc_reg_TR.Add( "46", "Kahramanmaras" );
    4198         cc_reg_TR.Add( "48", "Mugla" );
    4199         cc_reg_TR.Add( "49", "Mus" );
    4200         cc_reg_TR.Add( "50", "Nevsehir" );
    4201         cc_reg_TR.Add( "52", "Ordu" );
    4202         cc_reg_TR.Add( "53", "Rize" );
    4203         cc_reg_TR.Add( "54", "Sakarya" );
    4204         cc_reg_TR.Add( "55", "Samsun" );
    4205         cc_reg_TR.Add( "57", "Sinop" );
    4206         cc_reg_TR.Add( "58", "Sivas" );
    4207         cc_reg_TR.Add( "59", "Tekirdag" );
    4208         cc_reg_TR.Add( "60", "Tokat" );
    4209         cc_reg_TR.Add( "61", "Trabzon" );
    4210         cc_reg_TR.Add( "62", "Tunceli" );
    4211         cc_reg_TR.Add( "63", "Sanliurfa" );
    4212         cc_reg_TR.Add( "64", "Usak" );
    4213         cc_reg_TR.Add( "65", "Van" );
    4214         cc_reg_TR.Add( "66", "Yozgat" );
    4215         cc_reg_TR.Add( "68", "Ankara" );
    4216         cc_reg_TR.Add( "69", "Gumushane" );
    4217         cc_reg_TR.Add( "70", "Hakkari" );
    4218         cc_reg_TR.Add( "71", "Konya" );
    4219         cc_reg_TR.Add( "72", "Mardin" );
    4220         cc_reg_TR.Add( "73", "Nigde" );
    4221         cc_reg_TR.Add( "74", "Siirt" );
    4222         cc_reg_TR.Add( "75", "Aksaray" );
    4223         cc_reg_TR.Add( "76", "Batman" );
    4224         cc_reg_TR.Add( "77", "Bayburt" );
    4225         cc_reg_TR.Add( "78", "Karaman" );
    4226         cc_reg_TR.Add( "79", "Kirikkale" );
    4227         cc_reg_TR.Add( "80", "Sirnak" );
    4228         cc_reg_TR.Add( "81", "Adana" );
    4229         cc_reg_TR.Add( "82", "Cankiri" );
    4230         cc_reg_TR.Add( "83", "Gaziantep" );
    4231         cc_reg_TR.Add( "84", "Kars" );
    4232         cc_reg_TR.Add( "85", "Zonguldak" );
    4233         cc_reg_TR.Add( "86", "Ardahan" );
    4234         cc_reg_TR.Add( "87", "Bartin" );
    4235         cc_reg_TR.Add( "88", "Igdir" );
    4236         cc_reg_TR.Add( "89", "Karabuk" );
    4237         cc_reg_TR.Add( "90", "Kilis" );
    4238         cc_reg_TR.Add( "91", "Osmaniye" );
    4239         cc_reg_TR.Add( "92", "Yalova" );
    4240         cc_reg_TR.Add( "93", "Duzce" );
    4241         GEOIP_REGION_NAME.Add( "TR", cc_reg_TR );
    4242         Hashtable cc_reg_TT = new Hashtable();
    4243         cc_reg_TT.Add( "01", "Arima" );
    4244         cc_reg_TT.Add( "02", "Caroni" );
    4245         cc_reg_TT.Add( "03", "Mayaro" );
    4246         cc_reg_TT.Add( "04", "Nariva" );
    4247         cc_reg_TT.Add( "05", "Port-of-Spain" );
    4248         cc_reg_TT.Add( "06", "Saint Andrew" );
    4249         cc_reg_TT.Add( "07", "Saint David" );
    4250         cc_reg_TT.Add( "08", "Saint George" );
    4251         cc_reg_TT.Add( "09", "Saint Patrick" );
    4252         cc_reg_TT.Add( "10", "San Fernando" );
    4253         cc_reg_TT.Add( "11", "Tobago" );
    4254         cc_reg_TT.Add( "12", "Victoria" );
    4255         GEOIP_REGION_NAME.Add( "TT", cc_reg_TT );
    4256         Hashtable cc_reg_TW = new Hashtable();
    4257         cc_reg_TW.Add( "01", "Fu-chien" );
    4258         cc_reg_TW.Add( "02", "Kao-hsiung" );
    4259         cc_reg_TW.Add( "03", "T'ai-pei" );
    4260         cc_reg_TW.Add( "04", "T'ai-wan" );
    4261         GEOIP_REGION_NAME.Add( "TW", cc_reg_TW );
    4262         Hashtable cc_reg_TZ = new Hashtable();
    4263         cc_reg_TZ.Add( "02", "Pwani" );
    4264         cc_reg_TZ.Add( "03", "Dodoma" );
    4265         cc_reg_TZ.Add( "04", "Iringa" );
    4266         cc_reg_TZ.Add( "05", "Kigoma" );
    4267         cc_reg_TZ.Add( "06", "Kilimanjaro" );
    4268         cc_reg_TZ.Add( "07", "Lindi" );
    4269         cc_reg_TZ.Add( "08", "Mara" );
    4270         cc_reg_TZ.Add( "09", "Mbeya" );
    4271         cc_reg_TZ.Add( "10", "Morogoro" );
    4272         cc_reg_TZ.Add( "11", "Mtwara" );
    4273         cc_reg_TZ.Add( "12", "Mwanza" );
    4274         cc_reg_TZ.Add( "13", "Pemba North" );
    4275         cc_reg_TZ.Add( "14", "Ruvuma" );
    4276         cc_reg_TZ.Add( "15", "Shinyanga" );
    4277         cc_reg_TZ.Add( "16", "Singida" );
    4278         cc_reg_TZ.Add( "17", "Tabora" );
    4279         cc_reg_TZ.Add( "18", "Tanga" );
    4280         cc_reg_TZ.Add( "19", "Kagera" );
    4281         cc_reg_TZ.Add( "20", "Pemba South" );
    4282         cc_reg_TZ.Add( "21", "Zanzibar Central" );
    4283         cc_reg_TZ.Add( "22", "Zanzibar North" );
    4284         cc_reg_TZ.Add( "23", "Dar es Salaam" );
    4285         cc_reg_TZ.Add( "24", "Rukwa" );
    4286         cc_reg_TZ.Add( "25", "Zanzibar Urban" );
    4287         cc_reg_TZ.Add( "26", "Arusha" );
    4288         cc_reg_TZ.Add( "27", "Manyara" );
    4289         GEOIP_REGION_NAME.Add( "TZ", cc_reg_TZ );
    4290         Hashtable cc_reg_UA = new Hashtable();
    4291         cc_reg_UA.Add( "01", "Cherkas'ka Oblast'" );
    4292         cc_reg_UA.Add( "02", "Chernihivs'ka Oblast'" );
    4293         cc_reg_UA.Add( "03", "Chernivets'ka Oblast'" );
    4294         cc_reg_UA.Add( "04", "Dnipropetrovs'ka Oblast'" );
    4295         cc_reg_UA.Add( "05", "Donets'ka Oblast'" );
    4296         cc_reg_UA.Add( "06", "Ivano-Frankivs'ka Oblast'" );
    4297         cc_reg_UA.Add( "07", "Kharkivs'ka Oblast'" );
    4298         cc_reg_UA.Add( "08", "Khersons'ka Oblast'" );
    4299         cc_reg_UA.Add( "09", "Khmel'nyts'ka Oblast'" );
    4300         cc_reg_UA.Add( "10", "Kirovohrads'ka Oblast'" );
    4301         cc_reg_UA.Add( "11", "Krym" );
    4302         cc_reg_UA.Add( "12", "Kyyiv" );
    4303         cc_reg_UA.Add( "13", "Kyyivs'ka Oblast'" );
    4304         cc_reg_UA.Add( "14", "Luhans'ka Oblast'" );
    4305         cc_reg_UA.Add( "15", "L'vivs'ka Oblast'" );
    4306         cc_reg_UA.Add( "16", "Mykolayivs'ka Oblast'" );
    4307         cc_reg_UA.Add( "17", "Odes'ka Oblast'" );
    4308         cc_reg_UA.Add( "18", "Poltavs'ka Oblast'" );
    4309         cc_reg_UA.Add( "19", "Rivnens'ka Oblast'" );
    4310         cc_reg_UA.Add( "20", "Sevastopol'" );
    4311         cc_reg_UA.Add( "21", "Sums'ka Oblast'" );
    4312         cc_reg_UA.Add( "22", "Ternopil's'ka Oblast'" );
    4313         cc_reg_UA.Add( "23", "Vinnyts'ka Oblast'" );
    4314         cc_reg_UA.Add( "24", "Volyns'ka Oblast'" );
    4315         cc_reg_UA.Add( "25", "Zakarpats'ka Oblast'" );
    4316         cc_reg_UA.Add( "26", "Zaporiz'ka Oblast'" );
    4317         cc_reg_UA.Add( "27", "Zhytomyrs'ka Oblast'" );
    4318         GEOIP_REGION_NAME.Add( "UA", cc_reg_UA );
    4319         Hashtable cc_reg_UG = new Hashtable();
    4320         cc_reg_UG.Add( "05", "Busoga" );
    4321         cc_reg_UG.Add( "08", "Karamoja" );
    4322         cc_reg_UG.Add( "12", "South Buganda" );
    4323         cc_reg_UG.Add( "18", "Central" );
    4324         cc_reg_UG.Add( "20", "Eastern" );
    4325         cc_reg_UG.Add( "21", "Nile" );
    4326         cc_reg_UG.Add( "22", "North Buganda" );
    4327         cc_reg_UG.Add( "23", "Northern" );
    4328         cc_reg_UG.Add( "24", "Southern" );
    4329         cc_reg_UG.Add( "25", "Western" );
    4330         cc_reg_UG.Add( "33", "Jinja" );
    4331         cc_reg_UG.Add( "36", "Kalangala" );
    4332         cc_reg_UG.Add( "37", "Kampala" );
    4333         cc_reg_UG.Add( "42", "Kiboga" );
    4334         cc_reg_UG.Add( "52", "Mbarara" );
    4335         cc_reg_UG.Add( "56", "Mubende" );
    4336         cc_reg_UG.Add( "65", "Adjumani" );
    4337         cc_reg_UG.Add( "66", "Bugiri" );
    4338         cc_reg_UG.Add( "67", "Busia" );
    4339         cc_reg_UG.Add( "69", "Katakwi" );
    4340         cc_reg_UG.Add( "71", "Masaka" );
    4341         cc_reg_UG.Add( "73", "Nakasongola" );
    4342         cc_reg_UG.Add( "74", "Sembabule" );
    4343         cc_reg_UG.Add( "77", "Arua" );
    4344         cc_reg_UG.Add( "78", "Iganga" );
    4345         cc_reg_UG.Add( "79", "Kabarole" );
    4346         cc_reg_UG.Add( "80", "Kaberamaido" );
    4347         cc_reg_UG.Add( "81", "Kamwenge" );
    4348         cc_reg_UG.Add( "82", "Kanungu" );
    4349         cc_reg_UG.Add( "83", "Kayunga" );
    4350         cc_reg_UG.Add( "84", "Kitgum" );
    4351         cc_reg_UG.Add( "85", "Kyenjojo" );
    4352         cc_reg_UG.Add( "86", "Mayuge" );
    4353         cc_reg_UG.Add( "87", "Mbale" );
    4354         cc_reg_UG.Add( "88", "Moroto" );
    4355         cc_reg_UG.Add( "89", "Mpigi" );
    4356         cc_reg_UG.Add( "90", "Mukono" );
    4357         cc_reg_UG.Add( "91", "Nakapiripirit" );
    4358         cc_reg_UG.Add( "92", "Pader" );
    4359         cc_reg_UG.Add( "93", "Rukungiri" );
    4360         cc_reg_UG.Add( "94", "Sironko" );
    4361         cc_reg_UG.Add( "95", "Soroti" );
    4362         cc_reg_UG.Add( "96", "Wakiso" );
    4363         cc_reg_UG.Add( "97", "Yumbe" );
    4364         GEOIP_REGION_NAME.Add( "UG", cc_reg_UG );
    4365         Hashtable cc_reg_US = new Hashtable();
    4366         cc_reg_US.Add( "AA", "Armed Forces Americas" );
    4367         cc_reg_US.Add( "AE", "Armed Forces Europe, Middle East, & Canada" );
    4368         cc_reg_US.Add( "AK", "Alaska" );
    4369         cc_reg_US.Add( "AL", "Alabama" );
    4370         cc_reg_US.Add( "AP", "Armed Forces Pacific" );
    4371         cc_reg_US.Add( "AR", "Arkansas" );
    4372         cc_reg_US.Add( "AS", "American Samoa" );
    4373         cc_reg_US.Add( "AZ", "Arizona" );
    4374         cc_reg_US.Add( "CA", "California" );
    4375         cc_reg_US.Add( "CO", "Colorado" );
    4376         cc_reg_US.Add( "CT", "Connecticut" );
    4377         cc_reg_US.Add( "DC", "District of Columbia" );
    4378         cc_reg_US.Add( "DE", "Delaware" );
    4379         cc_reg_US.Add( "FL", "Florida" );
    4380         cc_reg_US.Add( "FM", "Federated States of Micronesia" );
    4381         cc_reg_US.Add( "GA", "Georgia" );
    4382         cc_reg_US.Add( "GU", "Guam" );
    4383         cc_reg_US.Add( "HI", "Hawaii" );
    4384         cc_reg_US.Add( "IA", "Iowa" );
    4385         cc_reg_US.Add( "ID", "Idaho" );
    4386         cc_reg_US.Add( "IL", "Illinois" );
    4387         cc_reg_US.Add( "IN", "Indiana" );
    4388         cc_reg_US.Add( "KS", "Kansas" );
    4389         cc_reg_US.Add( "KY", "Kentucky" );
    4390         cc_reg_US.Add( "LA", "Louisiana" );
    4391         cc_reg_US.Add( "MA", "Massachusetts" );
    4392         cc_reg_US.Add( "MD", "Maryland" );
    4393         cc_reg_US.Add( "ME", "Maine" );
    4394         cc_reg_US.Add( "MH", "Marshall Islands" );
    4395         cc_reg_US.Add( "MI", "Michigan" );
    4396         cc_reg_US.Add( "MN", "Minnesota" );
    4397         cc_reg_US.Add( "MO", "Missouri" );
    4398         cc_reg_US.Add( "MP", "Northern Mariana Islands" );
    4399         cc_reg_US.Add( "MS", "Mississippi" );
    4400         cc_reg_US.Add( "MT", "Montana" );
    4401         cc_reg_US.Add( "NC", "North Carolina" );
    4402         cc_reg_US.Add( "ND", "North Dakota" );
    4403         cc_reg_US.Add( "NE", "Nebraska" );
    4404         cc_reg_US.Add( "NH", "New Hampshire" );
    4405         cc_reg_US.Add( "NJ", "New Jersey" );
    4406         cc_reg_US.Add( "NM", "New Mexico" );
    4407         cc_reg_US.Add( "NV", "Nevada" );
    4408         cc_reg_US.Add( "NY", "New York" );
    4409         cc_reg_US.Add( "OH", "Ohio" );
    4410         cc_reg_US.Add( "OK", "Oklahoma" );
    4411         cc_reg_US.Add( "OR", "Oregon" );
    4412         cc_reg_US.Add( "PA", "Pennsylvania" );
    4413         cc_reg_US.Add( "PR", "Puerto Rico" );
    4414         cc_reg_US.Add( "PW", "Palau" );
    4415         cc_reg_US.Add( "RI", "Rhode Island" );
    4416         cc_reg_US.Add( "SC", "South Carolina" );
    4417         cc_reg_US.Add( "SD", "South Dakota" );
    4418         cc_reg_US.Add( "TN", "Tennessee" );
    4419         cc_reg_US.Add( "TX", "Texas" );
    4420         cc_reg_US.Add( "UT", "Utah" );
    4421         cc_reg_US.Add( "VA", "Virginia" );
    4422         cc_reg_US.Add( "VI", "Virgin Islands" );
    4423         cc_reg_US.Add( "VT", "Vermont" );
    4424         cc_reg_US.Add( "WA", "Washington" );
    4425         cc_reg_US.Add( "WI", "Wisconsin" );
    4426         cc_reg_US.Add( "WV", "West Virginia" );
    4427         cc_reg_US.Add( "WY", "Wyoming" );
    4428         GEOIP_REGION_NAME.Add( "US", cc_reg_US );
    4429         Hashtable cc_reg_UY = new Hashtable();
    4430         cc_reg_UY.Add( "01", "Artigas" );
    4431         cc_reg_UY.Add( "02", "Canelones" );
    4432         cc_reg_UY.Add( "03", "Cerro Largo" );
    4433         cc_reg_UY.Add( "04", "Colonia" );
    4434         cc_reg_UY.Add( "05", "Durazno" );
    4435         cc_reg_UY.Add( "06", "Flores" );
    4436         cc_reg_UY.Add( "07", "Florida" );
    4437         cc_reg_UY.Add( "08", "Lavalleja" );
    4438         cc_reg_UY.Add( "09", "Maldonado" );
    4439         cc_reg_UY.Add( "10", "Montevideo" );
    4440         cc_reg_UY.Add( "11", "Paysandu" );
    4441         cc_reg_UY.Add( "12", "Rio Negro" );
    4442         cc_reg_UY.Add( "13", "Rivera" );
    4443         cc_reg_UY.Add( "14", "Rocha" );
    4444         cc_reg_UY.Add( "15", "Salto" );
    4445         cc_reg_UY.Add( "16", "San Jose" );
    4446         cc_reg_UY.Add( "17", "Soriano" );
    4447         cc_reg_UY.Add( "18", "Tacuarembo" );
    4448         cc_reg_UY.Add( "19", "Treinta y Tres" );
    4449         GEOIP_REGION_NAME.Add( "UY", cc_reg_UY );
    4450         Hashtable cc_reg_UZ = new Hashtable();
    4451         cc_reg_UZ.Add( "01", "Andijon" );
    4452         cc_reg_UZ.Add( "02", "Bukhoro" );
    4453         cc_reg_UZ.Add( "03", "Farghona" );
    4454         cc_reg_UZ.Add( "04", "Jizzakh" );
    4455         cc_reg_UZ.Add( "05", "Khorazm" );
    4456         cc_reg_UZ.Add( "06", "Namangan" );
    4457         cc_reg_UZ.Add( "07", "Nawoiy" );
    4458         cc_reg_UZ.Add( "08", "Qashqadaryo" );
    4459         cc_reg_UZ.Add( "09", "Qoraqalpoghiston" );
    4460         cc_reg_UZ.Add( "10", "Samarqand" );
    4461         cc_reg_UZ.Add( "11", "Sirdaryo" );
    4462         cc_reg_UZ.Add( "12", "Surkhondaryo" );
    4463         cc_reg_UZ.Add( "13", "Toshkent" );
    4464         cc_reg_UZ.Add( "14", "Toshkent" );
    4465         GEOIP_REGION_NAME.Add( "UZ", cc_reg_UZ );
    4466         Hashtable cc_reg_VC = new Hashtable();
    4467         cc_reg_VC.Add( "01", "Charlotte" );
    4468         cc_reg_VC.Add( "02", "Saint Andrew" );
    4469         cc_reg_VC.Add( "03", "Saint David" );
    4470         cc_reg_VC.Add( "04", "Saint George" );
    4471         cc_reg_VC.Add( "05", "Saint Patrick" );
    4472         cc_reg_VC.Add( "06", "Grenadines" );
    4473         GEOIP_REGION_NAME.Add( "VC", cc_reg_VC );
    4474         Hashtable cc_reg_VE = new Hashtable();
    4475         cc_reg_VE.Add( "01", "Amazonas" );
    4476         cc_reg_VE.Add( "02", "Anzoategui" );
    4477         cc_reg_VE.Add( "03", "Apure" );
    4478         cc_reg_VE.Add( "04", "Aragua" );
    4479         cc_reg_VE.Add( "05", "Barinas" );
    4480         cc_reg_VE.Add( "06", "Bolivar" );
    4481         cc_reg_VE.Add( "07", "Carabobo" );
    4482         cc_reg_VE.Add( "08", "Cojedes" );
    4483         cc_reg_VE.Add( "09", "Delta Amacuro" );
    4484         cc_reg_VE.Add( "11", "Falcon" );
    4485         cc_reg_VE.Add( "12", "Guarico" );
    4486         cc_reg_VE.Add( "13", "Lara" );
    4487         cc_reg_VE.Add( "14", "Merida" );
    4488         cc_reg_VE.Add( "15", "Miranda" );
    4489         cc_reg_VE.Add( "16", "Monagas" );
    4490         cc_reg_VE.Add( "17", "Nueva Esparta" );
    4491         cc_reg_VE.Add( "18", "Portuguesa" );
    4492         cc_reg_VE.Add( "19", "Sucre" );
    4493         cc_reg_VE.Add( "20", "Tachira" );
    4494         cc_reg_VE.Add( "21", "Trujillo" );
    4495         cc_reg_VE.Add( "22", "Yaracuy" );
    4496         cc_reg_VE.Add( "23", "Zulia" );
    4497         cc_reg_VE.Add( "24", "Dependencias Federales" );
    4498         cc_reg_VE.Add( "25", "Distrito Federal" );
    4499         cc_reg_VE.Add( "26", "Vargas" );
    4500         GEOIP_REGION_NAME.Add( "VE", cc_reg_VE );
    4501         Hashtable cc_reg_VN = new Hashtable();
    4502         cc_reg_VN.Add( "01", "An Giang" );
    4503         cc_reg_VN.Add( "02", "Bac Thai" );
    4504         cc_reg_VN.Add( "03", "Ben Tre" );
    4505         cc_reg_VN.Add( "04", "Binh Tri Thien" );
    4506         cc_reg_VN.Add( "05", "Cao Bang" );
    4507         cc_reg_VN.Add( "06", "Cuu Long" );
    4508         cc_reg_VN.Add( "07", "Dac Lac" );
    4509         cc_reg_VN.Add( "09", "Dong Thap" );
    4510         cc_reg_VN.Add( "11", "Ha Bac" );
    4511         cc_reg_VN.Add( "12", "Hai Hung" );
    4512         cc_reg_VN.Add( "13", "Hai Phong" );
    4513         cc_reg_VN.Add( "14", "Ha Nam Ninh" );
    4514         cc_reg_VN.Add( "15", "Ha Noi" );
    4515         cc_reg_VN.Add( "16", "Ha Son Binh" );
    4516         cc_reg_VN.Add( "17", "Ha Tuyen" );
    4517         cc_reg_VN.Add( "19", "Hoang Lien Son" );
    4518         cc_reg_VN.Add( "20", "Ho Chi Minh" );
    4519         cc_reg_VN.Add( "21", "Kien Giang" );
    4520         cc_reg_VN.Add( "22", "Lai Chau" );
    4521         cc_reg_VN.Add( "23", "Lam Dong" );
    4522         cc_reg_VN.Add( "24", "Long An" );
    4523         cc_reg_VN.Add( "25", "Minh Hai" );
    4524         cc_reg_VN.Add( "26", "Nghe Tinh" );
    4525         cc_reg_VN.Add( "27", "Nghia Binh" );
    4526         cc_reg_VN.Add( "28", "Phu Khanh" );
    4527         cc_reg_VN.Add( "29", "Quang Nam-Da Nang" );
    4528         cc_reg_VN.Add( "30", "Quang Ninh" );
    4529         cc_reg_VN.Add( "31", "Song Be" );
    4530         cc_reg_VN.Add( "32", "Son La" );
    4531         cc_reg_VN.Add( "33", "Tay Ninh" );
    4532         cc_reg_VN.Add( "34", "Thanh Hoa" );
    4533         cc_reg_VN.Add( "35", "Thai Binh" );
    4534         cc_reg_VN.Add( "36", "Thuan Hai" );
    4535         cc_reg_VN.Add( "37", "Tien Giang" );
    4536         cc_reg_VN.Add( "38", "Vinh Phu" );
    4537         cc_reg_VN.Add( "39", "Lang Son" );
    4538         cc_reg_VN.Add( "40", "Dong Nai" );
    4539         cc_reg_VN.Add( "43", "An Giang" );
    4540         cc_reg_VN.Add( "44", "Dac Lac" );
    4541         cc_reg_VN.Add( "45", "Dong Nai" );
    4542         cc_reg_VN.Add( "46", "Dong Thap" );
    4543         cc_reg_VN.Add( "47", "Kien Giang" );
    4544         cc_reg_VN.Add( "48", "Minh Hai" );
    4545         cc_reg_VN.Add( "49", "Song Be" );
    4546         cc_reg_VN.Add( "50", "Vinh Phu" );
    4547         cc_reg_VN.Add( "51", "Ha Noi" );
    4548         cc_reg_VN.Add( "52", "Ho Chi Minh" );
    4549         cc_reg_VN.Add( "53", "Ba Ria-Vung Tau" );
    4550         cc_reg_VN.Add( "54", "Binh Dinh" );
    4551         cc_reg_VN.Add( "55", "Binh Thuan" );
    4552         cc_reg_VN.Add( "56", "Can Tho" );
    4553         cc_reg_VN.Add( "57", "Gia Lai" );
    4554         cc_reg_VN.Add( "58", "Ha Giang" );
    4555         cc_reg_VN.Add( "59", "Ha Tay" );
    4556         cc_reg_VN.Add( "60", "Ha Tinh" );
    4557         cc_reg_VN.Add( "61", "Hoa Binh" );
    4558         cc_reg_VN.Add( "62", "Khanh Hoa" );
    4559         cc_reg_VN.Add( "63", "Kon Tum" );
    4560         cc_reg_VN.Add( "64", "Quang Tri" );
    4561         cc_reg_VN.Add( "65", "Nam Ha" );
    4562         cc_reg_VN.Add( "66", "Nghe An" );
    4563         cc_reg_VN.Add( "67", "Ninh Binh" );
    4564         cc_reg_VN.Add( "68", "Ninh Thuan" );
    4565         cc_reg_VN.Add( "69", "Phu Yen" );
    4566         cc_reg_VN.Add( "70", "Quang Binh" );
    4567         cc_reg_VN.Add( "71", "Quang Ngai" );
    4568         cc_reg_VN.Add( "72", "Quang Tri" );
    4569         cc_reg_VN.Add( "73", "Soc Trang" );
    4570         cc_reg_VN.Add( "74", "Thua Thien" );
    4571         cc_reg_VN.Add( "75", "Tra Vinh" );
    4572         cc_reg_VN.Add( "76", "Tuyen Quang" );
    4573         cc_reg_VN.Add( "77", "Vinh Long" );
    4574         cc_reg_VN.Add( "78", "Da Nang" );
    4575         cc_reg_VN.Add( "79", "Hai Duong" );
    4576         cc_reg_VN.Add( "80", "Ha Nam" );
    4577         cc_reg_VN.Add( "81", "Hung Yen" );
    4578         cc_reg_VN.Add( "82", "Nam Dinh" );
    4579         cc_reg_VN.Add( "83", "Phu Tho" );
    4580         cc_reg_VN.Add( "84", "Quang Nam" );
    4581         cc_reg_VN.Add( "85", "Thai Nguyen" );
    4582         cc_reg_VN.Add( "86", "Vinh Puc Province" );
    4583         cc_reg_VN.Add( "87", "Can Tho" );
    4584         cc_reg_VN.Add( "88", "Dak Lak" );
    4585         cc_reg_VN.Add( "89", "Lai Chau" );
    4586         cc_reg_VN.Add( "90", "Lao Cai" );
    4587         cc_reg_VN.Add( "91", "Dak Nong" );
    4588         cc_reg_VN.Add( "92", "Dien Bien" );
    4589         cc_reg_VN.Add( "93", "Hau Giang" );
    4590         GEOIP_REGION_NAME.Add( "VN", cc_reg_VN );
    4591         Hashtable cc_reg_VU = new Hashtable();
    4592         cc_reg_VU.Add( "05", "Ambrym" );
    4593         cc_reg_VU.Add( "06", "Aoba" );
    4594         cc_reg_VU.Add( "07", "Torba" );
    4595         cc_reg_VU.Add( "08", "Efate" );
    4596         cc_reg_VU.Add( "09", "Epi" );
    4597         cc_reg_VU.Add( "10", "Malakula" );
    4598         cc_reg_VU.Add( "11", "Paama" );
    4599         cc_reg_VU.Add( "12", "Pentecote" );
    4600         cc_reg_VU.Add( "13", "Sanma" );
    4601         cc_reg_VU.Add( "14", "Shepherd" );
    4602         cc_reg_VU.Add( "15", "Tafea" );
    4603         cc_reg_VU.Add( "16", "Malampa" );
    4604         cc_reg_VU.Add( "17", "Penama" );
    4605         cc_reg_VU.Add( "18", "Shefa" );
    4606         GEOIP_REGION_NAME.Add( "VU", cc_reg_VU );
    4607         Hashtable cc_reg_WS = new Hashtable();
    4608         cc_reg_WS.Add( "02", "Aiga-i-le-Tai" );
    4609         cc_reg_WS.Add( "03", "Atua" );
    4610         cc_reg_WS.Add( "04", "Fa" );
    4611         cc_reg_WS.Add( "05", "Gaga" );
    4612         cc_reg_WS.Add( "06", "Va" );
    4613         cc_reg_WS.Add( "07", "Gagaifomauga" );
    4614         cc_reg_WS.Add( "08", "Palauli" );
    4615         cc_reg_WS.Add( "09", "Satupa" );
    4616         cc_reg_WS.Add( "10", "Tuamasaga" );
    4617         cc_reg_WS.Add( "11", "Vaisigano" );
    4618         GEOIP_REGION_NAME.Add( "WS", cc_reg_WS );
    4619         Hashtable cc_reg_YE = new Hashtable();
    4620         cc_reg_YE.Add( "01", "Abyan" );
    4621         cc_reg_YE.Add( "02", "Adan" );
    4622         cc_reg_YE.Add( "03", "Al Mahrah" );
    4623         cc_reg_YE.Add( "04", "Hadramawt" );
    4624         cc_reg_YE.Add( "05", "Shabwah" );
    4625         cc_reg_YE.Add( "06", "Al Ghaydah" );
    4626         cc_reg_YE.Add( "08", "Al Hudaydah" );
    4627         cc_reg_YE.Add( "10", "Al Mahwit" );
    4628         cc_reg_YE.Add( "11", "Dhamar" );
    4629         cc_reg_YE.Add( "14", "Ma'rib" );
    4630         cc_reg_YE.Add( "15", "Sa" );
    4631         cc_reg_YE.Add( "16", "San" );
    4632         cc_reg_YE.Add( "20", "Al Bayda'" );
    4633         cc_reg_YE.Add( "21", "Al Jawf" );
    4634         cc_reg_YE.Add( "22", "Hajjah" );
    4635         cc_reg_YE.Add( "23", "Ibb" );
    4636         cc_reg_YE.Add( "24", "Lahij" );
    4637         cc_reg_YE.Add( "25", "Ta" );
    4638         GEOIP_REGION_NAME.Add( "YE", cc_reg_YE );
    4639         Hashtable cc_reg_ZA = new Hashtable();
    4640         cc_reg_ZA.Add( "01", "North-Western Province" );
    4641         cc_reg_ZA.Add( "02", "KwaZulu-Natal" );
    4642         cc_reg_ZA.Add( "03", "Free State" );
    4643         cc_reg_ZA.Add( "05", "Eastern Cape" );
    4644         cc_reg_ZA.Add( "06", "Gauteng" );
    4645         cc_reg_ZA.Add( "07", "Mpumalanga" );
    4646         cc_reg_ZA.Add( "08", "Northern Cape" );
    4647         cc_reg_ZA.Add( "09", "Limpopo" );
    4648         cc_reg_ZA.Add( "10", "North-West" );
    4649         cc_reg_ZA.Add( "11", "Western Cape" );
    4650         GEOIP_REGION_NAME.Add( "ZA", cc_reg_ZA );
    4651         Hashtable cc_reg_ZM = new Hashtable();
    4652         cc_reg_ZM.Add( "01", "Western" );
    4653         cc_reg_ZM.Add( "02", "Central" );
    4654         cc_reg_ZM.Add( "03", "Eastern" );
    4655         cc_reg_ZM.Add( "04", "Luapula" );
    4656         cc_reg_ZM.Add( "05", "Northern" );
    4657         cc_reg_ZM.Add( "06", "North-Western" );
    4658         cc_reg_ZM.Add( "07", "Southern" );
    4659         cc_reg_ZM.Add( "08", "Copperbelt" );
    4660         cc_reg_ZM.Add( "09", "Lusaka" );
    4661         GEOIP_REGION_NAME.Add( "ZM", cc_reg_ZM );
    4662         Hashtable cc_reg_ZW = new Hashtable();
    4663         cc_reg_ZW.Add( "01", "Manicaland" );
    4664         cc_reg_ZW.Add( "02", "Midlands" );
    4665         cc_reg_ZW.Add( "03", "Mashonaland Central" );
    4666         cc_reg_ZW.Add( "04", "Mashonaland East" );
    4667         cc_reg_ZW.Add( "05", "Mashonaland West" );
    4668         cc_reg_ZW.Add( "06", "Matabeleland North" );
    4669         cc_reg_ZW.Add( "07", "Matabeleland South" );
    4670         cc_reg_ZW.Add( "08", "Masvingo" );
    4671         cc_reg_ZW.Add( "09", "Bulawayo" );
    4672         cc_reg_ZW.Add( "10", "Harare" );
    4673         GEOIP_REGION_NAME.Add( "ZW", cc_reg_ZW );
     19    if (!GEOIP_REGION_NAME.ContainsKey(ccode)) {
     20      return null;
    467421    }
     22
     23    return (String)((Hashtable)GEOIP_REGION_NAME[ccode])[region];
     24  }
     25
     26  private static void init_region_names() {
     27
     28    GEOIP_REGION_NAME = new Hashtable();
     29    Hashtable cc_reg_AD = new Hashtable();
     30    cc_reg_AD.Add("02", "Canillo");
     31    cc_reg_AD.Add("03", "Encamp");
     32    cc_reg_AD.Add("04", "La Massana");
     33    cc_reg_AD.Add("05", "Ordino");
     34    cc_reg_AD.Add("06", "Sant Julia de Loria");
     35    cc_reg_AD.Add("07", "Andorra la Vella");
     36    cc_reg_AD.Add("08", "Escaldes-Engordany");
     37    GEOIP_REGION_NAME.Add("AD", cc_reg_AD);
     38    Hashtable cc_reg_AE = new Hashtable();
     39    cc_reg_AE.Add("01", "Abu Dhabi");
     40    cc_reg_AE.Add("02", "Ajman");
     41    cc_reg_AE.Add("03", "Dubai");
     42    cc_reg_AE.Add("04", "Fujairah");
     43    cc_reg_AE.Add("05", "Ras Al Khaimah");
     44    cc_reg_AE.Add("06", "Sharjah");
     45    cc_reg_AE.Add("07", "Umm Al Quwain");
     46    GEOIP_REGION_NAME.Add("AE", cc_reg_AE);
     47    Hashtable cc_reg_AF = new Hashtable();
     48    cc_reg_AF.Add("01", "Badakhshan");
     49    cc_reg_AF.Add("02", "Badghis");
     50    cc_reg_AF.Add("03", "Baghlan");
     51    cc_reg_AF.Add("05", "Bamian");
     52    cc_reg_AF.Add("06", "Farah");
     53    cc_reg_AF.Add("07", "Faryab");
     54    cc_reg_AF.Add("08", "Ghazni");
     55    cc_reg_AF.Add("09", "Ghowr");
     56    cc_reg_AF.Add("10", "Helmand");
     57    cc_reg_AF.Add("11", "Herat");
     58    cc_reg_AF.Add("13", "Kabol");
     59    cc_reg_AF.Add("14", "Kapisa");
     60    cc_reg_AF.Add("15", "Konar");
     61    cc_reg_AF.Add("16", "Laghman");
     62    cc_reg_AF.Add("17", "Lowgar");
     63    cc_reg_AF.Add("18", "Nangarhar");
     64    cc_reg_AF.Add("19", "Nimruz");
     65    cc_reg_AF.Add("21", "Paktia");
     66    cc_reg_AF.Add("22", "Parvan");
     67    cc_reg_AF.Add("23", "Kandahar");
     68    cc_reg_AF.Add("24", "Kondoz");
     69    cc_reg_AF.Add("26", "Takhar");
     70    cc_reg_AF.Add("27", "Vardak");
     71    cc_reg_AF.Add("28", "Zabol");
     72    cc_reg_AF.Add("29", "Paktika");
     73    cc_reg_AF.Add("30", "Balkh");
     74    cc_reg_AF.Add("31", "Jowzjan");
     75    cc_reg_AF.Add("32", "Samangan");
     76    cc_reg_AF.Add("33", "Sar-e Pol");
     77    cc_reg_AF.Add("34", "Konar");
     78    cc_reg_AF.Add("35", "Laghman");
     79    cc_reg_AF.Add("36", "Paktia");
     80    cc_reg_AF.Add("37", "Khowst");
     81    cc_reg_AF.Add("38", "Nurestan");
     82    cc_reg_AF.Add("39", "Oruzgan");
     83    cc_reg_AF.Add("40", "Parvan");
     84    cc_reg_AF.Add("41", "Daykondi");
     85    cc_reg_AF.Add("42", "Panjshir");
     86    GEOIP_REGION_NAME.Add("AF", cc_reg_AF);
     87    Hashtable cc_reg_AG = new Hashtable();
     88    cc_reg_AG.Add("01", "Barbuda");
     89    cc_reg_AG.Add("03", "Saint George");
     90    cc_reg_AG.Add("04", "Saint John");
     91    cc_reg_AG.Add("05", "Saint Mary");
     92    cc_reg_AG.Add("06", "Saint Paul");
     93    cc_reg_AG.Add("07", "Saint Peter");
     94    cc_reg_AG.Add("08", "Saint Philip");
     95    GEOIP_REGION_NAME.Add("AG", cc_reg_AG);
     96    Hashtable cc_reg_AL = new Hashtable();
     97    cc_reg_AL.Add("40", "Berat");
     98    cc_reg_AL.Add("41", "Diber");
     99    cc_reg_AL.Add("42", "Durres");
     100    cc_reg_AL.Add("43", "Elbasan");
     101    cc_reg_AL.Add("44", "Fier");
     102    cc_reg_AL.Add("45", "Gjirokaster");
     103    cc_reg_AL.Add("46", "Korce");
     104    cc_reg_AL.Add("47", "Kukes");
     105    cc_reg_AL.Add("48", "Lezhe");
     106    cc_reg_AL.Add("49", "Shkoder");
     107    cc_reg_AL.Add("50", "Tirane");
     108    cc_reg_AL.Add("51", "Vlore");
     109    GEOIP_REGION_NAME.Add("AL", cc_reg_AL);
     110    Hashtable cc_reg_AM = new Hashtable();
     111    cc_reg_AM.Add("01", "Aragatsotn");
     112    cc_reg_AM.Add("02", "Ararat");
     113    cc_reg_AM.Add("03", "Armavir");
     114    cc_reg_AM.Add("04", "Geghark'unik'");
     115    cc_reg_AM.Add("05", "Kotayk'");
     116    cc_reg_AM.Add("06", "Lorri");
     117    cc_reg_AM.Add("07", "Shirak");
     118    cc_reg_AM.Add("08", "Syunik'");
     119    cc_reg_AM.Add("09", "Tavush");
     120    cc_reg_AM.Add("10", "Vayots' Dzor");
     121    cc_reg_AM.Add("11", "Yerevan");
     122    GEOIP_REGION_NAME.Add("AM", cc_reg_AM);
     123    Hashtable cc_reg_AO = new Hashtable();
     124    cc_reg_AO.Add("01", "Benguela");
     125    cc_reg_AO.Add("02", "Bie");
     126    cc_reg_AO.Add("03", "Cabinda");
     127    cc_reg_AO.Add("04", "Cuando Cubango");
     128    cc_reg_AO.Add("05", "Cuanza Norte");
     129    cc_reg_AO.Add("06", "Cuanza Sul");
     130    cc_reg_AO.Add("07", "Cunene");
     131    cc_reg_AO.Add("08", "Huambo");
     132    cc_reg_AO.Add("09", "Huila");
     133    cc_reg_AO.Add("10", "Luanda");
     134    cc_reg_AO.Add("12", "Malanje");
     135    cc_reg_AO.Add("13", "Namibe");
     136    cc_reg_AO.Add("14", "Moxico");
     137    cc_reg_AO.Add("15", "Uige");
     138    cc_reg_AO.Add("16", "Zaire");
     139    cc_reg_AO.Add("17", "Lunda Norte");
     140    cc_reg_AO.Add("18", "Lunda Sul");
     141    cc_reg_AO.Add("19", "Bengo");
     142    cc_reg_AO.Add("20", "Luanda");
     143    GEOIP_REGION_NAME.Add("AO", cc_reg_AO);
     144    Hashtable cc_reg_AR = new Hashtable();
     145    cc_reg_AR.Add("01", "Buenos Aires");
     146    cc_reg_AR.Add("02", "Catamarca");
     147    cc_reg_AR.Add("03", "Chaco");
     148    cc_reg_AR.Add("04", "Chubut");
     149    cc_reg_AR.Add("05", "Cordoba");
     150    cc_reg_AR.Add("06", "Corrientes");
     151    cc_reg_AR.Add("07", "Distrito Federal");
     152    cc_reg_AR.Add("08", "Entre Rios");
     153    cc_reg_AR.Add("09", "Formosa");
     154    cc_reg_AR.Add("10", "Jujuy");
     155    cc_reg_AR.Add("11", "La Pampa");
     156    cc_reg_AR.Add("12", "La Rioja");
     157    cc_reg_AR.Add("13", "Mendoza");
     158    cc_reg_AR.Add("14", "Misiones");
     159    cc_reg_AR.Add("15", "Neuquen");
     160    cc_reg_AR.Add("16", "Rio Negro");
     161    cc_reg_AR.Add("17", "Salta");
     162    cc_reg_AR.Add("18", "San Juan");
     163    cc_reg_AR.Add("19", "San Luis");
     164    cc_reg_AR.Add("20", "Santa Cruz");
     165    cc_reg_AR.Add("21", "Santa Fe");
     166    cc_reg_AR.Add("22", "Santiago del Estero");
     167    cc_reg_AR.Add("23", "Tierra del Fuego");
     168    cc_reg_AR.Add("24", "Tucuman");
     169    GEOIP_REGION_NAME.Add("AR", cc_reg_AR);
     170    Hashtable cc_reg_AT = new Hashtable();
     171    cc_reg_AT.Add("01", "Burgenland");
     172    cc_reg_AT.Add("02", "Karnten");
     173    cc_reg_AT.Add("03", "Niederosterreich");
     174    cc_reg_AT.Add("04", "Oberosterreich");
     175    cc_reg_AT.Add("05", "Salzburg");
     176    cc_reg_AT.Add("06", "Steiermark");
     177    cc_reg_AT.Add("07", "Tirol");
     178    cc_reg_AT.Add("08", "Vorarlberg");
     179    cc_reg_AT.Add("09", "Wien");
     180    GEOIP_REGION_NAME.Add("AT", cc_reg_AT);
     181    Hashtable cc_reg_AU = new Hashtable();
     182    cc_reg_AU.Add("01", "Australian Capital Territory");
     183    cc_reg_AU.Add("02", "New South Wales");
     184    cc_reg_AU.Add("03", "Northern Territory");
     185    cc_reg_AU.Add("04", "Queensland");
     186    cc_reg_AU.Add("05", "South Australia");
     187    cc_reg_AU.Add("06", "Tasmania");
     188    cc_reg_AU.Add("07", "Victoria");
     189    cc_reg_AU.Add("08", "Western Australia");
     190    GEOIP_REGION_NAME.Add("AU", cc_reg_AU);
     191    Hashtable cc_reg_AZ = new Hashtable();
     192    cc_reg_AZ.Add("01", "Abseron");
     193    cc_reg_AZ.Add("02", "Agcabadi");
     194    cc_reg_AZ.Add("03", "Agdam");
     195    cc_reg_AZ.Add("04", "Agdas");
     196    cc_reg_AZ.Add("05", "Agstafa");
     197    cc_reg_AZ.Add("06", "Agsu");
     198    cc_reg_AZ.Add("07", "Ali Bayramli");
     199    cc_reg_AZ.Add("08", "Astara");
     200    cc_reg_AZ.Add("09", "Baki");
     201    cc_reg_AZ.Add("10", "Balakan");
     202    cc_reg_AZ.Add("11", "Barda");
     203    cc_reg_AZ.Add("12", "Beylaqan");
     204    cc_reg_AZ.Add("13", "Bilasuvar");
     205    cc_reg_AZ.Add("14", "Cabrayil");
     206    cc_reg_AZ.Add("15", "Calilabad");
     207    cc_reg_AZ.Add("16", "Daskasan");
     208    cc_reg_AZ.Add("17", "Davaci");
     209    cc_reg_AZ.Add("18", "Fuzuli");
     210    cc_reg_AZ.Add("19", "Gadabay");
     211    cc_reg_AZ.Add("20", "Ganca");
     212    cc_reg_AZ.Add("21", "Goranboy");
     213    cc_reg_AZ.Add("22", "Goycay");
     214    cc_reg_AZ.Add("23", "Haciqabul");
     215    cc_reg_AZ.Add("24", "Imisli");
     216    cc_reg_AZ.Add("25", "Ismayilli");
     217    cc_reg_AZ.Add("26", "Kalbacar");
     218    cc_reg_AZ.Add("27", "Kurdamir");
     219    cc_reg_AZ.Add("28", "Lacin");
     220    cc_reg_AZ.Add("29", "Lankaran");
     221    cc_reg_AZ.Add("30", "Lankaran");
     222    cc_reg_AZ.Add("31", "Lerik");
     223    cc_reg_AZ.Add("32", "Masalli");
     224    cc_reg_AZ.Add("33", "Mingacevir");
     225    cc_reg_AZ.Add("34", "Naftalan");
     226    cc_reg_AZ.Add("35", "Naxcivan");
     227    cc_reg_AZ.Add("36", "Neftcala");
     228    cc_reg_AZ.Add("37", "Oguz");
     229    cc_reg_AZ.Add("38", "Qabala");
     230    cc_reg_AZ.Add("39", "Qax");
     231    cc_reg_AZ.Add("40", "Qazax");
     232    cc_reg_AZ.Add("41", "Qobustan");
     233    cc_reg_AZ.Add("42", "Quba");
     234    cc_reg_AZ.Add("43", "Qubadli");
     235    cc_reg_AZ.Add("44", "Qusar");
     236    cc_reg_AZ.Add("45", "Saatli");
     237    cc_reg_AZ.Add("46", "Sabirabad");
     238    cc_reg_AZ.Add("47", "Saki");
     239    cc_reg_AZ.Add("48", "Saki");
     240    cc_reg_AZ.Add("49", "Salyan");
     241    cc_reg_AZ.Add("50", "Samaxi");
     242    cc_reg_AZ.Add("51", "Samkir");
     243    cc_reg_AZ.Add("52", "Samux");
     244    cc_reg_AZ.Add("53", "Siyazan");
     245    cc_reg_AZ.Add("54", "Sumqayit");
     246    cc_reg_AZ.Add("55", "Susa");
     247    cc_reg_AZ.Add("56", "Susa");
     248    cc_reg_AZ.Add("57", "Tartar");
     249    cc_reg_AZ.Add("58", "Tovuz");
     250    cc_reg_AZ.Add("59", "Ucar");
     251    cc_reg_AZ.Add("60", "Xacmaz");
     252    cc_reg_AZ.Add("61", "Xankandi");
     253    cc_reg_AZ.Add("62", "Xanlar");
     254    cc_reg_AZ.Add("63", "Xizi");
     255    cc_reg_AZ.Add("64", "Xocali");
     256    cc_reg_AZ.Add("65", "Xocavand");
     257    cc_reg_AZ.Add("66", "Yardimli");
     258    cc_reg_AZ.Add("67", "Yevlax");
     259    cc_reg_AZ.Add("68", "Yevlax");
     260    cc_reg_AZ.Add("69", "Zangilan");
     261    cc_reg_AZ.Add("70", "Zaqatala");
     262    cc_reg_AZ.Add("71", "Zardab");
     263    GEOIP_REGION_NAME.Add("AZ", cc_reg_AZ);
     264    Hashtable cc_reg_BA = new Hashtable();
     265    cc_reg_BA.Add("01", "Federation of Bosnia and Herzegovina");
     266    cc_reg_BA.Add("02", "Republika Srpska");
     267    GEOIP_REGION_NAME.Add("BA", cc_reg_BA);
     268    Hashtable cc_reg_BB = new Hashtable();
     269    cc_reg_BB.Add("01", "Christ Church");
     270    cc_reg_BB.Add("02", "Saint Andrew");
     271    cc_reg_BB.Add("03", "Saint George");
     272    cc_reg_BB.Add("04", "Saint James");
     273    cc_reg_BB.Add("05", "Saint John");
     274    cc_reg_BB.Add("06", "Saint Joseph");
     275    cc_reg_BB.Add("07", "Saint Lucy");
     276    cc_reg_BB.Add("08", "Saint Michael");
     277    cc_reg_BB.Add("09", "Saint Peter");
     278    cc_reg_BB.Add("10", "Saint Philip");
     279    cc_reg_BB.Add("11", "Saint Thomas");
     280    GEOIP_REGION_NAME.Add("BB", cc_reg_BB);
     281    Hashtable cc_reg_BD = new Hashtable();
     282    cc_reg_BD.Add("01", "Barisal");
     283    cc_reg_BD.Add("04", "Bandarban");
     284    cc_reg_BD.Add("05", "Comilla");
     285    cc_reg_BD.Add("12", "Mymensingh");
     286    cc_reg_BD.Add("13", "Noakhali");
     287    cc_reg_BD.Add("15", "Patuakhali");
     288    cc_reg_BD.Add("22", "Bagerhat");
     289    cc_reg_BD.Add("23", "Bhola");
     290    cc_reg_BD.Add("24", "Bogra");
     291    cc_reg_BD.Add("25", "Barguna");
     292    cc_reg_BD.Add("26", "Brahmanbaria");
     293    cc_reg_BD.Add("27", "Chandpur");
     294    cc_reg_BD.Add("28", "Chapai Nawabganj");
     295    cc_reg_BD.Add("29", "Chattagram");
     296    cc_reg_BD.Add("30", "Chuadanga");
     297    cc_reg_BD.Add("31", "Cox's Bazar");
     298    cc_reg_BD.Add("32", "Dhaka");
     299    cc_reg_BD.Add("33", "Dinajpur");
     300    cc_reg_BD.Add("34", "Faridpur");
     301    cc_reg_BD.Add("35", "Feni");
     302    cc_reg_BD.Add("36", "Gaibandha");
     303    cc_reg_BD.Add("37", "Gazipur");
     304    cc_reg_BD.Add("38", "Gopalganj");
     305    cc_reg_BD.Add("39", "Habiganj");
     306    cc_reg_BD.Add("40", "Jaipurhat");
     307    cc_reg_BD.Add("41", "Jamalpur");
     308    cc_reg_BD.Add("42", "Jessore");
     309    cc_reg_BD.Add("43", "Jhalakati");
     310    cc_reg_BD.Add("44", "Jhenaidah");
     311    cc_reg_BD.Add("45", "Khagrachari");
     312    cc_reg_BD.Add("46", "Khulna");
     313    cc_reg_BD.Add("47", "Kishorganj");
     314    cc_reg_BD.Add("48", "Kurigram");
     315    cc_reg_BD.Add("49", "Kushtia");
     316    cc_reg_BD.Add("50", "Laksmipur");
     317    cc_reg_BD.Add("51", "Lalmonirhat");
     318    cc_reg_BD.Add("52", "Madaripur");
     319    cc_reg_BD.Add("53", "Magura");
     320    cc_reg_BD.Add("54", "Manikganj");
     321    cc_reg_BD.Add("55", "Meherpur");
     322    cc_reg_BD.Add("56", "Moulavibazar");
     323    cc_reg_BD.Add("57", "Munshiganj");
     324    cc_reg_BD.Add("58", "Naogaon");
     325    cc_reg_BD.Add("59", "Narail");
     326    cc_reg_BD.Add("60", "Narayanganj");
     327    cc_reg_BD.Add("61", "Narsingdi");
     328    cc_reg_BD.Add("62", "Nator");
     329    cc_reg_BD.Add("63", "Netrakona");
     330    cc_reg_BD.Add("64", "Nilphamari");
     331    cc_reg_BD.Add("65", "Pabna");
     332    cc_reg_BD.Add("66", "Panchagar");
     333    cc_reg_BD.Add("67", "Parbattya Chattagram");
     334    cc_reg_BD.Add("68", "Pirojpur");
     335    cc_reg_BD.Add("69", "Rajbari");
     336    cc_reg_BD.Add("70", "Rajshahi");
     337    cc_reg_BD.Add("71", "Rangpur");
     338    cc_reg_BD.Add("72", "Satkhira");
     339    cc_reg_BD.Add("73", "Shariyatpur");
     340    cc_reg_BD.Add("74", "Sherpur");
     341    cc_reg_BD.Add("75", "Sirajganj");
     342    cc_reg_BD.Add("76", "Sunamganj");
     343    cc_reg_BD.Add("77", "Sylhet");
     344    cc_reg_BD.Add("78", "Tangail");
     345    cc_reg_BD.Add("79", "Thakurgaon");
     346    cc_reg_BD.Add("81", "Dhaka");
     347    cc_reg_BD.Add("82", "Khulna");
     348    cc_reg_BD.Add("83", "Rajshahi");
     349    cc_reg_BD.Add("84", "Chittagong");
     350    cc_reg_BD.Add("85", "Barisal");
     351    cc_reg_BD.Add("86", "Sylhet");
     352    GEOIP_REGION_NAME.Add("BD", cc_reg_BD);
     353    Hashtable cc_reg_BE = new Hashtable();
     354    cc_reg_BE.Add("01", "Antwerpen");
     355    cc_reg_BE.Add("02", "Brabant");
     356    cc_reg_BE.Add("03", "Hainaut");
     357    cc_reg_BE.Add("04", "Liege");
     358    cc_reg_BE.Add("05", "Limburg");
     359    cc_reg_BE.Add("06", "Luxembourg");
     360    cc_reg_BE.Add("07", "Namur");
     361    cc_reg_BE.Add("08", "Oost-Vlaanderen");
     362    cc_reg_BE.Add("09", "West-Vlaanderen");
     363    cc_reg_BE.Add("10", "Brabant Wallon");
     364    cc_reg_BE.Add("11", "Brussels Hoofdstedelijk Gewest");
     365    cc_reg_BE.Add("12", "Vlaams-Brabant");
     366    GEOIP_REGION_NAME.Add("BE", cc_reg_BE);
     367    Hashtable cc_reg_BF = new Hashtable();
     368    cc_reg_BF.Add("15", "Bam");
     369    cc_reg_BF.Add("19", "Boulkiemde");
     370    cc_reg_BF.Add("20", "Ganzourgou");
     371    cc_reg_BF.Add("21", "Gnagna");
     372    cc_reg_BF.Add("28", "Kouritenga");
     373    cc_reg_BF.Add("33", "Oudalan");
     374    cc_reg_BF.Add("34", "Passore");
     375    cc_reg_BF.Add("36", "Sanguie");
     376    cc_reg_BF.Add("40", "Soum");
     377    cc_reg_BF.Add("42", "Tapoa");
     378    cc_reg_BF.Add("44", "Zoundweogo");
     379    cc_reg_BF.Add("45", "Bale");
     380    cc_reg_BF.Add("46", "Banwa");
     381    cc_reg_BF.Add("47", "Bazega");
     382    cc_reg_BF.Add("48", "Bougouriba");
     383    cc_reg_BF.Add("49", "Boulgou");
     384    cc_reg_BF.Add("50", "Gourma");
     385    cc_reg_BF.Add("51", "Houet");
     386    cc_reg_BF.Add("52", "Ioba");
     387    cc_reg_BF.Add("53", "Kadiogo");
     388    cc_reg_BF.Add("54", "Kenedougou");
     389    cc_reg_BF.Add("55", "Komoe");
     390    cc_reg_BF.Add("56", "Komondjari");
     391    cc_reg_BF.Add("57", "Kompienga");
     392    cc_reg_BF.Add("58", "Kossi");
     393    cc_reg_BF.Add("59", "Koulpelogo");
     394    cc_reg_BF.Add("60", "Kourweogo");
     395    cc_reg_BF.Add("61", "Leraba");
     396    cc_reg_BF.Add("62", "Loroum");
     397    cc_reg_BF.Add("63", "Mouhoun");
     398    cc_reg_BF.Add("64", "Namentenga");
     399    cc_reg_BF.Add("65", "Naouri");
     400    cc_reg_BF.Add("66", "Nayala");
     401    cc_reg_BF.Add("67", "Noumbiel");
     402    cc_reg_BF.Add("68", "Oubritenga");
     403    cc_reg_BF.Add("69", "Poni");
     404    cc_reg_BF.Add("70", "Sanmatenga");
     405    cc_reg_BF.Add("71", "Seno");
     406    cc_reg_BF.Add("72", "Sissili");
     407    cc_reg_BF.Add("73", "Sourou");
     408    cc_reg_BF.Add("74", "Tuy");
     409    cc_reg_BF.Add("75", "Yagha");
     410    cc_reg_BF.Add("76", "Yatenga");
     411    cc_reg_BF.Add("77", "Ziro");
     412    cc_reg_BF.Add("78", "Zondoma");
     413    GEOIP_REGION_NAME.Add("BF", cc_reg_BF);
     414    Hashtable cc_reg_BG = new Hashtable();
     415    cc_reg_BG.Add("33", "Mikhaylovgrad");
     416    cc_reg_BG.Add("38", "Blagoevgrad");
     417    cc_reg_BG.Add("39", "Burgas");
     418    cc_reg_BG.Add("40", "Dobrich");
     419    cc_reg_BG.Add("41", "Gabrovo");
     420    cc_reg_BG.Add("42", "Grad Sofiya");
     421    cc_reg_BG.Add("43", "Khaskovo");
     422    cc_reg_BG.Add("44", "Kurdzhali");
     423    cc_reg_BG.Add("45", "Kyustendil");
     424    cc_reg_BG.Add("46", "Lovech");
     425    cc_reg_BG.Add("47", "Montana");
     426    cc_reg_BG.Add("48", "Pazardzhik");
     427    cc_reg_BG.Add("49", "Pernik");
     428    cc_reg_BG.Add("50", "Pleven");
     429    cc_reg_BG.Add("51", "Plovdiv");
     430    cc_reg_BG.Add("52", "Razgrad");
     431    cc_reg_BG.Add("53", "Ruse");
     432    cc_reg_BG.Add("54", "Shumen");
     433    cc_reg_BG.Add("55", "Silistra");
     434    cc_reg_BG.Add("56", "Sliven");
     435    cc_reg_BG.Add("57", "Smolyan");
     436    cc_reg_BG.Add("58", "Sofiya");
     437    cc_reg_BG.Add("59", "Stara Zagora");
     438    cc_reg_BG.Add("60", "Turgovishte");
     439    cc_reg_BG.Add("61", "Varna");
     440    cc_reg_BG.Add("62", "Veliko Turnovo");
     441    cc_reg_BG.Add("63", "Vidin");
     442    cc_reg_BG.Add("64", "Vratsa");
     443    cc_reg_BG.Add("65", "Yambol");
     444    GEOIP_REGION_NAME.Add("BG", cc_reg_BG);
     445    Hashtable cc_reg_BH = new Hashtable();
     446    cc_reg_BH.Add("01", "Al Hadd");
     447    cc_reg_BH.Add("02", "Al Manamah");
     448    cc_reg_BH.Add("03", "Al Muharraq");
     449    cc_reg_BH.Add("05", "Jidd Hafs");
     450    cc_reg_BH.Add("06", "Sitrah");
     451    cc_reg_BH.Add("07", "Ar Rifa' wa al Mintaqah al Janubiyah");
     452    cc_reg_BH.Add("08", "Al Mintaqah al Gharbiyah");
     453    cc_reg_BH.Add("09", "Mintaqat Juzur Hawar");
     454    cc_reg_BH.Add("10", "Al Mintaqah ash Shamaliyah");
     455    cc_reg_BH.Add("11", "Al Mintaqah al Wusta");
     456    cc_reg_BH.Add("12", "Madinat");
     457    cc_reg_BH.Add("13", "Ar Rifa");
     458    cc_reg_BH.Add("14", "Madinat Hamad");
     459    cc_reg_BH.Add("15", "Al Muharraq");
     460    cc_reg_BH.Add("16", "Al Asimah");
     461    cc_reg_BH.Add("17", "Al Janubiyah");
     462    cc_reg_BH.Add("18", "Ash Shamaliyah");
     463    cc_reg_BH.Add("19", "Al Wusta");
     464    GEOIP_REGION_NAME.Add("BH", cc_reg_BH);
     465    Hashtable cc_reg_BI = new Hashtable();
     466    cc_reg_BI.Add("02", "Bujumbura");
     467    cc_reg_BI.Add("09", "Bubanza");
     468    cc_reg_BI.Add("10", "Bururi");
     469    cc_reg_BI.Add("11", "Cankuzo");
     470    cc_reg_BI.Add("12", "Cibitoke");
     471    cc_reg_BI.Add("13", "Gitega");
     472    cc_reg_BI.Add("14", "Karuzi");
     473    cc_reg_BI.Add("15", "Kayanza");
     474    cc_reg_BI.Add("16", "Kirundo");
     475    cc_reg_BI.Add("17", "Makamba");
     476    cc_reg_BI.Add("18", "Muyinga");
     477    cc_reg_BI.Add("19", "Ngozi");
     478    cc_reg_BI.Add("20", "Rutana");
     479    cc_reg_BI.Add("21", "Ruyigi");
     480    cc_reg_BI.Add("22", "Muramvya");
     481    cc_reg_BI.Add("23", "Mwaro");
     482    GEOIP_REGION_NAME.Add("BI", cc_reg_BI);
     483    Hashtable cc_reg_BJ = new Hashtable();
     484    cc_reg_BJ.Add("01", "Atakora");
     485    cc_reg_BJ.Add("02", "Atlantique");
     486    cc_reg_BJ.Add("03", "Borgou");
     487    cc_reg_BJ.Add("04", "Mono");
     488    cc_reg_BJ.Add("05", "Oueme");
     489    cc_reg_BJ.Add("06", "Zou");
     490    cc_reg_BJ.Add("07", "Alibori");
     491    cc_reg_BJ.Add("08", "Atakora");
     492    cc_reg_BJ.Add("09", "Atlanyique");
     493    cc_reg_BJ.Add("10", "Borgou");
     494    cc_reg_BJ.Add("11", "Collines");
     495    cc_reg_BJ.Add("12", "Kouffo");
     496    cc_reg_BJ.Add("13", "Donga");
     497    cc_reg_BJ.Add("14", "Littoral");
     498    cc_reg_BJ.Add("15", "Mono");
     499    cc_reg_BJ.Add("16", "Oueme");
     500    cc_reg_BJ.Add("17", "Plateau");
     501    cc_reg_BJ.Add("18", "Zou");
     502    GEOIP_REGION_NAME.Add("BJ", cc_reg_BJ);
     503    Hashtable cc_reg_BM = new Hashtable();
     504    cc_reg_BM.Add("01", "Devonshire");
     505    cc_reg_BM.Add("02", "Hamilton");
     506    cc_reg_BM.Add("03", "Hamilton");
     507    cc_reg_BM.Add("04", "Paget");
     508    cc_reg_BM.Add("05", "Pembroke");
     509    cc_reg_BM.Add("06", "Saint George");
     510    cc_reg_BM.Add("07", "Saint George's");
     511    cc_reg_BM.Add("08", "Sandys");
     512    cc_reg_BM.Add("09", "Smiths");
     513    cc_reg_BM.Add("10", "Southampton");
     514    cc_reg_BM.Add("11", "Warwick");
     515    GEOIP_REGION_NAME.Add("BM", cc_reg_BM);
     516    Hashtable cc_reg_BN = new Hashtable();
     517    cc_reg_BN.Add("07", "Alibori");
     518    cc_reg_BN.Add("08", "Belait");
     519    cc_reg_BN.Add("09", "Brunei and Muara");
     520    cc_reg_BN.Add("10", "Temburong");
     521    cc_reg_BN.Add("11", "Collines");
     522    cc_reg_BN.Add("12", "Kouffo");
     523    cc_reg_BN.Add("13", "Donga");
     524    cc_reg_BN.Add("14", "Littoral");
     525    cc_reg_BN.Add("15", "Tutong");
     526    cc_reg_BN.Add("16", "Oueme");
     527    cc_reg_BN.Add("17", "Plateau");
     528    cc_reg_BN.Add("18", "Zou");
     529    GEOIP_REGION_NAME.Add("BN", cc_reg_BN);
     530    Hashtable cc_reg_BO = new Hashtable();
     531    cc_reg_BO.Add("01", "Chuquisaca");
     532    cc_reg_BO.Add("02", "Cochabamba");
     533    cc_reg_BO.Add("03", "El Beni");
     534    cc_reg_BO.Add("04", "La Paz");
     535    cc_reg_BO.Add("05", "Oruro");
     536    cc_reg_BO.Add("06", "Pando");
     537    cc_reg_BO.Add("07", "Potosi");
     538    cc_reg_BO.Add("08", "Santa Cruz");
     539    cc_reg_BO.Add("09", "Tarija");
     540    GEOIP_REGION_NAME.Add("BO", cc_reg_BO);
     541    Hashtable cc_reg_BR = new Hashtable();
     542    cc_reg_BR.Add("01", "Acre");
     543    cc_reg_BR.Add("02", "Alagoas");
     544    cc_reg_BR.Add("03", "Amapa");
     545    cc_reg_BR.Add("04", "Amazonas");
     546    cc_reg_BR.Add("05", "Bahia");
     547    cc_reg_BR.Add("06", "Ceara");
     548    cc_reg_BR.Add("07", "Distrito Federal");
     549    cc_reg_BR.Add("08", "Espirito Santo");
     550    cc_reg_BR.Add("11", "Mato Grosso do Sul");
     551    cc_reg_BR.Add("13", "Maranhao");
     552    cc_reg_BR.Add("14", "Mato Grosso");
     553    cc_reg_BR.Add("15", "Minas Gerais");
     554    cc_reg_BR.Add("16", "Para");
     555    cc_reg_BR.Add("17", "Paraiba");
     556    cc_reg_BR.Add("18", "Parana");
     557    cc_reg_BR.Add("20", "Piaui");
     558    cc_reg_BR.Add("21", "Rio de Janeiro");
     559    cc_reg_BR.Add("22", "Rio Grande do Norte");
     560    cc_reg_BR.Add("23", "Rio Grande do Sul");
     561    cc_reg_BR.Add("24", "Rondonia");
     562    cc_reg_BR.Add("25", "Roraima");
     563    cc_reg_BR.Add("26", "Santa Catarina");
     564    cc_reg_BR.Add("27", "Sao Paulo");
     565    cc_reg_BR.Add("28", "Sergipe");
     566    cc_reg_BR.Add("29", "Goias");
     567    cc_reg_BR.Add("30", "Pernambuco");
     568    cc_reg_BR.Add("31", "Tocantins");
     569    GEOIP_REGION_NAME.Add("BR", cc_reg_BR);
     570    Hashtable cc_reg_BS = new Hashtable();
     571    cc_reg_BS.Add("05", "Bimini");
     572    cc_reg_BS.Add("06", "Cat Island");
     573    cc_reg_BS.Add("10", "Exuma");
     574    cc_reg_BS.Add("13", "Inagua");
     575    cc_reg_BS.Add("15", "Long Island");
     576    cc_reg_BS.Add("16", "Mayaguana");
     577    cc_reg_BS.Add("18", "Ragged Island");
     578    cc_reg_BS.Add("22", "Harbour Island");
     579    cc_reg_BS.Add("23", "New Providence");
     580    cc_reg_BS.Add("24", "Acklins and Crooked Islands");
     581    cc_reg_BS.Add("25", "Freeport");
     582    cc_reg_BS.Add("26", "Fresh Creek");
     583    cc_reg_BS.Add("27", "Governor's Harbour");
     584    cc_reg_BS.Add("28", "Green Turtle Cay");
     585    cc_reg_BS.Add("29", "High Rock");
     586    cc_reg_BS.Add("30", "Kemps Bay");
     587    cc_reg_BS.Add("31", "Marsh Harbour");
     588    cc_reg_BS.Add("32", "Nichollstown and Berry Islands");
     589    cc_reg_BS.Add("33", "Rock Sound");
     590    cc_reg_BS.Add("34", "Sandy Point");
     591    cc_reg_BS.Add("35", "San Salvador and Rum Cay");
     592    GEOIP_REGION_NAME.Add("BS", cc_reg_BS);
     593    Hashtable cc_reg_BT = new Hashtable();
     594    cc_reg_BT.Add("05", "Bumthang");
     595    cc_reg_BT.Add("06", "Chhukha");
     596    cc_reg_BT.Add("07", "Chirang");
     597    cc_reg_BT.Add("08", "Daga");
     598    cc_reg_BT.Add("09", "Geylegphug");
     599    cc_reg_BT.Add("10", "Ha");
     600    cc_reg_BT.Add("11", "Lhuntshi");
     601    cc_reg_BT.Add("12", "Mongar");
     602    cc_reg_BT.Add("13", "Paro");
     603    cc_reg_BT.Add("14", "Pemagatsel");
     604    cc_reg_BT.Add("15", "Punakha");
     605    cc_reg_BT.Add("16", "Samchi");
     606    cc_reg_BT.Add("17", "Samdrup");
     607    cc_reg_BT.Add("18", "Shemgang");
     608    cc_reg_BT.Add("19", "Tashigang");
     609    cc_reg_BT.Add("20", "Thimphu");
     610    cc_reg_BT.Add("21", "Tongsa");
     611    cc_reg_BT.Add("22", "Wangdi Phodrang");
     612    GEOIP_REGION_NAME.Add("BT", cc_reg_BT);
     613    Hashtable cc_reg_BW = new Hashtable();
     614    cc_reg_BW.Add("01", "Central");
     615    cc_reg_BW.Add("03", "Ghanzi");
     616    cc_reg_BW.Add("04", "Kgalagadi");
     617    cc_reg_BW.Add("05", "Kgatleng");
     618    cc_reg_BW.Add("06", "Kweneng");
     619    cc_reg_BW.Add("08", "North-East");
     620    cc_reg_BW.Add("09", "South-East");
     621    cc_reg_BW.Add("10", "Southern");
     622    cc_reg_BW.Add("11", "North-West");
     623    GEOIP_REGION_NAME.Add("BW", cc_reg_BW);
     624    Hashtable cc_reg_BY = new Hashtable();
     625    cc_reg_BY.Add("01", "Brestskaya Voblasts'");
     626    cc_reg_BY.Add("02", "Homyel'skaya Voblasts'");
     627    cc_reg_BY.Add("03", "Hrodzyenskaya Voblasts'");
     628    cc_reg_BY.Add("04", "Minsk");
     629    cc_reg_BY.Add("05", "Minskaya Voblasts'");
     630    cc_reg_BY.Add("06", "Mahilyowskaya Voblasts'");
     631    cc_reg_BY.Add("07", "Vitsyebskaya Voblasts'");
     632    GEOIP_REGION_NAME.Add("BY", cc_reg_BY);
     633    Hashtable cc_reg_BZ = new Hashtable();
     634    cc_reg_BZ.Add("01", "Belize");
     635    cc_reg_BZ.Add("02", "Cayo");
     636    cc_reg_BZ.Add("03", "Corozal");
     637    cc_reg_BZ.Add("04", "Orange Walk");
     638    cc_reg_BZ.Add("05", "Stann Creek");
     639    cc_reg_BZ.Add("06", "Toledo");
     640    GEOIP_REGION_NAME.Add("BZ", cc_reg_BZ);
     641    Hashtable cc_reg_CA = new Hashtable();
     642    cc_reg_CA.Add("AB", "Alberta");
     643    cc_reg_CA.Add("BC", "British Columbia");
     644    cc_reg_CA.Add("MB", "Manitoba");
     645    cc_reg_CA.Add("NB", "New Brunswick");
     646    cc_reg_CA.Add("NL", "Newfoundland");
     647    cc_reg_CA.Add("NS", "Nova Scotia");
     648    cc_reg_CA.Add("NT", "Northwest Territories");
     649    cc_reg_CA.Add("NU", "Nunavut");
     650    cc_reg_CA.Add("ON", "Ontario");
     651    cc_reg_CA.Add("PE", "Prince Edward Island");
     652    cc_reg_CA.Add("QC", "Quebec");
     653    cc_reg_CA.Add("SK", "Saskatchewan");
     654    cc_reg_CA.Add("YT", "Yukon Territory");
     655    GEOIP_REGION_NAME.Add("CA", cc_reg_CA);
     656    Hashtable cc_reg_CD = new Hashtable();
     657    cc_reg_CD.Add("01", "Bandundu");
     658    cc_reg_CD.Add("02", "Equateur");
     659    cc_reg_CD.Add("04", "Kasai-Oriental");
     660    cc_reg_CD.Add("05", "Katanga");
     661    cc_reg_CD.Add("06", "Kinshasa");
     662    cc_reg_CD.Add("07", "Kivu");
     663    cc_reg_CD.Add("08", "Bas-Congo");
     664    cc_reg_CD.Add("09", "Orientale");
     665    cc_reg_CD.Add("10", "Maniema");
     666    cc_reg_CD.Add("11", "Nord-Kivu");
     667    cc_reg_CD.Add("12", "Sud-Kivu");
     668    cc_reg_CD.Add("13", "Cuvette");
     669    GEOIP_REGION_NAME.Add("CD", cc_reg_CD);
     670    Hashtable cc_reg_CF = new Hashtable();
     671    cc_reg_CF.Add("01", "Bamingui-Bangoran");
     672    cc_reg_CF.Add("02", "Basse-Kotto");
     673    cc_reg_CF.Add("03", "Haute-Kotto");
     674    cc_reg_CF.Add("04", "Mambere-Kadei");
     675    cc_reg_CF.Add("05", "Haut-Mbomou");
     676    cc_reg_CF.Add("06", "Kemo");
     677    cc_reg_CF.Add("07", "Lobaye");
     678    cc_reg_CF.Add("08", "Mbomou");
     679    cc_reg_CF.Add("09", "Nana-Mambere");
     680    cc_reg_CF.Add("11", "Ouaka");
     681    cc_reg_CF.Add("12", "Ouham");
     682    cc_reg_CF.Add("13", "Ouham-Pende");
     683    cc_reg_CF.Add("14", "Cuvette-Ouest");
     684    cc_reg_CF.Add("15", "Nana-Grebizi");
     685    cc_reg_CF.Add("16", "Sangha-Mbaere");
     686    cc_reg_CF.Add("17", "Ombella-Mpoko");
     687    cc_reg_CF.Add("18", "Bangui");
     688    GEOIP_REGION_NAME.Add("CF", cc_reg_CF);
     689    Hashtable cc_reg_CG = new Hashtable();
     690    cc_reg_CG.Add("01", "Bouenza");
     691    cc_reg_CG.Add("03", "Cuvette");
     692    cc_reg_CG.Add("04", "Kouilou");
     693    cc_reg_CG.Add("05", "Lekoumou");
     694    cc_reg_CG.Add("06", "Likouala");
     695    cc_reg_CG.Add("07", "Niari");
     696    cc_reg_CG.Add("08", "Plateaux");
     697    cc_reg_CG.Add("10", "Sangha");
     698    cc_reg_CG.Add("11", "Pool");
     699    cc_reg_CG.Add("12", "Brazzaville");
     700    GEOIP_REGION_NAME.Add("CG", cc_reg_CG);
     701    Hashtable cc_reg_CH = new Hashtable();
     702    cc_reg_CH.Add("01", "Aargau");
     703    cc_reg_CH.Add("02", "Ausser-Rhoden");
     704    cc_reg_CH.Add("03", "Basel-Landschaft");
     705    cc_reg_CH.Add("04", "Basel-Stadt");
     706    cc_reg_CH.Add("05", "Bern");
     707    cc_reg_CH.Add("06", "Fribourg");
     708    cc_reg_CH.Add("07", "Geneve");
     709    cc_reg_CH.Add("08", "Glarus");
     710    cc_reg_CH.Add("09", "Graubunden");
     711    cc_reg_CH.Add("10", "Inner-Rhoden");
     712    cc_reg_CH.Add("11", "Luzern");
     713    cc_reg_CH.Add("12", "Neuchatel");
     714    cc_reg_CH.Add("13", "Nidwalden");
     715    cc_reg_CH.Add("14", "Obwalden");
     716    cc_reg_CH.Add("15", "Sankt Gallen");
     717    cc_reg_CH.Add("16", "Schaffhausen");
     718    cc_reg_CH.Add("17", "Schwyz");
     719    cc_reg_CH.Add("18", "Solothurn");
     720    cc_reg_CH.Add("19", "Thurgau");
     721    cc_reg_CH.Add("20", "Ticino");
     722    cc_reg_CH.Add("21", "Uri");
     723    cc_reg_CH.Add("22", "Valais");
     724    cc_reg_CH.Add("23", "Vaud");
     725    cc_reg_CH.Add("24", "Zug");
     726    cc_reg_CH.Add("25", "Zurich");
     727    cc_reg_CH.Add("26", "Jura");
     728    GEOIP_REGION_NAME.Add("CH", cc_reg_CH);
     729    Hashtable cc_reg_CI = new Hashtable();
     730    cc_reg_CI.Add("05", "Atacama");
     731    cc_reg_CI.Add("06", "Biobio");
     732    cc_reg_CI.Add("51", "Sassandra");
     733    cc_reg_CI.Add("61", "Abidjan");
     734    cc_reg_CI.Add("74", "Agneby");
     735    cc_reg_CI.Add("75", "Bafing");
     736    cc_reg_CI.Add("76", "Bas-Sassandra");
     737    cc_reg_CI.Add("77", "Denguele");
     738    cc_reg_CI.Add("78", "Dix-Huit Montagnes");
     739    cc_reg_CI.Add("79", "Fromager");
     740    cc_reg_CI.Add("80", "Haut-Sassandra");
     741    cc_reg_CI.Add("81", "Lacs");
     742    cc_reg_CI.Add("82", "Lagunes");
     743    cc_reg_CI.Add("83", "Marahoue");
     744    cc_reg_CI.Add("84", "Moyen-Cavally");
     745    cc_reg_CI.Add("85", "Moyen-Comoe");
     746    cc_reg_CI.Add("86", "N'zi-Comoe");
     747    cc_reg_CI.Add("87", "Savanes");
     748    cc_reg_CI.Add("88", "Sud-Bandama");
     749    cc_reg_CI.Add("89", "Sud-Comoe");
     750    cc_reg_CI.Add("90", "Vallee du Bandama");
     751    cc_reg_CI.Add("91", "Worodougou");
     752    cc_reg_CI.Add("92", "Zanzan");
     753    GEOIP_REGION_NAME.Add("CI", cc_reg_CI);
     754    Hashtable cc_reg_CL = new Hashtable();
     755    cc_reg_CL.Add("01", "Valparaiso");
     756    cc_reg_CL.Add("02", "Aisen del General Carlos Ibanez del Campo");
     757    cc_reg_CL.Add("03", "Antofagasta");
     758    cc_reg_CL.Add("04", "Araucania");
     759    cc_reg_CL.Add("05", "Atacama");
     760    cc_reg_CL.Add("06", "Bio-Bio");
     761    cc_reg_CL.Add("07", "Coquimbo");
     762    cc_reg_CL.Add("08", "Libertador General Bernardo O'Higgins");
     763    cc_reg_CL.Add("09", "Los Lagos");
     764    cc_reg_CL.Add("10", "Magallanes y de la Antartica Chilena");
     765    cc_reg_CL.Add("11", "Maule");
     766    cc_reg_CL.Add("12", "Region Metropolitana");
     767    cc_reg_CL.Add("13", "Tarapaca");
     768    GEOIP_REGION_NAME.Add("CL", cc_reg_CL);
     769    Hashtable cc_reg_CM = new Hashtable();
     770    cc_reg_CM.Add("04", "Est");
     771    cc_reg_CM.Add("05", "Littoral");
     772    cc_reg_CM.Add("07", "Nord-Ouest");
     773    cc_reg_CM.Add("08", "Ouest");
     774    cc_reg_CM.Add("09", "Sud-Ouest");
     775    cc_reg_CM.Add("10", "Adamaoua");
     776    cc_reg_CM.Add("11", "Centre");
     777    cc_reg_CM.Add("12", "Extreme-Nord");
     778    cc_reg_CM.Add("13", "Nord");
     779    cc_reg_CM.Add("14", "Sud");
     780    GEOIP_REGION_NAME.Add("CM", cc_reg_CM);
     781    Hashtable cc_reg_CN = new Hashtable();
     782    cc_reg_CN.Add("01", "Anhui");
     783    cc_reg_CN.Add("02", "Zhejiang");
     784    cc_reg_CN.Add("03", "Jiangxi");
     785    cc_reg_CN.Add("04", "Jiangsu");
     786    cc_reg_CN.Add("05", "Jilin");
     787    cc_reg_CN.Add("06", "Qinghai");
     788    cc_reg_CN.Add("07", "Fujian");
     789    cc_reg_CN.Add("08", "Heilongjiang");
     790    cc_reg_CN.Add("09", "Henan");
     791    cc_reg_CN.Add("10", "Hebei");
     792    cc_reg_CN.Add("11", "Hunan");
     793    cc_reg_CN.Add("12", "Hubei");
     794    cc_reg_CN.Add("13", "Xinjiang");
     795    cc_reg_CN.Add("14", "Xizang");
     796    cc_reg_CN.Add("15", "Gansu");
     797    cc_reg_CN.Add("16", "Guangxi");
     798    cc_reg_CN.Add("18", "Guizhou");
     799    cc_reg_CN.Add("19", "Liaoning");
     800    cc_reg_CN.Add("20", "Nei Mongol");
     801    cc_reg_CN.Add("21", "Ningxia");
     802    cc_reg_CN.Add("22", "Beijing");
     803    cc_reg_CN.Add("23", "Shanghai");
     804    cc_reg_CN.Add("24", "Shanxi");
     805    cc_reg_CN.Add("25", "Shandong");
     806    cc_reg_CN.Add("26", "Shaanxi");
     807    cc_reg_CN.Add("28", "Tianjin");
     808    cc_reg_CN.Add("29", "Yunnan");
     809    cc_reg_CN.Add("30", "Guangdong");
     810    cc_reg_CN.Add("31", "Hainan");
     811    cc_reg_CN.Add("32", "Sichuan");
     812    cc_reg_CN.Add("33", "Chongqing");
     813    GEOIP_REGION_NAME.Add("CN", cc_reg_CN);
     814    Hashtable cc_reg_CO = new Hashtable();
     815    cc_reg_CO.Add("01", "Amazonas");
     816    cc_reg_CO.Add("02", "Antioquia");
     817    cc_reg_CO.Add("03", "Arauca");
     818    cc_reg_CO.Add("04", "Atlantico");
     819    cc_reg_CO.Add("05", "Bolivar Department");
     820    cc_reg_CO.Add("06", "Boyaca Department");
     821    cc_reg_CO.Add("07", "Caldas Department");
     822    cc_reg_CO.Add("08", "Caqueta");
     823    cc_reg_CO.Add("09", "Cauca");
     824    cc_reg_CO.Add("10", "Cesar");
     825    cc_reg_CO.Add("11", "Choco");
     826    cc_reg_CO.Add("12", "Cordoba");
     827    cc_reg_CO.Add("14", "Guaviare");
     828    cc_reg_CO.Add("15", "Guainia");
     829    cc_reg_CO.Add("16", "Huila");
     830    cc_reg_CO.Add("17", "La Guajira");
     831    cc_reg_CO.Add("18", "Magdalena Department");
     832    cc_reg_CO.Add("19", "Meta");
     833    cc_reg_CO.Add("20", "Narino");
     834    cc_reg_CO.Add("21", "Norte de Santander");
     835    cc_reg_CO.Add("22", "Putumayo");
     836    cc_reg_CO.Add("23", "Quindio");
     837    cc_reg_CO.Add("24", "Risaralda");
     838    cc_reg_CO.Add("25", "San Andres y Providencia");
     839    cc_reg_CO.Add("26", "Santander");
     840    cc_reg_CO.Add("27", "Sucre");
     841    cc_reg_CO.Add("28", "Tolima");
     842    cc_reg_CO.Add("29", "Valle del Cauca");
     843    cc_reg_CO.Add("30", "Vaupes");
     844    cc_reg_CO.Add("31", "Vichada");
     845    cc_reg_CO.Add("32", "Casanare");
     846    cc_reg_CO.Add("33", "Cundinamarca");
     847    cc_reg_CO.Add("34", "Distrito Especial");
     848    cc_reg_CO.Add("35", "Bolivar");
     849    cc_reg_CO.Add("36", "Boyaca");
     850    cc_reg_CO.Add("37", "Caldas");
     851    cc_reg_CO.Add("38", "Magdalena");
     852    GEOIP_REGION_NAME.Add("CO", cc_reg_CO);
     853    Hashtable cc_reg_CR = new Hashtable();
     854    cc_reg_CR.Add("01", "Alajuela");
     855    cc_reg_CR.Add("02", "Cartago");
     856    cc_reg_CR.Add("03", "Guanacaste");
     857    cc_reg_CR.Add("04", "Heredia");
     858    cc_reg_CR.Add("06", "Limon");
     859    cc_reg_CR.Add("07", "Puntarenas");
     860    cc_reg_CR.Add("08", "San Jose");
     861    GEOIP_REGION_NAME.Add("CR", cc_reg_CR);
     862    Hashtable cc_reg_CU = new Hashtable();
     863    cc_reg_CU.Add("01", "Pinar del Rio");
     864    cc_reg_CU.Add("02", "Ciudad de la Habana");
     865    cc_reg_CU.Add("03", "Matanzas");
     866    cc_reg_CU.Add("04", "Isla de la Juventud");
     867    cc_reg_CU.Add("05", "Camaguey");
     868    cc_reg_CU.Add("07", "Ciego de Avila");
     869    cc_reg_CU.Add("08", "Cienfuegos");
     870    cc_reg_CU.Add("09", "Granma");
     871    cc_reg_CU.Add("10", "Guantanamo");
     872    cc_reg_CU.Add("11", "La Habana");
     873    cc_reg_CU.Add("12", "Holguin");
     874    cc_reg_CU.Add("13", "Las Tunas");
     875    cc_reg_CU.Add("14", "Sancti Spiritus");
     876    cc_reg_CU.Add("15", "Santiago de Cuba");
     877    cc_reg_CU.Add("16", "Villa Clara");
     878    GEOIP_REGION_NAME.Add("CU", cc_reg_CU);
     879    Hashtable cc_reg_CV = new Hashtable();
     880    cc_reg_CV.Add("01", "Boa Vista");
     881    cc_reg_CV.Add("02", "Brava");
     882    cc_reg_CV.Add("04", "Maio");
     883    cc_reg_CV.Add("05", "Paul");
     884    cc_reg_CV.Add("07", "Ribeira Grande");
     885    cc_reg_CV.Add("08", "Sal");
     886    cc_reg_CV.Add("10", "Sao Nicolau");
     887    cc_reg_CV.Add("11", "Sao Vicente");
     888    cc_reg_CV.Add("13", "Mosteiros");
     889    cc_reg_CV.Add("14", "Praia");
     890    cc_reg_CV.Add("15", "Santa Catarina");
     891    cc_reg_CV.Add("16", "Santa Cruz");
     892    cc_reg_CV.Add("17", "Sao Domingos");
     893    cc_reg_CV.Add("18", "Sao Filipe");
     894    cc_reg_CV.Add("19", "Sao Miguel");
     895    cc_reg_CV.Add("20", "Tarrafal");
     896    GEOIP_REGION_NAME.Add("CV", cc_reg_CV);
     897    Hashtable cc_reg_CY = new Hashtable();
     898    cc_reg_CY.Add("01", "Famagusta");
     899    cc_reg_CY.Add("02", "Kyrenia");
     900    cc_reg_CY.Add("03", "Larnaca");
     901    cc_reg_CY.Add("04", "Nicosia");
     902    cc_reg_CY.Add("05", "Limassol");
     903    cc_reg_CY.Add("06", "Paphos");
     904    GEOIP_REGION_NAME.Add("CY", cc_reg_CY);
     905    Hashtable cc_reg_CZ = new Hashtable();
     906    cc_reg_CZ.Add("03", "Blansko");
     907    cc_reg_CZ.Add("04", "Breclav");
     908    cc_reg_CZ.Add("20", "Hradec Kralove");
     909    cc_reg_CZ.Add("21", "Jablonec nad Nisou");
     910    cc_reg_CZ.Add("23", "Jicin");
     911    cc_reg_CZ.Add("24", "Jihlava");
     912    cc_reg_CZ.Add("30", "Kolin");
     913    cc_reg_CZ.Add("33", "Liberec");
     914    cc_reg_CZ.Add("36", "Melnik");
     915    cc_reg_CZ.Add("37", "Mlada Boleslav");
     916    cc_reg_CZ.Add("39", "Nachod");
     917    cc_reg_CZ.Add("41", "Nymburk");
     918    cc_reg_CZ.Add("45", "Pardubice");
     919    cc_reg_CZ.Add("52", "Hlavni mesto Praha");
     920    cc_reg_CZ.Add("61", "Semily");
     921    cc_reg_CZ.Add("70", "Trutnov");
     922    cc_reg_CZ.Add("78", "Jihomoravsky kraj");
     923    cc_reg_CZ.Add("79", "Jihocesky kraj");
     924    cc_reg_CZ.Add("80", "Vysocina");
     925    cc_reg_CZ.Add("81", "Karlovarsky kraj");
     926    cc_reg_CZ.Add("82", "Kralovehradecky kraj");
     927    cc_reg_CZ.Add("83", "Liberecky kraj");
     928    cc_reg_CZ.Add("84", "Olomoucky kraj");
     929    cc_reg_CZ.Add("85", "Moravskoslezsky kraj");
     930    cc_reg_CZ.Add("86", "Pardubicky kraj");
     931    cc_reg_CZ.Add("87", "Plzensky kraj");
     932    cc_reg_CZ.Add("88", "Stredocesky kraj");
     933    cc_reg_CZ.Add("89", "Ustecky kraj");
     934    cc_reg_CZ.Add("90", "Zlinsky kraj");
     935    GEOIP_REGION_NAME.Add("CZ", cc_reg_CZ);
     936    Hashtable cc_reg_DE = new Hashtable();
     937    cc_reg_DE.Add("01", "Baden-Wurttemberg");
     938    cc_reg_DE.Add("02", "Bayern");
     939    cc_reg_DE.Add("03", "Bremen");
     940    cc_reg_DE.Add("04", "Hamburg");
     941    cc_reg_DE.Add("05", "Hessen");
     942    cc_reg_DE.Add("06", "Niedersachsen");
     943    cc_reg_DE.Add("07", "Nordrhein-Westfalen");
     944    cc_reg_DE.Add("08", "Rheinland-Pfalz");
     945    cc_reg_DE.Add("09", "Saarland");
     946    cc_reg_DE.Add("10", "Schleswig-Holstein");
     947    cc_reg_DE.Add("11", "Brandenburg");
     948    cc_reg_DE.Add("12", "Mecklenburg-Vorpommern");
     949    cc_reg_DE.Add("13", "Sachsen");
     950    cc_reg_DE.Add("14", "Sachsen-Anhalt");
     951    cc_reg_DE.Add("15", "Thuringen");
     952    cc_reg_DE.Add("16", "Berlin");
     953    GEOIP_REGION_NAME.Add("DE", cc_reg_DE);
     954    Hashtable cc_reg_DJ = new Hashtable();
     955    cc_reg_DJ.Add("01", "Ali Sabieh");
     956    cc_reg_DJ.Add("04", "Obock");
     957    cc_reg_DJ.Add("05", "Tadjoura");
     958    cc_reg_DJ.Add("06", "Dikhil");
     959    cc_reg_DJ.Add("07", "Djibouti");
     960    cc_reg_DJ.Add("08", "Arta");
     961    GEOIP_REGION_NAME.Add("DJ", cc_reg_DJ);
     962    Hashtable cc_reg_DK = new Hashtable();
     963    cc_reg_DK.Add("01", "Arhus");
     964    cc_reg_DK.Add("02", "Bornholm");
     965    cc_reg_DK.Add("03", "Frederiksborg");
     966    cc_reg_DK.Add("04", "Fyn");
     967    cc_reg_DK.Add("05", "Kobenhavn");
     968    cc_reg_DK.Add("06", "Staden Kobenhavn");
     969    cc_reg_DK.Add("07", "Nordjylland");
     970    cc_reg_DK.Add("08", "Ribe");
     971    cc_reg_DK.Add("09", "Ringkobing");
     972    cc_reg_DK.Add("10", "Roskilde");
     973    cc_reg_DK.Add("11", "Sonderjylland");
     974    cc_reg_DK.Add("12", "Storstrom");
     975    cc_reg_DK.Add("13", "Vejle");
     976    cc_reg_DK.Add("14", "Vestsjalland");
     977    cc_reg_DK.Add("15", "Viborg");
     978    cc_reg_DK.Add("17", "Hovedstaden");
     979    cc_reg_DK.Add("18", "Midtjyllen");
     980    cc_reg_DK.Add("19", "Nordjylland");
     981    cc_reg_DK.Add("20", "Sjelland");
     982    cc_reg_DK.Add("21", "Syddanmark");
     983    GEOIP_REGION_NAME.Add("DK", cc_reg_DK);
     984    Hashtable cc_reg_DM = new Hashtable();
     985    cc_reg_DM.Add("02", "Saint Andrew");
     986    cc_reg_DM.Add("03", "Saint David");
     987    cc_reg_DM.Add("04", "Saint George");
     988    cc_reg_DM.Add("05", "Saint John");
     989    cc_reg_DM.Add("06", "Saint Joseph");
     990    cc_reg_DM.Add("07", "Saint Luke");
     991    cc_reg_DM.Add("08", "Saint Mark");
     992    cc_reg_DM.Add("09", "Saint Patrick");
     993    cc_reg_DM.Add("10", "Saint Paul");
     994    cc_reg_DM.Add("11", "Saint Peter");
     995    GEOIP_REGION_NAME.Add("DM", cc_reg_DM);
     996    Hashtable cc_reg_DO = new Hashtable();
     997    cc_reg_DO.Add("01", "Azua");
     998    cc_reg_DO.Add("02", "Baoruco");
     999    cc_reg_DO.Add("03", "Barahona");
     1000    cc_reg_DO.Add("04", "Dajabon");
     1001    cc_reg_DO.Add("05", "Distrito Nacional");
     1002    cc_reg_DO.Add("06", "Duarte");
     1003    cc_reg_DO.Add("08", "Espaillat");
     1004    cc_reg_DO.Add("09", "Independencia");
     1005    cc_reg_DO.Add("10", "La Altagracia");
     1006    cc_reg_DO.Add("11", "Elias Pina");
     1007    cc_reg_DO.Add("12", "La Romana");
     1008    cc_reg_DO.Add("14", "Maria Trinidad Sanchez");
     1009    cc_reg_DO.Add("15", "Monte Cristi");
     1010    cc_reg_DO.Add("16", "Pedernales");
     1011    cc_reg_DO.Add("17", "Peravia");
     1012    cc_reg_DO.Add("18", "Puerto Plata");
     1013    cc_reg_DO.Add("19", "Salcedo");
     1014    cc_reg_DO.Add("20", "Samana");
     1015    cc_reg_DO.Add("21", "Sanchez Ramirez");
     1016    cc_reg_DO.Add("23", "San Juan");
     1017    cc_reg_DO.Add("24", "San Pedro De Macoris");
     1018    cc_reg_DO.Add("25", "Santiago");
     1019    cc_reg_DO.Add("26", "Santiago Rodriguez");
     1020    cc_reg_DO.Add("27", "Valverde");
     1021    cc_reg_DO.Add("28", "El Seibo");
     1022    cc_reg_DO.Add("29", "Hato Mayor");
     1023    cc_reg_DO.Add("30", "La Vega");
     1024    cc_reg_DO.Add("31", "Monsenor Nouel");
     1025    cc_reg_DO.Add("32", "Monte Plata");
     1026    cc_reg_DO.Add("33", "San Cristobal");
     1027    cc_reg_DO.Add("34", "Distrito Nacional");
     1028    cc_reg_DO.Add("35", "Peravia");
     1029    cc_reg_DO.Add("36", "San Jose de Ocoa");
     1030    cc_reg_DO.Add("37", "Santo Domingo");
     1031    GEOIP_REGION_NAME.Add("DO", cc_reg_DO);
     1032    Hashtable cc_reg_DZ = new Hashtable();
     1033    cc_reg_DZ.Add("01", "Alger");
     1034    cc_reg_DZ.Add("03", "Batna");
     1035    cc_reg_DZ.Add("04", "Constantine");
     1036    cc_reg_DZ.Add("06", "Medea");
     1037    cc_reg_DZ.Add("07", "Mostaganem");
     1038    cc_reg_DZ.Add("09", "Oran");
     1039    cc_reg_DZ.Add("10", "Saida");
     1040    cc_reg_DZ.Add("12", "Setif");
     1041    cc_reg_DZ.Add("13", "Tiaret");
     1042    cc_reg_DZ.Add("14", "Tizi Ouzou");
     1043    cc_reg_DZ.Add("15", "Tlemcen");
     1044    cc_reg_DZ.Add("18", "Bejaia");
     1045    cc_reg_DZ.Add("19", "Biskra");
     1046    cc_reg_DZ.Add("20", "Blida");
     1047    cc_reg_DZ.Add("21", "Bouira");
     1048    cc_reg_DZ.Add("22", "Djelfa");
     1049    cc_reg_DZ.Add("23", "Guelma");
     1050    cc_reg_DZ.Add("24", "Jijel");
     1051    cc_reg_DZ.Add("25", "Laghouat");
     1052    cc_reg_DZ.Add("26", "Mascara");
     1053    cc_reg_DZ.Add("27", "M'sila");
     1054    cc_reg_DZ.Add("29", "Oum el Bouaghi");
     1055    cc_reg_DZ.Add("30", "Sidi Bel Abbes");
     1056    cc_reg_DZ.Add("31", "Skikda");
     1057    cc_reg_DZ.Add("33", "Tebessa");
     1058    cc_reg_DZ.Add("34", "Adrar");
     1059    cc_reg_DZ.Add("35", "Ain Defla");
     1060    cc_reg_DZ.Add("36", "Ain Temouchent");
     1061    cc_reg_DZ.Add("37", "Annaba");
     1062    cc_reg_DZ.Add("38", "Bechar");
     1063    cc_reg_DZ.Add("39", "Bordj Bou Arreridj");
     1064    cc_reg_DZ.Add("40", "Boumerdes");
     1065    cc_reg_DZ.Add("41", "Chlef");
     1066    cc_reg_DZ.Add("42", "El Bayadh");
     1067    cc_reg_DZ.Add("43", "El Oued");
     1068    cc_reg_DZ.Add("44", "El Tarf");
     1069    cc_reg_DZ.Add("45", "Ghardaia");
     1070    cc_reg_DZ.Add("46", "Illizi");
     1071    cc_reg_DZ.Add("47", "Khenchela");
     1072    cc_reg_DZ.Add("48", "Mila");
     1073    cc_reg_DZ.Add("49", "Naama");
     1074    cc_reg_DZ.Add("50", "Ouargla");
     1075    cc_reg_DZ.Add("51", "Relizane");
     1076    cc_reg_DZ.Add("52", "Souk Ahras");
     1077    cc_reg_DZ.Add("53", "Tamanghasset");
     1078    cc_reg_DZ.Add("54", "Tindouf");
     1079    cc_reg_DZ.Add("55", "Tipaza");
     1080    cc_reg_DZ.Add("56", "Tissemsilt");
     1081    GEOIP_REGION_NAME.Add("DZ", cc_reg_DZ);
     1082    Hashtable cc_reg_EC = new Hashtable();
     1083    cc_reg_EC.Add("01", "Galapagos");
     1084    cc_reg_EC.Add("02", "Azuay");
     1085    cc_reg_EC.Add("03", "Bolivar");
     1086    cc_reg_EC.Add("04", "Canar");
     1087    cc_reg_EC.Add("05", "Carchi");
     1088    cc_reg_EC.Add("06", "Chimborazo");
     1089    cc_reg_EC.Add("07", "Cotopaxi");
     1090    cc_reg_EC.Add("08", "El Oro");
     1091    cc_reg_EC.Add("09", "Esmeraldas");
     1092    cc_reg_EC.Add("10", "Guayas");
     1093    cc_reg_EC.Add("11", "Imbabura");
     1094    cc_reg_EC.Add("12", "Loja");
     1095    cc_reg_EC.Add("13", "Los Rios");
     1096    cc_reg_EC.Add("14", "Manabi");
     1097    cc_reg_EC.Add("15", "Morona-Santiago");
     1098    cc_reg_EC.Add("17", "Pastaza");
     1099    cc_reg_EC.Add("18", "Pichincha");
     1100    cc_reg_EC.Add("19", "Tungurahua");
     1101    cc_reg_EC.Add("20", "Zamora-Chinchipe");
     1102    cc_reg_EC.Add("22", "Sucumbios");
     1103    cc_reg_EC.Add("23", "Napo");
     1104    cc_reg_EC.Add("24", "Orellana");
     1105    GEOIP_REGION_NAME.Add("EC", cc_reg_EC);
     1106    Hashtable cc_reg_EE = new Hashtable();
     1107    cc_reg_EE.Add("01", "Harjumaa");
     1108    cc_reg_EE.Add("02", "Hiiumaa");
     1109    cc_reg_EE.Add("03", "Ida-Virumaa");
     1110    cc_reg_EE.Add("04", "Jarvamaa");
     1111    cc_reg_EE.Add("05", "Jogevamaa");
     1112    cc_reg_EE.Add("06", "Kohtla-Jarve");
     1113    cc_reg_EE.Add("07", "Laanemaa");
     1114    cc_reg_EE.Add("08", "Laane-Virumaa");
     1115    cc_reg_EE.Add("09", "Narva");
     1116    cc_reg_EE.Add("10", "Parnu");
     1117    cc_reg_EE.Add("11", "Parnumaa");
     1118    cc_reg_EE.Add("12", "Polvamaa");
     1119    cc_reg_EE.Add("13", "Raplamaa");
     1120    cc_reg_EE.Add("14", "Saaremaa");
     1121    cc_reg_EE.Add("15", "Sillamae");
     1122    cc_reg_EE.Add("16", "Tallinn");
     1123    cc_reg_EE.Add("17", "Tartu");
     1124    cc_reg_EE.Add("18", "Tartumaa");
     1125    cc_reg_EE.Add("19", "Valgamaa");
     1126    cc_reg_EE.Add("20", "Viljandimaa");
     1127    cc_reg_EE.Add("21", "Vorumaa");
     1128    GEOIP_REGION_NAME.Add("EE", cc_reg_EE);
     1129    Hashtable cc_reg_EG = new Hashtable();
     1130    cc_reg_EG.Add("01", "Ad Daqahliyah");
     1131    cc_reg_EG.Add("02", "Al Bahr al Ahmar");
     1132    cc_reg_EG.Add("03", "Al Buhayrah");
     1133    cc_reg_EG.Add("04", "Al Fayyum");
     1134    cc_reg_EG.Add("05", "Al Gharbiyah");
     1135    cc_reg_EG.Add("06", "Al Iskandariyah");
     1136    cc_reg_EG.Add("07", "Al Isma'iliyah");
     1137    cc_reg_EG.Add("08", "Al Jizah");
     1138    cc_reg_EG.Add("09", "Al Minufiyah");
     1139    cc_reg_EG.Add("10", "Al Minya");
     1140    cc_reg_EG.Add("11", "Al Qahirah");
     1141    cc_reg_EG.Add("12", "Al Qalyubiyah");
     1142    cc_reg_EG.Add("13", "Al Wadi al Jadid");
     1143    cc_reg_EG.Add("14", "Ash Sharqiyah");
     1144    cc_reg_EG.Add("15", "As Suways");
     1145    cc_reg_EG.Add("16", "Aswan");
     1146    cc_reg_EG.Add("17", "Asyut");
     1147    cc_reg_EG.Add("18", "Bani Suwayf");
     1148    cc_reg_EG.Add("19", "Bur Sa'id");
     1149    cc_reg_EG.Add("20", "Dumyat");
     1150    cc_reg_EG.Add("21", "Kafr ash Shaykh");
     1151    cc_reg_EG.Add("22", "Matruh");
     1152    cc_reg_EG.Add("23", "Qina");
     1153    cc_reg_EG.Add("24", "Suhaj");
     1154    cc_reg_EG.Add("26", "Janub Sina'");
     1155    cc_reg_EG.Add("27", "Shamal Sina'");
     1156    GEOIP_REGION_NAME.Add("EG", cc_reg_EG);
     1157    Hashtable cc_reg_ER = new Hashtable();
     1158    cc_reg_ER.Add("01", "Anseba");
     1159    cc_reg_ER.Add("02", "Debub");
     1160    cc_reg_ER.Add("03", "Debubawi K'eyih Bahri");
     1161    cc_reg_ER.Add("04", "Gash Barka");
     1162    cc_reg_ER.Add("05", "Ma'akel");
     1163    cc_reg_ER.Add("06", "Semenawi K'eyih Bahri");
     1164    GEOIP_REGION_NAME.Add("ER", cc_reg_ER);
     1165    Hashtable cc_reg_ES = new Hashtable();
     1166    cc_reg_ES.Add("07", "Islas Baleares");
     1167    cc_reg_ES.Add("27", "La Rioja");
     1168    cc_reg_ES.Add("29", "Madrid");
     1169    cc_reg_ES.Add("31", "Murcia");
     1170    cc_reg_ES.Add("32", "Navarra");
     1171    cc_reg_ES.Add("34", "Asturias");
     1172    cc_reg_ES.Add("39", "Cantabria");
     1173    cc_reg_ES.Add("51", "Andalucia");
     1174    cc_reg_ES.Add("52", "Aragon");
     1175    cc_reg_ES.Add("53", "Canarias");
     1176    cc_reg_ES.Add("54", "Castilla-La Mancha");
     1177    cc_reg_ES.Add("55", "Castilla y Leon");
     1178    cc_reg_ES.Add("56", "Catalonia");
     1179    cc_reg_ES.Add("57", "Extremadura");
     1180    cc_reg_ES.Add("58", "Galicia");
     1181    cc_reg_ES.Add("59", "Pais Vasco");
     1182    cc_reg_ES.Add("60", "Comunidad Valenciana");
     1183    GEOIP_REGION_NAME.Add("ES", cc_reg_ES);
     1184    Hashtable cc_reg_ET = new Hashtable();
     1185    cc_reg_ET.Add("02", "Amhara");
     1186    cc_reg_ET.Add("07", "Somali");
     1187    cc_reg_ET.Add("08", "Gambella");
     1188    cc_reg_ET.Add("10", "Addis Abeba");
     1189    cc_reg_ET.Add("11", "Southern");
     1190    cc_reg_ET.Add("12", "Tigray");
     1191    cc_reg_ET.Add("13", "Benishangul");
     1192    cc_reg_ET.Add("14", "Afar");
     1193    cc_reg_ET.Add("44", "Adis Abeba");
     1194    cc_reg_ET.Add("45", "Afar");
     1195    cc_reg_ET.Add("46", "Amara");
     1196    cc_reg_ET.Add("47", "Binshangul Gumuz");
     1197    cc_reg_ET.Add("48", "Dire Dawa");
     1198    cc_reg_ET.Add("49", "Gambela Hizboch");
     1199    cc_reg_ET.Add("50", "Hareri Hizb");
     1200    cc_reg_ET.Add("51", "Oromiya");
     1201    cc_reg_ET.Add("52", "Sumale");
     1202    cc_reg_ET.Add("53", "Tigray");
     1203    cc_reg_ET.Add("54", "YeDebub Biheroch Bihereseboch na Hizboch");
     1204    GEOIP_REGION_NAME.Add("ET", cc_reg_ET);
     1205    Hashtable cc_reg_FI = new Hashtable();
     1206    cc_reg_FI.Add("01", "Aland");
     1207    cc_reg_FI.Add("06", "Lapland");
     1208    cc_reg_FI.Add("08", "Oulu");
     1209    cc_reg_FI.Add("13", "Southern Finland");
     1210    cc_reg_FI.Add("14", "Eastern Finland");
     1211    cc_reg_FI.Add("15", "Western Finland");
     1212    GEOIP_REGION_NAME.Add("FI", cc_reg_FI);
     1213    Hashtable cc_reg_FJ = new Hashtable();
     1214    cc_reg_FJ.Add("01", "Central");
     1215    cc_reg_FJ.Add("02", "Eastern");
     1216    cc_reg_FJ.Add("03", "Northern");
     1217    cc_reg_FJ.Add("04", "Rotuma");
     1218    cc_reg_FJ.Add("05", "Western");
     1219    GEOIP_REGION_NAME.Add("FJ", cc_reg_FJ);
     1220    Hashtable cc_reg_FM = new Hashtable();
     1221    cc_reg_FM.Add("01", "Kosrae");
     1222    cc_reg_FM.Add("02", "Pohnpei");
     1223    cc_reg_FM.Add("03", "Chuuk");
     1224    cc_reg_FM.Add("04", "Yap");
     1225    GEOIP_REGION_NAME.Add("FM", cc_reg_FM);
     1226    Hashtable cc_reg_FR = new Hashtable();
     1227    cc_reg_FR.Add("97", "Aquitaine");
     1228    cc_reg_FR.Add("98", "Auvergne");
     1229    cc_reg_FR.Add("99", "Basse-Normandie");
     1230    cc_reg_FR.Add("A1", "Bourgogne");
     1231    cc_reg_FR.Add("A2", "Bretagne");
     1232    cc_reg_FR.Add("A3", "Centre");
     1233    cc_reg_FR.Add("A4", "Champagne-Ardenne");
     1234    cc_reg_FR.Add("A5", "Corse");
     1235    cc_reg_FR.Add("A6", "Franche-Comte");
     1236    cc_reg_FR.Add("A7", "Haute-Normandie");
     1237    cc_reg_FR.Add("A8", "Ile-de-France");
     1238    cc_reg_FR.Add("A9", "Languedoc-Roussillon");
     1239    cc_reg_FR.Add("B1", "Limousin");
     1240    cc_reg_FR.Add("B2", "Lorraine");
     1241    cc_reg_FR.Add("B3", "Midi-Pyrenees");
     1242    cc_reg_FR.Add("B4", "Nord-Pas-de-Calais");
     1243    cc_reg_FR.Add("B5", "Pays de la Loire");
     1244    cc_reg_FR.Add("B6", "Picardie");
     1245    cc_reg_FR.Add("B7", "Poitou-Charentes");
     1246    cc_reg_FR.Add("B8", "Provence-Alpes-Cote d'Azur");
     1247    cc_reg_FR.Add("B9", "Rhone-Alpes");
     1248    cc_reg_FR.Add("C1", "Alsace");
     1249    GEOIP_REGION_NAME.Add("FR", cc_reg_FR);
     1250    Hashtable cc_reg_GA = new Hashtable();
     1251    cc_reg_GA.Add("01", "Estuaire");
     1252    cc_reg_GA.Add("02", "Haut-Ogooue");
     1253    cc_reg_GA.Add("03", "Moyen-Ogooue");
     1254    cc_reg_GA.Add("04", "Ngounie");
     1255    cc_reg_GA.Add("05", "Nyanga");
     1256    cc_reg_GA.Add("06", "Ogooue-Ivindo");
     1257    cc_reg_GA.Add("07", "Ogooue-Lolo");
     1258    cc_reg_GA.Add("08", "Ogooue-Maritime");
     1259    cc_reg_GA.Add("09", "Woleu-Ntem");
     1260    GEOIP_REGION_NAME.Add("GA", cc_reg_GA);
     1261    Hashtable cc_reg_GB = new Hashtable();
     1262    cc_reg_GB.Add("01", "Avon");
     1263    cc_reg_GB.Add("03", "Berkshire");
     1264    cc_reg_GB.Add("07", "Cleveland");
     1265    cc_reg_GB.Add("17", "Greater London");
     1266    cc_reg_GB.Add("18", "Greater Manchester");
     1267    cc_reg_GB.Add("20", "Hereford and Worcester");
     1268    cc_reg_GB.Add("22", "Humberside");
     1269    cc_reg_GB.Add("28", "Merseyside");
     1270    cc_reg_GB.Add("37", "South Yorkshire");
     1271    cc_reg_GB.Add("41", "Tyne and Wear");
     1272    cc_reg_GB.Add("43", "West Midlands");
     1273    cc_reg_GB.Add("45", "West Yorkshire");
     1274    cc_reg_GB.Add("79", "Central");
     1275    cc_reg_GB.Add("82", "Grampian");
     1276    cc_reg_GB.Add("84", "Lothian");
     1277    cc_reg_GB.Add("87", "Strathclyde");
     1278    cc_reg_GB.Add("88", "Tayside");
     1279    cc_reg_GB.Add("90", "Clwyd");
     1280    cc_reg_GB.Add("91", "Dyfed");
     1281    cc_reg_GB.Add("92", "Gwent");
     1282    cc_reg_GB.Add("94", "Mid Glamorgan");
     1283    cc_reg_GB.Add("96", "South Glamorgan");
     1284    cc_reg_GB.Add("97", "West Glamorgan");
     1285    cc_reg_GB.Add("A1", "Barking and Dagenham");
     1286    cc_reg_GB.Add("A2", "Barnet");
     1287    cc_reg_GB.Add("A3", "Barnsley");
     1288    cc_reg_GB.Add("A4", "Bath and North East Somerset");
     1289    cc_reg_GB.Add("A5", "Bedfordshire");
     1290    cc_reg_GB.Add("A6", "Bexley");
     1291    cc_reg_GB.Add("A7", "Birmingham");
     1292    cc_reg_GB.Add("A8", "Blackburn with Darwen");
     1293    cc_reg_GB.Add("A9", "Blackpool");
     1294    cc_reg_GB.Add("B1", "Bolton");
     1295    cc_reg_GB.Add("B2", "Bournemouth");
     1296    cc_reg_GB.Add("B3", "Bracknell Forest");
     1297    cc_reg_GB.Add("B4", "Bradford");
     1298    cc_reg_GB.Add("B5", "Brent");
     1299    cc_reg_GB.Add("B6", "Brighton and Hove");
     1300    cc_reg_GB.Add("B7", "Bristol, City of");
     1301    cc_reg_GB.Add("B8", "Bromley");
     1302    cc_reg_GB.Add("B9", "Buckinghamshire");
     1303    cc_reg_GB.Add("C1", "Bury");
     1304    cc_reg_GB.Add("C2", "Calderdale");
     1305    cc_reg_GB.Add("C3", "Cambridgeshire");
     1306    cc_reg_GB.Add("C4", "Camden");
     1307    cc_reg_GB.Add("C5", "Cheshire");
     1308    cc_reg_GB.Add("C6", "Cornwall");
     1309    cc_reg_GB.Add("C7", "Coventry");
     1310    cc_reg_GB.Add("C8", "Croydon");
     1311    cc_reg_GB.Add("C9", "Cumbria");
     1312    cc_reg_GB.Add("D1", "Darlington");
     1313    cc_reg_GB.Add("D2", "Derby");
     1314    cc_reg_GB.Add("D3", "Derbyshire");
     1315    cc_reg_GB.Add("D4", "Devon");
     1316    cc_reg_GB.Add("D5", "Doncaster");
     1317    cc_reg_GB.Add("D6", "Dorset");
     1318    cc_reg_GB.Add("D7", "Dudley");
     1319    cc_reg_GB.Add("D8", "Durham");
     1320    cc_reg_GB.Add("D9", "Ealing");
     1321    cc_reg_GB.Add("E1", "East Riding of Yorkshire");
     1322    cc_reg_GB.Add("E2", "East Sussex");
     1323    cc_reg_GB.Add("E3", "Enfield");
     1324    cc_reg_GB.Add("E4", "Essex");
     1325    cc_reg_GB.Add("E5", "Gateshead");
     1326    cc_reg_GB.Add("E6", "Gloucestershire");
     1327    cc_reg_GB.Add("E7", "Greenwich");
     1328    cc_reg_GB.Add("E8", "Hackney");
     1329    cc_reg_GB.Add("E9", "Halton");
     1330    cc_reg_GB.Add("F1", "Hammersmith and Fulham");
     1331    cc_reg_GB.Add("F2", "Hampshire");
     1332    cc_reg_GB.Add("F3", "Haringey");
     1333    cc_reg_GB.Add("F4", "Harrow");
     1334    cc_reg_GB.Add("F5", "Hartlepool");
     1335    cc_reg_GB.Add("F6", "Havering");
     1336    cc_reg_GB.Add("F7", "Herefordshire");
     1337    cc_reg_GB.Add("F8", "Hertford");
     1338    cc_reg_GB.Add("F9", "Hillingdon");
     1339    cc_reg_GB.Add("G1", "Hounslow");
     1340    cc_reg_GB.Add("G2", "Isle of Wight");
     1341    cc_reg_GB.Add("G3", "Islington");
     1342    cc_reg_GB.Add("G4", "Kensington and Chelsea");
     1343    cc_reg_GB.Add("G5", "Kent");
     1344    cc_reg_GB.Add("G6", "Kingston upon Hull, City of");
     1345    cc_reg_GB.Add("G7", "Kingston upon Thames");
     1346    cc_reg_GB.Add("G8", "Kirklees");
     1347    cc_reg_GB.Add("G9", "Knowsley");
     1348    cc_reg_GB.Add("H1", "Lambeth");
     1349    cc_reg_GB.Add("H2", "Lancashire");
     1350    cc_reg_GB.Add("H3", "Leeds");
     1351    cc_reg_GB.Add("H4", "Leicester");
     1352    cc_reg_GB.Add("H5", "Leicestershire");
     1353    cc_reg_GB.Add("H6", "Lewisham");
     1354    cc_reg_GB.Add("H7", "Lincolnshire");
     1355    cc_reg_GB.Add("H8", "Liverpool");
     1356    cc_reg_GB.Add("H9", "London, City of");
     1357    cc_reg_GB.Add("I1", "Luton");
     1358    cc_reg_GB.Add("I2", "Manchester");
     1359    cc_reg_GB.Add("I3", "Medway");
     1360    cc_reg_GB.Add("I4", "Merton");
     1361    cc_reg_GB.Add("I5", "Middlesbrough");
     1362    cc_reg_GB.Add("I6", "Milton Keynes");
     1363    cc_reg_GB.Add("I7", "Newcastle upon Tyne");
     1364    cc_reg_GB.Add("I8", "Newham");
     1365    cc_reg_GB.Add("I9", "Norfolk");
     1366    cc_reg_GB.Add("J1", "Northamptonshire");
     1367    cc_reg_GB.Add("J2", "North East Lincolnshire");
     1368    cc_reg_GB.Add("J3", "North Lincolnshire");
     1369    cc_reg_GB.Add("J4", "North Somerset");
     1370    cc_reg_GB.Add("J5", "North Tyneside");
     1371    cc_reg_GB.Add("J6", "Northumberland");
     1372    cc_reg_GB.Add("J7", "North Yorkshire");
     1373    cc_reg_GB.Add("J8", "Nottingham");
     1374    cc_reg_GB.Add("J9", "Nottinghamshire");
     1375    cc_reg_GB.Add("K1", "Oldham");
     1376    cc_reg_GB.Add("K2", "Oxfordshire");
     1377    cc_reg_GB.Add("K3", "Peterborough");
     1378    cc_reg_GB.Add("K4", "Plymouth");
     1379    cc_reg_GB.Add("K5", "Poole");
     1380    cc_reg_GB.Add("K6", "Portsmouth");
     1381    cc_reg_GB.Add("K7", "Reading");
     1382    cc_reg_GB.Add("K8", "Redbridge");
     1383    cc_reg_GB.Add("K9", "Redcar and Cleveland");
     1384    cc_reg_GB.Add("L1", "Richmond upon Thames");
     1385    cc_reg_GB.Add("L2", "Rochdale");
     1386    cc_reg_GB.Add("L3", "Rotherham");
     1387    cc_reg_GB.Add("L4", "Rutland");
     1388    cc_reg_GB.Add("L5", "Salford");
     1389    cc_reg_GB.Add("L6", "Shropshire");
     1390    cc_reg_GB.Add("L7", "Sandwell");
     1391    cc_reg_GB.Add("L8", "Sefton");
     1392    cc_reg_GB.Add("L9", "Sheffield");
     1393    cc_reg_GB.Add("M1", "Slough");
     1394    cc_reg_GB.Add("M2", "Solihull");
     1395    cc_reg_GB.Add("M3", "Somerset");
     1396    cc_reg_GB.Add("M4", "Southampton");
     1397    cc_reg_GB.Add("M5", "Southend-on-Sea");
     1398    cc_reg_GB.Add("M6", "South Gloucestershire");
     1399    cc_reg_GB.Add("M7", "South Tyneside");
     1400    cc_reg_GB.Add("M8", "Southwark");
     1401    cc_reg_GB.Add("M9", "Staffordshire");
     1402    cc_reg_GB.Add("N1", "St. Helens");
     1403    cc_reg_GB.Add("N2", "Stockport");
     1404    cc_reg_GB.Add("N3", "Stockton-on-Tees");
     1405    cc_reg_GB.Add("N4", "Stoke-on-Trent");
     1406    cc_reg_GB.Add("N5", "Suffolk");
     1407    cc_reg_GB.Add("N6", "Sunderland");
     1408    cc_reg_GB.Add("N7", "Surrey");
     1409    cc_reg_GB.Add("N8", "Sutton");
     1410    cc_reg_GB.Add("N9", "Swindon");
     1411    cc_reg_GB.Add("O1", "Tameside");
     1412    cc_reg_GB.Add("O2", "Telford and Wrekin");
     1413    cc_reg_GB.Add("O3", "Thurrock");
     1414    cc_reg_GB.Add("O4", "Torbay");
     1415    cc_reg_GB.Add("O5", "Tower Hamlets");
     1416    cc_reg_GB.Add("O6", "Trafford");
     1417    cc_reg_GB.Add("O7", "Wakefield");
     1418    cc_reg_GB.Add("O8", "Walsall");
     1419    cc_reg_GB.Add("O9", "Waltham Forest");
     1420    cc_reg_GB.Add("P1", "Wandsworth");
     1421    cc_reg_GB.Add("P2", "Warrington");
     1422    cc_reg_GB.Add("P3", "Warwickshire");
     1423    cc_reg_GB.Add("P4", "West Berkshire");
     1424    cc_reg_GB.Add("P5", "Westminster");
     1425    cc_reg_GB.Add("P6", "West Sussex");
     1426    cc_reg_GB.Add("P7", "Wigan");
     1427    cc_reg_GB.Add("P8", "Wiltshire");
     1428    cc_reg_GB.Add("P9", "Windsor and Maidenhead");
     1429    cc_reg_GB.Add("Q1", "Wirral");
     1430    cc_reg_GB.Add("Q2", "Wokingham");
     1431    cc_reg_GB.Add("Q3", "Wolverhampton");
     1432    cc_reg_GB.Add("Q4", "Worcestershire");
     1433    cc_reg_GB.Add("Q5", "York");
     1434    cc_reg_GB.Add("Q6", "Antrim");
     1435    cc_reg_GB.Add("Q7", "Ards");
     1436    cc_reg_GB.Add("Q8", "Armagh");
     1437    cc_reg_GB.Add("Q9", "Ballymena");
     1438    cc_reg_GB.Add("R1", "Ballymoney");
     1439    cc_reg_GB.Add("R2", "Banbridge");
     1440    cc_reg_GB.Add("R3", "Belfast");
     1441    cc_reg_GB.Add("R4", "Carrickfergus");
     1442    cc_reg_GB.Add("R5", "Castlereagh");
     1443    cc_reg_GB.Add("R6", "Coleraine");
     1444    cc_reg_GB.Add("R7", "Cookstown");
     1445    cc_reg_GB.Add("R8", "Craigavon");
     1446    cc_reg_GB.Add("R9", "Down");
     1447    cc_reg_GB.Add("S1", "Dungannon");
     1448    cc_reg_GB.Add("S2", "Fermanagh");
     1449    cc_reg_GB.Add("S3", "Larne");
     1450    cc_reg_GB.Add("S4", "Limavady");
     1451    cc_reg_GB.Add("S5", "Lisburn");
     1452    cc_reg_GB.Add("S6", "Derry");
     1453    cc_reg_GB.Add("S7", "Magherafelt");
     1454    cc_reg_GB.Add("S8", "Moyle");
     1455    cc_reg_GB.Add("S9", "Newry and Mourne");
     1456    cc_reg_GB.Add("T1", "Newtownabbey");
     1457    cc_reg_GB.Add("T2", "North Down");
     1458    cc_reg_GB.Add("T3", "Omagh");
     1459    cc_reg_GB.Add("T4", "Strabane");
     1460    cc_reg_GB.Add("T5", "Aberdeen City");
     1461    cc_reg_GB.Add("T6", "Aberdeenshire");
     1462    cc_reg_GB.Add("T7", "Angus");
     1463    cc_reg_GB.Add("T8", "Argyll and Bute");
     1464    cc_reg_GB.Add("T9", "Scottish Borders, The");
     1465    cc_reg_GB.Add("U1", "Clackmannanshire");
     1466    cc_reg_GB.Add("U2", "Dumfries and Galloway");
     1467    cc_reg_GB.Add("U3", "Dundee City");
     1468    cc_reg_GB.Add("U4", "East Ayrshire");
     1469    cc_reg_GB.Add("U5", "East Dunbartonshire");
     1470    cc_reg_GB.Add("U6", "East Lothian");
     1471    cc_reg_GB.Add("U7", "East Renfrewshire");
     1472    cc_reg_GB.Add("U8", "Edinburgh, City of");
     1473    cc_reg_GB.Add("U9", "Falkirk");
     1474    cc_reg_GB.Add("V1", "Fife");
     1475    cc_reg_GB.Add("V2", "Glasgow City");
     1476    cc_reg_GB.Add("V3", "Highland");
     1477    cc_reg_GB.Add("V4", "Inverclyde");
     1478    cc_reg_GB.Add("V5", "Midlothian");
     1479    cc_reg_GB.Add("V6", "Moray");
     1480    cc_reg_GB.Add("V7", "North Ayrshire");
     1481    cc_reg_GB.Add("V8", "North Lanarkshire");
     1482    cc_reg_GB.Add("V9", "Orkney");
     1483    cc_reg_GB.Add("W1", "Perth and Kinross");
     1484    cc_reg_GB.Add("W2", "Renfrewshire");
     1485    cc_reg_GB.Add("W3", "Shetland Islands");
     1486    cc_reg_GB.Add("W4", "South Ayrshire");
     1487    cc_reg_GB.Add("W5", "South Lanarkshire");
     1488    cc_reg_GB.Add("W6", "Stirling");
     1489    cc_reg_GB.Add("W7", "West Dunbartonshire");
     1490    cc_reg_GB.Add("W8", "Eilean Siar");
     1491    cc_reg_GB.Add("W9", "West Lothian");
     1492    cc_reg_GB.Add("X1", "Isle of Anglesey");
     1493    cc_reg_GB.Add("X2", "Blaenau Gwent");
     1494    cc_reg_GB.Add("X3", "Bridgend");
     1495    cc_reg_GB.Add("X4", "Caerphilly");
     1496    cc_reg_GB.Add("X5", "Cardiff");
     1497    cc_reg_GB.Add("X6", "Ceredigion");
     1498    cc_reg_GB.Add("X7", "Carmarthenshire");
     1499    cc_reg_GB.Add("X8", "Conwy");
     1500    cc_reg_GB.Add("X9", "Denbighshire");
     1501    cc_reg_GB.Add("Y1", "Flintshire");
     1502    cc_reg_GB.Add("Y2", "Gwynedd");
     1503    cc_reg_GB.Add("Y3", "Merthyr Tydfil");
     1504    cc_reg_GB.Add("Y4", "Monmouthshire");
     1505    cc_reg_GB.Add("Y5", "Neath Port Talbot");
     1506    cc_reg_GB.Add("Y6", "Newport");
     1507    cc_reg_GB.Add("Y7", "Pembrokeshire");
     1508    cc_reg_GB.Add("Y8", "Powys");
     1509    cc_reg_GB.Add("Y9", "Rhondda Cynon Taff");
     1510    cc_reg_GB.Add("Z1", "Swansea");
     1511    cc_reg_GB.Add("Z2", "Torfaen");
     1512    cc_reg_GB.Add("Z3", "Vale of Glamorgan, The");
     1513    cc_reg_GB.Add("Z4", "Wrexham");
     1514    GEOIP_REGION_NAME.Add("GB", cc_reg_GB);
     1515    Hashtable cc_reg_GD = new Hashtable();
     1516    cc_reg_GD.Add("01", "Saint Andrew");
     1517    cc_reg_GD.Add("02", "Saint David");
     1518    cc_reg_GD.Add("03", "Saint George");
     1519    cc_reg_GD.Add("04", "Saint John");
     1520    cc_reg_GD.Add("05", "Saint Mark");
     1521    cc_reg_GD.Add("06", "Saint Patrick");
     1522    GEOIP_REGION_NAME.Add("GD", cc_reg_GD);
     1523    Hashtable cc_reg_GE = new Hashtable();
     1524    cc_reg_GE.Add("01", "Abashis Raioni");
     1525    cc_reg_GE.Add("02", "Abkhazia");
     1526    cc_reg_GE.Add("03", "Adigenis Raioni");
     1527    cc_reg_GE.Add("04", "Ajaria");
     1528    cc_reg_GE.Add("05", "Akhalgoris Raioni");
     1529    cc_reg_GE.Add("06", "Akhalk'alak'is Raioni");
     1530    cc_reg_GE.Add("07", "Akhalts'ikhis Raioni");
     1531    cc_reg_GE.Add("08", "Akhmetis Raioni");
     1532    cc_reg_GE.Add("09", "Ambrolauris Raioni");
     1533    cc_reg_GE.Add("10", "Aspindzis Raioni");
     1534    cc_reg_GE.Add("11", "Baghdat'is Raioni");
     1535    cc_reg_GE.Add("12", "Bolnisis Raioni");
     1536    cc_reg_GE.Add("13", "Borjomis Raioni");
     1537    cc_reg_GE.Add("14", "Chiat'ura");
     1538    cc_reg_GE.Add("15", "Ch'khorotsqus Raioni");
     1539    cc_reg_GE.Add("16", "Ch'okhatauris Raioni");
     1540    cc_reg_GE.Add("17", "Dedop'listsqaros Raioni");
     1541    cc_reg_GE.Add("18", "Dmanisis Raioni");
     1542    cc_reg_GE.Add("19", "Dushet'is Raioni");
     1543    cc_reg_GE.Add("20", "Gardabanis Raioni");
     1544    cc_reg_GE.Add("21", "Gori");
     1545    cc_reg_GE.Add("22", "Goris Raioni");
     1546    cc_reg_GE.Add("23", "Gurjaanis Raioni");
     1547    cc_reg_GE.Add("24", "Javis Raioni");
     1548    cc_reg_GE.Add("25", "K'arelis Raioni");
     1549    cc_reg_GE.Add("26", "Kaspis Raioni");
     1550    cc_reg_GE.Add("27", "Kharagaulis Raioni");
     1551    cc_reg_GE.Add("28", "Khashuris Raioni");
     1552    cc_reg_GE.Add("29", "Khobis Raioni");
     1553    cc_reg_GE.Add("30", "Khonis Raioni");
     1554    cc_reg_GE.Add("31", "K'ut'aisi");
     1555    cc_reg_GE.Add("32", "Lagodekhis Raioni");
     1556    cc_reg_GE.Add("33", "Lanch'khut'is Raioni");
     1557    cc_reg_GE.Add("34", "Lentekhis Raioni");
     1558    cc_reg_GE.Add("35", "Marneulis Raioni");
     1559    cc_reg_GE.Add("36", "Martvilis Raioni");
     1560    cc_reg_GE.Add("37", "Mestiis Raioni");
     1561    cc_reg_GE.Add("38", "Mts'khet'is Raioni");
     1562    cc_reg_GE.Add("39", "Ninotsmindis Raioni");
     1563    cc_reg_GE.Add("40", "Onis Raioni");
     1564    cc_reg_GE.Add("41", "Ozurget'is Raioni");
     1565    cc_reg_GE.Add("42", "P'ot'i");
     1566    cc_reg_GE.Add("43", "Qazbegis Raioni");
     1567    cc_reg_GE.Add("44", "Qvarlis Raioni");
     1568    cc_reg_GE.Add("45", "Rust'avi");
     1569    cc_reg_GE.Add("46", "Sach'kheris Raioni");
     1570    cc_reg_GE.Add("47", "Sagarejos Raioni");
     1571    cc_reg_GE.Add("48", "Samtrediis Raioni");
     1572    cc_reg_GE.Add("49", "Senakis Raioni");
     1573    cc_reg_GE.Add("50", "Sighnaghis Raioni");
     1574    cc_reg_GE.Add("51", "T'bilisi");
     1575    cc_reg_GE.Add("52", "T'elavis Raioni");
     1576    cc_reg_GE.Add("53", "T'erjolis Raioni");
     1577    cc_reg_GE.Add("54", "T'et'ritsqaros Raioni");
     1578    cc_reg_GE.Add("55", "T'ianet'is Raioni");
     1579    cc_reg_GE.Add("56", "Tqibuli");
     1580    cc_reg_GE.Add("57", "Ts'ageris Raioni");
     1581    cc_reg_GE.Add("58", "Tsalenjikhis Raioni");
     1582    cc_reg_GE.Add("59", "Tsalkis Raioni");
     1583    cc_reg_GE.Add("60", "Tsqaltubo");
     1584    cc_reg_GE.Add("61", "Vanis Raioni");
     1585    cc_reg_GE.Add("62", "Zestap'onis Raioni");
     1586    cc_reg_GE.Add("63", "Zugdidi");
     1587    cc_reg_GE.Add("64", "Zugdidis Raioni");
     1588    GEOIP_REGION_NAME.Add("GE", cc_reg_GE);
     1589    Hashtable cc_reg_GH = new Hashtable();
     1590    cc_reg_GH.Add("01", "Greater Accra");
     1591    cc_reg_GH.Add("02", "Ashanti");
     1592    cc_reg_GH.Add("03", "Brong-Ahafo");
     1593    cc_reg_GH.Add("04", "Central");
     1594    cc_reg_GH.Add("05", "Eastern");
     1595    cc_reg_GH.Add("06", "Northern");
     1596    cc_reg_GH.Add("08", "Volta");
     1597    cc_reg_GH.Add("09", "Western");
     1598    cc_reg_GH.Add("10", "Upper East");
     1599    cc_reg_GH.Add("11", "Upper West");
     1600    GEOIP_REGION_NAME.Add("GH", cc_reg_GH);
     1601    Hashtable cc_reg_GL = new Hashtable();
     1602    cc_reg_GL.Add("01", "Nordgronland");
     1603    cc_reg_GL.Add("02", "Ostgronland");
     1604    cc_reg_GL.Add("03", "Vestgronland");
     1605    GEOIP_REGION_NAME.Add("GL", cc_reg_GL);
     1606    Hashtable cc_reg_GM = new Hashtable();
     1607    cc_reg_GM.Add("01", "Banjul");
     1608    cc_reg_GM.Add("02", "Lower River");
     1609    cc_reg_GM.Add("03", "Central River");
     1610    cc_reg_GM.Add("04", "Upper River");
     1611    cc_reg_GM.Add("05", "Western");
     1612    cc_reg_GM.Add("07", "North Bank");
     1613    GEOIP_REGION_NAME.Add("GM", cc_reg_GM);
     1614    Hashtable cc_reg_GN = new Hashtable();
     1615    cc_reg_GN.Add("01", "Beyla");
     1616    cc_reg_GN.Add("02", "Boffa");
     1617    cc_reg_GN.Add("03", "Boke");
     1618    cc_reg_GN.Add("04", "Conakry");
     1619    cc_reg_GN.Add("05", "Dabola");
     1620    cc_reg_GN.Add("06", "Dalaba");
     1621    cc_reg_GN.Add("07", "Dinguiraye");
     1622    cc_reg_GN.Add("09", "Faranah");
     1623    cc_reg_GN.Add("10", "Forecariah");
     1624    cc_reg_GN.Add("11", "Fria");
     1625    cc_reg_GN.Add("12", "Gaoual");
     1626    cc_reg_GN.Add("13", "Gueckedou");
     1627    cc_reg_GN.Add("15", "Kerouane");
     1628    cc_reg_GN.Add("16", "Kindia");
     1629    cc_reg_GN.Add("17", "Kissidougou");
     1630    cc_reg_GN.Add("18", "Koundara");
     1631    cc_reg_GN.Add("19", "Kouroussa");
     1632    cc_reg_GN.Add("21", "Macenta");
     1633    cc_reg_GN.Add("22", "Mali");
     1634    cc_reg_GN.Add("23", "Mamou");
     1635    cc_reg_GN.Add("25", "Pita");
     1636    cc_reg_GN.Add("27", "Telimele");
     1637    cc_reg_GN.Add("28", "Tougue");
     1638    cc_reg_GN.Add("29", "Yomou");
     1639    cc_reg_GN.Add("30", "Coyah");
     1640    cc_reg_GN.Add("31", "Dubreka");
     1641    cc_reg_GN.Add("32", "Kankan");
     1642    cc_reg_GN.Add("33", "Koubia");
     1643    cc_reg_GN.Add("34", "Labe");
     1644    cc_reg_GN.Add("35", "Lelouma");
     1645    cc_reg_GN.Add("36", "Lola");
     1646    cc_reg_GN.Add("37", "Mandiana");
     1647    cc_reg_GN.Add("38", "Nzerekore");
     1648    cc_reg_GN.Add("39", "Siguiri");
     1649    GEOIP_REGION_NAME.Add("GN", cc_reg_GN);
     1650    Hashtable cc_reg_GQ = new Hashtable();
     1651    cc_reg_GQ.Add("03", "Annobon");
     1652    cc_reg_GQ.Add("04", "Bioko Norte");
     1653    cc_reg_GQ.Add("05", "Bioko Sur");
     1654    cc_reg_GQ.Add("06", "Centro Sur");
     1655    cc_reg_GQ.Add("07", "Kie-Ntem");
     1656    cc_reg_GQ.Add("08", "Litoral");
     1657    cc_reg_GQ.Add("09", "Wele-Nzas");
     1658    GEOIP_REGION_NAME.Add("GQ", cc_reg_GQ);
     1659    Hashtable cc_reg_GR = new Hashtable();
     1660    cc_reg_GR.Add("01", "Evros");
     1661    cc_reg_GR.Add("02", "Rodhopi");
     1662    cc_reg_GR.Add("03", "Xanthi");
     1663    cc_reg_GR.Add("04", "Drama");
     1664    cc_reg_GR.Add("05", "Serrai");
     1665    cc_reg_GR.Add("06", "Kilkis");
     1666    cc_reg_GR.Add("07", "Pella");
     1667    cc_reg_GR.Add("08", "Florina");
     1668    cc_reg_GR.Add("09", "Kastoria");
     1669    cc_reg_GR.Add("10", "Grevena");
     1670    cc_reg_GR.Add("11", "Kozani");
     1671    cc_reg_GR.Add("12", "Imathia");
     1672    cc_reg_GR.Add("13", "Thessaloniki");
     1673    cc_reg_GR.Add("14", "Kavala");
     1674    cc_reg_GR.Add("15", "Khalkidhiki");
     1675    cc_reg_GR.Add("16", "Pieria");
     1676    cc_reg_GR.Add("17", "Ioannina");
     1677    cc_reg_GR.Add("18", "Thesprotia");
     1678    cc_reg_GR.Add("19", "Preveza");
     1679    cc_reg_GR.Add("20", "Arta");
     1680    cc_reg_GR.Add("21", "Larisa");
     1681    cc_reg_GR.Add("22", "Trikala");
     1682    cc_reg_GR.Add("23", "Kardhitsa");
     1683    cc_reg_GR.Add("24", "Magnisia");
     1684    cc_reg_GR.Add("25", "Kerkira");
     1685    cc_reg_GR.Add("26", "Levkas");
     1686    cc_reg_GR.Add("27", "Kefallinia");
     1687    cc_reg_GR.Add("28", "Zakinthos");
     1688    cc_reg_GR.Add("29", "Fthiotis");
     1689    cc_reg_GR.Add("30", "Evritania");
     1690    cc_reg_GR.Add("31", "Aitolia kai Akarnania");
     1691    cc_reg_GR.Add("32", "Fokis");
     1692    cc_reg_GR.Add("33", "Voiotia");
     1693    cc_reg_GR.Add("34", "Evvoia");
     1694    cc_reg_GR.Add("35", "Attiki");
     1695    cc_reg_GR.Add("36", "Argolis");
     1696    cc_reg_GR.Add("37", "Korinthia");
     1697    cc_reg_GR.Add("38", "Akhaia");
     1698    cc_reg_GR.Add("39", "Ilia");
     1699    cc_reg_GR.Add("40", "Messinia");
     1700    cc_reg_GR.Add("41", "Arkadhia");
     1701    cc_reg_GR.Add("42", "Lakonia");
     1702    cc_reg_GR.Add("43", "Khania");
     1703    cc_reg_GR.Add("44", "Rethimni");
     1704    cc_reg_GR.Add("45", "Iraklion");
     1705    cc_reg_GR.Add("46", "Lasithi");
     1706    cc_reg_GR.Add("47", "Dhodhekanisos");
     1707    cc_reg_GR.Add("48", "Samos");
     1708    cc_reg_GR.Add("49", "Kikladhes");
     1709    cc_reg_GR.Add("50", "Khios");
     1710    cc_reg_GR.Add("51", "Lesvos");
     1711    GEOIP_REGION_NAME.Add("GR", cc_reg_GR);
     1712    Hashtable cc_reg_GT = new Hashtable();
     1713    cc_reg_GT.Add("01", "Alta Verapaz");
     1714    cc_reg_GT.Add("02", "Baja Verapaz");
     1715    cc_reg_GT.Add("03", "Chimaltenango");
     1716    cc_reg_GT.Add("04", "Chiquimula");
     1717    cc_reg_GT.Add("05", "El Progreso");
     1718    cc_reg_GT.Add("06", "Escuintla");
     1719    cc_reg_GT.Add("07", "Guatemala");
     1720    cc_reg_GT.Add("08", "Huehuetenango");
     1721    cc_reg_GT.Add("09", "Izabal");
     1722    cc_reg_GT.Add("10", "Jalapa");
     1723    cc_reg_GT.Add("11", "Jutiapa");
     1724    cc_reg_GT.Add("12", "Peten");
     1725    cc_reg_GT.Add("13", "Quetzaltenango");
     1726    cc_reg_GT.Add("14", "Quiche");
     1727    cc_reg_GT.Add("15", "Retalhuleu");
     1728    cc_reg_GT.Add("16", "Sacatepequez");
     1729    cc_reg_GT.Add("17", "San Marcos");
     1730    cc_reg_GT.Add("18", "Santa Rosa");
     1731    cc_reg_GT.Add("19", "Solola");
     1732    cc_reg_GT.Add("20", "Suchitepequez");
     1733    cc_reg_GT.Add("21", "Totonicapan");
     1734    cc_reg_GT.Add("22", "Zacapa");
     1735    GEOIP_REGION_NAME.Add("GT", cc_reg_GT);
     1736    Hashtable cc_reg_GW = new Hashtable();
     1737    cc_reg_GW.Add("01", "Bafata");
     1738    cc_reg_GW.Add("02", "Quinara");
     1739    cc_reg_GW.Add("04", "Oio");
     1740    cc_reg_GW.Add("05", "Bolama");
     1741    cc_reg_GW.Add("06", "Cacheu");
     1742    cc_reg_GW.Add("07", "Tombali");
     1743    cc_reg_GW.Add("10", "Gabu");
     1744    cc_reg_GW.Add("11", "Bissau");
     1745    cc_reg_GW.Add("12", "Biombo");
     1746    GEOIP_REGION_NAME.Add("GW", cc_reg_GW);
     1747    Hashtable cc_reg_GY = new Hashtable();
     1748    cc_reg_GY.Add("10", "Barima-Waini");
     1749    cc_reg_GY.Add("11", "Cuyuni-Mazaruni");
     1750    cc_reg_GY.Add("12", "Demerara-Mahaica");
     1751    cc_reg_GY.Add("13", "East Berbice-Corentyne");
     1752    cc_reg_GY.Add("14", "Essequibo Islands-West Demerara");
     1753    cc_reg_GY.Add("15", "Mahaica-Berbice");
     1754    cc_reg_GY.Add("16", "Pomeroon-Supenaam");
     1755    cc_reg_GY.Add("17", "Potaro-Siparuni");
     1756    cc_reg_GY.Add("18", "Upper Demerara-Berbice");
     1757    cc_reg_GY.Add("19", "Upper Takutu-Upper Essequibo");
     1758    GEOIP_REGION_NAME.Add("GY", cc_reg_GY);
     1759    Hashtable cc_reg_HN = new Hashtable();
     1760    cc_reg_HN.Add("01", "Atlantida");
     1761    cc_reg_HN.Add("02", "Choluteca");
     1762    cc_reg_HN.Add("03", "Colon");
     1763    cc_reg_HN.Add("04", "Comayagua");
     1764    cc_reg_HN.Add("05", "Copan");
     1765    cc_reg_HN.Add("06", "Cortes");
     1766    cc_reg_HN.Add("07", "El Paraiso");
     1767    cc_reg_HN.Add("08", "Francisco Morazan");
     1768    cc_reg_HN.Add("09", "Gracias a Dios");
     1769    cc_reg_HN.Add("10", "Intibuca");
     1770    cc_reg_HN.Add("11", "Islas de la Bahia");
     1771    cc_reg_HN.Add("12", "La Paz");
     1772    cc_reg_HN.Add("13", "Lempira");
     1773    cc_reg_HN.Add("14", "Ocotepeque");
     1774    cc_reg_HN.Add("15", "Olancho");
     1775    cc_reg_HN.Add("16", "Santa Barbara");
     1776    cc_reg_HN.Add("17", "Valle");
     1777    cc_reg_HN.Add("18", "Yoro");
     1778    GEOIP_REGION_NAME.Add("HN", cc_reg_HN);
     1779    Hashtable cc_reg_HR = new Hashtable();
     1780    cc_reg_HR.Add("01", "Bjelovarsko-Bilogorska");
     1781    cc_reg_HR.Add("02", "Brodsko-Posavska");
     1782    cc_reg_HR.Add("03", "Dubrovacko-Neretvanska");
     1783    cc_reg_HR.Add("04", "Istarska");
     1784    cc_reg_HR.Add("05", "Karlovacka");
     1785    cc_reg_HR.Add("06", "Koprivnicko-Krizevacka");
     1786    cc_reg_HR.Add("07", "Krapinsko-Zagorska");
     1787    cc_reg_HR.Add("08", "Licko-Senjska");
     1788    cc_reg_HR.Add("09", "Medimurska");
     1789    cc_reg_HR.Add("10", "Osjecko-Baranjska");
     1790    cc_reg_HR.Add("11", "Pozesko-Slavonska");
     1791    cc_reg_HR.Add("12", "Primorsko-Goranska");
     1792    cc_reg_HR.Add("13", "Sibensko-Kninska");
     1793    cc_reg_HR.Add("14", "Sisacko-Moslavacka");
     1794    cc_reg_HR.Add("15", "Splitsko-Dalmatinska");
     1795    cc_reg_HR.Add("16", "Varazdinska");
     1796    cc_reg_HR.Add("17", "Viroviticko-Podravska");
     1797    cc_reg_HR.Add("18", "Vukovarsko-Srijemska");
     1798    cc_reg_HR.Add("19", "Zadarska");
     1799    cc_reg_HR.Add("20", "Zagrebacka");
     1800    cc_reg_HR.Add("21", "Grad Zagreb");
     1801    GEOIP_REGION_NAME.Add("HR", cc_reg_HR);
     1802    Hashtable cc_reg_HT = new Hashtable();
     1803    cc_reg_HT.Add("03", "Nord-Ouest");
     1804    cc_reg_HT.Add("06", "Artibonite");
     1805    cc_reg_HT.Add("07", "Centre");
     1806    cc_reg_HT.Add("09", "Nord");
     1807    cc_reg_HT.Add("10", "Nord-Est");
     1808    cc_reg_HT.Add("11", "Ouest");
     1809    cc_reg_HT.Add("12", "Sud");
     1810    cc_reg_HT.Add("13", "Sud-Est");
     1811    cc_reg_HT.Add("14", "Grand' Anse");
     1812    cc_reg_HT.Add("15", "Nippes");
     1813    GEOIP_REGION_NAME.Add("HT", cc_reg_HT);
     1814    Hashtable cc_reg_HU = new Hashtable();
     1815    cc_reg_HU.Add("01", "Bacs-Kiskun");
     1816    cc_reg_HU.Add("02", "Baranya");
     1817    cc_reg_HU.Add("03", "Bekes");
     1818    cc_reg_HU.Add("04", "Borsod-Abauj-Zemplen");
     1819    cc_reg_HU.Add("05", "Budapest");
     1820    cc_reg_HU.Add("06", "Csongrad");
     1821    cc_reg_HU.Add("07", "Debrecen");
     1822    cc_reg_HU.Add("08", "Fejer");
     1823    cc_reg_HU.Add("09", "Gyor-Moson-Sopron");
     1824    cc_reg_HU.Add("10", "Hajdu-Bihar");
     1825    cc_reg_HU.Add("11", "Heves");
     1826    cc_reg_HU.Add("12", "Komarom-Esztergom");
     1827    cc_reg_HU.Add("13", "Miskolc");
     1828    cc_reg_HU.Add("14", "Nograd");
     1829    cc_reg_HU.Add("15", "Pecs");
     1830    cc_reg_HU.Add("16", "Pest");
     1831    cc_reg_HU.Add("17", "Somogy");
     1832    cc_reg_HU.Add("18", "Szabolcs-Szatmar-Bereg");
     1833    cc_reg_HU.Add("19", "Szeged");
     1834    cc_reg_HU.Add("20", "Jasz-Nagykun-Szolnok");
     1835    cc_reg_HU.Add("21", "Tolna");
     1836    cc_reg_HU.Add("22", "Vas");
     1837    cc_reg_HU.Add("23", "Veszprem");
     1838    cc_reg_HU.Add("24", "Zala");
     1839    cc_reg_HU.Add("25", "Gyor");
     1840    cc_reg_HU.Add("26", "Bekescsaba");
     1841    cc_reg_HU.Add("27", "Dunaujvaros");
     1842    cc_reg_HU.Add("28", "Eger");
     1843    cc_reg_HU.Add("29", "Hodmezovasarhely");
     1844    cc_reg_HU.Add("30", "Kaposvar");
     1845    cc_reg_HU.Add("31", "Kecskemet");
     1846    cc_reg_HU.Add("32", "Nagykanizsa");
     1847    cc_reg_HU.Add("33", "Nyiregyhaza");
     1848    cc_reg_HU.Add("34", "Sopron");
     1849    cc_reg_HU.Add("35", "Szekesfehervar");
     1850    cc_reg_HU.Add("36", "Szolnok");
     1851    cc_reg_HU.Add("37", "Szombathely");
     1852    cc_reg_HU.Add("38", "Tatabanya");
     1853    cc_reg_HU.Add("39", "Veszprem");
     1854    cc_reg_HU.Add("40", "Zalaegerszeg");
     1855    cc_reg_HU.Add("41", "Salgotarjan");
     1856    cc_reg_HU.Add("42", "Szekszard");
     1857    GEOIP_REGION_NAME.Add("HU", cc_reg_HU);
     1858    Hashtable cc_reg_ID = new Hashtable();
     1859    cc_reg_ID.Add("01", "Aceh");
     1860    cc_reg_ID.Add("02", "Bali");
     1861    cc_reg_ID.Add("03", "Bengkulu");
     1862    cc_reg_ID.Add("04", "Jakarta Raya");
     1863    cc_reg_ID.Add("05", "Jambi");
     1864    cc_reg_ID.Add("06", "Jawa Barat");
     1865    cc_reg_ID.Add("07", "Jawa Tengah");
     1866    cc_reg_ID.Add("08", "Jawa Timur");
     1867    cc_reg_ID.Add("09", "Papua");
     1868    cc_reg_ID.Add("10", "Yogyakarta");
     1869    cc_reg_ID.Add("11", "Kalimantan Barat");
     1870    cc_reg_ID.Add("12", "Kalimantan Selatan");
     1871    cc_reg_ID.Add("13", "Kalimantan Tengah");
     1872    cc_reg_ID.Add("14", "Kalimantan Timur");
     1873    cc_reg_ID.Add("15", "Lampung");
     1874    cc_reg_ID.Add("16", "Maluku");
     1875    cc_reg_ID.Add("17", "Nusa Tenggara Barat");
     1876    cc_reg_ID.Add("18", "Nusa Tenggara Timur");
     1877    cc_reg_ID.Add("19", "Riau");
     1878    cc_reg_ID.Add("20", "Sulawesi Selatan");
     1879    cc_reg_ID.Add("21", "Sulawesi Tengah");
     1880    cc_reg_ID.Add("22", "Sulawesi Tenggara");
     1881    cc_reg_ID.Add("23", "Sulawesi Utara");
     1882    cc_reg_ID.Add("24", "Sumatera Barat");
     1883    cc_reg_ID.Add("25", "Sumatera Selatan");
     1884    cc_reg_ID.Add("26", "Sumatera Utara");
     1885    cc_reg_ID.Add("28", "Maluku");
     1886    cc_reg_ID.Add("29", "Maluku Utara");
     1887    cc_reg_ID.Add("30", "Jawa Barat");
     1888    cc_reg_ID.Add("31", "Sulawesi Utara");
     1889    cc_reg_ID.Add("32", "Sumatera Selatan");
     1890    cc_reg_ID.Add("33", "Banten");
     1891    cc_reg_ID.Add("34", "Gorontalo");
     1892    cc_reg_ID.Add("35", "Kepulauan Bangka Belitung");
     1893    cc_reg_ID.Add("36", "Papua");
     1894    cc_reg_ID.Add("37", "Riau");
     1895    cc_reg_ID.Add("38", "Sulawesi Selatan");
     1896    cc_reg_ID.Add("39", "Irian Jaya Barat");
     1897    cc_reg_ID.Add("40", "Kepulauan Riau");
     1898    cc_reg_ID.Add("41", "Sulawesi Barat");
     1899    GEOIP_REGION_NAME.Add("ID", cc_reg_ID);
     1900    Hashtable cc_reg_IE = new Hashtable();
     1901    cc_reg_IE.Add("01", "Carlow");
     1902    cc_reg_IE.Add("02", "Cavan");
     1903    cc_reg_IE.Add("03", "Clare");
     1904    cc_reg_IE.Add("04", "Cork");
     1905    cc_reg_IE.Add("06", "Donegal");
     1906    cc_reg_IE.Add("07", "Dublin");
     1907    cc_reg_IE.Add("10", "Galway");
     1908    cc_reg_IE.Add("11", "Kerry");
     1909    cc_reg_IE.Add("12", "Kildare");
     1910    cc_reg_IE.Add("13", "Kilkenny");
     1911    cc_reg_IE.Add("14", "Leitrim");
     1912    cc_reg_IE.Add("15", "Laois");
     1913    cc_reg_IE.Add("16", "Limerick");
     1914    cc_reg_IE.Add("18", "Longford");
     1915    cc_reg_IE.Add("19", "Louth");
     1916    cc_reg_IE.Add("20", "Mayo");
     1917    cc_reg_IE.Add("21", "Meath");
     1918    cc_reg_IE.Add("22", "Monaghan");
     1919    cc_reg_IE.Add("23", "Offaly");
     1920    cc_reg_IE.Add("24", "Roscommon");
     1921    cc_reg_IE.Add("25", "Sligo");
     1922    cc_reg_IE.Add("26", "Tipperary");
     1923    cc_reg_IE.Add("27", "Waterford");
     1924    cc_reg_IE.Add("29", "Westmeath");
     1925    cc_reg_IE.Add("30", "Wexford");
     1926    cc_reg_IE.Add("31", "Wicklow");
     1927    GEOIP_REGION_NAME.Add("IE", cc_reg_IE);
     1928    Hashtable cc_reg_IL = new Hashtable();
     1929    cc_reg_IL.Add("01", "HaDarom");
     1930    cc_reg_IL.Add("02", "HaMerkaz");
     1931    cc_reg_IL.Add("03", "HaZafon");
     1932    cc_reg_IL.Add("04", "Hefa");
     1933    cc_reg_IL.Add("05", "Tel Aviv");
     1934    cc_reg_IL.Add("06", "Yerushalayim");
     1935    GEOIP_REGION_NAME.Add("IL", cc_reg_IL);
     1936    Hashtable cc_reg_IN = new Hashtable();
     1937    cc_reg_IN.Add("01", "Andaman and Nicobar Islands");
     1938    cc_reg_IN.Add("02", "Andhra Pradesh");
     1939    cc_reg_IN.Add("03", "Assam");
     1940    cc_reg_IN.Add("05", "Chandigarh");
     1941    cc_reg_IN.Add("06", "Dadra and Nagar Haveli");
     1942    cc_reg_IN.Add("07", "Delhi");
     1943    cc_reg_IN.Add("09", "Gujarat");
     1944    cc_reg_IN.Add("10", "Haryana");
     1945    cc_reg_IN.Add("11", "Himachal Pradesh");
     1946    cc_reg_IN.Add("12", "Jammu and Kashmir");
     1947    cc_reg_IN.Add("13", "Kerala");
     1948    cc_reg_IN.Add("14", "Lakshadweep");
     1949    cc_reg_IN.Add("16", "Maharashtra");
     1950    cc_reg_IN.Add("17", "Manipur");
     1951    cc_reg_IN.Add("18", "Meghalaya");
     1952    cc_reg_IN.Add("19", "Karnataka");
     1953    cc_reg_IN.Add("20", "Nagaland");
     1954    cc_reg_IN.Add("21", "Orissa");
     1955    cc_reg_IN.Add("22", "Puducherry");
     1956    cc_reg_IN.Add("23", "Punjab");
     1957    cc_reg_IN.Add("24", "Rajasthan");
     1958    cc_reg_IN.Add("25", "Tamil Nadu");
     1959    cc_reg_IN.Add("26", "Tripura");
     1960    cc_reg_IN.Add("28", "West Bengal");
     1961    cc_reg_IN.Add("29", "Sikkim");
     1962    cc_reg_IN.Add("30", "Arunachal Pradesh");
     1963    cc_reg_IN.Add("31", "Mizoram");
     1964    cc_reg_IN.Add("32", "Daman and Diu");
     1965    cc_reg_IN.Add("33", "Goa");
     1966    cc_reg_IN.Add("34", "Bihar");
     1967    cc_reg_IN.Add("35", "Madhya Pradesh");
     1968    cc_reg_IN.Add("36", "Uttar Pradesh");
     1969    cc_reg_IN.Add("37", "Chhattisgarh");
     1970    cc_reg_IN.Add("38", "Jharkhand");
     1971    cc_reg_IN.Add("39", "Uttarakhand");
     1972    GEOIP_REGION_NAME.Add("IN", cc_reg_IN);
     1973    Hashtable cc_reg_IQ = new Hashtable();
     1974    cc_reg_IQ.Add("01", "Al Anbar");
     1975    cc_reg_IQ.Add("02", "Al Basrah");
     1976    cc_reg_IQ.Add("03", "Al Muthanna");
     1977    cc_reg_IQ.Add("04", "Al Qadisiyah");
     1978    cc_reg_IQ.Add("05", "As Sulaymaniyah");
     1979    cc_reg_IQ.Add("06", "Babil");
     1980    cc_reg_IQ.Add("07", "Baghdad");
     1981    cc_reg_IQ.Add("08", "Dahuk");
     1982    cc_reg_IQ.Add("09", "Dhi Qar");
     1983    cc_reg_IQ.Add("10", "Diyala");
     1984    cc_reg_IQ.Add("11", "Arbil");
     1985    cc_reg_IQ.Add("12", "Karbala'");
     1986    cc_reg_IQ.Add("13", "At Ta'mim");
     1987    cc_reg_IQ.Add("14", "Maysan");
     1988    cc_reg_IQ.Add("15", "Ninawa");
     1989    cc_reg_IQ.Add("16", "Wasit");
     1990    cc_reg_IQ.Add("17", "An Najaf");
     1991    cc_reg_IQ.Add("18", "Salah ad Din");
     1992    GEOIP_REGION_NAME.Add("IQ", cc_reg_IQ);
     1993    Hashtable cc_reg_IR = new Hashtable();
     1994    cc_reg_IR.Add("01", "Azarbayjan-e Bakhtari");
     1995    cc_reg_IR.Add("02", "Azarbayjan-e Khavari");
     1996    cc_reg_IR.Add("03", "Chahar Mahall va Bakhtiari");
     1997    cc_reg_IR.Add("04", "Sistan va Baluchestan");
     1998    cc_reg_IR.Add("05", "Kohkiluyeh va Buyer Ahmadi");
     1999    cc_reg_IR.Add("07", "Fars");
     2000    cc_reg_IR.Add("08", "Gilan");
     2001    cc_reg_IR.Add("09", "Hamadan");
     2002    cc_reg_IR.Add("10", "Ilam");
     2003    cc_reg_IR.Add("11", "Hormozgan");
     2004    cc_reg_IR.Add("12", "Kerman");
     2005    cc_reg_IR.Add("13", "Bakhtaran");
     2006    cc_reg_IR.Add("15", "Khuzestan");
     2007    cc_reg_IR.Add("16", "Kordestan");
     2008    cc_reg_IR.Add("17", "Mazandaran");
     2009    cc_reg_IR.Add("18", "Semnan Province");
     2010    cc_reg_IR.Add("19", "Markazi");
     2011    cc_reg_IR.Add("21", "Zanjan");
     2012    cc_reg_IR.Add("22", "Bushehr");
     2013    cc_reg_IR.Add("23", "Lorestan");
     2014    cc_reg_IR.Add("24", "Markazi");
     2015    cc_reg_IR.Add("25", "Semnan");
     2016    cc_reg_IR.Add("26", "Tehran");
     2017    cc_reg_IR.Add("27", "Zanjan");
     2018    cc_reg_IR.Add("28", "Esfahan");
     2019    cc_reg_IR.Add("29", "Kerman");
     2020    cc_reg_IR.Add("30", "Khorasan");
     2021    cc_reg_IR.Add("31", "Yazd");
     2022    cc_reg_IR.Add("32", "Ardabil");
     2023    cc_reg_IR.Add("33", "East Azarbaijan");
     2024    cc_reg_IR.Add("34", "Markazi");
     2025    cc_reg_IR.Add("35", "Mazandaran");
     2026    cc_reg_IR.Add("36", "Zanjan");
     2027    cc_reg_IR.Add("37", "Golestan");
     2028    cc_reg_IR.Add("38", "Qazvin");
     2029    cc_reg_IR.Add("39", "Qom");
     2030    cc_reg_IR.Add("40", "Yazd");
     2031    cc_reg_IR.Add("41", "Khorasan-e Janubi");
     2032    cc_reg_IR.Add("42", "Khorasan-e Razavi");
     2033    cc_reg_IR.Add("43", "Khorasan-e Shemali");
     2034    GEOIP_REGION_NAME.Add("IR", cc_reg_IR);
     2035    Hashtable cc_reg_IS = new Hashtable();
     2036    cc_reg_IS.Add("03", "Arnessysla");
     2037    cc_reg_IS.Add("05", "Austur-Hunavatnssysla");
     2038    cc_reg_IS.Add("06", "Austur-Skaftafellssysla");
     2039    cc_reg_IS.Add("07", "Borgarfjardarsysla");
     2040    cc_reg_IS.Add("09", "Eyjafjardarsysla");
     2041    cc_reg_IS.Add("10", "Gullbringusysla");
     2042    cc_reg_IS.Add("15", "Kjosarsysla");
     2043    cc_reg_IS.Add("17", "Myrasysla");
     2044    cc_reg_IS.Add("20", "Nordur-Mulasysla");
     2045    cc_reg_IS.Add("21", "Nordur-Tingeyjarsysla");
     2046    cc_reg_IS.Add("23", "Rangarvallasysla");
     2047    cc_reg_IS.Add("28", "Skagafjardarsysla");
     2048    cc_reg_IS.Add("29", "Snafellsnes- og Hnappadalssysla");
     2049    cc_reg_IS.Add("30", "Strandasysla");
     2050    cc_reg_IS.Add("31", "Sudur-Mulasysla");
     2051    cc_reg_IS.Add("32", "Sudur-Tingeyjarsysla");
     2052    cc_reg_IS.Add("34", "Vestur-Bardastrandarsysla");
     2053    cc_reg_IS.Add("35", "Vestur-Hunavatnssysla");
     2054    cc_reg_IS.Add("36", "Vestur-Isafjardarsysla");
     2055    cc_reg_IS.Add("37", "Vestur-Skaftafellssysla");
     2056    cc_reg_IS.Add("40", "Norourland Eystra");
     2057    cc_reg_IS.Add("41", "Norourland Vestra");
     2058    cc_reg_IS.Add("42", "Suourland");
     2059    cc_reg_IS.Add("43", "Suournes");
     2060    cc_reg_IS.Add("44", "Vestfiroir");
     2061    cc_reg_IS.Add("45", "Vesturland");
     2062    GEOIP_REGION_NAME.Add("IS", cc_reg_IS);
     2063    Hashtable cc_reg_IT = new Hashtable();
     2064    cc_reg_IT.Add("01", "Abruzzi");
     2065    cc_reg_IT.Add("02", "Basilicata");
     2066    cc_reg_IT.Add("03", "Calabria");
     2067    cc_reg_IT.Add("04", "Campania");
     2068    cc_reg_IT.Add("05", "Emilia-Romagna");
     2069    cc_reg_IT.Add("06", "Friuli-Venezia Giulia");
     2070    cc_reg_IT.Add("07", "Lazio");
     2071    cc_reg_IT.Add("08", "Liguria");
     2072    cc_reg_IT.Add("09", "Lombardia");
     2073    cc_reg_IT.Add("10", "Marche");
     2074    cc_reg_IT.Add("11", "Molise");
     2075    cc_reg_IT.Add("12", "Piemonte");
     2076    cc_reg_IT.Add("13", "Puglia");
     2077    cc_reg_IT.Add("14", "Sardegna");
     2078    cc_reg_IT.Add("15", "Sicilia");
     2079    cc_reg_IT.Add("16", "Toscana");
     2080    cc_reg_IT.Add("17", "Trentino-Alto Adige");
     2081    cc_reg_IT.Add("18", "Umbria");
     2082    cc_reg_IT.Add("19", "Valle d'Aosta");
     2083    cc_reg_IT.Add("20", "Veneto");
     2084    GEOIP_REGION_NAME.Add("IT", cc_reg_IT);
     2085    Hashtable cc_reg_JM = new Hashtable();
     2086    cc_reg_JM.Add("01", "Clarendon");
     2087    cc_reg_JM.Add("02", "Hanover");
     2088    cc_reg_JM.Add("04", "Manchester");
     2089    cc_reg_JM.Add("07", "Portland");
     2090    cc_reg_JM.Add("08", "Saint Andrew");
     2091    cc_reg_JM.Add("09", "Saint Ann");
     2092    cc_reg_JM.Add("10", "Saint Catherine");
     2093    cc_reg_JM.Add("11", "Saint Elizabeth");
     2094    cc_reg_JM.Add("12", "Saint James");
     2095    cc_reg_JM.Add("13", "Saint Mary");
     2096    cc_reg_JM.Add("14", "Saint Thomas");
     2097    cc_reg_JM.Add("15", "Trelawny");
     2098    cc_reg_JM.Add("16", "Westmoreland");
     2099    cc_reg_JM.Add("17", "Kingston");
     2100    GEOIP_REGION_NAME.Add("JM", cc_reg_JM);
     2101    Hashtable cc_reg_JO = new Hashtable();
     2102    cc_reg_JO.Add("02", "Al Balqa'");
     2103    cc_reg_JO.Add("07", "Ma");
     2104    cc_reg_JO.Add("09", "Al Karak");
     2105    cc_reg_JO.Add("10", "Al Mafraq");
     2106    cc_reg_JO.Add("11", "Amman Governorate");
     2107    cc_reg_JO.Add("12", "At Tafilah");
     2108    cc_reg_JO.Add("13", "Az Zarqa");
     2109    cc_reg_JO.Add("14", "Irbid");
     2110    cc_reg_JO.Add("16", "Amman");
     2111    GEOIP_REGION_NAME.Add("JO", cc_reg_JO);
     2112    Hashtable cc_reg_JP = new Hashtable();
     2113    cc_reg_JP.Add("01", "Aichi");
     2114    cc_reg_JP.Add("02", "Akita");
     2115    cc_reg_JP.Add("03", "Aomori");
     2116    cc_reg_JP.Add("04", "Chiba");
     2117    cc_reg_JP.Add("05", "Ehime");
     2118    cc_reg_JP.Add("06", "Fukui");
     2119    cc_reg_JP.Add("07", "Fukuoka");
     2120    cc_reg_JP.Add("08", "Fukushima");
     2121    cc_reg_JP.Add("09", "Gifu");
     2122    cc_reg_JP.Add("10", "Gumma");
     2123    cc_reg_JP.Add("11", "Hiroshima");
     2124    cc_reg_JP.Add("12", "Hokkaido");
     2125    cc_reg_JP.Add("13", "Hyogo");
     2126    cc_reg_JP.Add("14", "Ibaraki");
     2127    cc_reg_JP.Add("15", "Ishikawa");
     2128    cc_reg_JP.Add("16", "Iwate");
     2129    cc_reg_JP.Add("17", "Kagawa");
     2130    cc_reg_JP.Add("18", "Kagoshima");
     2131    cc_reg_JP.Add("19", "Kanagawa");
     2132    cc_reg_JP.Add("20", "Kochi");
     2133    cc_reg_JP.Add("21", "Kumamoto");
     2134    cc_reg_JP.Add("22", "Kyoto");
     2135    cc_reg_JP.Add("23", "Mie");
     2136    cc_reg_JP.Add("24", "Miyagi");
     2137    cc_reg_JP.Add("25", "Miyazaki");
     2138    cc_reg_JP.Add("26", "Nagano");
     2139    cc_reg_JP.Add("27", "Nagasaki");
     2140    cc_reg_JP.Add("28", "Nara");
     2141    cc_reg_JP.Add("29", "Niigata");
     2142    cc_reg_JP.Add("30", "Oita");
     2143    cc_reg_JP.Add("31", "Okayama");
     2144    cc_reg_JP.Add("32", "Osaka");
     2145    cc_reg_JP.Add("33", "Saga");
     2146    cc_reg_JP.Add("34", "Saitama");
     2147    cc_reg_JP.Add("35", "Shiga");
     2148    cc_reg_JP.Add("36", "Shimane");
     2149    cc_reg_JP.Add("37", "Shizuoka");
     2150    cc_reg_JP.Add("38", "Tochigi");
     2151    cc_reg_JP.Add("39", "Tokushima");
     2152    cc_reg_JP.Add("40", "Tokyo");
     2153    cc_reg_JP.Add("41", "Tottori");
     2154    cc_reg_JP.Add("42", "Toyama");
     2155    cc_reg_JP.Add("43", "Wakayama");
     2156    cc_reg_JP.Add("44", "Yamagata");
     2157    cc_reg_JP.Add("45", "Yamaguchi");
     2158    cc_reg_JP.Add("46", "Yamanashi");
     2159    cc_reg_JP.Add("47", "Okinawa");
     2160    GEOIP_REGION_NAME.Add("JP", cc_reg_JP);
     2161    Hashtable cc_reg_KE = new Hashtable();
     2162    cc_reg_KE.Add("01", "Central");
     2163    cc_reg_KE.Add("02", "Coast");
     2164    cc_reg_KE.Add("03", "Eastern");
     2165    cc_reg_KE.Add("05", "Nairobi Area");
     2166    cc_reg_KE.Add("06", "North-Eastern");
     2167    cc_reg_KE.Add("07", "Nyanza");
     2168    cc_reg_KE.Add("08", "Rift Valley");
     2169    cc_reg_KE.Add("09", "Western");
     2170    GEOIP_REGION_NAME.Add("KE", cc_reg_KE);
     2171    Hashtable cc_reg_KG = new Hashtable();
     2172    cc_reg_KG.Add("01", "Bishkek");
     2173    cc_reg_KG.Add("02", "Chuy");
     2174    cc_reg_KG.Add("03", "Jalal-Abad");
     2175    cc_reg_KG.Add("04", "Naryn");
     2176    cc_reg_KG.Add("05", "Osh");
     2177    cc_reg_KG.Add("06", "Talas");
     2178    cc_reg_KG.Add("07", "Ysyk-Kol");
     2179    cc_reg_KG.Add("08", "Osh");
     2180    cc_reg_KG.Add("09", "Batken");
     2181    GEOIP_REGION_NAME.Add("KG", cc_reg_KG);
     2182    Hashtable cc_reg_KH = new Hashtable();
     2183    cc_reg_KH.Add("00", "Banteay Meanchey");
     2184    cc_reg_KH.Add("01", "Batdambang");
     2185    cc_reg_KH.Add("02", "Kampong Cham");
     2186    cc_reg_KH.Add("03", "Kampong Chhnang");
     2187    cc_reg_KH.Add("04", "Kampong Speu");
     2188    cc_reg_KH.Add("05", "Kampong Thum");
     2189    cc_reg_KH.Add("06", "Kampot");
     2190    cc_reg_KH.Add("07", "Kandal");
     2191    cc_reg_KH.Add("08", "Koh Kong");
     2192    cc_reg_KH.Add("09", "Kracheh");
     2193    cc_reg_KH.Add("10", "Mondulkiri");
     2194    cc_reg_KH.Add("11", "Phnum Penh");
     2195    cc_reg_KH.Add("12", "Pursat");
     2196    cc_reg_KH.Add("13", "Preah Vihear");
     2197    cc_reg_KH.Add("14", "Prey Veng");
     2198    cc_reg_KH.Add("15", "Ratanakiri Kiri");
     2199    cc_reg_KH.Add("16", "Siem Reap");
     2200    cc_reg_KH.Add("17", "Stung Treng");
     2201    cc_reg_KH.Add("18", "Svay Rieng");
     2202    cc_reg_KH.Add("19", "Takeo");
     2203    cc_reg_KH.Add("29", "Batdambang");
     2204    cc_reg_KH.Add("30", "Pailin");
     2205    GEOIP_REGION_NAME.Add("KH", cc_reg_KH);
     2206    Hashtable cc_reg_KI = new Hashtable();
     2207    cc_reg_KI.Add("01", "Gilbert Islands");
     2208    cc_reg_KI.Add("02", "Line Islands");
     2209    cc_reg_KI.Add("03", "Phoenix Islands");
     2210    GEOIP_REGION_NAME.Add("KI", cc_reg_KI);
     2211    Hashtable cc_reg_KM = new Hashtable();
     2212    cc_reg_KM.Add("01", "Anjouan");
     2213    cc_reg_KM.Add("02", "Grande Comore");
     2214    cc_reg_KM.Add("03", "Moheli");
     2215    GEOIP_REGION_NAME.Add("KM", cc_reg_KM);
     2216    Hashtable cc_reg_KN = new Hashtable();
     2217    cc_reg_KN.Add("01", "Christ Church Nichola Town");
     2218    cc_reg_KN.Add("02", "Saint Anne Sandy Point");
     2219    cc_reg_KN.Add("03", "Saint George Basseterre");
     2220    cc_reg_KN.Add("04", "Saint George Gingerland");
     2221    cc_reg_KN.Add("05", "Saint James Windward");
     2222    cc_reg_KN.Add("06", "Saint John Capisterre");
     2223    cc_reg_KN.Add("07", "Saint John Figtree");
     2224    cc_reg_KN.Add("08", "Saint Mary Cayon");
     2225    cc_reg_KN.Add("09", "Saint Paul Capisterre");
     2226    cc_reg_KN.Add("10", "Saint Paul Charlestown");
     2227    cc_reg_KN.Add("11", "Saint Peter Basseterre");
     2228    cc_reg_KN.Add("12", "Saint Thomas Lowland");
     2229    cc_reg_KN.Add("13", "Saint Thomas Middle Island");
     2230    cc_reg_KN.Add("15", "Trinity Palmetto Point");
     2231    GEOIP_REGION_NAME.Add("KN", cc_reg_KN);
     2232    Hashtable cc_reg_KP = new Hashtable();
     2233    cc_reg_KP.Add("01", "Chagang-do");
     2234    cc_reg_KP.Add("03", "Hamgyong-namdo");
     2235    cc_reg_KP.Add("06", "Hwanghae-namdo");
     2236    cc_reg_KP.Add("07", "Hwanghae-bukto");
     2237    cc_reg_KP.Add("08", "Kaesong-si");
     2238    cc_reg_KP.Add("09", "Kangwon-do");
     2239    cc_reg_KP.Add("11", "P'yongan-bukto");
     2240    cc_reg_KP.Add("12", "P'yongyang-si");
     2241    cc_reg_KP.Add("13", "Yanggang-do");
     2242    cc_reg_KP.Add("14", "Namp'o-si");
     2243    cc_reg_KP.Add("15", "P'yongan-namdo");
     2244    cc_reg_KP.Add("17", "Hamgyong-bukto");
     2245    cc_reg_KP.Add("18", "Najin Sonbong-si");
     2246    GEOIP_REGION_NAME.Add("KP", cc_reg_KP);
     2247    Hashtable cc_reg_KR = new Hashtable();
     2248    cc_reg_KR.Add("01", "Cheju-do");
     2249    cc_reg_KR.Add("03", "Cholla-bukto");
     2250    cc_reg_KR.Add("05", "Ch'ungch'ong-bukto");
     2251    cc_reg_KR.Add("06", "Kangwon-do");
     2252    cc_reg_KR.Add("10", "Pusan-jikhalsi");
     2253    cc_reg_KR.Add("11", "Seoul-t'ukpyolsi");
     2254    cc_reg_KR.Add("12", "Inch'on-jikhalsi");
     2255    cc_reg_KR.Add("13", "Kyonggi-do");
     2256    cc_reg_KR.Add("14", "Kyongsang-bukto");
     2257    cc_reg_KR.Add("15", "Taegu-jikhalsi");
     2258    cc_reg_KR.Add("16", "Cholla-namdo");
     2259    cc_reg_KR.Add("17", "Ch'ungch'ong-namdo");
     2260    cc_reg_KR.Add("18", "Kwangju-jikhalsi");
     2261    cc_reg_KR.Add("19", "Taejon-jikhalsi");
     2262    cc_reg_KR.Add("20", "Kyongsang-namdo");
     2263    cc_reg_KR.Add("21", "Ulsan-gwangyoksi");
     2264    GEOIP_REGION_NAME.Add("KR", cc_reg_KR);
     2265    Hashtable cc_reg_KW = new Hashtable();
     2266    cc_reg_KW.Add("01", "Al Ahmadi");
     2267    cc_reg_KW.Add("02", "Al Kuwayt");
     2268    cc_reg_KW.Add("05", "Al Jahra");
     2269    cc_reg_KW.Add("07", "Al Farwaniyah");
     2270    cc_reg_KW.Add("08", "Hawalli");
     2271    cc_reg_KW.Add("09", "Mubarak al Kabir");
     2272    GEOIP_REGION_NAME.Add("KW", cc_reg_KW);
     2273    Hashtable cc_reg_KY = new Hashtable();
     2274    cc_reg_KY.Add("01", "Creek");
     2275    cc_reg_KY.Add("02", "Eastern");
     2276    cc_reg_KY.Add("03", "Midland");
     2277    cc_reg_KY.Add("04", "South Town");
     2278    cc_reg_KY.Add("05", "Spot Bay");
     2279    cc_reg_KY.Add("06", "Stake Bay");
     2280    cc_reg_KY.Add("07", "West End");
     2281    cc_reg_KY.Add("08", "Western");
     2282    GEOIP_REGION_NAME.Add("KY", cc_reg_KY);
     2283    Hashtable cc_reg_KZ = new Hashtable();
     2284    cc_reg_KZ.Add("01", "Almaty");
     2285    cc_reg_KZ.Add("02", "Almaty City");
     2286    cc_reg_KZ.Add("03", "Aqmola");
     2287    cc_reg_KZ.Add("04", "Aqtobe");
     2288    cc_reg_KZ.Add("05", "Astana");
     2289    cc_reg_KZ.Add("06", "Atyrau");
     2290    cc_reg_KZ.Add("07", "West Kazakhstan");
     2291    cc_reg_KZ.Add("08", "Bayqonyr");
     2292    cc_reg_KZ.Add("09", "Mangghystau");
     2293    cc_reg_KZ.Add("10", "South Kazakhstan");
     2294    cc_reg_KZ.Add("11", "Pavlodar");
     2295    cc_reg_KZ.Add("12", "Qaraghandy");
     2296    cc_reg_KZ.Add("13", "Qostanay");
     2297    cc_reg_KZ.Add("14", "Qyzylorda");
     2298    cc_reg_KZ.Add("15", "East Kazakhstan");
     2299    cc_reg_KZ.Add("16", "North Kazakhstan");
     2300    cc_reg_KZ.Add("17", "Zhambyl");
     2301    GEOIP_REGION_NAME.Add("KZ", cc_reg_KZ);
     2302    Hashtable cc_reg_LA = new Hashtable();
     2303    cc_reg_LA.Add("01", "Attapu");
     2304    cc_reg_LA.Add("02", "Champasak");
     2305    cc_reg_LA.Add("03", "Houaphan");
     2306    cc_reg_LA.Add("04", "Khammouan");
     2307    cc_reg_LA.Add("05", "Louang Namtha");
     2308    cc_reg_LA.Add("07", "Oudomxai");
     2309    cc_reg_LA.Add("08", "Phongsali");
     2310    cc_reg_LA.Add("09", "Saravan");
     2311    cc_reg_LA.Add("10", "Savannakhet");
     2312    cc_reg_LA.Add("11", "Vientiane");
     2313    cc_reg_LA.Add("13", "Xaignabouri");
     2314    cc_reg_LA.Add("14", "Xiangkhoang");
     2315    cc_reg_LA.Add("17", "Louangphrabang");
     2316    GEOIP_REGION_NAME.Add("LA", cc_reg_LA);
     2317    Hashtable cc_reg_LB = new Hashtable();
     2318    cc_reg_LB.Add("01", "Beqaa");
     2319    cc_reg_LB.Add("02", "Al Janub");
     2320    cc_reg_LB.Add("03", "Liban-Nord");
     2321    cc_reg_LB.Add("04", "Beyrouth");
     2322    cc_reg_LB.Add("05", "Mont-Liban");
     2323    cc_reg_LB.Add("06", "Liban-Sud");
     2324    cc_reg_LB.Add("07", "Nabatiye");
     2325    cc_reg_LB.Add("08", "Beqaa");
     2326    cc_reg_LB.Add("09", "Liban-Nord");
     2327    cc_reg_LB.Add("10", "Aakk,r");
     2328    cc_reg_LB.Add("11", "Baalbek-Hermel");
     2329    GEOIP_REGION_NAME.Add("LB", cc_reg_LB);
     2330    Hashtable cc_reg_LC = new Hashtable();
     2331    cc_reg_LC.Add("01", "Anse-la-Raye");
     2332    cc_reg_LC.Add("02", "Dauphin");
     2333    cc_reg_LC.Add("03", "Castries");
     2334    cc_reg_LC.Add("04", "Choiseul");
     2335    cc_reg_LC.Add("05", "Dennery");
     2336    cc_reg_LC.Add("06", "Gros-Islet");
     2337    cc_reg_LC.Add("07", "Laborie");
     2338    cc_reg_LC.Add("08", "Micoud");
     2339    cc_reg_LC.Add("09", "Soufriere");
     2340    cc_reg_LC.Add("10", "Vieux-Fort");
     2341    cc_reg_LC.Add("11", "Praslin");
     2342    GEOIP_REGION_NAME.Add("LC", cc_reg_LC);
     2343    Hashtable cc_reg_LI = new Hashtable();
     2344    cc_reg_LI.Add("01", "Balzers");
     2345    cc_reg_LI.Add("02", "Eschen");
     2346    cc_reg_LI.Add("03", "Gamprin");
     2347    cc_reg_LI.Add("04", "Mauren");
     2348    cc_reg_LI.Add("05", "Planken");
     2349    cc_reg_LI.Add("06", "Ruggell");
     2350    cc_reg_LI.Add("07", "Schaan");
     2351    cc_reg_LI.Add("08", "Schellenberg");
     2352    cc_reg_LI.Add("09", "Triesen");
     2353    cc_reg_LI.Add("10", "Triesenberg");
     2354    cc_reg_LI.Add("11", "Vaduz");
     2355    cc_reg_LI.Add("21", "Gbarpolu");
     2356    cc_reg_LI.Add("22", "River Gee");
     2357    GEOIP_REGION_NAME.Add("LI", cc_reg_LI);
     2358    Hashtable cc_reg_LK = new Hashtable();
     2359    cc_reg_LK.Add("01", "Amparai");
     2360    cc_reg_LK.Add("02", "Anuradhapura");
     2361    cc_reg_LK.Add("03", "Badulla");
     2362    cc_reg_LK.Add("04", "Batticaloa");
     2363    cc_reg_LK.Add("06", "Galle");
     2364    cc_reg_LK.Add("07", "Hambantota");
     2365    cc_reg_LK.Add("09", "Kalutara");
     2366    cc_reg_LK.Add("10", "Kandy");
     2367    cc_reg_LK.Add("11", "Kegalla");
     2368    cc_reg_LK.Add("12", "Kurunegala");
     2369    cc_reg_LK.Add("14", "Matale");
     2370    cc_reg_LK.Add("15", "Matara");
     2371    cc_reg_LK.Add("16", "Moneragala");
     2372    cc_reg_LK.Add("17", "Nuwara Eliya");
     2373    cc_reg_LK.Add("18", "Polonnaruwa");
     2374    cc_reg_LK.Add("19", "Puttalam");
     2375    cc_reg_LK.Add("20", "Ratnapura");
     2376    cc_reg_LK.Add("21", "Trincomalee");
     2377    cc_reg_LK.Add("23", "Colombo");
     2378    cc_reg_LK.Add("24", "Gampaha");
     2379    cc_reg_LK.Add("25", "Jaffna");
     2380    cc_reg_LK.Add("26", "Mannar");
     2381    cc_reg_LK.Add("27", "Mullaittivu");
     2382    cc_reg_LK.Add("28", "Vavuniya");
     2383    cc_reg_LK.Add("29", "Central");
     2384    cc_reg_LK.Add("30", "North Central");
     2385    cc_reg_LK.Add("31", "Northern");
     2386    cc_reg_LK.Add("32", "North Western");
     2387    cc_reg_LK.Add("33", "Sabaragamuwa");
     2388    cc_reg_LK.Add("34", "Southern");
     2389    cc_reg_LK.Add("35", "Uva");
     2390    cc_reg_LK.Add("36", "Western");
     2391    GEOIP_REGION_NAME.Add("LK", cc_reg_LK);
     2392    Hashtable cc_reg_LR = new Hashtable();
     2393    cc_reg_LR.Add("01", "Bong");
     2394    cc_reg_LR.Add("04", "Grand Cape Mount");
     2395    cc_reg_LR.Add("05", "Lofa");
     2396    cc_reg_LR.Add("06", "Maryland");
     2397    cc_reg_LR.Add("07", "Monrovia");
     2398    cc_reg_LR.Add("09", "Nimba");
     2399    cc_reg_LR.Add("10", "Sino");
     2400    cc_reg_LR.Add("11", "Grand Bassa");
     2401    cc_reg_LR.Add("12", "Grand Cape Mount");
     2402    cc_reg_LR.Add("13", "Maryland");
     2403    cc_reg_LR.Add("14", "Montserrado");
     2404    cc_reg_LR.Add("17", "Margibi");
     2405    cc_reg_LR.Add("18", "River Cess");
     2406    cc_reg_LR.Add("19", "Grand Gedeh");
     2407    cc_reg_LR.Add("20", "Lofa");
     2408    cc_reg_LR.Add("21", "Gbarpolu");
     2409    cc_reg_LR.Add("22", "River Gee");
     2410    GEOIP_REGION_NAME.Add("LR", cc_reg_LR);
     2411    Hashtable cc_reg_LS = new Hashtable();
     2412    cc_reg_LS.Add("10", "Berea");
     2413    cc_reg_LS.Add("11", "Butha-Buthe");
     2414    cc_reg_LS.Add("12", "Leribe");
     2415    cc_reg_LS.Add("13", "Mafeteng");
     2416    cc_reg_LS.Add("14", "Maseru");
     2417    cc_reg_LS.Add("15", "Mohales Hoek");
     2418    cc_reg_LS.Add("16", "Mokhotlong");
     2419    cc_reg_LS.Add("17", "Qachas Nek");
     2420    cc_reg_LS.Add("18", "Quthing");
     2421    cc_reg_LS.Add("19", "Thaba-Tseka");
     2422    GEOIP_REGION_NAME.Add("LS", cc_reg_LS);
     2423    Hashtable cc_reg_LT = new Hashtable();
     2424    cc_reg_LT.Add("56", "Alytaus Apskritis");
     2425    cc_reg_LT.Add("57", "Kauno Apskritis");
     2426    cc_reg_LT.Add("58", "Klaipedos Apskritis");
     2427    cc_reg_LT.Add("59", "Marijampoles Apskritis");
     2428    cc_reg_LT.Add("60", "Panevezio Apskritis");
     2429    cc_reg_LT.Add("61", "Siauliu Apskritis");
     2430    cc_reg_LT.Add("62", "Taurages Apskritis");
     2431    cc_reg_LT.Add("63", "Telsiu Apskritis");
     2432    cc_reg_LT.Add("64", "Utenos Apskritis");
     2433    cc_reg_LT.Add("65", "Vilniaus Apskritis");
     2434    GEOIP_REGION_NAME.Add("LT", cc_reg_LT);
     2435    Hashtable cc_reg_LU = new Hashtable();
     2436    cc_reg_LU.Add("01", "Diekirch");
     2437    cc_reg_LU.Add("02", "Grevenmacher");
     2438    cc_reg_LU.Add("03", "Luxembourg");
     2439    GEOIP_REGION_NAME.Add("LU", cc_reg_LU);
     2440    Hashtable cc_reg_LV = new Hashtable();
     2441    cc_reg_LV.Add("01", "Aizkraukles");
     2442    cc_reg_LV.Add("02", "Aluksnes");
     2443    cc_reg_LV.Add("03", "Balvu");
     2444    cc_reg_LV.Add("04", "Bauskas");
     2445    cc_reg_LV.Add("05", "Cesu");
     2446    cc_reg_LV.Add("06", "Daugavpils");
     2447    cc_reg_LV.Add("07", "Daugavpils");
     2448    cc_reg_LV.Add("08", "Dobeles");
     2449    cc_reg_LV.Add("09", "Gulbenes");
     2450    cc_reg_LV.Add("10", "Jekabpils");
     2451    cc_reg_LV.Add("11", "Jelgava");
     2452    cc_reg_LV.Add("12", "Jelgavas");
     2453    cc_reg_LV.Add("13", "Jurmala");
     2454    cc_reg_LV.Add("14", "Kraslavas");
     2455    cc_reg_LV.Add("15", "Kuldigas");
     2456    cc_reg_LV.Add("16", "Liepaja");
     2457    cc_reg_LV.Add("17", "Liepajas");
     2458    cc_reg_LV.Add("18", "Limbazu");
     2459    cc_reg_LV.Add("19", "Ludzas");
     2460    cc_reg_LV.Add("20", "Madonas");
     2461    cc_reg_LV.Add("21", "Ogres");
     2462    cc_reg_LV.Add("22", "Preilu");
     2463    cc_reg_LV.Add("23", "Rezekne");
     2464    cc_reg_LV.Add("24", "Rezeknes");
     2465    cc_reg_LV.Add("25", "Riga");
     2466    cc_reg_LV.Add("26", "Rigas");
     2467    cc_reg_LV.Add("27", "Saldus");
     2468    cc_reg_LV.Add("28", "Talsu");
     2469    cc_reg_LV.Add("29", "Tukuma");
     2470    cc_reg_LV.Add("30", "Valkas");
     2471    cc_reg_LV.Add("31", "Valmieras");
     2472    cc_reg_LV.Add("32", "Ventspils");
     2473    cc_reg_LV.Add("33", "Ventspils");
     2474    GEOIP_REGION_NAME.Add("LV", cc_reg_LV);
     2475    Hashtable cc_reg_LY = new Hashtable();
     2476    cc_reg_LY.Add("03", "Al Aziziyah");
     2477    cc_reg_LY.Add("05", "Al Jufrah");
     2478    cc_reg_LY.Add("08", "Al Kufrah");
     2479    cc_reg_LY.Add("13", "Ash Shati'");
     2480    cc_reg_LY.Add("30", "Murzuq");
     2481    cc_reg_LY.Add("34", "Sabha");
     2482    cc_reg_LY.Add("41", "Tarhunah");
     2483    cc_reg_LY.Add("42", "Tubruq");
     2484    cc_reg_LY.Add("45", "Zlitan");
     2485    cc_reg_LY.Add("47", "Ajdabiya");
     2486    cc_reg_LY.Add("48", "Al Fatih");
     2487    cc_reg_LY.Add("49", "Al Jabal al Akhdar");
     2488    cc_reg_LY.Add("50", "Al Khums");
     2489    cc_reg_LY.Add("51", "An Nuqat al Khams");
     2490    cc_reg_LY.Add("52", "Awbari");
     2491    cc_reg_LY.Add("53", "Az Zawiyah");
     2492    cc_reg_LY.Add("54", "Banghazi");
     2493    cc_reg_LY.Add("55", "Darnah");
     2494    cc_reg_LY.Add("56", "Ghadamis");
     2495    cc_reg_LY.Add("57", "Gharyan");
     2496    cc_reg_LY.Add("58", "Misratah");
     2497    cc_reg_LY.Add("59", "Sawfajjin");
     2498    cc_reg_LY.Add("60", "Surt");
     2499    cc_reg_LY.Add("61", "Tarabulus");
     2500    cc_reg_LY.Add("62", "Yafran");
     2501    GEOIP_REGION_NAME.Add("LY", cc_reg_LY);
     2502    Hashtable cc_reg_MA = new Hashtable();
     2503    cc_reg_MA.Add("01", "Agadir");
     2504    cc_reg_MA.Add("02", "Al Hoceima");
     2505    cc_reg_MA.Add("03", "Azilal");
     2506    cc_reg_MA.Add("04", "Ben Slimane");
     2507    cc_reg_MA.Add("05", "Beni Mellal");
     2508    cc_reg_MA.Add("06", "Boulemane");
     2509    cc_reg_MA.Add("07", "Casablanca");
     2510    cc_reg_MA.Add("08", "Chaouen");
     2511    cc_reg_MA.Add("09", "El Jadida");
     2512    cc_reg_MA.Add("10", "El Kelaa des Srarhna");
     2513    cc_reg_MA.Add("11", "Er Rachidia");
     2514    cc_reg_MA.Add("12", "Essaouira");
     2515    cc_reg_MA.Add("13", "Fes");
     2516    cc_reg_MA.Add("14", "Figuig");
     2517    cc_reg_MA.Add("15", "Kenitra");
     2518    cc_reg_MA.Add("16", "Khemisset");
     2519    cc_reg_MA.Add("17", "Khenifra");
     2520    cc_reg_MA.Add("18", "Khouribga");
     2521    cc_reg_MA.Add("19", "Marrakech");
     2522    cc_reg_MA.Add("20", "Meknes");
     2523    cc_reg_MA.Add("21", "Nador");
     2524    cc_reg_MA.Add("22", "Ouarzazate");
     2525    cc_reg_MA.Add("23", "Oujda");
     2526    cc_reg_MA.Add("24", "Rabat-Sale");
     2527    cc_reg_MA.Add("25", "Safi");
     2528    cc_reg_MA.Add("26", "Settat");
     2529    cc_reg_MA.Add("27", "Tanger");
     2530    cc_reg_MA.Add("29", "Tata");
     2531    cc_reg_MA.Add("30", "Taza");
     2532    cc_reg_MA.Add("32", "Tiznit");
     2533    cc_reg_MA.Add("33", "Guelmim");
     2534    cc_reg_MA.Add("34", "Ifrane");
     2535    cc_reg_MA.Add("35", "Laayoune");
     2536    cc_reg_MA.Add("36", "Tan-Tan");
     2537    cc_reg_MA.Add("37", "Taounate");
     2538    cc_reg_MA.Add("38", "Sidi Kacem");
     2539    cc_reg_MA.Add("39", "Taroudannt");
     2540    cc_reg_MA.Add("40", "Tetouan");
     2541    cc_reg_MA.Add("41", "Larache");
     2542    cc_reg_MA.Add("45", "Grand Casablanca");
     2543    cc_reg_MA.Add("46", "Fes-Boulemane");
     2544    cc_reg_MA.Add("47", "Marrakech-Tensift-Al Haouz");
     2545    cc_reg_MA.Add("48", "Meknes-Tafilalet");
     2546    cc_reg_MA.Add("49", "Rabat-Sale-Zemmour-Zaer");
     2547    cc_reg_MA.Add("50", "Chaouia-Ouardigha");
     2548    cc_reg_MA.Add("51", "Doukkala-Abda");
     2549    cc_reg_MA.Add("52", "Gharb-Chrarda-Beni Hssen");
     2550    cc_reg_MA.Add("53", "Guelmim-Es Smara");
     2551    cc_reg_MA.Add("54", "Oriental");
     2552    cc_reg_MA.Add("55", "Souss-Massa-Dr,a");
     2553    cc_reg_MA.Add("56", "Tadla-Azilal");
     2554    cc_reg_MA.Add("57", "Tanger-Tetouan");
     2555    cc_reg_MA.Add("58", "Taza-Al Hoceima-Taounate");
     2556    cc_reg_MA.Add("59", "La,youne-Boujdour-Sakia El Hamra");
     2557    GEOIP_REGION_NAME.Add("MA", cc_reg_MA);
     2558    Hashtable cc_reg_MC = new Hashtable();
     2559    cc_reg_MC.Add("01", "La Condamine");
     2560    cc_reg_MC.Add("02", "Monaco");
     2561    cc_reg_MC.Add("03", "Monte-Carlo");
     2562    GEOIP_REGION_NAME.Add("MC", cc_reg_MC);
     2563    Hashtable cc_reg_MD = new Hashtable();
     2564    cc_reg_MD.Add("46", "Balti");
     2565    cc_reg_MD.Add("47", "Cahul");
     2566    cc_reg_MD.Add("48", "Chisinau");
     2567    cc_reg_MD.Add("49", "Stinga Nistrului");
     2568    cc_reg_MD.Add("50", "Edinet");
     2569    cc_reg_MD.Add("51", "Gagauzia");
     2570    cc_reg_MD.Add("52", "Lapusna");
     2571    cc_reg_MD.Add("53", "Orhei");
     2572    cc_reg_MD.Add("54", "Soroca");
     2573    cc_reg_MD.Add("55", "Tighina");
     2574    cc_reg_MD.Add("56", "Ungheni");
     2575    cc_reg_MD.Add("58", "Stinga Nistrului");
     2576    cc_reg_MD.Add("59", "Anenii Noi");
     2577    cc_reg_MD.Add("60", "Balti");
     2578    cc_reg_MD.Add("61", "Basarabeasca");
     2579    cc_reg_MD.Add("62", "Bender");
     2580    cc_reg_MD.Add("63", "Briceni");
     2581    cc_reg_MD.Add("64", "Cahul");
     2582    cc_reg_MD.Add("65", "Cantemir");
     2583    cc_reg_MD.Add("66", "Calarasi");
     2584    cc_reg_MD.Add("67", "Causeni");
     2585    cc_reg_MD.Add("68", "Cimislia");
     2586    cc_reg_MD.Add("69", "Criuleni");
     2587    cc_reg_MD.Add("70", "Donduseni");
     2588    cc_reg_MD.Add("71", "Drochia");
     2589    cc_reg_MD.Add("72", "Dubasari");
     2590    cc_reg_MD.Add("73", "Edinet");
     2591    cc_reg_MD.Add("74", "Falesti");
     2592    cc_reg_MD.Add("75", "Floresti");
     2593    cc_reg_MD.Add("76", "Glodeni");
     2594    cc_reg_MD.Add("77", "Hincesti");
     2595    cc_reg_MD.Add("78", "Ialoveni");
     2596    cc_reg_MD.Add("79", "Leova");
     2597    cc_reg_MD.Add("80", "Nisporeni");
     2598    cc_reg_MD.Add("81", "Ocnita");
     2599    cc_reg_MD.Add("83", "Rezina");
     2600    cc_reg_MD.Add("84", "Riscani");
     2601    cc_reg_MD.Add("85", "Singerei");
     2602    cc_reg_MD.Add("86", "Soldanesti");
     2603    cc_reg_MD.Add("87", "Soroca");
     2604    cc_reg_MD.Add("88", "Stefan-Voda");
     2605    cc_reg_MD.Add("89", "Straseni");
     2606    cc_reg_MD.Add("90", "Taraclia");
     2607    cc_reg_MD.Add("91", "Telenesti");
     2608    cc_reg_MD.Add("92", "Ungheni");
     2609    GEOIP_REGION_NAME.Add("MD", cc_reg_MD);
     2610    Hashtable cc_reg_MG = new Hashtable();
     2611    cc_reg_MG.Add("01", "Antsiranana");
     2612    cc_reg_MG.Add("02", "Fianarantsoa");
     2613    cc_reg_MG.Add("03", "Mahajanga");
     2614    cc_reg_MG.Add("04", "Toamasina");
     2615    cc_reg_MG.Add("05", "Antananarivo");
     2616    cc_reg_MG.Add("06", "Toliara");
     2617    GEOIP_REGION_NAME.Add("MG", cc_reg_MG);
     2618    Hashtable cc_reg_MK = new Hashtable();
     2619    cc_reg_MK.Add("01", "Aracinovo");
     2620    cc_reg_MK.Add("02", "Bac");
     2621    cc_reg_MK.Add("03", "Belcista");
     2622    cc_reg_MK.Add("04", "Berovo");
     2623    cc_reg_MK.Add("05", "Bistrica");
     2624    cc_reg_MK.Add("06", "Bitola");
     2625    cc_reg_MK.Add("07", "Blatec");
     2626    cc_reg_MK.Add("08", "Bogdanci");
     2627    cc_reg_MK.Add("09", "Bogomila");
     2628    cc_reg_MK.Add("10", "Bogovinje");
     2629    cc_reg_MK.Add("11", "Bosilovo");
     2630    cc_reg_MK.Add("12", "Brvenica");
     2631    cc_reg_MK.Add("13", "Cair");
     2632    cc_reg_MK.Add("14", "Capari");
     2633    cc_reg_MK.Add("15", "Caska");
     2634    cc_reg_MK.Add("16", "Cegrane");
     2635    cc_reg_MK.Add("17", "Centar");
     2636    cc_reg_MK.Add("18", "Centar Zupa");
     2637    cc_reg_MK.Add("19", "Cesinovo");
     2638    cc_reg_MK.Add("20", "Cucer-Sandevo");
     2639    cc_reg_MK.Add("21", "Debar");
     2640    cc_reg_MK.Add("22", "Delcevo");
     2641    cc_reg_MK.Add("23", "Delogozdi");
     2642    cc_reg_MK.Add("24", "Demir Hisar");
     2643    cc_reg_MK.Add("25", "Demir Kapija");
     2644    cc_reg_MK.Add("26", "Dobrusevo");
     2645    cc_reg_MK.Add("27", "Dolna Banjica");
     2646    cc_reg_MK.Add("28", "Dolneni");
     2647    cc_reg_MK.Add("29", "Dorce Petrov");
     2648    cc_reg_MK.Add("30", "Drugovo");
     2649    cc_reg_MK.Add("31", "Dzepciste");
     2650    cc_reg_MK.Add("32", "Gazi Baba");
     2651    cc_reg_MK.Add("33", "Gevgelija");
     2652    cc_reg_MK.Add("34", "Gostivar");
     2653    cc_reg_MK.Add("35", "Gradsko");
     2654    cc_reg_MK.Add("36", "Ilinden");
     2655    cc_reg_MK.Add("37", "Izvor");
     2656    cc_reg_MK.Add("38", "Jegunovce");
     2657    cc_reg_MK.Add("39", "Kamenjane");
     2658    cc_reg_MK.Add("40", "Karbinci");
     2659    cc_reg_MK.Add("41", "Karpos");
     2660    cc_reg_MK.Add("42", "Kavadarci");
     2661    cc_reg_MK.Add("43", "Kicevo");
     2662    cc_reg_MK.Add("44", "Kisela Voda");
     2663    cc_reg_MK.Add("45", "Klecevce");
     2664    cc_reg_MK.Add("46", "Kocani");
     2665    cc_reg_MK.Add("47", "Konce");
     2666    cc_reg_MK.Add("48", "Kondovo");
     2667    cc_reg_MK.Add("49", "Konopiste");
     2668    cc_reg_MK.Add("50", "Kosel");
     2669    cc_reg_MK.Add("51", "Kratovo");
     2670    cc_reg_MK.Add("52", "Kriva Palanka");
     2671    cc_reg_MK.Add("53", "Krivogastani");
     2672    cc_reg_MK.Add("54", "Krusevo");
     2673    cc_reg_MK.Add("55", "Kuklis");
     2674    cc_reg_MK.Add("56", "Kukurecani");
     2675    cc_reg_MK.Add("57", "Kumanovo");
     2676    cc_reg_MK.Add("58", "Labunista");
     2677    cc_reg_MK.Add("59", "Lipkovo");
     2678    cc_reg_MK.Add("60", "Lozovo");
     2679    cc_reg_MK.Add("61", "Lukovo");
     2680    cc_reg_MK.Add("62", "Makedonska Kamenica");
     2681    cc_reg_MK.Add("63", "Makedonski Brod");
     2682    cc_reg_MK.Add("64", "Mavrovi Anovi");
     2683    cc_reg_MK.Add("65", "Meseista");
     2684    cc_reg_MK.Add("66", "Miravci");
     2685    cc_reg_MK.Add("67", "Mogila");
     2686    cc_reg_MK.Add("68", "Murtino");
     2687    cc_reg_MK.Add("69", "Negotino");
     2688    cc_reg_MK.Add("70", "Negotino-Polosko");
     2689    cc_reg_MK.Add("71", "Novaci");
     2690    cc_reg_MK.Add("72", "Novo Selo");
     2691    cc_reg_MK.Add("73", "Oblesevo");
     2692    cc_reg_MK.Add("74", "Ohrid");
     2693    cc_reg_MK.Add("75", "Orasac");
     2694    cc_reg_MK.Add("76", "Orizari");
     2695    cc_reg_MK.Add("77", "Oslomej");
     2696    cc_reg_MK.Add("78", "Pehcevo");
     2697    cc_reg_MK.Add("79", "Petrovec");
     2698    cc_reg_MK.Add("80", "Plasnica");
     2699    cc_reg_MK.Add("81", "Podares");
     2700    cc_reg_MK.Add("82", "Prilep");
     2701    cc_reg_MK.Add("83", "Probistip");
     2702    cc_reg_MK.Add("84", "Radovis");
     2703    cc_reg_MK.Add("85", "Rankovce");
     2704    cc_reg_MK.Add("86", "Resen");
     2705    cc_reg_MK.Add("87", "Rosoman");
     2706    cc_reg_MK.Add("88", "Rostusa");
     2707    cc_reg_MK.Add("89", "Samokov");
     2708    cc_reg_MK.Add("90", "Saraj");
     2709    cc_reg_MK.Add("91", "Sipkovica");
     2710    cc_reg_MK.Add("92", "Sopiste");
     2711    cc_reg_MK.Add("93", "Sopotnica");
     2712    cc_reg_MK.Add("94", "Srbinovo");
     2713    cc_reg_MK.Add("95", "Staravina");
     2714    cc_reg_MK.Add("96", "Star Dojran");
     2715    cc_reg_MK.Add("97", "Staro Nagoricane");
     2716    cc_reg_MK.Add("98", "Stip");
     2717    cc_reg_MK.Add("99", "Struga");
     2718    cc_reg_MK.Add("A1", "Strumica");
     2719    cc_reg_MK.Add("A2", "Studenicani");
     2720    cc_reg_MK.Add("A3", "Suto Orizari");
     2721    cc_reg_MK.Add("A4", "Sveti Nikole");
     2722    cc_reg_MK.Add("A5", "Tearce");
     2723    cc_reg_MK.Add("A6", "Tetovo");
     2724    cc_reg_MK.Add("A7", "Topolcani");
     2725    cc_reg_MK.Add("A8", "Valandovo");
     2726    cc_reg_MK.Add("A9", "Vasilevo");
     2727    cc_reg_MK.Add("B1", "Veles");
     2728    cc_reg_MK.Add("B2", "Velesta");
     2729    cc_reg_MK.Add("B3", "Vevcani");
     2730    cc_reg_MK.Add("B4", "Vinica");
     2731    cc_reg_MK.Add("B5", "Vitoliste");
     2732    cc_reg_MK.Add("B6", "Vranestica");
     2733    cc_reg_MK.Add("B7", "Vrapciste");
     2734    cc_reg_MK.Add("B8", "Vratnica");
     2735    cc_reg_MK.Add("B9", "Vrutok");
     2736    cc_reg_MK.Add("C1", "Zajas");
     2737    cc_reg_MK.Add("C2", "Zelenikovo");
     2738    cc_reg_MK.Add("C3", "Zelino");
     2739    cc_reg_MK.Add("C4", "Zitose");
     2740    cc_reg_MK.Add("C5", "Zletovo");
     2741    cc_reg_MK.Add("C6", "Zrnovci");
     2742    GEOIP_REGION_NAME.Add("MK", cc_reg_MK);
     2743    Hashtable cc_reg_ML = new Hashtable();
     2744    cc_reg_ML.Add("01", "Bamako");
     2745    cc_reg_ML.Add("03", "Kayes");
     2746    cc_reg_ML.Add("04", "Mopti");
     2747    cc_reg_ML.Add("05", "Segou");
     2748    cc_reg_ML.Add("06", "Sikasso");
     2749    cc_reg_ML.Add("07", "Koulikoro");
     2750    cc_reg_ML.Add("08", "Tombouctou");
     2751    cc_reg_ML.Add("09", "Gao");
     2752    cc_reg_ML.Add("10", "Kidal");
     2753    GEOIP_REGION_NAME.Add("ML", cc_reg_ML);
     2754    Hashtable cc_reg_MM = new Hashtable();
     2755    cc_reg_MM.Add("01", "Rakhine State");
     2756    cc_reg_MM.Add("02", "Chin State");
     2757    cc_reg_MM.Add("03", "Irrawaddy");
     2758    cc_reg_MM.Add("04", "Kachin State");
     2759    cc_reg_MM.Add("05", "Karan State");
     2760    cc_reg_MM.Add("06", "Kayah State");
     2761    cc_reg_MM.Add("07", "Magwe");
     2762    cc_reg_MM.Add("08", "Mandalay");
     2763    cc_reg_MM.Add("09", "Pegu");
     2764    cc_reg_MM.Add("10", "Sagaing");
     2765    cc_reg_MM.Add("11", "Shan State");
     2766    cc_reg_MM.Add("12", "Tenasserim");
     2767    cc_reg_MM.Add("13", "Mon State");
     2768    cc_reg_MM.Add("14", "Rangoon");
     2769    cc_reg_MM.Add("17", "Yangon");
     2770    GEOIP_REGION_NAME.Add("MM", cc_reg_MM);
     2771    Hashtable cc_reg_MN = new Hashtable();
     2772    cc_reg_MN.Add("01", "Arhangay");
     2773    cc_reg_MN.Add("02", "Bayanhongor");
     2774    cc_reg_MN.Add("03", "Bayan-Olgiy");
     2775    cc_reg_MN.Add("05", "Darhan");
     2776    cc_reg_MN.Add("06", "Dornod");
     2777    cc_reg_MN.Add("07", "Dornogovi");
     2778    cc_reg_MN.Add("08", "Dundgovi");
     2779    cc_reg_MN.Add("09", "Dzavhan");
     2780    cc_reg_MN.Add("10", "Govi-Altay");
     2781    cc_reg_MN.Add("11", "Hentiy");
     2782    cc_reg_MN.Add("12", "Hovd");
     2783    cc_reg_MN.Add("13", "Hovsgol");
     2784    cc_reg_MN.Add("14", "Omnogovi");
     2785    cc_reg_MN.Add("15", "Ovorhangay");
     2786    cc_reg_MN.Add("16", "Selenge");
     2787    cc_reg_MN.Add("17", "Suhbaatar");
     2788    cc_reg_MN.Add("18", "Tov");
     2789    cc_reg_MN.Add("19", "Uvs");
     2790    cc_reg_MN.Add("20", "Ulaanbaatar");
     2791    cc_reg_MN.Add("21", "Bulgan");
     2792    cc_reg_MN.Add("22", "Erdenet");
     2793    cc_reg_MN.Add("23", "Darhan-Uul");
     2794    cc_reg_MN.Add("24", "Govisumber");
     2795    cc_reg_MN.Add("25", "Orhon");
     2796    GEOIP_REGION_NAME.Add("MN", cc_reg_MN);
     2797    Hashtable cc_reg_MO = new Hashtable();
     2798    cc_reg_MO.Add("01", "Ilhas");
     2799    cc_reg_MO.Add("02", "Macau");
     2800    GEOIP_REGION_NAME.Add("MO", cc_reg_MO);
     2801    Hashtable cc_reg_MR = new Hashtable();
     2802    cc_reg_MR.Add("01", "Hodh Ech Chargui");
     2803    cc_reg_MR.Add("02", "Hodh El Gharbi");
     2804    cc_reg_MR.Add("03", "Assaba");
     2805    cc_reg_MR.Add("04", "Gorgol");
     2806    cc_reg_MR.Add("05", "Brakna");
     2807    cc_reg_MR.Add("06", "Trarza");
     2808    cc_reg_MR.Add("07", "Adrar");
     2809    cc_reg_MR.Add("08", "Dakhlet Nouadhibou");
     2810    cc_reg_MR.Add("09", "Tagant");
     2811    cc_reg_MR.Add("10", "Guidimaka");
     2812    cc_reg_MR.Add("11", "Tiris Zemmour");
     2813    cc_reg_MR.Add("12", "Inchiri");
     2814    GEOIP_REGION_NAME.Add("MR", cc_reg_MR);
     2815    Hashtable cc_reg_MS = new Hashtable();
     2816    cc_reg_MS.Add("01", "Saint Anthony");
     2817    cc_reg_MS.Add("02", "Saint Georges");
     2818    cc_reg_MS.Add("03", "Saint Peter");
     2819    GEOIP_REGION_NAME.Add("MS", cc_reg_MS);
     2820    Hashtable cc_reg_MU = new Hashtable();
     2821    cc_reg_MU.Add("12", "Black River");
     2822    cc_reg_MU.Add("13", "Flacq");
     2823    cc_reg_MU.Add("14", "Grand Port");
     2824    cc_reg_MU.Add("15", "Moka");
     2825    cc_reg_MU.Add("16", "Pamplemousses");
     2826    cc_reg_MU.Add("17", "Plaines Wilhems");
     2827    cc_reg_MU.Add("18", "Port Louis");
     2828    cc_reg_MU.Add("19", "Riviere du Rempart");
     2829    cc_reg_MU.Add("20", "Savanne");
     2830    cc_reg_MU.Add("21", "Agalega Islands");
     2831    cc_reg_MU.Add("22", "Cargados Carajos");
     2832    cc_reg_MU.Add("23", "Rodrigues");
     2833    GEOIP_REGION_NAME.Add("MU", cc_reg_MU);
     2834    Hashtable cc_reg_MV = new Hashtable();
     2835    cc_reg_MV.Add("01", "Seenu");
     2836    cc_reg_MV.Add("02", "Aliff");
     2837    cc_reg_MV.Add("03", "Laviyani");
     2838    cc_reg_MV.Add("04", "Waavu");
     2839    cc_reg_MV.Add("05", "Laamu");
     2840    cc_reg_MV.Add("07", "Haa Aliff");
     2841    cc_reg_MV.Add("08", "Thaa");
     2842    cc_reg_MV.Add("12", "Meemu");
     2843    cc_reg_MV.Add("13", "Raa");
     2844    cc_reg_MV.Add("14", "Faafu");
     2845    cc_reg_MV.Add("17", "Daalu");
     2846    cc_reg_MV.Add("20", "Baa");
     2847    cc_reg_MV.Add("23", "Haa Daalu");
     2848    cc_reg_MV.Add("24", "Shaviyani");
     2849    cc_reg_MV.Add("25", "Noonu");
     2850    cc_reg_MV.Add("26", "Kaafu");
     2851    cc_reg_MV.Add("27", "Gaafu Aliff");
     2852    cc_reg_MV.Add("28", "Gaafu Daalu");
     2853    cc_reg_MV.Add("29", "Naviyani");
     2854    cc_reg_MV.Add("40", "Male");
     2855    GEOIP_REGION_NAME.Add("MV", cc_reg_MV);
     2856    Hashtable cc_reg_MW = new Hashtable();
     2857    cc_reg_MW.Add("02", "Chikwawa");
     2858    cc_reg_MW.Add("03", "Chiradzulu");
     2859    cc_reg_MW.Add("04", "Chitipa");
     2860    cc_reg_MW.Add("05", "Thyolo");
     2861    cc_reg_MW.Add("06", "Dedza");
     2862    cc_reg_MW.Add("07", "Dowa");
     2863    cc_reg_MW.Add("08", "Karonga");
     2864    cc_reg_MW.Add("09", "Kasungu");
     2865    cc_reg_MW.Add("11", "Lilongwe");
     2866    cc_reg_MW.Add("12", "Mangochi");
     2867    cc_reg_MW.Add("13", "Mchinji");
     2868    cc_reg_MW.Add("15", "Mzimba");
     2869    cc_reg_MW.Add("16", "Ntcheu");
     2870    cc_reg_MW.Add("17", "Nkhata Bay");
     2871    cc_reg_MW.Add("18", "Nkhotakota");
     2872    cc_reg_MW.Add("19", "Nsanje");
     2873    cc_reg_MW.Add("20", "Ntchisi");
     2874    cc_reg_MW.Add("21", "Rumphi");
     2875    cc_reg_MW.Add("22", "Salima");
     2876    cc_reg_MW.Add("23", "Zomba");
     2877    cc_reg_MW.Add("24", "Blantyre");
     2878    cc_reg_MW.Add("25", "Mwanza");
     2879    cc_reg_MW.Add("26", "Balaka");
     2880    cc_reg_MW.Add("27", "Likoma");
     2881    cc_reg_MW.Add("28", "Machinga");
     2882    cc_reg_MW.Add("29", "Mulanje");
     2883    cc_reg_MW.Add("30", "Phalombe");
     2884    GEOIP_REGION_NAME.Add("MW", cc_reg_MW);
     2885    Hashtable cc_reg_MX = new Hashtable();
     2886    cc_reg_MX.Add("01", "Aguascalientes");
     2887    cc_reg_MX.Add("02", "Baja California");
     2888    cc_reg_MX.Add("03", "Baja California Sur");
     2889    cc_reg_MX.Add("04", "Campeche");
     2890    cc_reg_MX.Add("05", "Chiapas");
     2891    cc_reg_MX.Add("06", "Chihuahua");
     2892    cc_reg_MX.Add("07", "Coahuila de Zaragoza");
     2893    cc_reg_MX.Add("08", "Colima");
     2894    cc_reg_MX.Add("09", "Distrito Federal");
     2895    cc_reg_MX.Add("10", "Durango");
     2896    cc_reg_MX.Add("11", "Guanajuato");
     2897    cc_reg_MX.Add("12", "Guerrero");
     2898    cc_reg_MX.Add("13", "Hidalgo");
     2899    cc_reg_MX.Add("14", "Jalisco");
     2900    cc_reg_MX.Add("15", "Mexico");
     2901    cc_reg_MX.Add("16", "Michoacan de Ocampo");
     2902    cc_reg_MX.Add("17", "Morelos");
     2903    cc_reg_MX.Add("18", "Nayarit");
     2904    cc_reg_MX.Add("19", "Nuevo Leon");
     2905    cc_reg_MX.Add("20", "Oaxaca");
     2906    cc_reg_MX.Add("21", "Puebla");
     2907    cc_reg_MX.Add("22", "Queretaro de Arteaga");
     2908    cc_reg_MX.Add("23", "Quintana Roo");
     2909    cc_reg_MX.Add("24", "San Luis Potosi");
     2910    cc_reg_MX.Add("25", "Sinaloa");
     2911    cc_reg_MX.Add("26", "Sonora");
     2912    cc_reg_MX.Add("27", "Tabasco");
     2913    cc_reg_MX.Add("28", "Tamaulipas");
     2914    cc_reg_MX.Add("29", "Tlaxcala");
     2915    cc_reg_MX.Add("30", "Veracruz-Llave");
     2916    cc_reg_MX.Add("31", "Yucatan");
     2917    cc_reg_MX.Add("32", "Zacatecas");
     2918    GEOIP_REGION_NAME.Add("MX", cc_reg_MX);
     2919    Hashtable cc_reg_MY = new Hashtable();
     2920    cc_reg_MY.Add("01", "Johor");
     2921    cc_reg_MY.Add("02", "Kedah");
     2922    cc_reg_MY.Add("03", "Kelantan");
     2923    cc_reg_MY.Add("04", "Melaka");
     2924    cc_reg_MY.Add("05", "Negeri Sembilan");
     2925    cc_reg_MY.Add("06", "Pahang");
     2926    cc_reg_MY.Add("07", "Perak");
     2927    cc_reg_MY.Add("08", "Perlis");
     2928    cc_reg_MY.Add("09", "Pulau Pinang");
     2929    cc_reg_MY.Add("11", "Sarawak");
     2930    cc_reg_MY.Add("12", "Selangor");
     2931    cc_reg_MY.Add("13", "Terengganu");
     2932    cc_reg_MY.Add("14", "Kuala Lumpur");
     2933    cc_reg_MY.Add("15", "Labuan");
     2934    cc_reg_MY.Add("16", "Sabah");
     2935    cc_reg_MY.Add("17", "Putrajaya");
     2936    GEOIP_REGION_NAME.Add("MY", cc_reg_MY);
     2937    Hashtable cc_reg_MZ = new Hashtable();
     2938    cc_reg_MZ.Add("01", "Cabo Delgado");
     2939    cc_reg_MZ.Add("02", "Gaza");
     2940    cc_reg_MZ.Add("03", "Inhambane");
     2941    cc_reg_MZ.Add("04", "Maputo");
     2942    cc_reg_MZ.Add("05", "Sofala");
     2943    cc_reg_MZ.Add("06", "Nampula");
     2944    cc_reg_MZ.Add("07", "Niassa");
     2945    cc_reg_MZ.Add("08", "Tete");
     2946    cc_reg_MZ.Add("09", "Zambezia");
     2947    cc_reg_MZ.Add("10", "Manica");
     2948    cc_reg_MZ.Add("11", "Maputo");
     2949    GEOIP_REGION_NAME.Add("MZ", cc_reg_MZ);
     2950    Hashtable cc_reg_NA = new Hashtable();
     2951    cc_reg_NA.Add("01", "Bethanien");
     2952    cc_reg_NA.Add("02", "Caprivi Oos");
     2953    cc_reg_NA.Add("03", "Boesmanland");
     2954    cc_reg_NA.Add("04", "Gobabis");
     2955    cc_reg_NA.Add("05", "Grootfontein");
     2956    cc_reg_NA.Add("06", "Kaokoland");
     2957    cc_reg_NA.Add("07", "Karibib");
     2958    cc_reg_NA.Add("08", "Keetmanshoop");
     2959    cc_reg_NA.Add("09", "Luderitz");
     2960    cc_reg_NA.Add("10", "Maltahohe");
     2961    cc_reg_NA.Add("11", "Okahandja");
     2962    cc_reg_NA.Add("12", "Omaruru");
     2963    cc_reg_NA.Add("13", "Otjiwarongo");
     2964    cc_reg_NA.Add("14", "Outjo");
     2965    cc_reg_NA.Add("15", "Owambo");
     2966    cc_reg_NA.Add("16", "Rehoboth");
     2967    cc_reg_NA.Add("17", "Swakopmund");
     2968    cc_reg_NA.Add("18", "Tsumeb");
     2969    cc_reg_NA.Add("20", "Karasburg");
     2970    cc_reg_NA.Add("21", "Windhoek");
     2971    cc_reg_NA.Add("22", "Damaraland");
     2972    cc_reg_NA.Add("23", "Hereroland Oos");
     2973    cc_reg_NA.Add("24", "Hereroland Wes");
     2974    cc_reg_NA.Add("25", "Kavango");
     2975    cc_reg_NA.Add("26", "Mariental");
     2976    cc_reg_NA.Add("27", "Namaland");
     2977    cc_reg_NA.Add("28", "Caprivi");
     2978    cc_reg_NA.Add("29", "Erongo");
     2979    cc_reg_NA.Add("30", "Hardap");
     2980    cc_reg_NA.Add("31", "Karas");
     2981    cc_reg_NA.Add("32", "Kunene");
     2982    cc_reg_NA.Add("33", "Ohangwena");
     2983    cc_reg_NA.Add("34", "Okavango");
     2984    cc_reg_NA.Add("35", "Omaheke");
     2985    cc_reg_NA.Add("36", "Omusati");
     2986    cc_reg_NA.Add("37", "Oshana");
     2987    cc_reg_NA.Add("38", "Oshikoto");
     2988    cc_reg_NA.Add("39", "Otjozondjupa");
     2989    GEOIP_REGION_NAME.Add("NA", cc_reg_NA);
     2990    Hashtable cc_reg_NE = new Hashtable();
     2991    cc_reg_NE.Add("01", "Agadez");
     2992    cc_reg_NE.Add("02", "Diffa");
     2993    cc_reg_NE.Add("03", "Dosso");
     2994    cc_reg_NE.Add("04", "Maradi");
     2995    cc_reg_NE.Add("05", "Niamey");
     2996    cc_reg_NE.Add("06", "Tahoua");
     2997    cc_reg_NE.Add("07", "Zinder");
     2998    cc_reg_NE.Add("08", "Niamey");
     2999    GEOIP_REGION_NAME.Add("NE", cc_reg_NE);
     3000    Hashtable cc_reg_NG = new Hashtable();
     3001    cc_reg_NG.Add("05", "Lagos");
     3002    cc_reg_NG.Add("10", "Rivers");
     3003    cc_reg_NG.Add("11", "Federal Capital Territory");
     3004    cc_reg_NG.Add("12", "Gongola");
     3005    cc_reg_NG.Add("16", "Ogun");
     3006    cc_reg_NG.Add("17", "Ondo");
     3007    cc_reg_NG.Add("18", "Oyo");
     3008    cc_reg_NG.Add("21", "Akwa Ibom");
     3009    cc_reg_NG.Add("22", "Cross River");
     3010    cc_reg_NG.Add("23", "Kaduna");
     3011    cc_reg_NG.Add("24", "Katsina");
     3012    cc_reg_NG.Add("25", "Anambra");
     3013    cc_reg_NG.Add("26", "Benue");
     3014    cc_reg_NG.Add("27", "Borno");
     3015    cc_reg_NG.Add("28", "Imo");
     3016    cc_reg_NG.Add("29", "Kano");
     3017    cc_reg_NG.Add("30", "Kwara");
     3018    cc_reg_NG.Add("31", "Niger");
     3019    cc_reg_NG.Add("32", "Oyo");
     3020    cc_reg_NG.Add("35", "Adamawa");
     3021    cc_reg_NG.Add("36", "Delta");
     3022    cc_reg_NG.Add("37", "Edo");
     3023    cc_reg_NG.Add("39", "Jigawa");
     3024    cc_reg_NG.Add("40", "Kebbi");
     3025    cc_reg_NG.Add("41", "Kogi");
     3026    cc_reg_NG.Add("42", "Osun");
     3027    cc_reg_NG.Add("43", "Taraba");
     3028    cc_reg_NG.Add("44", "Yobe");
     3029    cc_reg_NG.Add("45", "Abia");
     3030    cc_reg_NG.Add("46", "Bauchi");
     3031    cc_reg_NG.Add("47", "Enugu");
     3032    cc_reg_NG.Add("48", "Ondo");
     3033    cc_reg_NG.Add("49", "Plateau");
     3034    cc_reg_NG.Add("50", "Rivers");
     3035    cc_reg_NG.Add("51", "Sokoto");
     3036    cc_reg_NG.Add("52", "Bayelsa");
     3037    cc_reg_NG.Add("53", "Ebonyi");
     3038    cc_reg_NG.Add("54", "Ekiti");
     3039    cc_reg_NG.Add("55", "Gombe");
     3040    cc_reg_NG.Add("56", "Nassarawa");
     3041    cc_reg_NG.Add("57", "Zamfara");
     3042    GEOIP_REGION_NAME.Add("NG", cc_reg_NG);
     3043    Hashtable cc_reg_NI = new Hashtable();
     3044    cc_reg_NI.Add("01", "Boaco");
     3045    cc_reg_NI.Add("02", "Carazo");
     3046    cc_reg_NI.Add("03", "Chinandega");
     3047    cc_reg_NI.Add("04", "Chontales");
     3048    cc_reg_NI.Add("05", "Esteli");
     3049    cc_reg_NI.Add("06", "Granada");
     3050    cc_reg_NI.Add("07", "Jinotega");
     3051    cc_reg_NI.Add("08", "Leon");
     3052    cc_reg_NI.Add("09", "Madriz");
     3053    cc_reg_NI.Add("10", "Managua");
     3054    cc_reg_NI.Add("11", "Masaya");
     3055    cc_reg_NI.Add("12", "Matagalpa");
     3056    cc_reg_NI.Add("13", "Nueva Segovia");
     3057    cc_reg_NI.Add("14", "Rio San Juan");
     3058    cc_reg_NI.Add("15", "Rivas");
     3059    cc_reg_NI.Add("16", "Zelaya");
     3060    cc_reg_NI.Add("17", "Autonoma Atlantico Norte");
     3061    cc_reg_NI.Add("18", "Region Autonoma Atlantico Sur");
     3062    GEOIP_REGION_NAME.Add("NI", cc_reg_NI);
     3063    Hashtable cc_reg_NL = new Hashtable();
     3064    cc_reg_NL.Add("01", "Drenthe");
     3065    cc_reg_NL.Add("02", "Friesland");
     3066    cc_reg_NL.Add("03", "Gelderland");
     3067    cc_reg_NL.Add("04", "Groningen");
     3068    cc_reg_NL.Add("05", "Limburg");
     3069    cc_reg_NL.Add("06", "Noord-Brabant");
     3070    cc_reg_NL.Add("07", "Noord-Holland");
     3071    cc_reg_NL.Add("08", "Overijssel");
     3072    cc_reg_NL.Add("09", "Utrecht");
     3073    cc_reg_NL.Add("10", "Zeeland");
     3074    cc_reg_NL.Add("11", "Zuid-Holland");
     3075    cc_reg_NL.Add("12", "Dronten");
     3076    cc_reg_NL.Add("13", "Zuidelijke IJsselmeerpolders");
     3077    cc_reg_NL.Add("14", "Lelystad");
     3078    cc_reg_NL.Add("15", "Overijssel");
     3079    cc_reg_NL.Add("16", "Flevoland");
     3080    GEOIP_REGION_NAME.Add("NL", cc_reg_NL);
     3081    Hashtable cc_reg_NO = new Hashtable();
     3082    cc_reg_NO.Add("01", "Akershus");
     3083    cc_reg_NO.Add("02", "Aust-Agder");
     3084    cc_reg_NO.Add("04", "Buskerud");
     3085    cc_reg_NO.Add("05", "Finnmark");
     3086    cc_reg_NO.Add("06", "Hedmark");
     3087    cc_reg_NO.Add("07", "Hordaland");
     3088    cc_reg_NO.Add("08", "More og Romsdal");
     3089    cc_reg_NO.Add("09", "Nordland");
     3090    cc_reg_NO.Add("10", "Nord-Trondelag");
     3091    cc_reg_NO.Add("11", "Oppland");
     3092    cc_reg_NO.Add("12", "Oslo");
     3093    cc_reg_NO.Add("13", "Ostfold");
     3094    cc_reg_NO.Add("14", "Rogaland");
     3095    cc_reg_NO.Add("15", "Sogn og Fjordane");
     3096    cc_reg_NO.Add("16", "Sor-Trondelag");
     3097    cc_reg_NO.Add("17", "Telemark");
     3098    cc_reg_NO.Add("18", "Troms");
     3099    cc_reg_NO.Add("19", "Vest-Agder");
     3100    cc_reg_NO.Add("20", "Vestfold");
     3101    GEOIP_REGION_NAME.Add("NO", cc_reg_NO);
     3102    Hashtable cc_reg_NP = new Hashtable();
     3103    cc_reg_NP.Add("01", "Bagmati");
     3104    cc_reg_NP.Add("02", "Bheri");
     3105    cc_reg_NP.Add("03", "Dhawalagiri");
     3106    cc_reg_NP.Add("04", "Gandaki");
     3107    cc_reg_NP.Add("05", "Janakpur");
     3108    cc_reg_NP.Add("06", "Karnali");
     3109    cc_reg_NP.Add("07", "Kosi");
     3110    cc_reg_NP.Add("08", "Lumbini");
     3111    cc_reg_NP.Add("09", "Mahakali");
     3112    cc_reg_NP.Add("10", "Mechi");
     3113    cc_reg_NP.Add("11", "Narayani");
     3114    cc_reg_NP.Add("12", "Rapti");
     3115    cc_reg_NP.Add("13", "Sagarmatha");
     3116    cc_reg_NP.Add("14", "Seti");
     3117    GEOIP_REGION_NAME.Add("NP", cc_reg_NP);
     3118    Hashtable cc_reg_NR = new Hashtable();
     3119    cc_reg_NR.Add("01", "Aiwo");
     3120    cc_reg_NR.Add("02", "Anabar");
     3121    cc_reg_NR.Add("03", "Anetan");
     3122    cc_reg_NR.Add("04", "Anibare");
     3123    cc_reg_NR.Add("05", "Baiti");
     3124    cc_reg_NR.Add("06", "Boe");
     3125    cc_reg_NR.Add("07", "Buada");
     3126    cc_reg_NR.Add("08", "Denigomodu");
     3127    cc_reg_NR.Add("09", "Ewa");
     3128    cc_reg_NR.Add("10", "Ijuw");
     3129    cc_reg_NR.Add("11", "Meneng");
     3130    cc_reg_NR.Add("12", "Nibok");
     3131    cc_reg_NR.Add("13", "Uaboe");
     3132    cc_reg_NR.Add("14", "Yaren");
     3133    GEOIP_REGION_NAME.Add("NR", cc_reg_NR);
     3134    Hashtable cc_reg_NZ = new Hashtable();
     3135    cc_reg_NZ.Add("10", "Chatham Islands");
     3136    cc_reg_NZ.Add("85", "Waikato");
     3137    cc_reg_NZ.Add("E7", "Auckland");
     3138    cc_reg_NZ.Add("E8", "Bay of Plenty");
     3139    cc_reg_NZ.Add("E9", "Canterbury");
     3140    cc_reg_NZ.Add("F1", "Gisborne");
     3141    cc_reg_NZ.Add("F2", "Hawke's Bay");
     3142    cc_reg_NZ.Add("F3", "Manawatu-Wanganui");
     3143    cc_reg_NZ.Add("F4", "Marlborough");
     3144    cc_reg_NZ.Add("F5", "Nelson");
     3145    cc_reg_NZ.Add("F6", "Northland");
     3146    cc_reg_NZ.Add("F7", "Otago");
     3147    cc_reg_NZ.Add("F8", "Southland");
     3148    cc_reg_NZ.Add("F9", "Taranaki");
     3149    cc_reg_NZ.Add("G1", "Waikato");
     3150    cc_reg_NZ.Add("G2", "Wellington");
     3151    cc_reg_NZ.Add("G3", "West Coast");
     3152    GEOIP_REGION_NAME.Add("NZ", cc_reg_NZ);
     3153    Hashtable cc_reg_OM = new Hashtable();
     3154    cc_reg_OM.Add("01", "Ad Dakhiliyah");
     3155    cc_reg_OM.Add("02", "Al Batinah");
     3156    cc_reg_OM.Add("03", "Al Wusta");
     3157    cc_reg_OM.Add("04", "Ash Sharqiyah");
     3158    cc_reg_OM.Add("05", "Az Zahirah");
     3159    cc_reg_OM.Add("06", "Masqat");
     3160    cc_reg_OM.Add("07", "Musandam");
     3161    cc_reg_OM.Add("08", "Zufar");
     3162    GEOIP_REGION_NAME.Add("OM", cc_reg_OM);
     3163    Hashtable cc_reg_PA = new Hashtable();
     3164    cc_reg_PA.Add("01", "Bocas del Toro");
     3165    cc_reg_PA.Add("02", "Chiriqui");
     3166    cc_reg_PA.Add("03", "Cocle");
     3167    cc_reg_PA.Add("04", "Colon");
     3168    cc_reg_PA.Add("05", "Darien");
     3169    cc_reg_PA.Add("06", "Herrera");
     3170    cc_reg_PA.Add("07", "Los Santos");
     3171    cc_reg_PA.Add("08", "Panama");
     3172    cc_reg_PA.Add("09", "San Blas");
     3173    cc_reg_PA.Add("10", "Veraguas");
     3174    GEOIP_REGION_NAME.Add("PA", cc_reg_PA);
     3175    Hashtable cc_reg_PE = new Hashtable();
     3176    cc_reg_PE.Add("01", "Amazonas");
     3177    cc_reg_PE.Add("02", "Ancash");
     3178    cc_reg_PE.Add("03", "Apurimac");
     3179    cc_reg_PE.Add("04", "Arequipa");
     3180    cc_reg_PE.Add("05", "Ayacucho");
     3181    cc_reg_PE.Add("06", "Cajamarca");
     3182    cc_reg_PE.Add("07", "Callao");
     3183    cc_reg_PE.Add("08", "Cusco");
     3184    cc_reg_PE.Add("09", "Huancavelica");
     3185    cc_reg_PE.Add("10", "Huanuco");
     3186    cc_reg_PE.Add("11", "Ica");
     3187    cc_reg_PE.Add("12", "Junin");
     3188    cc_reg_PE.Add("13", "La Libertad");
     3189    cc_reg_PE.Add("14", "Lambayeque");
     3190    cc_reg_PE.Add("15", "Lima");
     3191    cc_reg_PE.Add("16", "Loreto");
     3192    cc_reg_PE.Add("17", "Madre de Dios");
     3193    cc_reg_PE.Add("18", "Moquegua");
     3194    cc_reg_PE.Add("19", "Pasco");
     3195    cc_reg_PE.Add("20", "Piura");
     3196    cc_reg_PE.Add("21", "Puno");
     3197    cc_reg_PE.Add("22", "San Martin");
     3198    cc_reg_PE.Add("23", "Tacna");
     3199    cc_reg_PE.Add("24", "Tumbes");
     3200    cc_reg_PE.Add("25", "Ucayali");
     3201    GEOIP_REGION_NAME.Add("PE", cc_reg_PE);
     3202    Hashtable cc_reg_PG = new Hashtable();
     3203    cc_reg_PG.Add("01", "Central");
     3204    cc_reg_PG.Add("02", "Gulf");
     3205    cc_reg_PG.Add("03", "Milne Bay");
     3206    cc_reg_PG.Add("04", "Northern");
     3207    cc_reg_PG.Add("05", "Southern Highlands");
     3208    cc_reg_PG.Add("06", "Western");
     3209    cc_reg_PG.Add("07", "North Solomons");
     3210    cc_reg_PG.Add("08", "Chimbu");
     3211    cc_reg_PG.Add("09", "Eastern Highlands");
     3212    cc_reg_PG.Add("10", "East New Britain");
     3213    cc_reg_PG.Add("11", "East Sepik");
     3214    cc_reg_PG.Add("12", "Madang");
     3215    cc_reg_PG.Add("13", "Manus");
     3216    cc_reg_PG.Add("14", "Morobe");
     3217    cc_reg_PG.Add("15", "New Ireland");
     3218    cc_reg_PG.Add("16", "Western Highlands");
     3219    cc_reg_PG.Add("17", "West New Britain");
     3220    cc_reg_PG.Add("18", "Sandaun");
     3221    cc_reg_PG.Add("19", "Enga");
     3222    cc_reg_PG.Add("20", "National Capital");
     3223    GEOIP_REGION_NAME.Add("PG", cc_reg_PG);
     3224    Hashtable cc_reg_PH = new Hashtable();
     3225    cc_reg_PH.Add("01", "Abra");
     3226    cc_reg_PH.Add("02", "Agusan del Norte");
     3227    cc_reg_PH.Add("03", "Agusan del Sur");
     3228    cc_reg_PH.Add("04", "Aklan");
     3229    cc_reg_PH.Add("05", "Albay");
     3230    cc_reg_PH.Add("06", "Antique");
     3231    cc_reg_PH.Add("07", "Bataan");
     3232    cc_reg_PH.Add("08", "Batanes");
     3233    cc_reg_PH.Add("09", "Batangas");
     3234    cc_reg_PH.Add("10", "Benguet");
     3235    cc_reg_PH.Add("11", "Bohol");
     3236    cc_reg_PH.Add("12", "Bukidnon");
     3237    cc_reg_PH.Add("13", "Bulacan");
     3238    cc_reg_PH.Add("14", "Cagayan");
     3239    cc_reg_PH.Add("15", "Camarines Norte");
     3240    cc_reg_PH.Add("16", "Camarines Sur");
     3241    cc_reg_PH.Add("17", "Camiguin");
     3242    cc_reg_PH.Add("18", "Capiz");
     3243    cc_reg_PH.Add("19", "Catanduanes");
     3244    cc_reg_PH.Add("20", "Cavite");
     3245    cc_reg_PH.Add("21", "Cebu");
     3246    cc_reg_PH.Add("22", "Basilan");
     3247    cc_reg_PH.Add("23", "Eastern Samar");
     3248    cc_reg_PH.Add("24", "Davao");
     3249    cc_reg_PH.Add("25", "Davao del Sur");
     3250    cc_reg_PH.Add("26", "Davao Oriental");
     3251    cc_reg_PH.Add("27", "Ifugao");
     3252    cc_reg_PH.Add("28", "Ilocos Norte");
     3253    cc_reg_PH.Add("29", "Ilocos Sur");
     3254    cc_reg_PH.Add("30", "Iloilo");
     3255    cc_reg_PH.Add("31", "Isabela");
     3256    cc_reg_PH.Add("32", "Kalinga-Apayao");
     3257    cc_reg_PH.Add("33", "Laguna");
     3258    cc_reg_PH.Add("34", "Lanao del Norte");
     3259    cc_reg_PH.Add("35", "Lanao del Sur");
     3260    cc_reg_PH.Add("36", "La Union");
     3261    cc_reg_PH.Add("37", "Leyte");
     3262    cc_reg_PH.Add("38", "Marinduque");
     3263    cc_reg_PH.Add("39", "Masbate");
     3264    cc_reg_PH.Add("40", "Mindoro Occidental");
     3265    cc_reg_PH.Add("41", "Mindoro Oriental");
     3266    cc_reg_PH.Add("42", "Misamis Occidental");
     3267    cc_reg_PH.Add("43", "Misamis Oriental");
     3268    cc_reg_PH.Add("44", "Mountain");
     3269    cc_reg_PH.Add("45", "Negros Occidental");
     3270    cc_reg_PH.Add("46", "Negros Oriental");
     3271    cc_reg_PH.Add("47", "Nueva Ecija");
     3272    cc_reg_PH.Add("48", "Nueva Vizcaya");
     3273    cc_reg_PH.Add("49", "Palawan");
     3274    cc_reg_PH.Add("50", "Pampanga");
     3275    cc_reg_PH.Add("51", "Pangasinan");
     3276    cc_reg_PH.Add("53", "Rizal");
     3277    cc_reg_PH.Add("54", "Romblon");
     3278    cc_reg_PH.Add("55", "Samar");
     3279    cc_reg_PH.Add("56", "Maguindanao");
     3280    cc_reg_PH.Add("57", "North Cotabato");
     3281    cc_reg_PH.Add("58", "Sorsogon");
     3282    cc_reg_PH.Add("59", "Southern Leyte");
     3283    cc_reg_PH.Add("60", "Sulu");
     3284    cc_reg_PH.Add("61", "Surigao del Norte");
     3285    cc_reg_PH.Add("62", "Surigao del Sur");
     3286    cc_reg_PH.Add("63", "Tarlac");
     3287    cc_reg_PH.Add("64", "Zambales");
     3288    cc_reg_PH.Add("65", "Zamboanga del Norte");
     3289    cc_reg_PH.Add("66", "Zamboanga del Sur");
     3290    cc_reg_PH.Add("67", "Northern Samar");
     3291    cc_reg_PH.Add("68", "Quirino");
     3292    cc_reg_PH.Add("69", "Siquijor");
     3293    cc_reg_PH.Add("70", "South Cotabato");
     3294    cc_reg_PH.Add("71", "Sultan Kudarat");
     3295    cc_reg_PH.Add("72", "Tawitawi");
     3296    cc_reg_PH.Add("A1", "Angeles");
     3297    cc_reg_PH.Add("A2", "Bacolod");
     3298    cc_reg_PH.Add("A3", "Bago");
     3299    cc_reg_PH.Add("A4", "Baguio");
     3300    cc_reg_PH.Add("A5", "Bais");
     3301    cc_reg_PH.Add("A6", "Basilan City");
     3302    cc_reg_PH.Add("A7", "Batangas City");
     3303    cc_reg_PH.Add("A8", "Butuan");
     3304    cc_reg_PH.Add("A9", "Cabanatuan");
     3305    cc_reg_PH.Add("B1", "Cadiz");
     3306    cc_reg_PH.Add("B2", "Cagayan de Oro");
     3307    cc_reg_PH.Add("B3", "Calbayog");
     3308    cc_reg_PH.Add("B4", "Caloocan");
     3309    cc_reg_PH.Add("B5", "Canlaon");
     3310    cc_reg_PH.Add("B6", "Cavite City");
     3311    cc_reg_PH.Add("B7", "Cebu City");
     3312    cc_reg_PH.Add("B8", "Cotabato");
     3313    cc_reg_PH.Add("B9", "Dagupan");
     3314    cc_reg_PH.Add("C1", "Danao");
     3315    cc_reg_PH.Add("C2", "Dapitan");
     3316    cc_reg_PH.Add("C3", "Davao City");
     3317    cc_reg_PH.Add("C4", "Dipolog");
     3318    cc_reg_PH.Add("C5", "Dumaguete");
     3319    cc_reg_PH.Add("C6", "General Santos");
     3320    cc_reg_PH.Add("C7", "Gingoog");
     3321    cc_reg_PH.Add("C8", "Iligan");
     3322    cc_reg_PH.Add("C9", "Iloilo City");
     3323    cc_reg_PH.Add("D1", "Iriga");
     3324    cc_reg_PH.Add("D2", "La Carlota");
     3325    cc_reg_PH.Add("D3", "Laoag");
     3326    cc_reg_PH.Add("D4", "Lapu-Lapu");
     3327    cc_reg_PH.Add("D5", "Legaspi");
     3328    cc_reg_PH.Add("D6", "Lipa");
     3329    cc_reg_PH.Add("D7", "Lucena");
     3330    cc_reg_PH.Add("D8", "Mandaue");
     3331    cc_reg_PH.Add("D9", "Manila");
     3332    cc_reg_PH.Add("E1", "Marawi");
     3333    cc_reg_PH.Add("E2", "Naga");
     3334    cc_reg_PH.Add("E3", "Olongapo");
     3335    cc_reg_PH.Add("E4", "Ormoc");
     3336    cc_reg_PH.Add("E5", "Oroquieta");
     3337    cc_reg_PH.Add("E6", "Ozamis");
     3338    cc_reg_PH.Add("E7", "Pagadian");
     3339    cc_reg_PH.Add("E8", "Palayan");
     3340    cc_reg_PH.Add("E9", "Pasay");
     3341    cc_reg_PH.Add("F1", "Puerto Princesa");
     3342    cc_reg_PH.Add("F2", "Quezon City");
     3343    cc_reg_PH.Add("F3", "Roxas");
     3344    cc_reg_PH.Add("F4", "San Carlos");
     3345    cc_reg_PH.Add("F5", "San Carlos");
     3346    cc_reg_PH.Add("F6", "San Jose");
     3347    cc_reg_PH.Add("F7", "San Pablo");
     3348    cc_reg_PH.Add("F8", "Silay");
     3349    cc_reg_PH.Add("F9", "Surigao");
     3350    cc_reg_PH.Add("G1", "Tacloban");
     3351    cc_reg_PH.Add("G2", "Tagaytay");
     3352    cc_reg_PH.Add("G3", "Tagbilaran");
     3353    cc_reg_PH.Add("G4", "Tangub");
     3354    cc_reg_PH.Add("G5", "Toledo");
     3355    cc_reg_PH.Add("G6", "Trece Martires");
     3356    cc_reg_PH.Add("G7", "Zamboanga");
     3357    cc_reg_PH.Add("G8", "Aurora");
     3358    cc_reg_PH.Add("H2", "Quezon");
     3359    cc_reg_PH.Add("H3", "Negros Occidental");
     3360    GEOIP_REGION_NAME.Add("PH", cc_reg_PH);
     3361    Hashtable cc_reg_PK = new Hashtable();
     3362    cc_reg_PK.Add("01", "Federally Administered Tribal Areas");
     3363    cc_reg_PK.Add("02", "Balochistan");
     3364    cc_reg_PK.Add("03", "North-West Frontier");
     3365    cc_reg_PK.Add("04", "Punjab");
     3366    cc_reg_PK.Add("05", "Sindh");
     3367    cc_reg_PK.Add("06", "Azad Kashmir");
     3368    cc_reg_PK.Add("07", "Northern Areas");
     3369    cc_reg_PK.Add("08", "Islamabad");
     3370    GEOIP_REGION_NAME.Add("PK", cc_reg_PK);
     3371    Hashtable cc_reg_PL = new Hashtable();
     3372    cc_reg_PL.Add("23", "Biala Podlaska");
     3373    cc_reg_PL.Add("24", "Bialystok");
     3374    cc_reg_PL.Add("25", "Bielsko");
     3375    cc_reg_PL.Add("26", "Bydgoszcz");
     3376    cc_reg_PL.Add("27", "Chelm");
     3377    cc_reg_PL.Add("28", "Ciechanow");
     3378    cc_reg_PL.Add("29", "Czestochowa");
     3379    cc_reg_PL.Add("30", "Elblag");
     3380    cc_reg_PL.Add("31", "Gdansk");
     3381    cc_reg_PL.Add("32", "Gorzow");
     3382    cc_reg_PL.Add("33", "Jelenia Gora");
     3383    cc_reg_PL.Add("34", "Kalisz");
     3384    cc_reg_PL.Add("35", "Katowice");
     3385    cc_reg_PL.Add("36", "Kielce");
     3386    cc_reg_PL.Add("37", "Konin");
     3387    cc_reg_PL.Add("38", "Koszalin");
     3388    cc_reg_PL.Add("39", "Krakow");
     3389    cc_reg_PL.Add("40", "Krosno");
     3390    cc_reg_PL.Add("41", "Legnica");
     3391    cc_reg_PL.Add("42", "Leszno");
     3392    cc_reg_PL.Add("43", "Lodz");
     3393    cc_reg_PL.Add("44", "Lomza");
     3394    cc_reg_PL.Add("45", "Lublin");
     3395    cc_reg_PL.Add("46", "Nowy Sacz");
     3396    cc_reg_PL.Add("47", "Olsztyn");
     3397    cc_reg_PL.Add("48", "Opole");
     3398    cc_reg_PL.Add("49", "Ostroleka");
     3399    cc_reg_PL.Add("50", "Pila");
     3400    cc_reg_PL.Add("51", "Piotrkow");
     3401    cc_reg_PL.Add("52", "Plock");
     3402    cc_reg_PL.Add("53", "Poznan");
     3403    cc_reg_PL.Add("54", "Przemysl");
     3404    cc_reg_PL.Add("55", "Radom");
     3405    cc_reg_PL.Add("56", "Rzeszow");
     3406    cc_reg_PL.Add("57", "Siedlce");
     3407    cc_reg_PL.Add("58", "Sieradz");
     3408    cc_reg_PL.Add("59", "Skierniewice");
     3409    cc_reg_PL.Add("60", "Slupsk");
     3410    cc_reg_PL.Add("61", "Suwalki");
     3411    cc_reg_PL.Add("62", "Szczecin");
     3412    cc_reg_PL.Add("63", "Tarnobrzeg");
     3413    cc_reg_PL.Add("64", "Tarnow");
     3414    cc_reg_PL.Add("65", "Torun");
     3415    cc_reg_PL.Add("66", "Walbrzych");
     3416    cc_reg_PL.Add("67", "Warszawa");
     3417    cc_reg_PL.Add("68", "Wloclawek");
     3418    cc_reg_PL.Add("69", "Wroclaw");
     3419    cc_reg_PL.Add("70", "Zamosc");
     3420    cc_reg_PL.Add("71", "Zielona Gora");
     3421    cc_reg_PL.Add("72", "Dolnoslaskie");
     3422    cc_reg_PL.Add("73", "Kujawsko-Pomorskie");
     3423    cc_reg_PL.Add("74", "Lodzkie");
     3424    cc_reg_PL.Add("75", "Lubelskie");
     3425    cc_reg_PL.Add("76", "Lubuskie");
     3426    cc_reg_PL.Add("77", "Malopolskie");
     3427    cc_reg_PL.Add("78", "Mazowieckie");
     3428    cc_reg_PL.Add("79", "Opolskie");
     3429    cc_reg_PL.Add("80", "Podkarpackie");
     3430    cc_reg_PL.Add("81", "Podlaskie");
     3431    cc_reg_PL.Add("82", "Pomorskie");
     3432    cc_reg_PL.Add("83", "Slaskie");
     3433    cc_reg_PL.Add("84", "Swietokrzyskie");
     3434    cc_reg_PL.Add("85", "Warminsko-Mazurskie");
     3435    cc_reg_PL.Add("86", "Wielkopolskie");
     3436    cc_reg_PL.Add("87", "Zachodniopomorskie");
     3437    GEOIP_REGION_NAME.Add("PL", cc_reg_PL);
     3438    Hashtable cc_reg_PS = new Hashtable();
     3439    cc_reg_PS.Add("GZ", "Gaza");
     3440    cc_reg_PS.Add("WE", "West Bank");
     3441    GEOIP_REGION_NAME.Add("PS", cc_reg_PS);
     3442    Hashtable cc_reg_PT = new Hashtable();
     3443    cc_reg_PT.Add("02", "Aveiro");
     3444    cc_reg_PT.Add("03", "Beja");
     3445    cc_reg_PT.Add("04", "Braga");
     3446    cc_reg_PT.Add("05", "Braganca");
     3447    cc_reg_PT.Add("06", "Castelo Branco");
     3448    cc_reg_PT.Add("07", "Coimbra");
     3449    cc_reg_PT.Add("08", "Evora");
     3450    cc_reg_PT.Add("09", "Faro");
     3451    cc_reg_PT.Add("10", "Madeira");
     3452    cc_reg_PT.Add("11", "Guarda");
     3453    cc_reg_PT.Add("13", "Leiria");
     3454    cc_reg_PT.Add("14", "Lisboa");
     3455    cc_reg_PT.Add("16", "Portalegre");
     3456    cc_reg_PT.Add("17", "Porto");
     3457    cc_reg_PT.Add("18", "Santarem");
     3458    cc_reg_PT.Add("19", "Setubal");
     3459    cc_reg_PT.Add("20", "Viana do Castelo");
     3460    cc_reg_PT.Add("21", "Vila Real");
     3461    cc_reg_PT.Add("22", "Viseu");
     3462    cc_reg_PT.Add("23", "Azores");
     3463    GEOIP_REGION_NAME.Add("PT", cc_reg_PT);
     3464    Hashtable cc_reg_PY = new Hashtable();
     3465    cc_reg_PY.Add("01", "Alto Parana");
     3466    cc_reg_PY.Add("02", "Amambay");
     3467    cc_reg_PY.Add("03", "Boqueron");
     3468    cc_reg_PY.Add("04", "Caaguazu");
     3469    cc_reg_PY.Add("05", "Caazapa");
     3470    cc_reg_PY.Add("06", "Central");
     3471    cc_reg_PY.Add("07", "Concepcion");
     3472    cc_reg_PY.Add("08", "Cordillera");
     3473    cc_reg_PY.Add("10", "Guaira");
     3474    cc_reg_PY.Add("11", "Itapua");
     3475    cc_reg_PY.Add("12", "Misiones");
     3476    cc_reg_PY.Add("13", "Neembucu");
     3477    cc_reg_PY.Add("15", "Paraguari");
     3478    cc_reg_PY.Add("16", "Presidente Hayes");
     3479    cc_reg_PY.Add("17", "San Pedro");
     3480    cc_reg_PY.Add("19", "Canindeyu");
     3481    cc_reg_PY.Add("20", "Chaco");
     3482    cc_reg_PY.Add("21", "Nueva Asuncion");
     3483    cc_reg_PY.Add("23", "Alto Paraguay");
     3484    GEOIP_REGION_NAME.Add("PY", cc_reg_PY);
     3485    Hashtable cc_reg_QA = new Hashtable();
     3486    cc_reg_QA.Add("01", "Ad Dawhah");
     3487    cc_reg_QA.Add("02", "Al Ghuwariyah");
     3488    cc_reg_QA.Add("03", "Al Jumaliyah");
     3489    cc_reg_QA.Add("04", "Al Khawr");
     3490    cc_reg_QA.Add("05", "Al Wakrah Municipality");
     3491    cc_reg_QA.Add("06", "Ar Rayyan");
     3492    cc_reg_QA.Add("08", "Madinat ach Shamal");
     3493    cc_reg_QA.Add("09", "Umm Salal");
     3494    cc_reg_QA.Add("10", "Al Wakrah");
     3495    cc_reg_QA.Add("11", "Jariyan al Batnah");
     3496    cc_reg_QA.Add("12", "Umm Sa'id");
     3497    GEOIP_REGION_NAME.Add("QA", cc_reg_QA);
     3498    Hashtable cc_reg_RO = new Hashtable();
     3499    cc_reg_RO.Add("01", "Alba");
     3500    cc_reg_RO.Add("02", "Arad");
     3501    cc_reg_RO.Add("03", "Arges");
     3502    cc_reg_RO.Add("04", "Bacau");
     3503    cc_reg_RO.Add("05", "Bihor");
     3504    cc_reg_RO.Add("06", "Bistrita-Nasaud");
     3505    cc_reg_RO.Add("07", "Botosani");
     3506    cc_reg_RO.Add("08", "Braila");
     3507    cc_reg_RO.Add("09", "Brasov");
     3508    cc_reg_RO.Add("10", "Bucuresti");
     3509    cc_reg_RO.Add("11", "Buzau");
     3510    cc_reg_RO.Add("12", "Caras-Severin");
     3511    cc_reg_RO.Add("13", "Cluj");
     3512    cc_reg_RO.Add("14", "Constanta");
     3513    cc_reg_RO.Add("15", "Covasna");
     3514    cc_reg_RO.Add("16", "Dambovita");
     3515    cc_reg_RO.Add("17", "Dolj");
     3516    cc_reg_RO.Add("18", "Galati");
     3517    cc_reg_RO.Add("19", "Gorj");
     3518    cc_reg_RO.Add("20", "Harghita");
     3519    cc_reg_RO.Add("21", "Hunedoara");
     3520    cc_reg_RO.Add("22", "Ialomita");
     3521    cc_reg_RO.Add("23", "Iasi");
     3522    cc_reg_RO.Add("25", "Maramures");
     3523    cc_reg_RO.Add("26", "Mehedinti");
     3524    cc_reg_RO.Add("27", "Mures");
     3525    cc_reg_RO.Add("28", "Neamt");
     3526    cc_reg_RO.Add("29", "Olt");
     3527    cc_reg_RO.Add("30", "Prahova");
     3528    cc_reg_RO.Add("31", "Salaj");
     3529    cc_reg_RO.Add("32", "Satu Mare");
     3530    cc_reg_RO.Add("33", "Sibiu");
     3531    cc_reg_RO.Add("34", "Suceava");
     3532    cc_reg_RO.Add("35", "Teleorman");
     3533    cc_reg_RO.Add("36", "Timis");
     3534    cc_reg_RO.Add("37", "Tulcea");
     3535    cc_reg_RO.Add("38", "Vaslui");
     3536    cc_reg_RO.Add("39", "Valcea");
     3537    cc_reg_RO.Add("40", "Vrancea");
     3538    cc_reg_RO.Add("41", "Calarasi");
     3539    cc_reg_RO.Add("42", "Giurgiu");
     3540    cc_reg_RO.Add("43", "Ilfov");
     3541    GEOIP_REGION_NAME.Add("RO", cc_reg_RO);
     3542    Hashtable cc_reg_RS = new Hashtable();
     3543    cc_reg_RS.Add("01", "Kosovo");
     3544    cc_reg_RS.Add("02", "Vojvodina");
     3545    GEOIP_REGION_NAME.Add("RS", cc_reg_RS);
     3546    Hashtable cc_reg_RU = new Hashtable();
     3547    cc_reg_RU.Add("01", "Adygeya, Republic of");
     3548    cc_reg_RU.Add("02", "Aginsky Buryatsky AO");
     3549    cc_reg_RU.Add("03", "Gorno-Altay");
     3550    cc_reg_RU.Add("04", "Altaisky krai");
     3551    cc_reg_RU.Add("05", "Amur");
     3552    cc_reg_RU.Add("06", "Arkhangel'sk");
     3553    cc_reg_RU.Add("07", "Astrakhan'");
     3554    cc_reg_RU.Add("08", "Bashkortostan");
     3555    cc_reg_RU.Add("09", "Belgorod");
     3556    cc_reg_RU.Add("10", "Bryansk");
     3557    cc_reg_RU.Add("11", "Buryat");
     3558    cc_reg_RU.Add("12", "Chechnya");
     3559    cc_reg_RU.Add("13", "Chelyabinsk");
     3560    cc_reg_RU.Add("14", "Chita");
     3561    cc_reg_RU.Add("15", "Chukot");
     3562    cc_reg_RU.Add("16", "Chuvashia");
     3563    cc_reg_RU.Add("17", "Dagestan");
     3564    cc_reg_RU.Add("18", "Evenk");
     3565    cc_reg_RU.Add("19", "Ingush");
     3566    cc_reg_RU.Add("20", "Irkutsk");
     3567    cc_reg_RU.Add("21", "Ivanovo");
     3568    cc_reg_RU.Add("22", "Kabardin-Balkar");
     3569    cc_reg_RU.Add("23", "Kaliningrad");
     3570    cc_reg_RU.Add("24", "Kalmyk");
     3571    cc_reg_RU.Add("25", "Kaluga");
     3572    cc_reg_RU.Add("26", "Kamchatka");
     3573    cc_reg_RU.Add("27", "Karachay-Cherkess");
     3574    cc_reg_RU.Add("28", "Karelia");
     3575    cc_reg_RU.Add("29", "Kemerovo");
     3576    cc_reg_RU.Add("30", "Khabarovsk");
     3577    cc_reg_RU.Add("31", "Khakass");
     3578    cc_reg_RU.Add("32", "Khanty-Mansiy");
     3579    cc_reg_RU.Add("33", "Kirov");
     3580    cc_reg_RU.Add("34", "Komi");
     3581    cc_reg_RU.Add("35", "Komi-Permyak");
     3582    cc_reg_RU.Add("36", "Koryak");
     3583    cc_reg_RU.Add("37", "Kostroma");
     3584    cc_reg_RU.Add("38", "Krasnodar");
     3585    cc_reg_RU.Add("39", "Krasnoyarsk");
     3586    cc_reg_RU.Add("40", "Kurgan");
     3587    cc_reg_RU.Add("41", "Kursk");
     3588    cc_reg_RU.Add("42", "Leningrad");
     3589    cc_reg_RU.Add("43", "Lipetsk");
     3590    cc_reg_RU.Add("44", "Magadan");
     3591    cc_reg_RU.Add("45", "Mariy-El");
     3592    cc_reg_RU.Add("46", "Mordovia");
     3593    cc_reg_RU.Add("47", "Moskva");
     3594    cc_reg_RU.Add("48", "Moscow City");
     3595    cc_reg_RU.Add("49", "Murmansk");
     3596    cc_reg_RU.Add("50", "Nenets");
     3597    cc_reg_RU.Add("51", "Nizhegorod");
     3598    cc_reg_RU.Add("52", "Novgorod");
     3599    cc_reg_RU.Add("53", "Novosibirsk");
     3600    cc_reg_RU.Add("54", "Omsk");
     3601    cc_reg_RU.Add("55", "Orenburg");
     3602    cc_reg_RU.Add("56", "Orel");
     3603    cc_reg_RU.Add("57", "Penza");
     3604    cc_reg_RU.Add("58", "Perm'");
     3605    cc_reg_RU.Add("59", "Primor'ye");
     3606    cc_reg_RU.Add("60", "Pskov");
     3607    cc_reg_RU.Add("61", "Rostov");
     3608    cc_reg_RU.Add("62", "Ryazan'");
     3609    cc_reg_RU.Add("63", "Sakha");
     3610    cc_reg_RU.Add("64", "Sakhalin");
     3611    cc_reg_RU.Add("65", "Samara");
     3612    cc_reg_RU.Add("66", "Saint Petersburg City");
     3613    cc_reg_RU.Add("67", "Saratov");
     3614    cc_reg_RU.Add("68", "North Ossetia");
     3615    cc_reg_RU.Add("69", "Smolensk");
     3616    cc_reg_RU.Add("70", "Stavropol'");
     3617    cc_reg_RU.Add("71", "Sverdlovsk");
     3618    cc_reg_RU.Add("72", "Tambovskaya oblast");
     3619    cc_reg_RU.Add("73", "Tatarstan");
     3620    cc_reg_RU.Add("74", "Taymyr");
     3621    cc_reg_RU.Add("75", "Tomsk");
     3622    cc_reg_RU.Add("76", "Tula");
     3623    cc_reg_RU.Add("77", "Tver'");
     3624    cc_reg_RU.Add("78", "Tyumen'");
     3625    cc_reg_RU.Add("79", "Tuva");
     3626    cc_reg_RU.Add("80", "Udmurt");
     3627    cc_reg_RU.Add("81", "Ul'yanovsk");
     3628    cc_reg_RU.Add("82", "Ust-Orda Buryat");
     3629    cc_reg_RU.Add("83", "Vladimir");
     3630    cc_reg_RU.Add("84", "Volgograd");
     3631    cc_reg_RU.Add("85", "Vologda");
     3632    cc_reg_RU.Add("86", "Voronezh");
     3633    cc_reg_RU.Add("87", "Yamal-Nenets");
     3634    cc_reg_RU.Add("88", "Yaroslavl'");
     3635    cc_reg_RU.Add("89", "Yevrey");
     3636    cc_reg_RU.Add("90", "Permskiy Kray");
     3637    cc_reg_RU.Add("91", "Krasnoyarskiy Kray");
     3638    cc_reg_RU.Add("CI", "Chechnya Republic");
     3639    GEOIP_REGION_NAME.Add("RU", cc_reg_RU);
     3640    Hashtable cc_reg_RW = new Hashtable();
     3641    cc_reg_RW.Add("01", "Butare");
     3642    cc_reg_RW.Add("06", "Gitarama");
     3643    cc_reg_RW.Add("07", "Kibungo");
     3644    cc_reg_RW.Add("09", "Kigali");
     3645    cc_reg_RW.Add("11", "Est");
     3646    cc_reg_RW.Add("12", "Kigali");
     3647    cc_reg_RW.Add("13", "Nord");
     3648    cc_reg_RW.Add("14", "Ouest");
     3649    cc_reg_RW.Add("15", "Sud");
     3650    GEOIP_REGION_NAME.Add("RW", cc_reg_RW);
     3651    Hashtable cc_reg_SA = new Hashtable();
     3652    cc_reg_SA.Add("02", "Al Bahah");
     3653    cc_reg_SA.Add("03", "Al Jawf");
     3654    cc_reg_SA.Add("05", "Al Madinah");
     3655    cc_reg_SA.Add("06", "Ash Sharqiyah");
     3656    cc_reg_SA.Add("08", "Al Qasim");
     3657    cc_reg_SA.Add("09", "Al Qurayyat");
     3658    cc_reg_SA.Add("10", "Ar Riyad");
     3659    cc_reg_SA.Add("13", "Ha'il");
     3660    cc_reg_SA.Add("14", "Makkah");
     3661    cc_reg_SA.Add("15", "Al Hudud ash Shamaliyah");
     3662    cc_reg_SA.Add("16", "Najran");
     3663    cc_reg_SA.Add("17", "Jizan");
     3664    cc_reg_SA.Add("19", "Tabuk");
     3665    cc_reg_SA.Add("20", "Al Jawf");
     3666    GEOIP_REGION_NAME.Add("SA", cc_reg_SA);
     3667    Hashtable cc_reg_SB = new Hashtable();
     3668    cc_reg_SB.Add("03", "Malaita");
     3669    cc_reg_SB.Add("06", "Guadalcanal");
     3670    cc_reg_SB.Add("07", "Isabel");
     3671    cc_reg_SB.Add("08", "Makira");
     3672    cc_reg_SB.Add("09", "Temotu");
     3673    cc_reg_SB.Add("10", "Central");
     3674    cc_reg_SB.Add("11", "Western");
     3675    cc_reg_SB.Add("12", "Choiseul");
     3676    cc_reg_SB.Add("13", "Rennell and Bellona");
     3677    GEOIP_REGION_NAME.Add("SB", cc_reg_SB);
     3678    Hashtable cc_reg_SC = new Hashtable();
     3679    cc_reg_SC.Add("01", "Anse aux Pins");
     3680    cc_reg_SC.Add("02", "Anse Boileau");
     3681    cc_reg_SC.Add("03", "Anse Etoile");
     3682    cc_reg_SC.Add("04", "Anse Louis");
     3683    cc_reg_SC.Add("05", "Anse Royale");
     3684    cc_reg_SC.Add("06", "Baie Lazare");
     3685    cc_reg_SC.Add("07", "Baie Sainte Anne");
     3686    cc_reg_SC.Add("08", "Beau Vallon");
     3687    cc_reg_SC.Add("09", "Bel Air");
     3688    cc_reg_SC.Add("10", "Bel Ombre");
     3689    cc_reg_SC.Add("11", "Cascade");
     3690    cc_reg_SC.Add("12", "Glacis");
     3691    cc_reg_SC.Add("13", "Grand' Anse");
     3692    cc_reg_SC.Add("14", "Grand' Anse");
     3693    cc_reg_SC.Add("15", "La Digue");
     3694    cc_reg_SC.Add("16", "La Riviere Anglaise");
     3695    cc_reg_SC.Add("17", "Mont Buxton");
     3696    cc_reg_SC.Add("18", "Mont Fleuri");
     3697    cc_reg_SC.Add("19", "Plaisance");
     3698    cc_reg_SC.Add("20", "Pointe La Rue");
     3699    cc_reg_SC.Add("21", "Port Glaud");
     3700    cc_reg_SC.Add("22", "Saint Louis");
     3701    cc_reg_SC.Add("23", "Takamaka");
     3702    GEOIP_REGION_NAME.Add("SC", cc_reg_SC);
     3703    Hashtable cc_reg_SD = new Hashtable();
     3704    cc_reg_SD.Add("27", "Al Wusta");
     3705    cc_reg_SD.Add("28", "Al Istiwa'iyah");
     3706    cc_reg_SD.Add("29", "Al Khartum");
     3707    cc_reg_SD.Add("30", "Ash Shamaliyah");
     3708    cc_reg_SD.Add("31", "Ash Sharqiyah");
     3709    cc_reg_SD.Add("32", "Bahr al Ghazal");
     3710    cc_reg_SD.Add("33", "Darfur");
     3711    cc_reg_SD.Add("34", "Kurdufan");
     3712    cc_reg_SD.Add("35", "Upper Nile");
     3713    cc_reg_SD.Add("40", "Al Wahadah State");
     3714    cc_reg_SD.Add("44", "Central Equatoria State");
     3715    GEOIP_REGION_NAME.Add("SD", cc_reg_SD);
     3716    Hashtable cc_reg_SE = new Hashtable();
     3717    cc_reg_SE.Add("01", "Alvsborgs Lan");
     3718    cc_reg_SE.Add("02", "Blekinge Lan");
     3719    cc_reg_SE.Add("03", "Gavleborgs Lan");
     3720    cc_reg_SE.Add("04", "Goteborgs och Bohus Lan");
     3721    cc_reg_SE.Add("05", "Gotlands Lan");
     3722    cc_reg_SE.Add("06", "Hallands Lan");
     3723    cc_reg_SE.Add("07", "Jamtlands Lan");
     3724    cc_reg_SE.Add("08", "Jonkopings Lan");
     3725    cc_reg_SE.Add("09", "Kalmar Lan");
     3726    cc_reg_SE.Add("10", "Dalarnas Lan");
     3727    cc_reg_SE.Add("11", "Kristianstads Lan");
     3728    cc_reg_SE.Add("12", "Kronobergs Lan");
     3729    cc_reg_SE.Add("13", "Malmohus Lan");
     3730    cc_reg_SE.Add("14", "Norrbottens Lan");
     3731    cc_reg_SE.Add("15", "Orebro Lan");
     3732    cc_reg_SE.Add("16", "Ostergotlands Lan");
     3733    cc_reg_SE.Add("17", "Skaraborgs Lan");
     3734    cc_reg_SE.Add("18", "Sodermanlands Lan");
     3735    cc_reg_SE.Add("21", "Uppsala Lan");
     3736    cc_reg_SE.Add("22", "Varmlands Lan");
     3737    cc_reg_SE.Add("23", "Vasterbottens Lan");
     3738    cc_reg_SE.Add("24", "Vasternorrlands Lan");
     3739    cc_reg_SE.Add("25", "Vastmanlands Lan");
     3740    cc_reg_SE.Add("26", "Stockholms Lan");
     3741    cc_reg_SE.Add("27", "Skane Lan");
     3742    cc_reg_SE.Add("28", "Vastra Gotaland");
     3743    GEOIP_REGION_NAME.Add("SE", cc_reg_SE);
     3744    Hashtable cc_reg_SH = new Hashtable();
     3745    cc_reg_SH.Add("01", "Ascension");
     3746    cc_reg_SH.Add("02", "Saint Helena");
     3747    cc_reg_SH.Add("03", "Tristan da Cunha");
     3748    GEOIP_REGION_NAME.Add("SH", cc_reg_SH);
     3749    Hashtable cc_reg_SI = new Hashtable();
     3750    cc_reg_SI.Add("01", "Ajdovscina");
     3751    cc_reg_SI.Add("02", "Beltinci");
     3752    cc_reg_SI.Add("03", "Bled");
     3753    cc_reg_SI.Add("04", "Bohinj");
     3754    cc_reg_SI.Add("05", "Borovnica");
     3755    cc_reg_SI.Add("06", "Bovec");
     3756    cc_reg_SI.Add("07", "Brda");
     3757    cc_reg_SI.Add("08", "Brezice");
     3758    cc_reg_SI.Add("09", "Brezovica");
     3759    cc_reg_SI.Add("11", "Celje");
     3760    cc_reg_SI.Add("12", "Cerklje na Gorenjskem");
     3761    cc_reg_SI.Add("13", "Cerknica");
     3762    cc_reg_SI.Add("14", "Cerkno");
     3763    cc_reg_SI.Add("15", "Crensovci");
     3764    cc_reg_SI.Add("16", "Crna na Koroskem");
     3765    cc_reg_SI.Add("17", "Crnomelj");
     3766    cc_reg_SI.Add("19", "Divaca");
     3767    cc_reg_SI.Add("20", "Dobrepolje");
     3768    cc_reg_SI.Add("22", "Dol pri Ljubljani");
     3769    cc_reg_SI.Add("24", "Dornava");
     3770    cc_reg_SI.Add("25", "Dravograd");
     3771    cc_reg_SI.Add("26", "Duplek");
     3772    cc_reg_SI.Add("27", "Gorenja Vas-Poljane");
     3773    cc_reg_SI.Add("28", "Gorisnica");
     3774    cc_reg_SI.Add("29", "Gornja Radgona");
     3775    cc_reg_SI.Add("30", "Gornji Grad");
     3776    cc_reg_SI.Add("31", "Gornji Petrovci");
     3777    cc_reg_SI.Add("32", "Grosuplje");
     3778    cc_reg_SI.Add("34", "Hrastnik");
     3779    cc_reg_SI.Add("35", "Hrpelje-Kozina");
     3780    cc_reg_SI.Add("36", "Idrija");
     3781    cc_reg_SI.Add("37", "Ig");
     3782    cc_reg_SI.Add("38", "Ilirska Bistrica");
     3783    cc_reg_SI.Add("39", "Ivancna Gorica");
     3784    cc_reg_SI.Add("40", "Izola-Isola");
     3785    cc_reg_SI.Add("42", "Jursinci");
     3786    cc_reg_SI.Add("44", "Kanal");
     3787    cc_reg_SI.Add("45", "Kidricevo");
     3788    cc_reg_SI.Add("46", "Kobarid");
     3789    cc_reg_SI.Add("47", "Kobilje");
     3790    cc_reg_SI.Add("49", "Komen");
     3791    cc_reg_SI.Add("50", "Koper-Capodistria");
     3792    cc_reg_SI.Add("51", "Kozje");
     3793    cc_reg_SI.Add("52", "Kranj");
     3794    cc_reg_SI.Add("53", "Kranjska Gora");
     3795    cc_reg_SI.Add("54", "Krsko");
     3796    cc_reg_SI.Add("55", "Kungota");
     3797    cc_reg_SI.Add("57", "Lasko");
     3798    cc_reg_SI.Add("61", "Ljubljana");
     3799    cc_reg_SI.Add("62", "Ljubno");
     3800    cc_reg_SI.Add("64", "Logatec");
     3801    cc_reg_SI.Add("66", "Loski Potok");
     3802    cc_reg_SI.Add("68", "Lukovica");
     3803    cc_reg_SI.Add("71", "Medvode");
     3804    cc_reg_SI.Add("72", "Menges");
     3805    cc_reg_SI.Add("73", "Metlika");
     3806    cc_reg_SI.Add("74", "Mezica");
     3807    cc_reg_SI.Add("76", "Mislinja");
     3808    cc_reg_SI.Add("77", "Moravce");
     3809    cc_reg_SI.Add("78", "Moravske Toplice");
     3810    cc_reg_SI.Add("79", "Mozirje");
     3811    cc_reg_SI.Add("80", "Murska Sobota");
     3812    cc_reg_SI.Add("81", "Muta");
     3813    cc_reg_SI.Add("82", "Naklo");
     3814    cc_reg_SI.Add("83", "Nazarje");
     3815    cc_reg_SI.Add("84", "Nova Gorica");
     3816    cc_reg_SI.Add("86", "Odranci");
     3817    cc_reg_SI.Add("87", "Ormoz");
     3818    cc_reg_SI.Add("88", "Osilnica");
     3819    cc_reg_SI.Add("89", "Pesnica");
     3820    cc_reg_SI.Add("91", "Pivka");
     3821    cc_reg_SI.Add("92", "Podcetrtek");
     3822    cc_reg_SI.Add("94", "Postojna");
     3823    cc_reg_SI.Add("97", "Puconci");
     3824    cc_reg_SI.Add("98", "Racam");
     3825    cc_reg_SI.Add("99", "Radece");
     3826    cc_reg_SI.Add("A1", "Radenci");
     3827    cc_reg_SI.Add("A2", "Radlje ob Dravi");
     3828    cc_reg_SI.Add("A3", "Radovljica");
     3829    cc_reg_SI.Add("A6", "Rogasovci");
     3830    cc_reg_SI.Add("A7", "Rogaska Slatina");
     3831    cc_reg_SI.Add("A8", "Rogatec");
     3832    cc_reg_SI.Add("B1", "Semic");
     3833    cc_reg_SI.Add("B2", "Sencur");
     3834    cc_reg_SI.Add("B3", "Sentilj");
     3835    cc_reg_SI.Add("B4", "Sentjernej");
     3836    cc_reg_SI.Add("B6", "Sevnica");
     3837    cc_reg_SI.Add("B7", "Sezana");
     3838    cc_reg_SI.Add("B8", "Skocjan");
     3839    cc_reg_SI.Add("B9", "Skofja Loka");
     3840    cc_reg_SI.Add("C1", "Skofljica");
     3841    cc_reg_SI.Add("C2", "Slovenj Gradec");
     3842    cc_reg_SI.Add("C4", "Slovenske Konjice");
     3843    cc_reg_SI.Add("C5", "Smarje pri Jelsah");
     3844    cc_reg_SI.Add("C6", "Smartno ob Paki");
     3845    cc_reg_SI.Add("C7", "Sostanj");
     3846    cc_reg_SI.Add("C8", "Starse");
     3847    cc_reg_SI.Add("C9", "Store");
     3848    cc_reg_SI.Add("D1", "Sveti Jurij");
     3849    cc_reg_SI.Add("D2", "Tolmin");
     3850    cc_reg_SI.Add("D3", "Trbovlje");
     3851    cc_reg_SI.Add("D4", "Trebnje");
     3852    cc_reg_SI.Add("D5", "Trzic");
     3853    cc_reg_SI.Add("D6", "Turnisce");
     3854    cc_reg_SI.Add("D7", "Velenje");
     3855    cc_reg_SI.Add("D8", "Velike Lasce");
     3856    cc_reg_SI.Add("E1", "Vipava");
     3857    cc_reg_SI.Add("E2", "Vitanje");
     3858    cc_reg_SI.Add("E3", "Vodice");
     3859    cc_reg_SI.Add("E5", "Vrhnika");
     3860    cc_reg_SI.Add("E6", "Vuzenica");
     3861    cc_reg_SI.Add("E7", "Zagorje ob Savi");
     3862    cc_reg_SI.Add("E9", "Zavrc");
     3863    cc_reg_SI.Add("F1", "Zelezniki");
     3864    cc_reg_SI.Add("F2", "Ziri");
     3865    cc_reg_SI.Add("F3", "Zrece");
     3866    cc_reg_SI.Add("G4", "Dobrova-Horjul-Polhov Gradec");
     3867    cc_reg_SI.Add("G7", "Domzale");
     3868    cc_reg_SI.Add("H4", "Jesenice");
     3869    cc_reg_SI.Add("H6", "Kamnik");
     3870    cc_reg_SI.Add("H7", "Kocevje");
     3871    cc_reg_SI.Add("I2", "Kuzma");
     3872    cc_reg_SI.Add("I3", "Lenart");
     3873    cc_reg_SI.Add("I5", "Litija");
     3874    cc_reg_SI.Add("I6", "Ljutomer");
     3875    cc_reg_SI.Add("I7", "Loska Dolina");
     3876    cc_reg_SI.Add("I9", "Luce");
     3877    cc_reg_SI.Add("J1", "Majsperk");
     3878    cc_reg_SI.Add("J2", "Maribor");
     3879    cc_reg_SI.Add("J5", "Miren-Kostanjevica");
     3880    cc_reg_SI.Add("J7", "Novo Mesto");
     3881    cc_reg_SI.Add("J9", "Piran");
     3882    cc_reg_SI.Add("K5", "Preddvor");
     3883    cc_reg_SI.Add("K7", "Ptuj");
     3884    cc_reg_SI.Add("L1", "Ribnica");
     3885    cc_reg_SI.Add("L3", "Ruse");
     3886    cc_reg_SI.Add("L7", "Sentjur pri Celju");
     3887    cc_reg_SI.Add("L8", "Slovenska Bistrica");
     3888    cc_reg_SI.Add("N2", "Videm");
     3889    cc_reg_SI.Add("N3", "Vojnik");
     3890    cc_reg_SI.Add("N5", "Zalec");
     3891    GEOIP_REGION_NAME.Add("SI", cc_reg_SI);
     3892    Hashtable cc_reg_SK = new Hashtable();
     3893    cc_reg_SK.Add("01", "Banska Bystrica");
     3894    cc_reg_SK.Add("02", "Bratislava");
     3895    cc_reg_SK.Add("03", "Kosice");
     3896    cc_reg_SK.Add("04", "Nitra");
     3897    cc_reg_SK.Add("05", "Presov");
     3898    cc_reg_SK.Add("06", "Trencin");
     3899    cc_reg_SK.Add("07", "Trnava");
     3900    cc_reg_SK.Add("08", "Zilina");
     3901    GEOIP_REGION_NAME.Add("SK", cc_reg_SK);
     3902    Hashtable cc_reg_SL = new Hashtable();
     3903    cc_reg_SL.Add("01", "Eastern");
     3904    cc_reg_SL.Add("02", "Northern");
     3905    cc_reg_SL.Add("03", "Southern");
     3906    cc_reg_SL.Add("04", "Western Area");
     3907    GEOIP_REGION_NAME.Add("SL", cc_reg_SL);
     3908    Hashtable cc_reg_SM = new Hashtable();
     3909    cc_reg_SM.Add("01", "Acquaviva");
     3910    cc_reg_SM.Add("02", "Chiesanuova");
     3911    cc_reg_SM.Add("03", "Domagnano");
     3912    cc_reg_SM.Add("04", "Faetano");
     3913    cc_reg_SM.Add("05", "Fiorentino");
     3914    cc_reg_SM.Add("06", "Borgo Maggiore");
     3915    cc_reg_SM.Add("07", "San Marino");
     3916    cc_reg_SM.Add("08", "Monte Giardino");
     3917    cc_reg_SM.Add("09", "Serravalle");
     3918    GEOIP_REGION_NAME.Add("SM", cc_reg_SM);
     3919    Hashtable cc_reg_SN = new Hashtable();
     3920    cc_reg_SN.Add("01", "Dakar");
     3921    cc_reg_SN.Add("03", "Diourbel");
     3922    cc_reg_SN.Add("04", "Saint-Louis");
     3923    cc_reg_SN.Add("05", "Tambacounda");
     3924    cc_reg_SN.Add("07", "Thies");
     3925    cc_reg_SN.Add("08", "Louga");
     3926    cc_reg_SN.Add("09", "Fatick");
     3927    cc_reg_SN.Add("10", "Kaolack");
     3928    cc_reg_SN.Add("11", "Kolda");
     3929    cc_reg_SN.Add("12", "Ziguinchor");
     3930    cc_reg_SN.Add("13", "Louga");
     3931    cc_reg_SN.Add("14", "Saint-Louis");
     3932    cc_reg_SN.Add("15", "Matam");
     3933    GEOIP_REGION_NAME.Add("SN", cc_reg_SN);
     3934    Hashtable cc_reg_SO = new Hashtable();
     3935    cc_reg_SO.Add("01", "Bakool");
     3936    cc_reg_SO.Add("02", "Banaadir");
     3937    cc_reg_SO.Add("03", "Bari");
     3938    cc_reg_SO.Add("04", "Bay");
     3939    cc_reg_SO.Add("05", "Galguduud");
     3940    cc_reg_SO.Add("06", "Gedo");
     3941    cc_reg_SO.Add("07", "Hiiraan");
     3942    cc_reg_SO.Add("08", "Jubbada Dhexe");
     3943    cc_reg_SO.Add("09", "Jubbada Hoose");
     3944    cc_reg_SO.Add("10", "Mudug");
     3945    cc_reg_SO.Add("11", "Nugaal");
     3946    cc_reg_SO.Add("12", "Sanaag");
     3947    cc_reg_SO.Add("13", "Shabeellaha Dhexe");
     3948    cc_reg_SO.Add("14", "Shabeellaha Hoose");
     3949    cc_reg_SO.Add("16", "Woqooyi Galbeed");
     3950    cc_reg_SO.Add("18", "Nugaal");
     3951    cc_reg_SO.Add("19", "Togdheer");
     3952    cc_reg_SO.Add("20", "Woqooyi Galbeed");
     3953    cc_reg_SO.Add("21", "Awdal");
     3954    cc_reg_SO.Add("22", "Sool");
     3955    GEOIP_REGION_NAME.Add("SO", cc_reg_SO);
     3956    Hashtable cc_reg_SR = new Hashtable();
     3957    cc_reg_SR.Add("10", "Brokopondo");
     3958    cc_reg_SR.Add("11", "Commewijne");
     3959    cc_reg_SR.Add("12", "Coronie");
     3960    cc_reg_SR.Add("13", "Marowijne");
     3961    cc_reg_SR.Add("14", "Nickerie");
     3962    cc_reg_SR.Add("15", "Para");
     3963    cc_reg_SR.Add("16", "Paramaribo");
     3964    cc_reg_SR.Add("17", "Saramacca");
     3965    cc_reg_SR.Add("18", "Sipaliwini");
     3966    cc_reg_SR.Add("19", "Wanica");
     3967    GEOIP_REGION_NAME.Add("SR", cc_reg_SR);
     3968    Hashtable cc_reg_ST = new Hashtable();
     3969    cc_reg_ST.Add("01", "Principe");
     3970    cc_reg_ST.Add("02", "Sao Tome");
     3971    GEOIP_REGION_NAME.Add("ST", cc_reg_ST);
     3972    Hashtable cc_reg_SV = new Hashtable();
     3973    cc_reg_SV.Add("01", "Ahuachapan");
     3974    cc_reg_SV.Add("02", "Cabanas");
     3975    cc_reg_SV.Add("03", "Chalatenango");
     3976    cc_reg_SV.Add("04", "Cuscatlan");
     3977    cc_reg_SV.Add("05", "La Libertad");
     3978    cc_reg_SV.Add("06", "La Paz");
     3979    cc_reg_SV.Add("07", "La Union");
     3980    cc_reg_SV.Add("08", "Morazan");
     3981    cc_reg_SV.Add("09", "San Miguel");
     3982    cc_reg_SV.Add("10", "San Salvador");
     3983    cc_reg_SV.Add("11", "Santa Ana");
     3984    cc_reg_SV.Add("12", "San Vicente");
     3985    cc_reg_SV.Add("13", "Sonsonate");
     3986    cc_reg_SV.Add("14", "Usulutan");
     3987    GEOIP_REGION_NAME.Add("SV", cc_reg_SV);
     3988    Hashtable cc_reg_SY = new Hashtable();
     3989    cc_reg_SY.Add("01", "Al Hasakah");
     3990    cc_reg_SY.Add("02", "Al Ladhiqiyah");
     3991    cc_reg_SY.Add("03", "Al Qunaytirah");
     3992    cc_reg_SY.Add("04", "Ar Raqqah");
     3993    cc_reg_SY.Add("05", "As Suwayda'");
     3994    cc_reg_SY.Add("06", "Dar");
     3995    cc_reg_SY.Add("07", "Dayr az Zawr");
     3996    cc_reg_SY.Add("08", "Rif Dimashq");
     3997    cc_reg_SY.Add("09", "Halab");
     3998    cc_reg_SY.Add("10", "Hamah");
     3999    cc_reg_SY.Add("11", "Hims");
     4000    cc_reg_SY.Add("12", "Idlib");
     4001    cc_reg_SY.Add("13", "Dimashq");
     4002    cc_reg_SY.Add("14", "Tartus");
     4003    GEOIP_REGION_NAME.Add("SY", cc_reg_SY);
     4004    Hashtable cc_reg_SZ = new Hashtable();
     4005    cc_reg_SZ.Add("01", "Hhohho");
     4006    cc_reg_SZ.Add("02", "Lubombo");
     4007    cc_reg_SZ.Add("03", "Manzini");
     4008    cc_reg_SZ.Add("04", "Shiselweni");
     4009    cc_reg_SZ.Add("05", "Praslin");
     4010    GEOIP_REGION_NAME.Add("SZ", cc_reg_SZ);
     4011    Hashtable cc_reg_TD = new Hashtable();
     4012    cc_reg_TD.Add("01", "Batha");
     4013    cc_reg_TD.Add("02", "Biltine");
     4014    cc_reg_TD.Add("03", "Borkou-Ennedi-Tibesti");
     4015    cc_reg_TD.Add("04", "Chari-Baguirmi");
     4016    cc_reg_TD.Add("05", "Guera");
     4017    cc_reg_TD.Add("06", "Kanem");
     4018    cc_reg_TD.Add("07", "Lac");
     4019    cc_reg_TD.Add("08", "Logone Occidental");
     4020    cc_reg_TD.Add("09", "Logone Oriental");
     4021    cc_reg_TD.Add("10", "Mayo-Kebbi");
     4022    cc_reg_TD.Add("11", "Moyen-Chari");
     4023    cc_reg_TD.Add("12", "Ouaddai");
     4024    cc_reg_TD.Add("13", "Salamat");
     4025    cc_reg_TD.Add("14", "Tandjile");
     4026    GEOIP_REGION_NAME.Add("TD", cc_reg_TD);
     4027    Hashtable cc_reg_TG = new Hashtable();
     4028    cc_reg_TG.Add("09", "Lama-Kara");
     4029    cc_reg_TG.Add("18", "Tsevie");
     4030    cc_reg_TG.Add("22", "Centrale");
     4031    cc_reg_TG.Add("23", "Kara");
     4032    cc_reg_TG.Add("24", "Maritime");
     4033    cc_reg_TG.Add("25", "Plateaux");
     4034    cc_reg_TG.Add("26", "Savanes");
     4035    GEOIP_REGION_NAME.Add("TG", cc_reg_TG);
     4036    Hashtable cc_reg_TH = new Hashtable();
     4037    cc_reg_TH.Add("01", "Mae Hong Son");
     4038    cc_reg_TH.Add("02", "Chiang Mai");
     4039    cc_reg_TH.Add("03", "Chiang Rai");
     4040    cc_reg_TH.Add("04", "Nan");
     4041    cc_reg_TH.Add("05", "Lamphun");
     4042    cc_reg_TH.Add("06", "Lampang");
     4043    cc_reg_TH.Add("07", "Phrae");
     4044    cc_reg_TH.Add("08", "Tak");
     4045    cc_reg_TH.Add("09", "Sukhothai");
     4046    cc_reg_TH.Add("10", "Uttaradit");
     4047    cc_reg_TH.Add("11", "Kamphaeng Phet");
     4048    cc_reg_TH.Add("12", "Phitsanulok");
     4049    cc_reg_TH.Add("13", "Phichit");
     4050    cc_reg_TH.Add("14", "Phetchabun");
     4051    cc_reg_TH.Add("15", "Uthai Thani");
     4052    cc_reg_TH.Add("16", "Nakhon Sawan");
     4053    cc_reg_TH.Add("17", "Nong Khai");
     4054    cc_reg_TH.Add("18", "Loei");
     4055    cc_reg_TH.Add("20", "Sakon Nakhon");
     4056    cc_reg_TH.Add("21", "Nakhon Phanom");
     4057    cc_reg_TH.Add("22", "Khon Kaen");
     4058    cc_reg_TH.Add("23", "Kalasin");
     4059    cc_reg_TH.Add("24", "Maha Sarakham");
     4060    cc_reg_TH.Add("25", "Roi Et");
     4061    cc_reg_TH.Add("26", "Chaiyaphum");
     4062    cc_reg_TH.Add("27", "Nakhon Ratchasima");
     4063    cc_reg_TH.Add("28", "Buriram");
     4064    cc_reg_TH.Add("29", "Surin");
     4065    cc_reg_TH.Add("30", "Sisaket");
     4066    cc_reg_TH.Add("31", "Narathiwat");
     4067    cc_reg_TH.Add("32", "Chai Nat");
     4068    cc_reg_TH.Add("33", "Sing Buri");
     4069    cc_reg_TH.Add("34", "Lop Buri");
     4070    cc_reg_TH.Add("35", "Ang Thong");
     4071    cc_reg_TH.Add("36", "Phra Nakhon Si Ayutthaya");
     4072    cc_reg_TH.Add("37", "Saraburi");
     4073    cc_reg_TH.Add("38", "Nonthaburi");
     4074    cc_reg_TH.Add("39", "Pathum Thani");
     4075    cc_reg_TH.Add("40", "Krung Thep");
     4076    cc_reg_TH.Add("41", "Phayao");
     4077    cc_reg_TH.Add("42", "Samut Prakan");
     4078    cc_reg_TH.Add("43", "Nakhon Nayok");
     4079    cc_reg_TH.Add("44", "Chachoengsao");
     4080    cc_reg_TH.Add("45", "Prachin Buri");
     4081    cc_reg_TH.Add("46", "Chon Buri");
     4082    cc_reg_TH.Add("47", "Rayong");
     4083    cc_reg_TH.Add("48", "Chanthaburi");
     4084    cc_reg_TH.Add("49", "Trat");
     4085    cc_reg_TH.Add("50", "Kanchanaburi");
     4086    cc_reg_TH.Add("51", "Suphan Buri");
     4087    cc_reg_TH.Add("52", "Ratchaburi");
     4088    cc_reg_TH.Add("53", "Nakhon Pathom");
     4089    cc_reg_TH.Add("54", "Samut Songkhram");
     4090    cc_reg_TH.Add("55", "Samut Sakhon");
     4091    cc_reg_TH.Add("56", "Phetchaburi");
     4092    cc_reg_TH.Add("57", "Prachuap Khiri Khan");
     4093    cc_reg_TH.Add("58", "Chumphon");
     4094    cc_reg_TH.Add("59", "Ranong");
     4095    cc_reg_TH.Add("60", "Surat Thani");
     4096    cc_reg_TH.Add("61", "Phangnga");
     4097    cc_reg_TH.Add("62", "Phuket");
     4098    cc_reg_TH.Add("63", "Krabi");
     4099    cc_reg_TH.Add("64", "Nakhon Si Thammarat");
     4100    cc_reg_TH.Add("65", "Trang");
     4101    cc_reg_TH.Add("66", "Phatthalung");
     4102    cc_reg_TH.Add("67", "Satun");
     4103    cc_reg_TH.Add("68", "Songkhla");
     4104    cc_reg_TH.Add("69", "Pattani");
     4105    cc_reg_TH.Add("70", "Yala");
     4106    cc_reg_TH.Add("71", "Ubon Ratchathani");
     4107    cc_reg_TH.Add("72", "Yasothon");
     4108    cc_reg_TH.Add("73", "Nakhon Phanom");
     4109    cc_reg_TH.Add("75", "Ubon Ratchathani");
     4110    cc_reg_TH.Add("76", "Udon Thani");
     4111    cc_reg_TH.Add("77", "Amnat Charoen");
     4112    cc_reg_TH.Add("78", "Mukdahan");
     4113    cc_reg_TH.Add("79", "Nong Bua Lamphu");
     4114    cc_reg_TH.Add("80", "Sa Kaeo");
     4115    GEOIP_REGION_NAME.Add("TH", cc_reg_TH);
     4116    Hashtable cc_reg_TJ = new Hashtable();
     4117    cc_reg_TJ.Add("01", "Kuhistoni Badakhshon");
     4118    cc_reg_TJ.Add("02", "Khatlon");
     4119    cc_reg_TJ.Add("03", "Sughd");
     4120    GEOIP_REGION_NAME.Add("TJ", cc_reg_TJ);
     4121    Hashtable cc_reg_TM = new Hashtable();
     4122    cc_reg_TM.Add("01", "Ahal");
     4123    cc_reg_TM.Add("02", "Balkan");
     4124    cc_reg_TM.Add("03", "Dashoguz");
     4125    cc_reg_TM.Add("04", "Lebap");
     4126    cc_reg_TM.Add("05", "Mary");
     4127    GEOIP_REGION_NAME.Add("TM", cc_reg_TM);
     4128    Hashtable cc_reg_TN = new Hashtable();
     4129    cc_reg_TN.Add("02", "Kasserine");
     4130    cc_reg_TN.Add("03", "Kairouan");
     4131    cc_reg_TN.Add("06", "Jendouba");
     4132    cc_reg_TN.Add("14", "El Kef");
     4133    cc_reg_TN.Add("15", "Al Mahdia");
     4134    cc_reg_TN.Add("16", "Al Munastir");
     4135    cc_reg_TN.Add("17", "Bajah");
     4136    cc_reg_TN.Add("18", "Bizerte");
     4137    cc_reg_TN.Add("19", "Nabeul");
     4138    cc_reg_TN.Add("22", "Siliana");
     4139    cc_reg_TN.Add("23", "Sousse");
     4140    cc_reg_TN.Add("26", "Ariana");
     4141    cc_reg_TN.Add("27", "Ben Arous");
     4142    cc_reg_TN.Add("28", "Madanin");
     4143    cc_reg_TN.Add("29", "Gabes");
     4144    cc_reg_TN.Add("30", "Gafsa");
     4145    cc_reg_TN.Add("31", "Kebili");
     4146    cc_reg_TN.Add("32", "Sfax");
     4147    cc_reg_TN.Add("33", "Sidi Bou Zid");
     4148    cc_reg_TN.Add("34", "Tataouine");
     4149    cc_reg_TN.Add("35", "Tozeur");
     4150    cc_reg_TN.Add("36", "Tunis");
     4151    cc_reg_TN.Add("37", "Zaghouan");
     4152    GEOIP_REGION_NAME.Add("TN", cc_reg_TN);
     4153    Hashtable cc_reg_TO = new Hashtable();
     4154    cc_reg_TO.Add("01", "Ha");
     4155    cc_reg_TO.Add("02", "Tongatapu");
     4156    cc_reg_TO.Add("03", "Vava");
     4157    GEOIP_REGION_NAME.Add("TO", cc_reg_TO);
     4158    Hashtable cc_reg_TR = new Hashtable();
     4159    cc_reg_TR.Add("02", "Adiyaman");
     4160    cc_reg_TR.Add("03", "Afyonkarahisar");
     4161    cc_reg_TR.Add("04", "Agri");
     4162    cc_reg_TR.Add("05", "Amasya");
     4163    cc_reg_TR.Add("07", "Antalya");
     4164    cc_reg_TR.Add("08", "Artvin");
     4165    cc_reg_TR.Add("09", "Aydin");
     4166    cc_reg_TR.Add("10", "Balikesir");
     4167    cc_reg_TR.Add("11", "Bilecik");
     4168    cc_reg_TR.Add("12", "Bingol");
     4169    cc_reg_TR.Add("13", "Bitlis");
     4170    cc_reg_TR.Add("14", "Bolu");
     4171    cc_reg_TR.Add("15", "Burdur");
     4172    cc_reg_TR.Add("16", "Bursa");
     4173    cc_reg_TR.Add("17", "Canakkale");
     4174    cc_reg_TR.Add("19", "Corum");
     4175    cc_reg_TR.Add("20", "Denizli");
     4176    cc_reg_TR.Add("21", "Diyarbakir");
     4177    cc_reg_TR.Add("22", "Edirne");
     4178    cc_reg_TR.Add("23", "Elazig");
     4179    cc_reg_TR.Add("24", "Erzincan");
     4180    cc_reg_TR.Add("25", "Erzurum");
     4181    cc_reg_TR.Add("26", "Eskisehir");
     4182    cc_reg_TR.Add("28", "Giresun");
     4183    cc_reg_TR.Add("31", "Hatay");
     4184    cc_reg_TR.Add("32", "Icel");
     4185    cc_reg_TR.Add("33", "Isparta");
     4186    cc_reg_TR.Add("34", "Istanbul");
     4187    cc_reg_TR.Add("35", "Izmir");
     4188    cc_reg_TR.Add("37", "Kastamonu");
     4189    cc_reg_TR.Add("38", "Kayseri");
     4190    cc_reg_TR.Add("39", "Kirklareli");
     4191    cc_reg_TR.Add("40", "Kirsehir");
     4192    cc_reg_TR.Add("41", "Kocaeli");
     4193    cc_reg_TR.Add("43", "Kutahya");
     4194    cc_reg_TR.Add("44", "Malatya");
     4195    cc_reg_TR.Add("45", "Manisa");
     4196    cc_reg_TR.Add("46", "Kahramanmaras");
     4197    cc_reg_TR.Add("48", "Mugla");
     4198    cc_reg_TR.Add("49", "Mus");
     4199    cc_reg_TR.Add("50", "Nevsehir");
     4200    cc_reg_TR.Add("52", "Ordu");
     4201    cc_reg_TR.Add("53", "Rize");
     4202    cc_reg_TR.Add("54", "Sakarya");
     4203    cc_reg_TR.Add("55", "Samsun");
     4204    cc_reg_TR.Add("57", "Sinop");
     4205    cc_reg_TR.Add("58", "Sivas");
     4206    cc_reg_TR.Add("59", "Tekirdag");
     4207    cc_reg_TR.Add("60", "Tokat");
     4208    cc_reg_TR.Add("61", "Trabzon");
     4209    cc_reg_TR.Add("62", "Tunceli");
     4210    cc_reg_TR.Add("63", "Sanliurfa");
     4211    cc_reg_TR.Add("64", "Usak");
     4212    cc_reg_TR.Add("65", "Van");
     4213    cc_reg_TR.Add("66", "Yozgat");
     4214    cc_reg_TR.Add("68", "Ankara");
     4215    cc_reg_TR.Add("69", "Gumushane");
     4216    cc_reg_TR.Add("70", "Hakkari");
     4217    cc_reg_TR.Add("71", "Konya");
     4218    cc_reg_TR.Add("72", "Mardin");
     4219    cc_reg_TR.Add("73", "Nigde");
     4220    cc_reg_TR.Add("74", "Siirt");
     4221    cc_reg_TR.Add("75", "Aksaray");
     4222    cc_reg_TR.Add("76", "Batman");
     4223    cc_reg_TR.Add("77", "Bayburt");
     4224    cc_reg_TR.Add("78", "Karaman");
     4225    cc_reg_TR.Add("79", "Kirikkale");
     4226    cc_reg_TR.Add("80", "Sirnak");
     4227    cc_reg_TR.Add("81", "Adana");
     4228    cc_reg_TR.Add("82", "Cankiri");
     4229    cc_reg_TR.Add("83", "Gaziantep");
     4230    cc_reg_TR.Add("84", "Kars");
     4231    cc_reg_TR.Add("85", "Zonguldak");
     4232    cc_reg_TR.Add("86", "Ardahan");
     4233    cc_reg_TR.Add("87", "Bartin");
     4234    cc_reg_TR.Add("88", "Igdir");
     4235    cc_reg_TR.Add("89", "Karabuk");
     4236    cc_reg_TR.Add("90", "Kilis");
     4237    cc_reg_TR.Add("91", "Osmaniye");
     4238    cc_reg_TR.Add("92", "Yalova");
     4239    cc_reg_TR.Add("93", "Duzce");
     4240    GEOIP_REGION_NAME.Add("TR", cc_reg_TR);
     4241    Hashtable cc_reg_TT = new Hashtable();
     4242    cc_reg_TT.Add("01", "Arima");
     4243    cc_reg_TT.Add("02", "Caroni");
     4244    cc_reg_TT.Add("03", "Mayaro");
     4245    cc_reg_TT.Add("04", "Nariva");
     4246    cc_reg_TT.Add("05", "Port-of-Spain");
     4247    cc_reg_TT.Add("06", "Saint Andrew");
     4248    cc_reg_TT.Add("07", "Saint David");
     4249    cc_reg_TT.Add("08", "Saint George");
     4250    cc_reg_TT.Add("09", "Saint Patrick");
     4251    cc_reg_TT.Add("10", "San Fernando");
     4252    cc_reg_TT.Add("11", "Tobago");
     4253    cc_reg_TT.Add("12", "Victoria");
     4254    GEOIP_REGION_NAME.Add("TT", cc_reg_TT);
     4255    Hashtable cc_reg_TW = new Hashtable();
     4256    cc_reg_TW.Add("01", "Fu-chien");
     4257    cc_reg_TW.Add("02", "Kao-hsiung");
     4258    cc_reg_TW.Add("03", "T'ai-pei");
     4259    cc_reg_TW.Add("04", "T'ai-wan");
     4260    GEOIP_REGION_NAME.Add("TW", cc_reg_TW);
     4261    Hashtable cc_reg_TZ = new Hashtable();
     4262    cc_reg_TZ.Add("02", "Pwani");
     4263    cc_reg_TZ.Add("03", "Dodoma");
     4264    cc_reg_TZ.Add("04", "Iringa");
     4265    cc_reg_TZ.Add("05", "Kigoma");
     4266    cc_reg_TZ.Add("06", "Kilimanjaro");
     4267    cc_reg_TZ.Add("07", "Lindi");
     4268    cc_reg_TZ.Add("08", "Mara");
     4269    cc_reg_TZ.Add("09", "Mbeya");
     4270    cc_reg_TZ.Add("10", "Morogoro");
     4271    cc_reg_TZ.Add("11", "Mtwara");
     4272    cc_reg_TZ.Add("12", "Mwanza");
     4273    cc_reg_TZ.Add("13", "Pemba North");
     4274    cc_reg_TZ.Add("14", "Ruvuma");
     4275    cc_reg_TZ.Add("15", "Shinyanga");
     4276    cc_reg_TZ.Add("16", "Singida");
     4277    cc_reg_TZ.Add("17", "Tabora");
     4278    cc_reg_TZ.Add("18", "Tanga");
     4279    cc_reg_TZ.Add("19", "Kagera");
     4280    cc_reg_TZ.Add("20", "Pemba South");
     4281    cc_reg_TZ.Add("21", "Zanzibar Central");
     4282    cc_reg_TZ.Add("22", "Zanzibar North");
     4283    cc_reg_TZ.Add("23", "Dar es Salaam");
     4284    cc_reg_TZ.Add("24", "Rukwa");
     4285    cc_reg_TZ.Add("25", "Zanzibar Urban");
     4286    cc_reg_TZ.Add("26", "Arusha");
     4287    cc_reg_TZ.Add("27", "Manyara");
     4288    GEOIP_REGION_NAME.Add("TZ", cc_reg_TZ);
     4289    Hashtable cc_reg_UA = new Hashtable();
     4290    cc_reg_UA.Add("01", "Cherkas'ka Oblast'");
     4291    cc_reg_UA.Add("02", "Chernihivs'ka Oblast'");
     4292    cc_reg_UA.Add("03", "Chernivets'ka Oblast'");
     4293    cc_reg_UA.Add("04", "Dnipropetrovs'ka Oblast'");
     4294    cc_reg_UA.Add("05", "Donets'ka Oblast'");
     4295    cc_reg_UA.Add("06", "Ivano-Frankivs'ka Oblast'");
     4296    cc_reg_UA.Add("07", "Kharkivs'ka Oblast'");
     4297    cc_reg_UA.Add("08", "Khersons'ka Oblast'");
     4298    cc_reg_UA.Add("09", "Khmel'nyts'ka Oblast'");
     4299    cc_reg_UA.Add("10", "Kirovohrads'ka Oblast'");
     4300    cc_reg_UA.Add("11", "Krym");
     4301    cc_reg_UA.Add("12", "Kyyiv");
     4302    cc_reg_UA.Add("13", "Kyyivs'ka Oblast'");
     4303    cc_reg_UA.Add("14", "Luhans'ka Oblast'");
     4304    cc_reg_UA.Add("15", "L'vivs'ka Oblast'");
     4305    cc_reg_UA.Add("16", "Mykolayivs'ka Oblast'");
     4306    cc_reg_UA.Add("17", "Odes'ka Oblast'");
     4307    cc_reg_UA.Add("18", "Poltavs'ka Oblast'");
     4308    cc_reg_UA.Add("19", "Rivnens'ka Oblast'");
     4309    cc_reg_UA.Add("20", "Sevastopol'");
     4310    cc_reg_UA.Add("21", "Sums'ka Oblast'");
     4311    cc_reg_UA.Add("22", "Ternopil's'ka Oblast'");
     4312    cc_reg_UA.Add("23", "Vinnyts'ka Oblast'");
     4313    cc_reg_UA.Add("24", "Volyns'ka Oblast'");
     4314    cc_reg_UA.Add("25", "Zakarpats'ka Oblast'");
     4315    cc_reg_UA.Add("26", "Zaporiz'ka Oblast'");
     4316    cc_reg_UA.Add("27", "Zhytomyrs'ka Oblast'");
     4317    GEOIP_REGION_NAME.Add("UA", cc_reg_UA);
     4318    Hashtable cc_reg_UG = new Hashtable();
     4319    cc_reg_UG.Add("05", "Busoga");
     4320    cc_reg_UG.Add("08", "Karamoja");
     4321    cc_reg_UG.Add("12", "South Buganda");
     4322    cc_reg_UG.Add("18", "Central");
     4323    cc_reg_UG.Add("20", "Eastern");
     4324    cc_reg_UG.Add("21", "Nile");
     4325    cc_reg_UG.Add("22", "North Buganda");
     4326    cc_reg_UG.Add("23", "Northern");
     4327    cc_reg_UG.Add("24", "Southern");
     4328    cc_reg_UG.Add("25", "Western");
     4329    cc_reg_UG.Add("33", "Jinja");
     4330    cc_reg_UG.Add("36", "Kalangala");
     4331    cc_reg_UG.Add("37", "Kampala");
     4332    cc_reg_UG.Add("42", "Kiboga");
     4333    cc_reg_UG.Add("52", "Mbarara");
     4334    cc_reg_UG.Add("56", "Mubende");
     4335    cc_reg_UG.Add("65", "Adjumani");
     4336    cc_reg_UG.Add("66", "Bugiri");
     4337    cc_reg_UG.Add("67", "Busia");
     4338    cc_reg_UG.Add("69", "Katakwi");
     4339    cc_reg_UG.Add("71", "Masaka");
     4340    cc_reg_UG.Add("73", "Nakasongola");
     4341    cc_reg_UG.Add("74", "Sembabule");
     4342    cc_reg_UG.Add("77", "Arua");
     4343    cc_reg_UG.Add("78", "Iganga");
     4344    cc_reg_UG.Add("79", "Kabarole");
     4345    cc_reg_UG.Add("80", "Kaberamaido");
     4346    cc_reg_UG.Add("81", "Kamwenge");
     4347    cc_reg_UG.Add("82", "Kanungu");
     4348    cc_reg_UG.Add("83", "Kayunga");
     4349    cc_reg_UG.Add("84", "Kitgum");
     4350    cc_reg_UG.Add("85", "Kyenjojo");
     4351    cc_reg_UG.Add("86", "Mayuge");
     4352    cc_reg_UG.Add("87", "Mbale");
     4353    cc_reg_UG.Add("88", "Moroto");
     4354    cc_reg_UG.Add("89", "Mpigi");
     4355    cc_reg_UG.Add("90", "Mukono");
     4356    cc_reg_UG.Add("91", "Nakapiripirit");
     4357    cc_reg_UG.Add("92", "Pader");
     4358    cc_reg_UG.Add("93", "Rukungiri");
     4359    cc_reg_UG.Add("94", "Sironko");
     4360    cc_reg_UG.Add("95", "Soroti");
     4361    cc_reg_UG.Add("96", "Wakiso");
     4362    cc_reg_UG.Add("97", "Yumbe");
     4363    GEOIP_REGION_NAME.Add("UG", cc_reg_UG);
     4364    Hashtable cc_reg_US = new Hashtable();
     4365    cc_reg_US.Add("AA", "Armed Forces Americas");
     4366    cc_reg_US.Add("AE", "Armed Forces Europe, Middle East, & Canada");
     4367    cc_reg_US.Add("AK", "Alaska");
     4368    cc_reg_US.Add("AL", "Alabama");
     4369    cc_reg_US.Add("AP", "Armed Forces Pacific");
     4370    cc_reg_US.Add("AR", "Arkansas");
     4371    cc_reg_US.Add("AS", "American Samoa");
     4372    cc_reg_US.Add("AZ", "Arizona");
     4373    cc_reg_US.Add("CA", "California");
     4374    cc_reg_US.Add("CO", "Colorado");
     4375    cc_reg_US.Add("CT", "Connecticut");
     4376    cc_reg_US.Add("DC", "District of Columbia");
     4377    cc_reg_US.Add("DE", "Delaware");
     4378    cc_reg_US.Add("FL", "Florida");
     4379    cc_reg_US.Add("FM", "Federated States of Micronesia");
     4380    cc_reg_US.Add("GA", "Georgia");
     4381    cc_reg_US.Add("GU", "Guam");
     4382    cc_reg_US.Add("HI", "Hawaii");
     4383    cc_reg_US.Add("IA", "Iowa");
     4384    cc_reg_US.Add("ID", "Idaho");
     4385    cc_reg_US.Add("IL", "Illinois");
     4386    cc_reg_US.Add("IN", "Indiana");
     4387    cc_reg_US.Add("KS", "Kansas");
     4388    cc_reg_US.Add("KY", "Kentucky");
     4389    cc_reg_US.Add("LA", "Louisiana");
     4390    cc_reg_US.Add("MA", "Massachusetts");
     4391    cc_reg_US.Add("MD", "Maryland");
     4392    cc_reg_US.Add("ME", "Maine");
     4393    cc_reg_US.Add("MH", "Marshall Islands");
     4394    cc_reg_US.Add("MI", "Michigan");
     4395    cc_reg_US.Add("MN", "Minnesota");
     4396    cc_reg_US.Add("MO", "Missouri");
     4397    cc_reg_US.Add("MP", "Northern Mariana Islands");
     4398    cc_reg_US.Add("MS", "Mississippi");
     4399    cc_reg_US.Add("MT", "Montana");
     4400    cc_reg_US.Add("NC", "North Carolina");
     4401    cc_reg_US.Add("ND", "North Dakota");
     4402    cc_reg_US.Add("NE", "Nebraska");
     4403    cc_reg_US.Add("NH", "New Hampshire");
     4404    cc_reg_US.Add("NJ", "New Jersey");
     4405    cc_reg_US.Add("NM", "New Mexico");
     4406    cc_reg_US.Add("NV", "Nevada");
     4407    cc_reg_US.Add("NY", "New York");
     4408    cc_reg_US.Add("OH", "Ohio");
     4409    cc_reg_US.Add("OK", "Oklahoma");
     4410    cc_reg_US.Add("OR", "Oregon");
     4411    cc_reg_US.Add("PA", "Pennsylvania");
     4412    cc_reg_US.Add("PR", "Puerto Rico");
     4413    cc_reg_US.Add("PW", "Palau");
     4414    cc_reg_US.Add("RI", "Rhode Island");
     4415    cc_reg_US.Add("SC", "South Carolina");
     4416    cc_reg_US.Add("SD", "South Dakota");
     4417    cc_reg_US.Add("TN", "Tennessee");
     4418    cc_reg_US.Add("TX", "Texas");
     4419    cc_reg_US.Add("UT", "Utah");
     4420    cc_reg_US.Add("VA", "Virginia");
     4421    cc_reg_US.Add("VI", "Virgin Islands");
     4422    cc_reg_US.Add("VT", "Vermont");
     4423    cc_reg_US.Add("WA", "Washington");
     4424    cc_reg_US.Add("WI", "Wisconsin");
     4425    cc_reg_US.Add("WV", "West Virginia");
     4426    cc_reg_US.Add("WY", "Wyoming");
     4427    GEOIP_REGION_NAME.Add("US", cc_reg_US);
     4428    Hashtable cc_reg_UY = new Hashtable();
     4429    cc_reg_UY.Add("01", "Artigas");
     4430    cc_reg_UY.Add("02", "Canelones");
     4431    cc_reg_UY.Add("03", "Cerro Largo");
     4432    cc_reg_UY.Add("04", "Colonia");
     4433    cc_reg_UY.Add("05", "Durazno");
     4434    cc_reg_UY.Add("06", "Flores");
     4435    cc_reg_UY.Add("07", "Florida");
     4436    cc_reg_UY.Add("08", "Lavalleja");
     4437    cc_reg_UY.Add("09", "Maldonado");
     4438    cc_reg_UY.Add("10", "Montevideo");
     4439    cc_reg_UY.Add("11", "Paysandu");
     4440    cc_reg_UY.Add("12", "Rio Negro");
     4441    cc_reg_UY.Add("13", "Rivera");
     4442    cc_reg_UY.Add("14", "Rocha");
     4443    cc_reg_UY.Add("15", "Salto");
     4444    cc_reg_UY.Add("16", "San Jose");
     4445    cc_reg_UY.Add("17", "Soriano");
     4446    cc_reg_UY.Add("18", "Tacuarembo");
     4447    cc_reg_UY.Add("19", "Treinta y Tres");
     4448    GEOIP_REGION_NAME.Add("UY", cc_reg_UY);
     4449    Hashtable cc_reg_UZ = new Hashtable();
     4450    cc_reg_UZ.Add("01", "Andijon");
     4451    cc_reg_UZ.Add("02", "Bukhoro");
     4452    cc_reg_UZ.Add("03", "Farghona");
     4453    cc_reg_UZ.Add("04", "Jizzakh");
     4454    cc_reg_UZ.Add("05", "Khorazm");
     4455    cc_reg_UZ.Add("06", "Namangan");
     4456    cc_reg_UZ.Add("07", "Nawoiy");
     4457    cc_reg_UZ.Add("08", "Qashqadaryo");
     4458    cc_reg_UZ.Add("09", "Qoraqalpoghiston");
     4459    cc_reg_UZ.Add("10", "Samarqand");
     4460    cc_reg_UZ.Add("11", "Sirdaryo");
     4461    cc_reg_UZ.Add("12", "Surkhondaryo");
     4462    cc_reg_UZ.Add("13", "Toshkent");
     4463    cc_reg_UZ.Add("14", "Toshkent");
     4464    GEOIP_REGION_NAME.Add("UZ", cc_reg_UZ);
     4465    Hashtable cc_reg_VC = new Hashtable();
     4466    cc_reg_VC.Add("01", "Charlotte");
     4467    cc_reg_VC.Add("02", "Saint Andrew");
     4468    cc_reg_VC.Add("03", "Saint David");
     4469    cc_reg_VC.Add("04", "Saint George");
     4470    cc_reg_VC.Add("05", "Saint Patrick");
     4471    cc_reg_VC.Add("06", "Grenadines");
     4472    GEOIP_REGION_NAME.Add("VC", cc_reg_VC);
     4473    Hashtable cc_reg_VE = new Hashtable();
     4474    cc_reg_VE.Add("01", "Amazonas");
     4475    cc_reg_VE.Add("02", "Anzoategui");
     4476    cc_reg_VE.Add("03", "Apure");
     4477    cc_reg_VE.Add("04", "Aragua");
     4478    cc_reg_VE.Add("05", "Barinas");
     4479    cc_reg_VE.Add("06", "Bolivar");
     4480    cc_reg_VE.Add("07", "Carabobo");
     4481    cc_reg_VE.Add("08", "Cojedes");
     4482    cc_reg_VE.Add("09", "Delta Amacuro");
     4483    cc_reg_VE.Add("11", "Falcon");
     4484    cc_reg_VE.Add("12", "Guarico");
     4485    cc_reg_VE.Add("13", "Lara");
     4486    cc_reg_VE.Add("14", "Merida");
     4487    cc_reg_VE.Add("15", "Miranda");
     4488    cc_reg_VE.Add("16", "Monagas");
     4489    cc_reg_VE.Add("17", "Nueva Esparta");
     4490    cc_reg_VE.Add("18", "Portuguesa");
     4491    cc_reg_VE.Add("19", "Sucre");
     4492    cc_reg_VE.Add("20", "Tachira");
     4493    cc_reg_VE.Add("21", "Trujillo");
     4494    cc_reg_VE.Add("22", "Yaracuy");
     4495    cc_reg_VE.Add("23", "Zulia");
     4496    cc_reg_VE.Add("24", "Dependencias Federales");
     4497    cc_reg_VE.Add("25", "Distrito Federal");
     4498    cc_reg_VE.Add("26", "Vargas");
     4499    GEOIP_REGION_NAME.Add("VE", cc_reg_VE);
     4500    Hashtable cc_reg_VN = new Hashtable();
     4501    cc_reg_VN.Add("01", "An Giang");
     4502    cc_reg_VN.Add("02", "Bac Thai");
     4503    cc_reg_VN.Add("03", "Ben Tre");
     4504    cc_reg_VN.Add("04", "Binh Tri Thien");
     4505    cc_reg_VN.Add("05", "Cao Bang");
     4506    cc_reg_VN.Add("06", "Cuu Long");
     4507    cc_reg_VN.Add("07", "Dac Lac");
     4508    cc_reg_VN.Add("09", "Dong Thap");
     4509    cc_reg_VN.Add("11", "Ha Bac");
     4510    cc_reg_VN.Add("12", "Hai Hung");
     4511    cc_reg_VN.Add("13", "Hai Phong");
     4512    cc_reg_VN.Add("14", "Ha Nam Ninh");
     4513    cc_reg_VN.Add("15", "Ha Noi");
     4514    cc_reg_VN.Add("16", "Ha Son Binh");
     4515    cc_reg_VN.Add("17", "Ha Tuyen");
     4516    cc_reg_VN.Add("19", "Hoang Lien Son");
     4517    cc_reg_VN.Add("20", "Ho Chi Minh");
     4518    cc_reg_VN.Add("21", "Kien Giang");
     4519    cc_reg_VN.Add("22", "Lai Chau");
     4520    cc_reg_VN.Add("23", "Lam Dong");
     4521    cc_reg_VN.Add("24", "Long An");
     4522    cc_reg_VN.Add("25", "Minh Hai");
     4523    cc_reg_VN.Add("26", "Nghe Tinh");
     4524    cc_reg_VN.Add("27", "Nghia Binh");
     4525    cc_reg_VN.Add("28", "Phu Khanh");
     4526    cc_reg_VN.Add("29", "Quang Nam-Da Nang");
     4527    cc_reg_VN.Add("30", "Quang Ninh");
     4528    cc_reg_VN.Add("31", "Song Be");
     4529    cc_reg_VN.Add("32", "Son La");
     4530    cc_reg_VN.Add("33", "Tay Ninh");
     4531    cc_reg_VN.Add("34", "Thanh Hoa");
     4532    cc_reg_VN.Add("35", "Thai Binh");
     4533    cc_reg_VN.Add("36", "Thuan Hai");
     4534    cc_reg_VN.Add("37", "Tien Giang");
     4535    cc_reg_VN.Add("38", "Vinh Phu");
     4536    cc_reg_VN.Add("39", "Lang Son");
     4537    cc_reg_VN.Add("40", "Dong Nai");
     4538    cc_reg_VN.Add("43", "An Giang");
     4539    cc_reg_VN.Add("44", "Dac Lac");
     4540    cc_reg_VN.Add("45", "Dong Nai");
     4541    cc_reg_VN.Add("46", "Dong Thap");
     4542    cc_reg_VN.Add("47", "Kien Giang");
     4543    cc_reg_VN.Add("48", "Minh Hai");
     4544    cc_reg_VN.Add("49", "Song Be");
     4545    cc_reg_VN.Add("50", "Vinh Phu");
     4546    cc_reg_VN.Add("51", "Ha Noi");
     4547    cc_reg_VN.Add("52", "Ho Chi Minh");
     4548    cc_reg_VN.Add("53", "Ba Ria-Vung Tau");
     4549    cc_reg_VN.Add("54", "Binh Dinh");
     4550    cc_reg_VN.Add("55", "Binh Thuan");
     4551    cc_reg_VN.Add("56", "Can Tho");
     4552    cc_reg_VN.Add("57", "Gia Lai");
     4553    cc_reg_VN.Add("58", "Ha Giang");
     4554    cc_reg_VN.Add("59", "Ha Tay");
     4555    cc_reg_VN.Add("60", "Ha Tinh");
     4556    cc_reg_VN.Add("61", "Hoa Binh");
     4557    cc_reg_VN.Add("62", "Khanh Hoa");
     4558    cc_reg_VN.Add("63", "Kon Tum");
     4559    cc_reg_VN.Add("64", "Quang Tri");
     4560    cc_reg_VN.Add("65", "Nam Ha");
     4561    cc_reg_VN.Add("66", "Nghe An");
     4562    cc_reg_VN.Add("67", "Ninh Binh");
     4563    cc_reg_VN.Add("68", "Ninh Thuan");
     4564    cc_reg_VN.Add("69", "Phu Yen");
     4565    cc_reg_VN.Add("70", "Quang Binh");
     4566    cc_reg_VN.Add("71", "Quang Ngai");
     4567    cc_reg_VN.Add("72", "Quang Tri");
     4568    cc_reg_VN.Add("73", "Soc Trang");
     4569    cc_reg_VN.Add("74", "Thua Thien");
     4570    cc_reg_VN.Add("75", "Tra Vinh");
     4571    cc_reg_VN.Add("76", "Tuyen Quang");
     4572    cc_reg_VN.Add("77", "Vinh Long");
     4573    cc_reg_VN.Add("78", "Da Nang");
     4574    cc_reg_VN.Add("79", "Hai Duong");
     4575    cc_reg_VN.Add("80", "Ha Nam");
     4576    cc_reg_VN.Add("81", "Hung Yen");
     4577    cc_reg_VN.Add("82", "Nam Dinh");
     4578    cc_reg_VN.Add("83", "Phu Tho");
     4579    cc_reg_VN.Add("84", "Quang Nam");
     4580    cc_reg_VN.Add("85", "Thai Nguyen");
     4581    cc_reg_VN.Add("86", "Vinh Puc Province");
     4582    cc_reg_VN.Add("87", "Can Tho");
     4583    cc_reg_VN.Add("88", "Dak Lak");
     4584    cc_reg_VN.Add("89", "Lai Chau");
     4585    cc_reg_VN.Add("90", "Lao Cai");
     4586    cc_reg_VN.Add("91", "Dak Nong");
     4587    cc_reg_VN.Add("92", "Dien Bien");
     4588    cc_reg_VN.Add("93", "Hau Giang");
     4589    GEOIP_REGION_NAME.Add("VN", cc_reg_VN);
     4590    Hashtable cc_reg_VU = new Hashtable();
     4591    cc_reg_VU.Add("05", "Ambrym");
     4592    cc_reg_VU.Add("06", "Aoba");
     4593    cc_reg_VU.Add("07", "Torba");
     4594    cc_reg_VU.Add("08", "Efate");
     4595    cc_reg_VU.Add("09", "Epi");
     4596    cc_reg_VU.Add("10", "Malakula");
     4597    cc_reg_VU.Add("11", "Paama");
     4598    cc_reg_VU.Add("12", "Pentecote");
     4599    cc_reg_VU.Add("13", "Sanma");
     4600    cc_reg_VU.Add("14", "Shepherd");
     4601    cc_reg_VU.Add("15", "Tafea");
     4602    cc_reg_VU.Add("16", "Malampa");
     4603    cc_reg_VU.Add("17", "Penama");
     4604    cc_reg_VU.Add("18", "Shefa");
     4605    GEOIP_REGION_NAME.Add("VU", cc_reg_VU);
     4606    Hashtable cc_reg_WS = new Hashtable();
     4607    cc_reg_WS.Add("02", "Aiga-i-le-Tai");
     4608    cc_reg_WS.Add("03", "Atua");
     4609    cc_reg_WS.Add("04", "Fa");
     4610    cc_reg_WS.Add("05", "Gaga");
     4611    cc_reg_WS.Add("06", "Va");
     4612    cc_reg_WS.Add("07", "Gagaifomauga");
     4613    cc_reg_WS.Add("08", "Palauli");
     4614    cc_reg_WS.Add("09", "Satupa");
     4615    cc_reg_WS.Add("10", "Tuamasaga");
     4616    cc_reg_WS.Add("11", "Vaisigano");
     4617    GEOIP_REGION_NAME.Add("WS", cc_reg_WS);
     4618    Hashtable cc_reg_YE = new Hashtable();
     4619    cc_reg_YE.Add("01", "Abyan");
     4620    cc_reg_YE.Add("02", "Adan");
     4621    cc_reg_YE.Add("03", "Al Mahrah");
     4622    cc_reg_YE.Add("04", "Hadramawt");
     4623    cc_reg_YE.Add("05", "Shabwah");
     4624    cc_reg_YE.Add("06", "Al Ghaydah");
     4625    cc_reg_YE.Add("08", "Al Hudaydah");
     4626    cc_reg_YE.Add("10", "Al Mahwit");
     4627    cc_reg_YE.Add("11", "Dhamar");
     4628    cc_reg_YE.Add("14", "Ma'rib");
     4629    cc_reg_YE.Add("15", "Sa");
     4630    cc_reg_YE.Add("16", "San");
     4631    cc_reg_YE.Add("20", "Al Bayda'");
     4632    cc_reg_YE.Add("21", "Al Jawf");
     4633    cc_reg_YE.Add("22", "Hajjah");
     4634    cc_reg_YE.Add("23", "Ibb");
     4635    cc_reg_YE.Add("24", "Lahij");
     4636    cc_reg_YE.Add("25", "Ta");
     4637    GEOIP_REGION_NAME.Add("YE", cc_reg_YE);
     4638    Hashtable cc_reg_ZA = new Hashtable();
     4639    cc_reg_ZA.Add("01", "North-Western Province");
     4640    cc_reg_ZA.Add("02", "KwaZulu-Natal");
     4641    cc_reg_ZA.Add("03", "Free State");
     4642    cc_reg_ZA.Add("05", "Eastern Cape");
     4643    cc_reg_ZA.Add("06", "Gauteng");
     4644    cc_reg_ZA.Add("07", "Mpumalanga");
     4645    cc_reg_ZA.Add("08", "Northern Cape");
     4646    cc_reg_ZA.Add("09", "Limpopo");
     4647    cc_reg_ZA.Add("10", "North-West");
     4648    cc_reg_ZA.Add("11", "Western Cape");
     4649    GEOIP_REGION_NAME.Add("ZA", cc_reg_ZA);
     4650    Hashtable cc_reg_ZM = new Hashtable();
     4651    cc_reg_ZM.Add("01", "Western");
     4652    cc_reg_ZM.Add("02", "Central");
     4653    cc_reg_ZM.Add("03", "Eastern");
     4654    cc_reg_ZM.Add("04", "Luapula");
     4655    cc_reg_ZM.Add("05", "Northern");
     4656    cc_reg_ZM.Add("06", "North-Western");
     4657    cc_reg_ZM.Add("07", "Southern");
     4658    cc_reg_ZM.Add("08", "Copperbelt");
     4659    cc_reg_ZM.Add("09", "Lusaka");
     4660    GEOIP_REGION_NAME.Add("ZM", cc_reg_ZM);
     4661    Hashtable cc_reg_ZW = new Hashtable();
     4662    cc_reg_ZW.Add("01", "Manicaland");
     4663    cc_reg_ZW.Add("02", "Midlands");
     4664    cc_reg_ZW.Add("03", "Mashonaland Central");
     4665    cc_reg_ZW.Add("04", "Mashonaland East");
     4666    cc_reg_ZW.Add("05", "Mashonaland West");
     4667    cc_reg_ZW.Add("06", "Matabeleland North");
     4668    cc_reg_ZW.Add("07", "Matabeleland South");
     4669    cc_reg_ZW.Add("08", "Masvingo");
     4670    cc_reg_ZW.Add("09", "Bulawayo");
     4671    cc_reg_ZW.Add("10", "Harare");
     4672    GEOIP_REGION_NAME.Add("ZW", cc_reg_ZW);
     4673  }
    46754674}
  • branches/ClientUserManagement/HeuristicLab.Services.Access-3.3.Tests/HeuristicLab.Services.Access-3.3.Tests.csproj

    r6840 r6852  
    4141    <Reference Include="System.Data.Linq" />
    4242    <Reference Include="System.ServiceModel" />
     43    <Reference Include="System.Web" />
     44    <Reference Include="System.Web.ApplicationServices" />
    4345  </ItemGroup>
    4446  <ItemGroup>
     
    4850  </ItemGroup>
    4951  <ItemGroup>
     52    <Compile Include="MockUserManager.cs" />
    5053    <Compile Include="Properties\AssemblyInfo.cs" />
    5154    <Compile Include="UnitTest.cs" />
  • branches/ClientUserManagement/HeuristicLab.Services.Access-3.3.Tests/MockUserManager.cs

    r6822 r6852  
    2323using System.Web.Security;
    2424
    25 namespace HeuristicLab.Services.Hive.Tests.Mocks {
     25namespace HeuristicLab.Services.Access.Tests {
    2626  public class MockUserManager : IUserManager {
    27     public static Guid MockUserId1 = new Guid("6C7911A1-46EA-4E51-97DF-5582653AAFCE");
    28     public static Guid MockUserId2 = new Guid("897660EB-C90F-4054-988C-D39D530A0A02");
    29     public static Guid MockUserId3 = new Guid("9F7B4EA8-A38D-4BC2-802F-E148AC7A6A87");
    30 
    31     private Guid currentUserId = MockUserId1;
     27    private Guid currentUserId;
    3228    public Guid CurrentUserId {
    3329      get { return currentUserId; }
     
    3531
    3632    public MembershipUser CurrentUser {
    37       get { return null; /* todo */ }
     33      get { return null; }
    3834    }
    3935
    4036    public MembershipUser GetUserByName(string username) {
    41       return null; // todo
     37      return null;
    4238    }
    4339
    4440    public MembershipUser GetUserById(Guid userId) {
    45       return null; // todo
     41      return null;
    4642    }
    4743
  • branches/ClientUserManagement/HeuristicLab.Services.Access-3.3.Tests/UnitTest.cs

    r6840 r6852  
    2121
    2222using System;
     23using System.Collections.Generic;
     24using System.Linq;
    2325using Microsoft.VisualStudio.TestTools.UnitTesting;
    2426using DA = HeuristicLab.Services.Access.DataAccess;
     
    7274      Guid id = service.AddClient(client);
    7375      Assert.IsTrue(service.ClientExists(id));
     76      Assert.AreEqual(1, service.GetAllClients().Count());
     77
     78      service.DeleteClient(service.GetAllClients().First());
     79      Assert.AreEqual(0, service.GetAllClients().Count());
    7480    }
     81
     82    [TestMethod]
     83    public void AddGroupTest() {
     84      ClearDB();
     85      AccessService service = new AccessService();
     86
     87      DT.ClientGroup parentGroup = new DT.ClientGroup() { Name = "Parent", Description = "Parent Group" };
     88      DT.ClientGroup childGroup = new DT.ClientGroup() { Name = "Child", Description = "Child Group" };
     89      DT.ClientGroup otherGroup = new DT.ClientGroup() { Name = "Other", Description = "Other Group" };
     90
     91      parentGroup.Id = service.AddClientGroup(parentGroup);
     92      childGroup.Id = service.AddClientGroup(childGroup);
     93      otherGroup.Id = service.AddClientGroup(otherGroup);
     94
     95      List<Guid> groupGuids = new List<Guid>();
     96      groupGuids.Add(parentGroup.Id);
     97      groupGuids.Add(childGroup.Id);
     98
     99      Assert.AreEqual(3, service.GetAllClientGroups().Count());
     100      var childParentList = service.GetClientGroups(groupGuids);
     101      Assert.AreEqual(2, childParentList.Count());
     102
     103      service.AddResourceToGroup(childGroup, parentGroup);
     104      var mapping = service.GetClientGroupMapping();
     105      Assert.AreEqual(1, mapping.Count());
     106      Assert.AreEqual(mapping.First().Child, childGroup.Id);
     107      Assert.AreEqual(mapping.First().Parent, parentGroup.Id);
     108
     109      service.DeleteClientGroup(otherGroup);
     110      Assert.AreEqual(2, service.GetAllClientGroups().Count());
     111
     112      service.RemoveResourceFromGroup(childGroup, parentGroup);
     113      Assert.AreEqual(0, service.GetClientGroupMapping().Count());
     114    }
     115
     116    [TestMethod]
     117    public void AddClientLogTest() {
     118      ClearDB();
     119      AccessService service = new AccessService();
     120
     121      DT.Client client = new DT.Client() {
     122        Description = "testClient",
     123        HeuristicLabVersion = "3.3.6",
     124        MemorySize = 512,
     125        NumberOfCores = 4,
     126        Name = "testClient",
     127        ProcessorType = "Intel i7",
     128        Timestamp = DateTime.Now
     129      };
     130
     131      client.Id = service.AddClient(client);
     132      Assert.IsTrue(service.ClientExists(client.Id));
     133
     134      DateTime now = DateTime.Now;
     135      DT.ClientLog log = new DT.ClientLog() { Message = "testMessage", ResourceId = client.Id, Timestamp = now };
     136      service.AddClientLog(log);
     137      Assert.AreEqual(1, service.GetClientLogsSince(now).Count());
     138    }
     139
     140
    75141  }
    76142}
  • branches/ClientUserManagement/HeuristicLab.Services.Access.DataAccess/3.3/ClientManagement.dbml

    r6840 r6852  
    1818        <Column Name="NumberOfCores" Type="System.Int32" DbType="Int" CanBeNull="true" />
    1919        <Column Name="ProcessorType" Type="System.String" DbType="NVarChar(MAX)" CanBeNull="true" />
    20         <Column Name="ClientTypeId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="false" />
    21         <Column Name="OperatingSystemId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="false" />
    22         <Column Name="ClientConfigurationId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="false" />
    23         <Column Name="CountryId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="false" />
     20        <Column Name="ClientTypeId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
     21        <Column Name="OperatingSystemId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
     22        <Column Name="ClientConfigurationId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
     23        <Column Name="CountryId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
    2424        <Association Name="ClientType_Client" Member="ClientType" ThisKey="ClientTypeId" OtherKey="Id" Type="ClientType" IsForeignKey="true" />
    2525        <Association Name="OperatingSystem_Client" Member="OperatingSystem" ThisKey="OperatingSystemId" OtherKey="Id" Type="OperatingSystem" IsForeignKey="true" />
  • branches/ClientUserManagement/HeuristicLab.Services.Access.DataAccess/3.3/ClientManagement.dbml.layout

    r6840 r6852  
    5959      </nestedChildShapes>
    6060    </classShape>
    61     <associationConnector edgePoints="[(5.875 : 2.07859537760417); (5.875 : 2.34875); (8.125 : 2.34875)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     61    <associationConnector edgePoints="[(5.875 : 2.07859537760417); (5.875 : 2.34875); (8.125 : 2.34875)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    6262      <AssociationMoniker Name="/ClientManagementDataContext/Resource/Resource_ClientLog" />
    6363      <nodes>
     
    128128      </nodes>
    129129    </associationConnector>
    130     <associationConnector edgePoints="[(5.90625 : 2.07859537760417); (5.90625 : 6.22199625651042); (5.625 : 6.22199625651042)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     130    <associationConnector edgePoints="[(5.90625 : 2.07859537760417); (5.90625 : 6.22199625651042); (5.625 : 6.22199625651042)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    131131      <AssociationMoniker Name="/ClientManagementDataContext/Resource/Resource_ResourcePlugin" />
    132132      <nodes>
     
    186186      </nodes>
    187187    </associationConnector>
    188     <associationConnector edgePoints="[(2.5 : 1.09699625651042); (4.46848483471003 : 1.09699625651042); (4.46848483471003 : 2.5)]" fixedFrom="Algorithm" fixedTo="Caller">
     188    <associationConnector edgePoints="[(2.5 : 1.09699625651042); (4.46848483471003 : 1.09699625651042); (4.46848483471003 : 2.5)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    189189      <AssociationMoniker Name="/ClientManagementDataContext/ClientType/ClientType_Client" />
    190190      <nodes>
     
    193193      </nodes>
    194194    </associationConnector>
    195     <associationConnector edgePoints="[(2.5 : 2.72199625651042); (3.75 : 2.72199625651042)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     195    <associationConnector edgePoints="[(2.5 : 2.72199625651042); (3.75 : 2.72199625651042)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    196196      <AssociationMoniker Name="/ClientManagementDataContext/OperatingSystem/OperatingSystem_Client" />
    197197      <nodes>
     
    200200      </nodes>
    201201    </associationConnector>
    202     <associationConnector edgePoints="[(2.5 : 3.59699625651042); (3.75 : 3.59699625651042)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     202    <associationConnector edgePoints="[(2.5 : 3.59699625651042); (3.75 : 3.59699625651042)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    203203      <AssociationMoniker Name="/ClientManagementDataContext/Country/Country_Client" />
    204204      <nodes>
     
    207207      </nodes>
    208208    </associationConnector>
    209     <associationConnector edgePoints="[(2.5 : 4.64505126953125); (3.75 : 4.64505126953125)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     209    <associationConnector edgePoints="[(2.5 : 4.64505126953125); (3.75 : 4.64505126953125)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    210210      <AssociationMoniker Name="/ClientManagementDataContext/ClientConfiguration/ClientConfiguration_Client" />
    211211      <nodes>
  • branches/ClientUserManagement/HeuristicLab.Services.Access.DataAccess/3.3/ClientManagement.designer.cs

    r6840 r6852  
    486486    private string _ProcessorType;
    487487   
    488     private System.Guid _ClientTypeId;
    489    
    490     private System.Guid _OperatingSystemId;
    491    
    492     private System.Guid _ClientConfigurationId;
    493    
    494     private System.Guid _CountryId;
     488    private System.Nullable<System.Guid> _ClientTypeId;
     489   
     490    private System.Nullable<System.Guid> _OperatingSystemId;
     491   
     492    private System.Nullable<System.Guid> _ClientConfigurationId;
     493   
     494    private System.Nullable<System.Guid> _CountryId;
    495495   
    496496    private EntityRef<ClientType> _ClientType;
     
    516516    partial void OnProcessorTypeChanging(string value);
    517517    partial void OnProcessorTypeChanged();
    518     partial void OnClientTypeIdChanging(System.Guid value);
     518    partial void OnClientTypeIdChanging(System.Nullable<System.Guid> value);
    519519    partial void OnClientTypeIdChanged();
    520     partial void OnOperatingSystemIdChanging(System.Guid value);
     520    partial void OnOperatingSystemIdChanging(System.Nullable<System.Guid> value);
    521521    partial void OnOperatingSystemIdChanged();
    522     partial void OnClientConfigurationIdChanging(System.Guid value);
     522    partial void OnClientConfigurationIdChanging(System.Nullable<System.Guid> value);
    523523    partial void OnClientConfigurationIdChanged();
    524     partial void OnCountryIdChanging(System.Guid value);
     524    partial void OnCountryIdChanging(System.Nullable<System.Guid> value);
    525525    partial void OnCountryIdChanged();
    526526    #endregion
     
    636636   
    637637    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ClientTypeId", DbType="UniqueIdentifier")]
    638     public System.Guid ClientTypeId
     638    public System.Nullable<System.Guid> ClientTypeId
    639639    {
    640640      get
     
    660660   
    661661    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OperatingSystemId", DbType="UniqueIdentifier")]
    662     public System.Guid OperatingSystemId
     662    public System.Nullable<System.Guid> OperatingSystemId
    663663    {
    664664      get
     
    684684   
    685685    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ClientConfigurationId", DbType="UniqueIdentifier")]
    686     public System.Guid ClientConfigurationId
     686    public System.Nullable<System.Guid> ClientConfigurationId
    687687    {
    688688      get
     
    708708   
    709709    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CountryId", DbType="UniqueIdentifier")]
    710     public System.Guid CountryId
     710    public System.Nullable<System.Guid> CountryId
    711711    {
    712712      get
  • branches/ClientUserManagement/HeuristicLab.Services.Access.DataAccess/3.3/HeuristicLab.Services.Access.DataAccess-3.3.csproj

    r6821 r6852  
    9999  <ItemGroup>
    100100    <Content Include="SQL Scripts\Create ClientManagement.sql" />
     101    <Content Include="SQL Scripts\Create Initial Values.sql" />
    101102    <Content Include="SQL Scripts\Initialize ClientManagement.sql" />
    102103  </ItemGroup>
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/AccessService.cs

    r6840 r6852  
    2424using System.Linq;
    2525using System.ServiceModel;
     26using System.Web.Security;
    2627using DA = HeuristicLab.Services.Access.DataAccess;
    2728using DT = HeuristicLab.Services.Access.DataTransfer;
     
    3031  [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
    3132  public class AccessService : IAccessService {
     33    private IUserManager userManager;
     34    private IUserManager UserManager {
     35      get {
     36        if (userManager == null) userManager = new UserManager();
     37        return userManager;
     38      }
     39    }
    3240
    3341    #region Client Members
     
    8391    public void DeleteClient(DT.Client client) {
    8492      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
    85         context.Resources.DeleteOnSubmit(Convert.ToEntity(client));
    86         context.SubmitChanges();
     93        //load client because we could get a detached object
     94        var query = from c in context.GetTable<DA.Resource>().OfType<DA.Client>()
     95                    where c.Id == client.Id
     96                    select c;
     97        if (query.Count() > 0) {
     98          context.Resources.DeleteOnSubmit(query.First());
     99          context.SubmitChanges();
     100        }
    87101      }
    88102    }
     
    120134    }
    121135
    122     public void DeleteClientGroup(DT.ClientGroup group) {
    123       using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
    124         context.Resources.DeleteOnSubmit(Convert.ToEntity(group));
    125         context.SubmitChanges();
    126       }
    127     }
    128 
    129     public void AddResourceToGroup(DT.Resource resource, DT.UserGroup group) {
     136    public void DeleteClientGroup(DT.ClientGroup clientGroup) {
     137      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     138        //load clientGroup because we could get a detached object
     139        var query = from c in context.GetTable<DA.Resource>().OfType<DA.ClientGroup>()
     140                    where c.Id == clientGroup.Id
     141                    select c;
     142        if (query.Count() > 0) {
     143          context.Resources.DeleteOnSubmit(query.First());
     144          context.SubmitChanges();
     145        }
     146      }
     147    }
     148
     149    public void AddResourceToGroup(DT.Resource resource, DT.ClientGroup group) {
    130150      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
    131151        DA.ResourceResourceGroup rrg = new DA.ResourceResourceGroup() {
     
    139159    }
    140160
    141     public void RemoveResourceFromGroup(DT.Resource resource, DT.UserGroup group) {
     161    public void RemoveResourceFromGroup(DT.Resource resource, DT.ClientGroup group) {
    142162      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
    143163        var query = context.ResourceResourceGroups.Where(x => x.ResourceId == resource.Id && x.ResourceGroupId == group.Id);
     
    214234
    215235    #region User
     236    private DT.User BuildUserDto(Guid userId) {
     237      DA.aspnet_User aspUser = null;
     238      DA.aspnet_Membership aspMembership = null;
     239      DA.User accessUser = null;
     240
     241      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     242        var query = from u in context.UserGroupBases.OfType<DA.User>()
     243                    where u.Id == userId
     244                    select u;
     245        if (query.Count() == 1) {
     246          accessUser = query.First();
     247        }
     248      }
     249
     250      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
     251        var userQuery = from u in context.aspnet_Users
     252                        where u.UserId == userId
     253                        select u;
     254        if (userQuery.Count() == 1) {
     255          aspUser = userQuery.First();
     256        }
     257
     258        var memQuery = from u in context.aspnet_Memberships
     259                       where u.UserId == userId
     260                       select u;
     261        if (memQuery.Count() == 1) {
     262          aspMembership = memQuery.First();
     263        }
     264      }
     265
     266      if (aspUser == null || aspMembership == null || accessUser == null) {
     267        //TODO: error handling
     268        return null;
     269      } else {
     270        return Convert.ToDto(accessUser, aspUser, aspMembership);
     271      }
     272    }
     273
    216274    public DT.User Login() {
    217       throw new System.NotImplementedException();
     275      Guid userId = UserManager.CurrentUserId;
     276      return BuildUserDto(userId);
    218277    }
    219278
    220279    public IEnumerable<DT.User> GetAllUsers() {
    221       throw new System.NotImplementedException();
    222     }
    223 
    224     public IEnumerable<DT.User> GetUsers(IEnumerable<DT.User> ids) {
    225       throw new System.NotImplementedException();
     280      List<Guid> accessUserGuids = null;
     281
     282      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     283        var query = from u in context.UserGroupBases.OfType<DA.User>()
     284                    select u.Id;
     285        accessUserGuids = query.ToList();
     286      }
     287
     288      return accessUserGuids.Select(x => BuildUserDto(x));
     289    }
     290
     291    public IEnumerable<DT.User> GetUsers(IEnumerable<Guid> ids) {
     292      List<Guid> accessUserGuids = null;
     293
     294      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     295        var query = from u in context.UserGroupBases.OfType<DA.User>()
     296                    where ids.Contains(u.Id)
     297                    select u.Id;
     298        accessUserGuids = query.ToList();
     299      }
     300
     301      return accessUserGuids.Select(x => BuildUserDto(x));
    226302    }
    227303
    228304    public DT.User AddUser(DT.User user) {
    229       throw new System.NotImplementedException();
     305      DA.User accessUser;
     306      DA.aspnet_User aspUser;
     307      DA.aspnet_Membership aspMembership;
     308      bool userExistsInASP;
     309
     310      Convert.ToEntity(user, out accessUser, out aspUser, out aspMembership, out userExistsInASP);
     311
     312      if (userExistsInASP) {
     313        if (accessUser.Id == null || accessUser.Id == Guid.Empty) {
     314          accessUser.Id = aspMembership.UserId;
     315        }
     316        using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     317          context.UserGroupBases.InsertOnSubmit(accessUser);
     318          context.SubmitChanges();
     319        }
     320        MembershipUser membershipUser = Membership.GetUser((object)accessUser.Id);
     321        if (membershipUser != null) {
     322          membershipUser.Email = aspMembership.Email;
     323          membershipUser.IsApproved = aspMembership.IsApproved;
     324          membershipUser.Comment = aspMembership.Comment;
     325          Membership.UpdateUser(membershipUser);
     326        }
     327      } else {
     328        MembershipUser membershipUser = Membership.CreateUser(aspUser.UserName, aspUser.UserName, aspMembership.Email);
     329        membershipUser.IsApproved = aspMembership.IsApproved;
     330        membershipUser.Comment = aspMembership.Comment;
     331        Membership.UpdateUser(membershipUser);
     332
     333        Guid userId = (Guid)membershipUser.ProviderUserKey;
     334        accessUser.Id = userId;
     335
     336        using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     337          context.UserGroupBases.InsertOnSubmit(accessUser);
     338          context.SubmitChanges();
     339        }
     340      }
     341
     342      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
     343        var newAspUser = context.aspnet_Users.Where(x => x.UserId == accessUser.Id).FirstOrDefault();
     344        var newAspMembership = context.aspnet_Memberships.Where(x => x.UserId == accessUser.Id).FirstOrDefault();
     345        return Convert.ToDto(accessUser, newAspUser, newAspMembership);
     346      }
    230347    }
    231348
    232349    public void DeleteUser(DT.User user) {
    233       throw new System.NotImplementedException();
     350      if (user.Id != null && user.Id != Guid.Empty) {
     351        Membership.DeleteUser(user.UserName);
     352        using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     353          context.UserGroupBases.DeleteOnSubmit(Convert.ToEntity(user));
     354          context.SubmitChanges();
     355        }
     356      }
    234357    }
    235358
    236359    public void UpdateUser(DT.User user) {
    237       throw new System.NotImplementedException();
     360      AddUser(user);
    238361    }
    239362
    240363    public void AddUserToRole(DT.Role role, DT.User user) {
    241       throw new System.NotImplementedException();
     364      //TODO: usernames and rolenames have to be unique!
     365      MembershipUser msUser = Membership.GetUser((object)user.Id);
     366      if (msUser != null) {
     367        Roles.AddUserToRole(msUser.UserName, role.Name);
     368      }
    242369    }
    243370
    244371    public void RemoveUserFromRole(DT.Role role, DT.User user) {
    245       throw new System.NotImplementedException();
    246     }
    247 
    248     public void ResetPassword(DT.User user, string password) {
    249       throw new System.NotImplementedException();
    250     }
    251     #endregion
    252 
     372      MembershipUser msUser = Membership.GetUser((object)user.Id);
     373      if (msUser != null) {
     374        Roles.RemoveUserFromRole(msUser.UserName, role.Name);
     375      }
     376    }
     377
     378    public bool ResetPassword(DT.User user, string oldPassword, string newPassword) {
     379      MembershipUser msUser = Membership.GetUser((object)user.Id);
     380      if (msUser != null) {
     381        return msUser.ChangePassword(oldPassword, newPassword);
     382      }
     383      return false;
     384    }
     385    #endregion
     386
     387    #region UserGroup
    253388    public IEnumerable<DT.UserGroup> GetAllUserGroups() {
    254       throw new System.NotImplementedException();
     389      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     390        var query = from u in context.UserGroupBases.OfType<DA.UserGroup>()
     391                    select Convert.ToDto(u);
     392        return query.ToList();
     393      }
    255394    }
    256395
    257396    public IEnumerable<DT.UserGroup> GetUserGroups(IEnumerable<Guid> ids) {
    258       throw new System.NotImplementedException();
    259     }
    260 
    261     public DT.UserGroup AddUserGroup(DT.UserGroup group) {
    262       throw new System.NotImplementedException();
     397      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     398        var query = from u in context.UserGroupBases.OfType<DA.UserGroup>()
     399                    where ids.Contains(u.Id)
     400                    select Convert.ToDto(u);
     401        return query.ToList();
     402      }
     403    }
     404
     405    public Guid AddUserGroup(DT.UserGroup group) {
     406      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     407        context.UserGroupBases.InsertOnSubmit(Convert.ToEntity(group));
     408        context.SubmitChanges();
     409        return group.Id;
     410      }
    263411    }
    264412
    265413    public void UpdateUserGroup(DT.UserGroup group) {
    266       throw new System.NotImplementedException();
     414      AddUserGroup(group);
    267415    }
    268416
    269417    public void DeleteUserGroup(DT.UserGroup group) {
    270       throw new System.NotImplementedException();
     418      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     419        context.UserGroupBases.DeleteOnSubmit(Convert.ToEntity(group));
     420        context.SubmitChanges();
     421      }
    271422    }
    272423
    273424    public void AddUserGroupBaseToGroup(DT.UserGroupBase resource, DT.UserGroup group) {
    274       throw new System.NotImplementedException();
    275     }
    276 
    277     public void RemoveUserGroupBaseFromGroup(DT.UserGroupBase resource, DT.UserGroup group) {
    278       throw new System.NotImplementedException();
     425      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     426        DA.UserGroupUserGroup ugug = new DA.UserGroupUserGroup();
     427        ugug.UserGroupId = resource.Id;
     428        ugug.UserGroupUserGroupId = group.Id;
     429        context.UserGroupUserGroups.InsertOnSubmit(ugug);
     430        context.SubmitChanges();
     431      }
     432    }
     433
     434    public void RemoveUserGroupBaseFromGroup(DT.UserGroupBase resource, DT.UserGroup userGroup) {
     435      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     436        var query = from u in context.UserGroupUserGroups
     437                    where u.UserGroupId == resource.Id && u.UserGroupUserGroupId == userGroup.Id
     438                    select u;
     439
     440        if (query.Count() == 1) {
     441          context.UserGroupUserGroups.DeleteOnSubmit(query.First());
     442          context.SubmitChanges();
     443        }
     444      }
    279445    }
    280446
    281447    public IEnumerable<DT.UserGroupBase> GetUsersAndGroups() {
    282       throw new System.NotImplementedException();
     448      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     449        var query = from u in context.UserGroupBases
     450                    select Convert.ToDto(u);
     451        return query.ToList();
     452      }
    283453    }
    284454
    285455    public IEnumerable<DT.UserGroupMapping> GetUserGroupMapping() {
    286       throw new System.NotImplementedException();
    287     }
    288 
     456      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     457        var query = from u in context.UserGroupUserGroups
     458                    select Convert.ToDto(u);
     459        return query.ToList();
     460      }
     461    }
     462    #endregion
     463
     464    #region Roles
    289465    public IEnumerable<DT.Role> GetRoles() {
    290466      throw new System.NotImplementedException();
     
    306482      throw new System.NotImplementedException();
    307483    }
    308 
     484    #endregion
     485
     486    #region Error Reporting
    309487    public void ReportError(DT.ClientError error) {
    310488      throw new System.NotImplementedException();
     
    322500      throw new System.NotImplementedException();
    323501    }
     502    #endregion
    324503  }
    325504}
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/Convert.cs

    r6840 r6852  
    6868    #region Country
    6969    public static DT.Country ToDto(DA.Country source) {
    70       return new DT.Country() {
    71         Id = source.Id,
    72         Name = source.Name
    73       };
     70      if (source == null) {
     71        return null;
     72      } else {
     73        return new DT.Country() {
     74          Id = source.Id,
     75          Name = source.Name
     76        };
     77      }
    7478    }
    7579
    7680    public static DA.Country ToEntity(DT.Country source) {
    77       return new DA.Country() {
    78         Id = source.Id,
    79         Name = source.Name,
    80 
    81       };
     81      if (source == null) {
     82        return null;
     83      } else {
     84        return new DA.Country() {
     85          Id = source.Id,
     86          Name = source.Name,
     87
     88        };
     89      }
    8290    }
    8391    #endregion
     
    8593    #region OperatingSystem
    8694    public static DT.OperatingSystem ToDto(DA.OperatingSystem source) {
    87       return new DT.OperatingSystem() {
    88         Id = source.Id,
    89         Name = source.Name
    90       };
     95      if (source == null) {
     96        return null;
     97      } else {
     98        return new DT.OperatingSystem() {
     99          Id = source.Id,
     100          Name = source.Name
     101        };
     102      }
    91103    }
    92104
    93105    public static DA.OperatingSystem ToEntity(DT.OperatingSystem source) {
    94       return new DA.OperatingSystem() {
    95         Id = source.Id,
    96         Name = source.Name,
    97       };
     106      if (source == null) {
     107        return null;
     108      } else {
     109        return new DA.OperatingSystem() {
     110          Id = source.Id,
     111          Name = source.Name,
     112        };
     113      }
    98114    }
    99115    #endregion
     
    101117    #region ClientType
    102118    public static DT.ClientType ToDto(DA.ClientType source) {
    103       return new DT.ClientType() {
    104         Id = source.Id,
    105         Name = source.Name
    106       };
     119      if (source == null) {
     120        return null;
     121      } else {
     122        return new DT.ClientType() {
     123          Id = source.Id,
     124          Name = source.Name
     125        };
     126      }
    107127    }
    108128
    109129    public static DA.ClientType ToEntity(DT.ClientType source) {
    110       return new DA.ClientType() {
    111         Id = source.Id,
    112         Name = source.Name,
    113 
    114       };
     130      if (source == null) {
     131        return null;
     132      } else {
     133        return new DA.ClientType() {
     134          Id = source.Id,
     135          Name = source.Name,
     136
     137        };
     138      }
    115139    }
    116140    #endregion
     
    118142    #region ClientConfiguration
    119143    public static DT.ClientConfiguration ToDto(DA.ClientConfiguration source) {
    120       return new DT.ClientConfiguration() {
    121         Id = source.Id,
    122         Hash = source.Hash,
    123         Description = source.Description
    124       };
     144      if (source == null) {
     145        return null;
     146      } else {
     147        return new DT.ClientConfiguration() {
     148          Id = source.Id,
     149          Hash = source.Hash,
     150          Description = source.Description
     151        };
     152      }
    125153    }
    126154
    127155    public static DA.ClientConfiguration ToEntity(DT.ClientConfiguration source) {
    128       return new DA.ClientConfiguration() {
    129         Id = source.Id,
    130         Hash = source.Hash,
    131         Description = source.Description
    132       };
     156      if (source == null) {
     157        return null;
     158      } else {
     159        return new DA.ClientConfiguration() {
     160          Id = source.Id,
     161          Hash = source.Hash,
     162          Description = source.Description
     163        };
     164      }
    133165    }
    134166    #endregion
     
    264296        UserName = aspUserSource.UserName
    265297      };
     298    }
     299
     300    public static DA.User ToEntity(DT.User source) {
     301      return new DA.User() { Id = source.Id, FullName = source.FullName };
    266302    }
    267303
     
    302338
    303339    #region ClientGroupMapping
    304     public static DT.ClientGroupMapping ToDto(DA.ResourceResourceGroup c) {
     340    public static DT.ClientGroupMapping ToDto(DA.ResourceResourceGroup source) {
    305341      return new DT.ClientGroupMapping() {
    306         Child = c.ResourceId, Parent = c.ResourceGroupId
    307       };
    308     }
    309     #endregion
    310 
    311 
     342        Child = source.ResourceId, Parent = source.ResourceGroupId
     343      };
     344    }
     345    #endregion
     346
     347    #region UserGroupBase
     348    public static DT.UserGroupBase ToDto(DA.UserGroupBase source) {
     349      return new DT.UserGroupBase() {
     350        Id = source.Id
     351      };
     352    }
     353    #endregion
     354
     355    #region UserGroupMapping
     356    public static DT.UserGroupMapping ToDto(DA.UserGroupUserGroup source) {
     357      return new DT.UserGroupMapping() {
     358        Child = source.UserGroupId, Parent = source.UserGroupUserGroupId
     359      };
     360    }
     361    #endregion
    312362  }
    313363}
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/HeuristicLab.Services.Access-3.3.csproj

    r6840 r6852  
    4848    <Reference Include="System.Runtime.Serialization" />
    4949    <Reference Include="System.ServiceModel" />
     50    <Reference Include="System.Web" />
     51    <Reference Include="System.Web.ApplicationServices" />
    5052    <Reference Include="System.Xml" />
    5153    <Reference Include="System.Xml.Linq" />
     
    7173    <Compile Include="DataTransfer\UserGroupMapping.cs" />
    7274    <Compile Include="IAccessService.cs" />
     75    <Compile Include="Interfaces\IUserManager.cs" />
    7376    <Compile Include="Properties\AssemblyInfo.cs" />
    7477    <Compile Include="AccessService.cs" />
     78    <Compile Include="UserManager.cs" />
    7579  </ItemGroup>
    7680  <ItemGroup>
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/IAccessService.cs

    r6840 r6852  
    7070
    7171    [OperationContract]
    72     void AddResourceToGroup(Resource resource, UserGroup group);
     72    void AddResourceToGroup(Resource resource, ClientGroup group);
    7373
    7474    [OperationContract]
    75     void RemoveResourceFromGroup(Resource resource, UserGroup group);
     75    void RemoveResourceFromGroup(Resource resource, ClientGroup group);
    7676    #endregion
    7777
     
    111111
    112112    [OperationContract]
    113     IEnumerable<User> GetUsers(IEnumerable<User> ids);
     113    IEnumerable<User> GetUsers(IEnumerable<Guid> ids);
    114114
    115115    [OperationContract]
     
    129129
    130130    [OperationContract]
    131     void ResetPassword(User user, string password);
     131    bool ResetPassword(User user, string oldPassword, string newPassword);
    132132    #endregion
    133133
     
    140140
    141141    [OperationContract]
    142     UserGroup AddUserGroup(UserGroup group);
     142    Guid AddUserGroup(UserGroup group);
    143143
    144144    [OperationContract]
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/Interfaces/IUserManager.cs

    r6822 r6852  
    2323using System.Web.Security;
    2424
    25 namespace HeuristicLab.Services.Hive {
     25namespace HeuristicLab.Services.Access {
    2626  public interface IUserManager {
    2727    MembershipUser CurrentUser { get; }
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/UserManager.cs

    r6822 r6852  
    2323using System.Web.Security;
    2424
    25 namespace HeuristicLab.Services.Hive {
     25namespace HeuristicLab.Services.Access {
    2626  public class UserManager : IUserManager {
    2727    public MembershipUser CurrentUser {
Note: See TracChangeset for help on using the changeset viewer.