Skip to main content

harfrust/hb/
tag_table.rs

1// WARNING: this file was generated by ../../harfbuzz/src/gen-tag-table.py --rust
2
3use read_fonts::types::Tag;
4
5pub(crate) struct LangTag {
6    pub language: [u8; 4],
7    pub tag: Tag,
8}
9
10const fn lang(language: &[u8]) -> [u8; 4] {
11    let mut bytes = [0; 4];
12    let mut i = 0;
13
14    while i < language.len() {
15        bytes[i] = language[i];
16        i += 1;
17    }
18
19    bytes
20}
21
22use super::tag::{lang_matches, strncmp, subtag_matches};
23
24#[rustfmt::skip]
25pub(crate) static OPEN_TYPE_LANGUAGES: &[LangTag] = &[
26    LangTag { language: lang(b"aa"), 	tag: Tag::new(b"AFR ") }, // Afar
27    LangTag { language: lang(b"aae"), 	tag: Tag::new(b"SQI ") }, // Arbëreshë Albanian -> Albanian
28    LangTag { language: lang(b"aao"), 	tag: Tag::new(b"ARA ") }, // Algerian Saharan Arabic -> Arabic
29//  LangTag { language: lang(b"aaq"), 	tag: Tag::new(b"AAQ ") }, // Eastern Abnaki -> Eastern Abenaki
30    LangTag { language: lang(b"aat"), 	tag: Tag::new(b"SQI ") }, // Arvanitika Albanian -> Albanian
31    LangTag { language: lang(b"ab"), 	tag: Tag::new(b"ABK ") }, // Abkhazian
32    LangTag { language: lang(b"aba"), 	tag: Tag::new(&[0; 4]) }, // Abé != Abaza
33    LangTag { language: lang(b"abh"), 	tag: Tag::new(b"ARA ") }, // Tajiki Arabic -> Arabic
34    LangTag { language: lang(b"abq"), 	tag: Tag::new(b"ABA ") }, // Abaza
35    LangTag { language: lang(b"abs"), 	tag: Tag::new(b"CPP ") }, // Ambonese Malay -> Creoles
36    LangTag { language: lang(b"abv"), 	tag: Tag::new(b"ARA ") }, // Baharna Arabic -> Arabic
37    LangTag { language: lang(b"acf"), 	tag: Tag::new(b"FAN ") }, // Saint Lucian Creole French -> French Antillean
38    LangTag { language: lang(b"acf"), 	tag: Tag::new(b"CPP ") }, // Saint Lucian Creole French -> Creoles
39//  LangTag { language: lang(b"ach"), 	tag: Tag::new(b"ACH ") }, // Acoli -> Acholi
40    LangTag { language: lang(b"acm"), 	tag: Tag::new(b"ARA ") }, // Mesopotamian Arabic -> Arabic
41    LangTag { language: lang(b"acq"), 	tag: Tag::new(b"ARA ") }, // Ta'izzi-Adeni Arabic -> Arabic
42    LangTag { language: lang(b"acr"), 	tag: Tag::new(b"ACR ") }, // Achi
43    LangTag { language: lang(b"acr"), 	tag: Tag::new(b"MYN ") }, // Achi -> Mayan
44    LangTag { language: lang(b"acw"), 	tag: Tag::new(b"ARA ") }, // Hijazi Arabic -> Arabic
45    LangTag { language: lang(b"acx"), 	tag: Tag::new(b"ARA ") }, // Omani Arabic -> Arabic
46    LangTag { language: lang(b"acy"), 	tag: Tag::new(b"ACY ") }, // Cypriot Arabic
47    LangTag { language: lang(b"acy"), 	tag: Tag::new(b"ARA ") }, // Cypriot Arabic -> Arabic
48    LangTag { language: lang(b"ada"), 	tag: Tag::new(b"DNG ") }, // Adangme -> Dangme
49    LangTag { language: lang(b"adf"), 	tag: Tag::new(b"ARA ") }, // Dhofari Arabic -> Arabic
50    LangTag { language: lang(b"adp"), 	tag: Tag::new(b"DZN ") }, // Adap (retired code) -> Dzongkha
51//  LangTag { language: lang(b"ady"), 	tag: Tag::new(b"ADY ") }, // Adyghe
52    LangTag { language: lang(b"aeb"), 	tag: Tag::new(b"ARA ") }, // Tunisian Arabic -> Arabic
53    LangTag { language: lang(b"aec"), 	tag: Tag::new(b"ARA ") }, // Saidi Arabic -> Arabic
54    LangTag { language: lang(b"af"), 	tag: Tag::new(b"AFK ") }, // Afrikaans
55    LangTag { language: lang(b"afb"), 	tag: Tag::new(b"ARA ") }, // Gulf Arabic -> Arabic
56    LangTag { language: lang(b"afk"), 	tag: Tag::new(&[0; 4]) }, // Nanubae != Afrikaans
57    LangTag { language: lang(b"afs"), 	tag: Tag::new(b"CPP ") }, // Afro-Seminole Creole -> Creoles
58    LangTag { language: lang(b"agu"), 	tag: Tag::new(b"MYN ") }, // Aguacateco -> Mayan
59    LangTag { language: lang(b"agw"), 	tag: Tag::new(&[0; 4]) }, // Kahua != Agaw
60    LangTag { language: lang(b"ahg"), 	tag: Tag::new(b"AGW ") }, // Qimant -> Agaw
61    LangTag { language: lang(b"aht"), 	tag: Tag::new(b"ATH ") }, // Ahtena -> Athapaskan
62    LangTag { language: lang(b"aig"), 	tag: Tag::new(b"CPP ") }, // Antigua and Barbuda Creole English -> Creoles
63    LangTag { language: lang(b"aii"), 	tag: Tag::new(b"SWA ") }, // Assyrian Neo-Aramaic -> Swadaya Aramaic
64    LangTag { language: lang(b"aii"), 	tag: Tag::new(b"SYR ") }, // Assyrian Neo-Aramaic -> Syriac
65//  LangTag { language: lang(b"aio"), 	tag: Tag::new(b"AIO ") }, // Aiton
66    LangTag { language: lang(b"aiw"), 	tag: Tag::new(b"ARI ") }, // Aari
67    LangTag { language: lang(b"ajp"), 	tag: Tag::new(b"ARA ") }, // South Levantine Arabic (retired code) -> Arabic
68    LangTag { language: lang(b"ajt"), 	tag: Tag::new(b"ARA ") }, // Judeo-Tunisian Arabic (retired code) -> Arabic
69    LangTag { language: lang(b"ak"), 	tag: Tag::new(b"AKA ") }, // Akan [macrolanguage]
70    LangTag { language: lang(b"akb"), 	tag: Tag::new(b"AKB ") }, // Batak Angkola
71    LangTag { language: lang(b"akb"), 	tag: Tag::new(b"BTK ") }, // Batak Angkola -> Batak
72    LangTag { language: lang(b"aln"), 	tag: Tag::new(b"SQI ") }, // Gheg Albanian -> Albanian
73    LangTag { language: lang(b"als"), 	tag: Tag::new(b"SQI ") }, // Tosk Albanian -> Albanian
74//  LangTag { language: lang(b"alt"), 	tag: Tag::new(b"ALT ") }, // Southern Altai -> Altai
75    LangTag { language: lang(b"am"), 	tag: Tag::new(b"AMH ") }, // Amharic
76    LangTag { language: lang(b"amf"), 	tag: Tag::new(b"HBN ") }, // Hamer-Banna -> Hammer-Banna
77    LangTag { language: lang(b"amw"), 	tag: Tag::new(b"SYR ") }, // Western Neo-Aramaic -> Syriac
78    LangTag { language: lang(b"an"), 	tag: Tag::new(b"ARG ") }, // Aragonese
79//  LangTag { language: lang(b"ang"), 	tag: Tag::new(b"ANG ") }, // Old English (ca. 450-1100) -> Anglo-Saxon
80    LangTag { language: lang(b"aoa"), 	tag: Tag::new(b"CPP ") }, // Angolar -> Creoles
81    LangTag { language: lang(b"apa"), 	tag: Tag::new(b"ATH ") }, // Apache [collection] -> Athapaskan
82    LangTag { language: lang(b"apc"), 	tag: Tag::new(b"ARA ") }, // Levantine Arabic -> Arabic
83    LangTag { language: lang(b"apd"), 	tag: Tag::new(b"ARA ") }, // Sudanese Arabic -> Arabic
84    LangTag { language: lang(b"apj"), 	tag: Tag::new(b"ATH ") }, // Jicarilla Apache -> Athapaskan
85    LangTag { language: lang(b"apk"), 	tag: Tag::new(b"ATH ") }, // Kiowa Apache -> Athapaskan
86    LangTag { language: lang(b"apl"), 	tag: Tag::new(b"ATH ") }, // Lipan Apache -> Athapaskan
87    LangTag { language: lang(b"apm"), 	tag: Tag::new(b"ATH ") }, // Mescalero-Chiricahua Apache -> Athapaskan
88    LangTag { language: lang(b"apw"), 	tag: Tag::new(b"ATH ") }, // Western Apache -> Athapaskan
89    LangTag { language: lang(b"ar"), 	tag: Tag::new(b"ARA ") }, // Arabic [macrolanguage]
90    LangTag { language: lang(b"arb"), 	tag: Tag::new(b"ARA ") }, // Standard Arabic -> Arabic
91    LangTag { language: lang(b"ari"), 	tag: Tag::new(&[0; 4]) }, // Arikara != Aari
92    LangTag { language: lang(b"ark"), 	tag: Tag::new(&[0; 4]) }, // Arikapú != Rakhine
93    LangTag { language: lang(b"arn"), 	tag: Tag::new(b"MAP ") }, // Mapudungun
94    LangTag { language: lang(b"arq"), 	tag: Tag::new(b"ARA ") }, // Algerian Arabic -> Arabic
95    LangTag { language: lang(b"ars"), 	tag: Tag::new(b"ARA ") }, // Najdi Arabic -> Arabic
96    LangTag { language: lang(b"ary"), 	tag: Tag::new(b"MOR ") }, // Moroccan Arabic -> Moroccan
97    LangTag { language: lang(b"ary"), 	tag: Tag::new(b"ARA ") }, // Moroccan Arabic -> Arabic
98    LangTag { language: lang(b"arz"), 	tag: Tag::new(b"ARA ") }, // Egyptian Arabic -> Arabic
99    LangTag { language: lang(b"as"), 	tag: Tag::new(b"ASM ") }, // Assamese
100//  LangTag { language: lang(b"ast"), 	tag: Tag::new(b"AST ") }, // Asturian
101//  LangTag { language: lang(b"ath"), 	tag: Tag::new(b"ATH ") }, // Athapascan [collection] -> Athapaskan
102    LangTag { language: lang(b"atj"), 	tag: Tag::new(b"RCR ") }, // Atikamekw -> R-Cree
103//  LangTag { language: lang(b"ats"), 	tag: Tag::new(b"ATS ") }, // Gros Ventre (Atsina)
104    LangTag { language: lang(b"atv"), 	tag: Tag::new(b"ALT ") }, // Northern Altai -> Altai
105    LangTag { language: lang(b"auj"), 	tag: Tag::new(b"BBR ") }, // Awjilah -> Berber
106    LangTag { language: lang(b"auz"), 	tag: Tag::new(b"ARA ") }, // Uzbeki Arabic -> Arabic
107    LangTag { language: lang(b"av"), 	tag: Tag::new(b"AVR ") }, // Avaric -> Avar
108    LangTag { language: lang(b"avl"), 	tag: Tag::new(b"ARA ") }, // Eastern Egyptian Bedawi Arabic -> Arabic
109//  LangTag { language: lang(b"avn"), 	tag: Tag::new(b"AVN ") }, // Avatime
110//  LangTag { language: lang(b"awa"), 	tag: Tag::new(b"AWA ") }, // Awadhi
111    LangTag { language: lang(b"ay"), 	tag: Tag::new(b"AYM ") }, // Aymara [macrolanguage]
112    LangTag { language: lang(b"ayc"), 	tag: Tag::new(b"AYM ") }, // Southern Aymara -> Aymara
113    LangTag { language: lang(b"ayh"), 	tag: Tag::new(b"ARA ") }, // Hadrami Arabic -> Arabic
114    LangTag { language: lang(b"ayl"), 	tag: Tag::new(b"ARA ") }, // Libyan Arabic -> Arabic
115    LangTag { language: lang(b"ayn"), 	tag: Tag::new(b"ARA ") }, // Sanaani Arabic -> Arabic
116    LangTag { language: lang(b"ayp"), 	tag: Tag::new(b"ARA ") }, // North Mesopotamian Arabic -> Arabic
117    LangTag { language: lang(b"ayr"), 	tag: Tag::new(b"AYM ") }, // Central Aymara -> Aymara
118    LangTag { language: lang(b"az"), 	tag: Tag::new(b"AZE ") }, // Azerbaijani [macrolanguage]
119    LangTag { language: lang(b"azb"), 	tag: Tag::new(b"AZB ") }, // South Azerbaijani -> Torki
120    LangTag { language: lang(b"azb"), 	tag: Tag::new(b"AZE ") }, // South Azerbaijani -> Azerbaijani
121    LangTag { language: lang(b"azd"), 	tag: Tag::new(b"NAH ") }, // Eastern Durango Nahuatl -> Nahuatl
122    LangTag { language: lang(b"azj"), 	tag: Tag::new(b"AZE ") }, // North Azerbaijani -> Azerbaijani
123    LangTag { language: lang(b"azn"), 	tag: Tag::new(b"NAH ") }, // Western Durango Nahuatl -> Nahuatl
124    LangTag { language: lang(b"azz"), 	tag: Tag::new(b"NAH ") }, // Highland Puebla Nahuatl -> Nahuatl
125    LangTag { language: lang(b"ba"), 	tag: Tag::new(b"BSH ") }, // Bashkir
126    LangTag { language: lang(b"bad"), 	tag: Tag::new(b"BAD0") }, // Banda [collection]
127    LangTag { language: lang(b"bag"), 	tag: Tag::new(&[0; 4]) }, // Tuki != Baghelkhandi
128    LangTag { language: lang(b"bah"), 	tag: Tag::new(b"CPP ") }, // Bahamas Creole English -> Creoles
129    LangTag { language: lang(b"bai"), 	tag: Tag::new(b"BML ") }, // Bamileke [collection]
130    LangTag { language: lang(b"bal"), 	tag: Tag::new(b"BLI ") }, // Baluchi [macrolanguage]
131//  LangTag { language: lang(b"ban"), 	tag: Tag::new(b"BAN ") }, // Balinese
132//  LangTag { language: lang(b"bar"), 	tag: Tag::new(b"BAR ") }, // Bavarian
133    LangTag { language: lang(b"bau"), 	tag: Tag::new(&[0; 4]) }, // Bada (Nigeria) != Baulé
134    LangTag { language: lang(b"bbc"), 	tag: Tag::new(b"BBC ") }, // Batak Toba
135    LangTag { language: lang(b"bbc"), 	tag: Tag::new(b"BTK ") }, // Batak Toba -> Batak
136    LangTag { language: lang(b"bbj"), 	tag: Tag::new(b"BML ") }, // Ghomálá' -> Bamileke
137    LangTag { language: lang(b"bbp"), 	tag: Tag::new(b"BAD0") }, // West Central Banda -> Banda
138    LangTag { language: lang(b"bbr"), 	tag: Tag::new(&[0; 4]) }, // Girawa != Berber
139    LangTag { language: lang(b"bbz"), 	tag: Tag::new(b"ARA ") }, // Babalia Creole Arabic (retired code) -> Arabic
140    LangTag { language: lang(b"bcc"), 	tag: Tag::new(b"BLI ") }, // Southern Balochi -> Baluchi
141    LangTag { language: lang(b"bch"), 	tag: Tag::new(&[0; 4]) }, // Bariai != Bench
142    LangTag { language: lang(b"bci"), 	tag: Tag::new(b"BAU ") }, // Baoulé -> Baulé
143    LangTag { language: lang(b"bcl"), 	tag: Tag::new(b"BIK ") }, // Central Bikol -> Bikol
144    LangTag { language: lang(b"bcq"), 	tag: Tag::new(b"BCH ") }, // Bench
145    LangTag { language: lang(b"bcr"), 	tag: Tag::new(b"ATH ") }, // Babine -> Athapaskan
146//  LangTag { language: lang(b"bdc"), 	tag: Tag::new(b"BDC ") }, // Emberá-Baudó
147//  LangTag { language: lang(b"bdy"), 	tag: Tag::new(b"BDY ") }, // Bandjalang
148    LangTag { language: lang(b"be"), 	tag: Tag::new(b"BEL ") }, // Belarusian
149    LangTag { language: lang(b"bea"), 	tag: Tag::new(b"ATH ") }, // Beaver -> Athapaskan
150    LangTag { language: lang(b"beb"), 	tag: Tag::new(b"BTI ") }, // Bebele -> Beti
151//  LangTag { language: lang(b"bem"), 	tag: Tag::new(b"BEM ") }, // Bemba (Zambia)
152    LangTag { language: lang(b"ber"), 	tag: Tag::new(b"BBR ") }, // Berber [collection]
153    LangTag { language: lang(b"bew"), 	tag: Tag::new(b"CPP ") }, // Betawi -> Creoles
154    LangTag { language: lang(b"bfl"), 	tag: Tag::new(b"BAD0") }, // Banda-Ndélé -> Banda
155    LangTag { language: lang(b"bfq"), 	tag: Tag::new(b"BAD ") }, // Badaga
156    LangTag { language: lang(b"bft"), 	tag: Tag::new(b"BLT ") }, // Balti
157    LangTag { language: lang(b"bfu"), 	tag: Tag::new(b"LAH ") }, // Gahri -> Lahuli
158    LangTag { language: lang(b"bfy"), 	tag: Tag::new(b"BAG ") }, // Bagheli -> Baghelkhandi
159    LangTag { language: lang(b"bg"), 	tag: Tag::new(b"BGR ") }, // Bulgarian
160//  LangTag { language: lang(b"bgc"), 	tag: Tag::new(b"BGC ") }, // Haryanvi
161    LangTag { language: lang(b"bgn"), 	tag: Tag::new(b"BLI ") }, // Western Balochi -> Baluchi
162    LangTag { language: lang(b"bgp"), 	tag: Tag::new(b"BLI ") }, // Eastern Balochi -> Baluchi
163    LangTag { language: lang(b"bgq"), 	tag: Tag::new(b"BGQ ") }, // Bagri
164    LangTag { language: lang(b"bgq"), 	tag: Tag::new(b"RAJ ") }, // Bagri -> Rajasthani
165    LangTag { language: lang(b"bgr"), 	tag: Tag::new(b"QIN ") }, // Bawm Chin -> Chin
166    LangTag { language: lang(b"bhb"), 	tag: Tag::new(b"BHI ") }, // Bhili
167//  LangTag { language: lang(b"bhi"), 	tag: Tag::new(b"BHI ") }, // Bhilali -> Bhili
168    LangTag { language: lang(b"bhk"), 	tag: Tag::new(b"BIK ") }, // Albay Bicolano (retired code) -> Bikol
169//  LangTag { language: lang(b"bho"), 	tag: Tag::new(b"BHO ") }, // Bhojpuri
170    LangTag { language: lang(b"bhr"), 	tag: Tag::new(b"MLG ") }, // Bara Malagasy -> Malagasy
171    LangTag { language: lang(b"bi"), 	tag: Tag::new(b"BIS ") }, // Bislama
172    LangTag { language: lang(b"bi"), 	tag: Tag::new(b"CPP ") }, // Bislama -> Creoles
173//  LangTag { language: lang(b"bik"), 	tag: Tag::new(b"BIK ") }, // Bikol [macrolanguage]
174    LangTag { language: lang(b"bil"), 	tag: Tag::new(&[0; 4]) }, // Bile != Bilen
175    LangTag { language: lang(b"bin"), 	tag: Tag::new(b"EDO ") }, // Edo
176    LangTag { language: lang(b"biu"), 	tag: Tag::new(b"QIN ") }, // Biete -> Chin
177//  LangTag { language: lang(b"bjj"), 	tag: Tag::new(b"BJJ ") }, // Kanauji
178    LangTag { language: lang(b"bjn"), 	tag: Tag::new(b"MLY ") }, // Banjar -> Malay
179    LangTag { language: lang(b"bjo"), 	tag: Tag::new(b"BAD0") }, // Mid-Southern Banda -> Banda
180    LangTag { language: lang(b"bjq"), 	tag: Tag::new(b"MLG ") }, // Southern Betsimisaraka Malagasy (retired code) -> Malagasy
181    LangTag { language: lang(b"bjs"), 	tag: Tag::new(b"CPP ") }, // Bajan -> Creoles
182    LangTag { language: lang(b"bjt"), 	tag: Tag::new(b"BLN ") }, // Balanta-Ganja -> Balante
183    LangTag { language: lang(b"bkf"), 	tag: Tag::new(&[0; 4]) }, // Beeke != Blackfoot
184    LangTag { language: lang(b"bko"), 	tag: Tag::new(b"BML ") }, // Kwa' -> Bamileke
185    LangTag { language: lang(b"bla"), 	tag: Tag::new(b"BKF ") }, // Siksika -> Blackfoot
186    LangTag { language: lang(b"ble"), 	tag: Tag::new(b"BLN ") }, // Balanta-Kentohe -> Balante
187    LangTag { language: lang(b"blg"), 	tag: Tag::new(b"IBA ") }, // Balau (retired code) -> Iban
188    LangTag { language: lang(b"bli"), 	tag: Tag::new(&[0; 4]) }, // Bolia != Baluchi
189    LangTag { language: lang(b"blk"), 	tag: Tag::new(b"BLK ") }, // Pa’o Karen
190    LangTag { language: lang(b"blk"), 	tag: Tag::new(b"KRN ") }, // Pa'o Karen -> Karen
191    LangTag { language: lang(b"bln"), 	tag: Tag::new(b"BIK ") }, // Southern Catanduanes Bikol -> Bikol
192    LangTag { language: lang(b"blt"), 	tag: Tag::new(&[0; 4]) }, // Tai Dam != Balti
193    LangTag { language: lang(b"bm"), 	tag: Tag::new(b"BMB ") }, // Bambara (Bamanankan)
194    LangTag { language: lang(b"bmb"), 	tag: Tag::new(&[0; 4]) }, // Bembe != Bambara (Bamanankan)
195    LangTag { language: lang(b"bml"), 	tag: Tag::new(&[0; 4]) }, // Bomboli != Bamileke
196    LangTag { language: lang(b"bmm"), 	tag: Tag::new(b"MLG ") }, // Northern Betsimisaraka Malagasy -> Malagasy
197    LangTag { language: lang(b"bn"), 	tag: Tag::new(b"BEN ") }, // Bangla
198    LangTag { language: lang(b"bo"), 	tag: Tag::new(b"TIB ") }, // Tibetan
199    LangTag { language: lang(b"bpd"), 	tag: Tag::new(b"BAD0") }, // Banda-Banda -> Banda
200    LangTag { language: lang(b"bpl"), 	tag: Tag::new(b"CPP ") }, // Broome Pearling Lugger Pidgin -> Creoles
201    LangTag { language: lang(b"bpq"), 	tag: Tag::new(b"CPP ") }, // Banda Malay -> Creoles
202//  LangTag { language: lang(b"bpy"), 	tag: Tag::new(b"BPY ") }, // Bishnupriya -> Bishnupriya Manipuri
203    LangTag { language: lang(b"bqi"), 	tag: Tag::new(b"LRC ") }, // Bakhtiari -> Luri
204    LangTag { language: lang(b"bqk"), 	tag: Tag::new(b"BAD0") }, // Banda-Mbrès -> Banda
205    LangTag { language: lang(b"br"), 	tag: Tag::new(b"BRE ") }, // Breton
206    LangTag { language: lang(b"bra"), 	tag: Tag::new(b"BRI ") }, // Braj -> Braj Bhasha
207    LangTag { language: lang(b"brc"), 	tag: Tag::new(b"CPP ") }, // Berbice Creole Dutch -> Creoles
208//  LangTag { language: lang(b"brh"), 	tag: Tag::new(b"BRH ") }, // Brahui
209    LangTag { language: lang(b"bri"), 	tag: Tag::new(&[0; 4]) }, // Mokpwe != Braj Bhasha
210    LangTag { language: lang(b"brm"), 	tag: Tag::new(&[0; 4]) }, // Barambu != Burmese
211//  LangTag { language: lang(b"brx"), 	tag: Tag::new(b"BRX ") }, // Bodo (India)
212    LangTag { language: lang(b"bs"), 	tag: Tag::new(b"BOS ") }, // Bosnian
213    LangTag { language: lang(b"bsh"), 	tag: Tag::new(&[0; 4]) }, // Kati != Bashkir
214//  LangTag { language: lang(b"bsk"), 	tag: Tag::new(b"BSK ") }, // Burushaski
215    LangTag { language: lang(b"btb"), 	tag: Tag::new(b"BTI ") }, // Beti (Cameroon) (retired code)
216    LangTag { language: lang(b"btd"), 	tag: Tag::new(b"BTD ") }, // Batak Dairi (Pakpak)
217    LangTag { language: lang(b"btd"), 	tag: Tag::new(b"BTK ") }, // Batak Dairi -> Batak
218    LangTag { language: lang(b"bti"), 	tag: Tag::new(&[0; 4]) }, // Burate != Beti
219    LangTag { language: lang(b"btj"), 	tag: Tag::new(b"MLY ") }, // Bacanese Malay -> Malay
220//  LangTag { language: lang(b"btk"), 	tag: Tag::new(b"BTK ") }, // Batak [collection]
221    LangTag { language: lang(b"btm"), 	tag: Tag::new(b"BTM ") }, // Batak Mandailing
222    LangTag { language: lang(b"btm"), 	tag: Tag::new(b"BTK ") }, // Batak Mandailing -> Batak
223    LangTag { language: lang(b"bto"), 	tag: Tag::new(b"BIK ") }, // Rinconada Bikol -> Bikol
224    LangTag { language: lang(b"bts"), 	tag: Tag::new(b"BTS ") }, // Batak Simalungun
225    LangTag { language: lang(b"bts"), 	tag: Tag::new(b"BTK ") }, // Batak Simalungun -> Batak
226    LangTag { language: lang(b"btx"), 	tag: Tag::new(b"BTX ") }, // Batak Karo
227    LangTag { language: lang(b"btx"), 	tag: Tag::new(b"BTK ") }, // Batak Karo -> Batak
228    LangTag { language: lang(b"btz"), 	tag: Tag::new(b"BTZ ") }, // Batak Alas-Kluet
229    LangTag { language: lang(b"btz"), 	tag: Tag::new(b"BTK ") }, // Batak Alas-Kluet -> Batak
230//  LangTag { language: lang(b"bug"), 	tag: Tag::new(b"BUG ") }, // Buginese -> Bugis
231    LangTag { language: lang(b"bum"), 	tag: Tag::new(b"BTI ") }, // Bulu (Cameroon) -> Beti
232    LangTag { language: lang(b"bve"), 	tag: Tag::new(b"MLY ") }, // Berau Malay -> Malay
233    LangTag { language: lang(b"bvu"), 	tag: Tag::new(b"MLY ") }, // Bukit Malay -> Malay
234    LangTag { language: lang(b"bwe"), 	tag: Tag::new(b"KRN ") }, // Bwe Karen -> Karen
235    LangTag { language: lang(b"bxk"), 	tag: Tag::new(b"LUH ") }, // Bukusu -> Luyia
236    LangTag { language: lang(b"bxo"), 	tag: Tag::new(b"CPP ") }, // Barikanchi -> Creoles
237    LangTag { language: lang(b"bxp"), 	tag: Tag::new(b"BTI ") }, // Bebil -> Beti
238    LangTag { language: lang(b"bxr"), 	tag: Tag::new(b"RBU ") }, // Russia Buriat -> Russian Buriat
239    LangTag { language: lang(b"byn"), 	tag: Tag::new(b"BIL ") }, // Bilin -> Bilen
240    LangTag { language: lang(b"byv"), 	tag: Tag::new(b"BYV ") }, // Medumba
241    LangTag { language: lang(b"byv"), 	tag: Tag::new(b"BML ") }, // Medumba -> Bamileke
242    LangTag { language: lang(b"bzc"), 	tag: Tag::new(b"MLG ") }, // Southern Betsimisaraka Malagasy -> Malagasy
243    LangTag { language: lang(b"bzj"), 	tag: Tag::new(b"CPP ") }, // Belize Kriol English -> Creoles
244    LangTag { language: lang(b"bzk"), 	tag: Tag::new(b"CPP ") }, // Nicaragua Creole English -> Creoles
245    LangTag { language: lang(b"ca"), 	tag: Tag::new(b"CAT ") }, // Catalan
246    LangTag { language: lang(b"caa"), 	tag: Tag::new(b"MYN ") }, // Chortí -> Mayan
247    LangTag { language: lang(b"cac"), 	tag: Tag::new(b"MYN ") }, // Chuj -> Mayan
248    LangTag { language: lang(b"caf"), 	tag: Tag::new(b"CRR ") }, // Southern Carrier -> Carrier
249    LangTag { language: lang(b"caf"), 	tag: Tag::new(b"ATH ") }, // Southern Carrier -> Athapaskan
250    LangTag { language: lang(b"cak"), 	tag: Tag::new(b"CAK ") }, // Kaqchikel
251    LangTag { language: lang(b"cak"), 	tag: Tag::new(b"MYN ") }, // Kaqchikel -> Mayan
252//  LangTag { language: lang(b"cay"), 	tag: Tag::new(b"CAY ") }, // Cayuga
253//  LangTag { language: lang(b"cbg"), 	tag: Tag::new(b"CBG ") }, // Chimila
254    LangTag { language: lang(b"cbk"), 	tag: Tag::new(b"CBK ") }, // Chavacano -> Zamboanga Chavacano
255    LangTag { language: lang(b"cbk"), 	tag: Tag::new(b"CPP ") }, // Chavacano -> Creoles
256    LangTag { language: lang(b"cbl"), 	tag: Tag::new(b"QIN ") }, // Bualkhaw Chin -> Chin
257    LangTag { language: lang(b"ccl"), 	tag: Tag::new(b"CPP ") }, // Cutchi-Swahili -> Creoles
258    LangTag { language: lang(b"ccm"), 	tag: Tag::new(b"CPP ") }, // Malaccan Creole Malay -> Creoles
259    LangTag { language: lang(b"cco"), 	tag: Tag::new(b"CCHN") }, // Comaltepec Chinantec -> Chinantec
260    LangTag { language: lang(b"ccq"), 	tag: Tag::new(b"ARK ") }, // Chaungtha (retired code) -> Rakhine
261    LangTag { language: lang(b"cdo"), 	tag: Tag::new(b"ZHS ") }, // Min Dong Chinese -> Chinese, Simplified
262    LangTag { language: lang(b"ce"), 	tag: Tag::new(b"CHE ") }, // Chechen
263//  LangTag { language: lang(b"ceb"), 	tag: Tag::new(b"CEB ") }, // Cebuano
264    LangTag { language: lang(b"cek"), 	tag: Tag::new(b"QIN ") }, // Eastern Khumi Chin -> Chin
265    LangTag { language: lang(b"cey"), 	tag: Tag::new(b"QIN ") }, // Ekai Chin -> Chin
266    LangTag { language: lang(b"cfm"), 	tag: Tag::new(b"HAL ") }, // Halam (Falam Chin)
267    LangTag { language: lang(b"cfm"), 	tag: Tag::new(b"QIN ") }, // Falam Chin -> Chin
268//  LangTag { language: lang(b"cgg"), 	tag: Tag::new(b"CGG ") }, // Chiga
269    LangTag { language: lang(b"ch"), 	tag: Tag::new(b"CHA ") }, // Chamorro
270    LangTag { language: lang(b"chf"), 	tag: Tag::new(b"MYN ") }, // Tabasco Chontal -> Mayan
271    LangTag { language: lang(b"chg"), 	tag: Tag::new(&[0; 4]) }, // Chagatai != Chaha Gurage
272    LangTag { language: lang(b"chh"), 	tag: Tag::new(&[0; 4]) }, // Chinook != Chattisgarhi
273    LangTag { language: lang(b"chj"), 	tag: Tag::new(b"CCHN") }, // Ojitlán Chinantec -> Chinantec
274    LangTag { language: lang(b"chk"), 	tag: Tag::new(b"CHK0") }, // Chuukese
275    LangTag { language: lang(b"chm"), 	tag: Tag::new(b"HMA ") }, // Mari (Russia) [macrolanguage] -> High Mari
276    LangTag { language: lang(b"chm"), 	tag: Tag::new(b"LMA ") }, // Mari (Russia) [macrolanguage] -> Low Mari
277    LangTag { language: lang(b"chn"), 	tag: Tag::new(b"CPP ") }, // Chinook jargon -> Creoles
278//  LangTag { language: lang(b"cho"), 	tag: Tag::new(b"CHO ") }, // Choctaw
279    LangTag { language: lang(b"chp"), 	tag: Tag::new(b"CHP ") }, // Chipewyan
280    LangTag { language: lang(b"chp"), 	tag: Tag::new(b"SAY ") }, // Chipewyan -> Sayisi
281    LangTag { language: lang(b"chp"), 	tag: Tag::new(b"ATH ") }, // Chipewyan -> Athapaskan
282    LangTag { language: lang(b"chq"), 	tag: Tag::new(b"CCHN") }, // Quiotepec Chinantec -> Chinantec
283//  LangTag { language: lang(b"chr"), 	tag: Tag::new(b"CHR ") }, // Cherokee
284//  LangTag { language: lang(b"chy"), 	tag: Tag::new(b"CHY ") }, // Cheyenne
285    LangTag { language: lang(b"chz"), 	tag: Tag::new(b"CCHN") }, // Ozumacín Chinantec -> Chinantec
286    LangTag { language: lang(b"ciw"), 	tag: Tag::new(b"OJB ") }, // Chippewa -> Ojibway
287//  LangTag { language: lang(b"cja"), 	tag: Tag::new(b"CJA ") }, // Western Cham
288//  LangTag { language: lang(b"cjm"), 	tag: Tag::new(b"CJM ") }, // Eastern Cham
289    LangTag { language: lang(b"cjy"), 	tag: Tag::new(b"ZHS ") }, // Jinyu Chinese -> Chinese, Simplified
290    LangTag { language: lang(b"cka"), 	tag: Tag::new(b"QIN ") }, // Khumi Awa Chin (retired code) -> Chin
291    LangTag { language: lang(b"ckb"), 	tag: Tag::new(b"KUR ") }, // Central Kurdish -> Kurdish
292    LangTag { language: lang(b"ckn"), 	tag: Tag::new(b"QIN ") }, // Kaang Chin -> Chin
293    LangTag { language: lang(b"cks"), 	tag: Tag::new(b"CPP ") }, // Tayo -> Creoles
294    LangTag { language: lang(b"ckt"), 	tag: Tag::new(b"CHK ") }, // Chukot -> Chukchi
295    LangTag { language: lang(b"ckz"), 	tag: Tag::new(b"MYN ") }, // Cakchiquel-Quiché Mixed Language -> Mayan
296    LangTag { language: lang(b"clc"), 	tag: Tag::new(b"ATH ") }, // Chilcotin -> Athapaskan
297    LangTag { language: lang(b"cld"), 	tag: Tag::new(b"SYR ") }, // Chaldean Neo-Aramaic -> Syriac
298    LangTag { language: lang(b"cle"), 	tag: Tag::new(b"CCHN") }, // Lealao Chinantec -> Chinantec
299    LangTag { language: lang(b"clj"), 	tag: Tag::new(b"QIN ") }, // Laitu Chin -> Chin
300    LangTag { language: lang(b"cls"), 	tag: Tag::new(b"SAN ") }, // Classical Sanskrit -> Sanskrit
301    LangTag { language: lang(b"clt"), 	tag: Tag::new(b"QIN ") }, // Lautu Chin -> Chin
302//  LangTag { language: lang(b"cmi"), 	tag: Tag::new(b"CMI ") }, // Emberá-Chamí
303    LangTag { language: lang(b"cmn"), 	tag: Tag::new(b"ZHS ") }, // Mandarin Chinese -> Chinese, Simplified
304    LangTag { language: lang(b"cmr"), 	tag: Tag::new(b"QIN ") }, // Mro-Khimi Chin -> Chin
305    LangTag { language: lang(b"cnb"), 	tag: Tag::new(b"QIN ") }, // Chinbon Chin -> Chin
306    LangTag { language: lang(b"cnh"), 	tag: Tag::new(b"QIN ") }, // Hakha Chin -> Chin
307    LangTag { language: lang(b"cnk"), 	tag: Tag::new(b"QIN ") }, // Khumi Chin -> Chin
308    LangTag { language: lang(b"cnl"), 	tag: Tag::new(b"CCHN") }, // Lalana Chinantec -> Chinantec
309    LangTag { language: lang(b"cnp"), 	tag: Tag::new(b"ZHS ") }, // Northern Ping Chinese -> Chinese, Simplified
310    LangTag { language: lang(b"cnr"), 	tag: Tag::new(b"SRB ") }, // Montenegrin -> Serbian
311    LangTag { language: lang(b"cnt"), 	tag: Tag::new(b"CCHN") }, // Tepetotutla Chinantec -> Chinantec
312    LangTag { language: lang(b"cnu"), 	tag: Tag::new(b"BBR ") }, // Chenoua -> Berber
313    LangTag { language: lang(b"cnw"), 	tag: Tag::new(b"QIN ") }, // Ngawn Chin -> Chin
314    LangTag { language: lang(b"co"), 	tag: Tag::new(b"COS ") }, // Corsican
315    LangTag { language: lang(b"coa"), 	tag: Tag::new(b"MLY ") }, // Cocos Islands Malay -> Malay
316    LangTag { language: lang(b"cob"), 	tag: Tag::new(b"MYN ") }, // Chicomuceltec -> Mayan
317//  LangTag { language: lang(b"coo"), 	tag: Tag::new(b"COO ") }, // Comox
318//  LangTag { language: lang(b"cop"), 	tag: Tag::new(b"COP ") }, // Coptic
319    LangTag { language: lang(b"coq"), 	tag: Tag::new(b"ATH ") }, // Coquille -> Athapaskan
320    LangTag { language: lang(b"cpa"), 	tag: Tag::new(b"CCHN") }, // Palantla Chinantec -> Chinantec
321    LangTag { language: lang(b"cpe"), 	tag: Tag::new(b"CPP ") }, // English-based creoles and pidgins [collection] -> Creoles
322    LangTag { language: lang(b"cpf"), 	tag: Tag::new(b"CPP ") }, // French-based creoles and pidgins [collection] -> Creoles
323    LangTag { language: lang(b"cpi"), 	tag: Tag::new(b"CPP ") }, // Chinese Pidgin English -> Creoles
324//  LangTag { language: lang(b"cpp"), 	tag: Tag::new(b"CPP ") }, // Portuguese-based creoles and pidgins [collection] -> Creoles
325    LangTag { language: lang(b"cpx"), 	tag: Tag::new(b"ZHS ") }, // Pu-Xian Chinese -> Chinese, Simplified
326    LangTag { language: lang(b"cqd"), 	tag: Tag::new(b"HMN ") }, // Chuanqiandian Cluster Miao -> Hmong
327    LangTag { language: lang(b"cqu"), 	tag: Tag::new(b"QUH ") }, // Chilean Quechua (retired code) -> Quechua (Bolivia)
328    LangTag { language: lang(b"cqu"), 	tag: Tag::new(b"QUZ ") }, // Chilean Quechua (retired code) -> Quechua
329    LangTag { language: lang(b"cr"), 	tag: Tag::new(b"CRE ") }, // Cree [macrolanguage]
330    LangTag { language: lang(b"crh"), 	tag: Tag::new(b"CRT ") }, // Crimean Tatar
331    LangTag { language: lang(b"cri"), 	tag: Tag::new(b"CPP ") }, // Sãotomense -> Creoles
332    LangTag { language: lang(b"crj"), 	tag: Tag::new(b"ECR ") }, // Southern East Cree -> Eastern Cree
333    LangTag { language: lang(b"crj"), 	tag: Tag::new(b"YCR ") }, // Southern East Cree -> Y-Cree
334    LangTag { language: lang(b"crj"), 	tag: Tag::new(b"CRE ") }, // Southern East Cree -> Cree
335    LangTag { language: lang(b"crk"), 	tag: Tag::new(b"WCR ") }, // Plains Cree -> West-Cree
336    LangTag { language: lang(b"crk"), 	tag: Tag::new(b"YCR ") }, // Plains Cree -> Y-Cree
337    LangTag { language: lang(b"crk"), 	tag: Tag::new(b"CRE ") }, // Plains Cree -> Cree
338    LangTag { language: lang(b"crl"), 	tag: Tag::new(b"ECR ") }, // Northern East Cree -> Eastern Cree
339    LangTag { language: lang(b"crl"), 	tag: Tag::new(b"YCR ") }, // Northern East Cree -> Y-Cree
340    LangTag { language: lang(b"crl"), 	tag: Tag::new(b"CRE ") }, // Northern East Cree -> Cree
341    LangTag { language: lang(b"crm"), 	tag: Tag::new(b"MCR ") }, // Moose Cree
342    LangTag { language: lang(b"crm"), 	tag: Tag::new(b"LCR ") }, // Moose Cree -> L-Cree
343    LangTag { language: lang(b"crm"), 	tag: Tag::new(b"CRE ") }, // Moose Cree -> Cree
344    LangTag { language: lang(b"crp"), 	tag: Tag::new(b"CPP ") }, // Creoles and pidgins [collection] -> Creoles
345    LangTag { language: lang(b"crr"), 	tag: Tag::new(&[0; 4]) }, // Carolina Algonquian != Carrier
346    LangTag { language: lang(b"crs"), 	tag: Tag::new(b"CPP ") }, // Seselwa Creole French -> Creoles
347    LangTag { language: lang(b"crt"), 	tag: Tag::new(&[0; 4]) }, // Iyojwa'ja Chorote != Crimean Tatar
348    LangTag { language: lang(b"crx"), 	tag: Tag::new(b"CRR ") }, // Carrier
349    LangTag { language: lang(b"crx"), 	tag: Tag::new(b"ATH ") }, // Carrier -> Athapaskan
350    LangTag { language: lang(b"cs"), 	tag: Tag::new(b"CSY ") }, // Czech
351    LangTag { language: lang(b"csa"), 	tag: Tag::new(b"CCHN") }, // Chiltepec Chinantec -> Chinantec
352//  LangTag { language: lang(b"csb"), 	tag: Tag::new(b"CSB ") }, // Kashubian
353    LangTag { language: lang(b"csh"), 	tag: Tag::new(b"QIN ") }, // Asho Chin -> Chin
354    LangTag { language: lang(b"csj"), 	tag: Tag::new(b"QIN ") }, // Songlai Chin -> Chin
355    LangTag { language: lang(b"csl"), 	tag: Tag::new(&[0; 4]) }, // Chinese Sign Language != Church Slavonic
356    LangTag { language: lang(b"cso"), 	tag: Tag::new(b"CCHN") }, // Sochiapam Chinantec -> Chinantec
357    LangTag { language: lang(b"csp"), 	tag: Tag::new(b"ZHS ") }, // Southern Ping Chinese -> Chinese, Simplified
358    LangTag { language: lang(b"csv"), 	tag: Tag::new(b"QIN ") }, // Sumtu Chin -> Chin
359    LangTag { language: lang(b"csw"), 	tag: Tag::new(b"NCR ") }, // Swampy Cree -> N-Cree
360    LangTag { language: lang(b"csw"), 	tag: Tag::new(b"NHC ") }, // Swampy Cree -> Norway House Cree
361    LangTag { language: lang(b"csw"), 	tag: Tag::new(b"CRE ") }, // Swampy Cree -> Cree
362    LangTag { language: lang(b"csy"), 	tag: Tag::new(b"QIN ") }, // Siyin Chin -> Chin
363    LangTag { language: lang(b"ctc"), 	tag: Tag::new(b"ATH ") }, // Chetco -> Athapaskan
364    LangTag { language: lang(b"ctd"), 	tag: Tag::new(b"QIN ") }, // Tedim Chin -> Chin
365    LangTag { language: lang(b"cte"), 	tag: Tag::new(b"CCHN") }, // Tepinapa Chinantec -> Chinantec
366//  LangTag { language: lang(b"ctg"), 	tag: Tag::new(b"CTG ") }, // Chittagonian
367    LangTag { language: lang(b"cth"), 	tag: Tag::new(b"QIN ") }, // Thaiphum Chin -> Chin
368    LangTag { language: lang(b"ctl"), 	tag: Tag::new(b"CCHN") }, // Tlacoatzintepec Chinantec -> Chinantec
369//  LangTag { language: lang(b"cto"), 	tag: Tag::new(b"CTO ") }, // Emberá-Catío
370    LangTag { language: lang(b"cts"), 	tag: Tag::new(b"BIK ") }, // Northern Catanduanes Bikol -> Bikol
371//  LangTag { language: lang(b"ctt"), 	tag: Tag::new(b"CTT ") }, // Wayanad Chetti
372    LangTag { language: lang(b"ctu"), 	tag: Tag::new(b"MYN ") }, // Chol -> Mayan
373    LangTag { language: lang(b"cu"), 	tag: Tag::new(b"CSL ") }, // Church Slavonic
374    LangTag { language: lang(b"cuc"), 	tag: Tag::new(b"CCHN") }, // Usila Chinantec -> Chinantec
375//  LangTag { language: lang(b"cuk"), 	tag: Tag::new(b"CUK ") }, // San Blas Kuna
376    LangTag { language: lang(b"cv"), 	tag: Tag::new(b"CHU ") }, // Chuvash
377    LangTag { language: lang(b"cvn"), 	tag: Tag::new(b"CCHN") }, // Valle Nacional Chinantec -> Chinantec
378    LangTag { language: lang(b"cwd"), 	tag: Tag::new(b"DCR ") }, // Woods Cree
379    LangTag { language: lang(b"cwd"), 	tag: Tag::new(b"TCR ") }, // Woods Cree -> TH-Cree
380    LangTag { language: lang(b"cwd"), 	tag: Tag::new(b"CRE ") }, // Woods Cree -> Cree
381    LangTag { language: lang(b"cy"), 	tag: Tag::new(b"WEL ") }, // Welsh
382    LangTag { language: lang(b"czh"), 	tag: Tag::new(b"ZHS ") }, // Huizhou Chinese -> Chinese, Simplified
383    LangTag { language: lang(b"czo"), 	tag: Tag::new(b"ZHS ") }, // Min Zhong Chinese -> Chinese, Simplified
384    LangTag { language: lang(b"czt"), 	tag: Tag::new(b"QIN ") }, // Zotung Chin -> Chin
385    LangTag { language: lang(b"da"), 	tag: Tag::new(b"DAN ") }, // Danish
386//  LangTag { language: lang(b"dag"), 	tag: Tag::new(b"DAG ") }, // Dagbani
387    LangTag { language: lang(b"dao"), 	tag: Tag::new(b"QIN ") }, // Daai Chin -> Chin
388    LangTag { language: lang(b"dap"), 	tag: Tag::new(b"NIS ") }, // Nisi (India) (retired code)
389//  LangTag { language: lang(b"dar"), 	tag: Tag::new(b"DAR ") }, // Dargwa
390//  LangTag { language: lang(b"dax"), 	tag: Tag::new(b"DAX ") }, // Dayi
391    LangTag { language: lang(b"dcr"), 	tag: Tag::new(b"CPP ") }, // Negerhollands -> Creoles
392    LangTag { language: lang(b"de"), 	tag: Tag::new(b"DEU ") }, // German
393    LangTag { language: lang(b"den"), 	tag: Tag::new(b"SLA ") }, // Slave (Athapascan) [macrolanguage] -> Slavey
394    LangTag { language: lang(b"den"), 	tag: Tag::new(b"ATH ") }, // Slave (Athapascan) [macrolanguage] -> Athapaskan
395    LangTag { language: lang(b"dep"), 	tag: Tag::new(b"CPP ") }, // Pidgin Delaware -> Creoles
396    LangTag { language: lang(b"dgo"), 	tag: Tag::new(b"DGO ") }, // Dogri (individual language)
397    LangTag { language: lang(b"dgo"), 	tag: Tag::new(b"DGR ") }, // Dogri (macrolanguage)
398    LangTag { language: lang(b"dgr"), 	tag: Tag::new(b"ATH ") }, // Tlicho -> Athapaskan
399    LangTag { language: lang(b"dhd"), 	tag: Tag::new(b"MAW ") }, // Dhundari -> Marwari
400//  LangTag { language: lang(b"dhg"), 	tag: Tag::new(b"DHG ") }, // Dhangu
401    LangTag { language: lang(b"dhv"), 	tag: Tag::new(&[0; 4]) }, // Dehu != Divehi (Dhivehi, Maldivian) (deprecated)
402    LangTag { language: lang(b"dib"), 	tag: Tag::new(b"DNK ") }, // South Central Dinka -> Dinka
403    LangTag { language: lang(b"dik"), 	tag: Tag::new(b"DNK ") }, // Southwestern Dinka -> Dinka
404    LangTag { language: lang(b"din"), 	tag: Tag::new(b"DNK ") }, // Dinka [macrolanguage]
405    LangTag { language: lang(b"dip"), 	tag: Tag::new(b"DNK ") }, // Northeastern Dinka -> Dinka
406    LangTag { language: lang(b"diq"), 	tag: Tag::new(b"DIQ ") }, // Dimli
407    LangTag { language: lang(b"diq"), 	tag: Tag::new(b"ZZA ") }, // Dimli -> Zazaki
408    LangTag { language: lang(b"diw"), 	tag: Tag::new(b"DNK ") }, // Northwestern Dinka -> Dinka
409    LangTag { language: lang(b"dje"), 	tag: Tag::new(b"DJR ") }, // Zarma
410    LangTag { language: lang(b"djk"), 	tag: Tag::new(b"CPP ") }, // Eastern Maroon Creole -> Creoles
411    LangTag { language: lang(b"djr"), 	tag: Tag::new(b"DJR0") }, // Djambarrpuyngu
412    LangTag { language: lang(b"dks"), 	tag: Tag::new(b"DNK ") }, // Southeastern Dinka -> Dinka
413    LangTag { language: lang(b"dng"), 	tag: Tag::new(b"DUN ") }, // Dungan
414//  LangTag { language: lang(b"dnj"), 	tag: Tag::new(b"DNJ ") }, // Dan
415    LangTag { language: lang(b"dnk"), 	tag: Tag::new(&[0; 4]) }, // Dengka != Dinka
416    LangTag { language: lang(b"doi"), 	tag: Tag::new(b"DGR ") }, // Dogri (macrolanguage) [macrolanguage]
417    LangTag { language: lang(b"drh"), 	tag: Tag::new(b"MNG ") }, // Darkhat (retired code) -> Mongolian
418    LangTag { language: lang(b"dri"), 	tag: Tag::new(&[0; 4]) }, // C'Lela != Dari
419    LangTag { language: lang(b"drw"), 	tag: Tag::new(b"DRI ") }, // Darwazi (retired code) -> Dari
420    LangTag { language: lang(b"drw"), 	tag: Tag::new(b"FAR ") }, // Darwazi (retired code) -> Persian
421    LangTag { language: lang(b"dsb"), 	tag: Tag::new(b"LSB ") }, // Lower Sorbian
422    LangTag { language: lang(b"dty"), 	tag: Tag::new(b"NEP ") }, // Dotyali -> Nepali
423//  LangTag { language: lang(b"duj"), 	tag: Tag::new(b"DUJ ") }, // Dhuwal (retired code)
424    LangTag { language: lang(b"dun"), 	tag: Tag::new(&[0; 4]) }, // Dusun Deyah != Dungan
425    LangTag { language: lang(b"dup"), 	tag: Tag::new(b"MLY ") }, // Duano -> Malay
426    LangTag { language: lang(b"dv"), 	tag: Tag::new(b"DIV ") }, // Divehi (Dhivehi, Maldivian)
427    LangTag { language: lang(b"dv"), 	tag: Tag::new(b"DHV ") }, // Divehi (Dhivehi, Maldivian) (deprecated)
428    LangTag { language: lang(b"dwk"), 	tag: Tag::new(b"KUI ") }, // Dawik Kui -> Kui
429    LangTag { language: lang(b"dwu"), 	tag: Tag::new(b"DUJ ") }, // Dhuwal
430    LangTag { language: lang(b"dwy"), 	tag: Tag::new(b"DUJ ") }, // Dhuwaya -> Dhuwal
431    LangTag { language: lang(b"dyu"), 	tag: Tag::new(b"JUL ") }, // Dyula -> Jula
432    LangTag { language: lang(b"dz"), 	tag: Tag::new(b"DZN ") }, // Dzongkha
433    LangTag { language: lang(b"dzn"), 	tag: Tag::new(&[0; 4]) }, // Dzando != Dzongkha
434    LangTag { language: lang(b"ecr"), 	tag: Tag::new(&[0; 4]) }, // Eteocretan != Eastern Cree
435    LangTag { language: lang(b"ee"), 	tag: Tag::new(b"EWE ") }, // Ewe
436//  LangTag { language: lang(b"efi"), 	tag: Tag::new(b"EFI ") }, // Efik
437    LangTag { language: lang(b"ekk"), 	tag: Tag::new(b"ETI ") }, // Standard Estonian -> Estonian
438    LangTag { language: lang(b"eky"), 	tag: Tag::new(b"KRN ") }, // Eastern Kayah -> Karen
439    LangTag { language: lang(b"el"), 	tag: Tag::new(b"ELL ") }, // Modern Greek (1453-) -> Greek
440    LangTag { language: lang(b"emk"), 	tag: Tag::new(b"EMK ") }, // Eastern Maninkakan
441    LangTag { language: lang(b"emk"), 	tag: Tag::new(b"MNK ") }, // Eastern Maninkakan -> Maninka
442//  LangTag { language: lang(b"emp"), 	tag: Tag::new(b"EMP ") }, // Northern Emberá
443    LangTag { language: lang(b"emy"), 	tag: Tag::new(b"MYN ") }, // Epigraphic Mayan -> Mayan
444    LangTag { language: lang(b"en"), 	tag: Tag::new(b"ENG ") }, // English
445    LangTag { language: lang(b"enb"), 	tag: Tag::new(b"KAL ") }, // Markweeta -> Kalenjin
446    LangTag { language: lang(b"enf"), 	tag: Tag::new(b"FNE ") }, // Forest Enets
447    LangTag { language: lang(b"enh"), 	tag: Tag::new(b"TNE ") }, // Tundra Enets
448    LangTag { language: lang(b"eo"), 	tag: Tag::new(b"NTO ") }, // Esperanto
449    LangTag { language: lang(b"es"), 	tag: Tag::new(b"ESP ") }, // Spanish
450    LangTag { language: lang(b"esg"), 	tag: Tag::new(b"GON ") }, // Aheri Gondi -> Gondi
451    LangTag { language: lang(b"esi"), 	tag: Tag::new(b"IPK ") }, // North Alaskan Inupiatun -> Inupiat
452    LangTag { language: lang(b"esk"), 	tag: Tag::new(b"IPK ") }, // Northwest Alaska Inupiatun -> Inupiat
453//  LangTag { language: lang(b"esu"), 	tag: Tag::new(b"ESU ") }, // Central Yupik
454    LangTag { language: lang(b"et"), 	tag: Tag::new(b"ETI ") }, // Estonian [macrolanguage]
455    LangTag { language: lang(b"eto"), 	tag: Tag::new(b"BTI ") }, // Eton (Cameroon) -> Beti
456    LangTag { language: lang(b"eu"), 	tag: Tag::new(b"EUQ ") }, // Basque
457    LangTag { language: lang(b"euq"), 	tag: Tag::new(&[0; 4]) }, // Basque [collection] != Basque
458    LangTag { language: lang(b"eve"), 	tag: Tag::new(b"EVN ") }, // Even
459    LangTag { language: lang(b"evn"), 	tag: Tag::new(b"EVK ") }, // Evenki
460    LangTag { language: lang(b"ewo"), 	tag: Tag::new(b"BTI ") }, // Ewondo -> Beti
461    LangTag { language: lang(b"eyo"), 	tag: Tag::new(b"KAL ") }, // Keiyo -> Kalenjin
462    LangTag { language: lang(b"fa"), 	tag: Tag::new(b"FAR ") }, // Persian [macrolanguage]
463    LangTag { language: lang(b"fab"), 	tag: Tag::new(b"CPP ") }, // Fa d'Ambu -> Creoles
464    LangTag { language: lang(b"fan"), 	tag: Tag::new(b"FAN0") }, // Fang (Equatorial Guinea)
465    LangTag { language: lang(b"fan"), 	tag: Tag::new(b"BTI ") }, // Fang (Equatorial Guinea) -> Beti
466    LangTag { language: lang(b"far"), 	tag: Tag::new(&[0; 4]) }, // Fataleka != Persian
467    LangTag { language: lang(b"fat"), 	tag: Tag::new(b"FAT ") }, // Fanti
468    LangTag { language: lang(b"fat"), 	tag: Tag::new(b"AKA ") }, // Fanti -> Akan
469    LangTag { language: lang(b"fbl"), 	tag: Tag::new(b"BIK ") }, // West Albay Bikol -> Bikol
470    LangTag { language: lang(b"ff"), 	tag: Tag::new(b"FUL ") }, // Fulah [macrolanguage]
471    LangTag { language: lang(b"ffm"), 	tag: Tag::new(b"FUL ") }, // Maasina Fulfulde -> Fulah
472    LangTag { language: lang(b"fi"), 	tag: Tag::new(b"FIN ") }, // Finnish
473    LangTag { language: lang(b"fil"), 	tag: Tag::new(b"PIL ") }, // Filipino
474    LangTag { language: lang(b"fj"), 	tag: Tag::new(b"FJI ") }, // Fijian
475    LangTag { language: lang(b"flm"), 	tag: Tag::new(b"HAL ") }, // Halam (Falam Chin) (retired code)
476    LangTag { language: lang(b"flm"), 	tag: Tag::new(b"QIN ") }, // Falam Chin (retired code) -> Chin
477    LangTag { language: lang(b"fmp"), 	tag: Tag::new(b"FMP ") }, // Fe’fe’
478    LangTag { language: lang(b"fmp"), 	tag: Tag::new(b"BML ") }, // Fe'fe' -> Bamileke
479    LangTag { language: lang(b"fng"), 	tag: Tag::new(b"CPP ") }, // Fanagalo -> Creoles
480    LangTag { language: lang(b"fo"), 	tag: Tag::new(b"FOS ") }, // Faroese
481//  LangTag { language: lang(b"fon"), 	tag: Tag::new(b"FON ") }, // Fon
482    LangTag { language: lang(b"fos"), 	tag: Tag::new(&[0; 4]) }, // Siraya != Faroese
483    LangTag { language: lang(b"fpe"), 	tag: Tag::new(b"CPP ") }, // Fernando Po Creole English -> Creoles
484    LangTag { language: lang(b"fr"), 	tag: Tag::new(b"FRA ") }, // French
485//  LangTag { language: lang(b"frc"), 	tag: Tag::new(b"FRC ") }, // Cajun French
486//  LangTag { language: lang(b"frp"), 	tag: Tag::new(b"FRP ") }, // Arpitan
487    LangTag { language: lang(b"fub"), 	tag: Tag::new(b"FUL ") }, // Adamawa Fulfulde -> Fulah
488    LangTag { language: lang(b"fuc"), 	tag: Tag::new(b"FUL ") }, // Pulaar -> Fulah
489    LangTag { language: lang(b"fue"), 	tag: Tag::new(b"FUL ") }, // Borgu Fulfulde -> Fulah
490    LangTag { language: lang(b"fuf"), 	tag: Tag::new(b"FTA ") }, // Pular -> Futa
491    LangTag { language: lang(b"fuf"), 	tag: Tag::new(b"FUL ") }, // Pular -> Fulah
492    LangTag { language: lang(b"fuh"), 	tag: Tag::new(b"FUL ") }, // Western Niger Fulfulde -> Fulah
493    LangTag { language: lang(b"fui"), 	tag: Tag::new(b"FUL ") }, // Bagirmi Fulfulde -> Fulah
494    LangTag { language: lang(b"fuq"), 	tag: Tag::new(b"FUL ") }, // Central-Eastern Niger Fulfulde -> Fulah
495    LangTag { language: lang(b"fur"), 	tag: Tag::new(b"FRL ") }, // Friulian
496    LangTag { language: lang(b"fuv"), 	tag: Tag::new(b"FUV ") }, // Nigerian Fulfulde
497    LangTag { language: lang(b"fuv"), 	tag: Tag::new(b"FUL ") }, // Nigerian Fulfulde -> Fulah
498    LangTag { language: lang(b"fy"), 	tag: Tag::new(b"FRI ") }, // Western Frisian -> Frisian
499    LangTag { language: lang(b"ga"), 	tag: Tag::new(b"IRI ") }, // Irish
500    LangTag { language: lang(b"ga"), 	tag: Tag::new(b"IRT ") }, // Irish -> Irish Traditional
501    LangTag { language: lang(b"gaa"), 	tag: Tag::new(b"GAD ") }, // Ga
502    LangTag { language: lang(b"gac"), 	tag: Tag::new(b"CPP ") }, // Mixed Great Andamanese -> Creoles
503    LangTag { language: lang(b"gad"), 	tag: Tag::new(&[0; 4]) }, // Gaddang != Ga
504    LangTag { language: lang(b"gae"), 	tag: Tag::new(&[0; 4]) }, // Guarequena != Scottish Gaelic
505//  LangTag { language: lang(b"gag"), 	tag: Tag::new(b"GAG ") }, // Gagauz
506    LangTag { language: lang(b"gal"), 	tag: Tag::new(&[0; 4]) }, // Galolen != Galician
507    LangTag { language: lang(b"gan"), 	tag: Tag::new(b"ZHS ") }, // Gan Chinese -> Chinese, Simplified
508    LangTag { language: lang(b"gar"), 	tag: Tag::new(&[0; 4]) }, // Galeya != Garshuni
509    LangTag { language: lang(b"gaw"), 	tag: Tag::new(&[0; 4]) }, // Nobonob != Garhwali
510    LangTag { language: lang(b"gax"), 	tag: Tag::new(b"ORO ") }, // Borana-Arsi-Guji Oromo -> Oromo
511    LangTag { language: lang(b"gaz"), 	tag: Tag::new(b"ORO ") }, // West Central Oromo -> Oromo
512    LangTag { language: lang(b"gbm"), 	tag: Tag::new(b"GAW ") }, // Garhwali
513    LangTag { language: lang(b"gce"), 	tag: Tag::new(b"ATH ") }, // Galice -> Athapaskan
514    LangTag { language: lang(b"gcf"), 	tag: Tag::new(b"CPP ") }, // Guadeloupean Creole French -> Creoles
515    LangTag { language: lang(b"gcl"), 	tag: Tag::new(b"CPP ") }, // Grenadian Creole English -> Creoles
516    LangTag { language: lang(b"gcr"), 	tag: Tag::new(b"CPP ") }, // Guianese Creole French -> Creoles
517    LangTag { language: lang(b"gd"), 	tag: Tag::new(b"GAE ") }, // Scottish Gaelic
518    LangTag { language: lang(b"gda"), 	tag: Tag::new(b"RAJ ") }, // Gade Lohar -> Rajasthani
519//  LangTag { language: lang(b"gez"), 	tag: Tag::new(b"GEZ ") }, // Geez
520    LangTag { language: lang(b"ggo"), 	tag: Tag::new(b"GON ") }, // Southern Gondi (retired code) -> Gondi
521    LangTag { language: lang(b"gha"), 	tag: Tag::new(b"BBR ") }, // Ghadamès -> Berber
522    LangTag { language: lang(b"ghc"), 	tag: Tag::new(b"IRT ") }, // Hiberno-Scottish Gaelic -> Irish Traditional
523    LangTag { language: lang(b"ghk"), 	tag: Tag::new(b"KRN ") }, // Geko Karen -> Karen
524    LangTag { language: lang(b"gho"), 	tag: Tag::new(b"BBR ") }, // Ghomara -> Berber
525    LangTag { language: lang(b"gib"), 	tag: Tag::new(b"CPP ") }, // Gibanawa -> Creoles
526//  LangTag { language: lang(b"gih"), 	tag: Tag::new(b"GIH ") }, // Githabul
527    LangTag { language: lang(b"gil"), 	tag: Tag::new(b"GIL0") }, // Kiribati (Gilbertese)
528    LangTag { language: lang(b"gju"), 	tag: Tag::new(b"RAJ ") }, // Gujari -> Rajasthani
529    LangTag { language: lang(b"gkp"), 	tag: Tag::new(b"GKP ") }, // Guinea Kpelle -> Kpelle (Guinea)
530    LangTag { language: lang(b"gkp"), 	tag: Tag::new(b"KPL ") }, // Guinea Kpelle -> Kpelle
531    LangTag { language: lang(b"gl"), 	tag: Tag::new(b"GAL ") }, // Galician
532    LangTag { language: lang(b"gld"), 	tag: Tag::new(b"NAN ") }, // Nanai
533//  LangTag { language: lang(b"glk"), 	tag: Tag::new(b"GLK ") }, // Gilaki
534    LangTag { language: lang(b"gmz"), 	tag: Tag::new(&[0; 4]) }, // Mgbolizhia != Gumuz
535    LangTag { language: lang(b"gn"), 	tag: Tag::new(b"GUA ") }, // Guarani [macrolanguage]
536    LangTag { language: lang(b"gnb"), 	tag: Tag::new(b"QIN ") }, // Gangte -> Chin
537//  LangTag { language: lang(b"gnn"), 	tag: Tag::new(b"GNN ") }, // Gumatj
538    LangTag { language: lang(b"gno"), 	tag: Tag::new(b"GON ") }, // Northern Gondi -> Gondi
539    LangTag { language: lang(b"gnw"), 	tag: Tag::new(b"GUA ") }, // Western Bolivian Guaraní -> Guarani
540//  LangTag { language: lang(b"gog"), 	tag: Tag::new(b"GOG ") }, // Gogo
541    LangTag { language: lang(b"gom"), 	tag: Tag::new(b"KOK ") }, // Goan Konkani -> Konkani
542//  LangTag { language: lang(b"gon"), 	tag: Tag::new(b"GON ") }, // Gondi [macrolanguage]
543    LangTag { language: lang(b"goq"), 	tag: Tag::new(b"CPP ") }, // Gorap -> Creoles
544    LangTag { language: lang(b"gox"), 	tag: Tag::new(b"BAD0") }, // Gobu -> Banda
545    LangTag { language: lang(b"gpe"), 	tag: Tag::new(b"CPP ") }, // Ghanaian Pidgin English -> Creoles
546    LangTag { language: lang(b"gro"), 	tag: Tag::new(&[0; 4]) }, // Groma != Garo
547    LangTag { language: lang(b"grr"), 	tag: Tag::new(b"BBR ") }, // Taznatit -> Berber
548    LangTag { language: lang(b"grt"), 	tag: Tag::new(b"GRO ") }, // Garo
549    LangTag { language: lang(b"gru"), 	tag: Tag::new(b"SOG ") }, // Kistane -> Sodo Gurage
550    LangTag { language: lang(b"gsw"), 	tag: Tag::new(b"ALS ") }, // Alsatian
551    LangTag { language: lang(b"gu"), 	tag: Tag::new(b"GUJ ") }, // Gujarati
552    LangTag { language: lang(b"gua"), 	tag: Tag::new(&[0; 4]) }, // Shiki != Guarani
553//  LangTag { language: lang(b"guc"), 	tag: Tag::new(b"GUC ") }, // Wayuu
554//  LangTag { language: lang(b"guf"), 	tag: Tag::new(b"GUF ") }, // Gupapuyngu
555    LangTag { language: lang(b"gug"), 	tag: Tag::new(b"GUA ") }, // Paraguayan Guaraní -> Guarani
556    LangTag { language: lang(b"gui"), 	tag: Tag::new(b"GUA ") }, // Eastern Bolivian Guaraní -> Guarani
557    LangTag { language: lang(b"guk"), 	tag: Tag::new(b"GMZ ") }, // Gumuz
558    LangTag { language: lang(b"gul"), 	tag: Tag::new(b"CPP ") }, // Sea Island Creole English -> Creoles
559    LangTag { language: lang(b"gun"), 	tag: Tag::new(b"GUA ") }, // Mbyá Guaraní -> Guarani
560//  LangTag { language: lang(b"guz"), 	tag: Tag::new(b"GUZ ") }, // Gusii
561    LangTag { language: lang(b"gv"), 	tag: Tag::new(b"MNX ") }, // Manx
562    LangTag { language: lang(b"gwi"), 	tag: Tag::new(b"ATH ") }, // Gwichʼin -> Athapaskan
563    LangTag { language: lang(b"gyn"), 	tag: Tag::new(b"CPP ") }, // Guyanese Creole English -> Creoles
564    LangTag { language: lang(b"ha"), 	tag: Tag::new(b"HAU ") }, // Hausa
565    LangTag { language: lang(b"haa"), 	tag: Tag::new(b"ATH ") }, // Hän -> Athapaskan
566    LangTag { language: lang(b"hae"), 	tag: Tag::new(b"ORO ") }, // Eastern Oromo -> Oromo
567    LangTag { language: lang(b"hai"), 	tag: Tag::new(b"HAI0") }, // Haida [macrolanguage]
568    LangTag { language: lang(b"hak"), 	tag: Tag::new(b"ZHS ") }, // Hakka Chinese -> Chinese, Simplified
569    LangTag { language: lang(b"hal"), 	tag: Tag::new(&[0; 4]) }, // Halang != Halam (Falam Chin)
570    LangTag { language: lang(b"har"), 	tag: Tag::new(b"HRI ") }, // Harari
571//  LangTag { language: lang(b"haw"), 	tag: Tag::new(b"HAW ") }, // Hawaiian
572    LangTag { language: lang(b"hax"), 	tag: Tag::new(b"HAI0") }, // Southern Haida -> Haida
573//  LangTag { language: lang(b"hay"), 	tag: Tag::new(b"HAY ") }, // Haya
574//  LangTag { language: lang(b"haz"), 	tag: Tag::new(b"HAZ ") }, // Hazaragi
575    LangTag { language: lang(b"hbn"), 	tag: Tag::new(&[0; 4]) }, // Heiban != Hammer-Banna
576    LangTag { language: lang(b"hca"), 	tag: Tag::new(b"CPP ") }, // Andaman Creole Hindi -> Creoles
577    LangTag { language: lang(b"hdn"), 	tag: Tag::new(b"HAI0") }, // Northern Haida -> Haida
578    LangTag { language: lang(b"he"), 	tag: Tag::new(b"IWR ") }, // Hebrew
579    LangTag { language: lang(b"hea"), 	tag: Tag::new(b"HMN ") }, // Northern Qiandong Miao -> Hmong
580//  LangTag { language: lang(b"hei"), 	tag: Tag::new(b"HEI ") }, // Heiltsuk
581    LangTag { language: lang(b"hi"), 	tag: Tag::new(b"HIN ") }, // Hindi
582//  LangTag { language: lang(b"hil"), 	tag: Tag::new(b"HIL ") }, // Hiligaynon
583    LangTag { language: lang(b"hji"), 	tag: Tag::new(b"MLY ") }, // Haji -> Malay
584    LangTag { language: lang(b"hlt"), 	tag: Tag::new(b"QIN ") }, // Matu Chin -> Chin
585    LangTag { language: lang(b"hma"), 	tag: Tag::new(b"HMN ") }, // Southern Mashan Hmong -> Hmong
586    LangTag { language: lang(b"hmc"), 	tag: Tag::new(b"HMN ") }, // Central Huishui Hmong -> Hmong
587    LangTag { language: lang(b"hmd"), 	tag: Tag::new(b"HMD ") }, // Large Flowery Miao -> A-Hmao
588    LangTag { language: lang(b"hmd"), 	tag: Tag::new(b"HMN ") }, // Large Flowery Miao -> Hmong
589    LangTag { language: lang(b"hme"), 	tag: Tag::new(b"HMN ") }, // Eastern Huishui Hmong -> Hmong
590    LangTag { language: lang(b"hmg"), 	tag: Tag::new(b"HMN ") }, // Southwestern Guiyang Hmong -> Hmong
591    LangTag { language: lang(b"hmh"), 	tag: Tag::new(b"HMN ") }, // Southwestern Huishui Hmong -> Hmong
592    LangTag { language: lang(b"hmi"), 	tag: Tag::new(b"HMN ") }, // Northern Huishui Hmong -> Hmong
593    LangTag { language: lang(b"hmj"), 	tag: Tag::new(b"HMN ") }, // Ge -> Hmong
594    LangTag { language: lang(b"hml"), 	tag: Tag::new(b"HMN ") }, // Luopohe Hmong -> Hmong
595    LangTag { language: lang(b"hmm"), 	tag: Tag::new(b"HMN ") }, // Central Mashan Hmong -> Hmong
596//  LangTag { language: lang(b"hmn"), 	tag: Tag::new(b"HMN ") }, // Hmong [macrolanguage]
597    LangTag { language: lang(b"hmp"), 	tag: Tag::new(b"HMN ") }, // Northern Mashan Hmong -> Hmong
598    LangTag { language: lang(b"hmq"), 	tag: Tag::new(b"HMN ") }, // Eastern Qiandong Miao -> Hmong
599    LangTag { language: lang(b"hmr"), 	tag: Tag::new(b"QIN ") }, // Hmar -> Chin
600    LangTag { language: lang(b"hms"), 	tag: Tag::new(b"HMN ") }, // Southern Qiandong Miao -> Hmong
601    LangTag { language: lang(b"hmw"), 	tag: Tag::new(b"HMN ") }, // Western Mashan Hmong -> Hmong
602    LangTag { language: lang(b"hmy"), 	tag: Tag::new(b"HMN ") }, // Southern Guiyang Hmong -> Hmong
603    LangTag { language: lang(b"hmz"), 	tag: Tag::new(b"HMZ ") }, // Hmong Shua -> Hmong Shuat
604    LangTag { language: lang(b"hmz"), 	tag: Tag::new(b"HMN ") }, // Hmong Shua -> Hmong
605//  LangTag { language: lang(b"hnd"), 	tag: Tag::new(b"HND ") }, // Southern Hindko -> Hindko
606    LangTag { language: lang(b"hne"), 	tag: Tag::new(b"CHH ") }, // Chhattisgarhi -> Chattisgarhi
607    LangTag { language: lang(b"hnj"), 	tag: Tag::new(b"HMN ") }, // Hmong Njua -> Hmong
608    LangTag { language: lang(b"hnm"), 	tag: Tag::new(b"ZHS ") }, // Hainanese -> Chinese, Simplified
609    LangTag { language: lang(b"hno"), 	tag: Tag::new(b"HND ") }, // Northern Hindko -> Hindko
610    LangTag { language: lang(b"ho"), 	tag: Tag::new(b"HMO ") }, // Hiri Motu
611    LangTag { language: lang(b"ho"), 	tag: Tag::new(b"CPP ") }, // Hiri Motu -> Creoles
612    LangTag { language: lang(b"hoc"), 	tag: Tag::new(b"HO  ") }, // Ho
613    LangTag { language: lang(b"hoi"), 	tag: Tag::new(b"ATH ") }, // Holikachuk -> Athapaskan
614    LangTag { language: lang(b"hoj"), 	tag: Tag::new(b"HAR ") }, // Hadothi -> Harauti
615    LangTag { language: lang(b"hoj"), 	tag: Tag::new(b"RAJ ") }, // Hadothi -> Rajasthani
616    LangTag { language: lang(b"hr"), 	tag: Tag::new(b"HRV ") }, // Croatian
617    LangTag { language: lang(b"hra"), 	tag: Tag::new(b"QIN ") }, // Hrangkhol -> Chin
618    LangTag { language: lang(b"hrm"), 	tag: Tag::new(b"HMN ") }, // Horned Miao -> Hmong
619    LangTag { language: lang(b"hsb"), 	tag: Tag::new(b"USB ") }, // Upper Sorbian
620    LangTag { language: lang(b"hsn"), 	tag: Tag::new(b"ZHS ") }, // Xiang Chinese -> Chinese, Simplified
621    LangTag { language: lang(b"ht"), 	tag: Tag::new(b"HAI ") }, // Haitian (Haitian Creole)
622    LangTag { language: lang(b"ht"), 	tag: Tag::new(b"CPP ") }, // Haitian -> Creoles
623    LangTag { language: lang(b"hu"), 	tag: Tag::new(b"HUN ") }, // Hungarian
624    LangTag { language: lang(b"huj"), 	tag: Tag::new(b"HMN ") }, // Northern Guiyang Hmong -> Hmong
625    LangTag { language: lang(b"hup"), 	tag: Tag::new(b"ATH ") }, // Hupa -> Athapaskan
626//  LangTag { language: lang(b"hur"), 	tag: Tag::new(b"HUR ") }, // Halkomelem
627    LangTag { language: lang(b"hus"), 	tag: Tag::new(b"MYN ") }, // Huastec -> Mayan
628    LangTag { language: lang(b"hwc"), 	tag: Tag::new(b"CPP ") }, // Hawai'i Creole English -> Creoles
629    LangTag { language: lang(b"hy"), 	tag: Tag::new(b"HYE0") }, // Armenian -> Armenian East
630    LangTag { language: lang(b"hy"), 	tag: Tag::new(b"HYE ") }, // Armenian
631    LangTag { language: lang(b"hyw"), 	tag: Tag::new(b"HYE ") }, // Western Armenian -> Armenian
632    LangTag { language: lang(b"hz"), 	tag: Tag::new(b"HER ") }, // Herero
633    LangTag { language: lang(b"ia"), 	tag: Tag::new(b"INA ") }, // Interlingua (International Auxiliary Language Association)
634//  LangTag { language: lang(b"iba"), 	tag: Tag::new(b"IBA ") }, // Iban
635//  LangTag { language: lang(b"ibb"), 	tag: Tag::new(b"IBB ") }, // Ibibio
636    LangTag { language: lang(b"iby"), 	tag: Tag::new(b"IJO ") }, // Ibani -> Ijo
637    LangTag { language: lang(b"icr"), 	tag: Tag::new(b"CPP ") }, // Islander Creole English -> Creoles
638    LangTag { language: lang(b"id"), 	tag: Tag::new(b"IND ") }, // Indonesian
639    LangTag { language: lang(b"id"), 	tag: Tag::new(b"MLY ") }, // Indonesian -> Malay
640    LangTag { language: lang(b"ida"), 	tag: Tag::new(b"LUH ") }, // Idakho-Isukha-Tiriki -> Luyia
641    LangTag { language: lang(b"idb"), 	tag: Tag::new(b"CPP ") }, // Indo-Portuguese -> Creoles
642    LangTag { language: lang(b"ie"), 	tag: Tag::new(b"ILE ") }, // Interlingue
643    LangTag { language: lang(b"ig"), 	tag: Tag::new(b"IBO ") }, // Igbo
644    LangTag { language: lang(b"igb"), 	tag: Tag::new(b"EBI ") }, // Ebira
645    LangTag { language: lang(b"ihb"), 	tag: Tag::new(b"CPP ") }, // Iha Based Pidgin -> Creoles
646    LangTag { language: lang(b"ii"), 	tag: Tag::new(b"YIM ") }, // Sichuan Yi -> Yi Modern
647    LangTag { language: lang(b"ijc"), 	tag: Tag::new(b"IJO ") }, // Izon -> Ijo
648    LangTag { language: lang(b"ije"), 	tag: Tag::new(b"IJO ") }, // Biseni -> Ijo
649    LangTag { language: lang(b"ijn"), 	tag: Tag::new(b"IJO ") }, // Kalabari -> Ijo
650//  LangTag { language: lang(b"ijo"), 	tag: Tag::new(b"IJO ") }, // Ijo [collection]
651    LangTag { language: lang(b"ijs"), 	tag: Tag::new(b"IJO ") }, // Southeast Ijo -> Ijo
652    LangTag { language: lang(b"ik"), 	tag: Tag::new(b"IPK ") }, // Inupiaq [macrolanguage] -> Inupiat
653    LangTag { language: lang(b"ike"), 	tag: Tag::new(b"INU ") }, // Eastern Canadian Inuktitut -> Inuktitut
654    LangTag { language: lang(b"ike"), 	tag: Tag::new(b"INUK") }, // Eastern Canadian Inuktitut -> Nunavik Inuktitut
655    LangTag { language: lang(b"ikt"), 	tag: Tag::new(b"INU ") }, // Inuinnaqtun -> Inuktitut
656//  LangTag { language: lang(b"ilo"), 	tag: Tag::new(b"ILO ") }, // Iloko -> Ilokano
657    LangTag { language: lang(b"in"), 	tag: Tag::new(b"IND ") }, // Indonesian (retired code)
658    LangTag { language: lang(b"in"), 	tag: Tag::new(b"MLY ") }, // Indonesian (retired code) -> Malay
659    LangTag { language: lang(b"ing"), 	tag: Tag::new(b"ATH ") }, // Degexit'an -> Athapaskan
660    LangTag { language: lang(b"inh"), 	tag: Tag::new(b"ING ") }, // Ingush
661    LangTag { language: lang(b"io"), 	tag: Tag::new(b"IDO ") }, // Ido
662    LangTag { language: lang(b"iri"), 	tag: Tag::new(&[0; 4]) }, // Rigwe != Irish
663//  LangTag { language: lang(b"iru"), 	tag: Tag::new(b"IRU ") }, // Irula
664    LangTag { language: lang(b"is"), 	tag: Tag::new(b"ISL ") }, // Icelandic
665    LangTag { language: lang(b"ism"), 	tag: Tag::new(&[0; 4]) }, // Masimasi != Inari Sami
666    LangTag { language: lang(b"it"), 	tag: Tag::new(b"ITA ") }, // Italian
667    LangTag { language: lang(b"itz"), 	tag: Tag::new(b"MYN ") }, // Itzá -> Mayan
668    LangTag { language: lang(b"iu"), 	tag: Tag::new(b"INU ") }, // Inuktitut [macrolanguage]
669    LangTag { language: lang(b"iu"), 	tag: Tag::new(b"INUK") }, // Inuktitut [macrolanguage] -> Nunavik Inuktitut
670    LangTag { language: lang(b"iw"), 	tag: Tag::new(b"IWR ") }, // Hebrew (retired code)
671    LangTag { language: lang(b"ixl"), 	tag: Tag::new(b"MYN ") }, // Ixil -> Mayan
672    LangTag { language: lang(b"ja"), 	tag: Tag::new(b"JAN ") }, // Japanese
673    LangTag { language: lang(b"jac"), 	tag: Tag::new(b"MYN ") }, // Popti' -> Mayan
674    LangTag { language: lang(b"jak"), 	tag: Tag::new(b"MLY ") }, // Jakun -> Malay
675    LangTag { language: lang(b"jam"), 	tag: Tag::new(b"JAM ") }, // Jamaican Creole English -> Jamaican Creole
676    LangTag { language: lang(b"jam"), 	tag: Tag::new(b"CPP ") }, // Jamaican Creole English -> Creoles
677    LangTag { language: lang(b"jan"), 	tag: Tag::new(&[0; 4]) }, // Jandai != Japanese
678    LangTag { language: lang(b"jax"), 	tag: Tag::new(b"MLY ") }, // Jambi Malay -> Malay
679    LangTag { language: lang(b"jbe"), 	tag: Tag::new(b"BBR ") }, // Judeo-Berber -> Berber
680    LangTag { language: lang(b"jbn"), 	tag: Tag::new(b"BBR ") }, // Nafusi -> Berber
681//  LangTag { language: lang(b"jbo"), 	tag: Tag::new(b"JBO ") }, // Lojban
682//  LangTag { language: lang(b"jct"), 	tag: Tag::new(b"JCT ") }, // Krymchak
683//  LangTag { language: lang(b"jdt"), 	tag: Tag::new(b"JDT ") }, // Judeo-Tat
684    LangTag { language: lang(b"jgo"), 	tag: Tag::new(b"BML ") }, // Ngomba -> Bamileke
685    LangTag { language: lang(b"ji"), 	tag: Tag::new(b"JII ") }, // Yiddish (retired code)
686    LangTag { language: lang(b"jii"), 	tag: Tag::new(&[0; 4]) }, // Jiiddu != Yiddish
687    LangTag { language: lang(b"jkm"), 	tag: Tag::new(b"KRN ") }, // Mobwa Karen -> Karen
688    LangTag { language: lang(b"jkp"), 	tag: Tag::new(b"KRN ") }, // Paku Karen -> Karen
689    LangTag { language: lang(b"jud"), 	tag: Tag::new(&[0; 4]) }, // Worodougou != Ladino
690    LangTag { language: lang(b"jul"), 	tag: Tag::new(&[0; 4]) }, // Jirel != Jula
691    LangTag { language: lang(b"jv"), 	tag: Tag::new(b"JAV ") }, // Javanese
692    LangTag { language: lang(b"jvd"), 	tag: Tag::new(b"CPP ") }, // Javindo -> Creoles
693    LangTag { language: lang(b"jw"), 	tag: Tag::new(b"JAV ") }, // Javanese (retired code)
694    LangTag { language: lang(b"ka"), 	tag: Tag::new(b"KAT ") }, // Georgian
695    LangTag { language: lang(b"kaa"), 	tag: Tag::new(b"KRK ") }, // Karakalpak
696    LangTag { language: lang(b"kab"), 	tag: Tag::new(b"KAB0") }, // Kabyle
697    LangTag { language: lang(b"kab"), 	tag: Tag::new(b"BBR ") }, // Kabyle -> Berber
698    LangTag { language: lang(b"kac"), 	tag: Tag::new(&[0; 4]) }, // Kachin != Kachchi
699    LangTag { language: lang(b"kam"), 	tag: Tag::new(b"KMB ") }, // Kamba (Kenya)
700    LangTag { language: lang(b"kar"), 	tag: Tag::new(b"KRN ") }, // Karen [collection]
701//  LangTag { language: lang(b"kaw"), 	tag: Tag::new(b"KAW ") }, // Kawi (Old Javanese)
702//  LangTag { language: lang(b"kbc"), 	tag: Tag::new(b"KBC ") }, // Kadiwéu
703    LangTag { language: lang(b"kbd"), 	tag: Tag::new(b"KAB ") }, // Kabardian
704    LangTag { language: lang(b"kby"), 	tag: Tag::new(b"KNR ") }, // Manga Kanuri -> Kanuri
705    LangTag { language: lang(b"kca"), 	tag: Tag::new(b"KHK ") }, // Khanty -> Khanty-Kazim
706    LangTag { language: lang(b"kca"), 	tag: Tag::new(b"KHS ") }, // Khanty -> Khanty-Shurishkar
707    LangTag { language: lang(b"kca"), 	tag: Tag::new(b"KHV ") }, // Khanty -> Khanty-Vakhi
708    LangTag { language: lang(b"kcn"), 	tag: Tag::new(b"CPP ") }, // Nubi -> Creoles
709//  LangTag { language: lang(b"kde"), 	tag: Tag::new(b"KDE ") }, // Makonde
710    LangTag { language: lang(b"kdr"), 	tag: Tag::new(b"KRM ") }, // Karaim
711    LangTag { language: lang(b"kdt"), 	tag: Tag::new(b"KUY ") }, // Kuy
712    LangTag { language: lang(b"kea"), 	tag: Tag::new(b"KEA ") }, // Kabuverdianu (Crioulo)
713    LangTag { language: lang(b"kea"), 	tag: Tag::new(b"CPP ") }, // Kabuverdianu -> Creoles
714    LangTag { language: lang(b"keb"), 	tag: Tag::new(&[0; 4]) }, // Kélé != Kebena
715    LangTag { language: lang(b"kek"), 	tag: Tag::new(b"KEK ") }, // Kekchi
716    LangTag { language: lang(b"kek"), 	tag: Tag::new(b"MYN ") }, // Kekchí -> Mayan
717    LangTag { language: lang(b"kex"), 	tag: Tag::new(b"KKN ") }, // Kukna -> Kokni
718    LangTag { language: lang(b"kfa"), 	tag: Tag::new(b"KOD ") }, // Kodava -> Kodagu
719    LangTag { language: lang(b"kfr"), 	tag: Tag::new(b"KAC ") }, // Kachhi -> Kachchi
720    LangTag { language: lang(b"kfx"), 	tag: Tag::new(b"KUL ") }, // Kullu Pahari -> Kulvi
721    LangTag { language: lang(b"kfy"), 	tag: Tag::new(b"KMN ") }, // Kumaoni
722    LangTag { language: lang(b"kg"), 	tag: Tag::new(b"KON0") }, // Kongo [macrolanguage]
723    LangTag { language: lang(b"kge"), 	tag: Tag::new(&[0; 4]) }, // Komering != Khutsuri Georgian
724//  LangTag { language: lang(b"kgf"), 	tag: Tag::new(b"KGF ") }, // Kube
725    LangTag { language: lang(b"kha"), 	tag: Tag::new(b"KSI ") }, // Khasi
726    LangTag { language: lang(b"khb"), 	tag: Tag::new(b"XBD ") }, // Lü
727    LangTag { language: lang(b"khk"), 	tag: Tag::new(b"MNG ") }, // Halh Mongolian -> Mongolian
728    LangTag { language: lang(b"khn"), 	tag: Tag::new(&[0; 4]) }, // Khandesi != Khamti Shan (Microsoft fonts)
729    LangTag { language: lang(b"khs"), 	tag: Tag::new(&[0; 4]) }, // Kasua != Khanty-Shurishkar
730    LangTag { language: lang(b"kht"), 	tag: Tag::new(b"KHT ") }, // Khamti -> Khamti Shan
731    LangTag { language: lang(b"kht"), 	tag: Tag::new(b"KHN ") }, // Khamti -> Khamti Shan (Microsoft fonts)
732    LangTag { language: lang(b"khv"), 	tag: Tag::new(&[0; 4]) }, // Khvarshi != Khanty-Vakhi
733//  LangTag { language: lang(b"khw"), 	tag: Tag::new(b"KHW ") }, // Khowar
734    LangTag { language: lang(b"ki"), 	tag: Tag::new(b"KIK ") }, // Kikuyu (Gikuyu)
735    LangTag { language: lang(b"kis"), 	tag: Tag::new(&[0; 4]) }, // Kis != Kisii
736    LangTag { language: lang(b"kiu"), 	tag: Tag::new(b"KIU ") }, // Kirmanjki
737    LangTag { language: lang(b"kiu"), 	tag: Tag::new(b"ZZA ") }, // Kirmanjki -> Zazaki
738    LangTag { language: lang(b"kj"), 	tag: Tag::new(b"KUA ") }, // Kuanyama
739    LangTag { language: lang(b"kjb"), 	tag: Tag::new(b"MYN ") }, // Q'anjob'al -> Mayan
740//  LangTag { language: lang(b"kjd"), 	tag: Tag::new(b"KJD ") }, // Southern Kiwai
741    LangTag { language: lang(b"kjh"), 	tag: Tag::new(b"KHA ") }, // Khakas -> Khakass
742//  LangTag { language: lang(b"kjj"), 	tag: Tag::new(b"KJJ ") }, // Khinalugh -> Khinalug
743    LangTag { language: lang(b"kjp"), 	tag: Tag::new(b"KJP ") }, // Pwo Eastern Karen -> Eastern Pwo Karen
744    LangTag { language: lang(b"kjp"), 	tag: Tag::new(b"KRN ") }, // Pwo Eastern Karen -> Karen
745    LangTag { language: lang(b"kjt"), 	tag: Tag::new(b"KRN ") }, // Phrae Pwo Karen -> Karen
746//  LangTag { language: lang(b"kjz"), 	tag: Tag::new(b"KJZ ") }, // Bumthangkha
747    LangTag { language: lang(b"kk"), 	tag: Tag::new(b"KAZ ") }, // Kazakh
748    LangTag { language: lang(b"kkn"), 	tag: Tag::new(&[0; 4]) }, // Kon Keu != Kokni
749    LangTag { language: lang(b"kkz"), 	tag: Tag::new(b"ATH ") }, // Kaska -> Athapaskan
750    LangTag { language: lang(b"kl"), 	tag: Tag::new(b"GRN ") }, // Greenlandic
751    LangTag { language: lang(b"klm"), 	tag: Tag::new(&[0; 4]) }, // Migum != Kalmyk
752    LangTag { language: lang(b"kln"), 	tag: Tag::new(b"KAL ") }, // Kalenjin [macrolanguage]
753    LangTag { language: lang(b"km"), 	tag: Tag::new(b"KHM ") }, // Khmer
754    LangTag { language: lang(b"kmb"), 	tag: Tag::new(b"MBN ") }, // Kimbundu -> Mbundu
755//  LangTag { language: lang(b"kmg"), 	tag: Tag::new(b"KMG ") }, // Kâte
756    LangTag { language: lang(b"kmn"), 	tag: Tag::new(&[0; 4]) }, // Awtuw != Kumaoni
757    LangTag { language: lang(b"kmo"), 	tag: Tag::new(&[0; 4]) }, // Kwoma != Komo
758    LangTag { language: lang(b"kmr"), 	tag: Tag::new(b"KUR ") }, // Northern Kurdish -> Kurdish
759    LangTag { language: lang(b"kms"), 	tag: Tag::new(&[0; 4]) }, // Kamasau != Komso
760    LangTag { language: lang(b"kmv"), 	tag: Tag::new(b"CPP ") }, // Karipúna Creole French -> Creoles
761    LangTag { language: lang(b"kmw"), 	tag: Tag::new(b"KMO ") }, // Komo (Democratic Republic of Congo)
762//  LangTag { language: lang(b"kmz"), 	tag: Tag::new(b"KMZ ") }, // Khorasani Turkish -> Khorasani Turkic
763    LangTag { language: lang(b"kn"), 	tag: Tag::new(b"KAN ") }, // Kannada
764    LangTag { language: lang(b"knc"), 	tag: Tag::new(b"KNR ") }, // Central Kanuri -> Kanuri
765    LangTag { language: lang(b"kng"), 	tag: Tag::new(b"KON0") }, // Koongo -> Kongo
766    LangTag { language: lang(b"knj"), 	tag: Tag::new(b"MYN ") }, // Western Kanjobal -> Mayan
767    LangTag { language: lang(b"knn"), 	tag: Tag::new(b"KOK ") }, // Konkani
768    LangTag { language: lang(b"knr"), 	tag: Tag::new(&[0; 4]) }, // Kaningra != Kanuri
769    LangTag { language: lang(b"ko"), 	tag: Tag::new(b"KOR ") }, // Korean
770    LangTag { language: lang(b"ko"), 	tag: Tag::new(b"KOH ") }, // Korean -> Korean Old Hangul
771    LangTag { language: lang(b"kod"), 	tag: Tag::new(&[0; 4]) }, // Kodi != Kodagu
772    LangTag { language: lang(b"koh"), 	tag: Tag::new(&[0; 4]) }, // Koyo != Korean Old Hangul
773    LangTag { language: lang(b"koi"), 	tag: Tag::new(b"KOP ") }, // Komi-Permyak
774    LangTag { language: lang(b"koi"), 	tag: Tag::new(b"KOM ") }, // Komi-Permyak -> Komi
775//  LangTag { language: lang(b"kok"), 	tag: Tag::new(b"KOK ") }, // Konkani [macrolanguage]
776    LangTag { language: lang(b"kop"), 	tag: Tag::new(&[0; 4]) }, // Waube != Komi-Permyak
777//  LangTag { language: lang(b"kos"), 	tag: Tag::new(b"KOS ") }, // Kosraean
778    LangTag { language: lang(b"koy"), 	tag: Tag::new(b"ATH ") }, // Koyukon -> Athapaskan
779    LangTag { language: lang(b"koz"), 	tag: Tag::new(&[0; 4]) }, // Korak != Komi-Zyrian
780    LangTag { language: lang(b"kpe"), 	tag: Tag::new(b"KPL ") }, // Kpelle [macrolanguage]
781    LangTag { language: lang(b"kpl"), 	tag: Tag::new(&[0; 4]) }, // Kpala != Kpelle
782    LangTag { language: lang(b"kpp"), 	tag: Tag::new(b"KRN ") }, // Paku Karen (retired code) -> Karen
783    LangTag { language: lang(b"kpv"), 	tag: Tag::new(b"KOZ ") }, // Komi-Zyrian
784    LangTag { language: lang(b"kpv"), 	tag: Tag::new(b"KOM ") }, // Komi-Zyrian -> Komi
785    LangTag { language: lang(b"kpy"), 	tag: Tag::new(b"KYK ") }, // Koryak
786    LangTag { language: lang(b"kqs"), 	tag: Tag::new(b"KIS ") }, // Northern Kissi -> Kisii
787    LangTag { language: lang(b"kqy"), 	tag: Tag::new(b"KRT ") }, // Koorete
788    LangTag { language: lang(b"kr"), 	tag: Tag::new(b"KNR ") }, // Kanuri [macrolanguage]
789    LangTag { language: lang(b"krc"), 	tag: Tag::new(b"KAR ") }, // Karachay-Balkar -> Karachay
790    LangTag { language: lang(b"krc"), 	tag: Tag::new(b"BAL ") }, // Karachay-Balkar -> Balkar
791    LangTag { language: lang(b"kri"), 	tag: Tag::new(b"KRI ") }, // Krio
792    LangTag { language: lang(b"kri"), 	tag: Tag::new(b"CPP ") }, // Krio -> Creoles
793    LangTag { language: lang(b"krk"), 	tag: Tag::new(&[0; 4]) }, // Kerek != Karakalpak
794//  LangTag { language: lang(b"krl"), 	tag: Tag::new(b"KRL ") }, // Karelian
795    LangTag { language: lang(b"krm"), 	tag: Tag::new(&[0; 4]) }, // Krim (retired code) != Karaim
796    LangTag { language: lang(b"krn"), 	tag: Tag::new(&[0; 4]) }, // Sapo != Karen
797    LangTag { language: lang(b"krt"), 	tag: Tag::new(b"KNR ") }, // Tumari Kanuri -> Kanuri
798    LangTag { language: lang(b"kru"), 	tag: Tag::new(b"KUU ") }, // Kurukh
799    LangTag { language: lang(b"ks"), 	tag: Tag::new(b"KSH ") }, // Kashmiri
800    LangTag { language: lang(b"ksh"), 	tag: Tag::new(b"KSH0") }, // Kölsch -> Ripuarian
801    LangTag { language: lang(b"ksi"), 	tag: Tag::new(&[0; 4]) }, // Krisa != Khasi
802    LangTag { language: lang(b"ksm"), 	tag: Tag::new(&[0; 4]) }, // Kumba != Kildin Sami
803    LangTag { language: lang(b"kss"), 	tag: Tag::new(b"KIS ") }, // Southern Kisi -> Kisii
804//  LangTag { language: lang(b"ksu"), 	tag: Tag::new(b"KSU ") }, // Khamyang
805    LangTag { language: lang(b"ksw"), 	tag: Tag::new(b"KSW ") }, // S’gaw Karen
806    LangTag { language: lang(b"ksw"), 	tag: Tag::new(b"KRN ") }, // S'gaw Karen -> Karen
807    LangTag { language: lang(b"ktb"), 	tag: Tag::new(b"KEB ") }, // Kambaata -> Kebena
808    LangTag { language: lang(b"ktu"), 	tag: Tag::new(b"KON ") }, // Kituba (Democratic Republic of Congo) -> Kikongo
809    LangTag { language: lang(b"ktw"), 	tag: Tag::new(b"ATH ") }, // Kato -> Athapaskan
810    LangTag { language: lang(b"ku"), 	tag: Tag::new(b"KUR ") }, // Kurdish [macrolanguage]
811    LangTag { language: lang(b"kui"), 	tag: Tag::new(&[0; 4]) }, // Kuikúro-Kalapálo != Kui
812    LangTag { language: lang(b"kul"), 	tag: Tag::new(&[0; 4]) }, // Kulere != Kulvi
813//  LangTag { language: lang(b"kum"), 	tag: Tag::new(b"KUM ") }, // Kumyk
814    LangTag { language: lang(b"kuu"), 	tag: Tag::new(b"ATH ") }, // Upper Kuskokwim -> Athapaskan
815    LangTag { language: lang(b"kuw"), 	tag: Tag::new(b"BAD0") }, // Kpagua -> Banda
816    LangTag { language: lang(b"kuy"), 	tag: Tag::new(&[0; 4]) }, // Kuuku-Ya'u != Kuy
817    LangTag { language: lang(b"kv"), 	tag: Tag::new(b"KOM ") }, // Komi [macrolanguage]
818    LangTag { language: lang(b"kvb"), 	tag: Tag::new(b"MLY ") }, // Kubu -> Malay
819    LangTag { language: lang(b"kvl"), 	tag: Tag::new(b"KRN ") }, // Kayaw -> Karen
820    LangTag { language: lang(b"kvq"), 	tag: Tag::new(b"KVQ ") }, // Geba Karen
821    LangTag { language: lang(b"kvq"), 	tag: Tag::new(b"KRN ") }, // Geba Karen -> Karen
822    LangTag { language: lang(b"kvr"), 	tag: Tag::new(b"MLY ") }, // Kerinci -> Malay
823    LangTag { language: lang(b"kvt"), 	tag: Tag::new(b"KRN ") }, // Lahta Karen -> Karen
824    LangTag { language: lang(b"kvu"), 	tag: Tag::new(b"KRN ") }, // Yinbaw Karen -> Karen
825    LangTag { language: lang(b"kvy"), 	tag: Tag::new(b"KRN ") }, // Yintale Karen -> Karen
826    LangTag { language: lang(b"kw"), 	tag: Tag::new(b"COR ") }, // Cornish
827//  LangTag { language: lang(b"kwk"), 	tag: Tag::new(b"KWK ") }, // Kwakʼwala
828    LangTag { language: lang(b"kww"), 	tag: Tag::new(b"CPP ") }, // Kwinti -> Creoles
829    LangTag { language: lang(b"kwy"), 	tag: Tag::new(b"KON0") }, // San Salvador Kongo -> Kongo
830    LangTag { language: lang(b"kxc"), 	tag: Tag::new(b"KMS ") }, // Konso -> Komso
831    LangTag { language: lang(b"kxd"), 	tag: Tag::new(b"MLY ") }, // Brunei -> Malay
832    LangTag { language: lang(b"kxf"), 	tag: Tag::new(b"KRN ") }, // Manumanaw Karen -> Karen
833    LangTag { language: lang(b"kxk"), 	tag: Tag::new(b"KRN ") }, // Zayein Karen -> Karen
834    LangTag { language: lang(b"kxl"), 	tag: Tag::new(b"KUU ") }, // Nepali Kurux (retired code) -> Kurukh
835    LangTag { language: lang(b"kxu"), 	tag: Tag::new(b"KUI ") }, // Kui (India) (retired code)
836    LangTag { language: lang(b"ky"), 	tag: Tag::new(b"KIR ") }, // Kirghiz (Kyrgyz)
837    LangTag { language: lang(b"kyk"), 	tag: Tag::new(&[0; 4]) }, // Kamayo != Koryak
838    LangTag { language: lang(b"kyu"), 	tag: Tag::new(b"KYU ") }, // Western Kayah
839    LangTag { language: lang(b"kyu"), 	tag: Tag::new(b"KRN ") }, // Western Kayah -> Karen
840    LangTag { language: lang(b"la"), 	tag: Tag::new(b"LAT ") }, // Latin
841    LangTag { language: lang(b"lac"), 	tag: Tag::new(b"MYN ") }, // Lacandon -> Mayan
842    LangTag { language: lang(b"lad"), 	tag: Tag::new(b"JUD ") }, // Ladino
843    LangTag { language: lang(b"lah"), 	tag: Tag::new(&[0; 4]) }, // Lahnda [macrolanguage] != Lahuli
844    LangTag { language: lang(b"lak"), 	tag: Tag::new(&[0; 4]) }, // Laka (Nigeria) (retired code) != Lak
845    LangTag { language: lang(b"lam"), 	tag: Tag::new(&[0; 4]) }, // Lamba != Lambani
846    LangTag { language: lang(b"laz"), 	tag: Tag::new(&[0; 4]) }, // Aribwatsa != Laz
847    LangTag { language: lang(b"lb"), 	tag: Tag::new(b"LTZ ") }, // Luxembourgish
848    LangTag { language: lang(b"lbe"), 	tag: Tag::new(b"LAK ") }, // Lak
849    LangTag { language: lang(b"lbj"), 	tag: Tag::new(b"LDK ") }, // Ladakhi
850    LangTag { language: lang(b"lbl"), 	tag: Tag::new(b"BIK ") }, // Libon Bikol -> Bikol
851    LangTag { language: lang(b"lce"), 	tag: Tag::new(b"MLY ") }, // Loncong -> Malay
852    LangTag { language: lang(b"lcf"), 	tag: Tag::new(b"MLY ") }, // Lubu -> Malay
853    LangTag { language: lang(b"ldi"), 	tag: Tag::new(b"KON0") }, // Laari -> Kongo
854    LangTag { language: lang(b"ldk"), 	tag: Tag::new(&[0; 4]) }, // Leelau != Ladakhi
855//  LangTag { language: lang(b"lef"), 	tag: Tag::new(b"LEF ") }, // Lelemi
856//  LangTag { language: lang(b"lez"), 	tag: Tag::new(b"LEZ ") }, // Lezghian -> Lezgi
857    LangTag { language: lang(b"lg"), 	tag: Tag::new(b"LUG ") }, // Ganda
858    LangTag { language: lang(b"li"), 	tag: Tag::new(b"LIM ") }, // Limburgish
859    LangTag { language: lang(b"lif"), 	tag: Tag::new(b"LMB ") }, // Limbu
860//  LangTag { language: lang(b"lij"), 	tag: Tag::new(b"LIJ ") }, // Ligurian
861    LangTag { language: lang(b"lir"), 	tag: Tag::new(b"CPP ") }, // Liberian English -> Creoles
862//  LangTag { language: lang(b"lis"), 	tag: Tag::new(b"LIS ") }, // Lisu
863//  LangTag { language: lang(b"liv"), 	tag: Tag::new(b"LIV ") }, // Liv
864    LangTag { language: lang(b"liw"), 	tag: Tag::new(b"MLY ") }, // Col -> Malay
865    LangTag { language: lang(b"liy"), 	tag: Tag::new(b"BAD0") }, // Banda-Bambari -> Banda
866//  LangTag { language: lang(b"ljp"), 	tag: Tag::new(b"LJP ") }, // Lampung Api -> Lampung
867    LangTag { language: lang(b"lkb"), 	tag: Tag::new(b"LUH ") }, // Kabras -> Luyia
868//  LangTag { language: lang(b"lki"), 	tag: Tag::new(b"LKI ") }, // Laki
869    LangTag { language: lang(b"lko"), 	tag: Tag::new(b"LUH ") }, // Khayo -> Luyia
870    LangTag { language: lang(b"lks"), 	tag: Tag::new(b"LUH ") }, // Kisa -> Luyia
871    LangTag { language: lang(b"lld"), 	tag: Tag::new(b"LAD ") }, // Ladin
872    LangTag { language: lang(b"lma"), 	tag: Tag::new(&[0; 4]) }, // East Limba != Low Mari
873    LangTag { language: lang(b"lmb"), 	tag: Tag::new(&[0; 4]) }, // Merei != Limbu
874    LangTag { language: lang(b"lmn"), 	tag: Tag::new(b"LAM ") }, // Lambadi -> Lambani
875//  LangTag { language: lang(b"lmo"), 	tag: Tag::new(b"LMO ") }, // Lombard
876    LangTag { language: lang(b"lmw"), 	tag: Tag::new(&[0; 4]) }, // Lake Miwok != Lomwe
877    LangTag { language: lang(b"ln"), 	tag: Tag::new(b"LIN ") }, // Lingala
878    LangTag { language: lang(b"lna"), 	tag: Tag::new(b"BAD0") }, // Langbashe -> Banda
879    LangTag { language: lang(b"lnl"), 	tag: Tag::new(b"BAD0") }, // South Central Banda -> Banda
880    LangTag { language: lang(b"lo"), 	tag: Tag::new(b"LAO ") }, // Lao
881//  LangTag { language: lang(b"lom"), 	tag: Tag::new(b"LOM ") }, // Loma (Liberia)
882    LangTag { language: lang(b"lou"), 	tag: Tag::new(b"CPP ") }, // Louisiana Creole -> Creoles
883//  LangTag { language: lang(b"lpo"), 	tag: Tag::new(b"LPO ") }, // Lipo
884//  LangTag { language: lang(b"lrc"), 	tag: Tag::new(b"LRC ") }, // Northern Luri -> Luri
885    LangTag { language: lang(b"lri"), 	tag: Tag::new(b"LUH ") }, // Marachi -> Luyia
886    LangTag { language: lang(b"lrm"), 	tag: Tag::new(b"LUH ") }, // Marama -> Luyia
887    LangTag { language: lang(b"lrt"), 	tag: Tag::new(b"CPP ") }, // Larantuka Malay -> Creoles
888    LangTag { language: lang(b"lsb"), 	tag: Tag::new(&[0; 4]) }, // Burundian Sign Language != Lower Sorbian
889    LangTag { language: lang(b"lsm"), 	tag: Tag::new(b"LUH ") }, // Saamia -> Luyia
890    LangTag { language: lang(b"lt"), 	tag: Tag::new(b"LTH ") }, // Lithuanian
891    LangTag { language: lang(b"ltg"), 	tag: Tag::new(b"LVI ") }, // Latgalian -> Latvian
892    LangTag { language: lang(b"lth"), 	tag: Tag::new(&[0; 4]) }, // Thur != Lithuanian
893    LangTag { language: lang(b"lto"), 	tag: Tag::new(b"LUH ") }, // Tsotso -> Luyia
894    LangTag { language: lang(b"lts"), 	tag: Tag::new(b"LUH ") }, // Tachoni -> Luyia
895    LangTag { language: lang(b"lu"), 	tag: Tag::new(b"LUB ") }, // Luba-Katanga
896//  LangTag { language: lang(b"lua"), 	tag: Tag::new(b"LUA ") }, // Luba-Lulua
897    LangTag { language: lang(b"luh"), 	tag: Tag::new(b"ZHS ") }, // Leizhou Chinese -> Chinese, Simplified
898//  LangTag { language: lang(b"luo"), 	tag: Tag::new(b"LUO ") }, // Luo (Kenya and Tanzania)
899    LangTag { language: lang(b"lus"), 	tag: Tag::new(b"MIZ ") }, // Lushai -> Mizo
900    LangTag { language: lang(b"lus"), 	tag: Tag::new(b"QIN ") }, // Lushai -> Chin
901//  LangTag { language: lang(b"lut"), 	tag: Tag::new(b"LUT ") }, // Lushootseed
902    LangTag { language: lang(b"luy"), 	tag: Tag::new(b"LUH ") }, // Luyia [macrolanguage]
903    LangTag { language: lang(b"luz"), 	tag: Tag::new(b"LRC ") }, // Southern Luri -> Luri
904    LangTag { language: lang(b"lv"), 	tag: Tag::new(b"LVI ") }, // Latvian [macrolanguage]
905    LangTag { language: lang(b"lvi"), 	tag: Tag::new(&[0; 4]) }, // Lavi != Latvian
906    LangTag { language: lang(b"lvs"), 	tag: Tag::new(b"LVI ") }, // Standard Latvian -> Latvian
907    LangTag { language: lang(b"lwg"), 	tag: Tag::new(b"LUH ") }, // Wanga -> Luyia
908    LangTag { language: lang(b"lzh"), 	tag: Tag::new(b"ZHT ") }, // Literary Chinese -> Chinese, Traditional
909    LangTag { language: lang(b"lzz"), 	tag: Tag::new(b"LAZ ") }, // Laz
910//  LangTag { language: lang(b"mad"), 	tag: Tag::new(b"MAD ") }, // Madurese -> Madura
911//  LangTag { language: lang(b"mag"), 	tag: Tag::new(b"MAG ") }, // Magahi
912    LangTag { language: lang(b"mai"), 	tag: Tag::new(b"MTH ") }, // Maithili
913    LangTag { language: lang(b"maj"), 	tag: Tag::new(&[0; 4]) }, // Jalapa De Díaz Mazatec != Majang
914    LangTag { language: lang(b"mak"), 	tag: Tag::new(b"MKR ") }, // Makasar
915    LangTag { language: lang(b"mam"), 	tag: Tag::new(b"MAM ") }, // Mam
916    LangTag { language: lang(b"mam"), 	tag: Tag::new(b"MYN ") }, // Mam -> Mayan
917    LangTag { language: lang(b"man"), 	tag: Tag::new(b"MNK ") }, // Mandingo [macrolanguage] -> Maninka
918    LangTag { language: lang(b"map"), 	tag: Tag::new(&[0; 4]) }, // Austronesian [collection] != Mapudungun
919    LangTag { language: lang(b"maw"), 	tag: Tag::new(&[0; 4]) }, // Mampruli != Marwari
920    LangTag { language: lang(b"max"), 	tag: Tag::new(b"MLY ") }, // North Moluccan Malay -> Malay
921    LangTag { language: lang(b"max"), 	tag: Tag::new(b"CPP ") }, // North Moluccan Malay -> Creoles
922    LangTag { language: lang(b"mbf"), 	tag: Tag::new(b"CPP ") }, // Baba Malay -> Creoles
923    LangTag { language: lang(b"mbn"), 	tag: Tag::new(&[0; 4]) }, // Macaguán != Mbundu
924//  LangTag { language: lang(b"mbo"), 	tag: Tag::new(b"MBO ") }, // Mbo (Cameroon)
925    LangTag { language: lang(b"mch"), 	tag: Tag::new(&[0; 4]) }, // Maquiritari != Manchu
926    LangTag { language: lang(b"mcm"), 	tag: Tag::new(b"CPP ") }, // Malaccan Creole Portuguese -> Creoles
927    LangTag { language: lang(b"mcr"), 	tag: Tag::new(&[0; 4]) }, // Menya != Moose Cree
928    LangTag { language: lang(b"mct"), 	tag: Tag::new(b"BTI ") }, // Mengisa -> Beti
929    LangTag { language: lang(b"mde"), 	tag: Tag::new(&[0; 4]) }, // Maba (Chad) != Mende
930    LangTag { language: lang(b"mdf"), 	tag: Tag::new(b"MOK ") }, // Moksha
931//  LangTag { language: lang(b"mdr"), 	tag: Tag::new(b"MDR ") }, // Mandar
932    LangTag { language: lang(b"mdy"), 	tag: Tag::new(b"MLE ") }, // Male (Ethiopia)
933    LangTag { language: lang(b"men"), 	tag: Tag::new(b"MDE ") }, // Mende (Sierra Leone)
934    LangTag { language: lang(b"meo"), 	tag: Tag::new(b"MLY ") }, // Kedah Malay -> Malay
935//  LangTag { language: lang(b"mer"), 	tag: Tag::new(b"MER ") }, // Meru
936//  LangTag { language: lang(b"mev"), 	tag: Tag::new(b"MEV ") }, // Mano
937    LangTag { language: lang(b"mfa"), 	tag: Tag::new(b"MFA ") }, // Pattani Malay
938    LangTag { language: lang(b"mfa"), 	tag: Tag::new(b"MLY ") }, // Pattani Malay -> Malay
939    LangTag { language: lang(b"mfb"), 	tag: Tag::new(b"MLY ") }, // Bangka -> Malay
940    LangTag { language: lang(b"mfe"), 	tag: Tag::new(b"MFE ") }, // Morisyen
941    LangTag { language: lang(b"mfe"), 	tag: Tag::new(b"CPP ") }, // Morisyen -> Creoles
942    LangTag { language: lang(b"mfp"), 	tag: Tag::new(b"CPP ") }, // Makassar Malay -> Creoles
943    LangTag { language: lang(b"mg"), 	tag: Tag::new(b"MLG ") }, // Malagasy [macrolanguage]
944    LangTag { language: lang(b"mga"), 	tag: Tag::new(b"SGA ") }, // Middle Irish (900-1200) -> Old Irish
945    LangTag { language: lang(b"mh"), 	tag: Tag::new(b"MAH ") }, // Marshallese
946    LangTag { language: lang(b"mhc"), 	tag: Tag::new(b"MYN ") }, // Mocho -> Mayan
947    LangTag { language: lang(b"mhr"), 	tag: Tag::new(b"LMA ") }, // Eastern Mari -> Low Mari
948    LangTag { language: lang(b"mhv"), 	tag: Tag::new(b"ARK ") }, // Arakanese (retired code) -> Rakhine
949    LangTag { language: lang(b"mi"), 	tag: Tag::new(b"MRI ") }, // Maori
950    LangTag { language: lang(b"min"), 	tag: Tag::new(b"MIN ") }, // Minangkabau
951    LangTag { language: lang(b"min"), 	tag: Tag::new(b"MLY ") }, // Minangkabau -> Malay
952    LangTag { language: lang(b"miz"), 	tag: Tag::new(&[0; 4]) }, // Coatzospan Mixtec != Mizo
953    LangTag { language: lang(b"mk"), 	tag: Tag::new(b"MKD ") }, // Macedonian
954    LangTag { language: lang(b"mkn"), 	tag: Tag::new(b"CPP ") }, // Kupang Malay -> Creoles
955    LangTag { language: lang(b"mkr"), 	tag: Tag::new(&[0; 4]) }, // Malas != Makasar
956    LangTag { language: lang(b"mku"), 	tag: Tag::new(b"MNK ") }, // Konyanka Maninka -> Maninka
957//  LangTag { language: lang(b"mkw"), 	tag: Tag::new(b"MKW ") }, // Kituba (Congo)
958    LangTag { language: lang(b"ml"), 	tag: Tag::new(b"MAL ") }, // Malayalam -> Malayalam Traditional
959    LangTag { language: lang(b"ml"), 	tag: Tag::new(b"MLR ") }, // Malayalam -> Malayalam Reformed
960    LangTag { language: lang(b"mle"), 	tag: Tag::new(&[0; 4]) }, // Manambu != Male
961    LangTag { language: lang(b"mln"), 	tag: Tag::new(&[0; 4]) }, // Malango != Malinke
962    LangTag { language: lang(b"mlq"), 	tag: Tag::new(b"MLN ") }, // Western Maninkakan -> Malinke
963    LangTag { language: lang(b"mlq"), 	tag: Tag::new(b"MNK ") }, // Western Maninkakan -> Maninka
964    LangTag { language: lang(b"mlr"), 	tag: Tag::new(&[0; 4]) }, // Vame != Malayalam Reformed
965    LangTag { language: lang(b"mmr"), 	tag: Tag::new(b"HMN ") }, // Western Xiangxi Miao -> Hmong
966    LangTag { language: lang(b"mn"), 	tag: Tag::new(b"MNG ") }, // Mongolian [macrolanguage]
967    LangTag { language: lang(b"mnc"), 	tag: Tag::new(b"MCH ") }, // Manchu
968    LangTag { language: lang(b"mnd"), 	tag: Tag::new(&[0; 4]) }, // Mondé != Mandinka
969    LangTag { language: lang(b"mng"), 	tag: Tag::new(&[0; 4]) }, // Eastern Mnong != Mongolian
970    LangTag { language: lang(b"mnh"), 	tag: Tag::new(b"BAD0") }, // Mono (Democratic Republic of Congo) -> Banda
971//  LangTag { language: lang(b"mni"), 	tag: Tag::new(b"MNI ") }, // Manipuri
972    LangTag { language: lang(b"mnk"), 	tag: Tag::new(b"MND ") }, // Mandinka
973    LangTag { language: lang(b"mnk"), 	tag: Tag::new(b"MNK ") }, // Mandinka -> Maninka
974    LangTag { language: lang(b"mnp"), 	tag: Tag::new(b"ZHS ") }, // Min Bei Chinese -> Chinese, Simplified
975    LangTag { language: lang(b"mns"), 	tag: Tag::new(b"MAN ") }, // Mansi
976    LangTag { language: lang(b"mnw"), 	tag: Tag::new(b"MON ") }, // Mon
977    LangTag { language: lang(b"mnw"), 	tag: Tag::new(b"MONT") }, // Mon -> Thailand Mon
978    LangTag { language: lang(b"mnx"), 	tag: Tag::new(&[0; 4]) }, // Manikion != Manx
979    LangTag { language: lang(b"mo"), 	tag: Tag::new(b"MOL ") }, // Moldavian (retired code)
980    LangTag { language: lang(b"mo"), 	tag: Tag::new(b"ROM ") }, // Moldavian (retired code) -> Romanian
981    LangTag { language: lang(b"mod"), 	tag: Tag::new(b"CPP ") }, // Mobilian -> Creoles
982//  LangTag { language: lang(b"moh"), 	tag: Tag::new(b"MOH ") }, // Mohawk
983    LangTag { language: lang(b"mok"), 	tag: Tag::new(&[0; 4]) }, // Morori != Moksha
984    LangTag { language: lang(b"mop"), 	tag: Tag::new(b"MYN ") }, // Mopán Maya -> Mayan
985    LangTag { language: lang(b"mor"), 	tag: Tag::new(&[0; 4]) }, // Moro != Moroccan
986//  LangTag { language: lang(b"mos"), 	tag: Tag::new(b"MOS ") }, // Mossi
987    LangTag { language: lang(b"mpe"), 	tag: Tag::new(b"MAJ ") }, // Majang
988    LangTag { language: lang(b"mqg"), 	tag: Tag::new(b"MLY ") }, // Kota Bangun Kutai Malay -> Malay
989    LangTag { language: lang(b"mr"), 	tag: Tag::new(b"MAR ") }, // Marathi
990    LangTag { language: lang(b"mrh"), 	tag: Tag::new(b"QIN ") }, // Mara Chin -> Chin
991    LangTag { language: lang(b"mrj"), 	tag: Tag::new(b"HMA ") }, // Western Mari -> High Mari
992    LangTag { language: lang(b"ms"), 	tag: Tag::new(b"MLY ") }, // Malay [macrolanguage]
993    LangTag { language: lang(b"msc"), 	tag: Tag::new(b"MNK ") }, // Sankaran Maninka -> Maninka
994    LangTag { language: lang(b"msh"), 	tag: Tag::new(b"MLG ") }, // Masikoro Malagasy -> Malagasy
995    LangTag { language: lang(b"msi"), 	tag: Tag::new(b"MLY ") }, // Sabah Malay -> Malay
996    LangTag { language: lang(b"msi"), 	tag: Tag::new(b"CPP ") }, // Sabah Malay -> Creoles
997    LangTag { language: lang(b"mt"), 	tag: Tag::new(b"MTS ") }, // Maltese
998    LangTag { language: lang(b"mth"), 	tag: Tag::new(&[0; 4]) }, // Munggui != Maithili
999    LangTag { language: lang(b"mtr"), 	tag: Tag::new(b"MAW ") }, // Mewari -> Marwari
1000    LangTag { language: lang(b"mts"), 	tag: Tag::new(&[0; 4]) }, // Yora != Maltese
1001    LangTag { language: lang(b"mud"), 	tag: Tag::new(b"CPP ") }, // Mednyj Aleut -> Creoles
1002    LangTag { language: lang(b"mui"), 	tag: Tag::new(b"MLY ") }, // Musi -> Malay
1003    LangTag { language: lang(b"mun"), 	tag: Tag::new(&[0; 4]) }, // Munda [collection] != Mundari
1004    LangTag { language: lang(b"mup"), 	tag: Tag::new(b"RAJ ") }, // Malvi -> Rajasthani
1005    LangTag { language: lang(b"muq"), 	tag: Tag::new(b"HMN ") }, // Eastern Xiangxi Miao -> Hmong
1006//  LangTag { language: lang(b"mus"), 	tag: Tag::new(b"MUS ") }, // Creek -> Muscogee
1007    LangTag { language: lang(b"mvb"), 	tag: Tag::new(b"ATH ") }, // Mattole -> Athapaskan
1008    LangTag { language: lang(b"mve"), 	tag: Tag::new(b"MAW ") }, // Marwari (Pakistan)
1009    LangTag { language: lang(b"mvf"), 	tag: Tag::new(b"MNG ") }, // Peripheral Mongolian -> Mongolian
1010    LangTag { language: lang(b"mwk"), 	tag: Tag::new(b"MNK ") }, // Kita Maninkakan -> Maninka
1011//  LangTag { language: lang(b"mwl"), 	tag: Tag::new(b"MWL ") }, // Mirandese
1012    LangTag { language: lang(b"mwq"), 	tag: Tag::new(b"QIN ") }, // Mün Chin -> Chin
1013    LangTag { language: lang(b"mwr"), 	tag: Tag::new(b"MAW ") }, // Marwari [macrolanguage]
1014    LangTag { language: lang(b"mww"), 	tag: Tag::new(b"MWW ") }, // Hmong Daw
1015    LangTag { language: lang(b"mww"), 	tag: Tag::new(b"HMN ") }, // Hmong Daw -> Hmong
1016    LangTag { language: lang(b"my"), 	tag: Tag::new(b"BRM ") }, // Burmese
1017    LangTag { language: lang(b"mym"), 	tag: Tag::new(b"MEN ") }, // Me’en
1018//  LangTag { language: lang(b"myn"), 	tag: Tag::new(b"MYN ") }, // Mayan [collection]
1019    LangTag { language: lang(b"myq"), 	tag: Tag::new(b"MNK ") }, // Forest Maninka (retired code) -> Maninka
1020    LangTag { language: lang(b"myv"), 	tag: Tag::new(b"ERZ ") }, // Erzya
1021    LangTag { language: lang(b"mzb"), 	tag: Tag::new(b"BBR ") }, // Tumzabt -> Berber
1022//  LangTag { language: lang(b"mzn"), 	tag: Tag::new(b"MZN ") }, // Mazanderani
1023    LangTag { language: lang(b"mzs"), 	tag: Tag::new(b"CPP ") }, // Macanese -> Creoles
1024    LangTag { language: lang(b"na"), 	tag: Tag::new(b"NAU ") }, // Nauru -> Nauruan
1025    LangTag { language: lang(b"nag"), 	tag: Tag::new(b"NAG ") }, // Naga Pidgin -> Naga-Assamese
1026    LangTag { language: lang(b"nag"), 	tag: Tag::new(b"CPP ") }, // Naga Pidgin -> Creoles
1027//  LangTag { language: lang(b"nah"), 	tag: Tag::new(b"NAH ") }, // Nahuatl [collection]
1028    LangTag { language: lang(b"nan"), 	tag: Tag::new(b"ZHS ") }, // Min Nan Chinese -> Chinese, Simplified
1029//  LangTag { language: lang(b"nap"), 	tag: Tag::new(b"NAP ") }, // Neapolitan
1030    LangTag { language: lang(b"nas"), 	tag: Tag::new(&[0; 4]) }, // Naasioi != Naskapi
1031    LangTag { language: lang(b"naz"), 	tag: Tag::new(b"NAH ") }, // Coatepec Nahuatl -> Nahuatl
1032    LangTag { language: lang(b"nb"), 	tag: Tag::new(b"NOR ") }, // Norwegian Bokmål -> Norwegian
1033    LangTag { language: lang(b"nch"), 	tag: Tag::new(b"NAH ") }, // Central Huasteca Nahuatl -> Nahuatl
1034    LangTag { language: lang(b"nci"), 	tag: Tag::new(b"NAH ") }, // Classical Nahuatl -> Nahuatl
1035    LangTag { language: lang(b"ncj"), 	tag: Tag::new(b"NAH ") }, // Northern Puebla Nahuatl -> Nahuatl
1036    LangTag { language: lang(b"ncl"), 	tag: Tag::new(b"NAH ") }, // Michoacán Nahuatl -> Nahuatl
1037    LangTag { language: lang(b"ncr"), 	tag: Tag::new(&[0; 4]) }, // Ncane != N-Cree
1038    LangTag { language: lang(b"ncx"), 	tag: Tag::new(b"NAH ") }, // Central Puebla Nahuatl -> Nahuatl
1039    LangTag { language: lang(b"nd"), 	tag: Tag::new(b"NDB ") }, // North Ndebele -> Ndebele
1040    LangTag { language: lang(b"ndb"), 	tag: Tag::new(&[0; 4]) }, // Kenswei Nsei != Ndebele
1041//  LangTag { language: lang(b"ndc"), 	tag: Tag::new(b"NDC ") }, // Ndau
1042    LangTag { language: lang(b"ndg"), 	tag: Tag::new(&[0; 4]) }, // Ndengereko != Ndonga
1043//  LangTag { language: lang(b"nds"), 	tag: Tag::new(b"NDS ") }, // Low Saxon
1044    LangTag { language: lang(b"ne"), 	tag: Tag::new(b"NEP ") }, // Nepali [macrolanguage]
1045    LangTag { language: lang(b"nef"), 	tag: Tag::new(b"CPP ") }, // Nefamese -> Creoles
1046//  LangTag { language: lang(b"new"), 	tag: Tag::new(b"NEW ") }, // Newari
1047    LangTag { language: lang(b"ng"), 	tag: Tag::new(b"NDG ") }, // Ndonga
1048//  LangTag { language: lang(b"nga"), 	tag: Tag::new(b"NGA ") }, // Ngbaka
1049    LangTag { language: lang(b"ngl"), 	tag: Tag::new(b"LMW ") }, // Lomwe
1050    LangTag { language: lang(b"ngm"), 	tag: Tag::new(b"CPP ") }, // Ngatik Men's Creole -> Creoles
1051    LangTag { language: lang(b"ngo"), 	tag: Tag::new(b"SXT ") }, // Ngoni (retired code) -> Sutu
1052    LangTag { language: lang(b"ngr"), 	tag: Tag::new(&[0; 4]) }, // Engdewu != Nagari
1053    LangTag { language: lang(b"ngu"), 	tag: Tag::new(b"NAH ") }, // Guerrero Nahuatl -> Nahuatl
1054    LangTag { language: lang(b"nhc"), 	tag: Tag::new(b"NAH ") }, // Tabasco Nahuatl -> Nahuatl
1055    LangTag { language: lang(b"nhd"), 	tag: Tag::new(b"GUA ") }, // Chiripá -> Guarani
1056    LangTag { language: lang(b"nhe"), 	tag: Tag::new(b"NAH ") }, // Eastern Huasteca Nahuatl -> Nahuatl
1057    LangTag { language: lang(b"nhg"), 	tag: Tag::new(b"NAH ") }, // Tetelcingo Nahuatl -> Nahuatl
1058    LangTag { language: lang(b"nhi"), 	tag: Tag::new(b"NAH ") }, // Zacatlán-Ahuacatlán-Tepetzintla Nahuatl -> Nahuatl
1059    LangTag { language: lang(b"nhk"), 	tag: Tag::new(b"NAH ") }, // Isthmus-Cosoleacaque Nahuatl -> Nahuatl
1060    LangTag { language: lang(b"nhm"), 	tag: Tag::new(b"NAH ") }, // Morelos Nahuatl -> Nahuatl
1061    LangTag { language: lang(b"nhn"), 	tag: Tag::new(b"NAH ") }, // Central Nahuatl -> Nahuatl
1062    LangTag { language: lang(b"nhp"), 	tag: Tag::new(b"NAH ") }, // Isthmus-Pajapan Nahuatl -> Nahuatl
1063    LangTag { language: lang(b"nhq"), 	tag: Tag::new(b"NAH ") }, // Huaxcaleca Nahuatl -> Nahuatl
1064    LangTag { language: lang(b"nht"), 	tag: Tag::new(b"NAH ") }, // Ometepec Nahuatl -> Nahuatl
1065    LangTag { language: lang(b"nhv"), 	tag: Tag::new(b"NAH ") }, // Temascaltepec Nahuatl -> Nahuatl
1066    LangTag { language: lang(b"nhw"), 	tag: Tag::new(b"NAH ") }, // Western Huasteca Nahuatl -> Nahuatl
1067    LangTag { language: lang(b"nhx"), 	tag: Tag::new(b"NAH ") }, // Isthmus-Mecayapan Nahuatl -> Nahuatl
1068    LangTag { language: lang(b"nhy"), 	tag: Tag::new(b"NAH ") }, // Northern Oaxaca Nahuatl -> Nahuatl
1069    LangTag { language: lang(b"nhz"), 	tag: Tag::new(b"NAH ") }, // Santa María La Alta Nahuatl -> Nahuatl
1070    LangTag { language: lang(b"niq"), 	tag: Tag::new(b"KAL ") }, // Nandi -> Kalenjin
1071    LangTag { language: lang(b"nis"), 	tag: Tag::new(&[0; 4]) }, // Nimi != Nisi
1072//  LangTag { language: lang(b"niu"), 	tag: Tag::new(b"NIU ") }, // Niuean
1073    LangTag { language: lang(b"niv"), 	tag: Tag::new(b"GIL ") }, // Gilyak
1074    LangTag { language: lang(b"njt"), 	tag: Tag::new(b"CPP ") }, // Ndyuka-Trio Pidgin -> Creoles
1075    LangTag { language: lang(b"njz"), 	tag: Tag::new(b"NIS ") }, // Nyishi -> Nisi
1076    LangTag { language: lang(b"nko"), 	tag: Tag::new(&[0; 4]) }, // Nkonya != N’Ko
1077    LangTag { language: lang(b"nkx"), 	tag: Tag::new(b"IJO ") }, // Nkoroo -> Ijo
1078    LangTag { language: lang(b"nl"), 	tag: Tag::new(b"NLD ") }, // Dutch
1079    LangTag { language: lang(b"nla"), 	tag: Tag::new(b"BML ") }, // Ngombale -> Bamileke
1080    LangTag { language: lang(b"nle"), 	tag: Tag::new(b"LUH ") }, // East Nyala -> Luyia
1081    LangTag { language: lang(b"nln"), 	tag: Tag::new(b"NAH ") }, // Durango Nahuatl (retired code) -> Nahuatl
1082    LangTag { language: lang(b"nlv"), 	tag: Tag::new(b"NAH ") }, // Orizaba Nahuatl -> Nahuatl
1083    LangTag { language: lang(b"nn"), 	tag: Tag::new(b"NYN ") }, // Norwegian Nynorsk (Nynorsk, Norwegian)
1084    LangTag { language: lang(b"nnh"), 	tag: Tag::new(b"BML ") }, // Ngiemboon -> Bamileke
1085    LangTag { language: lang(b"nnz"), 	tag: Tag::new(b"BML ") }, // Nda'nda' -> Bamileke
1086    LangTag { language: lang(b"no"), 	tag: Tag::new(b"NOR ") }, // Norwegian [macrolanguage]
1087    LangTag { language: lang(b"nod"), 	tag: Tag::new(b"NTA ") }, // Northern Thai -> Northern Tai
1088//  LangTag { language: lang(b"noe"), 	tag: Tag::new(b"NOE ") }, // Nimadi
1089//  LangTag { language: lang(b"nog"), 	tag: Tag::new(b"NOG ") }, // Nogai
1090//  LangTag { language: lang(b"nop"), 	tag: Tag::new(b"NOP ") }, // Numanggang
1091//  LangTag { language: lang(b"nov"), 	tag: Tag::new(b"NOV ") }, // Novial
1092    LangTag { language: lang(b"npi"), 	tag: Tag::new(b"NEP ") }, // Nepali
1093    LangTag { language: lang(b"npl"), 	tag: Tag::new(b"NAH ") }, // Southeastern Puebla Nahuatl -> Nahuatl
1094    LangTag { language: lang(b"nqo"), 	tag: Tag::new(b"NKO ") }, // N’Ko
1095    LangTag { language: lang(b"nr"), 	tag: Tag::new(b"NDB ") }, // South Ndebele -> Ndebele
1096    LangTag { language: lang(b"nsk"), 	tag: Tag::new(b"NAS ") }, // Naskapi
1097    LangTag { language: lang(b"nsm"), 	tag: Tag::new(&[0; 4]) }, // Sumi Naga != Northern Sami
1098//  LangTag { language: lang(b"nso"), 	tag: Tag::new(b"NSO ") }, // Northern Sotho
1099    LangTag { language: lang(b"nsu"), 	tag: Tag::new(b"NAH ") }, // Sierra Negra Nahuatl -> Nahuatl
1100    LangTag { language: lang(b"nto"), 	tag: Tag::new(&[0; 4]) }, // Ntomba != Esperanto
1101    LangTag { language: lang(b"nue"), 	tag: Tag::new(b"BAD0") }, // Ngundu -> Banda
1102//  LangTag { language: lang(b"nuk"), 	tag: Tag::new(b"NUK ") }, // Nuu-chah-nulth
1103    LangTag { language: lang(b"nuu"), 	tag: Tag::new(b"BAD0") }, // Ngbundu -> Banda
1104    LangTag { language: lang(b"nuz"), 	tag: Tag::new(b"NAH ") }, // Tlamacazapa Nahuatl -> Nahuatl
1105    LangTag { language: lang(b"nv"), 	tag: Tag::new(b"NAV ") }, // Navajo
1106    LangTag { language: lang(b"nv"), 	tag: Tag::new(b"ATH ") }, // Navajo -> Athapaskan
1107    LangTag { language: lang(b"nwe"), 	tag: Tag::new(b"BML ") }, // Ngwe -> Bamileke
1108    LangTag { language: lang(b"ny"), 	tag: Tag::new(b"CHI ") }, // Chichewa (Chewa, Nyanja)
1109    LangTag { language: lang(b"nyd"), 	tag: Tag::new(b"LUH ") }, // Nyore -> Luyia
1110//  LangTag { language: lang(b"nym"), 	tag: Tag::new(b"NYM ") }, // Nyamwezi
1111    LangTag { language: lang(b"nyn"), 	tag: Tag::new(b"NKL ") }, // Nyankole
1112//  LangTag { language: lang(b"nza"), 	tag: Tag::new(b"NZA ") }, // Tigon Mbembe -> Mbembe Tigon
1113    LangTag { language: lang(b"oc"), 	tag: Tag::new(b"OCI ") }, // Occitan (post 1500)
1114    LangTag { language: lang(b"oj"), 	tag: Tag::new(b"OJB ") }, // Ojibwa [macrolanguage] -> Ojibway
1115//  LangTag { language: lang(b"ojb"), 	tag: Tag::new(b"OJB ") }, // Northwestern Ojibwa -> Ojibway
1116    LangTag { language: lang(b"ojc"), 	tag: Tag::new(b"OJB ") }, // Central Ojibwa -> Ojibway
1117    LangTag { language: lang(b"ojg"), 	tag: Tag::new(b"OJB ") }, // Eastern Ojibwa -> Ojibway
1118    LangTag { language: lang(b"ojs"), 	tag: Tag::new(b"OCR ") }, // Severn Ojibwa -> Oji-Cree
1119    LangTag { language: lang(b"ojs"), 	tag: Tag::new(b"OJB ") }, // Severn Ojibwa -> Ojibway
1120    LangTag { language: lang(b"ojw"), 	tag: Tag::new(b"OJB ") }, // Western Ojibwa -> Ojibway
1121    LangTag { language: lang(b"okd"), 	tag: Tag::new(b"IJO ") }, // Okodia -> Ijo
1122    LangTag { language: lang(b"oki"), 	tag: Tag::new(b"KAL ") }, // Okiek -> Kalenjin
1123    LangTag { language: lang(b"okm"), 	tag: Tag::new(b"KOH ") }, // Middle Korean (10th-16th cent.) -> Korean Old Hangul
1124    LangTag { language: lang(b"okr"), 	tag: Tag::new(b"IJO ") }, // Kirike -> Ijo
1125    LangTag { language: lang(b"om"), 	tag: Tag::new(b"ORO ") }, // Oromo [macrolanguage]
1126//  LangTag { language: lang(b"one"), 	tag: Tag::new(b"ONE ") }, // Oneida
1127//  LangTag { language: lang(b"ono"), 	tag: Tag::new(b"ONO ") }, // Onondaga
1128    LangTag { language: lang(b"onx"), 	tag: Tag::new(b"CPP ") }, // Onin Based Pidgin -> Creoles
1129    LangTag { language: lang(b"oor"), 	tag: Tag::new(b"CPP ") }, // Oorlams -> Creoles
1130    LangTag { language: lang(b"or"), 	tag: Tag::new(b"ORI ") }, // Odia [macrolanguage]
1131    LangTag { language: lang(b"orc"), 	tag: Tag::new(b"ORO ") }, // Orma -> Oromo
1132    LangTag { language: lang(b"orn"), 	tag: Tag::new(b"MLY ") }, // Orang Kanaq -> Malay
1133    LangTag { language: lang(b"oro"), 	tag: Tag::new(&[0; 4]) }, // Orokolo != Oromo
1134    LangTag { language: lang(b"orr"), 	tag: Tag::new(b"IJO ") }, // Oruma -> Ijo
1135    LangTag { language: lang(b"ors"), 	tag: Tag::new(b"MLY ") }, // Orang Seletar -> Malay
1136    LangTag { language: lang(b"ory"), 	tag: Tag::new(b"ORI ") }, // Odia
1137    LangTag { language: lang(b"os"), 	tag: Tag::new(b"OSS ") }, // Ossetian
1138    LangTag { language: lang(b"otw"), 	tag: Tag::new(b"OJB ") }, // Ottawa -> Ojibway
1139    LangTag { language: lang(b"oua"), 	tag: Tag::new(b"BBR ") }, // Tagargrent -> Berber
1140    LangTag { language: lang(b"pa"), 	tag: Tag::new(b"PAN ") }, // Punjabi
1141    LangTag { language: lang(b"paa"), 	tag: Tag::new(&[0; 4]) }, // Papuan [collection] != Palestinian Aramaic
1142//  LangTag { language: lang(b"pag"), 	tag: Tag::new(b"PAG ") }, // Pangasinan
1143    LangTag { language: lang(b"pal"), 	tag: Tag::new(&[0; 4]) }, // Pahlavi != Pali
1144//  LangTag { language: lang(b"pam"), 	tag: Tag::new(b"PAM ") }, // Pampanga -> Pampangan
1145    LangTag { language: lang(b"pap"), 	tag: Tag::new(b"PAP0") }, // Papiamento -> Papiamentu
1146    LangTag { language: lang(b"pap"), 	tag: Tag::new(b"CPP ") }, // Papiamento -> Creoles
1147    LangTag { language: lang(b"pas"), 	tag: Tag::new(&[0; 4]) }, // Papasena != Pashto
1148//  LangTag { language: lang(b"pau"), 	tag: Tag::new(b"PAU ") }, // Palauan
1149    LangTag { language: lang(b"pbt"), 	tag: Tag::new(b"PAS ") }, // Southern Pashto -> Pashto
1150    LangTag { language: lang(b"pbu"), 	tag: Tag::new(b"PAS ") }, // Northern Pashto -> Pashto
1151//  LangTag { language: lang(b"pcc"), 	tag: Tag::new(b"PCC ") }, // Bouyei
1152//  LangTag { language: lang(b"pcd"), 	tag: Tag::new(b"PCD ") }, // Picard
1153    LangTag { language: lang(b"pce"), 	tag: Tag::new(b"PLG ") }, // Ruching Palaung -> Palaung
1154    LangTag { language: lang(b"pck"), 	tag: Tag::new(b"QIN ") }, // Paite Chin -> Chin
1155    LangTag { language: lang(b"pcm"), 	tag: Tag::new(b"CPP ") }, // Nigerian Pidgin -> Creoles
1156//  LangTag { language: lang(b"pdc"), 	tag: Tag::new(b"PDC ") }, // Pennsylvania German
1157    LangTag { language: lang(b"pdu"), 	tag: Tag::new(b"KRN ") }, // Kayan -> Karen
1158    LangTag { language: lang(b"pea"), 	tag: Tag::new(b"CPP ") }, // Peranakan Indonesian -> Creoles
1159    LangTag { language: lang(b"pel"), 	tag: Tag::new(b"MLY ") }, // Pekal -> Malay
1160    LangTag { language: lang(b"pes"), 	tag: Tag::new(b"FAR ") }, // Iranian Persian -> Persian
1161    LangTag { language: lang(b"pey"), 	tag: Tag::new(b"CPP ") }, // Petjo -> Creoles
1162    LangTag { language: lang(b"pga"), 	tag: Tag::new(b"ARA ") }, // Sudanese Creole Arabic -> Arabic
1163    LangTag { language: lang(b"pga"), 	tag: Tag::new(b"CPP ") }, // Sudanese Creole Arabic -> Creoles
1164//  LangTag { language: lang(b"phk"), 	tag: Tag::new(b"PHK ") }, // Phake
1165    LangTag { language: lang(b"pi"), 	tag: Tag::new(b"PAL ") }, // Pali
1166    LangTag { language: lang(b"pih"), 	tag: Tag::new(b"PIH ") }, // Pitcairn-Norfolk -> Norfolk
1167    LangTag { language: lang(b"pih"), 	tag: Tag::new(b"CPP ") }, // Pitcairn-Norfolk -> Creoles
1168    LangTag { language: lang(b"pil"), 	tag: Tag::new(&[0; 4]) }, // Yom != Filipino
1169    LangTag { language: lang(b"pis"), 	tag: Tag::new(b"CPP ") }, // Pijin -> Creoles
1170    LangTag { language: lang(b"pkh"), 	tag: Tag::new(b"QIN ") }, // Pankhu -> Chin
1171    LangTag { language: lang(b"pko"), 	tag: Tag::new(b"KAL ") }, // Pökoot -> Kalenjin
1172    LangTag { language: lang(b"pl"), 	tag: Tag::new(b"PLK ") }, // Polish
1173    LangTag { language: lang(b"plg"), 	tag: Tag::new(b"PLG0") }, // Pilagá
1174    LangTag { language: lang(b"plk"), 	tag: Tag::new(&[0; 4]) }, // Kohistani Shina != Polish
1175    LangTag { language: lang(b"pll"), 	tag: Tag::new(b"PLG ") }, // Shwe Palaung -> Palaung
1176    LangTag { language: lang(b"pln"), 	tag: Tag::new(b"CPP ") }, // Palenquero -> Creoles
1177    LangTag { language: lang(b"plp"), 	tag: Tag::new(b"PAP ") }, // Palpa (retired code)
1178    LangTag { language: lang(b"plt"), 	tag: Tag::new(b"MLG ") }, // Plateau Malagasy -> Malagasy
1179    LangTag { language: lang(b"pml"), 	tag: Tag::new(b"CPP ") }, // Lingua Franca -> Creoles
1180//  LangTag { language: lang(b"pms"), 	tag: Tag::new(b"PMS ") }, // Piemontese
1181    LangTag { language: lang(b"pmy"), 	tag: Tag::new(b"CPP ") }, // Papuan Malay -> Creoles
1182//  LangTag { language: lang(b"pnb"), 	tag: Tag::new(b"PNB ") }, // Western Panjabi
1183    LangTag { language: lang(b"poc"), 	tag: Tag::new(b"MYN ") }, // Poqomam -> Mayan
1184    LangTag { language: lang(b"poh"), 	tag: Tag::new(b"POH ") }, // Poqomchi' -> Pocomchi
1185    LangTag { language: lang(b"poh"), 	tag: Tag::new(b"MYN ") }, // Poqomchi' -> Mayan
1186//  LangTag { language: lang(b"pon"), 	tag: Tag::new(b"PON ") }, // Pohnpeian
1187    LangTag { language: lang(b"pov"), 	tag: Tag::new(b"CPP ") }, // Upper Guinea Crioulo -> Creoles
1188    LangTag { language: lang(b"ppa"), 	tag: Tag::new(b"BAG ") }, // Pao (retired code) -> Baghelkhandi
1189    LangTag { language: lang(b"pre"), 	tag: Tag::new(b"CPP ") }, // Principense -> Creoles
1190//  LangTag { language: lang(b"pro"), 	tag: Tag::new(b"PRO ") }, // Old Provençal (to 1500) -> Provençal / Old Provençal
1191    LangTag { language: lang(b"prp"), 	tag: Tag::new(b"GUJ ") }, // Parsi (retired code) -> Gujarati
1192    LangTag { language: lang(b"prs"), 	tag: Tag::new(b"DRI ") }, // Dari
1193    LangTag { language: lang(b"prs"), 	tag: Tag::new(b"FAR ") }, // Dari -> Persian
1194    LangTag { language: lang(b"ps"), 	tag: Tag::new(b"PAS ") }, // Pashto [macrolanguage]
1195    LangTag { language: lang(b"pse"), 	tag: Tag::new(b"MLY ") }, // Central Malay -> Malay
1196    LangTag { language: lang(b"pst"), 	tag: Tag::new(b"PAS ") }, // Central Pashto -> Pashto
1197    LangTag { language: lang(b"pt"), 	tag: Tag::new(b"PTG ") }, // Portuguese
1198    LangTag { language: lang(b"pub"), 	tag: Tag::new(b"QIN ") }, // Purum -> Chin
1199    LangTag { language: lang(b"puz"), 	tag: Tag::new(b"QIN ") }, // Purum Naga (retired code) -> Chin
1200    LangTag { language: lang(b"pwo"), 	tag: Tag::new(b"PWO ") }, // Pwo Western Karen -> Western Pwo Karen
1201    LangTag { language: lang(b"pwo"), 	tag: Tag::new(b"KRN ") }, // Pwo Western Karen -> Karen
1202    LangTag { language: lang(b"pww"), 	tag: Tag::new(b"KRN ") }, // Pwo Northern Karen -> Karen
1203    LangTag { language: lang(b"qu"), 	tag: Tag::new(b"QUZ ") }, // Quechua [macrolanguage]
1204    LangTag { language: lang(b"qub"), 	tag: Tag::new(b"QWH ") }, // Huallaga Huánuco Quechua -> Quechua (Peru)
1205    LangTag { language: lang(b"qub"), 	tag: Tag::new(b"QUZ ") }, // Huallaga Huánuco Quechua -> Quechua
1206    LangTag { language: lang(b"quc"), 	tag: Tag::new(b"QUC ") }, // K’iche’
1207    LangTag { language: lang(b"quc"), 	tag: Tag::new(b"MYN ") }, // K'iche' -> Mayan
1208    LangTag { language: lang(b"qud"), 	tag: Tag::new(b"QVI ") }, // Calderón Highland Quichua -> Quechua (Ecuador)
1209    LangTag { language: lang(b"qud"), 	tag: Tag::new(b"QUZ ") }, // Calderón Highland Quichua -> Quechua
1210    LangTag { language: lang(b"quf"), 	tag: Tag::new(b"QUZ ") }, // Lambayeque Quechua -> Quechua
1211    LangTag { language: lang(b"qug"), 	tag: Tag::new(b"QVI ") }, // Chimborazo Highland Quichua -> Quechua (Ecuador)
1212    LangTag { language: lang(b"qug"), 	tag: Tag::new(b"QUZ ") }, // Chimborazo Highland Quichua -> Quechua
1213    LangTag { language: lang(b"quh"), 	tag: Tag::new(b"QUH ") }, // South Bolivian Quechua -> Quechua (Bolivia)
1214    LangTag { language: lang(b"quh"), 	tag: Tag::new(b"QUZ ") }, // South Bolivian Quechua -> Quechua
1215    LangTag { language: lang(b"quk"), 	tag: Tag::new(b"QUZ ") }, // Chachapoyas Quechua -> Quechua
1216    LangTag { language: lang(b"qul"), 	tag: Tag::new(b"QUH ") }, // North Bolivian Quechua -> Quechua (Bolivia)
1217    LangTag { language: lang(b"qul"), 	tag: Tag::new(b"QUZ ") }, // North Bolivian Quechua -> Quechua
1218    LangTag { language: lang(b"qum"), 	tag: Tag::new(b"MYN ") }, // Sipacapense -> Mayan
1219    LangTag { language: lang(b"qup"), 	tag: Tag::new(b"QVI ") }, // Southern Pastaza Quechua -> Quechua (Ecuador)
1220    LangTag { language: lang(b"qup"), 	tag: Tag::new(b"QUZ ") }, // Southern Pastaza Quechua -> Quechua
1221    LangTag { language: lang(b"qur"), 	tag: Tag::new(b"QWH ") }, // Yanahuanca Pasco Quechua -> Quechua (Peru)
1222    LangTag { language: lang(b"qur"), 	tag: Tag::new(b"QUZ ") }, // Yanahuanca Pasco Quechua -> Quechua
1223    LangTag { language: lang(b"qus"), 	tag: Tag::new(b"QUH ") }, // Santiago del Estero Quichua -> Quechua (Bolivia)
1224    LangTag { language: lang(b"qus"), 	tag: Tag::new(b"QUZ ") }, // Santiago del Estero Quichua -> Quechua
1225    LangTag { language: lang(b"quv"), 	tag: Tag::new(b"MYN ") }, // Sacapulteco -> Mayan
1226    LangTag { language: lang(b"quw"), 	tag: Tag::new(b"QVI ") }, // Tena Lowland Quichua -> Quechua (Ecuador)
1227    LangTag { language: lang(b"quw"), 	tag: Tag::new(b"QUZ ") }, // Tena Lowland Quichua -> Quechua
1228    LangTag { language: lang(b"qux"), 	tag: Tag::new(b"QWH ") }, // Yauyos Quechua -> Quechua (Peru)
1229    LangTag { language: lang(b"qux"), 	tag: Tag::new(b"QUZ ") }, // Yauyos Quechua -> Quechua
1230    LangTag { language: lang(b"quy"), 	tag: Tag::new(b"QUZ ") }, // Ayacucho Quechua -> Quechua
1231//  LangTag { language: lang(b"quz"), 	tag: Tag::new(b"QUZ ") }, // Cusco Quechua -> Quechua
1232    LangTag { language: lang(b"qva"), 	tag: Tag::new(b"QWH ") }, // Ambo-Pasco Quechua -> Quechua (Peru)
1233    LangTag { language: lang(b"qva"), 	tag: Tag::new(b"QUZ ") }, // Ambo-Pasco Quechua -> Quechua
1234    LangTag { language: lang(b"qvc"), 	tag: Tag::new(b"QUZ ") }, // Cajamarca Quechua -> Quechua
1235    LangTag { language: lang(b"qve"), 	tag: Tag::new(b"QUZ ") }, // Eastern Apurímac Quechua -> Quechua
1236    LangTag { language: lang(b"qvh"), 	tag: Tag::new(b"QWH ") }, // Huamalíes-Dos de Mayo Huánuco Quechua -> Quechua (Peru)
1237    LangTag { language: lang(b"qvh"), 	tag: Tag::new(b"QUZ ") }, // Huamalíes-Dos de Mayo Huánuco Quechua -> Quechua
1238    LangTag { language: lang(b"qvi"), 	tag: Tag::new(b"QVI ") }, // Imbabura Highland Quichua -> Quechua (Ecuador)
1239    LangTag { language: lang(b"qvi"), 	tag: Tag::new(b"QUZ ") }, // Imbabura Highland Quichua -> Quechua
1240    LangTag { language: lang(b"qvj"), 	tag: Tag::new(b"QVI ") }, // Loja Highland Quichua -> Quechua (Ecuador)
1241    LangTag { language: lang(b"qvj"), 	tag: Tag::new(b"QUZ ") }, // Loja Highland Quichua -> Quechua
1242    LangTag { language: lang(b"qvl"), 	tag: Tag::new(b"QWH ") }, // Cajatambo North Lima Quechua -> Quechua (Peru)
1243    LangTag { language: lang(b"qvl"), 	tag: Tag::new(b"QUZ ") }, // Cajatambo North Lima Quechua -> Quechua
1244    LangTag { language: lang(b"qvm"), 	tag: Tag::new(b"QWH ") }, // Margos-Yarowilca-Lauricocha Quechua -> Quechua (Peru)
1245    LangTag { language: lang(b"qvm"), 	tag: Tag::new(b"QUZ ") }, // Margos-Yarowilca-Lauricocha Quechua -> Quechua
1246    LangTag { language: lang(b"qvn"), 	tag: Tag::new(b"QWH ") }, // North Junín Quechua -> Quechua (Peru)
1247    LangTag { language: lang(b"qvn"), 	tag: Tag::new(b"QUZ ") }, // North Junín Quechua -> Quechua
1248    LangTag { language: lang(b"qvo"), 	tag: Tag::new(b"QVI ") }, // Napo Lowland Quechua -> Quechua (Ecuador)
1249    LangTag { language: lang(b"qvo"), 	tag: Tag::new(b"QUZ ") }, // Napo Lowland Quechua -> Quechua
1250    LangTag { language: lang(b"qvp"), 	tag: Tag::new(b"QWH ") }, // Pacaraos Quechua -> Quechua (Peru)
1251    LangTag { language: lang(b"qvp"), 	tag: Tag::new(b"QUZ ") }, // Pacaraos Quechua -> Quechua
1252    LangTag { language: lang(b"qvs"), 	tag: Tag::new(b"QUZ ") }, // San Martín Quechua -> Quechua
1253    LangTag { language: lang(b"qvw"), 	tag: Tag::new(b"QWH ") }, // Huaylla Wanca Quechua -> Quechua (Peru)
1254    LangTag { language: lang(b"qvw"), 	tag: Tag::new(b"QUZ ") }, // Huaylla Wanca Quechua -> Quechua
1255    LangTag { language: lang(b"qvz"), 	tag: Tag::new(b"QVI ") }, // Northern Pastaza Quichua -> Quechua (Ecuador)
1256    LangTag { language: lang(b"qvz"), 	tag: Tag::new(b"QUZ ") }, // Northern Pastaza Quichua -> Quechua
1257    LangTag { language: lang(b"qwa"), 	tag: Tag::new(b"QWH ") }, // Corongo Ancash Quechua -> Quechua (Peru)
1258    LangTag { language: lang(b"qwa"), 	tag: Tag::new(b"QUZ ") }, // Corongo Ancash Quechua -> Quechua
1259    LangTag { language: lang(b"qwc"), 	tag: Tag::new(b"QUZ ") }, // Classical Quechua -> Quechua
1260    LangTag { language: lang(b"qwh"), 	tag: Tag::new(b"QWH ") }, // Huaylas Ancash Quechua -> Quechua (Peru)
1261    LangTag { language: lang(b"qwh"), 	tag: Tag::new(b"QUZ ") }, // Huaylas Ancash Quechua -> Quechua
1262    LangTag { language: lang(b"qws"), 	tag: Tag::new(b"QWH ") }, // Sihuas Ancash Quechua -> Quechua (Peru)
1263    LangTag { language: lang(b"qws"), 	tag: Tag::new(b"QUZ ") }, // Sihuas Ancash Quechua -> Quechua
1264    LangTag { language: lang(b"qwt"), 	tag: Tag::new(b"ATH ") }, // Kwalhioqua-Tlatskanai -> Athapaskan
1265    LangTag { language: lang(b"qxa"), 	tag: Tag::new(b"QWH ") }, // Chiquián Ancash Quechua -> Quechua (Peru)
1266    LangTag { language: lang(b"qxa"), 	tag: Tag::new(b"QUZ ") }, // Chiquián Ancash Quechua -> Quechua
1267    LangTag { language: lang(b"qxc"), 	tag: Tag::new(b"QWH ") }, // Chincha Quechua -> Quechua (Peru)
1268    LangTag { language: lang(b"qxc"), 	tag: Tag::new(b"QUZ ") }, // Chincha Quechua -> Quechua
1269    LangTag { language: lang(b"qxh"), 	tag: Tag::new(b"QWH ") }, // Panao Huánuco Quechua -> Quechua (Peru)
1270    LangTag { language: lang(b"qxh"), 	tag: Tag::new(b"QUZ ") }, // Panao Huánuco Quechua -> Quechua
1271    LangTag { language: lang(b"qxl"), 	tag: Tag::new(b"QVI ") }, // Salasaca Highland Quichua -> Quechua (Ecuador)
1272    LangTag { language: lang(b"qxl"), 	tag: Tag::new(b"QUZ ") }, // Salasaca Highland Quichua -> Quechua
1273    LangTag { language: lang(b"qxn"), 	tag: Tag::new(b"QWH ") }, // Northern Conchucos Ancash Quechua -> Quechua (Peru)
1274    LangTag { language: lang(b"qxn"), 	tag: Tag::new(b"QUZ ") }, // Northern Conchucos Ancash Quechua -> Quechua
1275    LangTag { language: lang(b"qxo"), 	tag: Tag::new(b"QWH ") }, // Southern Conchucos Ancash Quechua -> Quechua (Peru)
1276    LangTag { language: lang(b"qxo"), 	tag: Tag::new(b"QUZ ") }, // Southern Conchucos Ancash Quechua -> Quechua
1277    LangTag { language: lang(b"qxp"), 	tag: Tag::new(b"QUZ ") }, // Puno Quechua -> Quechua
1278    LangTag { language: lang(b"qxr"), 	tag: Tag::new(b"QVI ") }, // Cañar Highland Quichua -> Quechua (Ecuador)
1279    LangTag { language: lang(b"qxr"), 	tag: Tag::new(b"QUZ ") }, // Cañar Highland Quichua -> Quechua
1280    LangTag { language: lang(b"qxt"), 	tag: Tag::new(b"QWH ") }, // Santa Ana de Tusi Pasco Quechua -> Quechua (Peru)
1281    LangTag { language: lang(b"qxt"), 	tag: Tag::new(b"QUZ ") }, // Santa Ana de Tusi Pasco Quechua -> Quechua
1282    LangTag { language: lang(b"qxu"), 	tag: Tag::new(b"QUZ ") }, // Arequipa-La Unión Quechua -> Quechua
1283    LangTag { language: lang(b"qxw"), 	tag: Tag::new(b"QWH ") }, // Jauja Wanca Quechua -> Quechua (Peru)
1284    LangTag { language: lang(b"qxw"), 	tag: Tag::new(b"QUZ ") }, // Jauja Wanca Quechua -> Quechua
1285    LangTag { language: lang(b"rag"), 	tag: Tag::new(b"LUH ") }, // Logooli -> Luyia
1286//  LangTag { language: lang(b"raj"), 	tag: Tag::new(b"RAJ ") }, // Rajasthani [macrolanguage]
1287    LangTag { language: lang(b"ral"), 	tag: Tag::new(b"QIN ") }, // Ralte -> Chin
1288//  LangTag { language: lang(b"rar"), 	tag: Tag::new(b"RAR ") }, // Rarotongan
1289    LangTag { language: lang(b"rbb"), 	tag: Tag::new(b"PLG ") }, // Rumai Palaung -> Palaung
1290    LangTag { language: lang(b"rbl"), 	tag: Tag::new(b"BIK ") }, // Miraya Bikol -> Bikol
1291    LangTag { language: lang(b"rcf"), 	tag: Tag::new(b"CPP ") }, // Réunion Creole French -> Creoles
1292//  LangTag { language: lang(b"rej"), 	tag: Tag::new(b"REJ ") }, // Rejang
1293//  LangTag { language: lang(b"rhg"), 	tag: Tag::new(b"RHG ") }, // Rohingya
1294//  LangTag { language: lang(b"ria"), 	tag: Tag::new(b"RIA ") }, // Riang (India)
1295    LangTag { language: lang(b"rif"), 	tag: Tag::new(b"RIF ") }, // Tarifit
1296    LangTag { language: lang(b"rif"), 	tag: Tag::new(b"BBR ") }, // Tarifit -> Berber
1297//  LangTag { language: lang(b"rit"), 	tag: Tag::new(b"RIT ") }, // Ritharrngu -> Ritarungo
1298    LangTag { language: lang(b"rki"), 	tag: Tag::new(b"ARK ") }, // Rakhine
1299//  LangTag { language: lang(b"rkw"), 	tag: Tag::new(b"RKW ") }, // Arakwal
1300    LangTag { language: lang(b"rm"), 	tag: Tag::new(b"RMS ") }, // Romansh
1301    LangTag { language: lang(b"rmc"), 	tag: Tag::new(b"ROY ") }, // Carpathian Romani -> Romany
1302    LangTag { language: lang(b"rmf"), 	tag: Tag::new(b"ROY ") }, // Kalo Finnish Romani -> Romany
1303    LangTag { language: lang(b"rml"), 	tag: Tag::new(b"ROY ") }, // Baltic Romani -> Romany
1304    LangTag { language: lang(b"rmn"), 	tag: Tag::new(b"ROY ") }, // Balkan Romani -> Romany
1305    LangTag { language: lang(b"rmo"), 	tag: Tag::new(b"ROY ") }, // Sinte Romani -> Romany
1306    LangTag { language: lang(b"rms"), 	tag: Tag::new(&[0; 4]) }, // Romanian Sign Language != Romansh
1307    LangTag { language: lang(b"rmw"), 	tag: Tag::new(b"ROY ") }, // Welsh Romani -> Romany
1308    LangTag { language: lang(b"rmy"), 	tag: Tag::new(b"RMY ") }, // Vlax Romani
1309    LangTag { language: lang(b"rmy"), 	tag: Tag::new(b"ROY ") }, // Vlax Romani -> Romany
1310    LangTag { language: lang(b"rmz"), 	tag: Tag::new(b"ARK ") }, // Marma -> Rakhine
1311    LangTag { language: lang(b"rn"), 	tag: Tag::new(b"RUN ") }, // Rundi
1312    LangTag { language: lang(b"ro"), 	tag: Tag::new(b"ROM ") }, // Romanian
1313    LangTag { language: lang(b"rom"), 	tag: Tag::new(b"ROY ") }, // Romany [macrolanguage]
1314    LangTag { language: lang(b"rop"), 	tag: Tag::new(b"CPP ") }, // Kriol -> Creoles
1315    LangTag { language: lang(b"rtc"), 	tag: Tag::new(b"QIN ") }, // Rungtu Chin -> Chin
1316//  LangTag { language: lang(b"rtm"), 	tag: Tag::new(b"RTM ") }, // Rotuman
1317    LangTag { language: lang(b"ru"), 	tag: Tag::new(b"RUS ") }, // Russian
1318    LangTag { language: lang(b"rue"), 	tag: Tag::new(b"RSY ") }, // Rusyn
1319//  LangTag { language: lang(b"rup"), 	tag: Tag::new(b"RUP ") }, // Aromanian
1320    LangTag { language: lang(b"rw"), 	tag: Tag::new(b"RUA ") }, // Kinyarwanda
1321    LangTag { language: lang(b"rwr"), 	tag: Tag::new(b"MAW ") }, // Marwari (India)
1322    LangTag { language: lang(b"sa"), 	tag: Tag::new(b"SAN ") }, // Sanskrit [macrolanguage]
1323    LangTag { language: lang(b"sad"), 	tag: Tag::new(&[0; 4]) }, // Sandawe != Sadri
1324    LangTag { language: lang(b"sah"), 	tag: Tag::new(b"YAK ") }, // Yakut -> Sakha
1325    LangTag { language: lang(b"sam"), 	tag: Tag::new(b"PAA ") }, // Samaritan Aramaic -> Palestinian Aramaic
1326//  LangTag { language: lang(b"sas"), 	tag: Tag::new(b"SAS ") }, // Sasak
1327//  LangTag { language: lang(b"sat"), 	tag: Tag::new(b"SAT ") }, // Santali
1328    LangTag { language: lang(b"say"), 	tag: Tag::new(&[0; 4]) }, // Saya != Sayisi
1329    LangTag { language: lang(b"sc"), 	tag: Tag::new(b"SRD ") }, // Sardinian [macrolanguage]
1330    LangTag { language: lang(b"scf"), 	tag: Tag::new(b"CPP ") }, // San Miguel Creole French -> Creoles
1331    LangTag { language: lang(b"sch"), 	tag: Tag::new(b"QIN ") }, // Sakachep -> Chin
1332    LangTag { language: lang(b"sci"), 	tag: Tag::new(b"CPP ") }, // Sri Lankan Creole Malay -> Creoles
1333    LangTag { language: lang(b"sck"), 	tag: Tag::new(b"SAD ") }, // Sadri
1334//  LangTag { language: lang(b"scn"), 	tag: Tag::new(b"SCN ") }, // Sicilian
1335//  LangTag { language: lang(b"sco"), 	tag: Tag::new(b"SCO ") }, // Scots
1336    LangTag { language: lang(b"scs"), 	tag: Tag::new(b"SCS ") }, // North Slavey
1337    LangTag { language: lang(b"scs"), 	tag: Tag::new(b"SLA ") }, // North Slavey -> Slavey
1338    LangTag { language: lang(b"scs"), 	tag: Tag::new(b"ATH ") }, // North Slavey -> Athapaskan
1339    LangTag { language: lang(b"sd"), 	tag: Tag::new(b"SND ") }, // Sindhi
1340    LangTag { language: lang(b"sdc"), 	tag: Tag::new(b"SRD ") }, // Sassarese Sardinian -> Sardinian
1341    LangTag { language: lang(b"sdh"), 	tag: Tag::new(b"KUR ") }, // Southern Kurdish -> Kurdish
1342    LangTag { language: lang(b"sdn"), 	tag: Tag::new(b"SRD ") }, // Gallurese Sardinian -> Sardinian
1343    LangTag { language: lang(b"sds"), 	tag: Tag::new(b"BBR ") }, // Sened -> Berber
1344    LangTag { language: lang(b"se"), 	tag: Tag::new(b"NSM ") }, // Northern Sami
1345//  LangTag { language: lang(b"see"), 	tag: Tag::new(b"SEE ") }, // Seneca
1346    LangTag { language: lang(b"seh"), 	tag: Tag::new(b"SNA ") }, // Sena
1347    LangTag { language: lang(b"sek"), 	tag: Tag::new(b"ATH ") }, // Sekani -> Athapaskan
1348//  LangTag { language: lang(b"sel"), 	tag: Tag::new(b"SEL ") }, // Selkup
1349    LangTag { language: lang(b"sez"), 	tag: Tag::new(b"QIN ") }, // Senthang Chin -> Chin
1350    LangTag { language: lang(b"sfm"), 	tag: Tag::new(b"SFM ") }, // Small Flowery Miao
1351    LangTag { language: lang(b"sfm"), 	tag: Tag::new(b"HMN ") }, // Small Flowery Miao -> Hmong
1352    LangTag { language: lang(b"sg"), 	tag: Tag::new(b"SGO ") }, // Sango
1353//  LangTag { language: lang(b"sga"), 	tag: Tag::new(b"SGA ") }, // Old Irish (to 900)
1354    LangTag { language: lang(b"sgc"), 	tag: Tag::new(b"KAL ") }, // Kipsigis -> Kalenjin
1355    LangTag { language: lang(b"sgo"), 	tag: Tag::new(&[0; 4]) }, // Songa (retired code) != Sango
1356//  LangTag { language: lang(b"sgs"), 	tag: Tag::new(b"SGS ") }, // Samogitian
1357    LangTag { language: lang(b"sgw"), 	tag: Tag::new(b"CHG ") }, // Sebat Bet Gurage -> Chaha Gurage
1358    LangTag { language: lang(b"sh"), 	tag: Tag::new(b"BOS ") }, // Serbo-Croatian [macrolanguage] -> Bosnian
1359    LangTag { language: lang(b"sh"), 	tag: Tag::new(b"HRV ") }, // Serbo-Croatian [macrolanguage] -> Croatian
1360    LangTag { language: lang(b"sh"), 	tag: Tag::new(b"SRB ") }, // Serbo-Croatian [macrolanguage] -> Serbian
1361    LangTag { language: lang(b"shi"), 	tag: Tag::new(b"SHI ") }, // Tachelhit
1362    LangTag { language: lang(b"shi"), 	tag: Tag::new(b"BBR ") }, // Tachelhit -> Berber
1363    LangTag { language: lang(b"shl"), 	tag: Tag::new(b"QIN ") }, // Shendu -> Chin
1364//  LangTag { language: lang(b"shn"), 	tag: Tag::new(b"SHN ") }, // Shan
1365    LangTag { language: lang(b"shu"), 	tag: Tag::new(b"ARA ") }, // Chadian Arabic -> Arabic
1366    LangTag { language: lang(b"shy"), 	tag: Tag::new(b"BBR ") }, // Tachawit -> Berber
1367    LangTag { language: lang(b"si"), 	tag: Tag::new(b"SNH ") }, // Sinhala (Sinhalese)
1368    LangTag { language: lang(b"sib"), 	tag: Tag::new(&[0; 4]) }, // Sebop != Sibe
1369//  LangTag { language: lang(b"sid"), 	tag: Tag::new(b"SID ") }, // Sidamo
1370    LangTag { language: lang(b"sig"), 	tag: Tag::new(&[0; 4]) }, // Paasaal != Silte Gurage
1371    LangTag { language: lang(b"siz"), 	tag: Tag::new(b"BBR ") }, // Siwi -> Berber
1372//  LangTag { language: lang(b"sja"), 	tag: Tag::new(b"SJA ") }, // Epena
1373    LangTag { language: lang(b"sjc"), 	tag: Tag::new(b"ZHS ") }, // Shaojiang Chinese -> Chinese, Simplified
1374    LangTag { language: lang(b"sjd"), 	tag: Tag::new(b"KSM ") }, // Kildin Sami
1375//  LangTag { language: lang(b"sje"), 	tag: Tag::new(b"SJE ") }, // Pite Sami
1376    LangTag { language: lang(b"sjo"), 	tag: Tag::new(b"SIB ") }, // Xibe -> Sibe
1377    LangTag { language: lang(b"sjs"), 	tag: Tag::new(b"BBR ") }, // Senhaja De Srair -> Berber
1378//  LangTag { language: lang(b"sju"), 	tag: Tag::new(b"SJU ") }, // Ume Sami
1379    LangTag { language: lang(b"sk"), 	tag: Tag::new(b"SKY ") }, // Slovak
1380    LangTag { language: lang(b"skg"), 	tag: Tag::new(b"MLG ") }, // Sakalava Malagasy -> Malagasy
1381    LangTag { language: lang(b"skr"), 	tag: Tag::new(b"SRK ") }, // Saraiki
1382    LangTag { language: lang(b"sks"), 	tag: Tag::new(&[0; 4]) }, // Maia != Skolt Sami
1383    LangTag { language: lang(b"skw"), 	tag: Tag::new(b"CPP ") }, // Skepi Creole Dutch -> Creoles
1384    LangTag { language: lang(b"sky"), 	tag: Tag::new(&[0; 4]) }, // Sikaiana != Slovak
1385    LangTag { language: lang(b"sl"), 	tag: Tag::new(b"SLV ") }, // Slovenian
1386    LangTag { language: lang(b"sla"), 	tag: Tag::new(&[0; 4]) }, // Slavic [collection] != Slavey
1387    LangTag { language: lang(b"sm"), 	tag: Tag::new(b"SMO ") }, // Samoan
1388    LangTag { language: lang(b"sma"), 	tag: Tag::new(b"SSM ") }, // Southern Sami
1389    LangTag { language: lang(b"smd"), 	tag: Tag::new(b"MBN ") }, // Sama (retired code) -> Mbundu
1390    LangTag { language: lang(b"smj"), 	tag: Tag::new(b"LSM ") }, // Lule Sami
1391    LangTag { language: lang(b"sml"), 	tag: Tag::new(&[0; 4]) }, // Central Sama != Somali
1392    LangTag { language: lang(b"smn"), 	tag: Tag::new(b"ISM ") }, // Inari Sami
1393    LangTag { language: lang(b"sms"), 	tag: Tag::new(b"SKS ") }, // Skolt Sami
1394    LangTag { language: lang(b"smt"), 	tag: Tag::new(b"QIN ") }, // Simte -> Chin
1395    LangTag { language: lang(b"sn"), 	tag: Tag::new(b"SNA0") }, // Shona
1396    LangTag { language: lang(b"snb"), 	tag: Tag::new(b"IBA ") }, // Sebuyau (retired code) -> Iban
1397    LangTag { language: lang(b"snh"), 	tag: Tag::new(&[0; 4]) }, // Shinabo (retired code) != Sinhala (Sinhalese)
1398//  LangTag { language: lang(b"snk"), 	tag: Tag::new(b"SNK ") }, // Soninke
1399    LangTag { language: lang(b"so"), 	tag: Tag::new(b"SML ") }, // Somali
1400    LangTag { language: lang(b"sog"), 	tag: Tag::new(&[0; 4]) }, // Sogdian != Sodo Gurage
1401//  LangTag { language: lang(b"sop"), 	tag: Tag::new(b"SOP ") }, // Songe
1402    LangTag { language: lang(b"spv"), 	tag: Tag::new(b"ORI ") }, // Sambalpuri -> Odia
1403    LangTag { language: lang(b"spy"), 	tag: Tag::new(b"KAL ") }, // Sabaot -> Kalenjin
1404    LangTag { language: lang(b"sq"), 	tag: Tag::new(b"SQI ") }, // Albanian [macrolanguage]
1405    LangTag { language: lang(b"sr"), 	tag: Tag::new(b"SRB ") }, // Serbian
1406    LangTag { language: lang(b"srb"), 	tag: Tag::new(&[0; 4]) }, // Sora != Serbian
1407    LangTag { language: lang(b"src"), 	tag: Tag::new(b"SRD ") }, // Logudorese Sardinian -> Sardinian
1408    LangTag { language: lang(b"srk"), 	tag: Tag::new(&[0; 4]) }, // Serudung Murut != Saraiki
1409    LangTag { language: lang(b"srm"), 	tag: Tag::new(b"CPP ") }, // Saramaccan -> Creoles
1410    LangTag { language: lang(b"srn"), 	tag: Tag::new(b"CPP ") }, // Sranan Tongo -> Creoles
1411    LangTag { language: lang(b"sro"), 	tag: Tag::new(b"SRD ") }, // Campidanese Sardinian -> Sardinian
1412//  LangTag { language: lang(b"srr"), 	tag: Tag::new(b"SRR ") }, // Serer
1413    LangTag { language: lang(b"srs"), 	tag: Tag::new(b"ATH ") }, // Sarsi -> Athapaskan
1414    LangTag { language: lang(b"ss"), 	tag: Tag::new(b"SWZ ") }, // Swati
1415    LangTag { language: lang(b"ssh"), 	tag: Tag::new(b"ARA ") }, // Shihhi Arabic -> Arabic
1416    LangTag { language: lang(b"ssl"), 	tag: Tag::new(&[0; 4]) }, // Western Sisaala != South Slavey
1417    LangTag { language: lang(b"ssm"), 	tag: Tag::new(&[0; 4]) }, // Semnam != Southern Sami
1418    LangTag { language: lang(b"st"), 	tag: Tag::new(b"SOT ") }, // Southern Sotho
1419    LangTag { language: lang(b"sta"), 	tag: Tag::new(b"CPP ") }, // Settla -> Creoles
1420//  LangTag { language: lang(b"stq"), 	tag: Tag::new(b"STQ ") }, // Saterfriesisch -> Saterland Frisian
1421//  LangTag { language: lang(b"str"), 	tag: Tag::new(b"STR ") }, // Straits Salish
1422    LangTag { language: lang(b"stv"), 	tag: Tag::new(b"SIG ") }, // Silt'e -> Silte Gurage
1423    LangTag { language: lang(b"su"), 	tag: Tag::new(b"SUN ") }, // Sundanese
1424//  LangTag { language: lang(b"suk"), 	tag: Tag::new(b"SUK ") }, // Sukuma
1425    LangTag { language: lang(b"suq"), 	tag: Tag::new(b"SUR ") }, // Suri
1426    LangTag { language: lang(b"sur"), 	tag: Tag::new(&[0; 4]) }, // Mwaghavul != Suri
1427    LangTag { language: lang(b"sv"), 	tag: Tag::new(b"SVE ") }, // Swedish
1428//  LangTag { language: lang(b"sva"), 	tag: Tag::new(b"SVA ") }, // Svan
1429    LangTag { language: lang(b"svc"), 	tag: Tag::new(b"CPP ") }, // Vincentian Creole English -> Creoles
1430    LangTag { language: lang(b"sve"), 	tag: Tag::new(&[0; 4]) }, // Serili != Swedish
1431    LangTag { language: lang(b"sw"), 	tag: Tag::new(b"SWK ") }, // Swahili [macrolanguage]
1432    LangTag { language: lang(b"swb"), 	tag: Tag::new(b"CMR ") }, // Maore Comorian -> Comorian
1433    LangTag { language: lang(b"swc"), 	tag: Tag::new(b"SWK ") }, // Congo Swahili -> Swahili
1434    LangTag { language: lang(b"swh"), 	tag: Tag::new(b"SWK ") }, // Swahili
1435    LangTag { language: lang(b"swk"), 	tag: Tag::new(&[0; 4]) }, // Malawi Sena != Swahili
1436    LangTag { language: lang(b"swn"), 	tag: Tag::new(b"BBR ") }, // Sawknah -> Berber
1437    LangTag { language: lang(b"swv"), 	tag: Tag::new(b"MAW ") }, // Shekhawati -> Marwari
1438//  LangTag { language: lang(b"sxu"), 	tag: Tag::new(b"SXU ") }, // Upper Saxon
1439    LangTag { language: lang(b"syc"), 	tag: Tag::new(b"SYR ") }, // Classical Syriac -> Syriac
1440//  LangTag { language: lang(b"syl"), 	tag: Tag::new(b"SYL ") }, // Sylheti
1441//  LangTag { language: lang(b"syr"), 	tag: Tag::new(b"SYR ") }, // Syriac [macrolanguage]
1442//  LangTag { language: lang(b"szl"), 	tag: Tag::new(b"SZL ") }, // Silesian
1443    LangTag { language: lang(b"ta"), 	tag: Tag::new(b"TAM ") }, // Tamil
1444    LangTag { language: lang(b"taa"), 	tag: Tag::new(b"ATH ") }, // Lower Tanana -> Athapaskan
1445//  LangTag { language: lang(b"tab"), 	tag: Tag::new(b"TAB ") }, // Tabassaran -> Tabasaran
1446    LangTag { language: lang(b"taj"), 	tag: Tag::new(&[0; 4]) }, // Eastern Tamang != Tajiki
1447    LangTag { language: lang(b"taq"), 	tag: Tag::new(b"TAQ ") }, // Tamasheq
1448    LangTag { language: lang(b"taq"), 	tag: Tag::new(b"TMH ") }, // Tamasheq -> Tamashek
1449    LangTag { language: lang(b"taq"), 	tag: Tag::new(b"BBR ") }, // Tamasheq -> Berber
1450    LangTag { language: lang(b"tas"), 	tag: Tag::new(b"CPP ") }, // Tay Boi -> Creoles
1451    LangTag { language: lang(b"tau"), 	tag: Tag::new(b"ATH ") }, // Upper Tanana -> Athapaskan
1452//  LangTag { language: lang(b"tbv"), 	tag: Tag::new(b"TBV ") }, // Tobo
1453    LangTag { language: lang(b"tcb"), 	tag: Tag::new(b"ATH ") }, // Tanacross -> Athapaskan
1454    LangTag { language: lang(b"tce"), 	tag: Tag::new(b"ATH ") }, // Southern Tutchone -> Athapaskan
1455    LangTag { language: lang(b"tch"), 	tag: Tag::new(b"CPP ") }, // Turks And Caicos Creole English -> Creoles
1456    LangTag { language: lang(b"tcp"), 	tag: Tag::new(b"QIN ") }, // Tawr Chin -> Chin
1457    LangTag { language: lang(b"tcs"), 	tag: Tag::new(b"CPP ") }, // Torres Strait Creole -> Creoles
1458    LangTag { language: lang(b"tcy"), 	tag: Tag::new(b"TUL ") }, // Tulu
1459    LangTag { language: lang(b"tcz"), 	tag: Tag::new(b"QIN ") }, // Thado Chin -> Chin
1460//  LangTag { language: lang(b"tdc"), 	tag: Tag::new(b"TDC ") }, // Emberá-Tadó
1461//  LangTag { language: lang(b"tdd"), 	tag: Tag::new(b"TDD ") }, // Tai Nüa -> Dehong Dai
1462    LangTag { language: lang(b"tdx"), 	tag: Tag::new(b"MLG ") }, // Tandroy-Mahafaly Malagasy -> Malagasy
1463    LangTag { language: lang(b"te"), 	tag: Tag::new(b"TEL ") }, // Telugu
1464    LangTag { language: lang(b"tec"), 	tag: Tag::new(b"KAL ") }, // Terik -> Kalenjin
1465    LangTag { language: lang(b"tem"), 	tag: Tag::new(b"TMN ") }, // Timne -> Temne
1466//  LangTag { language: lang(b"tet"), 	tag: Tag::new(b"TET ") }, // Tetum
1467    LangTag { language: lang(b"tez"), 	tag: Tag::new(b"BBR ") }, // Tetserret -> Berber
1468    LangTag { language: lang(b"tfn"), 	tag: Tag::new(b"ATH ") }, // Tanaina -> Athapaskan
1469    LangTag { language: lang(b"tg"), 	tag: Tag::new(b"TAJ ") }, // Tajik -> Tajiki
1470    LangTag { language: lang(b"tgh"), 	tag: Tag::new(b"CPP ") }, // Tobagonian Creole English -> Creoles
1471    LangTag { language: lang(b"tgj"), 	tag: Tag::new(b"NIS ") }, // Tagin -> Nisi
1472    LangTag { language: lang(b"tgn"), 	tag: Tag::new(&[0; 4]) }, // Tandaganon != Tongan
1473    LangTag { language: lang(b"tgr"), 	tag: Tag::new(&[0; 4]) }, // Tareng != Tigre
1474    LangTag { language: lang(b"tgx"), 	tag: Tag::new(b"ATH ") }, // Tagish -> Athapaskan
1475    LangTag { language: lang(b"tgy"), 	tag: Tag::new(&[0; 4]) }, // Togoyo != Tigrinya
1476    LangTag { language: lang(b"th"), 	tag: Tag::new(b"THA ") }, // Thai
1477//  LangTag { language: lang(b"thp"), 	tag: Tag::new(b"THP ") }, // Thompson
1478    LangTag { language: lang(b"tht"), 	tag: Tag::new(b"ATH ") }, // Tahltan -> Athapaskan
1479    LangTag { language: lang(b"thv"), 	tag: Tag::new(b"THV ") }, // Tahaggart Tamahaq
1480    LangTag { language: lang(b"thv"), 	tag: Tag::new(b"TMH ") }, // Tahaggart Tamahaq -> Tamashek
1481    LangTag { language: lang(b"thv"), 	tag: Tag::new(b"BBR ") }, // Tahaggart Tamahaq -> Berber
1482    LangTag { language: lang(b"thz"), 	tag: Tag::new(b"THZ ") }, // Tayart Tamajeq
1483    LangTag { language: lang(b"thz"), 	tag: Tag::new(b"TMH ") }, // Tayart Tamajeq -> Tamashek
1484    LangTag { language: lang(b"thz"), 	tag: Tag::new(b"BBR ") }, // Tayart Tamajeq -> Berber
1485    LangTag { language: lang(b"ti"), 	tag: Tag::new(b"TGY ") }, // Tigrinya
1486    LangTag { language: lang(b"tia"), 	tag: Tag::new(b"BBR ") }, // Tidikelt Tamazight -> Berber
1487    LangTag { language: lang(b"tig"), 	tag: Tag::new(b"TGR ") }, // Tigre
1488//  LangTag { language: lang(b"tiv"), 	tag: Tag::new(b"TIV ") }, // Tiv
1489//  LangTag { language: lang(b"tjl"), 	tag: Tag::new(b"TJL ") }, // Tai Laing
1490    LangTag { language: lang(b"tjo"), 	tag: Tag::new(b"BBR ") }, // Temacine Tamazight -> Berber
1491    LangTag { language: lang(b"tk"), 	tag: Tag::new(b"TKM ") }, // Turkmen
1492    LangTag { language: lang(b"tkg"), 	tag: Tag::new(b"MLG ") }, // Tesaka Malagasy -> Malagasy
1493    LangTag { language: lang(b"tkm"), 	tag: Tag::new(&[0; 4]) }, // Takelma != Turkmen
1494    LangTag { language: lang(b"tl"), 	tag: Tag::new(b"TGL ") }, // Tagalog
1495//  LangTag { language: lang(b"tli"), 	tag: Tag::new(b"TLI ") }, // Tlingit
1496//  LangTag { language: lang(b"tly"), 	tag: Tag::new(b"TLY ") }, // Talysh
1497    LangTag { language: lang(b"tmg"), 	tag: Tag::new(b"CPP ") }, // Ternateño -> Creoles
1498    LangTag { language: lang(b"tmh"), 	tag: Tag::new(b"TMH ") }, // Tamashek [macrolanguage]
1499    LangTag { language: lang(b"tmh"), 	tag: Tag::new(b"BBR ") }, // Tamashek [macrolanguage] -> Berber
1500    LangTag { language: lang(b"tmn"), 	tag: Tag::new(&[0; 4]) }, // Taman (Indonesia) != Temne
1501    LangTag { language: lang(b"tmw"), 	tag: Tag::new(b"MLY ") }, // Temuan -> Malay
1502    LangTag { language: lang(b"tn"), 	tag: Tag::new(b"TNA ") }, // Tswana
1503    LangTag { language: lang(b"tna"), 	tag: Tag::new(&[0; 4]) }, // Tacana != Tswana
1504    LangTag { language: lang(b"tne"), 	tag: Tag::new(&[0; 4]) }, // Tinoc Kallahan (retired code) != Tundra Enets
1505    LangTag { language: lang(b"tnf"), 	tag: Tag::new(b"DRI ") }, // Tangshewi (retired code) -> Dari
1506    LangTag { language: lang(b"tnf"), 	tag: Tag::new(b"FAR ") }, // Tangshewi (retired code) -> Persian
1507    LangTag { language: lang(b"tng"), 	tag: Tag::new(&[0; 4]) }, // Tobanga != Tonga
1508    LangTag { language: lang(b"to"), 	tag: Tag::new(b"TGN ") }, // Tonga (Tonga Islands) -> Tongan
1509    LangTag { language: lang(b"tod"), 	tag: Tag::new(b"TOD0") }, // Toma
1510    LangTag { language: lang(b"toi"), 	tag: Tag::new(b"TNG ") }, // Tonga (Zambia)
1511    LangTag { language: lang(b"toj"), 	tag: Tag::new(b"MYN ") }, // Tojolabal -> Mayan
1512    LangTag { language: lang(b"tol"), 	tag: Tag::new(b"ATH ") }, // Tolowa -> Athapaskan
1513    LangTag { language: lang(b"tor"), 	tag: Tag::new(b"BAD0") }, // Togbo-Vara Banda -> Banda
1514    LangTag { language: lang(b"tpi"), 	tag: Tag::new(b"TPI ") }, // Tok Pisin
1515    LangTag { language: lang(b"tpi"), 	tag: Tag::new(b"CPP ") }, // Tok Pisin -> Creoles
1516    LangTag { language: lang(b"tr"), 	tag: Tag::new(b"TRK ") }, // Turkish
1517    LangTag { language: lang(b"trf"), 	tag: Tag::new(b"CPP ") }, // Trinidadian Creole English -> Creoles
1518    LangTag { language: lang(b"trk"), 	tag: Tag::new(&[0; 4]) }, // Turkic [collection] != Turkish
1519    LangTag { language: lang(b"tru"), 	tag: Tag::new(b"TUA ") }, // Turoyo -> Turoyo Aramaic
1520    LangTag { language: lang(b"tru"), 	tag: Tag::new(b"SYR ") }, // Turoyo -> Syriac
1521    LangTag { language: lang(b"ts"), 	tag: Tag::new(b"TSG ") }, // Tsonga
1522    LangTag { language: lang(b"tsg"), 	tag: Tag::new(&[0; 4]) }, // Tausug != Tsonga
1523//  LangTag { language: lang(b"tsj"), 	tag: Tag::new(b"TSJ ") }, // Tshangla
1524    LangTag { language: lang(b"tt"), 	tag: Tag::new(b"TAT ") }, // Tatar
1525    LangTag { language: lang(b"ttc"), 	tag: Tag::new(b"MYN ") }, // Tektiteko -> Mayan
1526    LangTag { language: lang(b"ttm"), 	tag: Tag::new(b"ATH ") }, // Northern Tutchone -> Athapaskan
1527    LangTag { language: lang(b"ttq"), 	tag: Tag::new(b"TTQ ") }, // Tawallammat Tamajaq
1528    LangTag { language: lang(b"ttq"), 	tag: Tag::new(b"TMH ") }, // Tawallammat Tamajaq -> Tamashek
1529    LangTag { language: lang(b"ttq"), 	tag: Tag::new(b"BBR ") }, // Tawallammat Tamajaq -> Berber
1530    LangTag { language: lang(b"tua"), 	tag: Tag::new(&[0; 4]) }, // Wiarumus != Turoyo Aramaic
1531    LangTag { language: lang(b"tul"), 	tag: Tag::new(&[0; 4]) }, // Tula != Tulu
1532//  LangTag { language: lang(b"tum"), 	tag: Tag::new(b"TUM ") }, // Tumbuka
1533//  LangTag { language: lang(b"tus"), 	tag: Tag::new(b"TUS ") }, // Tuscarora
1534    LangTag { language: lang(b"tuu"), 	tag: Tag::new(b"ATH ") }, // Tututni -> Athapaskan
1535    LangTag { language: lang(b"tuv"), 	tag: Tag::new(&[0; 4]) }, // Turkana != Tuvin
1536    LangTag { language: lang(b"tuy"), 	tag: Tag::new(b"KAL ") }, // Tugen -> Kalenjin
1537//  LangTag { language: lang(b"tvl"), 	tag: Tag::new(b"TVL ") }, // Tuvalu
1538    LangTag { language: lang(b"tvy"), 	tag: Tag::new(b"CPP ") }, // Timor Pidgin -> Creoles
1539    LangTag { language: lang(b"tw"), 	tag: Tag::new(b"TWI ") }, // Twi
1540    LangTag { language: lang(b"tw"), 	tag: Tag::new(b"AKA ") }, // Twi -> Akan
1541    LangTag { language: lang(b"txc"), 	tag: Tag::new(b"ATH ") }, // Tsetsaut -> Athapaskan
1542    LangTag { language: lang(b"txy"), 	tag: Tag::new(b"MLG ") }, // Tanosy Malagasy -> Malagasy
1543    LangTag { language: lang(b"ty"), 	tag: Tag::new(b"THT ") }, // Tahitian
1544    LangTag { language: lang(b"tyv"), 	tag: Tag::new(b"TUV ") }, // Tuvinian -> Tuvin
1545//  LangTag { language: lang(b"tyz"), 	tag: Tag::new(b"TYZ ") }, // Tày
1546    LangTag { language: lang(b"tzh"), 	tag: Tag::new(b"MYN ") }, // Tzeltal -> Mayan
1547    LangTag { language: lang(b"tzj"), 	tag: Tag::new(b"MYN ") }, // Tz'utujil -> Mayan
1548    LangTag { language: lang(b"tzm"), 	tag: Tag::new(b"TZM ") }, // Central Atlas Tamazight -> Tamazight
1549    LangTag { language: lang(b"tzm"), 	tag: Tag::new(b"BBR ") }, // Central Atlas Tamazight -> Berber
1550    LangTag { language: lang(b"tzo"), 	tag: Tag::new(b"TZO ") }, // Tzotzil
1551    LangTag { language: lang(b"tzo"), 	tag: Tag::new(b"MYN ") }, // Tzotzil -> Mayan
1552    LangTag { language: lang(b"ubl"), 	tag: Tag::new(b"BIK ") }, // Buhi'non Bikol -> Bikol
1553//  LangTag { language: lang(b"udi"), 	tag: Tag::new(b"UDI ") }, // Udi
1554//  LangTag { language: lang(b"udm"), 	tag: Tag::new(b"UDM ") }, // Udmurt
1555    LangTag { language: lang(b"ug"), 	tag: Tag::new(b"UYG ") }, // Uyghur
1556    LangTag { language: lang(b"uk"), 	tag: Tag::new(b"UKR ") }, // Ukrainian
1557    LangTag { language: lang(b"uki"), 	tag: Tag::new(b"KUI ") }, // Kui (India)
1558    LangTag { language: lang(b"uln"), 	tag: Tag::new(b"CPP ") }, // Unserdeutsch -> Creoles
1559//  LangTag { language: lang(b"umb"), 	tag: Tag::new(b"UMB ") }, // Umbundu
1560    LangTag { language: lang(b"unr"), 	tag: Tag::new(b"MUN ") }, // Mundari
1561    LangTag { language: lang(b"ur"), 	tag: Tag::new(b"URD ") }, // Urdu
1562    LangTag { language: lang(b"urk"), 	tag: Tag::new(b"MLY ") }, // Urak Lawoi' -> Malay
1563    LangTag { language: lang(b"usp"), 	tag: Tag::new(b"MYN ") }, // Uspanteco -> Mayan
1564    LangTag { language: lang(b"uz"), 	tag: Tag::new(b"UZB ") }, // Uzbek [macrolanguage]
1565    LangTag { language: lang(b"uzn"), 	tag: Tag::new(b"UZB ") }, // Northern Uzbek -> Uzbek
1566    LangTag { language: lang(b"uzs"), 	tag: Tag::new(b"UZB ") }, // Southern Uzbek -> Uzbek
1567    LangTag { language: lang(b"vap"), 	tag: Tag::new(b"QIN ") }, // Vaiphei -> Chin
1568    LangTag { language: lang(b"ve"), 	tag: Tag::new(b"VEN ") }, // Venda
1569//  LangTag { language: lang(b"vec"), 	tag: Tag::new(b"VEC ") }, // Venetian
1570    LangTag { language: lang(b"vi"), 	tag: Tag::new(b"VIT ") }, // Vietnamese
1571    LangTag { language: lang(b"vic"), 	tag: Tag::new(b"CPP ") }, // Virgin Islands Creole English -> Creoles
1572    LangTag { language: lang(b"vit"), 	tag: Tag::new(&[0; 4]) }, // Viti != Vietnamese
1573    LangTag { language: lang(b"vkk"), 	tag: Tag::new(b"MLY ") }, // Kaur -> Malay
1574    LangTag { language: lang(b"vkp"), 	tag: Tag::new(b"CPP ") }, // Korlai Creole Portuguese -> Creoles
1575    LangTag { language: lang(b"vkt"), 	tag: Tag::new(b"MLY ") }, // Tenggarong Kutai Malay -> Malay
1576    LangTag { language: lang(b"vls"), 	tag: Tag::new(b"FLE ") }, // Vlaams -> Dutch (Flemish)
1577    LangTag { language: lang(b"vmw"), 	tag: Tag::new(b"MAK ") }, // Makhuwa
1578    LangTag { language: lang(b"vo"), 	tag: Tag::new(b"VOL ") }, // Volapük
1579    LangTag { language: lang(b"vro"), 	tag: Tag::new(b"VRO ") }, // Võro
1580    LangTag { language: lang(b"vro"), 	tag: Tag::new(b"ETI ") }, // Võro -> Estonian
1581    LangTag { language: lang(b"vsn"), 	tag: Tag::new(b"SAN ") }, // Vedic Sanskrit -> Sanskrit
1582    LangTag { language: lang(b"wa"), 	tag: Tag::new(b"WLN ") }, // Walloon
1583    LangTag { language: lang(b"wag"), 	tag: Tag::new(&[0; 4]) }, // Wa'ema != Wagdi
1584//  LangTag { language: lang(b"war"), 	tag: Tag::new(b"WAR ") }, // Waray (Philippines) -> Waray-Waray
1585//  LangTag { language: lang(b"wbl"), 	tag: Tag::new(b"WBL ") }, // Wakhi
1586    LangTag { language: lang(b"wbm"), 	tag: Tag::new(b"WA  ") }, // Wa
1587    LangTag { language: lang(b"wbr"), 	tag: Tag::new(b"WAG ") }, // Wagdi
1588    LangTag { language: lang(b"wbr"), 	tag: Tag::new(b"RAJ ") }, // Wagdi -> Rajasthani
1589//  LangTag { language: lang(b"wci"), 	tag: Tag::new(b"WCI ") }, // Waci Gbe
1590//  LangTag { language: lang(b"wdt"), 	tag: Tag::new(b"WDT ") }, // Wendat
1591    LangTag { language: lang(b"wea"), 	tag: Tag::new(b"KRN ") }, // Wewaw -> Karen
1592    LangTag { language: lang(b"wes"), 	tag: Tag::new(b"CPP ") }, // Cameroon Pidgin -> Creoles
1593    LangTag { language: lang(b"weu"), 	tag: Tag::new(b"QIN ") }, // Rawngtu Chin -> Chin
1594    LangTag { language: lang(b"wlc"), 	tag: Tag::new(b"CMR ") }, // Mwali Comorian -> Comorian
1595    LangTag { language: lang(b"wle"), 	tag: Tag::new(b"SIG ") }, // Wolane -> Silte Gurage
1596    LangTag { language: lang(b"wlk"), 	tag: Tag::new(b"ATH ") }, // Wailaki -> Athapaskan
1597    LangTag { language: lang(b"wni"), 	tag: Tag::new(b"CMR ") }, // Ndzwani Comorian -> Comorian
1598    LangTag { language: lang(b"wo"), 	tag: Tag::new(b"WLF ") }, // Wolof
1599    LangTag { language: lang(b"wry"), 	tag: Tag::new(b"MAW ") }, // Merwari -> Marwari
1600    LangTag { language: lang(b"wsg"), 	tag: Tag::new(b"GON ") }, // Adilabad Gondi -> Gondi
1601//  LangTag { language: lang(b"wtm"), 	tag: Tag::new(b"WTM ") }, // Mewati
1602    LangTag { language: lang(b"wuu"), 	tag: Tag::new(b"ZHS ") }, // Wu Chinese -> Chinese, Simplified
1603    LangTag { language: lang(b"wya"), 	tag: Tag::new(b"WDT ") }, // Wyandot (retired code) -> Wendat
1604    LangTag { language: lang(b"wya"), 	tag: Tag::new(b"WYN ") }, // Wyandot (retired code)
1605//  LangTag { language: lang(b"wyn"), 	tag: Tag::new(b"WYN ") }, // Wyandot
1606    LangTag { language: lang(b"xal"), 	tag: Tag::new(b"KLM ") }, // Kalmyk
1607    LangTag { language: lang(b"xal"), 	tag: Tag::new(b"TOD ") }, // Kalmyk -> Todo
1608    LangTag { language: lang(b"xan"), 	tag: Tag::new(b"SEK ") }, // Xamtanga -> Sekota
1609    LangTag { language: lang(b"xbd"), 	tag: Tag::new(&[0; 4]) }, // Bindal != Lü
1610    LangTag { language: lang(b"xh"), 	tag: Tag::new(b"XHS ") }, // Xhosa
1611//  LangTag { language: lang(b"xjb"), 	tag: Tag::new(b"XJB ") }, // Minjungbal -> Minjangbal
1612//  LangTag { language: lang(b"xkf"), 	tag: Tag::new(b"XKF ") }, // Khengkha
1613    LangTag { language: lang(b"xmg"), 	tag: Tag::new(b"BML ") }, // Mengaka -> Bamileke
1614    LangTag { language: lang(b"xmm"), 	tag: Tag::new(b"MLY ") }, // Manado Malay -> Malay
1615    LangTag { language: lang(b"xmm"), 	tag: Tag::new(b"CPP ") }, // Manado Malay -> Creoles
1616    LangTag { language: lang(b"xmv"), 	tag: Tag::new(b"MLG ") }, // Antankarana Malagasy -> Malagasy
1617    LangTag { language: lang(b"xmw"), 	tag: Tag::new(b"MLG ") }, // Tsimihety Malagasy -> Malagasy
1618    LangTag { language: lang(b"xnj"), 	tag: Tag::new(b"SXT ") }, // Ngoni (Tanzania) -> Sutu
1619    LangTag { language: lang(b"xnq"), 	tag: Tag::new(b"SXT ") }, // Ngoni (Mozambique) -> Sutu
1620    LangTag { language: lang(b"xnr"), 	tag: Tag::new(b"DGR ") }, // Kangri -> Dogri (macrolanguage)
1621//  LangTag { language: lang(b"xog"), 	tag: Tag::new(b"XOG ") }, // Soga
1622    LangTag { language: lang(b"xpe"), 	tag: Tag::new(b"XPE ") }, // Liberia Kpelle -> Kpelle (Liberia)
1623    LangTag { language: lang(b"xpe"), 	tag: Tag::new(b"KPL ") }, // Liberia Kpelle -> Kpelle
1624    LangTag { language: lang(b"xsl"), 	tag: Tag::new(b"SSL ") }, // South Slavey
1625    LangTag { language: lang(b"xsl"), 	tag: Tag::new(b"SLA ") }, // South Slavey -> Slavey
1626    LangTag { language: lang(b"xsl"), 	tag: Tag::new(b"ATH ") }, // South Slavey -> Athapaskan
1627    LangTag { language: lang(b"xst"), 	tag: Tag::new(b"SIG ") }, // Silt'e (retired code) -> Silte Gurage
1628//  LangTag { language: lang(b"xub"), 	tag: Tag::new(b"XUB ") }, // Betta Kurumba -> Bette Kuruma
1629//  LangTag { language: lang(b"xuj"), 	tag: Tag::new(b"XUJ ") }, // Jennu Kurumba -> Jennu Kuruma
1630    LangTag { language: lang(b"xup"), 	tag: Tag::new(b"ATH ") }, // Upper Umpqua -> Athapaskan
1631    LangTag { language: lang(b"xwo"), 	tag: Tag::new(b"TOD ") }, // Written Oirat -> Todo
1632    LangTag { language: lang(b"yaj"), 	tag: Tag::new(b"BAD0") }, // Banda-Yangere -> Banda
1633    LangTag { language: lang(b"yak"), 	tag: Tag::new(&[0; 4]) }, // Yakama != Sakha
1634//  LangTag { language: lang(b"yao"), 	tag: Tag::new(b"YAO ") }, // Yao
1635//  LangTag { language: lang(b"yap"), 	tag: Tag::new(b"YAP ") }, // Yapese
1636    LangTag { language: lang(b"yba"), 	tag: Tag::new(&[0; 4]) }, // Yala != Yoruba
1637    LangTag { language: lang(b"ybb"), 	tag: Tag::new(b"BML ") }, // Yemba -> Bamileke
1638    LangTag { language: lang(b"ybd"), 	tag: Tag::new(b"ARK ") }, // Yangbye (retired code) -> Rakhine
1639    LangTag { language: lang(b"ycr"), 	tag: Tag::new(b"CPP ") }, // Yilan Creole -> Creoles
1640    LangTag { language: lang(b"ydd"), 	tag: Tag::new(b"JII ") }, // Eastern Yiddish -> Yiddish
1641//  LangTag { language: lang(b"ygp"), 	tag: Tag::new(b"YGP ") }, // Gepo
1642    LangTag { language: lang(b"yi"), 	tag: Tag::new(b"JII ") }, // Yiddish [macrolanguage]
1643    LangTag { language: lang(b"yih"), 	tag: Tag::new(b"JII ") }, // Western Yiddish -> Yiddish
1644    LangTag { language: lang(b"yim"), 	tag: Tag::new(&[0; 4]) }, // Yimchungru Naga != Yi Modern
1645//  LangTag { language: lang(b"yna"), 	tag: Tag::new(b"YNA ") }, // Aluo
1646    LangTag { language: lang(b"yo"), 	tag: Tag::new(b"YBA ") }, // Yoruba
1647    LangTag { language: lang(b"yos"), 	tag: Tag::new(b"QIN ") }, // Yos (retired code) -> Chin
1648    LangTag { language: lang(b"yua"), 	tag: Tag::new(b"MYN ") }, // Yucateco -> Mayan
1649    LangTag { language: lang(b"yue"), 	tag: Tag::new(b"ZHH ") }, // Yue Chinese -> Chinese, Traditional, Hong Kong SAR
1650//  LangTag { language: lang(b"yuf"), 	tag: Tag::new(b"YUF ") }, // Havasupai-Walapai-Yavapai
1651//  LangTag { language: lang(b"ywq"), 	tag: Tag::new(b"YWQ ") }, // Wuding-Luquan Yi
1652    LangTag { language: lang(b"za"), 	tag: Tag::new(b"ZHA ") }, // Zhuang [macrolanguage]
1653    LangTag { language: lang(b"zch"), 	tag: Tag::new(b"ZHA ") }, // Central Hongshuihe Zhuang -> Zhuang
1654    LangTag { language: lang(b"zdj"), 	tag: Tag::new(b"CMR ") }, // Ngazidja Comorian -> Comorian
1655//  LangTag { language: lang(b"zea"), 	tag: Tag::new(b"ZEA ") }, // Zeeuws -> Zealandic
1656    LangTag { language: lang(b"zeh"), 	tag: Tag::new(b"ZHA ") }, // Eastern Hongshuihe Zhuang -> Zhuang
1657    LangTag { language: lang(b"zen"), 	tag: Tag::new(b"BBR ") }, // Zenaga -> Berber
1658    LangTag { language: lang(b"zgb"), 	tag: Tag::new(b"ZHA ") }, // Guibei Zhuang -> Zhuang
1659    LangTag { language: lang(b"zgh"), 	tag: Tag::new(b"ZGH ") }, // Standard Moroccan Tamazight
1660    LangTag { language: lang(b"zgh"), 	tag: Tag::new(b"BBR ") }, // Standard Moroccan Tamazight -> Berber
1661    LangTag { language: lang(b"zgm"), 	tag: Tag::new(b"ZHA ") }, // Minz Zhuang -> Zhuang
1662    LangTag { language: lang(b"zgn"), 	tag: Tag::new(b"ZHA ") }, // Guibian Zhuang -> Zhuang
1663    LangTag { language: lang(b"zh"), 	tag: Tag::new(b"ZHS ") }, // Chinese, Simplified [macrolanguage]
1664    LangTag { language: lang(b"zhd"), 	tag: Tag::new(b"ZHA ") }, // Dai Zhuang -> Zhuang
1665    LangTag { language: lang(b"zhn"), 	tag: Tag::new(b"ZHA ") }, // Nong Zhuang -> Zhuang
1666    LangTag { language: lang(b"zkb"), 	tag: Tag::new(b"KHA ") }, // Koibal (retired code) -> Khakass
1667    LangTag { language: lang(b"zlj"), 	tag: Tag::new(b"ZHA ") }, // Liujiang Zhuang -> Zhuang
1668    LangTag { language: lang(b"zlm"), 	tag: Tag::new(b"MLY ") }, // Malay
1669    LangTag { language: lang(b"zln"), 	tag: Tag::new(b"ZHA ") }, // Lianshan Zhuang -> Zhuang
1670    LangTag { language: lang(b"zlq"), 	tag: Tag::new(b"ZHA ") }, // Liuqian Zhuang -> Zhuang
1671    LangTag { language: lang(b"zmi"), 	tag: Tag::new(b"MLY ") }, // Negeri Sembilan Malay -> Malay
1672    LangTag { language: lang(b"zmz"), 	tag: Tag::new(b"BAD0") }, // Mbandja -> Banda
1673    LangTag { language: lang(b"znd"), 	tag: Tag::new(&[0; 4]) }, // Zande [collection] != Zande
1674    LangTag { language: lang(b"zne"), 	tag: Tag::new(b"ZND ") }, // Zande
1675    LangTag { language: lang(b"zom"), 	tag: Tag::new(b"QIN ") }, // Zou -> Chin
1676    LangTag { language: lang(b"zqe"), 	tag: Tag::new(b"ZHA ") }, // Qiubei Zhuang -> Zhuang
1677    LangTag { language: lang(b"zsm"), 	tag: Tag::new(b"MLY ") }, // Standard Malay -> Malay
1678    LangTag { language: lang(b"zu"), 	tag: Tag::new(b"ZUL ") }, // Zulu
1679    LangTag { language: lang(b"zum"), 	tag: Tag::new(b"LRC ") }, // Kumzari -> Luri
1680    LangTag { language: lang(b"zyb"), 	tag: Tag::new(b"ZHA ") }, // Yongbei Zhuang -> Zhuang
1681    LangTag { language: lang(b"zyg"), 	tag: Tag::new(b"ZHA ") }, // Yang Zhuang -> Zhuang
1682    LangTag { language: lang(b"zyj"), 	tag: Tag::new(b"ZHA ") }, // Youjiang Zhuang -> Zhuang
1683    LangTag { language: lang(b"zyn"), 	tag: Tag::new(b"ZHA ") }, // Yongnan Zhuang -> Zhuang
1684    LangTag { language: lang(b"zyp"), 	tag: Tag::new(b"QIN ") }, // Zyphe Chin -> Chin
1685//  LangTag { language: lang(b"zza"), 	tag: Tag::new(b"ZZA ") }, // Zazaki [macrolanguage]
1686    LangTag { language: lang(b"zzj"), 	tag: Tag::new(b"ZHA ") }, // Zuojiang Zhuang -> Zhuang
1687];
1688
1689/// Converts a multi-subtag BCP 47 language tag to language tags.
1690pub fn tags_from_complex_language(language: &str, tags: &mut smallvec::SmallVec<[Tag; 3]>) -> bool {
1691    if subtag_matches(language, "-fonnapa") {
1692        // Undetermined; North American Phonetic Alphabet
1693        tags.push(Tag::new(b"APPH")); // Phonetic transcription—Americanist conventions
1694        return true;
1695    }
1696    if subtag_matches(language, "-polyton") {
1697        // Modern Greek (1453-); Polytonic Greek
1698        tags.push(Tag::new(b"PGR ")); // Polytonic Greek
1699        return true;
1700    }
1701    if subtag_matches(language, "-arevmda") {
1702        // Armenian; Western Armenian (retired code)
1703        tags.push(Tag::new(b"HYE ")); // Armenian
1704        return true;
1705    }
1706    if subtag_matches(language, "-provenc") {
1707        // Occitan (post 1500); Provençal
1708        tags.push(Tag::new(b"PRO ")); // Provençal / Old Provençal
1709        return true;
1710    }
1711    if subtag_matches(language, "-fonipa") {
1712        // Undetermined; International Phonetic Alphabet
1713        tags.push(Tag::new(b"IPPH")); // Phonetic transcription—IPA conventions
1714        return true;
1715    }
1716    if subtag_matches(language, "-geok") {
1717        // Undetermined; Khutsuri (Asomtavruli and Nuskhuri)
1718        tags.push(Tag::new(b"KGE ")); // Khutsuri Georgian
1719        return true;
1720    }
1721    if subtag_matches(language, "-syre") {
1722        // Undetermined; Syriac (Estrangelo variant)
1723        tags.push(Tag::new(b"SYRE")); // Syriac, Estrangela script-variant (equivalent to ISO 15924 'Syre')
1724        return true;
1725    }
1726    if subtag_matches(language, "-syrj") {
1727        // Undetermined; Syriac (Western variant)
1728        tags.push(Tag::new(b"SYRJ")); // Syriac, Western script-variant (equivalent to ISO 15924 'Syrj')
1729        return true;
1730    }
1731    if subtag_matches(language, "-syrn") {
1732        // Undetermined; Syriac (Eastern variant)
1733        tags.push(Tag::new(b"SYRN")); // Syriac, Eastern script-variant (equivalent to ISO 15924 'Syrn')
1734        return true;
1735    }
1736    match language.as_bytes()[0] {
1737        b'a' => {
1738            if &language[1..] == "rt-lojban" {
1739                // Lojban (retired code)
1740                tags.push(Tag::new(b"JBO ")); // Lojban
1741                return true;
1742            }
1743        }
1744        b'c' => {
1745            if lang_matches(&language[1..], "do-hant-hk") {
1746                // Min Dong Chinese; Han (Traditional variant); Hong Kong
1747                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1748                return true;
1749            }
1750            if lang_matches(&language[1..], "do-hant-mo") {
1751                // Min Dong Chinese; Han (Traditional variant); Macao
1752                let possible_tags = &[
1753                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
1754                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1755                ];
1756                tags.extend_from_slice(possible_tags);
1757                return true;
1758            }
1759            if lang_matches(&language[1..], "jy-hant-hk") {
1760                // Jinyu Chinese; Han (Traditional variant); Hong Kong
1761                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1762                return true;
1763            }
1764            if lang_matches(&language[1..], "jy-hant-mo") {
1765                // Jinyu Chinese; Han (Traditional variant); Macao
1766                let possible_tags = &[
1767                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
1768                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1769                ];
1770                tags.extend_from_slice(possible_tags);
1771                return true;
1772            }
1773            if lang_matches(&language[1..], "mn-hant-hk") {
1774                // Mandarin Chinese; Han (Traditional variant); Hong Kong
1775                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1776                return true;
1777            }
1778            if lang_matches(&language[1..], "mn-hant-mo") {
1779                // Mandarin Chinese; Han (Traditional variant); Macao
1780                let possible_tags = &[
1781                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
1782                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1783                ];
1784                tags.extend_from_slice(possible_tags);
1785                return true;
1786            }
1787            if lang_matches(&language[1..], "np-hant-hk") {
1788                // Northern Ping Chinese; Han (Traditional variant); Hong Kong
1789                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1790                return true;
1791            }
1792            if lang_matches(&language[1..], "np-hant-mo") {
1793                // Northern Ping Chinese; Han (Traditional variant); Macao
1794                let possible_tags = &[
1795                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
1796                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1797                ];
1798                tags.extend_from_slice(possible_tags);
1799                return true;
1800            }
1801            if lang_matches(&language[1..], "px-hant-hk") {
1802                // Pu-Xian Chinese; Han (Traditional variant); Hong Kong
1803                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1804                return true;
1805            }
1806            if lang_matches(&language[1..], "px-hant-mo") {
1807                // Pu-Xian Chinese; Han (Traditional variant); Macao
1808                let possible_tags = &[
1809                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
1810                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1811                ];
1812                tags.extend_from_slice(possible_tags);
1813                return true;
1814            }
1815            if lang_matches(&language[1..], "sp-hant-hk") {
1816                // Southern Ping Chinese; Han (Traditional variant); Hong Kong
1817                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1818                return true;
1819            }
1820            if lang_matches(&language[1..], "sp-hant-mo") {
1821                // Southern Ping Chinese; Han (Traditional variant); Macao
1822                let possible_tags = &[
1823                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
1824                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1825                ];
1826                tags.extend_from_slice(possible_tags);
1827                return true;
1828            }
1829            if lang_matches(&language[1..], "zh-hant-hk") {
1830                // Huizhou Chinese; Han (Traditional variant); Hong Kong
1831                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1832                return true;
1833            }
1834            if lang_matches(&language[1..], "zh-hant-mo") {
1835                // Huizhou Chinese; Han (Traditional variant); Macao
1836                let possible_tags = &[
1837                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
1838                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1839                ];
1840                tags.extend_from_slice(possible_tags);
1841                return true;
1842            }
1843            if lang_matches(&language[1..], "zo-hant-hk") {
1844                // Min Zhong Chinese; Han (Traditional variant); Hong Kong
1845                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1846                return true;
1847            }
1848            if lang_matches(&language[1..], "zo-hant-mo") {
1849                // Min Zhong Chinese; Han (Traditional variant); Macao
1850                let possible_tags = &[
1851                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
1852                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1853                ];
1854                tags.extend_from_slice(possible_tags);
1855                return true;
1856            }
1857            if lang_matches(&language[1..], "do-hans") {
1858                // Min Dong Chinese; Han (Simplified variant)
1859                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
1860                return true;
1861            }
1862            if lang_matches(&language[1..], "do-hant") {
1863                // Min Dong Chinese; Han (Traditional variant)
1864                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
1865                return true;
1866            }
1867            if lang_matches(&language[1..], "jy-hans") {
1868                // Jinyu Chinese; Han (Simplified variant)
1869                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
1870                return true;
1871            }
1872            if lang_matches(&language[1..], "jy-hant") {
1873                // Jinyu Chinese; Han (Traditional variant)
1874                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
1875                return true;
1876            }
1877            if lang_matches(&language[1..], "mn-hans") {
1878                // Mandarin Chinese; Han (Simplified variant)
1879                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
1880                return true;
1881            }
1882            if lang_matches(&language[1..], "mn-hant") {
1883                // Mandarin Chinese; Han (Traditional variant)
1884                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
1885                return true;
1886            }
1887            if lang_matches(&language[1..], "np-hans") {
1888                // Northern Ping Chinese; Han (Simplified variant)
1889                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
1890                return true;
1891            }
1892            if lang_matches(&language[1..], "np-hant") {
1893                // Northern Ping Chinese; Han (Traditional variant)
1894                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
1895                return true;
1896            }
1897            if lang_matches(&language[1..], "px-hans") {
1898                // Pu-Xian Chinese; Han (Simplified variant)
1899                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
1900                return true;
1901            }
1902            if lang_matches(&language[1..], "px-hant") {
1903                // Pu-Xian Chinese; Han (Traditional variant)
1904                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
1905                return true;
1906            }
1907            if lang_matches(&language[1..], "sp-hans") {
1908                // Southern Ping Chinese; Han (Simplified variant)
1909                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
1910                return true;
1911            }
1912            if lang_matches(&language[1..], "sp-hant") {
1913                // Southern Ping Chinese; Han (Traditional variant)
1914                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
1915                return true;
1916            }
1917            if lang_matches(&language[1..], "zh-hans") {
1918                // Huizhou Chinese; Han (Simplified variant)
1919                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
1920                return true;
1921            }
1922            if lang_matches(&language[1..], "zh-hant") {
1923                // Huizhou Chinese; Han (Traditional variant)
1924                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
1925                return true;
1926            }
1927            if lang_matches(&language[1..], "zo-hans") {
1928                // Min Zhong Chinese; Han (Simplified variant)
1929                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
1930                return true;
1931            }
1932            if lang_matches(&language[1..], "zo-hant") {
1933                // Min Zhong Chinese; Han (Traditional variant)
1934                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
1935                return true;
1936            }
1937            if strncmp(&language[1..], "do-", 3) && subtag_matches(language, "-hk") {
1938                // Min Dong Chinese; Hong Kong
1939                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1940                return true;
1941            }
1942            if strncmp(&language[1..], "do-", 3) && subtag_matches(language, "-mo") {
1943                // Min Dong Chinese; Macao
1944                let possible_tags = &[
1945                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
1946                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1947                ];
1948                tags.extend_from_slice(possible_tags);
1949                return true;
1950            }
1951            if strncmp(&language[1..], "do-", 3) && subtag_matches(language, "-tw") {
1952                // Min Dong Chinese; Taiwan, Province of China
1953                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
1954                return true;
1955            }
1956            if strncmp(&language[1..], "jy-", 3) && subtag_matches(language, "-hk") {
1957                // Jinyu Chinese; Hong Kong
1958                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1959                return true;
1960            }
1961            if strncmp(&language[1..], "jy-", 3) && subtag_matches(language, "-mo") {
1962                // Jinyu Chinese; Macao
1963                let possible_tags = &[
1964                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
1965                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1966                ];
1967                tags.extend_from_slice(possible_tags);
1968                return true;
1969            }
1970            if strncmp(&language[1..], "jy-", 3) && subtag_matches(language, "-tw") {
1971                // Jinyu Chinese; Taiwan, Province of China
1972                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
1973                return true;
1974            }
1975            if strncmp(&language[1..], "mn-", 3) && subtag_matches(language, "-hk") {
1976                // Mandarin Chinese; Hong Kong
1977                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1978                return true;
1979            }
1980            if strncmp(&language[1..], "mn-", 3) && subtag_matches(language, "-mo") {
1981                // Mandarin Chinese; Macao
1982                let possible_tags = &[
1983                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
1984                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
1985                ];
1986                tags.extend_from_slice(possible_tags);
1987                return true;
1988            }
1989            if strncmp(&language[1..], "mn-", 3) && subtag_matches(language, "-tw") {
1990                // Mandarin Chinese; Taiwan, Province of China
1991                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
1992                return true;
1993            }
1994            if strncmp(&language[1..], "np-", 3) && subtag_matches(language, "-hk") {
1995                // Northern Ping Chinese; Hong Kong
1996                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
1997                return true;
1998            }
1999            if strncmp(&language[1..], "np-", 3) && subtag_matches(language, "-mo") {
2000                // Northern Ping Chinese; Macao
2001                let possible_tags = &[
2002                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2003                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2004                ];
2005                tags.extend_from_slice(possible_tags);
2006                return true;
2007            }
2008            if strncmp(&language[1..], "np-", 3) && subtag_matches(language, "-tw") {
2009                // Northern Ping Chinese; Taiwan, Province of China
2010                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2011                return true;
2012            }
2013            if strncmp(&language[1..], "px-", 3) && subtag_matches(language, "-hk") {
2014                // Pu-Xian Chinese; Hong Kong
2015                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2016                return true;
2017            }
2018            if strncmp(&language[1..], "px-", 3) && subtag_matches(language, "-mo") {
2019                // Pu-Xian Chinese; Macao
2020                let possible_tags = &[
2021                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2022                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2023                ];
2024                tags.extend_from_slice(possible_tags);
2025                return true;
2026            }
2027            if strncmp(&language[1..], "px-", 3) && subtag_matches(language, "-tw") {
2028                // Pu-Xian Chinese; Taiwan, Province of China
2029                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2030                return true;
2031            }
2032            if strncmp(&language[1..], "sp-", 3) && subtag_matches(language, "-hk") {
2033                // Southern Ping Chinese; Hong Kong
2034                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2035                return true;
2036            }
2037            if strncmp(&language[1..], "sp-", 3) && subtag_matches(language, "-mo") {
2038                // Southern Ping Chinese; Macao
2039                let possible_tags = &[
2040                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2041                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2042                ];
2043                tags.extend_from_slice(possible_tags);
2044                return true;
2045            }
2046            if strncmp(&language[1..], "sp-", 3) && subtag_matches(language, "-tw") {
2047                // Southern Ping Chinese; Taiwan, Province of China
2048                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2049                return true;
2050            }
2051            if strncmp(&language[1..], "zh-", 3) && subtag_matches(language, "-hk") {
2052                // Huizhou Chinese; Hong Kong
2053                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2054                return true;
2055            }
2056            if strncmp(&language[1..], "zh-", 3) && subtag_matches(language, "-mo") {
2057                // Huizhou Chinese; Macao
2058                let possible_tags = &[
2059                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2060                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2061                ];
2062                tags.extend_from_slice(possible_tags);
2063                return true;
2064            }
2065            if strncmp(&language[1..], "zh-", 3) && subtag_matches(language, "-tw") {
2066                // Huizhou Chinese; Taiwan, Province of China
2067                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2068                return true;
2069            }
2070            if strncmp(&language[1..], "zo-", 3) && subtag_matches(language, "-hk") {
2071                // Min Zhong Chinese; Hong Kong
2072                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2073                return true;
2074            }
2075            if strncmp(&language[1..], "zo-", 3) && subtag_matches(language, "-mo") {
2076                // Min Zhong Chinese; Macao
2077                let possible_tags = &[
2078                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2079                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2080                ];
2081                tags.extend_from_slice(possible_tags);
2082                return true;
2083            }
2084            if strncmp(&language[1..], "zo-", 3) && subtag_matches(language, "-tw") {
2085                // Min Zhong Chinese; Taiwan, Province of China
2086                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2087                return true;
2088            }
2089        }
2090        b'g' => {
2091            if lang_matches(&language[1..], "an-hant-hk") {
2092                // Gan Chinese; Han (Traditional variant); Hong Kong
2093                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2094                return true;
2095            }
2096            if lang_matches(&language[1..], "an-hant-mo") {
2097                // Gan Chinese; Han (Traditional variant); Macao
2098                let possible_tags = &[
2099                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2100                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2101                ];
2102                tags.extend_from_slice(possible_tags);
2103                return true;
2104            }
2105            if lang_matches(&language[1..], "an-hans") {
2106                // Gan Chinese; Han (Simplified variant)
2107                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2108                return true;
2109            }
2110            if lang_matches(&language[1..], "an-hant") {
2111                // Gan Chinese; Han (Traditional variant)
2112                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2113                return true;
2114            }
2115            if lang_matches(&language[1..], "a-latg") {
2116                // Irish; Latin (Gaelic variant)
2117                tags.push(Tag::new(b"IRT ")); // Irish Traditional
2118                return true;
2119            }
2120            if strncmp(&language[1..], "an-", 3) && subtag_matches(language, "-hk") {
2121                // Gan Chinese; Hong Kong
2122                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2123                return true;
2124            }
2125            if strncmp(&language[1..], "an-", 3) && subtag_matches(language, "-mo") {
2126                // Gan Chinese; Macao
2127                let possible_tags = &[
2128                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2129                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2130                ];
2131                tags.extend_from_slice(possible_tags);
2132                return true;
2133            }
2134            if strncmp(&language[1..], "an-", 3) && subtag_matches(language, "-tw") {
2135                // Gan Chinese; Taiwan, Province of China
2136                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2137                return true;
2138            }
2139        }
2140        b'h' => {
2141            if lang_matches(&language[1..], "ak-hant-hk") {
2142                // Hakka Chinese; Han (Traditional variant); Hong Kong
2143                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2144                return true;
2145            }
2146            if lang_matches(&language[1..], "ak-hant-mo") {
2147                // Hakka Chinese; Han (Traditional variant); Macao
2148                let possible_tags = &[
2149                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2150                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2151                ];
2152                tags.extend_from_slice(possible_tags);
2153                return true;
2154            }
2155            if lang_matches(&language[1..], "nm-hant-hk") {
2156                // Hainanese; Han (Traditional variant); Hong Kong
2157                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2158                return true;
2159            }
2160            if lang_matches(&language[1..], "nm-hant-mo") {
2161                // Hainanese; Han (Traditional variant); Macao
2162                let possible_tags = &[
2163                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2164                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2165                ];
2166                tags.extend_from_slice(possible_tags);
2167                return true;
2168            }
2169            if lang_matches(&language[1..], "sn-hant-hk") {
2170                // Xiang Chinese; Han (Traditional variant); Hong Kong
2171                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2172                return true;
2173            }
2174            if lang_matches(&language[1..], "sn-hant-mo") {
2175                // Xiang Chinese; Han (Traditional variant); Macao
2176                let possible_tags = &[
2177                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2178                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2179                ];
2180                tags.extend_from_slice(possible_tags);
2181                return true;
2182            }
2183            if lang_matches(&language[1..], "ak-hans") {
2184                // Hakka Chinese; Han (Simplified variant)
2185                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2186                return true;
2187            }
2188            if lang_matches(&language[1..], "ak-hant") {
2189                // Hakka Chinese; Han (Traditional variant)
2190                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2191                return true;
2192            }
2193            if lang_matches(&language[1..], "nm-hans") {
2194                // Hainanese; Han (Simplified variant)
2195                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2196                return true;
2197            }
2198            if lang_matches(&language[1..], "nm-hant") {
2199                // Hainanese; Han (Traditional variant)
2200                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2201                return true;
2202            }
2203            if lang_matches(&language[1..], "sn-hans") {
2204                // Xiang Chinese; Han (Simplified variant)
2205                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2206                return true;
2207            }
2208            if lang_matches(&language[1..], "sn-hant") {
2209                // Xiang Chinese; Han (Traditional variant)
2210                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2211                return true;
2212            }
2213            if strncmp(&language[1..], "ak-", 3) && subtag_matches(language, "-hk") {
2214                // Hakka Chinese; Hong Kong
2215                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2216                return true;
2217            }
2218            if strncmp(&language[1..], "ak-", 3) && subtag_matches(language, "-mo") {
2219                // Hakka Chinese; Macao
2220                let possible_tags = &[
2221                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2222                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2223                ];
2224                tags.extend_from_slice(possible_tags);
2225                return true;
2226            }
2227            if strncmp(&language[1..], "ak-", 3) && subtag_matches(language, "-tw") {
2228                // Hakka Chinese; Taiwan, Province of China
2229                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2230                return true;
2231            }
2232            if strncmp(&language[1..], "nm-", 3) && subtag_matches(language, "-hk") {
2233                // Hainanese; Hong Kong
2234                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2235                return true;
2236            }
2237            if strncmp(&language[1..], "nm-", 3) && subtag_matches(language, "-mo") {
2238                // Hainanese; Macao
2239                let possible_tags = &[
2240                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2241                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2242                ];
2243                tags.extend_from_slice(possible_tags);
2244                return true;
2245            }
2246            if strncmp(&language[1..], "nm-", 3) && subtag_matches(language, "-tw") {
2247                // Hainanese; Taiwan, Province of China
2248                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2249                return true;
2250            }
2251            if strncmp(&language[1..], "sn-", 3) && subtag_matches(language, "-hk") {
2252                // Xiang Chinese; Hong Kong
2253                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2254                return true;
2255            }
2256            if strncmp(&language[1..], "sn-", 3) && subtag_matches(language, "-mo") {
2257                // Xiang Chinese; Macao
2258                let possible_tags = &[
2259                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2260                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2261                ];
2262                tags.extend_from_slice(possible_tags);
2263                return true;
2264            }
2265            if strncmp(&language[1..], "sn-", 3) && subtag_matches(language, "-tw") {
2266                // Xiang Chinese; Taiwan, Province of China
2267                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2268                return true;
2269            }
2270        }
2271        b'i' => {
2272            if &language[1..] == "-navajo" {
2273                // Navajo (retired code)
2274                let possible_tags = &[
2275                    Tag::new(b"NAV "), // Navajo
2276                    Tag::new(b"ATH "), // Athapaskan
2277                ];
2278                tags.extend_from_slice(possible_tags);
2279                return true;
2280            }
2281            if &language[1..] == "-hak" {
2282                // Hakka (retired code)
2283                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2284                return true;
2285            }
2286            if &language[1..] == "-lux" {
2287                // Luxembourgish (retired code)
2288                tags.push(Tag::new(b"LTZ ")); // Luxembourgish
2289                return true;
2290            }
2291        }
2292        b'l' => {
2293            if lang_matches(&language[1..], "uh-hant-hk") {
2294                // Leizhou Chinese; Han (Traditional variant); Hong Kong
2295                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2296                return true;
2297            }
2298            if lang_matches(&language[1..], "uh-hant-mo") {
2299                // Leizhou Chinese; Han (Traditional variant); Macao
2300                let possible_tags = &[
2301                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2302                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2303                ];
2304                tags.extend_from_slice(possible_tags);
2305                return true;
2306            }
2307            if lang_matches(&language[1..], "uh-hans") {
2308                // Leizhou Chinese; Han (Simplified variant)
2309                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2310                return true;
2311            }
2312            if lang_matches(&language[1..], "uh-hant") {
2313                // Leizhou Chinese; Han (Traditional variant)
2314                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2315                return true;
2316            }
2317            if lang_matches(&language[1..], "zh-hans") {
2318                // Literary Chinese; Han (Simplified variant)
2319                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2320                return true;
2321            }
2322            if strncmp(&language[1..], "uh-", 3) && subtag_matches(language, "-hk") {
2323                // Leizhou Chinese; Hong Kong
2324                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2325                return true;
2326            }
2327            if strncmp(&language[1..], "uh-", 3) && subtag_matches(language, "-mo") {
2328                // Leizhou Chinese; Macao
2329                let possible_tags = &[
2330                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2331                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2332                ];
2333                tags.extend_from_slice(possible_tags);
2334                return true;
2335            }
2336            if strncmp(&language[1..], "uh-", 3) && subtag_matches(language, "-tw") {
2337                // Leizhou Chinese; Taiwan, Province of China
2338                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2339                return true;
2340            }
2341        }
2342        b'm' => {
2343            if lang_matches(&language[1..], "np-hant-hk") {
2344                // Min Bei Chinese; Han (Traditional variant); Hong Kong
2345                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2346                return true;
2347            }
2348            if lang_matches(&language[1..], "np-hant-mo") {
2349                // Min Bei Chinese; Han (Traditional variant); Macao
2350                let possible_tags = &[
2351                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2352                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2353                ];
2354                tags.extend_from_slice(possible_tags);
2355                return true;
2356            }
2357            if lang_matches(&language[1..], "np-hans") {
2358                // Min Bei Chinese; Han (Simplified variant)
2359                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2360                return true;
2361            }
2362            if lang_matches(&language[1..], "np-hant") {
2363                // Min Bei Chinese; Han (Traditional variant)
2364                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2365                return true;
2366            }
2367            if strncmp(&language[1..], "np-", 3) && subtag_matches(language, "-hk") {
2368                // Min Bei Chinese; Hong Kong
2369                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2370                return true;
2371            }
2372            if strncmp(&language[1..], "np-", 3) && subtag_matches(language, "-mo") {
2373                // Min Bei Chinese; Macao
2374                let possible_tags = &[
2375                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2376                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2377                ];
2378                tags.extend_from_slice(possible_tags);
2379                return true;
2380            }
2381            if strncmp(&language[1..], "np-", 3) && subtag_matches(language, "-tw") {
2382                // Min Bei Chinese; Taiwan, Province of China
2383                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2384                return true;
2385            }
2386            if strncmp(&language[1..], "nw-", 3) && subtag_matches(language, "-th") {
2387                // Mon; Thailand
2388                tags.push(Tag::new(b"MONT")); // Thailand Mon
2389                return true;
2390            }
2391        }
2392        b'n' => {
2393            if lang_matches(&language[1..], "an-hant-hk") {
2394                // Min Nan Chinese; Han (Traditional variant); Hong Kong
2395                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2396                return true;
2397            }
2398            if lang_matches(&language[1..], "an-hant-mo") {
2399                // Min Nan Chinese; Han (Traditional variant); Macao
2400                let possible_tags = &[
2401                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2402                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2403                ];
2404                tags.extend_from_slice(possible_tags);
2405                return true;
2406            }
2407            if lang_matches(&language[1..], "an-hans") {
2408                // Min Nan Chinese; Han (Simplified variant)
2409                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2410                return true;
2411            }
2412            if lang_matches(&language[1..], "an-hant") {
2413                // Min Nan Chinese; Han (Traditional variant)
2414                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2415                return true;
2416            }
2417            if strncmp(&language[1..], "an-", 3) && subtag_matches(language, "-hk") {
2418                // Min Nan Chinese; Hong Kong
2419                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2420                return true;
2421            }
2422            if strncmp(&language[1..], "an-", 3) && subtag_matches(language, "-mo") {
2423                // Min Nan Chinese; Macao
2424                let possible_tags = &[
2425                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2426                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2427                ];
2428                tags.extend_from_slice(possible_tags);
2429                return true;
2430            }
2431            if strncmp(&language[1..], "an-", 3) && subtag_matches(language, "-tw") {
2432                // Min Nan Chinese; Taiwan, Province of China
2433                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2434                return true;
2435            }
2436            if &language[1..] == "o-bok" {
2437                // Norwegian Bokmal (retired code)
2438                tags.push(Tag::new(b"NOR ")); // Norwegian
2439                return true;
2440            }
2441            if &language[1..] == "o-nyn" {
2442                // Norwegian Nynorsk (retired code)
2443                tags.push(Tag::new(b"NYN ")); // Norwegian Nynorsk (Nynorsk, Norwegian)
2444                return true;
2445            }
2446        }
2447        b'r' => {
2448            if strncmp(&language[1..], "o-", 2) && subtag_matches(language, "-md") {
2449                // Romanian; Moldova
2450                let possible_tags = &[
2451                    Tag::new(b"MOL "), // Moldavian
2452                    Tag::new(b"ROM "), // Romanian
2453                ];
2454                tags.extend_from_slice(possible_tags);
2455                return true;
2456            }
2457        }
2458        b's' => {
2459            if lang_matches(&language[1..], "jc-hant-hk") {
2460                // Shaojiang Chinese; Han (Traditional variant); Hong Kong
2461                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2462                return true;
2463            }
2464            if lang_matches(&language[1..], "jc-hant-mo") {
2465                // Shaojiang Chinese; Han (Traditional variant); Macao
2466                let possible_tags = &[
2467                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2468                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2469                ];
2470                tags.extend_from_slice(possible_tags);
2471                return true;
2472            }
2473            if lang_matches(&language[1..], "jc-hans") {
2474                // Shaojiang Chinese; Han (Simplified variant)
2475                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2476                return true;
2477            }
2478            if lang_matches(&language[1..], "jc-hant") {
2479                // Shaojiang Chinese; Han (Traditional variant)
2480                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2481                return true;
2482            }
2483            if strncmp(&language[1..], "jc-", 3) && subtag_matches(language, "-hk") {
2484                // Shaojiang Chinese; Hong Kong
2485                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2486                return true;
2487            }
2488            if strncmp(&language[1..], "jc-", 3) && subtag_matches(language, "-mo") {
2489                // Shaojiang Chinese; Macao
2490                let possible_tags = &[
2491                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2492                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2493                ];
2494                tags.extend_from_slice(possible_tags);
2495                return true;
2496            }
2497            if strncmp(&language[1..], "jc-", 3) && subtag_matches(language, "-tw") {
2498                // Shaojiang Chinese; Taiwan, Province of China
2499                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2500                return true;
2501            }
2502        }
2503        b'w' => {
2504            if lang_matches(&language[1..], "uu-hant-hk") {
2505                // Wu Chinese; Han (Traditional variant); Hong Kong
2506                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2507                return true;
2508            }
2509            if lang_matches(&language[1..], "uu-hant-mo") {
2510                // Wu Chinese; Han (Traditional variant); Macao
2511                let possible_tags = &[
2512                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2513                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2514                ];
2515                tags.extend_from_slice(possible_tags);
2516                return true;
2517            }
2518            if lang_matches(&language[1..], "uu-hans") {
2519                // Wu Chinese; Han (Simplified variant)
2520                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2521                return true;
2522            }
2523            if lang_matches(&language[1..], "uu-hant") {
2524                // Wu Chinese; Han (Traditional variant)
2525                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2526                return true;
2527            }
2528            if strncmp(&language[1..], "uu-", 3) && subtag_matches(language, "-hk") {
2529                // Wu Chinese; Hong Kong
2530                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2531                return true;
2532            }
2533            if strncmp(&language[1..], "uu-", 3) && subtag_matches(language, "-mo") {
2534                // Wu Chinese; Macao
2535                let possible_tags = &[
2536                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2537                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2538                ];
2539                tags.extend_from_slice(possible_tags);
2540                return true;
2541            }
2542            if strncmp(&language[1..], "uu-", 3) && subtag_matches(language, "-tw") {
2543                // Wu Chinese; Taiwan, Province of China
2544                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2545                return true;
2546            }
2547        }
2548        b'y' => {
2549            if lang_matches(&language[1..], "ue-hans") {
2550                // Yue Chinese; Han (Simplified variant)
2551                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2552                return true;
2553            }
2554        }
2555        b'z' => {
2556            if lang_matches(&language[1..], "h-hant-hk") {
2557                // Chinese [macrolanguage]; Han (Traditional variant); Hong Kong
2558                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2559                return true;
2560            }
2561            if lang_matches(&language[1..], "h-hant-mo") {
2562                // Chinese [macrolanguage]; Han (Traditional variant); Macao
2563                let possible_tags = &[
2564                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2565                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2566                ];
2567                tags.extend_from_slice(possible_tags);
2568                return true;
2569            }
2570            if &language[1..] == "h-min-nan" {
2571                // Minnan, Hokkien, Amoy, Taiwanese, Southern Min, Southern Fujian, Hoklo, Southern Fukien, Ho-lo (retired code)
2572                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2573                return true;
2574            }
2575            if lang_matches(&language[1..], "h-hans") {
2576                // Chinese [macrolanguage]; Han (Simplified variant)
2577                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2578                return true;
2579            }
2580            if lang_matches(&language[1..], "h-hant") {
2581                // Chinese [macrolanguage]; Han (Traditional variant)
2582                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2583                return true;
2584            }
2585            if &language[1..] == "h-min" {
2586                // Min, Fuzhou, Hokkien, Amoy, or Taiwanese (retired code)
2587                tags.push(Tag::new(b"ZHS ")); // Chinese, Simplified
2588                return true;
2589            }
2590            if strncmp(&language[1..], "h-", 2) && subtag_matches(language, "-hk") {
2591                // Chinese [macrolanguage]; Hong Kong
2592                tags.push(Tag::new(b"ZHH ")); // Chinese, Traditional, Hong Kong SAR
2593                return true;
2594            }
2595            if strncmp(&language[1..], "h-", 2) && subtag_matches(language, "-mo") {
2596                // Chinese [macrolanguage]; Macao
2597                let possible_tags = &[
2598                    Tag::new(b"ZHTM"), // Chinese, Traditional, Macao SAR
2599                    Tag::new(b"ZHH "), // Chinese, Traditional, Hong Kong SAR
2600                ];
2601                tags.extend_from_slice(possible_tags);
2602                return true;
2603            }
2604            if strncmp(&language[1..], "h-", 2) && subtag_matches(language, "-tw") {
2605                // Chinese [macrolanguage]; Taiwan, Province of China
2606                tags.push(Tag::new(b"ZHT ")); // Chinese, Traditional
2607                return true;
2608            }
2609        }
2610        _ => {}
2611    }
2612    false
2613}