2 * Copyright (c) 2008-2009 Atheros Communications Inc.
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
160 DEBUG_REG_DMN = 0x01ff,
163 /* Regpair to CTL band mapping */
164 static struct reg_dmn_pair_mapping regDomainPairs[] = {
165 /* regpair, 5 GHz CTL, 2 GHz CTL */
166 {NO_ENUMRD, DEBUG_REG_DMN, DEBUG_REG_DMN},
167 {NULL1_WORLD, NO_CTL, CTL_ETSI},
168 {NULL1_ETSIB, NO_CTL, CTL_ETSI},
169 {NULL1_ETSIC, NO_CTL, CTL_ETSI},
171 {FCC2_FCCA, CTL_FCC, CTL_FCC},
172 {FCC2_WORLD, CTL_FCC, CTL_ETSI},
173 {FCC2_ETSIC, CTL_FCC, CTL_ETSI},
174 {FCC3_FCCA, CTL_FCC, CTL_FCC},
175 {FCC3_WORLD, CTL_FCC, CTL_ETSI},
176 {FCC3_ETSIC, CTL_FCC, CTL_ETSI},
177 {FCC4_FCCA, CTL_FCC, CTL_FCC},
178 {FCC5_FCCA, CTL_FCC, CTL_FCC},
179 {FCC6_FCCA, CTL_FCC, CTL_FCC},
180 {FCC6_WORLD, CTL_FCC, CTL_ETSI},
182 {ETSI1_WORLD, CTL_ETSI, CTL_ETSI},
183 {ETSI2_WORLD, CTL_ETSI, CTL_ETSI},
184 {ETSI3_WORLD, CTL_ETSI, CTL_ETSI},
185 {ETSI4_WORLD, CTL_ETSI, CTL_ETSI},
186 {ETSI5_WORLD, CTL_ETSI, CTL_ETSI},
187 {ETSI6_WORLD, CTL_ETSI, CTL_ETSI},
188 {ETSI8_WORLD, CTL_ETSI, CTL_ETSI},
189 {ETSI9_WORLD, CTL_ETSI, CTL_ETSI},
191 /* XXX: For ETSI3_ETSIA, Was NO_CTL meant for the 2 GHz band ? */
192 {ETSI3_ETSIA, CTL_ETSI, CTL_ETSI},
193 {FRANCE_RES, CTL_ETSI, CTL_ETSI},
195 {FCC1_WORLD, CTL_FCC, CTL_ETSI},
196 {FCC1_FCCA, CTL_FCC, CTL_FCC},
197 {APL1_WORLD, CTL_FCC, CTL_ETSI},
198 {APL2_WORLD, CTL_FCC, CTL_ETSI},
199 {APL2_FCCA, CTL_FCC, CTL_FCC},
200 {APL3_WORLD, CTL_FCC, CTL_ETSI},
201 {APL4_WORLD, CTL_FCC, CTL_ETSI},
202 {APL5_WORLD, CTL_FCC, CTL_ETSI},
203 {APL13_WORLD, CTL_ETSI, CTL_ETSI},
204 {APL6_WORLD, CTL_ETSI, CTL_ETSI},
205 {APL8_WORLD, CTL_ETSI, CTL_ETSI},
206 {APL9_WORLD, CTL_ETSI, CTL_ETSI},
208 {APL3_FCCA, CTL_FCC, CTL_FCC},
209 {APL7_FCCA, CTL_FCC, CTL_FCC},
210 {APL1_ETSIC, CTL_FCC, CTL_ETSI},
211 {APL2_ETSIC, CTL_FCC, CTL_ETSI},
212 {APL2_APLD, CTL_FCC, NO_CTL},
214 {MKK1_MKKA, CTL_MKK, CTL_MKK},
215 {MKK1_MKKB, CTL_MKK, CTL_MKK},
216 {MKK1_FCCA, CTL_MKK, CTL_FCC},
217 {MKK1_MKKA1, CTL_MKK, CTL_MKK},
218 {MKK1_MKKA2, CTL_MKK, CTL_MKK},
219 {MKK1_MKKC, CTL_MKK, CTL_MKK},
221 {MKK2_MKKA, CTL_MKK, CTL_MKK},
222 {MKK3_MKKA, CTL_MKK, CTL_MKK},
223 {MKK3_MKKB, CTL_MKK, CTL_MKK},
224 {MKK3_MKKA1, CTL_MKK, CTL_MKK},
225 {MKK3_MKKA2, CTL_MKK, CTL_MKK},
226 {MKK3_MKKC, CTL_MKK, CTL_MKK},
227 {MKK3_FCCA, CTL_MKK, CTL_FCC},
229 {MKK4_MKKA, CTL_MKK, CTL_MKK},
230 {MKK4_MKKB, CTL_MKK, CTL_MKK},
231 {MKK4_MKKA1, CTL_MKK, CTL_MKK},
232 {MKK4_MKKA2, CTL_MKK, CTL_MKK},
233 {MKK4_MKKC, CTL_MKK, CTL_MKK},
234 {MKK4_FCCA, CTL_MKK, CTL_FCC},
236 {MKK5_MKKB, CTL_MKK, CTL_MKK},
237 {MKK5_MKKA2, CTL_MKK, CTL_MKK},
238 {MKK5_MKKC, CTL_MKK, CTL_MKK},
240 {MKK6_MKKB, CTL_MKK, CTL_MKK},
241 {MKK6_MKKA1, CTL_MKK, CTL_MKK},
242 {MKK6_MKKA2, CTL_MKK, CTL_MKK},
243 {MKK6_MKKC, CTL_MKK, CTL_MKK},
244 {MKK6_FCCA, CTL_MKK, CTL_FCC},
246 {MKK7_MKKB, CTL_MKK, CTL_MKK},
247 {MKK7_MKKA1, CTL_MKK, CTL_MKK},
248 {MKK7_MKKA2, CTL_MKK, CTL_MKK},
249 {MKK7_MKKC, CTL_MKK, CTL_MKK},
250 {MKK7_FCCA, CTL_MKK, CTL_FCC},
252 {MKK8_MKKB, CTL_MKK, CTL_MKK},
253 {MKK8_MKKA2, CTL_MKK, CTL_MKK},
254 {MKK8_MKKC, CTL_MKK, CTL_MKK},
256 {MKK9_MKKA, CTL_MKK, CTL_MKK},
257 {MKK9_FCCA, CTL_MKK, CTL_FCC},
258 {MKK9_MKKA1, CTL_MKK, CTL_MKK},
259 {MKK9_MKKA2, CTL_MKK, CTL_MKK},
260 {MKK9_MKKC, CTL_MKK, CTL_MKK},
262 {MKK10_MKKA, CTL_MKK, CTL_MKK},
263 {MKK10_FCCA, CTL_MKK, CTL_FCC},
264 {MKK10_MKKA1, CTL_MKK, CTL_MKK},
265 {MKK10_MKKA2, CTL_MKK, CTL_MKK},
266 {MKK10_MKKC, CTL_MKK, CTL_MKK},
268 {MKK11_MKKA, CTL_MKK, CTL_MKK},
269 {MKK11_FCCA, CTL_MKK, CTL_FCC},
270 {MKK11_MKKA1, CTL_MKK, CTL_MKK},
271 {MKK11_MKKA2, CTL_MKK, CTL_MKK},
272 {MKK11_MKKC, CTL_MKK, CTL_MKK},
274 {MKK12_MKKA, CTL_MKK, CTL_MKK},
275 {MKK12_FCCA, CTL_MKK, CTL_FCC},
276 {MKK12_MKKA1, CTL_MKK, CTL_MKK},
277 {MKK12_MKKA2, CTL_MKK, CTL_MKK},
278 {MKK12_MKKC, CTL_MKK, CTL_MKK},
280 {MKK13_MKKB, CTL_MKK, CTL_MKK},
281 {MKK14_MKKA1, CTL_MKK, CTL_MKK},
282 {MKK15_MKKA1, CTL_MKK, CTL_MKK},
284 {WOR0_WORLD, NO_CTL, NO_CTL},
285 {WOR1_WORLD, NO_CTL, NO_CTL},
286 {WOR2_WORLD, NO_CTL, NO_CTL},
287 {WOR3_WORLD, NO_CTL, NO_CTL},
288 {WOR4_WORLD, NO_CTL, NO_CTL},
289 {WOR5_ETSIC, NO_CTL, NO_CTL},
290 {WOR01_WORLD, NO_CTL, NO_CTL},
291 {WOR02_WORLD, NO_CTL, NO_CTL},
292 {EU1_WORLD, NO_CTL, NO_CTL},
293 {WOR9_WORLD, NO_CTL, NO_CTL},
294 {WORA_WORLD, NO_CTL, NO_CTL},
295 {WORB_WORLD, NO_CTL, NO_CTL},
296 {WORC_WORLD, NO_CTL, NO_CTL},
299 static struct country_code_to_enum_rd allCountries[] = {
300 {CTRY_DEBUG, NO_ENUMRD, "DB"},
301 {CTRY_DEFAULT, FCC1_FCCA, "CO"},
302 {CTRY_ALBANIA, ETSI1_WORLD, "AL"},
303 {CTRY_ALGERIA, APL13_WORLD, "DZ"},
304 {CTRY_ARGENTINA, FCC3_WORLD, "AR"},
305 {CTRY_ARMENIA, ETSI4_WORLD, "AM"},
306 {CTRY_ARUBA, ETSI1_WORLD, "AW"},
307 {CTRY_AUSTRALIA, FCC3_WORLD, "AU"},
308 {CTRY_AUSTRALIA2, FCC6_WORLD, "AU"},
309 {CTRY_AUSTRIA, ETSI1_WORLD, "AT"},
310 {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ"},
311 {CTRY_BAHAMAS, FCC3_WORLD, "BS"},
312 {CTRY_BAHRAIN, APL6_WORLD, "BH"},
313 {CTRY_BANGLADESH, APL1_WORLD, "BD"},
314 {CTRY_BARBADOS, FCC2_WORLD, "BB"},
315 {CTRY_BELARUS, ETSI1_WORLD, "BY"},
316 {CTRY_BELGIUM, ETSI1_WORLD, "BE"},
317 {CTRY_BELGIUM2, ETSI4_WORLD, "BL"},
318 {CTRY_BELIZE, APL1_ETSIC, "BZ"},
319 {CTRY_BERMUDA, FCC3_FCCA, "BM"},
320 {CTRY_BOLIVIA, APL1_ETSIC, "BO"},
321 {CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA"},
322 {CTRY_BRAZIL, FCC3_WORLD, "BR"},
323 {CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN"},
324 {CTRY_BULGARIA, ETSI1_WORLD, "BG"},
325 {CTRY_CAMBODIA, ETSI1_WORLD, "KH"},
326 {CTRY_CANADA, FCC3_FCCA, "CA"},
327 {CTRY_CANADA2, FCC6_FCCA, "CA"},
328 {CTRY_CHILE, APL6_WORLD, "CL"},
329 {CTRY_CHINA, APL1_WORLD, "CN"},
330 {CTRY_COLOMBIA, FCC3_WORLD, "CO"},
331 {CTRY_COSTA_RICA, FCC1_WORLD, "CR"},
332 {CTRY_CROATIA, ETSI1_WORLD, "HR"},
333 {CTRY_CYPRUS, ETSI1_WORLD, "CY"},
334 {CTRY_CZECH, ETSI1_WORLD, "CZ"},
335 {CTRY_DENMARK, ETSI1_WORLD, "DK"},
336 {CTRY_DOMINICAN_REPUBLIC, FCC1_FCCA, "DO"},
337 {CTRY_ECUADOR, FCC1_WORLD, "EC"},
338 {CTRY_EGYPT, ETSI3_WORLD, "EG"},
339 {CTRY_EL_SALVADOR, FCC1_WORLD, "SV"},
340 {CTRY_ESTONIA, ETSI1_WORLD, "EE"},
341 {CTRY_FINLAND, ETSI1_WORLD, "FI"},
342 {CTRY_FRANCE, ETSI1_WORLD, "FR"},
343 {CTRY_GEORGIA, ETSI4_WORLD, "GE"},
344 {CTRY_GERMANY, ETSI1_WORLD, "DE"},
345 {CTRY_GREECE, ETSI1_WORLD, "GR"},
346 {CTRY_GREENLAND, ETSI1_WORLD, "GL"},
347 {CTRY_GRENADA, FCC3_FCCA, "GD"},
348 {CTRY_GUAM, FCC1_FCCA, "GU"},
349 {CTRY_GUATEMALA, FCC1_FCCA, "GT"},
350 {CTRY_HAITI, ETSI1_WORLD, "HT"},
351 {CTRY_HONDURAS, FCC3_WORLD, "HN"},
352 {CTRY_HONG_KONG, FCC3_WORLD, "HK"},
353 {CTRY_HUNGARY, ETSI1_WORLD, "HU"},
354 {CTRY_ICELAND, ETSI1_WORLD, "IS"},
355 {CTRY_INDIA, APL6_WORLD, "IN"},
356 {CTRY_INDONESIA, NULL1_WORLD, "ID"},
357 {CTRY_IRAN, APL1_WORLD, "IR"},
358 {CTRY_IRELAND, ETSI1_WORLD, "IE"},
359 {CTRY_ISRAEL, ETSI3_WORLD, "IL"},
360 {CTRY_ITALY, ETSI1_WORLD, "IT"},
361 {CTRY_JAMAICA, FCC3_WORLD, "JM"},
363 {CTRY_JAPAN, MKK1_MKKA, "JP"},
364 {CTRY_JAPAN1, MKK1_MKKB, "JP"},
365 {CTRY_JAPAN2, MKK1_FCCA, "JP"},
366 {CTRY_JAPAN3, MKK2_MKKA, "JP"},
367 {CTRY_JAPAN4, MKK1_MKKA1, "JP"},
368 {CTRY_JAPAN5, MKK1_MKKA2, "JP"},
369 {CTRY_JAPAN6, MKK1_MKKC, "JP"},
370 {CTRY_JAPAN7, MKK3_MKKB, "JP"},
371 {CTRY_JAPAN8, MKK3_MKKA2, "JP"},
372 {CTRY_JAPAN9, MKK3_MKKC, "JP"},
373 {CTRY_JAPAN10, MKK4_MKKB, "JP"},
374 {CTRY_JAPAN11, MKK4_MKKA2, "JP"},
375 {CTRY_JAPAN12, MKK4_MKKC, "JP"},
376 {CTRY_JAPAN13, MKK5_MKKB, "JP"},
377 {CTRY_JAPAN14, MKK5_MKKA2, "JP"},
378 {CTRY_JAPAN15, MKK5_MKKC, "JP"},
379 {CTRY_JAPAN16, MKK6_MKKB, "JP"},
380 {CTRY_JAPAN17, MKK6_MKKA2, "JP"},
381 {CTRY_JAPAN18, MKK6_MKKC, "JP"},
382 {CTRY_JAPAN19, MKK7_MKKB, "JP"},
383 {CTRY_JAPAN20, MKK7_MKKA2, "JP"},
384 {CTRY_JAPAN21, MKK7_MKKC, "JP"},
385 {CTRY_JAPAN22, MKK8_MKKB, "JP"},
386 {CTRY_JAPAN23, MKK8_MKKA2, "JP"},
387 {CTRY_JAPAN24, MKK8_MKKC, "JP"},
388 {CTRY_JAPAN25, MKK3_MKKA, "JP"},
389 {CTRY_JAPAN26, MKK3_MKKA1, "JP"},
390 {CTRY_JAPAN27, MKK3_FCCA, "JP"},
391 {CTRY_JAPAN28, MKK4_MKKA1, "JP"},
392 {CTRY_JAPAN29, MKK4_FCCA, "JP"},
393 {CTRY_JAPAN30, MKK6_MKKA1, "JP"},
394 {CTRY_JAPAN31, MKK6_FCCA, "JP"},
395 {CTRY_JAPAN32, MKK7_MKKA1, "JP"},
396 {CTRY_JAPAN33, MKK7_FCCA, "JP"},
397 {CTRY_JAPAN34, MKK9_MKKA, "JP"},
398 {CTRY_JAPAN35, MKK10_MKKA, "JP"},
399 {CTRY_JAPAN36, MKK4_MKKA, "JP"},
400 {CTRY_JAPAN37, MKK9_FCCA, "JP"},
401 {CTRY_JAPAN38, MKK9_MKKA1, "JP"},
402 {CTRY_JAPAN39, MKK9_MKKC, "JP"},
403 {CTRY_JAPAN40, MKK9_MKKA2, "JP"},
404 {CTRY_JAPAN41, MKK10_FCCA, "JP"},
405 {CTRY_JAPAN42, MKK10_MKKA1, "JP"},
406 {CTRY_JAPAN43, MKK10_MKKC, "JP"},
407 {CTRY_JAPAN44, MKK10_MKKA2, "JP"},
408 {CTRY_JAPAN45, MKK11_MKKA, "JP"},
409 {CTRY_JAPAN46, MKK11_FCCA, "JP"},
410 {CTRY_JAPAN47, MKK11_MKKA1, "JP"},
411 {CTRY_JAPAN48, MKK11_MKKC, "JP"},
412 {CTRY_JAPAN49, MKK11_MKKA2, "JP"},
413 {CTRY_JAPAN50, MKK12_MKKA, "JP"},
414 {CTRY_JAPAN51, MKK12_FCCA, "JP"},
415 {CTRY_JAPAN52, MKK12_MKKA1, "JP"},
416 {CTRY_JAPAN53, MKK12_MKKC, "JP"},
417 {CTRY_JAPAN54, MKK12_MKKA2, "JP"},
418 {CTRY_JAPAN57, MKK13_MKKB, "JP"},
419 {CTRY_JAPAN58, MKK14_MKKA1, "JP"},
420 {CTRY_JAPAN59, MKK15_MKKA1, "JP"},
422 {CTRY_JORDAN, ETSI2_WORLD, "JO"},
423 {CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ"},
424 {CTRY_KENYA, APL1_WORLD, "KE"},
425 {CTRY_KOREA_NORTH, APL9_WORLD, "KP"},
426 {CTRY_KOREA_ROC, APL9_WORLD, "KR"},
427 {CTRY_KOREA_ROC2, APL2_WORLD, "K2"},
428 {CTRY_KOREA_ROC3, APL9_WORLD, "K3"},
429 {CTRY_KUWAIT, ETSI3_WORLD, "KW"},
430 {CTRY_LATVIA, ETSI1_WORLD, "LV"},
431 {CTRY_LEBANON, NULL1_WORLD, "LB"},
432 {CTRY_LIECHTENSTEIN, ETSI1_WORLD, "LI"},
433 {CTRY_LITHUANIA, ETSI1_WORLD, "LT"},
434 {CTRY_LUXEMBOURG, ETSI1_WORLD, "LU"},
435 {CTRY_MACAU, FCC2_WORLD, "MO"},
436 {CTRY_MACEDONIA, ETSI1_WORLD, "MK"},
437 {CTRY_MALAYSIA, FCC1_WORLD, "MY"},
438 {CTRY_MALTA, ETSI1_WORLD, "MT"},
439 {CTRY_MAURITIUS, ETSI1_WORLD, "MU"},
440 {CTRY_MEXICO, FCC1_FCCA, "MX"},
441 {CTRY_MONACO, ETSI4_WORLD, "MC"},
442 {CTRY_MONTENEGRO, ETSI1_WORLD, "ME"},
443 {CTRY_MOROCCO, APL4_WORLD, "MA"},
444 {CTRY_NEPAL, APL1_WORLD, "NP"},
445 {CTRY_NETHERLANDS, ETSI1_WORLD, "NL"},
446 {CTRY_NETHERLANDS_ANTILLES, ETSI1_WORLD, "AN"},
447 {CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ"},
448 {CTRY_NICARAGUA, FCC3_FCCA, "NI"},
449 {CTRY_NORWAY, ETSI1_WORLD, "NO"},
450 {CTRY_OMAN, FCC3_WORLD, "OM"},
451 {CTRY_PAKISTAN, NULL1_WORLD, "PK"},
452 {CTRY_PANAMA, FCC1_FCCA, "PA"},
453 {CTRY_PAPUA_NEW_GUINEA, FCC1_WORLD, "PG"},
454 {CTRY_PARAGUAY, FCC3_WORLD, "PY"},
455 {CTRY_PERU, FCC3_WORLD, "PE"},
456 {CTRY_PHILIPPINES, FCC3_WORLD, "PH"},
457 {CTRY_POLAND, ETSI1_WORLD, "PL"},
458 {CTRY_PORTUGAL, ETSI1_WORLD, "PT"},
459 {CTRY_PUERTO_RICO, FCC1_FCCA, "PR"},
460 {CTRY_QATAR, APL1_WORLD, "QA"},
461 {CTRY_ROMANIA, ETSI1_WORLD, "RO"},
462 {CTRY_RUSSIA, ETSI8_WORLD, "RU"},
463 {CTRY_SAUDI_ARABIA, NULL1_WORLD, "SA"},
464 {CTRY_SERBIA, ETSI1_WORLD, "RS"},
465 {CTRY_SERBIA_MONTENEGRO, ETSI1_WORLD, "CS"},
466 {CTRY_SINGAPORE, FCC3_WORLD, "SG"},
467 {CTRY_SLOVAKIA, ETSI1_WORLD, "SK"},
468 {CTRY_SLOVENIA, ETSI1_WORLD, "SI"},
469 {CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA"},
470 {CTRY_SPAIN, ETSI1_WORLD, "ES"},
471 {CTRY_SRI_LANKA, FCC3_WORLD, "LK"},
472 {CTRY_SWEDEN, ETSI1_WORLD, "SE"},
473 {CTRY_SWITZERLAND, ETSI1_WORLD, "CH"},
474 {CTRY_SYRIA, NULL1_WORLD, "SY"},
475 {CTRY_TAIWAN, APL3_FCCA, "TW"},
476 {CTRY_TANZANIA, APL1_WORLD, "TZ"},
477 {CTRY_THAILAND, FCC3_WORLD, "TH"},
478 {CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT"},
479 {CTRY_TUNISIA, ETSI3_WORLD, "TN"},
480 {CTRY_TURKEY, ETSI3_WORLD, "TR"},
481 {CTRY_UGANDA, FCC3_WORLD, "UG"},
482 {CTRY_UKRAINE, ETSI9_WORLD, "UA"},
483 {CTRY_UAE, NULL1_WORLD, "AE"},
484 {CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB"},
485 {CTRY_UNITED_STATES, FCC3_FCCA, "US"},
486 {CTRY_UNITED_STATES2, FCC3_FCCA, "US"},
487 {CTRY_UNITED_STATES3, FCC3_FCCA, "US"},
488 /* This "PS" is for US public safety actually... to support this we
489 * would need to assign new special alpha2 to CRDA db as with the world
490 * regdomain and use another alpha2 */
491 {CTRY_UNITED_STATES_FCC49, FCC4_FCCA, "PS"},
492 {CTRY_URUGUAY, FCC3_WORLD, "UY"},
493 {CTRY_UZBEKISTAN, FCC3_FCCA, "UZ"},
494 {CTRY_VENEZUELA, APL2_ETSIC, "VE"},
495 {CTRY_VIET_NAM, NULL1_WORLD, "VN"},
496 {CTRY_YEMEN, NULL1_WORLD, "YE"},
497 {CTRY_ZIMBABWE, ETSI1_WORLD, "ZW"},