/* == Start of generated table == */
/*
 * The following table is generated by running:
 *
 *   ./gen-tag-table.py languagetags language-subtag-registry
 *
 * on files with these headers:
 *
 * <meta name="updated_at" content="2018-09-07 07:45 PM" />
 * File-Date: 2018-08-08
 */

#ifndef HB_OT_TAG_TABLE_HH
#define HB_OT_TAG_TABLE_HH

static const LangTag ot_languages[] = {
  {"aa",	{HB_TAG('A','F','R',' ')}},	/* Afar */
  {"aae",	{HB_TAG('S','Q','I',' ')}},	/* Arbëreshë Albanian -> Albanian */
  {"aao",	{HB_TAG('A','R','A',' ')}},	/* Algerian Saharan Arabic -> Arabic */
  {"aat",	{HB_TAG('S','Q','I',' ')}},	/* Arvanitika Albanian -> Albanian */
  {"ab",	{HB_TAG('A','B','K',' ')}},	/* Abkhazian */
  {"abh",	{HB_TAG('A','R','A',' ')}},	/* Tajiki Arabic -> Arabic */
  {"abq",	{HB_TAG('A','B','A',' ')}},	/* Abaza */
  {"abv",	{HB_TAG('A','R','A',' ')}},	/* Baharna Arabic -> Arabic */
  {"acf",	{HB_TAG('F','A','N',' ')}},	/* Saint Lucian Creole French -> French Antillean */
  {"ach",	{HB_TAG('A','C','H',' ')}},	/* Acoli -> Acholi */
  {"acm",	{HB_TAG('A','R','A',' ')}},	/* Mesopotamian Arabic -> Arabic */
  {"acq",	{HB_TAG('A','R','A',' ')}},	/* Ta'izzi-Adeni Arabic -> Arabic */
  {"acr",	{HB_TAG('A','C','R',' ')}},	/* Achi */
  {"acw",	{HB_TAG('A','R','A',' ')}},	/* Hijazi Arabic -> Arabic */
  {"acx",	{HB_TAG('A','R','A',' ')}},	/* Omani Arabic -> Arabic */
  {"acy",	{HB_TAG('A','R','A',' ')}},	/* Cypriot Arabic -> Arabic */
  {"ada",	{HB_TAG('D','N','G',' ')}},	/* Adangme -> Dangme */
  {"adf",	{HB_TAG('A','R','A',' ')}},	/* Dhofari Arabic -> Arabic */
  {"adp",	{HB_TAG('D','Z','N',' ')}},	/* Adap (retired code) -> Dzongkha */
  {"ady",	{HB_TAG('A','D','Y',' ')}},	/* Adyghe */
  {"aeb",	{HB_TAG('A','R','A',' ')}},	/* Tunisian Arabic -> Arabic */
  {"aec",	{HB_TAG('A','R','A',' ')}},	/* Saidi Arabic -> Arabic */
  {"af",	{HB_TAG('A','F','K',' ')}},	/* Afrikaans */
  {"afb",	{HB_TAG('A','R','A',' ')}},	/* Gulf Arabic -> Arabic */
  {"ahg",	{HB_TAG('A','G','W',' ')}},	/* Qimant -> Agaw */
  {"aht",	{HB_TAG('A','T','H',' ')}},	/* Ahtena -> Athapaskan */
  {"aii",	{HB_TAG('S','W','A',' '),	/* Assyrian Neo-Aramaic -> Swadaya Aramaic */
		 HB_TAG('S','Y','R',' ')}},	/* Assyrian Neo-Aramaic -> Syriac */
  {"aio",	{HB_TAG('A','I','O',' ')}},	/* Aiton */
  {"aiw",	{HB_TAG('A','R','I',' ')}},	/* Aari */
  {"ajp",	{HB_TAG('A','R','A',' ')}},	/* South Levantine Arabic -> Arabic */
  {"ak",	{HB_TAG('A','K','A',' '),	/* Akan [macrolanguage] */
		 HB_TAG('T','W','I',' ')}},	/* Akan [macrolanguage] -> Twi */
  {"aln",	{HB_TAG('S','Q','I',' ')}},	/* Gheg Albanian -> Albanian */
  {"als",	{HB_TAG('S','Q','I',' ')}},	/* Tosk Albanian -> Albanian */
  {"alt",	{HB_TAG('A','L','T',' ')}},	/* Southern Altai -> Altai */
  {"am",	{HB_TAG('A','M','H',' ')}},	/* Amharic */
  {"amf",	{HB_TAG('H','B','N',' ')}},	/* Hamer-Banna -> Hammer-Banna */
  {"amw",	{HB_TAG('S','Y','R',' ')}},	/* Western Neo-Aramaic -> Syriac */
  {"an",	{HB_TAG('A','R','G',' ')}},	/* Aragonese */
  {"ang",	{HB_TAG('A','N','G',' ')}},	/* Old English (ca. 450-1100) -> Anglo-Saxon */
  {"apc",	{HB_TAG('A','R','A',' ')}},	/* North Levantine Arabic -> Arabic */
  {"apd",	{HB_TAG('A','R','A',' ')}},	/* Sudanese Arabic -> Arabic */
  {"apj",	{HB_TAG('A','T','H',' ')}},	/* Jicarilla Apache -> Athapaskan */
  {"apk",	{HB_TAG('A','T','H',' ')}},	/* Kiowa Apache -> Athapaskan */
  {"apl",	{HB_TAG('A','T','H',' ')}},	/* Lipan Apache -> Athapaskan */
  {"apm",	{HB_TAG('A','T','H',' ')}},	/* Mescalero-Chiricahua Apache -> Athapaskan */
  {"apw",	{HB_TAG('A','T','H',' ')}},	/* Western Apache -> Athapaskan */
  {"ar",	{HB_TAG('A','R','A',' ')}},	/* Arabic [macrolanguage] */
  {"arb",	{HB_TAG('A','R','A',' ')}},	/* Standard Arabic -> Arabic */
  {"arn",	{HB_TAG('M','A','P',' ')}},	/* Mapudungun */
  {"arq",	{HB_TAG('A','R','A',' ')}},	/* Algerian Arabic -> Arabic */
  {"ars",	{HB_TAG('A','R','A',' ')}},	/* Najdi Arabic -> Arabic */
  {"ary",	{HB_TAG('M','O','R',' ')}},	/* Moroccan Arabic -> Moroccan */
  {"arz",	{HB_TAG('A','R','A',' ')}},	/* Egyptian Arabic -> Arabic */
  {"as",	{HB_TAG('A','S','M',' ')}},	/* Assamese */
  {"ast",	{HB_TAG('A','S','T',' ')}},	/* Asturian */
  {"ath",	{HB_TAG('A','T','H',' ')}},	/* Athapascan [family] -> Athapaskan */
  {"atj",	{HB_TAG('R','C','R',' ')}},	/* Atikamekw -> R-Cree */
  {"atv",	{HB_TAG('A','L','T',' ')}},	/* Northern Altai -> Altai */
  {"auz",	{HB_TAG('A','R','A',' ')}},	/* Uzbeki Arabic -> Arabic */
  {"av",	{HB_TAG('A','V','R',' ')}},	/* Avaric -> Avar */
  {"avl",	{HB_TAG('A','R','A',' ')}},	/* Eastern Egyptian Bedawi Arabic -> Arabic */
  {"awa",	{HB_TAG('A','W','A',' ')}},	/* Awadhi */
  {"ay",	{HB_TAG('A','Y','M',' ')}},	/* Aymara [macrolanguage] */
  {"ayc",	{HB_TAG('A','Y','M',' ')}},	/* Southern Aymara -> Aymara */
  {"ayh",	{HB_TAG('A','R','A',' ')}},	/* Hadrami Arabic -> Arabic */
  {"ayl",	{HB_TAG('A','R','A',' ')}},	/* Libyan Arabic -> Arabic */
  {"ayn",	{HB_TAG('A','R','A',' ')}},	/* Sanaani Arabic -> Arabic */
  {"ayp",	{HB_TAG('A','R','A',' ')}},	/* North Mesopotamian Arabic -> Arabic */
  {"ayr",	{HB_TAG('A','Y','M',' ')}},	/* Central Aymara -> Aymara */
  {"az",	{HB_TAG('A','Z','E',' ')}},	/* Azerbaijani [macrolanguage] */
  {"azb",	{HB_TAG('A','Z','B',' ')}},	/* South Azerbaijani -> Torki */
  {"azj",	{HB_TAG('A','Z','E',' ')}},	/* North Azerbaijani -> Azerbaijani */
  {"ba",	{HB_TAG('B','S','H',' ')}},	/* Bashkir */
  {"bad",	{HB_TAG('B','A','D','0')}},	/* Banda [family] */
  {"bai",	{HB_TAG('B','M','L',' ')}},	/* Bamileke [family] */
  {"bal",	{HB_TAG('B','L','I',' ')}},	/* Baluchi [macrolanguage] */
  {"ban",	{HB_TAG('B','A','N',' ')}},	/* Balinese */
  {"bar",	{HB_TAG('B','A','R',' ')}},	/* Bavarian */
  {"bbc",	{HB_TAG('B','B','C',' ')}},	/* Batak Toba */
  {"bbz",	{HB_TAG('A','R','A',' ')}},	/* Babalia Creole Arabic -> Arabic */
  {"bcc",	{HB_TAG('B','L','I',' ')}},	/* Southern Balochi -> Baluchi */
  {"bci",	{HB_TAG('B','A','U',' ')}},	/* Baoulé -> Baulé */
  {"bcl",	{HB_TAG('B','I','K',' ')}},	/* Central Bikol -> Bikol */
  {"bcq",	{HB_TAG('B','C','H',' ')}},	/* Bench */
  {"bcr",	{HB_TAG('A','T','H',' ')}},	/* Babine -> Athapaskan */
  {"bdy",	{HB_TAG('B','D','Y',' ')}},	/* Bandjalang */
  {"be",	{HB_TAG('B','E','L',' ')}},	/* Belarusian -> Belarussian */
  {"bea",	{HB_TAG('A','T','H',' ')}},	/* Beaver -> Athapaskan */
  {"beb",	{HB_TAG('B','T','I',' ')}},	/* Bebele -> Beti */
  {"bem",	{HB_TAG('B','E','M',' ')}},	/* Bemba (Zambia) */
  {"ber",	{HB_TAG('B','B','R',' ')}},	/* Berber [family] */
  {"bfq",	{HB_TAG('B','A','D',' ')}},	/* Badaga */
  {"bft",	{HB_TAG('B','L','T',' ')}},	/* Balti */
  {"bfu",	{HB_TAG('L','A','H',' ')}},	/* Gahri -> Lahuli */
  {"bfy",	{HB_TAG('B','A','G',' ')}},	/* Bagheli -> Baghelkhandi */
  {"bg",	{HB_TAG('B','G','R',' ')}},	/* Bulgarian */
  {"bgc",	{HB_TAG('B','G','C',' ')}},	/* Haryanvi */
  {"bgn",	{HB_TAG('B','L','I',' ')}},	/* Western Balochi -> Baluchi */
  {"bgp",	{HB_TAG('B','L','I',' ')}},	/* Eastern Balochi -> Baluchi */
  {"bgq",	{HB_TAG('B','G','Q',' ')}},	/* Bagri */
  {"bgr",	{HB_TAG('Q','I','N',' ')}},	/* Bawm Chin -> Chin */
  {"bhb",	{HB_TAG('B','H','I',' ')}},	/* Bhili */
  {"bhi",	{HB_TAG('B','H','I',' ')}},	/* Bhilali -> Bhili */
  {"bhk",	{HB_TAG('B','I','K',' ')}},	/* Albay Bicolano (retired code) -> Bikol */
  {"bho",	{HB_TAG('B','H','O',' ')}},	/* Bhojpuri */
  {"bhr",	{HB_TAG('M','L','G',' ')}},	/* Bara Malagasy -> Malagasy */
  {"bi",	{HB_TAG('B','I','S',' ')}},	/* Bislama */
  {"bik",	{HB_TAG('B','I','K',' ')}},	/* Bikol [macrolanguage] */
  {"bin",	{HB_TAG('E','D','O',' ')}},	/* Edo */
  {"bjj",	{HB_TAG('B','J','J',' ')}},	/* Kanauji */
  {"bjn",	{HB_TAG('M','L','Y',' ')}},	/* Banjar -> Malay */
  {"bjq",	{HB_TAG('M','L','G',' ')}},	/* Southern Betsimisaraka Malagasy (retired code) -> Malagasy */
  {"bjt",	{HB_TAG('B','L','N',' ')}},	/* Balanta-Ganja -> Balante */
  {"bla",	{HB_TAG('B','K','F',' ')}},	/* Siksika -> Blackfoot */
  {"ble",	{HB_TAG('B','L','N',' ')}},	/* Balanta-Kentohe -> Balante */
  {"blk",	{HB_TAG('B','L','K',' ')}},	/* Pa'o Karen */
  {"bln",	{HB_TAG('B','I','K',' ')}},	/* Southern Catanduanes Bikol -> Bikol */
  {"bm",	{HB_TAG('B','M','B',' ')}},	/* Bambara (Bamanankan) */
  {"bmm",	{HB_TAG('M','L','G',' ')}},	/* Northern Betsimisaraka Malagasy -> Malagasy */
  {"bn",	{HB_TAG('B','E','N',' ')}},	/* Bengali */
  {"bo",	{HB_TAG('T','I','B',' ')}},	/* Tibetan */
  {"bpy",	{HB_TAG('B','P','Y',' ')}},	/* Bishnupriya -> Bishnupriya Manipuri */
  {"bqi",	{HB_TAG('L','R','C',' ')}},	/* Bakhtiari -> Luri */
  {"br",	{HB_TAG('B','R','E',' ')}},	/* Breton */
  {"bra",	{HB_TAG('B','R','I',' ')}},	/* Braj -> Braj Bhasha */
  {"brh",	{HB_TAG('B','R','H',' ')}},	/* Brahui */
  {"brx",	{HB_TAG('B','R','X',' ')}},	/* Bodo (India) */
  {"bs",	{HB_TAG('B','O','S',' ')}},	/* Bosnian */
  {"bsk",	{HB_TAG('B','S','K',' ')}},	/* Burushaski */
  {"btb",	{HB_TAG('B','T','I',' ')}},	/* Beti (Cameroon) (retired code) */
  {"btj",	{HB_TAG('M','L','Y',' ')}},	/* Bacanese Malay -> Malay */
  {"bto",	{HB_TAG('B','I','K',' ')}},	/* Rinconada Bikol -> Bikol */
  {"bts",	{HB_TAG('B','T','S',' ')}},	/* Batak Simalungun */
  {"bug",	{HB_TAG('B','U','G',' ')}},	/* Buginese -> Bugis */
  {"bum",	{HB_TAG('B','T','I',' ')}},	/* Bulu (Cameroon) -> Beti */
  {"bve",	{HB_TAG('M','L','Y',' ')}},	/* Berau Malay -> Malay */
  {"bvu",	{HB_TAG('M','L','Y',' ')}},	/* Bukit Malay -> Malay */
  {"bxk",	{HB_TAG('L','U','H',' ')}},	/* Bukusu -> Luyia */
  {"bxp",	{HB_TAG('B','T','I',' ')}},	/* Bebil -> Beti */
  {"bxr",	{HB_TAG('R','B','U',' ')}},	/* Russia Buriat -> Russian Buriat */
  {"byn",	{HB_TAG('B','I','L',' ')}},	/* Bilin -> Bilen */
  {"byv",	{HB_TAG('B','Y','V',' ')}},	/* Medumba */
  {"bzc",	{HB_TAG('M','L','G',' ')}},	/* Southern Betsimisaraka Malagasy -> Malagasy */
  {"ca",	{HB_TAG('C','A','T',' ')}},	/* Catalan */
  {"caf",	{HB_TAG('C','R','R',' '),	/* Southern Carrier -> Carrier */
		 HB_TAG('A','T','H',' ')}},	/* Southern Carrier -> Athapaskan */
  {"cak",	{HB_TAG('C','A','K',' ')}},	/* Kaqchikel */
  {"cbk",	{HB_TAG('C','B','K',' ')}},	/* Chavacano -> Zamboanga Chavacano */
  {"cbl",	{HB_TAG('Q','I','N',' ')}},	/* Bualkhaw Chin -> Chin */
  {"cco",	{HB_TAG('C','C','H','N')}},	/* Comaltepec Chinantec -> Chinantec */
  {"ccq",	{HB_TAG('A','R','K',' ')}},	/* Chaungtha (retired code) -> Rakhine */
  {"cdo",	{HB_TAG('Z','H','S',' ')}},	/* Min Dong Chinese -> Chinese Simplified */
  {"ce",	{HB_TAG('C','H','E',' ')}},	/* Chechen */
  {"ceb",	{HB_TAG('C','E','B',' ')}},	/* Cebuano */
  {"cfm",	{HB_TAG('H','A','L',' ')}},	/* Halam (Falam Chin) */
  {"cgg",	{HB_TAG('C','G','G',' ')}},	/* Chiga */
  {"ch",	{HB_TAG('C','H','A',' ')}},	/* Chamorro */
  {"chj",	{HB_TAG('C','C','H','N')}},	/* Ojitlán Chinantec -> Chinantec */
  {"chk",	{HB_TAG('C','H','K','0')}},	/* Chuukese */
  {"cho",	{HB_TAG('C','H','O',' ')}},	/* Choctaw */
  {"chp",	{HB_TAG('C','H','P',' '),	/* Chipewyan */
		 HB_TAG('S','A','Y',' '),	/* Chipewyan -> Sayisi */
		 HB_TAG('A','T','H',' ')}},	/* Chipewyan -> Athapaskan */
  {"chq",	{HB_TAG('C','C','H','N')}},	/* Quiotepec Chinantec -> Chinantec */
  {"chr",	{HB_TAG('C','H','R',' ')}},	/* Cherokee */
  {"chy",	{HB_TAG('C','H','Y',' ')}},	/* Cheyenne */
  {"chz",	{HB_TAG('C','C','H','N')}},	/* Ozumacín Chinantec -> Chinantec */
  {"ciw",	{HB_TAG('O','J','B',' ')}},	/* Chippewa -> Ojibway */
  {"cja",	{HB_TAG('C','J','A',' ')}},	/* Western Cham */
  {"cjm",	{HB_TAG('C','J','M',' ')}},	/* Eastern Cham */
  {"cjy",	{HB_TAG('Z','H','S',' ')}},	/* Jinyu Chinese -> Chinese Simplified */
  {"cka",	{HB_TAG('Q','I','N',' ')}},	/* Khumi Awa Chin (retired code) -> Chin */
  {"ckb",	{HB_TAG('K','U','R',' ')}},	/* Central Kurdish -> Kurdish */
  {"ckt",	{HB_TAG('C','H','K',' ')}},	/* Chukot -> Chukchi */
  {"clc",	{HB_TAG('A','T','H',' ')}},	/* Chilcotin -> Athapaskan */
  {"cld",	{HB_TAG('S','Y','R',' ')}},	/* Chaldean Neo-Aramaic -> Syriac */
  {"cle",	{HB_TAG('C','C','H','N')}},	/* Lealao Chinantec -> Chinantec */
  {"cmn",	{HB_TAG('Z','H','S',' ')}},	/* Mandarin Chinese -> Chinese Simplified */
  {"cmr",	{HB_TAG('Q','I','N',' ')}},	/* Mro-Khimi Chin -> Chin */
  {"cnb",	{HB_TAG('Q','I','N',' ')}},	/* Chinbon Chin -> Chin */
  {"cnh",	{HB_TAG('Q','I','N',' ')}},	/* Hakha Chin -> Chin */
  {"cnk",	{HB_TAG('Q','I','N',' ')}},	/* Khumi Chin -> Chin */
  {"cnl",	{HB_TAG('C','C','H','N')}},	/* Lalana Chinantec -> Chinantec */
  {"cnt",	{HB_TAG('C','C','H','N')}},	/* Tepetotutla Chinantec -> Chinantec */
  {"cnw",	{HB_TAG('Q','I','N',' ')}},	/* Ngawn Chin -> Chin */
  {"co",	{HB_TAG('C','O','S',' ')}},	/* Corsican */
  {"coa",	{HB_TAG('M','L','Y',' ')}},	/* Cocos Islands Malay -> Malay */
  {"cop",	{HB_TAG('C','O','P',' ')}},	/* Coptic */
  {"coq",	{HB_TAG('A','T','H',' ')}},	/* Coquille -> Athapaskan */
  {"cpa",	{HB_TAG('C','C','H','N')}},	/* Palantla Chinantec -> Chinantec */
  {"cpe",	{HB_TAG('C','P','P',' ')}},	/* English-based creoles and pidgins [family] -> Creoles */
  {"cpf",	{HB_TAG('C','P','P',' ')}},	/* French-based creoles and pidgins [family] -> Creoles */
  {"cpp",	{HB_TAG('C','P','P',' ')}},	/* Portuguese-based creoles and pidgins [family] -> Creoles */
  {"cpx",	{HB_TAG('Z','H','S',' ')}},	/* Pu-Xian Chinese -> Chinese Simplified */
  {"cqd",	{HB_TAG('H','M','N',' ')}},	/* Chuanqiandian Cluster Miao -> Hmong */
  {"cqu",	{HB_TAG('Q','U','H',' ')}},	/* Chilean Quechua (retired code) -> Quechua (Bolivia) */
  {"cr",	{HB_TAG('C','R','E',' '),	/* Cree [macrolanguage] */
		 HB_TAG('Y','C','R',' ')}},	/* Cree [macrolanguage] -> Y-Cree */
  {"crh",	{HB_TAG('C','R','T',' ')}},	/* Crimean Tatar */
  {"crj",	{HB_TAG('E','C','R',' ')}},	/* Southern East Cree -> Eastern Cree */
  {"crk",	{HB_TAG('W','C','R',' ')}},	/* Plains Cree -> West-Cree */
  {"crl",	{HB_TAG('E','C','R',' ')}},	/* Northern East Cree -> Eastern Cree */
  {"crm",	{HB_TAG('M','C','R',' '),	/* Moose Cree */
		 HB_TAG('L','C','R',' ')}},	/* Moose Cree -> L-Cree */
  {"crp",	{HB_TAG('C','P','P',' ')}},	/* Creoles and pidgins [family] -> Creoles */
  {"crx",	{HB_TAG('C','R','R',' '),	/* Carrier */
		 HB_TAG('A','T','H',' ')}},	/* Carrier -> Athapaskan */
  {"cs",	{HB_TAG('C','S','Y',' ')}},	/* Czech */
  {"csa",	{HB_TAG('C','C','H','N')}},	/* Chiltepec Chinantec -> Chinantec */
  {"csb",	{HB_TAG('C','S','B',' ')}},	/* Kashubian */
  {"csh",	{HB_TAG('Q','I','N',' ')}},	/* Asho Chin -> Chin */
  {"cso",	{HB_TAG('C','C','H','N')}},	/* Sochiapam Chinantec -> Chinantec */
  {"csw",	{HB_TAG('N','C','R',' '),	/* Swampy Cree -> N-Cree */
		 HB_TAG('N','H','C',' ')}},	/* Swampy Cree -> Norway House Cree */
  {"csy",	{HB_TAG('Q','I','N',' ')}},	/* Siyin Chin -> Chin */
  {"ctc",	{HB_TAG('A','T','H',' ')}},	/* Chetco -> Athapaskan */
  {"ctd",	{HB_TAG('Q','I','N',' ')}},	/* Tedim Chin -> Chin */
  {"cte",	{HB_TAG('C','C','H','N')}},	/* Tepinapa Chinantec -> Chinantec */
  {"ctg",	{HB_TAG('C','T','G',' ')}},	/* Chittagonian */
  {"ctl",	{HB_TAG('C','C','H','N')}},	/* Tlacoatzintepec Chinantec -> Chinantec */
  {"cts",	{HB_TAG('B','I','K',' ')}},	/* Northern Catanduanes Bikol -> Bikol */
  {"cu",	{HB_TAG('C','S','L',' ')}},	/* Church Slavonic */
  {"cuc",	{HB_TAG('C','C','H','N')}},	/* Usila Chinantec -> Chinantec */
  {"cuk",	{HB_TAG('C','U','K',' ')}},	/* San Blas Kuna */
  {"cv",	{HB_TAG('C','H','U',' ')}},	/* Chuvash */
  {"cvn",	{HB_TAG('C','C','H','N')}},	/* Valle Nacional Chinantec -> Chinantec */
  {"cwd",	{HB_TAG('D','C','R',' '),	/* Woods Cree */
		 HB_TAG('T','C','R',' ')}},	/* Woods Cree -> TH-Cree */
  {"cy",	{HB_TAG('W','E','L',' ')}},	/* Welsh */
  {"czh",	{HB_TAG('Z','H','S',' ')}},	/* Huizhou Chinese -> Chinese Simplified */
  {"czo",	{HB_TAG('Z','H','S',' ')}},	/* Min Zhong Chinese -> Chinese Simplified */
  {"czt",	{HB_TAG('Q','I','N',' ')}},	/* Zotung Chin -> Chin */
  {"da",	{HB_TAG('D','A','N',' ')}},	/* Danish */
  {"dao",	{HB_TAG('Q','I','N',' ')}},	/* Daai Chin -> Chin */
  {"dap",	{HB_TAG('N','I','S',' ')}},	/* Nisi (India) (retired code) */
  {"dar",	{HB_TAG('D','A','R',' ')}},	/* Dargwa */
  {"dax",	{HB_TAG('D','A','X',' ')}},	/* Dayi */
  {"de",	{HB_TAG('D','E','U',' ')}},	/* German */
  {"den",	{HB_TAG('S','L','A',' '),	/* Slave (Athapascan) [macrolanguage] -> Slavey */
		 HB_TAG('A','T','H',' ')}},	/* Slave (Athapascan) [macrolanguage] -> Athapaskan */
  {"dgo",	{HB_TAG('D','G','O',' ')}},	/* Dogri */
  {"dgr",	{HB_TAG('A','T','H',' ')}},	/* Dogrib -> Athapaskan */
  {"dhd",	{HB_TAG('M','A','W',' ')}},	/* Dhundari -> Marwari */
  {"dhg",	{HB_TAG('D','H','G',' ')}},	/* Dhangu */
  {"dib",	{HB_TAG('D','N','K',' ')}},	/* South Central Dinka -> Dinka */
  {"dik",	{HB_TAG('D','N','K',' ')}},	/* Southwestern Dinka -> Dinka */
  {"din",	{HB_TAG('D','N','K',' ')}},	/* Dinka [macrolanguage] */
  {"dip",	{HB_TAG('D','N','K',' ')}},	/* Northeastern Dinka -> Dinka */
  {"diq",	{HB_TAG('D','I','Q',' ')}},	/* Dimli */
  {"diw",	{HB_TAG('D','N','K',' ')}},	/* Northwestern Dinka -> Dinka */
  {"dje",	{HB_TAG('D','J','R',' ')}},	/* Zarma */
  {"djr",	{HB_TAG('D','J','R','0')}},	/* Djambarrpuyngu */
  {"dks",	{HB_TAG('D','N','K',' ')}},	/* Southeastern Dinka -> Dinka */
  {"dng",	{HB_TAG('D','U','N',' ')}},	/* Dungan */
  {"dnj",	{HB_TAG('D','N','J',' ')}},	/* Dan */
  {"doi",	{HB_TAG('D','G','R',' ')}},	/* Dogri [macrolanguage] */
  {"drh",	{HB_TAG('M','N','G',' ')}},	/* Darkhat (retired code) -> Mongolian */
  {"drw",	{HB_TAG('D','R','I',' ')}},	/* Darwazi (retired code) -> Dari */
  {"dsb",	{HB_TAG('L','S','B',' ')}},	/* Lower Sorbian */
  {"dty",	{HB_TAG('N','E','P',' ')}},	/* Dotyali -> Nepali */
  {"duj",	{HB_TAG('D','U','J',' ')}},	/* Dhuwal (retired code) */
  {"dup",	{HB_TAG('M','L','Y',' ')}},	/* Duano -> Malay */
  {"dv",	{HB_TAG('D','I','V',' '),	/* Divehi (Dhivehi, Maldivian) */
		 HB_TAG('D','H','V',' ')}},	/* Divehi (Dhivehi, Maldivian) (deprecated) */
  {"dwu",	{HB_TAG('D','U','J',' ')}},	/* Dhuwal */
  {"dwy",	{HB_TAG('D','U','J',' ')}},	/* Dhuwaya -> Dhuwal */
  {"dyu",	{HB_TAG('J','U','L',' ')}},	/* Dyula -> Jula */
  {"dz",	{HB_TAG('D','Z','N',' ')}},	/* Dzongkha */
  {"ee",	{HB_TAG('E','W','E',' ')}},	/* Ewe */
  {"efi",	{HB_TAG('E','F','I',' ')}},	/* Efik */
  {"ekk",	{HB_TAG('E','T','I',' ')}},	/* Standard Estonian -> Estonian */
  {"el",	{HB_TAG('E','L','L',' ')}},	/* Modern Greek (1453-) -> Greek */
  {"emk",	{HB_TAG('E','M','K',' '),	/* Eastern Maninkakan */
		 HB_TAG('M','N','K',' ')}},	/* Eastern Maninkakan -> Maninka */
  {"en",	{HB_TAG('E','N','G',' ')}},	/* English */
  {"enb",	{HB_TAG('K','A','L',' ')}},	/* Markweeta -> Kalenjin */
  {"enf",	{HB_TAG('F','N','E',' ')}},	/* Forest Enets -> Forest Nenets */
  {"enh",	{HB_TAG('T','N','E',' ')}},	/* Tundra Enets -> Tundra Nenets */
  {"eo",	{HB_TAG('N','T','O',' ')}},	/* Esperanto */
  {"es",	{HB_TAG('E','S','P',' ')}},	/* Spanish */
  {"esg",	{HB_TAG('G','O','N',' ')}},	/* Aheri Gondi -> Gondi */
  {"esi",	{HB_TAG('I','P','K',' ')}},	/* North Alaskan Inupiatun -> Inupiat */
  {"esk",	{HB_TAG('I','P','K',' ')}},	/* Northwest Alaska Inupiatun -> Inupiat */
  {"esu",	{HB_TAG('E','S','U',' ')}},	/* Central Yupik */
  {"et",	{HB_TAG('E','T','I',' ')}},	/* Estonian [macrolanguage] */
  {"eto",	{HB_TAG('B','T','I',' ')}},	/* Eton (Cameroon) -> Beti */
  {"eu",	{HB_TAG('E','U','Q',' ')}},	/* Basque */
  {"eve",	{HB_TAG('E','V','N',' ')}},	/* Even */
  {"evn",	{HB_TAG('E','V','K',' ')}},	/* Evenki */
  {"ewo",	{HB_TAG('B','T','I',' ')}},	/* Ewondo -> Beti */
  {"eyo",	{HB_TAG('K','A','L',' ')}},	/* Keiyo -> Kalenjin */
  {"fa",	{HB_TAG('F','A','R',' ')}},	/* Persian [macrolanguage] */
  {"fan",	{HB_TAG('F','A','N','0')}},	/* Fang (Equatorial Guinea) */
  {"fat",	{HB_TAG('F','A','T',' ')}},	/* Fanti */
  {"fbl",	{HB_TAG('B','I','K',' ')}},	/* West Albay Bikol -> Bikol */
  {"ff",	{HB_TAG('F','U','L',' ')}},	/* Fulah [macrolanguage] */
  {"ffm",	{HB_TAG('F','U','L',' ')}},	/* Maasina Fulfulde -> Fulah */
  {"fi",	{HB_TAG('F','I','N',' ')}},	/* Finnish */
  {"fil",	{HB_TAG('P','I','L',' ')}},	/* Filipino */
  {"fj",	{HB_TAG('F','J','I',' ')}},	/* Fijian */
  {"flm",	{HB_TAG('H','A','L',' '),	/* Halam (Falam Chin) (retired code) */
		 HB_TAG('Q','I','N',' ')}},	/* Falam Chin (retired code) -> Chin */
  {"fmp",	{HB_TAG('F','M','P',' ')}},	/* Fe'fe' */
  {"fo",	{HB_TAG('F','O','S',' ')}},	/* Faroese */
  {"fon",	{HB_TAG('F','O','N',' ')}},	/* Fon */
  {"fr",	{HB_TAG('F','R','A',' ')}},	/* French */
  {"frc",	{HB_TAG('F','R','C',' ')}},	/* Cajun French */
  {"frp",	{HB_TAG('F','R','P',' ')}},	/* Arpitan */
  {"fub",	{HB_TAG('F','U','L',' ')}},	/* Adamawa Fulfulde -> Fulah */
  {"fuc",	{HB_TAG('F','U','L',' ')}},	/* Pulaar -> Fulah */
  {"fue",	{HB_TAG('F','U','L',' ')}},	/* Borgu Fulfulde -> Fulah */
  {"fuf",	{HB_TAG('F','T','A',' ')}},	/* Pular -> Futa */
  {"fuh",	{HB_TAG('F','U','L',' ')}},	/* Western Niger Fulfulde -> Fulah */
  {"fui",	{HB_TAG('F','U','L',' ')}},	/* Bagirmi Fulfulde -> Fulah */
  {"fuq",	{HB_TAG('F','U','L',' ')}},	/* Central-Eastern Niger Fulfulde -> Fulah */
  {"fur",	{HB_TAG('F','R','L',' ')}},	/* Friulian */
  {"fuv",	{HB_TAG('F','U','V',' ')}},	/* Nigerian Fulfulde */
  {"fy",	{HB_TAG('F','R','I',' ')}},	/* Western Frisian -> Frisian */
  {"ga",	{HB_TAG('I','R','I',' ')}},	/* Irish */
  {"gaa",	{HB_TAG('G','A','D',' ')}},	/* Ga */
  {"gag",	{HB_TAG('G','A','G',' ')}},	/* Gagauz */
  {"gan",	{HB_TAG('Z','H','S',' ')}},	/* Gan Chinese -> Chinese Simplified */
  {"gax",	{HB_TAG('O','R','O',' ')}},	/* Borana-Arsi-Guji Oromo -> Oromo */
  {"gaz",	{HB_TAG('O','R','O',' ')}},	/* West Central Oromo -> Oromo */
  {"gbm",	{HB_TAG('G','A','W',' ')}},	/* Garhwali */
  {"gce",	{HB_TAG('A','T','H',' ')}},	/* Galice -> Athapaskan */
  {"gd",	{HB_TAG('G','A','E',' ')}},	/* Scottish Gaelic (Gaelic) */
  {"gda",	{HB_TAG('R','A','J',' ')}},	/* Gade Lohar -> Rajasthani */
  {"gez",	{HB_TAG('G','E','Z',' ')}},	/* Geez */
  {"ggo",	{HB_TAG('G','O','N',' ')}},	/* Southern Gondi (retired code) -> Gondi */
  {"gih",	{HB_TAG('G','I','H',' ')}},	/* Githabul */
  {"gil",	{HB_TAG('G','I','L','0')}},	/* Kiribati (Gilbertese) */
  {"gju",	{HB_TAG('R','A','J',' ')}},	/* Gujari -> Rajasthani */
  {"gkp",	{HB_TAG('G','K','P',' ')}},	/* Guinea Kpelle -> Kpelle (Guinea) */
  {"gl",	{HB_TAG('G','A','L',' ')}},	/* Galician */
  {"gld",	{HB_TAG('N','A','N',' ')}},	/* Nanai */
  {"glk",	{HB_TAG('G','L','K',' ')}},	/* Gilaki */
  {"gn",	{HB_TAG('G','U','A',' ')}},	/* Guarani [macrolanguage] */
  {"gnn",	{HB_TAG('G','N','N',' ')}},	/* Gumatj */
  {"gno",	{HB_TAG('G','O','N',' ')}},	/* Northern Gondi -> Gondi */
  {"gnw",	{HB_TAG('G','U','A',' ')}},	/* Western Bolivian Guaraní -> Guarani */
  {"gog",	{HB_TAG('G','O','G',' ')}},	/* Gogo */
  {"gom",	{HB_TAG('K','O','K',' ')}},	/* Goan Konkani -> Konkani */
  {"gon",	{HB_TAG('G','O','N',' ')}},	/* Gondi [macrolanguage] */
  {"grt",	{HB_TAG('G','R','O',' ')}},	/* Garo */
  {"gru",	{HB_TAG('S','O','G',' ')}},	/* Kistane -> Sodo Gurage */
  {"gsw",	{HB_TAG('A','L','S',' ')}},	/* Alsatian */
  {"gu",	{HB_TAG('G','U','J',' ')}},	/* Gujarati */
  {"guc",	{HB_TAG('G','U','C',' ')}},	/* Wayuu */
  {"guf",	{HB_TAG('G','U','F',' ')}},	/* Gupapuyngu */
  {"gug",	{HB_TAG('G','U','A',' ')}},	/* Paraguayan Guaraní -> Guarani */
  {"gui",	{HB_TAG('G','U','A',' ')}},	/* Eastern Bolivian Guaraní -> Guarani */
  {"guk",	{HB_TAG('G','M','Z',' '),	/* Gumuz */
		 HB_TAG('G','U','K',' ')}},	/* Gumuz (SIL fonts) */
  {"gun",	{HB_TAG('G','U','A',' ')}},	/* Mbyá Guaraní -> Guarani */
  {"guz",	{HB_TAG('G','U','Z',' ')}},	/* Gusii */
  {"gv",	{HB_TAG('M','N','X',' ')}},	/* Manx */
  {"gwi",	{HB_TAG('A','T','H',' ')}},	/* Gwichʼin -> Athapaskan */
  {"ha",	{HB_TAG('H','A','U',' ')}},	/* Hausa */
  {"haa",	{HB_TAG('A','T','H',' ')}},	/* Han -> Athapaskan */
  {"hae",	{HB_TAG('O','R','O',' ')}},	/* Eastern Oromo -> Oromo */
  {"hak",	{HB_TAG('Z','H','S',' ')}},	/* Hakka Chinese -> Chinese Simplified */
  {"har",	{HB_TAG('H','R','I',' ')}},	/* Harari */
  {"haw",	{HB_TAG('H','A','W',' ')}},	/* Hawaiian */
  {"hay",	{HB_TAG('H','A','Y',' ')}},	/* Haya */
  {"haz",	{HB_TAG('H','A','Z',' ')}},	/* Hazaragi */
  {"he",	{HB_TAG('I','W','R',' ')}},	/* Hebrew */
  {"hea",	{HB_TAG('H','M','N',' ')}},	/* Northern Qiandong Miao -> Hmong */
  {"hi",	{HB_TAG('H','I','N',' ')}},	/* Hindi */
  {"hil",	{HB_TAG('H','I','L',' ')}},	/* Hiligaynon */
  {"hji",	{HB_TAG('M','L','Y',' ')}},	/* Haji -> Malay */
  {"hlt",	{HB_TAG('Q','I','N',' ')}},	/* Matu Chin -> Chin */
  {"hma",	{HB_TAG('H','M','N',' ')}},	/* Southern Mashan Hmong -> Hmong */
  {"hmc",	{HB_TAG('H','M','N',' ')}},	/* Central Huishui Hmong -> Hmong */
  {"hmd",	{HB_TAG('H','M','N',' ')}},	/* Large Flowery Miao -> Hmong */
  {"hme",	{HB_TAG('H','M','N',' ')}},	/* Eastern Huishui Hmong -> Hmong */
  {"hmg",	{HB_TAG('H','M','N',' ')}},	/* Southwestern Guiyang Hmong -> Hmong */
  {"hmh",	{HB_TAG('H','M','N',' ')}},	/* Southwestern Huishui Hmong -> Hmong */
  {"hmi",	{HB_TAG('H','M','N',' ')}},	/* Northern Huishui Hmong -> Hmong */
  {"hmj",	{HB_TAG('H','M','N',' ')}},	/* Ge -> Hmong */
  {"hml",	{HB_TAG('H','M','N',' ')}},	/* Luopohe Hmong -> Hmong */
  {"hmm",	{HB_TAG('H','M','N',' ')}},	/* Central Mashan Hmong -> Hmong */
  {"hmn",	{HB_TAG('H','M','N',' ')}},	/* Hmong [macrolanguage] */
  {"hmp",	{HB_TAG('H','M','N',' ')}},	/* Northern Mashan Hmong -> Hmong */
  {"hmq",	{HB_TAG('H','M','N',' ')}},	/* Eastern Qiandong Miao -> Hmong */
  {"hms",	{HB_TAG('H','M','N',' ')}},	/* Southern Qiandong Miao -> Hmong */
  {"hmw",	{HB_TAG('H','M','N',' ')}},	/* Western Mashan Hmong -> Hmong */
  {"hmy",	{HB_TAG('H','M','N',' ')}},	/* Southern Guiyang Hmong -> Hmong */
  {"hmz",	{HB_TAG('H','M','N',' ')}},	/* Hmong Shua -> Hmong */
  {"hnd",	{HB_TAG('H','N','D',' ')}},	/* Southern Hindko -> Hindko */
  {"hne",	{HB_TAG('C','H','H',' ')}},	/* Chhattisgarhi -> Chattisgarhi */
  {"hnj",	{HB_TAG('H','M','N',' ')}},	/* Hmong Njua -> Hmong */
  {"hno",	{HB_TAG('H','N','D',' ')}},	/* Northern Hindko -> Hindko */
  {"ho",	{HB_TAG('H','M','O',' ')}},	/* Hiri Motu */
  {"hoc",	{HB_TAG('H','O',' ',' ')}},	/* Ho */
  {"hoi",	{HB_TAG('A','T','H',' ')}},	/* Holikachuk -> Athapaskan */
  {"hoj",	{HB_TAG('H','A','R',' ')}},	/* Hadothi -> Harauti */
  {"hr",	{HB_TAG('H','R','V',' ')}},	/* Croatian */
  {"hrm",	{HB_TAG('H','M','N',' ')}},	/* Horned Miao -> Hmong */
  {"hsb",	{HB_TAG('U','S','B',' ')}},	/* Upper Sorbian */
  {"hsn",	{HB_TAG('Z','H','S',' ')}},	/* Xiang Chinese -> Chinese Simplified */
  {"ht",	{HB_TAG('H','A','I',' ')}},	/* Haitian (Haitian Creole) */
  {"hu",	{HB_TAG('H','U','N',' ')}},	/* Hungarian */
  {"huj",	{HB_TAG('H','M','N',' ')}},	/* Northern Guiyang Hmong -> Hmong */
  {"hup",	{HB_TAG('A','T','H',' ')}},	/* Hupa -> Athapaskan */
  {"hy",	{HB_TAG('H','Y','E','0'),	/* Armenian -> Armenian East */
		 HB_TAG('H','Y','E',' ')}},	/* Armenian */
  {"hyw",	{HB_TAG('H','Y','E',' ')}},	/* Western Armenian -> Armenian */
  {"hz",	{HB_TAG('H','E','R',' ')}},	/* Herero */
  {"ia",	{HB_TAG('I','N','A',' ')}},	/* Interlingua (International Auxiliary Language Association) */
  {"iba",	{HB_TAG('I','B','A',' ')}},	/* Iban */
  {"ibb",	{HB_TAG('I','B','B',' ')}},	/* Ibibio */
  {"id",	{HB_TAG('I','N','D',' ')}},	/* Indonesian */
  {"ida",	{HB_TAG('L','U','H',' ')}},	/* Idakho-Isukha-Tiriki -> Luyia */
  {"ie",	{HB_TAG('I','L','E',' ')}},	/* Interlingue */
  {"ig",	{HB_TAG('I','B','O',' ')}},	/* Igbo */
  {"igb",	{HB_TAG('E','B','I',' ')}},	/* Ebira */
  {"ii",	{HB_TAG('Y','I','M',' ')}},	/* Sichuan Yi -> Yi Modern */
  {"ijc",	{HB_TAG('I','J','O',' ')}},	/* Izon -> Ijo */
  {"ijo",	{HB_TAG('I','J','O',' ')}},	/* Ijo [family] */
  {"ik",	{HB_TAG('I','P','K',' ')}},	/* Inupiaq [macrolanguage] -> Inupiat */
  {"ike",	{HB_TAG('I','N','U',' ')}},	/* Eastern Canadian Inuktitut -> Inuktitut */
  {"ikt",	{HB_TAG('I','N','U',' ')}},	/* Inuinnaqtun -> Inuktitut */
  {"ilo",	{HB_TAG('I','L','O',' ')}},	/* Iloko -> Ilokano */
  {"in",	{HB_TAG('I','N','D',' ')}},	/* Indonesian (retired code) */
  {"ing",	{HB_TAG('A','T','H',' ')}},	/* Degexit'an -> Athapaskan */
  {"inh",	{HB_TAG('I','N','G',' ')}},	/* Ingush */
  {"io",	{HB_TAG('I','D','O',' ')}},	/* Ido */
  {"is",	{HB_TAG('I','S','L',' ')}},	/* Icelandic */
  {"it",	{HB_TAG('I','T','A',' ')}},	/* Italian */
  {"iu",	{HB_TAG('I','N','U',' ')}},	/* Inuktitut [macrolanguage] */
  {"iw",	{HB_TAG('I','W','R',' ')}},	/* Hebrew (retired code) */
  {"ja",	{HB_TAG('J','A','N',' ')}},	/* Japanese */
  {"jak",	{HB_TAG('M','L','Y',' ')}},	/* Jakun -> Malay */
  {"jam",	{HB_TAG('J','A','M',' ')}},	/* Jamaican Creole English -> Jamaican Creole */
  {"jax",	{HB_TAG('M','L','Y',' ')}},	/* Jambi Malay -> Malay */
  {"jbo",	{HB_TAG('J','B','O',' ')}},	/* Lojban */
  {"jct",	{HB_TAG('J','C','T',' ')}},	/* Krymchak */
  {"ji",	{HB_TAG('J','I','I',' ')}},	/* Yiddish (retired code) */
  {"jv",	{HB_TAG('J','A','V',' ')}},	/* Javanese */
  {"jw",	{HB_TAG('J','A','V',' ')}},	/* Javanese (retired code) */
  {"ka",	{HB_TAG('K','A','T',' ')}},	/* Georgian */
  {"kaa",	{HB_TAG('K','R','K',' ')}},	/* Kara-Kalpak -> Karakalpak */
  {"kab",	{HB_TAG('K','A','B','0')}},	/* Kabyle */
  {"kam",	{HB_TAG('K','M','B',' ')}},	/* Kamba (Kenya) */
  {"kar",	{HB_TAG('K','R','N',' ')}},	/* Karen [family] */
  {"kbd",	{HB_TAG('K','A','B',' ')}},	/* Kabardian */
  {"kby",	{HB_TAG('K','N','R',' ')}},	/* Manga Kanuri -> Kanuri */
  {"kca",	{HB_TAG('K','H','K',' '),	/* Khanty -> Khanty-Kazim */
		 HB_TAG('K','H','S',' '),	/* Khanty -> Khanty-Shurishkar */
		 HB_TAG('K','H','V',' ')}},	/* Khanty -> Khanty-Vakhi */
  {"kde",	{HB_TAG('K','D','E',' ')}},	/* Makonde */
  {"kdr",	{HB_TAG('K','R','M',' ')}},	/* Karaim */
  {"kdt",	{HB_TAG('K','U','Y',' ')}},	/* Kuy */
  {"kea",	{HB_TAG('K','E','A',' ')}},	/* Kabuverdianu (Crioulo) */
  {"kek",	{HB_TAG('K','E','K',' ')}},	/* Kekchi */
  {"kex",	{HB_TAG('K','K','N',' ')}},	/* Kukna -> Kokni */
  {"kfa",	{HB_TAG('K','O','D',' ')}},	/* Kodava -> Kodagu */
  {"kfr",	{HB_TAG('K','A','C',' ')}},	/* Kachhi -> Kachchi */
  {"kfx",	{HB_TAG('K','U','L',' ')}},	/* Kullu Pahari -> Kulvi */
  {"kfy",	{HB_TAG('K','M','N',' ')}},	/* Kumaoni */
  {"kg",	{HB_TAG('K','O','N','0')}},	/* Kongo [macrolanguage] */
  {"kha",	{HB_TAG('K','S','I',' ')}},	/* Khasi */
  {"khb",	{HB_TAG('X','B','D',' ')}},	/* Lü */
  {"khk",	{HB_TAG('M','N','G',' ')}},	/* Halh Mongolian -> Mongolian */
  {"kht",	{HB_TAG('K','H','N',' '),	/* Khamti -> Khamti Shan (Microsoft fonts) */
		 HB_TAG('K','H','T',' ')}},	/* Khamti -> Khamti Shan (OpenType spec and SIL fonts) */
  {"khw",	{HB_TAG('K','H','W',' ')}},	/* Khowar */
  {"ki",	{HB_TAG('K','I','K',' ')}},	/* Kikuyu (Gikuyu) */
  {"kiu",	{HB_TAG('K','I','U',' ')}},	/* Kirmanjki */
  {"kj",	{HB_TAG('K','U','A',' ')}},	/* Kuanyama */
  {"kjd",	{HB_TAG('K','J','D',' ')}},	/* Southern Kiwai */
  {"kjh",	{HB_TAG('K','H','A',' ')}},	/* Khakas -> Khakass */
  {"kjp",	{HB_TAG('K','J','P',' ')}},	/* Pwo Eastern Karen -> Eastern Pwo Karen */
  {"kjz",	{HB_TAG('K','J','Z',' ')}},	/* Bumthangkha */
  {"kk",	{HB_TAG('K','A','Z',' ')}},	/* Kazakh */
  {"kkz",	{HB_TAG('A','T','H',' ')}},	/* Kaska -> Athapaskan */
  {"kl",	{HB_TAG('G','R','N',' ')}},	/* Greenlandic */
  {"kln",	{HB_TAG('K','A','L',' ')}},	/* Kalenjin [macrolanguage] */
  {"km",	{HB_TAG('K','H','M',' ')}},	/* Khmer */
  {"kmb",	{HB_TAG('M','B','N',' ')}},	/* Kimbundu -> Mbundu */
  {"kmr",	{HB_TAG('K','U','R',' ')}},	/* Northern Kurdish -> Kurdish */
  {"kmw",	{HB_TAG('K','M','O',' ')}},	/* Komo (Democratic Republic of Congo) */
  {"kmz",	{HB_TAG('K','M','Z',' ')}},	/* Khorasani Turkish -> Khorasani Turkic */
  {"kn",	{HB_TAG('K','A','N',' ')}},	/* Kannada */
  {"knc",	{HB_TAG('K','N','R',' ')}},	/* Central Kanuri -> Kanuri */
  {"kng",	{HB_TAG('K','O','N','0')}},	/* Koongo -> Kongo */
  {"knn",	{HB_TAG('K','O','K',' ')}},	/* Konkani */
  {"ko",	{HB_TAG('K','O','R',' ')}},	/* Korean */
  {"koi",	{HB_TAG('K','O','P',' ')}},	/* Komi-Permyak */
  {"kok",	{HB_TAG('K','O','K',' ')}},	/* Konkani [macrolanguage] */
  {"kos",	{HB_TAG('K','O','S',' ')}},	/* Kosraean */
  {"koy",	{HB_TAG('A','T','H',' ')}},	/* Koyukon -> Athapaskan */
  {"kpe",	{HB_TAG('K','P','L',' ')}},	/* Kpelle [macrolanguage] */
  {"kpv",	{HB_TAG('K','O','Z',' ')}},	/* Komi-Zyrian */
  {"kpy",	{HB_TAG('K','Y','K',' ')}},	/* Koryak */
  {"kqs",	{HB_TAG('K','I','S',' ')}},	/* Northern Kissi -> Kisii */
  {"kqy",	{HB_TAG('K','R','T',' ')}},	/* Koorete */
  {"kr",	{HB_TAG('K','N','R',' ')}},	/* Kanuri [macrolanguage] */
  {"krc",	{HB_TAG('K','A','R',' '),	/* Karachay-Balkar -> Karachay */
		 HB_TAG('B','A','L',' ')}},	/* Karachay-Balkar -> Balkar */
  {"kri",	{HB_TAG('K','R','I',' ')}},	/* Krio */
  {"krl",	{HB_TAG('K','R','L',' ')}},	/* Karelian */
  {"krt",	{HB_TAG('K','N','R',' ')}},	/* Tumari Kanuri -> Kanuri */
  {"kru",	{HB_TAG('K','U','U',' ')}},	/* Kurukh */
  {"ks",	{HB_TAG('K','S','H',' ')}},	/* Kashmiri */
  {"ksh",	{HB_TAG('K','S','H','0')}},	/* Kölsch -> Ripuarian */
  {"kss",	{HB_TAG('K','I','S',' ')}},	/* Southern Kisi -> Kisii */
  {"ksw",	{HB_TAG('K','S','W',' ')}},	/* S’gaw Karen */
  {"ktb",	{HB_TAG('K','E','B',' ')}},	/* Kambaata -> Kebena */
  {"ktu",	{HB_TAG('K','O','N',' ')}},	/* Kituba (Democratic Republic of Congo) -> Kikongo */
  {"ktw",	{HB_TAG('A','T','H',' ')}},	/* Kato -> Athapaskan */
  {"ku",	{HB_TAG('K','U','R',' ')}},	/* Kurdish [macrolanguage] */
  {"kum",	{HB_TAG('K','U','M',' ')}},	/* Kumyk */
  {"kuu",	{HB_TAG('A','T','H',' ')}},	/* Upper Kuskokwim -> Athapaskan */
  {"kv",	{HB_TAG('K','O','M',' ')}},	/* Komi [macrolanguage] */
  {"kvb",	{HB_TAG('M','L','Y',' ')}},	/* Kubu -> Malay */
  {"kvr",	{HB_TAG('M','L','Y',' ')}},	/* Kerinci -> Malay */
  {"kw",	{HB_TAG('C','O','R',' ')}},	/* Cornish */
  {"kwy",	{HB_TAG('K','O','N','0')}},	/* San Salvador Kongo -> Kongo */
  {"kxc",	{HB_TAG('K','M','S',' ')}},	/* Konso -> Komso */
  {"kxd",	{HB_TAG('M','L','Y',' ')}},	/* Brunei -> Malay */
  {"kxu",	{HB_TAG('K','U','I',' ')}},	/* Kui (India) */
  {"ky",	{HB_TAG('K','I','R',' ')}},	/* Kirghiz (Kyrgyz) */
  {"kyu",	{HB_TAG('K','Y','U',' ')}},	/* Western Kayah */
  {"la",	{HB_TAG('L','A','T',' ')}},	/* Latin */
  {"lad",	{HB_TAG('J','U','D',' ')}},	/* Ladino */
  {"lb",	{HB_TAG('L','T','Z',' ')}},	/* Luxembourgish */
  {"lbe",	{HB_TAG('L','A','K',' ')}},	/* Lak */
  {"lbj",	{HB_TAG('L','D','K',' ')}},	/* Ladakhi */
  {"lbl",	{HB_TAG('B','I','K',' ')}},	/* Libon Bikol -> Bikol */
  {"lce",	{HB_TAG('M','L','Y',' ')}},	/* Loncong -> Malay */
  {"lcf",	{HB_TAG('M','L','Y',' ')}},	/* Lubu -> Malay */
  {"ldi",	{HB_TAG('K','O','N','0')}},	/* Laari -> Kongo */
  {"lez",	{HB_TAG('L','E','Z',' ')}},	/* Lezghian -> Lezgi */
  {"lg",	{HB_TAG('L','U','G',' ')}},	/* Ganda */
  {"li",	{HB_TAG('L','I','M',' ')}},	/* Limburgish */
  {"lif",	{HB_TAG('L','M','B',' ')}},	/* Limbu */
  {"lij",	{HB_TAG('L','I','J',' ')}},	/* Ligurian */
  {"lis",	{HB_TAG('L','I','S',' ')}},	/* Lisu */
  {"liw",	{HB_TAG('M','L','Y',' ')}},	/* Col -> Malay */
  {"ljp",	{HB_TAG('L','J','P',' ')}},	/* Lampung Api -> Lampung */
  {"lkb",	{HB_TAG('L','U','H',' ')}},	/* Kabras -> Luyia */
  {"lki",	{HB_TAG('L','K','I',' ')}},	/* Laki */
  {"lko",	{HB_TAG('L','U','H',' ')}},	/* Khayo -> Luyia */
  {"lks",	{HB_TAG('L','U','H',' ')}},	/* Kisa -> Luyia */
  {"lld",	{HB_TAG('L','A','D',' ')}},	/* Ladin */
  {"lmn",	{HB_TAG('L','A','M',' ')}},	/* Lambadi -> Lambani */
  {"lmo",	{HB_TAG('L','M','O',' ')}},	/* Lombard */
  {"ln",	{HB_TAG('L','I','N',' ')}},	/* Lingala */
  {"lo",	{HB_TAG('L','A','O',' ')}},	/* Lao */
  {"lom",	{HB_TAG('L','O','M',' ')}},	/* Loma (Liberia) */
  {"lrc",	{HB_TAG('L','R','C',' ')}},	/* Northern Luri -> Luri */
  {"lri",	{HB_TAG('L','U','H',' ')}},	/* Marachi -> Luyia */
  {"lrm",	{HB_TAG('L','U','H',' ')}},	/* Marama -> Luyia */
  {"lsm",	{HB_TAG('L','U','H',' ')}},	/* Saamia -> Luyia */
  {"lt",	{HB_TAG('L','T','H',' ')}},	/* Lithuanian */
  {"ltg",	{HB_TAG('L','V','I',' ')}},	/* Latgalian -> Latvian */
  {"lto",	{HB_TAG('L','U','H',' ')}},	/* Tsotso -> Luyia */
  {"lts",	{HB_TAG('L','U','H',' ')}},	/* Tachoni -> Luyia */
  {"lu",	{HB_TAG('L','U','B',' ')}},	/* Luba-Katanga */
  {"lua",	{HB_TAG('L','U','A',' ')}},	/* Luba-Lulua */
  {"luo",	{HB_TAG('L','U','O',' ')}},	/* Luo (Kenya and Tanzania) */
  {"lus",	{HB_TAG('M','I','Z',' ')}},	/* Lushai -> Mizo */
  {"luy",	{HB_TAG('L','U','H',' ')}},	/* Luyia [macrolanguage] */
  {"luz",	{HB_TAG('L','R','C',' ')}},	/* Southern Luri -> Luri */
  {"lv",	{HB_TAG('L','V','I',' ')}},	/* Latvian [macrolanguage] */
  {"lvs",	{HB_TAG('L','V','I',' ')}},	/* Standard Latvian -> Latvian */
  {"lwg",	{HB_TAG('L','U','H',' ')}},	/* Wanga -> Luyia */
  {"lzh",	{HB_TAG('Z','H','T',' ')}},	/* Literary Chinese -> Chinese Traditional */
  {"lzz",	{HB_TAG('L','A','Z',' ')}},	/* Laz */
  {"mad",	{HB_TAG('M','A','D',' ')}},	/* Madurese -> Madura */
  {"mag",	{HB_TAG('M','A','G',' ')}},	/* Magahi */
  {"mai",	{HB_TAG('M','T','H',' ')}},	/* Maithili */
  {"mak",	{HB_TAG('M','K','R',' ')}},	/* Makasar */
  {"mam",	{HB_TAG('M','A','M',' ')}},	/* Mam */
  {"man",	{HB_TAG('M','N','K',' ')}},	/* Mandingo [macrolanguage] -> Maninka */
  {"max",	{HB_TAG('M','L','Y',' ')}},	/* North Moluccan Malay -> Malay */
  {"mbo",	{HB_TAG('M','B','O',' ')}},	/* Mbo (Cameroon) */
  {"mct",	{HB_TAG('B','T','I',' ')}},	/* Mengisa -> Beti */
  {"mdf",	{HB_TAG('M','O','K',' ')}},	/* Moksha */
  {"mdr",	{HB_TAG('M','D','R',' ')}},	/* Mandar */
  {"mdy",	{HB_TAG('M','L','E',' ')}},	/* Male (Ethiopia) */
  {"men",	{HB_TAG('M','D','E',' ')}},	/* Mende (Sierra Leone) */
  {"meo",	{HB_TAG('M','L','Y',' ')}},	/* Kedah Malay -> Malay */
  {"mer",	{HB_TAG('M','E','R',' ')}},	/* Meru */
  {"mfa",	{HB_TAG('M','F','A',' ')}},	/* Pattani Malay */
  {"mfb",	{HB_TAG('M','L','Y',' ')}},	/* Bangka -> Malay */
  {"mfe",	{HB_TAG('M','F','E',' ')}},	/* Morisyen */
  {"mg",	{HB_TAG('M','L','G',' ')}},	/* Malagasy [macrolanguage] */
  {"mh",	{HB_TAG('M','A','H',' ')}},	/* Marshallese */
  {"mhr",	{HB_TAG('L','M','A',' ')}},	/* Eastern Mari -> Low Mari */
  {"mhv",	{HB_TAG('A','R','K',' ')}},	/* Arakanese (retired code) -> Rakhine */
  {"mi",	{HB_TAG('M','R','I',' ')}},	/* Maori */
  {"min",	{HB_TAG('M','I','N',' ')}},	/* Minangkabau */
  {"mk",	{HB_TAG('M','K','D',' ')}},	/* Macedonian */
  {"mku",	{HB_TAG('M','N','K',' ')}},	/* Konyanka Maninka -> Maninka */
  {"mkw",	{HB_TAG('M','K','W',' ')}},	/* Kituba (Congo) */
  {"ml",	{HB_TAG('M','A','L',' '),	/* Malayalam -> Malayalam Traditional */
		 HB_TAG('M','L','R',' ')}},	/* Malayalam -> Malayalam Reformed */
  {"mlq",	{HB_TAG('M','L','N',' '),	/* Western Maninkakan -> Malinke */
		 HB_TAG('M','N','K',' ')}},	/* Western Maninkakan -> Maninka */
  {"mmr",	{HB_TAG('H','M','N',' ')}},	/* Western Xiangxi Miao -> Hmong */
  {"mn",	{HB_TAG('M','N','G',' ')}},	/* Mongolian [macrolanguage] */
  {"mnc",	{HB_TAG('M','C','H',' ')}},	/* Manchu */
  {"mni",	{HB_TAG('M','N','I',' ')}},	/* Manipuri */
  {"mnk",	{HB_TAG('M','N','D',' '),	/* Mandinka */
		 HB_TAG('M','N','K',' ')}},	/* Mandinka -> Maninka */
  {"mnp",	{HB_TAG('Z','H','S',' ')}},	/* Min Bei Chinese -> Chinese Simplified */
  {"mns",	{HB_TAG('M','A','N',' ')}},	/* Mansi */
  {"mnw",	{HB_TAG('M','O','N',' ')}},	/* Mon */
  {"mo",	{HB_TAG('M','O','L',' ')}},	/* Moldavian (retired code) */
  {"moh",	{HB_TAG('M','O','H',' ')}},	/* Mohawk */
  {"mos",	{HB_TAG('M','O','S',' ')}},	/* Mossi */
  {"mpe",	{HB_TAG('M','A','J',' ')}},	/* Majang */
  {"mqg",	{HB_TAG('M','L','Y',' ')}},	/* Kota Bangun Kutai Malay -> Malay */
  {"mr",	{HB_TAG('M','A','R',' ')}},	/* Marathi */
  {"mrh",	{HB_TAG('Q','I','N',' ')}},	/* Mara Chin -> Chin */
  {"mrj",	{HB_TAG('H','M','A',' ')}},	/* Western Mari -> High Mari */
  {"ms",	{HB_TAG('M','L','Y',' ')}},	/* Malay [macrolanguage] */
  {"msc",	{HB_TAG('M','N','K',' ')}},	/* Sankaran Maninka -> Maninka */
  {"msh",	{HB_TAG('M','L','G',' ')}},	/* Masikoro Malagasy -> Malagasy */
  {"msi",	{HB_TAG('M','L','Y',' ')}},	/* Sabah Malay -> Malay */
  {"mt",	{HB_TAG('M','T','S',' ')}},	/* Maltese */
  {"mtr",	{HB_TAG('M','A','W',' ')}},	/* Mewari -> Marwari */
  {"mui",	{HB_TAG('M','L','Y',' ')}},	/* Musi -> Malay */
  {"mup",	{HB_TAG('R','A','J',' ')}},	/* Malvi -> Rajasthani */
  {"muq",	{HB_TAG('H','M','N',' ')}},	/* Eastern Xiangxi Miao -> Hmong */
  {"mus",	{HB_TAG('M','U','S',' ')}},	/* Creek -> Muscogee */
  {"mvb",	{HB_TAG('A','T','H',' ')}},	/* Mattole -> Athapaskan */
  {"mve",	{HB_TAG('M','A','W',' ')}},	/* Marwari (Pakistan) */
  {"mvf",	{HB_TAG('M','N','G',' ')}},	/* Peripheral Mongolian -> Mongolian */
  {"mwk",	{HB_TAG('M','N','K',' ')}},	/* Kita Maninkakan -> Maninka */
  {"mwl",	{HB_TAG('M','W','L',' ')}},	/* Mirandese */
  {"mwr",	{HB_TAG('M','A','W',' ')}},	/* Marwari [macrolanguage] */
  {"mww",	{HB_TAG('M','W','W',' ')}},	/* Hmong Daw */
  {"my",	{HB_TAG('B','R','M',' ')}},	/* Burmese */
  {"mym",	{HB_TAG('M','E','N',' ')}},	/* Me'en */
  {"myn",	{HB_TAG('M','Y','N',' ')}},	/* Mayan [family] */
  {"myq",	{HB_TAG('M','N','K',' ')}},	/* Forest Maninka (retired code) -> Maninka */
  {"myv",	{HB_TAG('E','R','Z',' ')}},	/* Erzya */
  {"mzn",	{HB_TAG('M','Z','N',' ')}},	/* Mazanderani */
  {"na",	{HB_TAG('N','A','U',' ')}},	/* Nauru -> Nauruan */
  {"nag",	{HB_TAG('N','A','G',' ')}},	/* Naga Pidgin -> Naga-Assamese */
  {"nah",	{HB_TAG('N','A','H',' ')}},	/* Nahuatl [family] */
  {"nan",	{HB_TAG('Z','H','S',' ')}},	/* Min Nan Chinese -> Chinese Simplified */
  {"nap",	{HB_TAG('N','A','P',' ')}},	/* Neapolitan */
  {"nb",	{HB_TAG('N','O','R',' ')}},	/* Norwegian Bokmål -> Norwegian */
  {"nd",	{HB_TAG('N','D','B',' ')}},	/* North Ndebele -> Ndebele */
  {"ndc",	{HB_TAG('N','D','C',' ')}},	/* Ndau */
  {"nds",	{HB_TAG('N','D','S',' ')}},	/* Low Saxon */
  {"ne",	{HB_TAG('N','E','P',' ')}},	/* Nepali [macrolanguage] */
  {"new",	{HB_TAG('N','E','W',' ')}},	/* Newari */
  {"ng",	{HB_TAG('N','D','G',' ')}},	/* Ndonga */
  {"nga",	{HB_TAG('N','G','A',' ')}},	/* Ngbaka */
  {"ngl",	{HB_TAG('L','M','W',' ')}},	/* Lomwe */
  {"ngo",	{HB_TAG('S','X','T',' ')}},	/* Ngoni -> Sutu */
  {"nhd",	{HB_TAG('G','U','A',' ')}},	/* Chiripá -> Guarani */
  {"niq",	{HB_TAG('K','A','L',' ')}},	/* Nandi -> Kalenjin */
  {"niu",	{HB_TAG('N','I','U',' ')}},	/* Niuean */
  {"niv",	{HB_TAG('G','I','L',' ')}},	/* Gilyak */
  {"njz",	{HB_TAG('N','I','S',' ')}},	/* Nyishi -> Nisi */
  {"nl",	{HB_TAG('N','L','D',' ')}},	/* Dutch */
  {"nle",	{HB_TAG('L','U','H',' ')}},	/* East Nyala -> Luyia */
  {"nn",	{HB_TAG('N','Y','N',' ')}},	/* Norwegian Nynorsk (Nynorsk, Norwegian) */
  {"no",	{HB_TAG('N','O','R',' ')}},	/* Norwegian [macrolanguage] */
  {"nod",	{HB_TAG('N','T','A',' ')}},	/* Northern Thai -> Northern Tai */
  {"noe",	{HB_TAG('N','O','E',' ')}},	/* Nimadi */
  {"nog",	{HB_TAG('N','O','G',' ')}},	/* Nogai */
  {"nov",	{HB_TAG('N','O','V',' ')}},	/* Novial */
  {"npi",	{HB_TAG('N','E','P',' ')}},	/* Nepali */
  {"nqo",	{HB_TAG('N','K','O',' ')}},	/* N'Ko */
  {"nr",	{HB_TAG('N','D','B',' ')}},	/* South Ndebele -> Ndebele */
  {"nsk",	{HB_TAG('N','A','S',' ')}},	/* Naskapi */
  {"nso",	{HB_TAG('N','S','O',' ')}},	/* Pedi -> Sotho, Northern */
  {"nv",	{HB_TAG('N','A','V',' '),	/* Navajo */
		 HB_TAG('A','T','H',' ')}},	/* Navajo -> Athapaskan */
  {"ny",	{HB_TAG('C','H','I',' ')}},	/* Chichewa (Chewa, Nyanja) */
  {"nyd",	{HB_TAG('L','U','H',' ')}},	/* Nyore -> Luyia */
  {"nym",	{HB_TAG('N','Y','M',' ')}},	/* Nyamwezi */
  {"nyn",	{HB_TAG('N','K','L',' ')}},	/* Nyankole */
  {"nza",	{HB_TAG('N','Z','A',' ')}},	/* Tigon Mbembe -> Mbembe Tigon */
  {"oc",	{HB_TAG('O','C','I',' ')}},	/* Occitan (post 1500) */
  {"oj",	{HB_TAG('O','J','B',' ')}},	/* Ojibwa [macrolanguage] -> Ojibway */
  {"ojb",	{HB_TAG('O','J','B',' ')}},	/* Northwestern Ojibwa -> Ojibway */
  {"ojc",	{HB_TAG('O','J','B',' ')}},	/* Central Ojibwa -> Ojibway */
  {"ojg",	{HB_TAG('O','J','B',' ')}},	/* Eastern Ojibwa -> Ojibway */
  {"ojs",	{HB_TAG('O','C','R',' ')}},	/* Severn Ojibwa -> Oji-Cree */
  {"ojw",	{HB_TAG('O','J','B',' ')}},	/* Western Ojibwa -> Ojibway */
  {"oki",	{HB_TAG('K','A','L',' ')}},	/* Okiek -> Kalenjin */
  {"okm",	{HB_TAG('K','O','H',' ')}},	/* Middle Korean (10th-16th cent.) -> Korean Old Hangul */
  {"om",	{HB_TAG('O','R','O',' ')}},	/* Oromo [macrolanguage] */
  {"or",	{HB_TAG('O','R','I',' ')}},	/* Odia (formerly Oriya) [macrolanguage] */
  {"orc",	{HB_TAG('O','R','O',' ')}},	/* Orma -> Oromo */
  {"orn",	{HB_TAG('M','L','Y',' ')}},	/* Orang Kanaq -> Malay */
  {"ors",	{HB_TAG('M','L','Y',' ')}},	/* Orang Seletar -> Malay */
  {"ory",	{HB_TAG('O','R','I',' ')}},	/* Odia (formerly Oriya) */
  {"os",	{HB_TAG('O','S','S',' ')}},	/* Ossetian */
  {"otw",	{HB_TAG('O','J','B',' ')}},	/* Ottawa -> Ojibway */
  {"pa",	{HB_TAG('P','A','N',' ')}},	/* Punjabi */
  {"pag",	{HB_TAG('P','A','G',' ')}},	/* Pangasinan */
  {"pam",	{HB_TAG('P','A','M',' ')}},	/* Pampanga -> Pampangan */
  {"pap",	{HB_TAG('P','A','P','0')}},	/* Papiamento -> Papiamentu */
  {"pau",	{HB_TAG('P','A','U',' ')}},	/* Palauan */
  {"pbt",	{HB_TAG('P','A','S',' ')}},	/* Southern Pashto -> Pashto */
  {"pbu",	{HB_TAG('P','A','S',' ')}},	/* Northern Pashto -> Pashto */
  {"pcc",	{HB_TAG('P','C','C',' ')}},	/* Bouyei */
  {"pcd",	{HB_TAG('P','C','D',' ')}},	/* Picard */
  {"pce",	{HB_TAG('P','L','G',' ')}},	/* Ruching Palaung -> Palaung */
  {"pck",	{HB_TAG('Q','I','N',' ')}},	/* Paite Chin -> Chin */
  {"pdc",	{HB_TAG('P','D','C',' ')}},	/* Pennsylvania German */
  {"pel",	{HB_TAG('M','L','Y',' ')}},	/* Pekal -> Malay */
  {"pes",	{HB_TAG('F','A','R',' ')}},	/* Iranian Persian -> Persian */
  {"pga",	{HB_TAG('A','R','A',' ')}},	/* Sudanese Creole Arabic -> Arabic */
  {"phk",	{HB_TAG('P','H','K',' ')}},	/* Phake */
  {"pi",	{HB_TAG('P','A','L',' ')}},	/* Pali */
  {"pih",	{HB_TAG('P','I','H',' ')}},	/* Pitcairn-Norfolk -> Norfolk */
  {"pko",	{HB_TAG('K','A','L',' ')}},	/* Pökoot -> Kalenjin */
  {"pl",	{HB_TAG('P','L','K',' ')}},	/* Polish */
  {"pll",	{HB_TAG('P','L','G',' ')}},	/* Shwe Palaung -> Palaung */
  {"plp",	{HB_TAG('P','A','P',' ')}},	/* Palpa */
  {"plt",	{HB_TAG('M','L','G',' ')}},	/* Plateau Malagasy -> Malagasy */
  {"pms",	{HB_TAG('P','M','S',' ')}},	/* Piemontese */
  {"pnb",	{HB_TAG('P','N','B',' ')}},	/* Western Panjabi */
  {"poh",	{HB_TAG('P','O','H',' ')}},	/* Poqomchi' -> Pocomchi */
  {"pon",	{HB_TAG('P','O','N',' ')}},	/* Pohnpeian */
  {"ppa",	{HB_TAG('B','A','G',' ')}},	/* Pao (retired code) -> Baghelkhandi */
  {"pro",	{HB_TAG('P','R','O',' ')}},	/* Old Provençal (to 1500) -> Provençal / Old Provençal */
  {"prs",	{HB_TAG('D','R','I',' ')}},	/* Dari */
  {"ps",	{HB_TAG('P','A','S',' ')}},	/* Pashto [macrolanguage] */
  {"pse",	{HB_TAG('M','L','Y',' ')}},	/* Central Malay -> Malay */
  {"pst",	{HB_TAG('P','A','S',' ')}},	/* Central Pashto -> Pashto */
  {"pt",	{HB_TAG('P','T','G',' ')}},	/* Portuguese */
  {"pwo",	{HB_TAG('P','W','O',' ')}},	/* Pwo Western Karen -> Western Pwo Karen */
  {"qu",	{HB_TAG('Q','U','Z',' ')}},	/* Quechua [macrolanguage] */
  {"qub",	{HB_TAG('Q','W','H',' ')}},	/* Huallaga Huánuco Quechua -> Quechua (Peru) */
  {"quc",	{HB_TAG('Q','U','C',' ')}},	/* K’iche’ */
  {"qud",	{HB_TAG('Q','V','I',' ')}},	/* Calderón Highland Quichua -> Quechua (Ecuador) */
  {"quf",	{HB_TAG('Q','U','Z',' ')}},	/* Lambayeque Quechua -> Quechua */
  {"qug",	{HB_TAG('Q','V','I',' ')}},	/* Chimborazo Highland Quichua -> Quechua (Ecuador) */
  {"quh",	{HB_TAG('Q','U','H',' ')}},	/* South Bolivian Quechua -> Quechua (Bolivia) */
  {"quk",	{HB_TAG('Q','U','Z',' ')}},	/* Chachapoyas Quechua -> Quechua */
  {"qul",	{HB_TAG('Q','U','Z',' ')}},	/* North Bolivian Quechua -> Quechua */
  {"qup",	{HB_TAG('Q','V','I',' ')}},	/* Southern Pastaza Quechua -> Quechua (Ecuador) */
  {"qur",	{HB_TAG('Q','W','H',' ')}},	/* Yanahuanca Pasco Quechua -> Quechua (Peru) */
  {"qus",	{HB_TAG('Q','U','H',' ')}},	/* Santiago del Estero Quichua -> Quechua (Bolivia) */
  {"quw",	{HB_TAG('Q','V','I',' ')}},	/* Tena Lowland Quichua -> Quechua (Ecuador) */
  {"qux",	{HB_TAG('Q','W','H',' ')}},	/* Yauyos Quechua -> Quechua (Peru) */
  {"quy",	{HB_TAG('Q','U','Z',' ')}},	/* Ayacucho Quechua -> Quechua */
  {"quz",	{HB_TAG('Q','U','Z',' ')}},	/* Cusco Quechua -> Quechua */
  {"qva",	{HB_TAG('Q','W','H',' ')}},	/* Ambo-Pasco Quechua -> Quechua (Peru) */
  {"qvc",	{HB_TAG('Q','U','Z',' ')}},	/* Cajamarca Quechua -> Quechua */
  {"qve",	{HB_TAG('Q','U','Z',' ')}},	/* Eastern Apurímac Quechua -> Quechua */
  {"qvh",	{HB_TAG('Q','W','H',' ')}},	/* Huamalíes-Dos de Mayo Huánuco Quechua -> Quechua (Peru) */
  {"qvi",	{HB_TAG('Q','V','I',' ')}},	/* Imbabura Highland Quichua -> Quechua (Ecuador) */
  {"qvj",	{HB_TAG('Q','V','I',' ')}},	/* Loja Highland Quichua -> Quechua (Ecuador) */
  {"qvl",	{HB_TAG('Q','W','H',' ')}},	/* Cajatambo North Lima Quechua -> Quechua (Peru) */
  {"qvm",	{HB_TAG('Q','W','H',' ')}},	/* Margos-Yarowilca-Lauricocha Quechua -> Quechua (Peru) */
  {"qvn",	{HB_TAG('Q','W','H',' ')}},	/* North Junín Quechua -> Quechua (Peru) */
  {"qvo",	{HB_TAG('Q','V','I',' ')}},	/* Napo Lowland Quechua -> Quechua (Ecuador) */
  {"qvp",	{HB_TAG('Q','W','H',' ')}},	/* Pacaraos Quechua -> Quechua (Peru) */
  {"qvs",	{HB_TAG('Q','U','Z',' ')}},	/* San Martín Quechua -> Quechua */
  {"qvw",	{HB_TAG('Q','W','H',' ')}},	/* Huaylla Wanca Quechua -> Quechua (Peru) */
  {"qvz",	{HB_TAG('Q','V','I',' ')}},	/* Northern Pastaza Quichua -> Quechua (Ecuador) */
  {"qwa",	{HB_TAG('Q','W','H',' ')}},	/* Corongo Ancash Quechua -> Quechua (Peru) */
  {"qwc",	{HB_TAG('Q','U','Z',' ')}},	/* Classical Quechua -> Quechua */
  {"qwh",	{HB_TAG('Q','W','H',' ')}},	/* Huaylas Ancash Quechua -> Quechua (Peru) */
  {"qws",	{HB_TAG('Q','W','H',' ')}},	/* Sihuas Ancash Quechua -> Quechua (Peru) */
  {"qxa",	{HB_TAG('Q','W','H',' ')}},	/* Chiquián Ancash Quechua -> Quechua (Peru) */
  {"qxc",	{HB_TAG('Q','W','H',' ')}},	/* Chincha Quechua -> Quechua (Peru) */
  {"qxh",	{HB_TAG('Q','W','H',' ')}},	/* Panao Huánuco Quechua -> Quechua (Peru) */
  {"qxl",	{HB_TAG('Q','V','I',' ')}},	/* Salasaca Highland Quichua -> Quechua (Ecuador) */
  {"qxn",	{HB_TAG('Q','W','H',' ')}},	/* Northern Conchucos Ancash Quechua -> Quechua (Peru) */
  {"qxo",	{HB_TAG('Q','W','H',' ')}},	/* Southern Conchucos Ancash Quechua -> Quechua (Peru) */
  {"qxp",	{HB_TAG('Q','U','Z',' ')}},	/* Puno Quechua -> Quechua */
  {"qxr",	{HB_TAG('Q','V','I',' ')}},	/* Cañar Highland Quichua -> Quechua (Ecuador) */
  {"qxt",	{HB_TAG('Q','W','H',' ')}},	/* Santa Ana de Tusi Pasco Quechua -> Quechua (Peru) */
  {"qxu",	{HB_TAG('Q','U','Z',' ')}},	/* Arequipa-La Unión Quechua -> Quechua */
  {"qxw",	{HB_TAG('Q','W','H',' ')}},	/* Jauja Wanca Quechua -> Quechua (Peru) */
  {"rag",	{HB_TAG('L','U','H',' ')}},	/* Logooli -> Luyia */
  {"raj",	{HB_TAG('R','A','J',' ')}},	/* Rajasthani [macrolanguage] */
  {"rar",	{HB_TAG('R','A','R',' ')}},	/* Rarotongan */
  {"rbb",	{HB_TAG('P','L','G',' ')}},	/* Rumai Palaung -> Palaung */
  {"rbl",	{HB_TAG('B','I','K',' ')}},	/* Miraya Bikol -> Bikol */
  {"rej",	{HB_TAG('R','E','J',' ')}},	/* Rejang */
  {"ria",	{HB_TAG('R','I','A',' ')}},	/* Riang (India) */
  {"rif",	{HB_TAG('R','I','F',' ')}},	/* Tarifit */
  {"rit",	{HB_TAG('R','I','T',' ')}},	/* Ritarungo */
  {"rki",	{HB_TAG('A','R','K',' ')}},	/* Rakhine */
  {"rkw",	{HB_TAG('R','K','W',' ')}},	/* Arakwal */
  {"rm",	{HB_TAG('R','M','S',' ')}},	/* Romansh */
  {"rmc",	{HB_TAG('R','O','Y',' ')}},	/* Carpathian Romani -> Romany */
  {"rmf",	{HB_TAG('R','O','Y',' ')}},	/* Kalo Finnish Romani -> Romany */
  {"rml",	{HB_TAG('R','O','Y',' ')}},	/* Baltic Romani -> Romany */
  {"rmn",	{HB_TAG('R','O','Y',' ')}},	/* Balkan Romani -> Romany */
  {"rmo",	{HB_TAG('R','O','Y',' ')}},	/* Sinte Romani -> Romany */
  {"rmw",	{HB_TAG('R','O','Y',' ')}},	/* Welsh Romani -> Romany */
  {"rmy",	{HB_TAG('R','M','Y',' ')}},	/* Vlax Romani */
  {"rmz",	{HB_TAG('A','R','K',' ')}},	/* Marma -> Rakhine */
  {"rn",	{HB_TAG('R','U','N',' ')}},	/* Rundi */
  {"rnl",	{HB_TAG('H','A','L',' ')}},	/* Ranglong -> Halam (Falam Chin) */
  {"ro",	{HB_TAG('R','O','M',' ')}},	/* Romanian */
  {"rom",	{HB_TAG('R','O','Y',' ')}},	/* Romany [macrolanguage] */
  {"rtm",	{HB_TAG('R','T','M',' ')}},	/* Rotuman */
  {"ru",	{HB_TAG('R','U','S',' ')}},	/* Russian */
  {"rue",	{HB_TAG('R','S','Y',' ')}},	/* Rusyn */
  {"rup",	{HB_TAG('R','U','P',' ')}},	/* Aromanian */
  {"rw",	{HB_TAG('R','U','A',' ')}},	/* Kinyarwanda */
  {"rwr",	{HB_TAG('M','A','W',' ')}},	/* Marwari (India) */
  {"sa",	{HB_TAG('S','A','N',' ')}},	/* Sanskrit */
  {"sah",	{HB_TAG('Y','A','K',' ')}},	/* Yakut -> Sakha */
  {"sam",	{HB_TAG('P','A','A',' ')}},	/* Samaritan Aramaic -> Palestinian Aramaic */
  {"sas",	{HB_TAG('S','A','S',' ')}},	/* Sasak */
  {"sat",	{HB_TAG('S','A','T',' ')}},	/* Santali */
  {"sc",	{HB_TAG('S','R','D',' ')}},	/* Sardinian [macrolanguage] */
  {"sck",	{HB_TAG('S','A','D',' ')}},	/* Sadri */
  {"scn",	{HB_TAG('S','C','N',' ')}},	/* Sicilian */
  {"sco",	{HB_TAG('S','C','O',' ')}},	/* Scots */
  {"scs",	{HB_TAG('S','C','S',' '),	/* North Slavey */
		 HB_TAG('S','L','A',' '),	/* North Slavey -> Slavey */
		 HB_TAG('A','T','H',' ')}},	/* North Slavey -> Athapaskan */
  {"sd",	{HB_TAG('S','N','D',' ')}},	/* Sindhi */
  {"sdc",	{HB_TAG('S','R','D',' ')}},	/* Sassarese Sardinian -> Sardinian */
  {"sdh",	{HB_TAG('K','U','R',' ')}},	/* Southern Kurdish -> Kurdish */
  {"sdn",	{HB_TAG('S','R','D',' ')}},	/* Gallurese Sardinian -> Sardinian */
  {"se",	{HB_TAG('N','S','M',' ')}},	/* Northern Sami */
  {"seh",	{HB_TAG('S','N','A',' ')}},	/* Sena */
  {"sek",	{HB_TAG('A','T','H',' ')}},	/* Sekani -> Athapaskan */
  {"sel",	{HB_TAG('S','E','L',' ')}},	/* Selkup */
  {"sez",	{HB_TAG('Q','I','N',' ')}},	/* Senthang Chin -> Chin */
  {"sfm",	{HB_TAG('H','M','N',' ')}},	/* Small Flowery Miao -> Hmong */
  {"sg",	{HB_TAG('S','G','O',' ')}},	/* Sango */
  {"sga",	{HB_TAG('S','G','A',' ')}},	/* Old Irish (to 900) */
  {"sgc",	{HB_TAG('K','A','L',' ')}},	/* Kipsigis -> Kalenjin */
  {"sgs",	{HB_TAG('S','G','S',' ')}},	/* Samogitian */
  {"sgw",	{HB_TAG('C','H','G',' '),	/* Sebat Bet Gurage -> Chaha Gurage */
		 HB_TAG('S','G','W',' ')}},	/* Sebat Bet Gurage -> Chaha Gurage (SIL fonts) */
  {"shi",	{HB_TAG('S','H','I',' ')}},	/* Tachelhit */
  {"shn",	{HB_TAG('S','H','N',' ')}},	/* Shan */
  {"shu",	{HB_TAG('A','R','A',' ')}},	/* Chadian Arabic -> Arabic */
  {"si",	{HB_TAG('S','N','H',' ')}},	/* Sinhala (Sinhalese) */
  {"sid",	{HB_TAG('S','I','D',' ')}},	/* Sidamo */
  {"sjd",	{HB_TAG('K','S','M',' ')}},	/* Kildin Sami */
  {"sjo",	{HB_TAG('S','I','B',' ')}},	/* Xibe -> Sibe */
  {"sk",	{HB_TAG('S','K','Y',' ')}},	/* Slovak */
  {"skg",	{HB_TAG('M','L','G',' ')}},	/* Sakalava Malagasy -> Malagasy */
  {"skr",	{HB_TAG('S','R','K',' ')}},	/* Saraiki */
  {"sl",	{HB_TAG('S','L','V',' ')}},	/* Slovenian */
  {"sm",	{HB_TAG('S','M','O',' ')}},	/* Samoan */
  {"sma",	{HB_TAG('S','S','M',' ')}},	/* Southern Sami */
  {"smj",	{HB_TAG('L','S','M',' ')}},	/* Lule Sami */
  {"smn",	{HB_TAG('I','S','M',' ')}},	/* Inari Sami */
  {"sms",	{HB_TAG('S','K','S',' ')}},	/* Skolt Sami */
  {"sn",	{HB_TAG('S','N','A','0')}},	/* Shona */
  {"snk",	{HB_TAG('S','N','K',' ')}},	/* Soninke */
  {"so",	{HB_TAG('S','M','L',' ')}},	/* Somali */
  {"sop",	{HB_TAG('S','O','P',' ')}},	/* Songe */
  {"spv",	{HB_TAG('O','R','I',' ')}},	/* Sambalpuri -> Odia (formerly Oriya) */
  {"spy",	{HB_TAG('K','A','L',' ')}},	/* Sabaot -> Kalenjin */
  {"sq",	{HB_TAG('S','Q','I',' ')}},	/* Albanian [macrolanguage] */
  {"sr",	{HB_TAG('S','R','B',' ')}},	/* Serbian */
  {"src",	{HB_TAG('S','R','D',' ')}},	/* Logudorese Sardinian -> Sardinian */
  {"sro",	{HB_TAG('S','R','D',' ')}},	/* Campidanese Sardinian -> Sardinian */
  {"srr",	{HB_TAG('S','R','R',' ')}},	/* Serer */
  {"srs",	{HB_TAG('A','T','H',' ')}},	/* Sarsi -> Athapaskan */
  {"ss",	{HB_TAG('S','W','Z',' ')}},	/* Swati */
  {"ssh",	{HB_TAG('A','R','A',' ')}},	/* Shihhi Arabic -> Arabic */
  {"st",	{HB_TAG('S','O','T',' ')}},	/* Southern Sotho -> Sotho, Southern */
  {"stq",	{HB_TAG('S','T','Q',' ')}},	/* Saterfriesisch -> Saterland Frisian */
  {"stv",	{HB_TAG('S','I','G',' ')}},	/* Silt'e -> Silte Gurage */
  {"su",	{HB_TAG('S','U','N',' ')}},	/* Sundanese */
  {"suk",	{HB_TAG('S','U','K',' ')}},	/* Sukuma */
  {"suq",	{HB_TAG('S','U','R',' ')}},	/* Suri */
  {"sv",	{HB_TAG('S','V','E',' ')}},	/* Swedish */
  {"sva",	{HB_TAG('S','V','A',' ')}},	/* Svan */
  {"sw",	{HB_TAG('S','W','K',' ')}},	/* Swahili [macrolanguage] */
  {"swb",	{HB_TAG('C','M','R',' ')}},	/* Maore Comorian -> Comorian */
  {"swc",	{HB_TAG('S','W','K',' ')}},	/* Congo Swahili -> Swahili */
  {"swh",	{HB_TAG('S','W','K',' ')}},	/* Swahili */
  {"swv",	{HB_TAG('M','A','W',' ')}},	/* Shekhawati -> Marwari */
  {"sxu",	{HB_TAG('S','X','U',' ')}},	/* Upper Saxon */
  {"syc",	{HB_TAG('S','Y','R',' ')}},	/* Classical Syriac -> Syriac */
  {"syl",	{HB_TAG('S','Y','L',' ')}},	/* Sylheti */
  {"syr",	{HB_TAG('S','Y','R',' ')}},	/* Syriac [macrolanguage] */
  {"szl",	{HB_TAG('S','Z','L',' ')}},	/* Silesian */
  {"ta",	{HB_TAG('T','A','M',' ')}},	/* Tamil */
  {"taa",	{HB_TAG('A','T','H',' ')}},	/* Lower Tanana -> Athapaskan */
  {"tab",	{HB_TAG('T','A','B',' ')}},	/* Tabassaran -> Tabasaran */
  {"taq",	{HB_TAG('T','M','H',' ')}},	/* Tamasheq -> Tamashek */
  {"tau",	{HB_TAG('A','T','H',' ')}},	/* Upper Tanana -> Athapaskan */
  {"tcb",	{HB_TAG('A','T','H',' ')}},	/* Tanacross -> Athapaskan */
  {"tce",	{HB_TAG('A','T','H',' ')}},	/* Southern Tutchone -> Athapaskan */
  {"tcp",	{HB_TAG('Q','I','N',' ')}},	/* Tawr Chin -> Chin */
  {"tcy",	{HB_TAG('T','U','L',' ')}},	/* Tulu -> Tumbuka */
  {"tcz",	{HB_TAG('Q','I','N',' ')}},	/* Thado Chin -> Chin */
  {"tdd",	{HB_TAG('T','D','D',' ')}},	/* Tai Nüa -> Dehong Dai */
  {"tdx",	{HB_TAG('M','L','G',' ')}},	/* Tandroy-Mahafaly Malagasy -> Malagasy */
  {"te",	{HB_TAG('T','E','L',' ')}},	/* Telugu */
  {"tec",	{HB_TAG('K','A','L',' ')}},	/* Terik -> Kalenjin */
  {"tem",	{HB_TAG('T','M','N',' ')}},	/* Timne -> Temne */
  {"tet",	{HB_TAG('T','E','T',' ')}},	/* Tetum */
  {"tfn",	{HB_TAG('A','T','H',' ')}},	/* Tanaina -> Athapaskan */
  {"tg",	{HB_TAG('T','A','J',' ')}},	/* Tajik -> Tajiki */
  {"tgj",	{HB_TAG('N','I','S',' ')}},	/* Tagin -> Nisi */
  {"tgx",	{HB_TAG('A','T','H',' ')}},	/* Tagish -> Athapaskan */
  {"th",	{HB_TAG('T','H','A',' ')}},	/* Thai */
  {"tht",	{HB_TAG('A','T','H',' ')}},	/* Tahltan -> Athapaskan */
  {"thv",	{HB_TAG('T','M','H',' ')}},	/* Tahaggart Tamahaq -> Tamashek */
  {"thz",	{HB_TAG('T','M','H',' ')}},	/* Tayart Tamajeq -> Tamashek */
  {"ti",	{HB_TAG('T','G','Y',' ')}},	/* Tigrinya */
  {"tig",	{HB_TAG('T','G','R',' ')}},	/* Tigre */
  {"tiv",	{HB_TAG('T','I','V',' ')}},	/* Tiv */
  {"tk",	{HB_TAG('T','K','M',' ')}},	/* Turkmen */
  {"tkg",	{HB_TAG('M','L','G',' ')}},	/* Tesaka Malagasy -> Malagasy */
  {"tl",	{HB_TAG('T','G','L',' ')}},	/* Tagalog */
  {"tmh",	{HB_TAG('T','M','H',' ')}},	/* Tamashek [macrolanguage] */
  {"tmw",	{HB_TAG('M','L','Y',' ')}},	/* Temuan -> Malay */
  {"tn",	{HB_TAG('T','N','A',' ')}},	/* Tswana */
  {"tnf",	{HB_TAG('D','R','I',' ')}},	/* Tangshewi (retired code) -> Dari */
  {"to",	{HB_TAG('T','G','N',' ')}},	/* Tonga (Tonga Islands) -> Tongan */
  {"tod",	{HB_TAG('T','O','D','0')}},	/* Toma */
  {"toi",	{HB_TAG('T','N','G',' ')}},	/* Tonga (Zambia) */
  {"tol",	{HB_TAG('A','T','H',' ')}},	/* Tolowa -> Athapaskan */
  {"tpi",	{HB_TAG('T','P','I',' ')}},	/* Tok Pisin */
  {"tr",	{HB_TAG('T','R','K',' ')}},	/* Turkish */
  {"tru",	{HB_TAG('T','U','A',' '),	/* Turoyo -> Turoyo Aramaic */
		 HB_TAG('S','Y','R',' ')}},	/* Turoyo -> Syriac */
  {"ts",	{HB_TAG('T','S','G',' ')}},	/* Tsonga */
  {"tsj",	{HB_TAG('T','S','J',' ')}},	/* Tshangla */
  {"tt",	{HB_TAG('T','A','T',' ')}},	/* Tatar */
  {"ttm",	{HB_TAG('A','T','H',' ')}},	/* Northern Tutchone -> Athapaskan */
  {"ttq",	{HB_TAG('T','M','H',' ')}},	/* Tawallammat Tamajaq -> Tamashek */
  {"tum",	{HB_TAG('T','U','M',' ')}},	/* Tumbuka -> Tulu */
  {"tuu",	{HB_TAG('A','T','H',' ')}},	/* Tututni -> Athapaskan */
  {"tuy",	{HB_TAG('K','A','L',' ')}},	/* Tugen -> Kalenjin */
  {"tvl",	{HB_TAG('T','V','L',' ')}},	/* Tuvalu */
  {"tw",	{HB_TAG('T','W','I',' '),	/* Twi */
		 HB_TAG('A','K','A',' ')}},	/* Twi -> Akan */
  {"txc",	{HB_TAG('A','T','H',' ')}},	/* Tsetsaut -> Athapaskan */
  {"txy",	{HB_TAG('M','L','G',' ')}},	/* Tanosy Malagasy -> Malagasy */
  {"ty",	{HB_TAG('T','H','T',' ')}},	/* Tahitian */
  {"tyv",	{HB_TAG('T','U','V',' ')}},	/* Tuvinian -> Tuvin */
  {"tyz",	{HB_TAG('T','Y','Z',' ')}},	/* Tày */
  {"tzm",	{HB_TAG('T','Z','M',' ')}},	/* Central Atlas Tamazight -> Tamazight */
  {"tzo",	{HB_TAG('T','Z','O',' ')}},	/* Tzotzil */
  {"ubl",	{HB_TAG('B','I','K',' ')}},	/* Buhi'non Bikol -> Bikol */
  {"udm",	{HB_TAG('U','D','M',' ')}},	/* Udmurt */
  {"ug",	{HB_TAG('U','Y','G',' ')}},	/* Uyghur */
  {"uk",	{HB_TAG('U','K','R',' ')}},	/* Ukrainian */
  {"umb",	{HB_TAG('U','M','B',' ')}},	/* Umbundu */
  {"unr",	{HB_TAG('M','U','N',' ')}},	/* Mundari */
  {"ur",	{HB_TAG('U','R','D',' ')}},	/* Urdu */
  {"urk",	{HB_TAG('M','L','Y',' ')}},	/* Urak Lawoi' -> Malay */
  {"uz",	{HB_TAG('U','Z','B',' ')}},	/* Uzbek [macrolanguage] */
  {"uzn",	{HB_TAG('U','Z','B',' ')}},	/* Northern Uzbek -> Uzbek */
  {"uzs",	{HB_TAG('U','Z','B',' ')}},	/* Southern Uzbek -> Uzbek */
  {"ve",	{HB_TAG('V','E','N',' ')}},	/* Venda */
  {"vec",	{HB_TAG('V','E','C',' ')}},	/* Venetian */
  {"vi",	{HB_TAG('V','I','T',' ')}},	/* Vietnamese */
  {"vkk",	{HB_TAG('M','L','Y',' ')}},	/* Kaur -> Malay */
  {"vkt",	{HB_TAG('M','L','Y',' ')}},	/* Tenggarong Kutai Malay -> Malay */
  {"vls",	{HB_TAG('F','L','E',' ')}},	/* Vlaams -> Dutch (Flemish) */
  {"vmw",	{HB_TAG('M','A','K',' ')}},	/* Makhuwa */
  {"vo",	{HB_TAG('V','O','L',' ')}},	/* Volapük */
  {"vro",	{HB_TAG('V','R','O',' ')}},	/* Võro */
  {"wa",	{HB_TAG('W','L','N',' ')}},	/* Walloon */
  {"war",	{HB_TAG('W','A','R',' ')}},	/* Waray (Philippines) -> Waray-Waray */
  {"wbm",	{HB_TAG('W','A',' ',' ')}},	/* Wa */
  {"wbr",	{HB_TAG('W','A','G',' ')}},	/* Wagdi */
  {"wlc",	{HB_TAG('C','M','R',' ')}},	/* Mwali Comorian -> Comorian */
  {"wle",	{HB_TAG('S','I','G',' ')}},	/* Wolane -> Silte Gurage */
  {"wlk",	{HB_TAG('A','T','H',' ')}},	/* Wailaki -> Athapaskan */
  {"wni",	{HB_TAG('C','M','R',' ')}},	/* Ndzwani Comorian -> Comorian */
  {"wo",	{HB_TAG('W','L','F',' ')}},	/* Wolof */
  {"wry",	{HB_TAG('M','A','W',' ')}},	/* Merwari -> Marwari */
  {"wsg",	{HB_TAG('G','O','N',' ')}},	/* Adilabad Gondi -> Gondi */
  {"wtm",	{HB_TAG('W','T','M',' ')}},	/* Mewati */
  {"wuu",	{HB_TAG('Z','H','S',' ')}},	/* Wu Chinese -> Chinese Simplified */
  {"xal",	{HB_TAG('K','L','M',' '),	/* Kalmyk */
		 HB_TAG('T','O','D',' ')}},	/* Kalmyk -> Todo */
  {"xan",	{HB_TAG('S','E','K',' ')}},	/* Xamtanga -> Sekota */
  {"xh",	{HB_TAG('X','H','S',' ')}},	/* Xhosa */
  {"xjb",	{HB_TAG('X','J','B',' ')}},	/* Minjungbal -> Minjangbal */
  {"xkf",	{HB_TAG('X','K','F',' ')}},	/* Khengkha */
  {"xmm",	{HB_TAG('M','L','Y',' ')}},	/* Manado Malay -> Malay */
  {"xmv",	{HB_TAG('M','L','G',' ')}},	/* Antankarana Malagasy -> Malagasy */
  {"xmw",	{HB_TAG('M','L','G',' ')}},	/* Tsimihety Malagasy -> Malagasy */
  {"xnr",	{HB_TAG('D','G','R',' ')}},	/* Kangri -> Dogri */
  {"xog",	{HB_TAG('X','O','G',' ')}},	/* Soga */
  {"xpe",	{HB_TAG('X','P','E',' ')}},	/* Liberia Kpelle -> Kpelle (Liberia) */
  {"xsl",	{HB_TAG('S','S','L',' '),	/* South Slavey */
		 HB_TAG('S','L','A',' '),	/* South Slavey -> Slavey */
		 HB_TAG('A','T','H',' ')}},	/* South Slavey -> Athapaskan */
  {"xst",	{HB_TAG('S','I','G',' ')}},	/* Silt'e (retired code) -> Silte Gurage */
  {"xwo",	{HB_TAG('T','O','D',' ')}},	/* Written Oirat -> Todo */
  {"yao",	{HB_TAG('Y','A','O',' ')}},	/* Yao */
  {"yap",	{HB_TAG('Y','A','P',' ')}},	/* Yapese */
  {"ybd",	{HB_TAG('A','R','K',' ')}},	/* Yangbye (retired code) -> Rakhine */
  {"ydd",	{HB_TAG('J','I','I',' ')}},	/* Eastern Yiddish -> Yiddish */
  {"yi",	{HB_TAG('J','I','I',' ')}},	/* Yiddish [macrolanguage] */
  {"yih",	{HB_TAG('J','I','I',' ')}},	/* Western Yiddish -> Yiddish */
  {"yo",	{HB_TAG('Y','B','A',' ')}},	/* Yoruba */
  {"yos",	{HB_TAG('Q','I','N',' ')}},	/* Yos (retired code) -> Chin */
  {"yrk",	{HB_TAG('T','N','E',' '),	/* Nenets -> Tundra Nenets */
		 HB_TAG('F','N','E',' ')}},	/* Nenets -> Forest Nenets */
  {"yue",	{HB_TAG('Z','H','H',' ')}},	/* Yue Chinese -> Chinese, Hong Kong SAR */
  {"za",	{HB_TAG('Z','H','A',' ')}},	/* Zhuang [macrolanguage] */
  {"zch",	{HB_TAG('Z','H','A',' ')}},	/* Central Hongshuihe Zhuang -> Zhuang */
  {"zdj",	{HB_TAG('C','M','R',' ')}},	/* Ngazidja Comorian -> Comorian */
  {"zea",	{HB_TAG('Z','E','A',' ')}},	/* Zeeuws -> Zealandic */
  {"zeh",	{HB_TAG('Z','H','A',' ')}},	/* Eastern Hongshuihe Zhuang -> Zhuang */
  {"zgb",	{HB_TAG('Z','H','A',' ')}},	/* Guibei Zhuang -> Zhuang */
  {"zgh",	{HB_TAG('Z','G','H',' ')}},	/* Standard Moroccan Tamazight */
  {"zgm",	{HB_TAG('Z','H','A',' ')}},	/* Minz Zhuang -> Zhuang */
  {"zgn",	{HB_TAG('Z','H','A',' ')}},	/* Guibian Zhuang -> Zhuang */
  {"zh",	{HB_TAG('Z','H','S',' ')}},	/* Chinese [macrolanguage] -> Chinese Simplified */
  {"zhd",	{HB_TAG('Z','H','A',' ')}},	/* Dai Zhuang -> Zhuang */
  {"zhn",	{HB_TAG('Z','H','A',' ')}},	/* Nong Zhuang -> Zhuang */
  {"zlj",	{HB_TAG('Z','H','A',' ')}},	/* Liujiang Zhuang -> Zhuang */
  {"zlm",	{HB_TAG('M','L','Y',' ')}},	/* Malay */
  {"zln",	{HB_TAG('Z','H','A',' ')}},	/* Lianshan Zhuang -> Zhuang */
  {"zlq",	{HB_TAG('Z','H','A',' ')}},	/* Liuqian Zhuang -> Zhuang */
  {"zmi",	{HB_TAG('M','L','Y',' ')}},	/* Negeri Sembilan Malay -> Malay */
  {"zne",	{HB_TAG('Z','N','D',' ')}},	/* Zande */
  {"zom",	{HB_TAG('Q','I','N',' ')}},	/* Zou -> Chin */
  {"zqe",	{HB_TAG('Z','H','A',' ')}},	/* Qiubei Zhuang -> Zhuang */
  {"zsm",	{HB_TAG('M','L','Y',' ')}},	/* Standard Malay -> Malay */
  {"zu",	{HB_TAG('Z','U','L',' ')}},	/* Zulu */
  {"zum",	{HB_TAG('L','R','C',' ')}},	/* Kumzari -> Luri */
  {"zyb",	{HB_TAG('Z','H','A',' ')}},	/* Yongbei Zhuang -> Zhuang */
  {"zyg",	{HB_TAG('Z','H','A',' ')}},	/* Yang Zhuang -> Zhuang */
  {"zyj",	{HB_TAG('Z','H','A',' ')}},	/* Youjiang Zhuang -> Zhuang */
  {"zyn",	{HB_TAG('Z','H','A',' ')}},	/* Yongnan Zhuang -> Zhuang */
  {"zza",	{HB_TAG('Z','Z','A',' ')}},	/* Zazaki [macrolanguage] */
  {"zzj",	{HB_TAG('Z','H','A',' ')}},	/* Zuojiang Zhuang -> Zhuang */
};

static_assert (HB_OT_MAX_TAGS_PER_LANGUAGE == 3u, "");

/**
 * hb_ot_tags_from_complex_language:
 * @lang_str: a BCP 47 language tag to convert.
 * @limit: a pointer to the end of the substring of @lang_str to consider for
 * conversion.
 * @count: maximum number of language tags to retrieve (IN) and actual number of
 * language tags retrieved (OUT). If no tags are retrieved, it is not modified.
 * @tags: array of size at least @language_count to store the language tag
 * results
 *
 * Converts a multi-subtag BCP 47 language tag to language tags.
 *
 * Return value: Whether any language systems were retrieved.
 **/
static bool
hb_ot_tags_from_complex_language (const char   *lang_str,
				  const char   *limit,
				  unsigned int *count /* IN/OUT */,
				  hb_tag_t     *tags /* OUT */)
{
  if (subtag_matches (lang_str, limit, "-fonnapa"))
  {
    /* Undetermined; North American Phonetic Alphabet */
    tags[0] = HB_TAG('A','P','P','H');  /* Phonetic transcription—Americanist conventions */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-polyton"))
  {
    /* Modern Greek (1453-); Polytonic Greek */
    tags[0] = HB_TAG('P','G','R',' ');  /* Polytonic Greek */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-provenc"))
  {
    /* Occitan (post 1500); Provençal */
    tags[0] = HB_TAG('P','R','O',' ');  /* Provençal / Old Provençal */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-fonipa"))
  {
    /* Undetermined; International Phonetic Alphabet */
    tags[0] = HB_TAG('I','P','P','H');  /* Phonetic transcription—IPA conventions */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-geok"))
  {
    /* Undetermined; Khutsuri (Asomtavruli and Nuskhuri) */
    tags[0] = HB_TAG('K','G','E',' ');  /* Khutsuri Georgian */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-syre"))
  {
    /* Undetermined; Syriac (Estrangelo variant) */
    tags[0] = HB_TAG('S','Y','R','E');  /* Syriac, Estrangela script-variant (equivalent to ISO 15924 'Syre') */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-syrj"))
  {
    /* Undetermined; Syriac (Western variant) */
    tags[0] = HB_TAG('S','Y','R','J');  /* Syriac, Western script-variant (equivalent to ISO 15924 'Syrj') */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-syrn"))
  {
    /* Undetermined; Syriac (Eastern variant) */
    tags[0] = HB_TAG('S','Y','R','N');  /* Syriac, Eastern script-variant (equivalent to ISO 15924 'Syrn') */
    *count = 1;
    return true;
  }
  switch (lang_str[0])
  {
  case 'a':
    if (0 == strcmp (&lang_str[1], "rt-lojban"))
    {
      /* Lojban */
      tags[0] = HB_TAG('J','B','O',' ');  /* Lojban */
      *count = 1;
      return true;
    }
    break;
  case 'c':
    if (lang_matches (&lang_str[1], "do-hant-hk"))
    {
      /* Min Dong Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "do-hant-mo"))
    {
      /* Min Dong Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "jy-hant-hk"))
    {
      /* Jinyu Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "jy-hant-mo"))
    {
      /* Jinyu Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "mn-hant-hk"))
    {
      /* Mandarin Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "mn-hant-mo"))
    {
      /* Mandarin Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "px-hant-hk"))
    {
      /* Pu-Xian Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "px-hant-mo"))
    {
      /* Pu-Xian Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zh-hant-hk"))
    {
      /* Huizhou Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zh-hant-mo"))
    {
      /* Huizhou Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zo-hant-hk"))
    {
      /* Min Zhong Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zo-hant-mo"))
    {
      /* Min Zhong Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "do-hans"))
    {
      /* Min Dong Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "do-hant"))
    {
      /* Min Dong Chinese */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "jy-hans"))
    {
      /* Jinyu Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "jy-hant"))
    {
      /* Jinyu Chinese */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "mn-hans"))
    {
      /* Mandarin Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "mn-hant"))
    {
      /* Mandarin Chinese */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "px-hans"))
    {
      /* Pu-Xian Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "px-hant"))
    {
      /* Pu-Xian Chinese */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zh-hans"))
    {
      /* Huizhou Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zh-hant"))
    {
      /* Huizhou Chinese */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zo-hans"))
    {
      /* Min Zhong Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zo-hant"))
    {
      /* Min Zhong Chinese */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "do-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Min Dong Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "do-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Min Dong Chinese; Macao */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "do-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Min Dong Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "jy-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Jinyu Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "jy-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Jinyu Chinese; Macao */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "jy-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Jinyu Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "mn-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Mandarin Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "mn-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Mandarin Chinese; Macao */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "mn-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Mandarin Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "px-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Pu-Xian Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "px-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Pu-Xian Chinese; Macao */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "px-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Pu-Xian Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "zh-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Huizhou Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "zh-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Huizhou Chinese; Macao */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "zh-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Huizhou Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "zo-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Min Zhong Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "zo-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Min Zhong Chinese; Macao */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "zo-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Min Zhong Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    break;
  case 'g':
    if (lang_matches (&lang_str[1], "an-hant-hk"))
    {
      /* Gan Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "an-hant-mo"))
    {
      /* Gan Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "an-hans"))
    {
      /* Gan Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "an-hant"))
    {
      /* Gan Chinese */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "a-latg"))
    {
      /* Irish */
      tags[0] = HB_TAG('I','R','T',' ');  /* Irish Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "an-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Gan Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "an-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Gan Chinese; Macao */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "an-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Gan Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    break;
  case 'h':
    if (lang_matches (&lang_str[1], "ak-hant-hk"))
    {
      /* Hakka Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "ak-hant-mo"))
    {
      /* Hakka Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "sn-hant-hk"))
    {
      /* Xiang Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "sn-hant-mo"))
    {
      /* Xiang Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "ak-hans"))
    {
      /* Hakka Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "ak-hant"))
    {
      /* Hakka Chinese */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "sn-hans"))
    {
      /* Xiang Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "sn-hant"))
    {
      /* Xiang Chinese */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "ak-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Hakka Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "ak-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Hakka Chinese; Macao */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "ak-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Hakka Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "sn-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Xiang Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "sn-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Xiang Chinese; Macao */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "sn-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Xiang Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    break;
  case 'i':
    if (0 == strcmp (&lang_str[1], "-navajo"))
    {
      /* Navajo */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('N','A','V',' '),  /* Navajo */
	HB_TAG('A','T','H',' '),  /* Athapaskan */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strcmp (&lang_str[1], "-hak"))
    {
      /* Hakka */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (0 == strcmp (&lang_str[1], "-lux"))
    {
      /* Luxembourgish */
      tags[0] = HB_TAG('L','T','Z',' ');  /* Luxembourgish */
      *count = 1;
      return true;
    }
    break;
  case 'l':
    if (lang_matches (&lang_str[1], "zh-hans"))
    {
      /* Literary Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    break;
  case 'm':
    if (lang_matches (&lang_str[1], "np-hant-hk"))
    {
      /* Min Bei Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "np-hant-mo"))
    {
      /* Min Bei Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "np-hans"))
    {
      /* Min Bei Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "np-hant"))
    {
      /* Min Bei Chinese */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "np-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Min Bei Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "np-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Min Bei Chinese; Macao */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "np-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Min Bei Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    break;
  case 'n':
    if (lang_matches (&lang_str[1], "an-hant-hk"))
    {
      /* Min Nan Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "an-hant-mo"))
    {
      /* Min Nan Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "an-hans"))
    {
      /* Min Nan Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "an-hant"))
    {
      /* Min Nan Chinese */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "an-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Min Nan Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "an-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Min Nan Chinese; Macao */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "an-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Min Nan Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (0 == strcmp (&lang_str[1], "o-bok"))
    {
      /* Norwegian Bokmal */
      tags[0] = HB_TAG('N','O','R',' ');  /* Norwegian */
      *count = 1;
      return true;
    }
    if (0 == strcmp (&lang_str[1], "o-nyn"))
    {
      /* Norwegian Nynorsk */
      tags[0] = HB_TAG('N','Y','N',' ');  /* Norwegian Nynorsk (Nynorsk, Norwegian) */
      *count = 1;
      return true;
    }
    break;
  case 'r':
    if (0 == strncmp (&lang_str[1], "o-", 2)
	&& subtag_matches (lang_str, limit, "-md"))
    {
      /* Romanian; Moldova */
      tags[0] = HB_TAG('M','O','L',' ');  /* Moldavian */
      *count = 1;
      return true;
    }
    break;
  case 'w':
    if (lang_matches (&lang_str[1], "uu-hant-hk"))
    {
      /* Wu Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "uu-hant-mo"))
    {
      /* Wu Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "uu-hans"))
    {
      /* Wu Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "uu-hant"))
    {
      /* Wu Chinese */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "uu-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Wu Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "uu-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Wu Chinese; Macao */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "uu-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Wu Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    break;
  case 'y':
    if (lang_matches (&lang_str[1], "ue-hans"))
    {
      /* Yue Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    break;
  case 'z':
    if (lang_matches (&lang_str[1], "h-hant-hk"))
    {
      /* Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "h-hant-mo"))
    {
      /* Chinese */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strcmp (&lang_str[1], "h-min-nan"))
    {
      /* Minnan, Hokkien, Amoy, Taiwanese, Southern Min, Southern Fujian, Hoklo, Southern Fukien, Ho-lo */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "h-hans"))
    {
      /* Chinese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "h-hant"))
    {
      /* Chinese */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    if (0 == strcmp (&lang_str[1], "h-min"))
    {
      /* Min, Fuzhou, Hokkien, Amoy, or Taiwanese */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese Simplified */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "h-", 2)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "h-", 2)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Chinese; Macao */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "h-", 2)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese Traditional */
      *count = 1;
      return true;
    }
    break;
  }
  return false;
}

/**
 * hb_ot_ambiguous_tag_to_language
 * @tag: A language tag.
 *
 * Converts @tag to a BCP 47 language tag if it is ambiguous (it corresponds to
 * many language tags) and the best tag is not the alphabetically first, or if
 * the best tag consists of multiple subtags.
 *
 * Return value: The #hb_language_t corresponding to the BCP 47 language tag,
 * or #HB_LANGUAGE_INVALID if @tag is not ambiguous.
 **/
static hb_language_t
hb_ot_ambiguous_tag_to_language (hb_tag_t tag)
{
  switch (tag)
  {
  case HB_TAG('A','P','P','H'):  /* Phonetic transcription—Americanist conventions */
    return hb_language_from_string ("und-fonnapa", -1);  /* Undetermined; North American Phonetic Alphabet */
  case HB_TAG('A','R','A',' '):  /* Arabic */
    return hb_language_from_string ("ar", -1);  /* Arabic */
  case HB_TAG('A','R','K',' '):  /* Rakhine */
    return hb_language_from_string ("rki", -1);  /* Rakhine */
  case HB_TAG('A','T','H',' '):  /* Athapaskan */
    return hb_language_from_string ("ath", -1);  /* Athapascan */
  case HB_TAG('B','I','K',' '):  /* Bikol */
    return hb_language_from_string ("bik", -1);  /* Bikol */
  case HB_TAG('C','P','P',' '):  /* Creoles */
    return hb_language_from_string ("crp", -1);  /* Creoles and pidgins */
  case HB_TAG('C','R','R',' '):  /* Carrier */
    return hb_language_from_string ("crx", -1);  /* Carrier */
  case HB_TAG('D','N','K',' '):  /* Dinka */
    return hb_language_from_string ("din", -1);  /* Dinka */
  case HB_TAG('D','R','I',' '):  /* Dari */
    return hb_language_from_string ("prs", -1);  /* Dari */
  case HB_TAG('D','U','J',' '):  /* Dhuwal */
    return hb_language_from_string ("dwu", -1);  /* Dhuwal */
  case HB_TAG('D','Z','N',' '):  /* Dzongkha */
    return hb_language_from_string ("dz", -1);  /* Dzongkha */
  case HB_TAG('E','T','I',' '):  /* Estonian */
    return hb_language_from_string ("et", -1);  /* Estonian */
  case HB_TAG('G','O','N',' '):  /* Gondi */
    return hb_language_from_string ("gon", -1);  /* Gondi */
  case HB_TAG('H','M','N',' '):  /* Hmong */
    return hb_language_from_string ("hmn", -1);  /* Hmong */
  case HB_TAG('I','J','O',' '):  /* Ijo */
    return hb_language_from_string ("ijo", -1);  /* Ijo */
  case HB_TAG('I','N','U',' '):  /* Inuktitut */
    return hb_language_from_string ("iu", -1);  /* Inuktitut */
  case HB_TAG('I','P','K',' '):  /* Inupiat */
    return hb_language_from_string ("ik", -1);  /* Inupiaq */
  case HB_TAG('I','P','P','H'):  /* Phonetic transcription—IPA conventions */
    return hb_language_from_string ("und-fonipa", -1);  /* Undetermined; International Phonetic Alphabet */
  case HB_TAG('I','R','T',' '):  /* Irish Traditional */
    return hb_language_from_string ("ga-Latg", -1);  /* Irish; Latin (Gaelic variant) */
  case HB_TAG('J','I','I',' '):  /* Yiddish */
    return hb_language_from_string ("yi", -1);  /* Yiddish */
  case HB_TAG('K','A','L',' '):  /* Kalenjin */
    return hb_language_from_string ("kln", -1);  /* Kalenjin */
  case HB_TAG('K','G','E',' '):  /* Khutsuri Georgian */
    return hb_language_from_string ("und-Geok", -1);  /* Undetermined; Khutsuri (Asomtavruli and Nuskhuri) */
  case HB_TAG('K','N','R',' '):  /* Kanuri */
    return hb_language_from_string ("kr", -1);  /* Kanuri */
  case HB_TAG('K','O','K',' '):  /* Konkani */
    return hb_language_from_string ("kok", -1);  /* Konkani */
  case HB_TAG('K','U','R',' '):  /* Kurdish */
    return hb_language_from_string ("ku", -1);  /* Kurdish */
  case HB_TAG('L','U','H',' '):  /* Luyia */
    return hb_language_from_string ("luy", -1);  /* Luyia */
  case HB_TAG('L','V','I',' '):  /* Latvian */
    return hb_language_from_string ("lv", -1);  /* Latvian */
  case HB_TAG('M','A','W',' '):  /* Marwari */
    return hb_language_from_string ("mwr", -1);  /* Marwari */
  case HB_TAG('M','L','G',' '):  /* Malagasy */
    return hb_language_from_string ("mg", -1);  /* Malagasy */
  case HB_TAG('M','L','Y',' '):  /* Malay */
    return hb_language_from_string ("ms", -1);  /* Malay */
  case HB_TAG('M','N','G',' '):  /* Mongolian */
    return hb_language_from_string ("mn", -1);  /* Mongolian */
  case HB_TAG('M','O','L',' '):  /* Moldavian */
    return hb_language_from_string ("ro-MD", -1);  /* Romanian; Moldova */
  case HB_TAG('N','E','P',' '):  /* Nepali */
    return hb_language_from_string ("ne", -1);  /* Nepali */
  case HB_TAG('N','I','S',' '):  /* Nisi */
    return hb_language_from_string ("njz", -1);  /* Nyishi */
  case HB_TAG('N','O','R',' '):  /* Norwegian */
    return hb_language_from_string ("no", -1);  /* Norwegian */
  case HB_TAG('O','J','B',' '):  /* Ojibway */
    return hb_language_from_string ("oj", -1);  /* Ojibwa */
  case HB_TAG('O','R','O',' '):  /* Oromo */
    return hb_language_from_string ("om", -1);  /* Oromo */
  case HB_TAG('P','A','S',' '):  /* Pashto */
    return hb_language_from_string ("ps", -1);  /* Pashto */
  case HB_TAG('P','G','R',' '):  /* Polytonic Greek */
    return hb_language_from_string ("el-polyton", -1);  /* Modern Greek (1453-); Polytonic Greek */
  case HB_TAG('P','R','O',' '):  /* Provençal / Old Provençal */
    return hb_language_from_string ("pro", -1);  /* Old Provençal (to 1500) */
  case HB_TAG('Q','U','H',' '):  /* Quechua (Bolivia) */
    return hb_language_from_string ("quh", -1);  /* South Bolivian Quechua */
  case HB_TAG('Q','V','I',' '):  /* Quechua (Ecuador) */
    return hb_language_from_string ("qvi", -1);  /* Imbabura Highland Quichua */
  case HB_TAG('Q','W','H',' '):  /* Quechua (Peru) */
    return hb_language_from_string ("qwh", -1);  /* Huaylas Ancash Quechua */
  case HB_TAG('R','A','J',' '):  /* Rajasthani */
    return hb_language_from_string ("raj", -1);  /* Rajasthani */
  case HB_TAG('R','O','Y',' '):  /* Romany */
    return hb_language_from_string ("rom", -1);  /* Romany */
  case HB_TAG('S','Q','I',' '):  /* Albanian */
    return hb_language_from_string ("sq", -1);  /* Albanian */
  case HB_TAG('S','Y','R',' '):  /* Syriac */
    return hb_language_from_string ("syr", -1);  /* Syriac */
  case HB_TAG('S','Y','R','E'):  /* Syriac, Estrangela script-variant (equivalent to ISO 15924 'Syre') */
    return hb_language_from_string ("und-Syre", -1);  /* Undetermined; Syriac (Estrangelo variant) */
  case HB_TAG('S','Y','R','J'):  /* Syriac, Western script-variant (equivalent to ISO 15924 'Syrj') */
    return hb_language_from_string ("und-Syrj", -1);  /* Undetermined; Syriac (Western variant) */
  case HB_TAG('S','Y','R','N'):  /* Syriac, Eastern script-variant (equivalent to ISO 15924 'Syrn') */
    return hb_language_from_string ("und-Syrn", -1);  /* Undetermined; Syriac (Eastern variant) */
  case HB_TAG('T','M','H',' '):  /* Tamashek */
    return hb_language_from_string ("tmh", -1);  /* Tamashek */
  case HB_TAG('T','N','E',' '):  /* Tundra Nenets */
    return hb_language_from_string ("yrk", -1);  /* Nenets */
  case HB_TAG('Z','H','H',' '):  /* Chinese, Hong Kong SAR */
    return hb_language_from_string ("zh-HK", -1);  /* Chinese; Hong Kong */
  case HB_TAG('Z','H','S',' '):  /* Chinese Simplified */
    return hb_language_from_string ("zh-Hans", -1);  /* Chinese; Han (Simplified variant) */
  case HB_TAG('Z','H','T',' '):  /* Chinese Traditional */
    return hb_language_from_string ("zh-Hant", -1);  /* Chinese; Han (Traditional variant) */
  default:
    return HB_LANGUAGE_INVALID;
  }
}

#endif /* HB_OT_TAG_TABLE_HH */

/* == End of generated table == */
