1 
2 /* Domains */
3 typedef struct {
4        const char *str;        /* domain name   */
5        const char *expl;       /* Explanation   */
6 } DOM;
7 
8 static DOM topdom[] = {
9 { "COM" , "Commercial entity"                    ,} ,
10 { "EDU" , "Educational institutions"             ,} ,
11 { "NET" , "Network providers"                    ,} ,
12 { "ORG" , "Organizations"                        ,} ,
13 { "INT" , "International treaties, or databases" ,} ,
14 { "GOV" , "Government"                           ,} ,
15 { "MIL" , "Military"                             ,} ,
16 { "FIRM", "Businesses or firms"                  ,} ,
17 { "SHOP", "Businesses offering goods to purchase",} ,
18 { "WEB" , "World Wide Web entities"              ,} ,
19 { "ARTS", "Cultural and entertainment entities"  ,} ,
20 { "REC" , "Recreation/entertainment entities"    ,} ,
21 { "INFO", "Information services"                 ,} ,
22 { "NOM" , "Individual or personal nomenclature"  ,} ,
23 { " "   , " "                                    ,} ,
24 };
25 
26 /* Sub domains */
27 static DOM subdom[] = {
28 { "AC"    , "Academic establishments and organizations",} ,
29 { "CO"    , "Companies or commercial organization"     ,} ,
30 { "CS"    , "Computer science"                         ,} ,
31 { "GW"    , "Gateway"                                  ,} ,
32 { "GOPHER", "Internet Gopher"                          ,} ,
33 { "FTP"   , "File Transfer Protocol"                   ,} ,
34 { "LTD"   , "Private limited"                          ,} ,
35 { "MAIL"  , "Mail services SMTP"                       ,} ,
36 { "NNTP"  , "Network News Transfer Protocol"           ,} ,
37 { "NEWS"  , "Network News Transfer Protocol"           ,} ,
38 { "NS"    , "Name server"                              ,} ,
39 { "NS1"   , "Name server"                              ,} ,
40 { "NS2"   , "Name server"                              ,} ,
41 { "PLC"   , "Public limited"                           ,} ,
42 { "POP"   , "Post Office Protocol"                     ,} ,
43 { "POP3"  , "Post Office Protocol, version 3"          ,} ,
44 { "PROXY" , "Proxy server"                             ,} ,
45 { "SMTP"  , "Simple Mail Transfer Protocol"            ,} ,
46 { "SSH"   , "Secure Shell service"                     ,} ,
47 { "WEB"   , "World Wide Web HTTP"                      ,} ,
48 { "WWW"   , "World Wide Web HTTP"                      ,} ,
49 { "WWW2"  , "World Wide Web HTTP"                      ,} ,
50 { " "     , " "                                        ,} ,
51 };
52 
53 /* iso 3166 Country codes struct */
54 typedef struct {
55        const char *country;       /* Country name      */
56        const char codes2l[ 2];    /* 2 letters codes   */
57        const char codes3l[ 3];    /* 3 letters codes   */
58        unsigned short int number; /* Number of country */
59 } ISO3166CCS;
60 
61 static ISO3166CCS isoccs[] = {
62 { "Afghanistan, Islamic State of"               , "af", "afg",    4,} ,
63 { "African Intellectual Property Organization"  , "oa", "   ",    0,} ,
64 { "African Regional Industrial "
65   "Property Organization"                       , "ap", "   ",    0,} ,
66 { "Åland"                                       , "ax", "ala",  248,} ,
67 { "Albania"                                     , "al", "alb",    8,} ,
68 { "Algeria"                                     , "dz", "dza",   12,} ,
69 { "American Samoa"                              , "as", "asm",   16,} ,
70 { "Andorra, Pricipality of"                     , "ad", "and",   20,} ,
71 { "Angola, Republic of"                         , "ao", "ago",   24,} ,
72 { "Anguilla"                                    , "ai", "aia",  660,} ,
73 { "Antarctica"                                  , "aq", "ata",   10,} ,
74 { "Antigua and Barbuda"                         , "ag", "atg",   28,} ,
75 { "Argentina"                                   , "ar", "arg",   32,} ,
76 { "Argentina (indeterminately reserved)"        , "ra", "   ",    0,} ,
77 { "Armenia"                                     , "am", "arm",   51,} ,
78 { "Aruba"                                       , "aw", "abw",  533,} ,
79 { "Ascension Island"                            , "ac", "   ",    0,} ,
80 { "Australia"                                   , "au", "aus",   36,} ,
81 { "Austria"                                     , "at", "aut",   40,} ,
82 { "Azerbaijan"                                  , "az", "aze",   31,} ,
83 { "Bahamas"                                     , "bs", "bhs",   44,} ,
84 { "Bahrain"                                     , "bh", "bhr",   48,} ,
85 { "Bailiwicks of Guernsey (exceptionally "
86   "reserved)"                                   , "gg", "   ",    0,} ,
87 { "Bangladesh"                                  , "bd", "bgd",   50,} ,
88 { "Barbados"                                    , "bb", "brb",   52,} ,
89 { "Belarus"                                     , "by", "blr",  112,} ,
90 { "Belgium"                                     , "be", "bel",   56,} ,
91 { "Belize"                                      , "bz", "blz",   84,} ,
92 { "Benelux Trademarks and Designs Office"       , "bx", "   ",    0,} ,
93 { "Benin"                                       , "bj", "ben",  204,} ,
94 { "Benin (indeterminately reserved)"            , "dy", "   ",    0,} ,
95 { "Bermuda"                                     , "bm", "bmu",   60,} ,
96 { "Bhutan"                                      , "bt", "btn",   64,} ,
97 { "Bolivia, Plurinational State of"             , "bo", "bol",   68,} ,
98 { "Bolivia (cf. Botswana: identical code "
99   "element) (indeterminately reserved)"         , "rb", "   ",    0,} ,
100 { "Bonaire, Sint Eustatius and Saba (Caribbean "
101   "Netherlands"                                 , "bq", "bes",  535,} ,
102 { "Bosnia and Herzegovina"                      , "ba", "bih",   70,} ,
103 { "Botswana"                                    , "bw", "bwa",   72,} ,
104 { "Bouvet Island"                               , "bv", "bvt",   74,} ,
105 { "Brazil"                                      , "br", "bra",   76,} ,
106 { "British Indian Ocean Territory"              , "io", "iot",   86,} ,
107 { "Brunei Darussalam"                           , "bn", "brn",   96,} ,
108 { "Bulgaria"                                    , "bg", "bgr",  100,} ,
109 { "Burkina Faso"                                , "bf", "bfa",  854,} ,
110 { "Burma (transitionally reserved)"             , "bu", "   ",    0,} ,
111 { "Burundi"                                     , "bi", "bdi",  108,} ,
112 { "Cambodia, Kingdom of"                        , "kh", "khm",  116,} ,
113 { "Cameroon"                                    , "cm", "cmr",  120,} ,
114 { "Canada"                                      , "ca", "can",  124,} ,
115 { "Canary Islands (exceptionally reserved)"     , "ic", "   ",    0,} ,
116 { "Cape Verde"                                  , "cv", "cpv",  132,} ,
117 { "Cayman Islands"                              , "ky", "cym",  136,} ,
118 { "Central African Republic"                    , "cf", "caf",  140,} ,
119 { "Ceuta, Melilla (exceptionally reserved)"     , "ea", "   ",    0,} ,
120 { "Chad"                                        , "td", "tcd",  148,} ,
121 { "Chile"                                       , "cl", "chl",  152,} ,
122 { "China"                                       , "cn", "chn",  156,} ,
123 { "China (indeterminately reserved)"            , "rc", "   ",    0,} ,
124 { "Christmas Island"                            , "cx", "cxr",  162,} ,
125 { "Clipperton Island (exceptionally reserved)"  , "cp", "   ",    0,} ,
126 { "Cocos (Keeling) Islands"                     , "cc", "cck",  166,} ,
127 { "Colombia"                                    , "co", "col",  170,} ,
128 { "Comoros"                                     , "km", "com",  174,} ,
129 { "Congo"                                       , "cg", "cog",  178,} ,
130 { "Congo, The Democratic Republic of the"       , "cd", "cod",  180,} ,
131 { "Cook Islands"                                , "ck", "cok",  184,} ,
132 { "Costa Rica"                                  , "cr", "cri",  188,} ,
133 { "Cote D'Ivoire (Ivory Coast)"                 , "ci", "civ",  384,} ,
134 { "Croatia (Hrvatska)"                          , "hr", "hrv",  191,} ,
135 { "Cuba"                                        , "cu", "cub",  192,} ,
136 { "Curaçao"                                     , "cw", "cuw",  531,} ,
137 { "Cyprus"                                      , "cy", "cyp",  196,} ,
138 { "Czech Republic"                              , "cz", "cze",  203,} ,
139 { "Denmark"                                     , "dk", "dnk",  208,} ,
140 { "Diego Garcia (exceptionally reserved)"       , "dg", "   ",    0,} ,
141 { "Djibouti"                                    , "dj", "dji",  262,} ,
142 { "Dominica"                                    , "dm", "dma",  212,} ,
143 { "Dominican Republic"                          , "do", "dom",  214,} ,
144 { "East Timor (transitionally reserved)"        , "tp", "tmp",  626,} ,
145 { "Ecuador"                                     , "ec", "ecu",  218,} ,
146 { "Egypt"                                       , "eg", "egy",  818,} ,
147 { "El Salvador"                                 , "sv", "slv",  222,} ,
148 { "Equatorial Guinea"                           , "gq", "gnq",  226,} ,
149 { "Eritrea"                                     , "er", "eri",  232,} ,
150 { "Estonia"                                     , "ee", "est",  233,} ,
151 { "Estonia (indeterminately reserved)"          , "ew", "   ",    0,} ,
152 { "Ethiopia"                                    , "et", "eth",  231,} ,
153 { "Eurasian Patent Organization (not used)"     , "ev", "   ",    0,} ,
154 { "European Patent Organization (not used)"     , "ep", "   ",    0,} ,
155 { "European Trademark Office (not used)"        , "em", "   ",    0,} ,
156 { "European Union (exceptionally reserved)"     , "eu", "   ",    0,} ,
157 { "Falkland Islands (Malvinas)"                 , "fk", "flk",  238,} ,
158 { "Faroe Islands"                               , "fo", "fro",  234,} ,
159 { "Fiji"                                        , "fj", "fji",  242,} ,
160 { "Finland"                                     , "fi", "fin",  246,} ,
161 { "Finland (transitionally reserved)"           , "sf", "   ",    0,} ,
162 { "France"                                      , "fr", "fra",  250,} ,
163 { "France, Metropolitan (exceptionally "
164   "reserved)"                                   , "fx", "fxx",  249,} ,
165 { "French Guiana"                               , "gf", "guf",  254,} ,
166 { "French Polynesia"                            , "pf", "pyf",  258,} ,
167 { "French Southern Territories"                 , "tf", "atf",  260,} ,
168 { "Gabon"                                       , "ga", "gab",  266,} ,
169 { "Gambia"                                      , "gm", "gmb",  270,} ,
170 { "Georgia"                                     , "ge", "geo",  268,} ,
171 { "Germany"                                     , "de", "deu",  276,} ,
172 { "Ghana"                                       , "gh", "gha",  288,} ,
173 { "Gibraltar"                                   , "gi", "gib",  292,} ,
174 { "Greece"                                      , "gr", "grc",  300,} ,
175 { "Greenland"                                   , "gl", "grl",  304,} ,
176 { "Grenada"                                     , "gd", "grd",  308,} ,
177 { "Grenada (indeterminately reserved)"          , "wg", "   ",    0,} ,
178 { "Guadeloupe"                                  , "gp", "glp",  312,} ,
179 { "Guam"                                        , "gu", "gum",  316,} ,
180 { "Guatemala"                                   , "gt", "gtm",  320,} ,
181 { "Guinea"                                      , "gn", "gin",  324,} ,
182 { "Guinea-Bissau"                               , "gw", "gnb",  624,} ,
183 { "Guyana"                                      , "gy", "guy",  328,} ,
184 { "Haiti"                                       , "ht", "hti",  332,} ,
185 { "Haiti (indeterminately reserved)"            , "rh", "   ",    0,} ,
186 { "Heard and MC Donald Islands"                 , "hm", "hmd",  334,} ,
187 { "Holy See (Vatican City State)"               , "va", "vat",  336,} ,
188 { "Honduras"                                    , "hn", "hnd",  340,} ,
189 { "Hong kong"                                   , "hk", "hkg",  344,} ,
190 { "Hungary"                                     , "hu", "hun",  348,} ,
191 { "Iceland"                                     , "is", "isl",  352,} ,
192 { "India"                                       , "in", "ind",  356,} ,
193 { "Indonesia"                                   , "id", "idn",  360,} ,
194 { "Indonesia (indeterminately reserved)"        , "ri", "   ",    0,} ,
195 { "International Bureau of WIPO "
196   "(indeterminately reserved)"                  , "ib", "   ",    0,} ,
197 { "Iran, Islamic Republic of"                   , "ir", "irn",  364,} ,
198 { "Iraq"                                        , "iq", "irq",  368,} ,
199 { "Ireland"                                     , "ie", "irl",  372,} ,
200 { "Isle of Man"                                 , "im", "imn",  833,} ,
201 { "Israel"                                      , "il", "isr",  376,} ,
202 { "Italy"                                       , "it", "ita",  380,} ,
203 { "Jamaica"                                     , "jm", "jam",  388,} ,
204 { "Jamaica (indeterminately reserved)"          , "ja", "   ",    0,} ,
205 { "Japan"                                       , "jp", "jpn",  392,} ,
206 { "Jersey"                                      , "je", "jey",  832,} ,
207 { "Jordan"                                      , "jo", "jor",  400,} ,
208 { "Kazakhstan"                                  , "kz", "kaz",  398,} ,
209 { "Kenya"                                       , "ke", "ken",  404,} ,
210 { "Kiribati"                                    , "ki", "kir",  296,} ,
211 { "Korea, Democratic People's Republic of"      , "kp", "prk",  408,} ,
212 { "Korea, Republic of"                          , "kr", "kor",  410,} ,
213 { "Kuwait"                                      , "kw", "kwt",  414,} ,
214 { "Kyrgyzstan (Kyrgyz Republic)"                , "kg", "kgz",  417,} ,
215 { "Lao People's Democratic Republic"            , "la", "lao",  418,} ,
216 { "Latvia"                                      , "lv", "lva",  428,} ,
217 { "Lebanon"                                     , "lb", "lbn",  422,} ,
218 { "Lebanon (indeterminately reserved)"          , "rl", "   ",    0,} ,
219 { "Lesotho"                                     , "ls", "lso",  426,} ,
220 { "Liberia"                                     , "lr", "lbr",  430,} ,
221 { "Libya"                                       , "ly", "lby",  434,} ,
222 { "Libya Fezzan (indeterminately reserved)"     , "lf", "   ",    0,} ,
223 { "Liechtenstein"                               , "li", "lie",  438,} ,
224 { "Liechtenstein (indeterminately reserved)"    , "fl", "   ",    0,} ,
225 { "Lithuania"                                   , "lt", "ltu",  440,} ,
226 { "Luxembourg"                                  , "lu", "lux",  442,} ,
227 { "Macau"                                       , "mo", "mac",  446,} ,
228 { "Macedonia, the former Yugoslav Republic of"  , "mk", "mkd",  807,} ,
229 { "Madagascar (indeterminately reserved)"       , "rm", "   ",    0,} ,
230 { "Madagascar, Republic of"                     , "mg", "mdg",  450,} ,
231 { "Malawi"                                      , "mw", "mwi",  454,} ,
232 { "Malaysia"                                    , "my", "mys",  458,} ,
233 { "Maldives"                                    , "mv", "mdv",  462,} ,
234 { "Mali"                                        , "ml", "mli",  466,} ,
235 { "Malta"                                       , "mt", "mlt",  470,} ,
236 { "Marshall Islands"                            , "mh", "mhl",  584,} ,
237 { "Martinique"                                  , "mq", "mtq",  474,} ,
238 { "Mauritania"                                  , "mr", "mrt",  478,} ,
239 { "Mauritius"                                   , "mu", "mus",  480,} ,
240 { "Mayotte"                                     , "yt", "myt",  175,} ,
241 { "Mexico"                                      , "mx", "mex",  484,} ,
242 { "Micronesia, Federated States of"             , "fm", "fsm",  583,} ,
243 { "Moldova, Republic of"                        , "md", "mda",  498,} ,
244 { "Monaco"                                      , "mc", "mco",  492,} ,
245 { "Mongolia"                                    , "mn", "mng",  496,} ,
246 { "Montenegro"                                  , "me", "mne",  499,} ,
247 { "Montserrat"                                  , "ms", "msr",  500,} ,
248 { "Morocco"                                     , "ma", "mar",  504,} ,
249 { "Mozambique"                                  , "mz", "moz",  508,} ,
250 { "Myanmar"                                     , "mm", "mmr",  104,} ,
251 { "Namibia"                                     , "na", "nam",  516,} ,
252 { "Nauru"                                       , "nr", "nru",  520,} ,
253 { "Nepal"                                       , "np", "npl",  524,} ,
254 { "Netherlands"                                 , "nl", "nld",  528,} ,
255 { "Netherlands Antilles (transitionally "
256   "reserved)"                                   , "an", "   ",    0,} ,
257 { "Neutral Zone (transitionally reserved)"      , "nt", "   ",    0,} ,
258 { "New Caledonia"                               , "nc", "ncl",  540,} ,
259 { "New Zealand"                                 , "nz", "nzl",  554,} ,
260 { "Nicaragua"                                   , "ni", "nic",  558,} ,
261 { "Niger"                                       , "ne", "ner",  562,} ,
262 { "Niger (indeterminately reserved)"            , "rn", "   ",    0,} ,
263 { "Nigeria"                                     , "ng", "nga",  566,} ,
264 { "Niue"                                        , "nu", "niu",  570,} ,
265 { "Norfolk Island"                              , "nf", "nfk",  574,} ,
266 { "Northern Mariana Islands"                    , "mp", "mnp",  580,} ,
267 { "Norway"                                      , "no", "nor",  578,} ,
268 { "Oman"                                        , "om", "omn",  512,} ,
269 { "Pakistan"                                    , "pk", "pak",  586,} ,
270 { "Palau"                                       , "pw", "plw",  585,} ,
271 { "Palestinian, State of"                       , "ps", "pse",  275,} ,
272 { "Panama"                                      , "pa", "pan",  591,} ,
273 { "Papua New Guinea"                            , "pg", "png",  598,} ,
274 { "Paraguay"                                    , "py", "pry",  600,} ,
275 { "Patent Office of the Cooperation Council "
276   "for the Arab States of the Gulf (GCC)"       , "gc", "   ",    0,} ,
277 { "Peru"                                        , "pe", "per",  604,} ,
278 { "Philippines"                                 , "ph", "phl",  608,} ,
279 { "Philippines (indeterminately reserved)"      , "pi", "   ",    0,} ,
280 { "Philippines (indeterminately reserved)"      , "rp", "   ",    0,} ,
281 { "Pitcairn"                                    , "pn", "pcn",  612,} ,
282 { "Poland"                                      , "pl", "pol",  616,} ,
283 { "Portugal"                                    , "pt", "prt",  620,} ,
284 { "Puerto Rico"                                 , "pr", "pri",  630,} ,
285 { "Qatar"                                       , "qa", "qat",  634,} ,
286 { "Reunion"                                     , "re", "reu",  638,} ,
287 { "Romania"                                     , "ro", "rom",  642,} ,
288 { "Russian Federation"                          , "ru", "rus",  643,} ,
289 { "Rwanda"                                      , "rw", "rwa",  646,} ,
290 { "Saint Barthélemy"                            , "bl", "blm",  652,} ,
291 { "Saint Helena, Ascension and Tristan da "
292   "Cunha"                                       , "sh", "shn",  654,} ,
293 { "Saint Kitts and Nevis"                       , "kn", "kna",  659,} ,
294 { "Saint Lucia"                                 , "lc", "lca",  662,} ,
295 { "Saint Lucia (indeterminately reserved)"      , "wl", "   ",    0,} ,
296 { "Saint Martin (French part)"                  , "mf", "maf",  663,} ,
297 { "Saint Pierre and Miquelon"                   , "pm", "spm",  666,} ,
298 { "Saint Vincent (indeterminately reserved)"    , "wv", "   ",    0,} ,
299 { "Saint Vincent and the Grenadines"            , "vc", "vct",  670,} ,
300 { "Samoa"                                       , "ws", "wsm",  882,} ,
301 { "San Marino"                                  , "sm", "smr",  674,} ,
302 { "Sao Tome and Principe"                       , "st", "stp",  678,} ,
303 { "Saudi Arabia"                                , "sa", "sau",  682,} ,
304 { "Senegal"                                     , "sn", "sen",  686,} ,
305 { "Serbia"                                      , "rs", "srb",  688,} ,
306 { "Serbia and Montenegro (transitionally "
307   "reserved)"                                   , "cs", "   ",    0,} ,
308 { "Seychelles"                                  , "sc", "syc",  690,} ,
309 { "Sierra Leone"                                , "sl", "sle",  694,} ,
310 { "Singapore"                                   , "sg", "sgp",  702,} ,
311 { "Sint Maarten (Dutch part)"                   , "sx", "sxm",  534,} ,
312 { "Slovakia"                                    , "sk", "svk",  703,} ,
313 { "Slovenia"                                    , "si", "svn",  705,} ,
314 { "Solomon Islands"                             , "sb", "slb",   90,} ,
315 { "Somalia"                                     , "so", "som",  706,} ,
316 { "South Africa"                                , "za", "zaf",  710,} ,
317 { "South Georgia and the South Sandwich Islands", "gs", "sgs",  239,} ,
318 { "South Sudan"                                 , "ss", "ssd",  728,} ,
319 { "Spain"                                       , "es", "esp",  724,} ,
320 { "Sri Lanka"                                   , "lk", "lka",  144,} ,
321 { "Sudan"                                       , "sd", "sdn",  736,} ,
322 { "Suriname"                                    , "sr", "sur",  740,} ,
323 { "Svalbard and Jan Mayen Islands"              , "sj", "sjm",  744,} ,
324 { "Swaziland"                                   , "sz", "swz",  748,} ,
325 { "Sweden"                                      , "se", "swe",  752,} ,
326 { "Switzerland"                                 , "ch", "che",  756,} ,
327 { "Syrian Arab Republic"                        , "sy", "syr",  760,} ,
328 { "Taiwan, Province of China"                   , "tw", "twn",  158,} ,
329 { "Tajikistan"                                  , "tj", "tjk",  762,} ,
330 { "Tanzania, United Republic of"                , "tz", "tza",  834,} ,
331 { "Thailand"                                    , "th", "tha",  764,} ,
332 { "Timor-Leste"                                 , "tl", "tls",  626,} ,
333 { "Togo"                                        , "tg", "tgo",  768,} ,
334 { "Tokelau"                                     , "tk", "tkl",  772,} ,
335 { "Tonga"                                       , "to", "ton",  776,} ,
336 { "Trinidad and Tobago"                         , "tt", "tto",  780,} ,
337 { "Tristan da Cunha (exceptionally reserved)"   , "ta", "   ",    0,} ,
338 { "Tunisia"                                     , "tn", "tun",  788,} ,
339 { "Turkey"                                      , "tr", "tur",  792,} ,
340 { "Turkmenistan"                                , "tm", "tkm",  795,} ,
341 { "Turks and Caicos Islands"                    , "tc", "tca",  796,} ,
342 { "Tuvalu"                                      , "tv", "tuv",  798,} ,
343 { "Uganda"                                      , "ug", "uga",  800,} ,
344 { "Ukraine"                                     , "ua", "ukr",  804,} ,
345 { "Union of Countries under the European "
346   "Community Patent Convention (not used)"      , "ef", "   ",    0,} ,
347 { "United Arab Emirates"                        , "ae", "are",  784,} ,
348 { "United Kingdom (exceptionally reserved)"     , "uk", "   ",    0,} ,
349 { "United Kingdom"                              , "gb", "gbr",  826,} ,
350 { "United States"                               , "us", "usa",  840,} ,
351 { "United States minor outlying islands"        , "um", "umi",  581,} ,
352 { "Uruguay"                                     , "uy", "ury",  858,} ,
353 { "(user-assigned)"                             , "aa", "   ",    0,} ,
354 { "(user-assigned) "                            , "qm", "   ",    0,} ,
355 { "(user-assigned) "                            , "qn", "   ",    0,} ,
356 { "(user-assigned) "                            , "qo", "   ",    0,} ,
357 { "(user-assigned) "                            , "qp", "   ",    0,} ,
358 { "(user-assigned) "                            , "qq", "   ",    0,} ,
359 { "(user-assigned) "                            , "qr", "   ",    0,} ,
360 { "(user-assigned) "                            , "qs", "   ",    0,} ,
361 { "(user-assigned) "                            , "qt", "   ",    0,} ,
362 { "(user-assigned) "                            , "qu", "   ",    0,} ,
363 { "(user-assigned) "                            , "qv", "   ",    0,} ,
364 { "(user-assigned) "                            , "qw", "   ",    0,} ,
365 { "(user-assigned) "                            , "qx", "   ",    0,} ,
366 { "(user-assigned) "                            , "qy", "   ",    0,} ,
367 { "(user-assigned) "                            , "qz", "   ",    0,} ,
368 { "(user-assigned) "                            , "xa", "   ",    0,} ,
369 { "(user-assigned) "                            , "xb", "   ",    0,} ,
370 { "(user-assigned) "                            , "xc", "   ",    0,} ,
371 { "(user-assigned) "                            , "xd", "   ",    0,} ,
372 { "(user-assigned) "                            , "xe", "   ",    0,} ,
373 { "(user-assigned) "                            , "xf", "   ",    0,} ,
374 { "(user-assigned) "                            , "xg", "   ",    0,} ,
375 { "(user-assigned) "                            , "xh", "   ",    0,} ,
376 { "(user-assigned) "                            , "xi", "   ",    0,} ,
377 { "(user-assigned) "                            , "xj", "   ",    0,} ,
378 { "(user-assigned) "                            , "xk", "   ",    0,} ,
379 { "(user-assigned) "                            , "xl", "   ",    0,} ,
380 { "(user-assigned) "                            , "xm", "   ",    0,} ,
381 { "(user-assigned) "                            , "xn", "   ",    0,} ,
382 { "(user-assigned) "                            , "xo", "   ",    0,} ,
383 { "(user-assigned) "                            , "xp", "   ",    0,} ,
384 { "(user-assigned) "                            , "xq", "   ",    0,} ,
385 { "(user-assigned) "                            , "xr", "   ",    0,} ,
386 { "(user-assigned) "                            , "xs", "   ",    0,} ,
387 { "(user-assigned) "                            , "xt", "   ",    0,} ,
388 { "(user-assigned) "                            , "xu", "   ",    0,} ,
389 { "(user-assigned) "                            , "xv", "   ",    0,} ,
390 { "(user-assigned) "                            , "xw", "   ",    0,} ,
391 { "(user-assigned) "                            , "xx", "   ",    0,} ,
392 { "(user-assigned) "                            , "xy", "   ",    0,} ,
393 { "(user-assigned) "                            , "xz", "   ",    0,} ,
394 { "(user-assigned) "                            , "zz", "   ",    0,} ,
395 { "USSR (exceptionally reserved)"               , "su", "   ",    0,} ,
396 { "Uzbekistan"                                  , "uz", "uzb",  860,} ,
397 { "Vanuatu"                                     , "vu", "vut",  548,} ,
398 { "Venezuela, Bolivarian Republic of"           , "ve", "ven",  862,} ,
399 { "Venezuela (indeterminately reserved)"        , "yv", "   ",    0,} ,
400 { "Viet Nam"                                    , "vn", "vnm",  704,} ,
401 { "Virgin Islands (British)"                    , "vg", "vgb",   92,} ,
402 { "Virgin Islands (U.S.)"                       , "vi", "vir",  850,} ,
403 { "Wallis and Futuna Islands"                   , "wf", "wlf",  876,} ,
404 { "Western Sahara"                              , "eh", "esh",  732,} ,
405 { "World Intellectual Property Organization"    , "wo", "   ",    0,} ,
406 { "Yemen"                                       , "ye", "yem",  887,} ,
407 { "Yugoslavia (transitionally reserved)"        , "yu", "   ",    0,} ,
408 { "Zaire (transitionally reserved)"             , "zr", "   ",    0,} ,
409 { "Zambia"                                      , "zm", "zmb",  894,} ,
410 { "Zimbabwe"                                    , "zw", "zwe",  716,} ,
411 { " "                                           , "  ", "   ",    0,} ,
412 };
413 
414 /* Search types */
415 #define ISO_SEARCH_COUNTRY 0
416 #define ISO_SEARCH_2L      1
417 #define ISO_SEARCH_3L      2
418 #define ISO_SEARCH_NUMBER  3
419 
420