1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591 | package body ISO.Countries is
-- *** Begin Methods/Member Functions ***
function Name (This : Country) return String is
begin
case This.Key is
when C_AF => return "Afghanistan";
when C_AL => return "Albania";
when C_DZ => return "Algeria";
when C_AS => return "American Samoa";
when C_AD => return "Andorra";
when C_AO => return "Angola";
when C_AI => return "Anguilla";
when C_AQ => return "Antarctica";
when C_AG => return "Antigua and Barbuda";
when C_AR => return "Argentina";
when C_AM => return "Armenia";
when C_AW => return "Aruba";
when C_AU => return "Australia";
when C_AT => return "Austria";
when C_AZ => return "Azerbaijan";
when C_BS => return "Bahamas (the)";
when C_BH => return "Bahrain";
when C_BD => return "Bangladesh";
when C_BB => return "Barbados";
when C_BY => return "Belarus";
when C_BE => return "Belgium";
when C_BZ => return "Belize";
when C_BJ => return "Benin";
when C_BM => return "Bermuda";
when C_BT => return "Bhutan";
when C_BO => return "Bolivia (Plurinational State of)";
when C_BQ => return "Bonaire, Sint Eustatius and Saba";
when C_BA => return "Bosnia and Herzegovina";
when C_BW => return "Botswana";
when C_BV => return "Bouvet Island";
when C_BR => return "Brazil";
when C_IO => return "British Indian Ocean Territory (the)";
when C_BN => return "Brunei Darussalam";
when C_BG => return "Bulgaria";
when C_BF => return "Burkina Faso";
when C_BI => return "Burundi";
when C_CV => return "Cabo Verde";
when C_KH => return "Cambodia";
when C_CM => return "Cameroon";
when C_CA => return "Canada";
when C_KY => return "Cayman Islands (the)";
when C_CF => return "Central African Republic (the)";
when C_TD => return "Chad";
when C_CL => return "Chile";
when C_CN => return "China";
when C_CX => return "Christmas Island";
when C_CC => return "Cocos (Keeling) Islands (the)";
when C_CO => return "Colombia";
when C_KM => return "Comoros (the)";
when C_CD => return "Congo (the Democratic Republic of the)";
when C_CG => return "Congo (the)";
when C_CK => return "Cook Islands (the)";
when C_CR => return "Costa Rica";
when C_HR => return "Croatia";
when C_CU => return "Cuba";
when C_CW => return "Curaçao";
when C_CY => return "Cyprus";
when C_CZ => return "Czechia";
when C_CI => return "Côte d'Ivoire";
when C_DK => return "Denmark";
when C_DJ => return "Djibouti";
when C_DM => return "Dominica";
when C_DO => return "Dominican Republic (the)";
when C_EC => return "Ecuador";
when C_EG => return "Egypt";
when C_SV => return "El Salvador";
when C_GQ => return "Equatorial Guinea";
when C_ER => return "Eritrea";
when C_EE => return "Estonia";
when C_SZ => return "Eswatini";
when C_ET => return "Ethiopia";
when C_FK => return "Falkland Islands (the) [Malvinas]";
when C_FO => return "Faroe Islands (the)";
when C_FJ => return "Fiji";
when C_FI => return "Finland";
when C_FR => return "France";
when C_GF => return "French Guiana";
when C_PF => return "French Polynesia";
when C_TF => return "French Southern Territories (the)";
when C_GA => return "Gabon";
when C_GM => return "Gambia (the)";
when C_GE => return "Georgia";
when C_DE => return "Germany";
when C_GH => return "Ghana";
when C_GI => return "Gibraltar";
when C_GR => return "Greece";
when C_GL => return "Greenland";
when C_GD => return "Grenada";
when C_GP => return "Guadeloupe";
when C_GU => return "Guam";
when C_GT => return "Guatemala";
when C_GG => return "Guernsey";
when C_GN => return "Guinea";
when C_GW => return "Guinea-Bissau";
when C_GY => return "Guyana";
when C_HT => return "Haiti";
when C_HM => return "Heard Island and McDonald Islands";
when C_VA => return "Holy See (the)";
when C_HN => return "Honduras";
when C_HK => return "Hong Kong";
when C_HU => return "Hungary";
when C_IS => return "Iceland";
when C_IN => return "India";
when C_ID => return "Indonesia";
when C_IR => return "Iran (Islamic Republic of)";
when C_IQ => return "Iraq";
when C_IE => return "Ireland";
when C_IM => return "Isle of Man";
when C_IL => return "Israel";
when C_IT => return "Italy";
when C_JM => return "Jamaica";
when C_JP => return "Japan";
when C_JE => return "Jersey";
when C_JO => return "Jordan";
when C_KZ => return "Kazakhstan";
when C_KE => return "Kenya";
when C_KI => return "Kiribati";
when C_KP => return "Korea (the Democratic People's Republic of)";
when C_KR => return "Korea (the Republic of)";
when C_KW => return "Kuwait";
when C_KG => return "Kyrgyzstan";
when C_LA => return "Lao People's Democratic Republic (the)";
when C_LV => return "Latvia";
when C_LB => return "Lebanon";
when C_LS => return "Lesotho";
when C_LR => return "Liberia";
when C_LY => return "Libya";
when C_LI => return "Liechtenstein";
when C_LT => return "Lithuania";
when C_LU => return "Luxembourg";
when C_MO => return "Macao";
when C_MG => return "Madagascar";
when C_MW => return "Malawi";
when C_MY => return "Malaysia";
when C_MV => return "Maldives";
when C_ML => return "Mali";
when C_MT => return "Malta";
when C_MH => return "Marshall Islands (the)";
when C_MQ => return "Martinique";
when C_MR => return "Mauritania";
when C_MU => return "Mauritius";
when C_YT => return "Mayotte";
when C_MX => return "Mexico";
when C_FM => return "Micronesia (Federated States of)";
when C_MD => return "Moldova (the Republic of)";
when C_MC => return "Monaco";
when C_MN => return "Mongolia";
when C_ME => return "Montenegro";
when C_MS => return "Montserrat";
when C_MA => return "Morocco";
when C_MZ => return "Mozambique";
when C_MM => return "Myanmar";
when C_NA => return "Namibia";
when C_NR => return "Nauru";
when C_NP => return "Nepal";
when C_NL => return "Netherlands (Kingdom of the)";
when C_NC => return "New Caledonia";
when C_NZ => return "New Zealand";
when C_NI => return "Nicaragua";
when C_NE => return "Niger (the)";
when C_NG => return "Nigeria";
when C_NU => return "Niue";
when C_NF => return "Norfolk Island";
when C_MK => return "North Macedonia";
when C_MP => return "Northern Mariana Islands (the)";
when C_NO => return "Norway";
when C_OM => return "Oman";
when C_PK => return "Pakistan";
when C_PW => return "Palau";
when C_PS => return "Palestine, State of";
when C_PA => return "Panama";
when C_PG => return "Papua New Guinea";
when C_PY => return "Paraguay";
when C_PE => return "Peru";
when C_PH => return "Philippines (the)";
when C_PN => return "Pitcairn";
when C_PL => return "Poland";
when C_PT => return "Portugal";
when C_PR => return "Puerto Rico";
when C_QA => return "Qatar";
when C_RO => return "Romania";
when C_RU => return "Russian Federation (the)";
when C_RW => return "Rwanda";
when C_RE => return "Réunion";
when C_BL => return "Saint Barthélemy";
when C_SH => return "Saint Helena, Ascension and Tristan da Cunha";
when C_KN => return "Saint Kitts and Nevis";
when C_LC => return "Saint Lucia";
when C_MF => return "Saint Martin (French part)";
when C_PM => return "Saint Pierre and Miquelon";
when C_VC => return "Saint Vincent and the Grenadines";
when C_WS => return "Samoa";
when C_SM => return "San Marino";
when C_ST => return "Sao Tome and Principe";
when C_SA => return "Saudi Arabia";
when C_SN => return "Senegal";
when C_RS => return "Serbia";
when C_SC => return "Seychelles";
when C_SL => return "Sierra Leone";
when C_SG => return "Singapore";
when C_SX => return "Sint Maarten (Dutch part)";
when C_SK => return "Slovakia";
when C_SI => return "Slovenia";
when C_SB => return "Solomon Islands";
when C_SO => return "Somalia";
when C_ZA => return "South Africa";
when C_GS => return "South Georgia and the South Sandwich Islands";
when C_SS => return "South Sudan";
when C_ES => return "Spain";
when C_LK => return "Sri Lanka";
when C_SD => return "Sudan (the)";
when C_SR => return "Suriname";
when C_SJ => return "Svalbard and Jan Mayen";
when C_SE => return "Sweden";
when C_CH => return "Switzerland";
when C_SY => return "Syrian Arab Republic (the)";
when C_TW => return "Taiwan (Province of China)";
when C_TJ => return "Tajikistan";
when C_TZ => return "Tanzania, the United Republic of";
when C_TH => return "Thailand";
when C_TL => return "Timor-Leste";
when C_TG => return "Togo";
when C_TK => return "Tokelau";
when C_TO => return "Tonga";
when C_TT => return "Trinidad and Tobago";
when C_TN => return "Tunisia";
when C_TM => return "Turkmenistan";
when C_TC => return "Turks and Caicos Islands (the)";
when C_TV => return "Tuvalu";
when C_TR => return "Türkiye";
when C_UG => return "Uganda";
when C_UA => return "Ukraine";
when C_AE => return "United Arab Emirates (the)";
when C_GB => return "United Kingdom of Great Britain and Northern Ireland (the)";
when C_UM => return "United States Minor Outlying Islands (the)";
when C_US => return "United States of America (the)";
when C_UY => return "Uruguay";
when C_UZ => return "Uzbekistan";
when C_VU => return "Vanuatu";
when C_VE => return "Venezuela (Bolivarian Republic of)";
when C_VN => return "Viet Nam";
when C_VG => return "Virgin Islands (British)";
when C_VI => return "Virgin Islands (U.S.)";
when C_WF => return "Wallis and Futuna";
when C_EH => return "Western Sahara*";
when C_YE => return "Yemen";
when C_ZM => return "Zambia";
when C_ZW => return "Zimbabwe";
when C_AX => return "Åland Islands";
when C_ZZ => return "Undefined";
end case;
end Name;
function Alpha2 (This : Country) return Alpha2_Code is
begin
case This.Key is
when C_AF => return "AF";
when C_AL => return "AL";
when C_DZ => return "DZ";
when C_AS => return "AS";
when C_AD => return "AD";
when C_AO => return "AO";
when C_AI => return "AI";
when C_AQ => return "AQ";
when C_AG => return "AG";
when C_AR => return "AR";
when C_AM => return "AM";
when C_AW => return "AW";
when C_AU => return "AU";
when C_AT => return "AT";
when C_AZ => return "AZ";
when C_BS => return "BS";
when C_BH => return "BH";
when C_BD => return "BD";
when C_BB => return "BB";
when C_BY => return "BY";
when C_BE => return "BE";
when C_BZ => return "BZ";
when C_BJ => return "BJ";
when C_BM => return "BM";
when C_BT => return "BT";
when C_BO => return "BO";
when C_BQ => return "BQ";
when C_BA => return "BA";
when C_BW => return "BW";
when C_BV => return "BV";
when C_BR => return "BR";
when C_IO => return "IO";
when C_BN => return "BN";
when C_BG => return "BG";
when C_BF => return "BF";
when C_BI => return "BI";
when C_CV => return "CV";
when C_KH => return "KH";
when C_CM => return "CM";
when C_CA => return "CA";
when C_KY => return "KY";
when C_CF => return "CF";
when C_TD => return "TD";
when C_CL => return "CL";
when C_CN => return "CN";
when C_CX => return "CX";
when C_CC => return "CC";
when C_CO => return "CO";
when C_KM => return "KM";
when C_CD => return "CD";
when C_CG => return "CG";
when C_CK => return "CK";
when C_CR => return "CR";
when C_HR => return "HR";
when C_CU => return "CU";
when C_CW => return "CW";
when C_CY => return "CY";
when C_CZ => return "CZ";
when C_CI => return "CI";
when C_DK => return "DK";
when C_DJ => return "DJ";
when C_DM => return "DM";
when C_DO => return "DO";
when C_EC => return "EC";
when C_EG => return "EG";
when C_SV => return "SV";
when C_GQ => return "GQ";
when C_ER => return "ER";
when C_EE => return "EE";
when C_SZ => return "SZ";
when C_ET => return "ET";
when C_FK => return "FK";
when C_FO => return "FO";
when C_FJ => return "FJ";
when C_FI => return "FI";
when C_FR => return "FR";
when C_GF => return "GF";
when C_PF => return "PF";
when C_TF => return "TF";
when C_GA => return "GA";
when C_GM => return "GM";
when C_GE => return "GE";
when C_DE => return "DE";
when C_GH => return "GH";
when C_GI => return "GI";
when C_GR => return "GR";
when C_GL => return "GL";
when C_GD => return "GD";
when C_GP => return "GP";
when C_GU => return "GU";
when C_GT => return "GT";
when C_GG => return "GG";
when C_GN => return "GN";
when C_GW => return "GW";
when C_GY => return "GY";
when C_HT => return "HT";
when C_HM => return "HM";
when C_VA => return "VA";
when C_HN => return "HN";
when C_HK => return "HK";
when C_HU => return "HU";
when C_IS => return "IS";
when C_IN => return "IN";
when C_ID => return "ID";
when C_IR => return "IR";
when C_IQ => return "IQ";
when C_IE => return "IE";
when C_IM => return "IM";
when C_IL => return "IL";
when C_IT => return "IT";
when C_JM => return "JM";
when C_JP => return "JP";
when C_JE => return "JE";
when C_JO => return "JO";
when C_KZ => return "KZ";
when C_KE => return "KE";
when C_KI => return "KI";
when C_KP => return "KP";
when C_KR => return "KR";
when C_KW => return "KW";
when C_KG => return "KG";
when C_LA => return "LA";
when C_LV => return "LV";
when C_LB => return "LB";
when C_LS => return "LS";
when C_LR => return "LR";
when C_LY => return "LY";
when C_LI => return "LI";
when C_LT => return "LT";
when C_LU => return "LU";
when C_MO => return "MO";
when C_MG => return "MG";
when C_MW => return "MW";
when C_MY => return "MY";
when C_MV => return "MV";
when C_ML => return "ML";
when C_MT => return "MT";
when C_MH => return "MH";
when C_MQ => return "MQ";
when C_MR => return "MR";
when C_MU => return "MU";
when C_YT => return "YT";
when C_MX => return "MX";
when C_FM => return "FM";
when C_MD => return "MD";
when C_MC => return "MC";
when C_MN => return "MN";
when C_ME => return "ME";
when C_MS => return "MS";
when C_MA => return "MA";
when C_MZ => return "MZ";
when C_MM => return "MM";
when C_NA => return "NA";
when C_NR => return "NR";
when C_NP => return "NP";
when C_NL => return "NL";
when C_NC => return "NC";
when C_NZ => return "NZ";
when C_NI => return "NI";
when C_NE => return "NE";
when C_NG => return "NG";
when C_NU => return "NU";
when C_NF => return "NF";
when C_MK => return "MK";
when C_MP => return "MP";
when C_NO => return "NO";
when C_OM => return "OM";
when C_PK => return "PK";
when C_PW => return "PW";
when C_PS => return "PS";
when C_PA => return "PA";
when C_PG => return "PG";
when C_PY => return "PY";
when C_PE => return "PE";
when C_PH => return "PH";
when C_PN => return "PN";
when C_PL => return "PL";
when C_PT => return "PT";
when C_PR => return "PR";
when C_QA => return "QA";
when C_RO => return "RO";
when C_RU => return "RU";
when C_RW => return "RW";
when C_RE => return "RE";
when C_BL => return "BL";
when C_SH => return "SH";
when C_KN => return "KN";
when C_LC => return "LC";
when C_MF => return "MF";
when C_PM => return "PM";
when C_VC => return "VC";
when C_WS => return "WS";
when C_SM => return "SM";
when C_ST => return "ST";
when C_SA => return "SA";
when C_SN => return "SN";
when C_RS => return "RS";
when C_SC => return "SC";
when C_SL => return "SL";
when C_SG => return "SG";
when C_SX => return "SX";
when C_SK => return "SK";
when C_SI => return "SI";
when C_SB => return "SB";
when C_SO => return "SO";
when C_ZA => return "ZA";
when C_GS => return "GS";
when C_SS => return "SS";
when C_ES => return "ES";
when C_LK => return "LK";
when C_SD => return "SD";
when C_SR => return "SR";
when C_SJ => return "SJ";
when C_SE => return "SE";
when C_CH => return "CH";
when C_SY => return "SY";
when C_TW => return "TW";
when C_TJ => return "TJ";
when C_TZ => return "TZ";
when C_TH => return "TH";
when C_TL => return "TL";
when C_TG => return "TG";
when C_TK => return "TK";
when C_TO => return "TO";
when C_TT => return "TT";
when C_TN => return "TN";
when C_TM => return "TM";
when C_TC => return "TC";
when C_TV => return "TV";
when C_TR => return "TR";
when C_UG => return "UG";
when C_UA => return "UA";
when C_AE => return "AE";
when C_GB => return "GB";
when C_UM => return "UM";
when C_US => return "US";
when C_UY => return "UY";
when C_UZ => return "UZ";
when C_VU => return "VU";
when C_VE => return "VE";
when C_VN => return "VN";
when C_VG => return "VG";
when C_VI => return "VI";
when C_WF => return "WF";
when C_EH => return "EH";
when C_YE => return "YE";
when C_ZM => return "ZM";
when C_ZW => return "ZW";
when C_AX => return "AX";
when C_ZZ => return "ZZ";
end case;
end Alpha2;
function Alpha3 (This : Country) return Alpha3_Code is
begin
case This.Key is
when C_AF => return "AFG";
when C_AL => return "ALB";
when C_DZ => return "DZA";
when C_AS => return "ASM";
when C_AD => return "AND";
when C_AO => return "AGO";
when C_AI => return "AIA";
when C_AQ => return "ATA";
when C_AG => return "ATG";
when C_AR => return "ARG";
when C_AM => return "ARM";
when C_AW => return "ABW";
when C_AU => return "AUS";
when C_AT => return "AUT";
when C_AZ => return "AZE";
when C_BS => return "BHS";
when C_BH => return "BHR";
when C_BD => return "BGD";
when C_BB => return "BRB";
when C_BY => return "BLR";
when C_BE => return "BEL";
when C_BZ => return "BLZ";
when C_BJ => return "BEN";
when C_BM => return "BMU";
when C_BT => return "BTN";
when C_BO => return "BOL";
when C_BQ => return "BES";
when C_BA => return "BIH";
when C_BW => return "BWA";
when C_BV => return "BVT";
when C_BR => return "BRA";
when C_IO => return "IOT";
when C_BN => return "BRN";
when C_BG => return "BGR";
when C_BF => return "BFA";
when C_BI => return "BDI";
when C_CV => return "CPV";
when C_KH => return "KHM";
when C_CM => return "CMR";
when C_CA => return "CAN";
when C_KY => return "CYM";
when C_CF => return "CAF";
when C_TD => return "TCD";
when C_CL => return "CHL";
when C_CN => return "CHN";
when C_CX => return "CXR";
when C_CC => return "CCK";
when C_CO => return "COL";
when C_KM => return "COM";
when C_CD => return "COD";
when C_CG => return "COG";
when C_CK => return "COK";
when C_CR => return "CRI";
when C_HR => return "HRV";
when C_CU => return "CUB";
when C_CW => return "CUW";
when C_CY => return "CYP";
when C_CZ => return "CZE";
when C_CI => return "CIV";
when C_DK => return "DNK";
when C_DJ => return "DJI";
when C_DM => return "DMA";
when C_DO => return "DOM";
when C_EC => return "ECU";
when C_EG => return "EGY";
when C_SV => return "SLV";
when C_GQ => return "GNQ";
when C_ER => return "ERI";
when C_EE => return "EST";
when C_SZ => return "SWZ";
when C_ET => return "ETH";
when C_FK => return "FLK";
when C_FO => return "FRO";
when C_FJ => return "FJI";
when C_FI => return "FIN";
when C_FR => return "FRA";
when C_GF => return "GUF";
when C_PF => return "PYF";
when C_TF => return "ATF";
when C_GA => return "GAB";
when C_GM => return "GMB";
when C_GE => return "GEO";
when C_DE => return "DEU";
when C_GH => return "GHA";
when C_GI => return "GIB";
when C_GR => return "GRC";
when C_GL => return "GRL";
when C_GD => return "GRD";
when C_GP => return "GLP";
when C_GU => return "GUM";
when C_GT => return "GTM";
when C_GG => return "GGY";
when C_GN => return "GIN";
when C_GW => return "GNB";
when C_GY => return "GUY";
when C_HT => return "HTI";
when C_HM => return "HMD";
when C_VA => return "VAT";
when C_HN => return "HND";
when C_HK => return "HKG";
when C_HU => return "HUN";
when C_IS => return "ISL";
when C_IN => return "IND";
when C_ID => return "IDN";
when C_IR => return "IRN";
when C_IQ => return "IRQ";
when C_IE => return "IRL";
when C_IM => return "IMN";
when C_IL => return "ISR";
when C_IT => return "ITA";
when C_JM => return "JAM";
when C_JP => return "JPN";
when C_JE => return "JEY";
when C_JO => return "JOR";
when C_KZ => return "KAZ";
when C_KE => return "KEN";
when C_KI => return "KIR";
when C_KP => return "PRK";
when C_KR => return "KOR";
when C_KW => return "KWT";
when C_KG => return "KGZ";
when C_LA => return "LAO";
when C_LV => return "LVA";
when C_LB => return "LBN";
when C_LS => return "LSO";
when C_LR => return "LBR";
when C_LY => return "LBY";
when C_LI => return "LIE";
when C_LT => return "LTU";
when C_LU => return "LUX";
when C_MO => return "MAC";
when C_MG => return "MDG";
when C_MW => return "MWI";
when C_MY => return "MYS";
when C_MV => return "MDV";
when C_ML => return "MLI";
when C_MT => return "MLT";
when C_MH => return "MHL";
when C_MQ => return "MTQ";
when C_MR => return "MRT";
when C_MU => return "MUS";
when C_YT => return "MYT";
when C_MX => return "MEX";
when C_FM => return "FSM";
when C_MD => return "MDA";
when C_MC => return "MCO";
when C_MN => return "MNG";
when C_ME => return "MNE";
when C_MS => return "MSR";
when C_MA => return "MAR";
when C_MZ => return "MOZ";
when C_MM => return "MMR";
when C_NA => return "NAM";
when C_NR => return "NRU";
when C_NP => return "NPL";
when C_NL => return "NLD";
when C_NC => return "NCL";
when C_NZ => return "NZL";
when C_NI => return "NIC";
when C_NE => return "NER";
when C_NG => return "NGA";
when C_NU => return "NIU";
when C_NF => return "NFK";
when C_MK => return "MKD";
when C_MP => return "MNP";
when C_NO => return "NOR";
when C_OM => return "OMN";
when C_PK => return "PAK";
when C_PW => return "PLW";
when C_PS => return "PSE";
when C_PA => return "PAN";
when C_PG => return "PNG";
when C_PY => return "PRY";
when C_PE => return "PER";
when C_PH => return "PHL";
when C_PN => return "PCN";
when C_PL => return "POL";
when C_PT => return "PRT";
when C_PR => return "PRI";
when C_QA => return "QAT";
when C_RO => return "ROU";
when C_RU => return "RUS";
when C_RW => return "RWA";
when C_RE => return "REU";
when C_BL => return "BLM";
when C_SH => return "SHN";
when C_KN => return "KNA";
when C_LC => return "LCA";
when C_MF => return "MAF";
when C_PM => return "SPM";
when C_VC => return "VCT";
when C_WS => return "WSM";
when C_SM => return "SMR";
when C_ST => return "STP";
when C_SA => return "SAU";
when C_SN => return "SEN";
when C_RS => return "SRB";
when C_SC => return "SYC";
when C_SL => return "SLE";
when C_SG => return "SGP";
when C_SX => return "SXM";
when C_SK => return "SVK";
when C_SI => return "SVN";
when C_SB => return "SLB";
when C_SO => return "SOM";
when C_ZA => return "ZAF";
when C_GS => return "SGS";
when C_SS => return "SSD";
when C_ES => return "ESP";
when C_LK => return "LKA";
when C_SD => return "SDN";
when C_SR => return "SUR";
when C_SJ => return "SJM";
when C_SE => return "SWE";
when C_CH => return "CHE";
when C_SY => return "SYR";
when C_TW => return "TWN";
when C_TJ => return "TJK";
when C_TZ => return "TZA";
when C_TH => return "THA";
when C_TL => return "TLS";
when C_TG => return "TGO";
when C_TK => return "TKL";
when C_TO => return "TON";
when C_TT => return "TTO";
when C_TN => return "TUN";
when C_TM => return "TKM";
when C_TC => return "TCA";
when C_TV => return "TUV";
when C_TR => return "TUR";
when C_UG => return "UGA";
when C_UA => return "UKR";
when C_AE => return "ARE";
when C_GB => return "GBR";
when C_UM => return "UMI";
when C_US => return "USA";
when C_UY => return "URY";
when C_UZ => return "UZB";
when C_VU => return "VUT";
when C_VE => return "VEN";
when C_VN => return "VNM";
when C_VG => return "VGB";
when C_VI => return "VIR";
when C_WF => return "WLF";
when C_EH => return "ESH";
when C_YE => return "YEM";
when C_ZM => return "ZMB";
when C_ZW => return "ZWE";
when C_AX => return "ALA";
when C_ZZ => return "ZZZ";
end case;
end Alpha3;
function Numeric (This : Country) return Numeric_Code is
begin
case This.Key is
when C_AF => return 004;
when C_AL => return 008;
when C_DZ => return 012;
when C_AS => return 016;
when C_AD => return 020;
when C_AO => return 024;
when C_AI => return 660;
when C_AQ => return 010;
when C_AG => return 028;
when C_AR => return 032;
when C_AM => return 051;
when C_AW => return 533;
when C_AU => return 036;
when C_AT => return 040;
when C_AZ => return 031;
when C_BS => return 044;
when C_BH => return 048;
when C_BD => return 050;
when C_BB => return 052;
when C_BY => return 112;
when C_BE => return 056;
when C_BZ => return 084;
when C_BJ => return 204;
when C_BM => return 060;
when C_BT => return 064;
when C_BO => return 068;
when C_BQ => return 535;
when C_BA => return 070;
when C_BW => return 072;
when C_BV => return 074;
when C_BR => return 076;
when C_IO => return 086;
when C_BN => return 096;
when C_BG => return 100;
when C_BF => return 854;
when C_BI => return 108;
when C_CV => return 132;
when C_KH => return 116;
when C_CM => return 120;
when C_CA => return 124;
when C_KY => return 136;
when C_CF => return 140;
when C_TD => return 148;
when C_CL => return 152;
when C_CN => return 156;
when C_CX => return 162;
when C_CC => return 166;
when C_CO => return 170;
when C_KM => return 174;
when C_CD => return 180;
when C_CG => return 178;
when C_CK => return 184;
when C_CR => return 188;
when C_HR => return 191;
when C_CU => return 192;
when C_CW => return 531;
when C_CY => return 196;
when C_CZ => return 203;
when C_CI => return 384;
when C_DK => return 208;
when C_DJ => return 262;
when C_DM => return 212;
when C_DO => return 214;
when C_EC => return 218;
when C_EG => return 818;
when C_SV => return 222;
when C_GQ => return 226;
when C_ER => return 232;
when C_EE => return 233;
when C_SZ => return 748;
when C_ET => return 231;
when C_FK => return 238;
when C_FO => return 234;
when C_FJ => return 242;
when C_FI => return 246;
when C_FR => return 250;
when C_GF => return 254;
when C_PF => return 258;
when C_TF => return 260;
when C_GA => return 266;
when C_GM => return 270;
when C_GE => return 268;
when C_DE => return 276;
when C_GH => return 288;
when C_GI => return 292;
when C_GR => return 300;
when C_GL => return 304;
when C_GD => return 308;
when C_GP => return 312;
when C_GU => return 316;
when C_GT => return 320;
when C_GG => return 831;
when C_GN => return 324;
when C_GW => return 624;
when C_GY => return 328;
when C_HT => return 332;
when C_HM => return 334;
when C_VA => return 336;
when C_HN => return 340;
when C_HK => return 344;
when C_HU => return 348;
when C_IS => return 352;
when C_IN => return 356;
when C_ID => return 360;
when C_IR => return 364;
when C_IQ => return 368;
when C_IE => return 372;
when C_IM => return 833;
when C_IL => return 376;
when C_IT => return 380;
when C_JM => return 388;
when C_JP => return 392;
when C_JE => return 832;
when C_JO => return 400;
when C_KZ => return 398;
when C_KE => return 404;
when C_KI => return 296;
when C_KP => return 408;
when C_KR => return 410;
when C_KW => return 414;
when C_KG => return 417;
when C_LA => return 418;
when C_LV => return 428;
when C_LB => return 422;
when C_LS => return 426;
when C_LR => return 430;
when C_LY => return 434;
when C_LI => return 438;
when C_LT => return 440;
when C_LU => return 442;
when C_MO => return 446;
when C_MG => return 450;
when C_MW => return 454;
when C_MY => return 458;
when C_MV => return 462;
when C_ML => return 466;
when C_MT => return 470;
when C_MH => return 584;
when C_MQ => return 474;
when C_MR => return 478;
when C_MU => return 480;
when C_YT => return 175;
when C_MX => return 484;
when C_FM => return 583;
when C_MD => return 498;
when C_MC => return 492;
when C_MN => return 496;
when C_ME => return 499;
when C_MS => return 500;
when C_MA => return 504;
when C_MZ => return 508;
when C_MM => return 104;
when C_NA => return 516;
when C_NR => return 520;
when C_NP => return 524;
when C_NL => return 528;
when C_NC => return 540;
when C_NZ => return 554;
when C_NI => return 558;
when C_NE => return 562;
when C_NG => return 566;
when C_NU => return 570;
when C_NF => return 574;
when C_MK => return 807;
when C_MP => return 580;
when C_NO => return 578;
when C_OM => return 512;
when C_PK => return 586;
when C_PW => return 585;
when C_PS => return 275;
when C_PA => return 591;
when C_PG => return 598;
when C_PY => return 600;
when C_PE => return 604;
when C_PH => return 608;
when C_PN => return 612;
when C_PL => return 616;
when C_PT => return 620;
when C_PR => return 630;
when C_QA => return 634;
when C_RO => return 642;
when C_RU => return 643;
when C_RW => return 646;
when C_RE => return 638;
when C_BL => return 652;
when C_SH => return 654;
when C_KN => return 659;
when C_LC => return 662;
when C_MF => return 663;
when C_PM => return 666;
when C_VC => return 670;
when C_WS => return 882;
when C_SM => return 674;
when C_ST => return 678;
when C_SA => return 682;
when C_SN => return 686;
when C_RS => return 688;
when C_SC => return 690;
when C_SL => return 694;
when C_SG => return 702;
when C_SX => return 534;
when C_SK => return 703;
when C_SI => return 705;
when C_SB => return 090;
when C_SO => return 706;
when C_ZA => return 710;
when C_GS => return 239;
when C_SS => return 728;
when C_ES => return 724;
when C_LK => return 144;
when C_SD => return 729;
when C_SR => return 740;
when C_SJ => return 744;
when C_SE => return 752;
when C_CH => return 756;
when C_SY => return 760;
when C_TW => return 158;
when C_TJ => return 762;
when C_TZ => return 834;
when C_TH => return 764;
when C_TL => return 626;
when C_TG => return 768;
when C_TK => return 772;
when C_TO => return 776;
when C_TT => return 780;
when C_TN => return 788;
when C_TM => return 795;
when C_TC => return 796;
when C_TV => return 798;
when C_TR => return 792;
when C_UG => return 800;
when C_UA => return 804;
when C_AE => return 784;
when C_GB => return 826;
when C_UM => return 581;
when C_US => return 840;
when C_UY => return 858;
when C_UZ => return 860;
when C_VU => return 548;
when C_VE => return 862;
when C_VN => return 704;
when C_VG => return 092;
when C_VI => return 850;
when C_WF => return 876;
when C_EH => return 732;
when C_YE => return 887;
when C_ZM => return 894;
when C_ZW => return 716;
when C_AX => return 248;
when C_ZZ => return 0;
end case;
end Numeric;
function Country_Code
(This : Country) return Ada.Locales.Country_Code is
begin
return Ada.Locales.Country_Code (Alpha2 (This));
end Country_Code;
-- *** End Methods/Member Functions ***
-- *** Creation Functions ***
function From_Alpha2 (Code : Alpha2_Code) return Country is
Result : constant Country := (Key => Country_Key'Value
("C_" & Code));
begin
return Result;
end From_Alpha2;
function From_Alpha3 (Code : Alpha3_Code) return Country is
begin
return Result : Country do
Result.Key := Alpha3_To_Key (Code);
end return;
end From_Alpha3;
function From_Numeric (Number : Numeric_Code) return Country is
begin
return Result : Country do
Result.Key := Numeric_To_Key (Number);
end return;
end From_Numeric;
function From_Numeric (Number : String) return Country is
Real_Number : constant Numeric_Code := Numeric_Code'Value (Number);
begin
return Result : Country do
Result.Key := Numeric_To_Key (Real_Number);
end return;
end From_Numeric;
function From_Country_Code (Code : Ada.Locales.Country_Code) return Country
is
begin
return From_Alpha2 (Alpha2_Code (Code));
end From_Country_Code;
function Init_Countries return All_Countries is
begin
return Result : All_Countries do
for X in Country_Key'Range loop
Result (X) := (Key => X);
end loop;
end return;
end Init_Countries;
-- *** End Creation Functions ***
-- *** Begin Lookup table functions ***
-- Lookup table to convert numeric to country key.
function Numeric_To_Key (Numeric : Numeric_Code) return Country_Key is
begin
case Numeric is
when 004 => return C_AF;
when 008 => return C_AL;
when 012 => return C_DZ;
when 016 => return C_AS;
when 020 => return C_AD;
when 024 => return C_AO;
when 660 => return C_AI;
when 010 => return C_AQ;
when 028 => return C_AG;
when 032 => return C_AR;
when 051 => return C_AM;
when 533 => return C_AW;
when 036 => return C_AU;
when 040 => return C_AT;
when 031 => return C_AZ;
when 044 => return C_BS;
when 048 => return C_BH;
when 050 => return C_BD;
when 052 => return C_BB;
when 112 => return C_BY;
when 056 => return C_BE;
when 084 => return C_BZ;
when 204 => return C_BJ;
when 060 => return C_BM;
when 064 => return C_BT;
when 068 => return C_BO;
when 535 => return C_BQ;
when 070 => return C_BA;
when 072 => return C_BW;
when 074 => return C_BV;
when 076 => return C_BR;
when 086 => return C_IO;
when 096 => return C_BN;
when 100 => return C_BG;
when 854 => return C_BF;
when 108 => return C_BI;
when 132 => return C_CV;
when 116 => return C_KH;
when 120 => return C_CM;
when 124 => return C_CA;
when 136 => return C_KY;
when 140 => return C_CF;
when 148 => return C_TD;
when 152 => return C_CL;
when 156 => return C_CN;
when 162 => return C_CX;
when 166 => return C_CC;
when 170 => return C_CO;
when 174 => return C_KM;
when 180 => return C_CD;
when 178 => return C_CG;
when 184 => return C_CK;
when 188 => return C_CR;
when 191 => return C_HR;
when 192 => return C_CU;
when 531 => return C_CW;
when 196 => return C_CY;
when 203 => return C_CZ;
when 384 => return C_CI;
when 208 => return C_DK;
when 262 => return C_DJ;
when 212 => return C_DM;
when 214 => return C_DO;
when 218 => return C_EC;
when 818 => return C_EG;
when 222 => return C_SV;
when 226 => return C_GQ;
when 232 => return C_ER;
when 233 => return C_EE;
when 748 => return C_SZ;
when 231 => return C_ET;
when 238 => return C_FK;
when 234 => return C_FO;
when 242 => return C_FJ;
when 246 => return C_FI;
when 250 => return C_FR;
when 254 => return C_GF;
when 258 => return C_PF;
when 260 => return C_TF;
when 266 => return C_GA;
when 270 => return C_GM;
when 268 => return C_GE;
when 276 => return C_DE;
when 288 => return C_GH;
when 292 => return C_GI;
when 300 => return C_GR;
when 304 => return C_GL;
when 308 => return C_GD;
when 312 => return C_GP;
when 316 => return C_GU;
when 320 => return C_GT;
when 831 => return C_GG;
when 324 => return C_GN;
when 624 => return C_GW;
when 328 => return C_GY;
when 332 => return C_HT;
when 334 => return C_HM;
when 336 => return C_VA;
when 340 => return C_HN;
when 344 => return C_HK;
when 348 => return C_HU;
when 352 => return C_IS;
when 356 => return C_IN;
when 360 => return C_ID;
when 364 => return C_IR;
when 368 => return C_IQ;
when 372 => return C_IE;
when 833 => return C_IM;
when 376 => return C_IL;
when 380 => return C_IT;
when 388 => return C_JM;
when 392 => return C_JP;
when 832 => return C_JE;
when 400 => return C_JO;
when 398 => return C_KZ;
when 404 => return C_KE;
when 296 => return C_KI;
when 408 => return C_KP;
when 410 => return C_KR;
when 414 => return C_KW;
when 417 => return C_KG;
when 418 => return C_LA;
when 428 => return C_LV;
when 422 => return C_LB;
when 426 => return C_LS;
when 430 => return C_LR;
when 434 => return C_LY;
when 438 => return C_LI;
when 440 => return C_LT;
when 442 => return C_LU;
when 446 => return C_MO;
when 450 => return C_MG;
when 454 => return C_MW;
when 458 => return C_MY;
when 462 => return C_MV;
when 466 => return C_ML;
when 470 => return C_MT;
when 584 => return C_MH;
when 474 => return C_MQ;
when 478 => return C_MR;
when 480 => return C_MU;
when 175 => return C_YT;
when 484 => return C_MX;
when 583 => return C_FM;
when 498 => return C_MD;
when 492 => return C_MC;
when 496 => return C_MN;
when 499 => return C_ME;
when 500 => return C_MS;
when 504 => return C_MA;
when 508 => return C_MZ;
when 104 => return C_MM;
when 516 => return C_NA;
when 520 => return C_NR;
when 524 => return C_NP;
when 528 => return C_NL;
when 540 => return C_NC;
when 554 => return C_NZ;
when 558 => return C_NI;
when 562 => return C_NE;
when 566 => return C_NG;
when 570 => return C_NU;
when 574 => return C_NF;
when 807 => return C_MK;
when 580 => return C_MP;
when 578 => return C_NO;
when 512 => return C_OM;
when 586 => return C_PK;
when 585 => return C_PW;
when 275 => return C_PS;
when 591 => return C_PA;
when 598 => return C_PG;
when 600 => return C_PY;
when 604 => return C_PE;
when 608 => return C_PH;
when 612 => return C_PN;
when 616 => return C_PL;
when 620 => return C_PT;
when 630 => return C_PR;
when 634 => return C_QA;
when 642 => return C_RO;
when 643 => return C_RU;
when 646 => return C_RW;
when 638 => return C_RE;
when 652 => return C_BL;
when 654 => return C_SH;
when 659 => return C_KN;
when 662 => return C_LC;
when 663 => return C_MF;
when 666 => return C_PM;
when 670 => return C_VC;
when 882 => return C_WS;
when 674 => return C_SM;
when 678 => return C_ST;
when 682 => return C_SA;
when 686 => return C_SN;
when 688 => return C_RS;
when 690 => return C_SC;
when 694 => return C_SL;
when 702 => return C_SG;
when 534 => return C_SX;
when 703 => return C_SK;
when 705 => return C_SI;
when 090 => return C_SB;
when 706 => return C_SO;
when 710 => return C_ZA;
when 239 => return C_GS;
when 728 => return C_SS;
when 724 => return C_ES;
when 144 => return C_LK;
when 729 => return C_SD;
when 740 => return C_SR;
when 744 => return C_SJ;
when 752 => return C_SE;
when 756 => return C_CH;
when 760 => return C_SY;
when 158 => return C_TW;
when 762 => return C_TJ;
when 834 => return C_TZ;
when 764 => return C_TH;
when 626 => return C_TL;
when 768 => return C_TG;
when 772 => return C_TK;
when 776 => return C_TO;
when 780 => return C_TT;
when 788 => return C_TN;
when 795 => return C_TM;
when 796 => return C_TC;
when 798 => return C_TV;
when 792 => return C_TR;
when 800 => return C_UG;
when 804 => return C_UA;
when 784 => return C_AE;
when 826 => return C_GB;
when 581 => return C_UM;
when 840 => return C_US;
when 858 => return C_UY;
when 860 => return C_UZ;
when 548 => return C_VU;
when 862 => return C_VE;
when 704 => return C_VN;
when 092 => return C_VG;
when 850 => return C_VI;
when 876 => return C_WF;
when 732 => return C_EH;
when 887 => return C_YE;
when 894 => return C_ZM;
when 716 => return C_ZW;
when 248 => return C_AX;
when 0 => return C_ZZ;
when others => return C_ZZ;
end case;
end Numeric_To_Key;
-- Lookup table to convert alpha_3 string to country key.
function Alpha3_To_Key (Alpha_3 : Alpha3_Code) return Country_Key is
-- Match the alpha 3 with a lookup table similar to Country_Key
type Alpha3_Key is (C_AFG, C_ALB, C_DZA, C_ASM, C_AND, C_AGO, C_AIA, C_ATA, C_ATG, C_ARG, C_ARM, C_ABW, C_AUS, C_AUT, C_AZE, C_BHS, C_BHR, C_BGD, C_BRB, C_BLR, C_BEL, C_BLZ, C_BEN, C_BMU, C_BTN, C_BOL, C_BES, C_BIH, C_BWA, C_BVT, C_BRA, C_IOT, C_BRN, C_BGR, C_BFA, C_BDI, C_CPV, C_KHM, C_CMR, C_CAN, C_CYM, C_CAF, C_TCD, C_CHL, C_CHN, C_CXR, C_CCK, C_COL, C_COM, C_COD, C_COG, C_COK, C_CRI, C_HRV, C_CUB, C_CUW, C_CYP, C_CZE, C_CIV, C_DNK, C_DJI, C_DMA, C_DOM, C_ECU, C_EGY, C_SLV, C_GNQ, C_ERI, C_EST, C_SWZ, C_ETH, C_FLK, C_FRO, C_FJI, C_FIN, C_FRA, C_GUF, C_PYF, C_ATF, C_GAB, C_GMB, C_GEO, C_DEU, C_GHA, C_GIB, C_GRC, C_GRL, C_GRD, C_GLP, C_GUM, C_GTM, C_GGY, C_GIN, C_GNB, C_GUY, C_HTI, C_HMD, C_VAT, C_HND, C_HKG, C_HUN, C_ISL, C_IND, C_IDN, C_IRN, C_IRQ, C_IRL, C_IMN, C_ISR, C_ITA, C_JAM, C_JPN, C_JEY, C_JOR, C_KAZ, C_KEN, C_KIR, C_PRK, C_KOR, C_KWT, C_KGZ, C_LAO, C_LVA, C_LBN, C_LSO, C_LBR, C_LBY, C_LIE, C_LTU, C_LUX, C_MAC, C_MDG, C_MWI, C_MYS, C_MDV, C_MLI, C_MLT, C_MHL, C_MTQ, C_MRT, C_MUS, C_MYT, C_MEX, C_FSM, C_MDA, C_MCO, C_MNG, C_MNE, C_MSR, C_MAR, C_MOZ, C_MMR, C_NAM, C_NRU, C_NPL, C_NLD, C_NCL, C_NZL, C_NIC, C_NER, C_NGA, C_NIU, C_NFK, C_MKD, C_MNP, C_NOR, C_OMN, C_PAK, C_PLW, C_PSE, C_PAN, C_PNG, C_PRY, C_PER, C_PHL, C_PCN, C_POL, C_PRT, C_PRI, C_QAT, C_ROU, C_RUS, C_RWA, C_REU, C_BLM, C_SHN, C_KNA, C_LCA, C_MAF, C_SPM, C_VCT, C_WSM, C_SMR, C_STP, C_SAU, C_SEN, C_SRB, C_SYC, C_SLE, C_SGP, C_SXM, C_SVK, C_SVN, C_SLB, C_SOM, C_ZAF, C_SGS, C_SSD, C_ESP, C_LKA, C_SDN, C_SUR, C_SJM, C_SWE, C_CHE, C_SYR, C_TWN, C_TJK, C_TZA, C_THA, C_TLS, C_TGO, C_TKL, C_TON, C_TTO, C_TUN, C_TKM, C_TCA, C_TUV, C_TUR, C_UGA, C_UKR, C_ARE, C_GBR, C_UMI, C_USA, C_URY, C_UZB, C_VUT, C_VEN, C_VNM, C_VGB, C_VIR, C_WLF, C_ESH, C_YEM, C_ZMB, C_ZWE, C_ALA, C_ZZZ);
Key : constant Alpha3_Key := Alpha3_Key'Value ("C_" & Alpha_3);
begin
case Key is
when C_AFG => return C_AF;
when C_ALB => return C_AL;
when C_DZA => return C_DZ;
when C_ASM => return C_AS;
when C_AND => return C_AD;
when C_AGO => return C_AO;
when C_AIA => return C_AI;
when C_ATA => return C_AQ;
when C_ATG => return C_AG;
when C_ARG => return C_AR;
when C_ARM => return C_AM;
when C_ABW => return C_AW;
when C_AUS => return C_AU;
when C_AUT => return C_AT;
when C_AZE => return C_AZ;
when C_BHS => return C_BS;
when C_BHR => return C_BH;
when C_BGD => return C_BD;
when C_BRB => return C_BB;
when C_BLR => return C_BY;
when C_BEL => return C_BE;
when C_BLZ => return C_BZ;
when C_BEN => return C_BJ;
when C_BMU => return C_BM;
when C_BTN => return C_BT;
when C_BOL => return C_BO;
when C_BES => return C_BQ;
when C_BIH => return C_BA;
when C_BWA => return C_BW;
when C_BVT => return C_BV;
when C_BRA => return C_BR;
when C_IOT => return C_IO;
when C_BRN => return C_BN;
when C_BGR => return C_BG;
when C_BFA => return C_BF;
when C_BDI => return C_BI;
when C_CPV => return C_CV;
when C_KHM => return C_KH;
when C_CMR => return C_CM;
when C_CAN => return C_CA;
when C_CYM => return C_KY;
when C_CAF => return C_CF;
when C_TCD => return C_TD;
when C_CHL => return C_CL;
when C_CHN => return C_CN;
when C_CXR => return C_CX;
when C_CCK => return C_CC;
when C_COL => return C_CO;
when C_COM => return C_KM;
when C_COD => return C_CD;
when C_COG => return C_CG;
when C_COK => return C_CK;
when C_CRI => return C_CR;
when C_HRV => return C_HR;
when C_CUB => return C_CU;
when C_CUW => return C_CW;
when C_CYP => return C_CY;
when C_CZE => return C_CZ;
when C_CIV => return C_CI;
when C_DNK => return C_DK;
when C_DJI => return C_DJ;
when C_DMA => return C_DM;
when C_DOM => return C_DO;
when C_ECU => return C_EC;
when C_EGY => return C_EG;
when C_SLV => return C_SV;
when C_GNQ => return C_GQ;
when C_ERI => return C_ER;
when C_EST => return C_EE;
when C_SWZ => return C_SZ;
when C_ETH => return C_ET;
when C_FLK => return C_FK;
when C_FRO => return C_FO;
when C_FJI => return C_FJ;
when C_FIN => return C_FI;
when C_FRA => return C_FR;
when C_GUF => return C_GF;
when C_PYF => return C_PF;
when C_ATF => return C_TF;
when C_GAB => return C_GA;
when C_GMB => return C_GM;
when C_GEO => return C_GE;
when C_DEU => return C_DE;
when C_GHA => return C_GH;
when C_GIB => return C_GI;
when C_GRC => return C_GR;
when C_GRL => return C_GL;
when C_GRD => return C_GD;
when C_GLP => return C_GP;
when C_GUM => return C_GU;
when C_GTM => return C_GT;
when C_GGY => return C_GG;
when C_GIN => return C_GN;
when C_GNB => return C_GW;
when C_GUY => return C_GY;
when C_HTI => return C_HT;
when C_HMD => return C_HM;
when C_VAT => return C_VA;
when C_HND => return C_HN;
when C_HKG => return C_HK;
when C_HUN => return C_HU;
when C_ISL => return C_IS;
when C_IND => return C_IN;
when C_IDN => return C_ID;
when C_IRN => return C_IR;
when C_IRQ => return C_IQ;
when C_IRL => return C_IE;
when C_IMN => return C_IM;
when C_ISR => return C_IL;
when C_ITA => return C_IT;
when C_JAM => return C_JM;
when C_JPN => return C_JP;
when C_JEY => return C_JE;
when C_JOR => return C_JO;
when C_KAZ => return C_KZ;
when C_KEN => return C_KE;
when C_KIR => return C_KI;
when C_PRK => return C_KP;
when C_KOR => return C_KR;
when C_KWT => return C_KW;
when C_KGZ => return C_KG;
when C_LAO => return C_LA;
when C_LVA => return C_LV;
when C_LBN => return C_LB;
when C_LSO => return C_LS;
when C_LBR => return C_LR;
when C_LBY => return C_LY;
when C_LIE => return C_LI;
when C_LTU => return C_LT;
when C_LUX => return C_LU;
when C_MAC => return C_MO;
when C_MDG => return C_MG;
when C_MWI => return C_MW;
when C_MYS => return C_MY;
when C_MDV => return C_MV;
when C_MLI => return C_ML;
when C_MLT => return C_MT;
when C_MHL => return C_MH;
when C_MTQ => return C_MQ;
when C_MRT => return C_MR;
when C_MUS => return C_MU;
when C_MYT => return C_YT;
when C_MEX => return C_MX;
when C_FSM => return C_FM;
when C_MDA => return C_MD;
when C_MCO => return C_MC;
when C_MNG => return C_MN;
when C_MNE => return C_ME;
when C_MSR => return C_MS;
when C_MAR => return C_MA;
when C_MOZ => return C_MZ;
when C_MMR => return C_MM;
when C_NAM => return C_NA;
when C_NRU => return C_NR;
when C_NPL => return C_NP;
when C_NLD => return C_NL;
when C_NCL => return C_NC;
when C_NZL => return C_NZ;
when C_NIC => return C_NI;
when C_NER => return C_NE;
when C_NGA => return C_NG;
when C_NIU => return C_NU;
when C_NFK => return C_NF;
when C_MKD => return C_MK;
when C_MNP => return C_MP;
when C_NOR => return C_NO;
when C_OMN => return C_OM;
when C_PAK => return C_PK;
when C_PLW => return C_PW;
when C_PSE => return C_PS;
when C_PAN => return C_PA;
when C_PNG => return C_PG;
when C_PRY => return C_PY;
when C_PER => return C_PE;
when C_PHL => return C_PH;
when C_PCN => return C_PN;
when C_POL => return C_PL;
when C_PRT => return C_PT;
when C_PRI => return C_PR;
when C_QAT => return C_QA;
when C_ROU => return C_RO;
when C_RUS => return C_RU;
when C_RWA => return C_RW;
when C_REU => return C_RE;
when C_BLM => return C_BL;
when C_SHN => return C_SH;
when C_KNA => return C_KN;
when C_LCA => return C_LC;
when C_MAF => return C_MF;
when C_SPM => return C_PM;
when C_VCT => return C_VC;
when C_WSM => return C_WS;
when C_SMR => return C_SM;
when C_STP => return C_ST;
when C_SAU => return C_SA;
when C_SEN => return C_SN;
when C_SRB => return C_RS;
when C_SYC => return C_SC;
when C_SLE => return C_SL;
when C_SGP => return C_SG;
when C_SXM => return C_SX;
when C_SVK => return C_SK;
when C_SVN => return C_SI;
when C_SLB => return C_SB;
when C_SOM => return C_SO;
when C_ZAF => return C_ZA;
when C_SGS => return C_GS;
when C_SSD => return C_SS;
when C_ESP => return C_ES;
when C_LKA => return C_LK;
when C_SDN => return C_SD;
when C_SUR => return C_SR;
when C_SJM => return C_SJ;
when C_SWE => return C_SE;
when C_CHE => return C_CH;
when C_SYR => return C_SY;
when C_TWN => return C_TW;
when C_TJK => return C_TJ;
when C_TZA => return C_TZ;
when C_THA => return C_TH;
when C_TLS => return C_TL;
when C_TGO => return C_TG;
when C_TKL => return C_TK;
when C_TON => return C_TO;
when C_TTO => return C_TT;
when C_TUN => return C_TN;
when C_TKM => return C_TM;
when C_TCA => return C_TC;
when C_TUV => return C_TV;
when C_TUR => return C_TR;
when C_UGA => return C_UG;
when C_UKR => return C_UA;
when C_ARE => return C_AE;
when C_GBR => return C_GB;
when C_UMI => return C_UM;
when C_USA => return C_US;
when C_URY => return C_UY;
when C_UZB => return C_UZ;
when C_VUT => return C_VU;
when C_VEN => return C_VE;
when C_VNM => return C_VN;
when C_VGB => return C_VG;
when C_VIR => return C_VI;
when C_WLF => return C_WF;
when C_ESH => return C_EH;
when C_YEM => return C_YE;
when C_ZMB => return C_ZM;
when C_ZWE => return C_ZW;
when C_ALA => return C_AX;
when C_ZZZ => return C_ZZ;
end case;
end Alpha3_To_Key;
-- *** End Lookup table functions ***
end ISO.Countries;
|