OpenJDK / amber / amber
changeset 46064:312c2fe1f56f
Merge
author | duke |
---|---|
date | Thu, 24 Aug 2017 16:33:25 +0200 |
parents | 0bdcd03d587a 6057dbfd2622 |
children | 4a334c691500 |
files | jdk/src/java.base/share/classes/sun/util/locale/LocaleEquivalentMaps.java jdk/test/java/lang/ClassLoader/getResource/GetResource.sh jdk/test/java/util/Locale/tools/EquivMapsGenerator.java jdk/test/java/util/Locale/tools/language-subtag-registry.txt |
diffstat | 144 files changed, 51354 insertions(+), 48312 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags-top-repo Fri Jul 28 02:34:37 2017 +0000 +++ b/.hgtags-top-repo Thu Aug 24 16:33:25 2017 +0200 @@ -437,3 +437,6 @@ a4371edb589c60db01142e45c317adb9ccbcb083 jdk-9+177 a6c830ee8a6798b186730475e700027cdf4598aa jdk-10+15 2fe66ca1e2b3c361f949de9cb2894661dc0a3fa2 jdk-10+16 +ec4159ebe7050fcc5dcee8a2d150cf948ecc97db jdk-9+178 +252475ccfd84cc249f8d6faf4b7806b5e2c384ce jdk-9+179 +a133a7d1007b1456bc62824382fd8ac93b45d329 jdk-10+17
--- a/hotspot/.hgtags Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/.hgtags Thu Aug 24 16:33:25 2017 +0200 @@ -597,3 +597,6 @@ 1ca8f038fceb88c640badf9bd18905205bc63b43 jdk-9+177 c1f3649a3a42f124b418a5a916dbad13d059b757 jdk-10+15 2fe2a593e8ebf3a9e4dcd9ba3333a7b43126589d jdk-10+16 +9d032191f82fca5ba0aac98682f69c4ff0f1283d jdk-9+178 +d2661aa42bff322badbe6c1337fc638d2e0f5730 jdk-9+179 +73e2cb8700bfa51304bd4b02f224620859a3f600 jdk-10+17
--- a/hotspot/src/cpu/aarch64/vm/aarch64.ad Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/aarch64/vm/aarch64.ad Thu Aug 24 16:33:25 2017 +0200 @@ -14394,7 +14394,7 @@ ins_pipe(icmp_reg_reg); %} -instruct compL_reg_immI0(rFlagsReg cr, iRegL op1, immI0 zero) +instruct compL_reg_immL0(rFlagsReg cr, iRegL op1, immL0 zero) %{ match(Set cr (CmpL op1 zero)); @@ -14436,6 +14436,62 @@ ins_pipe(icmp_reg_imm); %} +instruct compUL_reg_reg(rFlagsRegU cr, iRegL op1, iRegL op2) +%{ + match(Set cr (CmpUL op1 op2)); + + effect(DEF cr, USE op1, USE op2); + + ins_cost(INSN_COST); + format %{ "cmp $op1, $op2" %} + + ins_encode(aarch64_enc_cmp(op1, op2)); + + ins_pipe(icmp_reg_reg); +%} + +instruct compUL_reg_immL0(rFlagsRegU cr, iRegL op1, immL0 zero) +%{ + match(Set cr (CmpUL op1 zero)); + + effect(DEF cr, USE op1); + + ins_cost(INSN_COST); + format %{ "tst $op1" %} + + ins_encode(aarch64_enc_cmp_imm_addsub(op1, zero)); + + ins_pipe(icmp_reg_imm); +%} + +instruct compUL_reg_immLAddSub(rFlagsRegU cr, iRegL op1, immLAddSub op2) +%{ + match(Set cr (CmpUL op1 op2)); + + effect(DEF cr, USE op1); + + ins_cost(INSN_COST); + format %{ "cmp $op1, $op2" %} + + ins_encode(aarch64_enc_cmp_imm_addsub(op1, op2)); + + ins_pipe(icmp_reg_imm); +%} + +instruct compUL_reg_immL(rFlagsRegU cr, iRegL op1, immL op2) +%{ + match(Set cr (CmpUL op1 op2)); + + effect(DEF cr, USE op1); + + ins_cost(INSN_COST * 2); + format %{ "cmp $op1, $op2" %} + + ins_encode(aarch64_enc_cmp_imm(op1, op2)); + + ins_pipe(icmp_reg_imm); +%} + instruct compP_reg_reg(rFlagsRegU cr, iRegP op1, iRegP op2) %{ match(Set cr (CmpP op1 op2)); @@ -14920,7 +14976,7 @@ %} instruct cmpUL_imm0_branch(cmpOpUEqNeLtGe cmp, iRegL op1, immL0 op2, label labl, rFlagsRegU cr) %{ - match(If cmp (CmpU op1 op2)); + match(If cmp (CmpUL op1 op2)); effect(USE labl); ins_cost(BRANCH_COST);
--- a/hotspot/src/cpu/aarch64/vm/c2_globals_aarch64.hpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/aarch64/vm/c2_globals_aarch64.hpp Thu Aug 24 16:33:25 2017 +0200 @@ -49,12 +49,11 @@ define_pd_global(intx, FLOATPRESSURE, 64); define_pd_global(intx, FreqInlineSize, 325); define_pd_global(intx, MinJumpTableSize, 10); -define_pd_global(intx, INTPRESSURE, 25); +define_pd_global(intx, INTPRESSURE, 24); define_pd_global(intx, InteriorEntryAlignment, 16); define_pd_global(intx, NewSizeThreadIncrease, ScaleForWordSize(4*K)); define_pd_global(intx, LoopUnrollLimit, 60); define_pd_global(intx, LoopPercentProfileLimit, 10); -define_pd_global(intx, PostLoopMultiversioning, false); // InitialCodeCacheSize derived from specjbb2000 run. define_pd_global(intx, InitialCodeCacheSize, 2496*K); // Integral multiple of CodeCacheExpansionSize define_pd_global(intx, CodeCacheExpansionSize, 64*K);
--- a/hotspot/src/cpu/arm/vm/arm.ad Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/arm/vm/arm.ad Thu Aug 24 16:33:25 2017 +0200 @@ -2695,6 +2695,30 @@ format %{ "apsr_L_LEGT" %} interface(REG_INTER); %} + +operand flagsRegUL_LTGE() %{ + constraint(ALLOC_IN_RC(int_flags)); + match(RegFlags); + + format %{ "apsr_UL_LTGE" %} + interface(REG_INTER); +%} + +operand flagsRegUL_EQNE() %{ + constraint(ALLOC_IN_RC(int_flags)); + match(RegFlags); + + format %{ "apsr_UL_EQNE" %} + interface(REG_INTER); +%} + +operand flagsRegUL_LEGT() %{ + constraint(ALLOC_IN_RC(int_flags)); + match(RegFlags); + + format %{ "apsr_UL_LEGT" %} + interface(REG_INTER); +%} #endif // Condition Code Register, floating comparisons, unordered same as "less". @@ -3249,6 +3273,39 @@ %} %} +operand cmpOpUL() %{ + match(Bool); + + format %{ "UL" %} + interface(COND_INTER) %{ + equal(0x0); + not_equal(0x1); + less(0x3); + greater_equal(0x2); + less_equal(0x9); + greater(0x8); + overflow(0x0); // unsupported/unimplemented + no_overflow(0x0); // unsupported/unimplemented + %} +%} + +operand cmpOpUL_commute() %{ + match(Bool); + + format %{ "UL" %} + interface(COND_INTER) %{ + equal(0x0); + not_equal(0x1); + less(0x8); + greater_equal(0x9); + less_equal(0x2); + greater(0x3); + overflow(0x0); // unsupported/unimplemented + no_overflow(0x0); // unsupported/unimplemented + %} +%} + + //----------OPERAND CLASSES---------------------------------------------------- // Operand Classes are groups of operands that are used to simplify // instruction definitions by not requiring the AD writer to specify separate @@ -10467,6 +10524,17 @@ %} ins_pipe(ialu_cconly_reg_reg); %} + +instruct compUL_iReg(flagsRegU xcc, iRegL op1, iRegL op2) %{ + match(Set xcc (CmpUL op1 op2)); + + size(4); + format %{ "CMP $op1,$op2\t! unsigned long" %} + ins_encode %{ + __ cmp($op1$$Register, $op2$$Register); + %} + ins_pipe(ialu_cconly_reg_reg); +%} #else instruct compL_reg_reg_LTGE(flagsRegL_LTGE xcc, iRegL op1, iRegL op2, iRegL tmp) %{ match(Set xcc (CmpL op1 op2)); @@ -10481,6 +10549,20 @@ %} ins_pipe(ialu_cconly_reg_reg); %} + +instruct compUL_reg_reg_LTGE(flagsRegUL_LTGE xcc, iRegL op1, iRegL op2, iRegL tmp) %{ + match(Set xcc (CmpUL op1 op2)); + effect(DEF xcc, USE op1, USE op2, TEMP tmp); + + size(8); + format %{ "SUBS $tmp,$op1.low,$op2.low\t\t! unsigned long\n\t" + "SBCS $tmp,$op1.hi,$op2.hi" %} + ins_encode %{ + __ subs($tmp$$Register, $op1$$Register, $op2$$Register); + __ sbcs($tmp$$Register->successor(), $op1$$Register->successor(), $op2$$Register->successor()); + %} + ins_pipe(ialu_cconly_reg_reg); +%} #endif #ifdef AARCH64 @@ -10496,6 +10578,19 @@ ins_pipe(ialu_cconly_reg_imm); %} + +instruct compUL_reg_con(flagsRegU xcc, iRegL op1, aimmL con) %{ + match(Set xcc (CmpUL op1 con)); + effect(DEF xcc, USE op1, USE con); + + size(8); + format %{ "CMP $op1,$con\t\t! unsigned long" %} + ins_encode %{ + __ cmp($op1$$Register, $con$$constant); + %} + + ins_pipe(ialu_cconly_reg_imm); +%} #else instruct compL_reg_reg_EQNE(flagsRegL_EQNE xcc, iRegL op1, iRegL op2) %{ match(Set xcc (CmpL op1 op2)); @@ -10575,6 +10670,85 @@ ins_pipe(ialu_cconly_reg_reg); %} + +instruct compUL_reg_reg_EQNE(flagsRegUL_EQNE xcc, iRegL op1, iRegL op2) %{ + match(Set xcc (CmpUL op1 op2)); + effect(DEF xcc, USE op1, USE op2); + + size(8); + format %{ "TEQ $op1.hi,$op2.hi\t\t! unsigned long\n\t" + "TEQ.eq $op1.lo,$op2.lo" %} + ins_encode %{ + __ teq($op1$$Register->successor(), $op2$$Register->successor()); + __ teq($op1$$Register, $op2$$Register, eq); + %} + ins_pipe(ialu_cconly_reg_reg); +%} + +instruct compUL_reg_reg_LEGT(flagsRegUL_LEGT xcc, iRegL op1, iRegL op2, iRegL tmp) %{ + match(Set xcc (CmpUL op1 op2)); + effect(DEF xcc, USE op1, USE op2, TEMP tmp); + + size(8); + format %{ "SUBS $tmp,$op2.low,$op1.low\t\t! unsigned long\n\t" + "SBCS $tmp,$op2.hi,$op1.hi" %} + ins_encode %{ + __ subs($tmp$$Register, $op2$$Register, $op1$$Register); + __ sbcs($tmp$$Register->successor(), $op2$$Register->successor(), $op1$$Register->successor()); + %} + ins_pipe(ialu_cconly_reg_reg); +%} + +// TODO: try immLRot2 instead, (0, $con$$constant) becomes +// (hi($con$$constant), lo($con$$constant)) becomes +instruct compUL_reg_con_LTGE(flagsRegUL_LTGE xcc, iRegL op1, immLlowRot con, iRegL tmp) %{ + match(Set xcc (CmpUL op1 con)); + effect(DEF xcc, USE op1, USE con, TEMP tmp); + + size(8); + format %{ "SUBS $tmp,$op1.low,$con\t\t! unsigned long\n\t" + "SBCS $tmp,$op1.hi,0" %} + ins_encode %{ + __ subs($tmp$$Register, $op1$$Register, $con$$constant); + __ sbcs($tmp$$Register->successor(), $op1$$Register->successor(), 0); + %} + + ins_pipe(ialu_cconly_reg_reg); +%} + +// TODO: try immLRot2 instead, (0, $con$$constant) becomes +// (hi($con$$constant), lo($con$$constant)) becomes +instruct compUL_reg_con_EQNE(flagsRegUL_EQNE xcc, iRegL op1, immLlowRot con) %{ + match(Set xcc (CmpUL op1 con)); + effect(DEF xcc, USE op1, USE con); + + size(8); + format %{ "TEQ $op1.hi,0\t\t! unsigned long\n\t" + "TEQ.eq $op1.lo,$con" %} + ins_encode %{ + __ teq($op1$$Register->successor(), 0); + __ teq($op1$$Register, $con$$constant, eq); + %} + + ins_pipe(ialu_cconly_reg_reg); +%} + +// TODO: try immLRot2 instead, (0, $con$$constant) becomes +// (hi($con$$constant), lo($con$$constant)) becomes +instruct compUL_reg_con_LEGT(flagsRegUL_LEGT xcc, iRegL op1, immLlowRot con, iRegL tmp) %{ + match(Set xcc (CmpUL op1 con)); + effect(DEF xcc, USE op1, USE con, TEMP tmp); + + size(8); + format %{ "RSBS $tmp,$op1.low,$con\t\t! unsigned long\n\t" + "RSCS $tmp,$op1.hi,0" %} + ins_encode %{ + __ rsbs($tmp$$Register, $op1$$Register, $con$$constant); + __ rscs($tmp$$Register->successor(), $op1$$Register->successor(), 0); + %} + + ins_pipe(ialu_cconly_reg_reg); +%} #endif /* instruct testL_reg_reg(flagsRegL xcc, iRegL op1, iRegL op2, immL0 zero) %{ */ @@ -11126,6 +11300,48 @@ %} ins_pipe(br_cc); %} + +instruct branchConUL_LTGE(cmpOpUL cmp, flagsRegUL_LTGE xcc, label labl) %{ + match(If cmp xcc); + effect(USE labl); + predicate(_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::lt || _kids[0]->_leaf->as_Bool()->_test._test == BoolTest::ge); + + size(4); + ins_cost(BRANCH_COST); + format %{ "B$cmp $xcc,$labl" %} + ins_encode %{ + __ b(*($labl$$label), (AsmCondition)($cmp$$cmpcode)); + %} + ins_pipe(br_cc); +%} + +instruct branchConUL_EQNE(cmpOpUL cmp, flagsRegUL_EQNE xcc, label labl) %{ + match(If cmp xcc); + effect(USE labl); + predicate(_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::eq || _kids[0]->_leaf->as_Bool()->_test._test == BoolTest::ne); + + size(4); + ins_cost(BRANCH_COST); + format %{ "B$cmp $xcc,$labl" %} + ins_encode %{ + __ b(*($labl$$label), (AsmCondition)($cmp$$cmpcode)); + %} + ins_pipe(br_cc); +%} + +instruct branchConUL_LEGT(cmpOpUL_commute cmp, flagsRegUL_LEGT xcc, label labl) %{ + match(If cmp xcc); + effect(USE labl); + predicate(_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::gt || _kids[0]->_leaf->as_Bool()->_test._test == BoolTest::le); + + size(4); + ins_cost(BRANCH_COST); + format %{ "B$cmp $xcc,$labl" %} + ins_encode %{ + __ b(*($labl$$label), (AsmCondition)($cmp$$cmpcode)); + %} + ins_pipe(br_cc); +%} #endif instruct branchLoopEnd(cmpOp cmp, flagsReg icc, label labl) %{
--- a/hotspot/src/cpu/arm/vm/c2_globals_arm.hpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/arm/vm/c2_globals_arm.hpp Thu Aug 24 16:33:25 2017 +0200 @@ -70,7 +70,6 @@ define_pd_global(bool, ResizeTLAB, true); define_pd_global(intx, LoopUnrollLimit, 60); // Design center runs on 1.3.1 define_pd_global(intx, LoopPercentProfileLimit, 10); -define_pd_global(intx, PostLoopMultiversioning, false); define_pd_global(intx, MinJumpTableSize, 16); // Peephole and CISC spilling both break the graph, and so makes the
--- a/hotspot/src/cpu/ppc/vm/c2_globals_ppc.hpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/ppc/vm/c2_globals_ppc.hpp Thu Aug 24 16:33:25 2017 +0200 @@ -55,7 +55,6 @@ define_pd_global(bool, ResizeTLAB, true); define_pd_global(intx, LoopUnrollLimit, 60); define_pd_global(intx, LoopPercentProfileLimit, 10); -define_pd_global(intx, PostLoopMultiversioning, false); // Peephole and CISC spilling both break the graph, and so make the // scheduler sick.
--- a/hotspot/src/cpu/ppc/vm/ppc.ad Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/ppc/vm/ppc.ad Thu Aug 24 16:33:25 2017 +0200 @@ -11048,6 +11048,29 @@ ins_pipe(pipe_class_compare); %} +// Added CmpUL for LoopPredicate. +instruct cmpUL_reg_reg(flagsReg crx, iRegLsrc src1, iRegLsrc src2) %{ + match(Set crx (CmpUL src1 src2)); + format %{ "CMPLD $crx, $src1, $src2" %} + size(4); + ins_encode %{ + // TODO: PPC port $archOpcode(ppc64Opcode_cmpl); + __ cmpld($crx$$CondRegister, $src1$$Register, $src2$$Register); + %} + ins_pipe(pipe_class_compare); +%} + +instruct cmpUL_reg_imm16(flagsReg crx, iRegLsrc src1, uimmL16 src2) %{ + match(Set crx (CmpUL src1 src2)); + format %{ "CMPLDI $crx, $src1, $src2" %} + size(4); + ins_encode %{ + // TODO: PPC port $archOpcode(ppc64Opcode_cmpli); + __ cmpldi($crx$$CondRegister, $src1$$Register, $src2$$constant); + %} + ins_pipe(pipe_class_compare); +%} + instruct testL_reg_reg(flagsRegCR0 cr0, iRegLsrc src1, iRegLsrc src2, immL_0 zero) %{ match(Set cr0 (CmpL (AndL src1 src2) zero)); // r0 is killed
--- a/hotspot/src/cpu/s390/vm/c2_globals_s390.hpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/s390/vm/c2_globals_s390.hpp Thu Aug 24 16:33:25 2017 +0200 @@ -56,7 +56,6 @@ define_pd_global(bool, ResizeTLAB, true); define_pd_global(intx, LoopUnrollLimit, 60); define_pd_global(intx, LoopPercentProfileLimit, 10); -define_pd_global(intx, PostLoopMultiversioning, false); define_pd_global(intx, MinJumpTableSize, 18); // Peephole and CISC spilling both break the graph, and so makes the
--- a/hotspot/src/cpu/s390/vm/s390.ad Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/s390/vm/s390.ad Thu Aug 24 16:33:25 2017 +0200 @@ -8475,6 +8475,24 @@ %} // LONG unsigned +// Added CmpUL for LoopPredicate. +instruct compUL_reg_reg(flagsReg cr, iRegL op1, iRegL op2) %{ + match(Set cr (CmpUL op1 op2)); + size(4); + format %{ "CLGR $op1,$op2\t # long" %} + opcode(CLGR_ZOPC); + ins_encode(z_rreform(op1, op2)); + ins_pipe(pipe_class_dummy); +%} + +instruct compUL_reg_imm32(flagsReg cr, iRegL op1, uimmL32 con) %{ + match(Set cr (CmpUL op1 con)); + size(6); + format %{ "CLGFI $op1,$con" %} + opcode(CLGFI_ZOPC); + ins_encode(z_rilform_unsigned(op1, con)); + ins_pipe(pipe_class_dummy); +%} // PTR unsigned
--- a/hotspot/src/cpu/sparc/vm/c2_globals_sparc.hpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/sparc/vm/c2_globals_sparc.hpp Thu Aug 24 16:33:25 2017 +0200 @@ -53,7 +53,6 @@ define_pd_global(bool, ResizeTLAB, true); define_pd_global(intx, LoopUnrollLimit, 60); // Design center runs on 1.3.1 define_pd_global(intx, LoopPercentProfileLimit, 10); -define_pd_global(intx, PostLoopMultiversioning, false); define_pd_global(intx, MinJumpTableSize, 5); // Peephole and CISC spilling both break the graph, and so makes the
--- a/hotspot/src/cpu/sparc/vm/sparc.ad Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/sparc/vm/sparc.ad Thu Aug 24 16:33:25 2017 +0200 @@ -3403,6 +3403,16 @@ interface(CONST_INTER); %} +// Unsigned Long Immediate: 12-bit (non-negative that fits in simm13) +operand immUL12() %{ + predicate((0 <= n->get_long()) && (n->get_long() == (int)n->get_long()) && Assembler::is_simm13((int)n->get_long())); + match(ConL); + op_cost(0); + + format %{ %} + interface(CONST_INTER); +%} + // Integer Immediate non-negative operand immU31() %{ @@ -3936,6 +3946,15 @@ interface(REG_INTER); %} +// Condition Code Register, unsigned long comparisons. +operand flagsRegUL() %{ + constraint(ALLOC_IN_RC(int_flags)); + match(RegFlags); + + format %{ "xcc_UL" %} + interface(REG_INTER); +%} + // Condition Code Register, floating comparisons, unordered same as "less". operand flagsRegF() %{ constraint(ALLOC_IN_RC(float_flags)); @@ -8797,6 +8816,17 @@ ins_pipe(ialu_cconly_reg_reg); %} +instruct compUL_iReg(flagsRegUL xcc, iRegL op1, iRegL op2) %{ + match(Set xcc (CmpUL op1 op2)); + effect(DEF xcc, USE op1, USE op2); + + size(4); + format %{ "CMP $op1,$op2\t! unsigned long" %} + opcode(Assembler::subcc_op3, Assembler::arith_op); + ins_encode(form3_rs1_rs2_rd(op1, op2, R_G0)); + ins_pipe(ialu_cconly_reg_reg); +%} + instruct compI_iReg_imm13(flagsReg icc, iRegI op1, immI13 op2) %{ match(Set icc (CmpI op1 op2)); effect( DEF icc, USE op1 ); @@ -8883,6 +8913,17 @@ ins_pipe(ialu_cconly_reg_imm); %} +instruct compUL_iReg_imm13(flagsRegUL xcc, iRegL op1, immUL12 op2) %{ + match(Set xcc (CmpUL op1 op2)); + effect(DEF xcc, USE op1, USE op2); + + size(4); + format %{ "CMP $op1,$op2\t! unsigned long" %} + opcode(Assembler::subcc_op3, Assembler::arith_op); + ins_encode(form3_rs1_simm13_rd(op1, op2, R_G0)); + ins_pipe(ialu_cconly_reg_imm); +%} + // Compare Pointers instruct compP_iRegP(flagsRegP pcc, iRegP op1, iRegP op2 ) %{ match(Set pcc (CmpP op1 op2)); @@ -9256,6 +9297,44 @@ ins_pipe(cmp_br_reg_imm); %} +instruct cmpUL_reg_branch(cmpOpU cmp, iRegL op1, iRegL op2, label labl, flagsRegUL xcc) %{ + match(If cmp (CmpUL op1 op2)); + effect(USE labl, KILL xcc); + + size(12); + ins_cost(BRANCH_COST); + format %{ "CMP $op1,$op2\t! unsigned long\n\t" + "BP$cmp $labl" %} + ins_encode %{ + Label* L = $labl$$label; + Assembler::Predict predict_taken = + cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn; + __ cmp($op1$$Register, $op2$$Register); + __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::xcc, predict_taken, *L); + __ delayed()->nop(); + %} + ins_pipe(cmp_br_reg_reg); +%} + +instruct cmpUL_imm_branch(cmpOpU cmp, iRegL op1, immL5 op2, label labl, flagsRegUL xcc) %{ + match(If cmp (CmpUL op1 op2)); + effect(USE labl, KILL xcc); + + size(12); + ins_cost(BRANCH_COST); + format %{ "CMP $op1,$op2\t! unsigned long\n\t" + "BP$cmp $labl" %} + ins_encode %{ + Label* L = $labl$$label; + Assembler::Predict predict_taken = + cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn; + __ cmp($op1$$Register, $op2$$constant); + __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::xcc, predict_taken, *L); + __ delayed()->nop(); + %} + ins_pipe(cmp_br_reg_imm); +%} + instruct cmpL_reg_branch(cmpOp cmp, iRegL op1, iRegL op2, label labl, flagsRegL xcc) %{ match(If cmp (CmpL op1 op2)); effect(USE labl, KILL xcc); @@ -9484,6 +9563,42 @@ ins_pipe(cbcond_reg_imm); %} +instruct cmpUL_reg_branch_short(cmpOpU cmp, iRegL op1, iRegL op2, label labl, flagsRegUL xcc) %{ + match(If cmp (CmpUL op1 op2)); + predicate(UseCBCond); + effect(USE labl, KILL xcc); + + size(4); + ins_cost(BRANCH_COST); + format %{ "CXB$cmp $op1,$op2,$labl\t! unsigned long" %} + ins_encode %{ + Label* L = $labl$$label; + assert(__ use_cbcond(*L), "back to back cbcond"); + __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::xcc, $op1$$Register, $op2$$Register, *L); + %} + ins_short_branch(1); + ins_avoid_back_to_back(AVOID_BEFORE_AND_AFTER); + ins_pipe(cbcond_reg_reg); +%} + +instruct cmpUL_imm_branch_short(cmpOpU cmp, iRegL op1, immL5 op2, label labl, flagsRegUL xcc) %{ + match(If cmp (CmpUL op1 op2)); + predicate(UseCBCond); + effect(USE labl, KILL xcc); + + size(4); + ins_cost(BRANCH_COST); + format %{ "CXB$cmp $op1,$op2,$labl\t! unsigned long" %} + ins_encode %{ + Label* L = $labl$$label; + assert(__ use_cbcond(*L), "back to back cbcond"); + __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::xcc, $op1$$Register, $op2$$constant, *L); + %} + ins_short_branch(1); + ins_avoid_back_to_back(AVOID_BEFORE_AND_AFTER); + ins_pipe(cbcond_reg_imm); +%} + instruct cmpL_reg_branch_short(cmpOp cmp, iRegL op1, iRegL op2, label labl, flagsRegL xcc) %{ match(If cmp (CmpL op1 op2)); predicate(UseCBCond); @@ -9722,6 +9837,25 @@ ins_pipe(br_cc); %} +instruct branchConU_long(cmpOpU cmp, flagsRegUL xcc, label labl) %{ + match(If cmp xcc); + effect(USE labl); + + size(8); + ins_cost(BRANCH_COST); + format %{ "BP$cmp $xcc,$labl" %} + ins_encode %{ + Label* L = $labl$$label; + Assembler::Predict predict_taken = + cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn; + + __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::xcc, predict_taken, *L); + __ delayed()->nop(); + %} + ins_avoid_back_to_back(AVOID_BEFORE); + ins_pipe(br_cc); +%} + // Manifest a CmpL3 result in an integer register. Very painful. // This is the test to avoid. instruct cmpL3_reg_reg(iRegI dst, iRegL src1, iRegL src2, flagsReg ccr ) %{
--- a/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp Thu Aug 24 16:33:25 2017 +0200 @@ -47,7 +47,6 @@ define_pd_global(intx, FreqInlineSize, 325); define_pd_global(intx, MinJumpTableSize, 10); define_pd_global(intx, LoopPercentProfileLimit, 30); -define_pd_global(intx, PostLoopMultiversioning, true); #ifdef AMD64 define_pd_global(intx, INTPRESSURE, 13); define_pd_global(intx, FLOATPRESSURE, 14);
--- a/hotspot/src/cpu/x86/vm/globals_x86.hpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/x86/vm/globals_x86.hpp Thu Aug 24 16:33:25 2017 +0200 @@ -116,7 +116,7 @@ product(bool, UseStoreImmI16, true, \ "Use store immediate 16-bits value instruction on x86") \ \ - product(intx, UseAVX, 99, \ + product(intx, UseAVX, 2, \ "Highest supported AVX instructions set on x86/x64") \ range(0, 99) \ \
--- a/hotspot/src/cpu/x86/vm/x86_32.ad Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/x86/vm/x86_32.ad Thu Aug 24 16:33:25 2017 +0200 @@ -4030,6 +4030,26 @@ interface(REG_INTER); %} +// Condition Code Register used by unsigned long compare +operand flagsReg_ulong_LTGE() %{ + constraint(ALLOC_IN_RC(int_flags)); + match(RegFlags); + format %{ "FLAGS_U_LTGE" %} + interface(REG_INTER); +%} +operand flagsReg_ulong_EQNE() %{ + constraint(ALLOC_IN_RC(int_flags)); + match(RegFlags); + format %{ "FLAGS_U_EQNE" %} + interface(REG_INTER); +%} +operand flagsReg_ulong_LEGT() %{ + constraint(ALLOC_IN_RC(int_flags)); + match(RegFlags); + format %{ "FLAGS_U_LEGT" %} + interface(REG_INTER); +%} + // Float register operands operand regDPR() %{ predicate( UseSSE < 2 ); @@ -4588,7 +4608,7 @@ %} %} -// Comparision Code used in long compares +// Comparison Code used in long compares operand cmpOp_commute() %{ match(Bool); @@ -4605,6 +4625,23 @@ %} %} +// Comparison Code used in unsigned long compares +operand cmpOpU_commute() %{ + match(Bool); + + format %{ "" %} + interface(COND_INTER) %{ + equal(0x4, "e"); + not_equal(0x5, "ne"); + less(0x7, "nbe"); + greater_equal(0x6, "be"); + less_equal(0x3, "nb"); + greater(0x2, "b"); + overflow(0x0, "o"); + no_overflow(0x1, "no"); + %} +%} + //----------OPERAND CLASSES---------------------------------------------------- // Operand Classes are groups of operands that are used as to simplify // instruction definitions by not requiring the AD writer to specify separate @@ -12639,6 +12676,44 @@ %} %} +//====== +// Manifest a CmpUL result in the normal flags. Only good for LT or GE +// compares. Can be used for LE or GT compares by reversing arguments. +// NOT GOOD FOR EQ/NE tests. +instruct cmpUL_zero_flags_LTGE(flagsReg_ulong_LTGE flags, eRegL src, immL0 zero) %{ + match(Set flags (CmpUL src zero)); + ins_cost(100); + format %{ "TEST $src.hi,$src.hi" %} + opcode(0x85); + ins_encode(OpcP, RegReg_Hi2(src, src)); + ins_pipe(ialu_cr_reg_reg); +%} + +// Manifest a CmpUL result in the normal flags. Only good for LT or GE +// compares. Can be used for LE or GT compares by reversing arguments. +// NOT GOOD FOR EQ/NE tests. +instruct cmpUL_reg_flags_LTGE(flagsReg_ulong_LTGE flags, eRegL src1, eRegL src2, rRegI tmp) %{ + match(Set flags (CmpUL src1 src2)); + effect(TEMP tmp); + ins_cost(300); + format %{ "CMP $src1.lo,$src2.lo\t! Unsigned long compare; set flags for low bits\n\t" + "MOV $tmp,$src1.hi\n\t" + "SBB $tmp,$src2.hi\t! Compute flags for unsigned long compare" %} + ins_encode(long_cmp_flags2(src1, src2, tmp)); + ins_pipe(ialu_cr_reg_reg); +%} + +// Unsigned long compares reg < zero/req OR reg >= zero/req. +// Just a wrapper for a normal branch, plus the predicate test. +instruct cmpUL_LTGE(cmpOpU cmp, flagsReg_ulong_LTGE flags, label labl) %{ + match(If cmp flags); + effect(USE labl); + predicate(_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::lt || _kids[0]->_leaf->as_Bool()->_test._test == BoolTest::ge); + expand %{ + jmpCon(cmp, flags, labl); // JLT or JGE... + %} +%} + // Compare 2 longs and CMOVE longs. instruct cmovLL_reg_LTGE(cmpOp cmp, flagsReg_long_LTGE flags, eRegL dst, eRegL src) %{ match(Set dst (CMoveL (Binary cmp flags) (Binary dst src))); @@ -12767,6 +12842,41 @@ %} %} +//====== +// Manifest a CmpUL result in the normal flags. Only good for EQ/NE compares. +instruct cmpUL_zero_flags_EQNE(flagsReg_ulong_EQNE flags, eRegL src, immL0 zero, rRegI tmp) %{ + match(Set flags (CmpUL src zero)); + effect(TEMP tmp); + ins_cost(200); + format %{ "MOV $tmp,$src.lo\n\t" + "OR $tmp,$src.hi\t! Unsigned long is EQ/NE 0?" %} + ins_encode(long_cmp_flags0(src, tmp)); + ins_pipe(ialu_reg_reg_long); +%} + +// Manifest a CmpUL result in the normal flags. Only good for EQ/NE compares. +instruct cmpUL_reg_flags_EQNE(flagsReg_ulong_EQNE flags, eRegL src1, eRegL src2) %{ + match(Set flags (CmpUL src1 src2)); + ins_cost(200+300); + format %{ "CMP $src1.lo,$src2.lo\t! Unsigned long compare; set flags for low bits\n\t" + "JNE,s skip\n\t" + "CMP $src1.hi,$src2.hi\n\t" + "skip:\t" %} + ins_encode(long_cmp_flags1(src1, src2)); + ins_pipe(ialu_cr_reg_reg); +%} + +// Unsigned long compare reg == zero/reg OR reg != zero/reg +// Just a wrapper for a normal branch, plus the predicate test. +instruct cmpUL_EQNE(cmpOpU cmp, flagsReg_ulong_EQNE flags, label labl) %{ + match(If cmp flags); + effect(USE labl); + predicate(_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::eq || _kids[0]->_leaf->as_Bool()->_test._test == BoolTest::ne); + expand %{ + jmpCon(cmp, flags, labl); // JEQ or JNE... + %} +%} + // Compare 2 longs and CMOVE longs. instruct cmovLL_reg_EQNE(cmpOp cmp, flagsReg_long_EQNE flags, eRegL dst, eRegL src) %{ match(Set dst (CMoveL (Binary cmp flags) (Binary dst src))); @@ -12900,6 +13010,46 @@ %} %} +//====== +// Manifest a CmpUL result in the normal flags. Only good for LE or GT compares. +// Same as cmpUL_reg_flags_LEGT except must negate src +instruct cmpUL_zero_flags_LEGT(flagsReg_ulong_LEGT flags, eRegL src, immL0 zero, rRegI tmp) %{ + match(Set flags (CmpUL src zero)); + effect(TEMP tmp); + ins_cost(300); + format %{ "XOR $tmp,$tmp\t# Unsigned long compare for -$src < 0, use commuted test\n\t" + "CMP $tmp,$src.lo\n\t" + "SBB $tmp,$src.hi\n\t" %} + ins_encode(long_cmp_flags3(src, tmp)); + ins_pipe(ialu_reg_reg_long); +%} + +// Manifest a CmpUL result in the normal flags. Only good for LE or GT compares. +// Same as cmpUL_reg_flags_LTGE except operands swapped. Swapping operands +// requires a commuted test to get the same result. +instruct cmpUL_reg_flags_LEGT(flagsReg_ulong_LEGT flags, eRegL src1, eRegL src2, rRegI tmp) %{ + match(Set flags (CmpUL src1 src2)); + effect(TEMP tmp); + ins_cost(300); + format %{ "CMP $src2.lo,$src1.lo\t! Unsigned long compare, swapped operands, use with commuted test\n\t" + "MOV $tmp,$src2.hi\n\t" + "SBB $tmp,$src1.hi\t! Compute flags for unsigned long compare" %} + ins_encode(long_cmp_flags2( src2, src1, tmp)); + ins_pipe(ialu_cr_reg_reg); +%} + +// Unsigned long compares reg < zero/req OR reg >= zero/req. +// Just a wrapper for a normal branch, plus the predicate test +instruct cmpUL_LEGT(cmpOpU_commute cmp, flagsReg_ulong_LEGT flags, label labl) %{ + match(If cmp flags); + effect(USE labl); + predicate(_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::gt || _kids[0]->_leaf->as_Bool()->_test._test == BoolTest::le); + ins_cost(300); + expand %{ + jmpCon(cmp, flags, labl); // JGT or JLE... + %} +%} + // Compare 2 longs and CMOVE longs. instruct cmovLL_reg_LEGT(cmpOp_commute cmp, flagsReg_long_LEGT flags, eRegL dst, eRegL src) %{ match(Set dst (CMoveL (Binary cmp flags) (Binary dst src)));
--- a/hotspot/src/cpu/x86/vm/x86_64.ad Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/cpu/x86/vm/x86_64.ad Thu Aug 24 16:33:25 2017 +0200 @@ -11518,6 +11518,48 @@ ins_pipe(pipe_slow); %} +// Unsigned long compare Instructions; really, same as signed long except they +// produce an rFlagsRegU instead of rFlagsReg. +instruct compUL_rReg(rFlagsRegU cr, rRegL op1, rRegL op2) +%{ + match(Set cr (CmpUL op1 op2)); + + format %{ "cmpq $op1, $op2\t# unsigned" %} + opcode(0x3B); /* Opcode 3B /r */ + ins_encode(REX_reg_reg_wide(op1, op2), OpcP, reg_reg(op1, op2)); + ins_pipe(ialu_cr_reg_reg); +%} + +instruct compUL_rReg_imm(rFlagsRegU cr, rRegL op1, immL32 op2) +%{ + match(Set cr (CmpUL op1 op2)); + + format %{ "cmpq $op1, $op2\t# unsigned" %} + opcode(0x81, 0x07); /* Opcode 81 /7 */ + ins_encode(OpcSErm_wide(op1, op2), Con8or32(op2)); + ins_pipe(ialu_cr_reg_imm); +%} + +instruct compUL_rReg_mem(rFlagsRegU cr, rRegL op1, memory op2) +%{ + match(Set cr (CmpUL op1 (LoadL op2))); + + format %{ "cmpq $op1, $op2\t# unsigned" %} + opcode(0x3B); /* Opcode 3B /r */ + ins_encode(REX_reg_mem_wide(op1, op2), OpcP, reg_mem(op1, op2)); + ins_pipe(ialu_cr_reg_mem); +%} + +instruct testUL_reg(rFlagsRegU cr, rRegL src, immL0 zero) +%{ + match(Set cr (CmpUL src zero)); + + format %{ "testq $src, $src\t# unsigned" %} + opcode(0x85); + ins_encode(REX_reg_reg_wide(src, src), OpcP, reg_reg(src, src)); + ins_pipe(ialu_cr_reg_imm); +%} + //----------Max and Min-------------------------------------------------------- // Min Instructions
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/JVMCIVersionCheck.java Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/JVMCIVersionCheck.java Thu Aug 24 16:33:25 2017 +0200 @@ -23,6 +23,7 @@ package org.graalvm.compiler.hotspot; import java.util.Formatter; +import java.util.Objects; /** * Mechanism for checking that the current Java runtime environment supports the minimum JVMCI API @@ -37,10 +38,11 @@ class JVMCIVersionCheck { private static final int JVMCI8_MIN_MAJOR_VERSION = 0; - private static final int JVMCI8_MIN_MINOR_VERSION = 23; + private static final int JVMCI8_MIN_MINOR_VERSION = 26; - // Will be updated once an ea build with the required JVMCI API is available. - private static final int JVMCI9_MIN_EA_BUILD = 143; + // MAX_VALUE indicates that no current EA version is compatible with Graal. + // Note: Keep README.md in sync with the EA version support checked here. + private static final int JVMCI9_MIN_EA_BUILD = 176; private static void failVersionCheck(boolean exit, String reason, Object... args) { Formatter errorMessage = new Formatter().format(reason, args); @@ -77,13 +79,27 @@ start += "-jvmci-".length(); int end = vmVersion.indexOf('.', start); if (end > 0) { - int major = Integer.parseInt(vmVersion.substring(start, end)); + int major; + try { + major = Integer.parseInt(vmVersion.substring(start, end)); + } catch (NumberFormatException e) { + failVersionCheck(exitOnFailure, "The VM does not support the minimum JVMCI API version required by Graal.%n" + + "Cannot read JVMCI major version from java.vm.version property: %s.%n", vmVersion); + return; + } start = end + 1; end = start; while (end < vmVersion.length() && Character.isDigit(vmVersion.charAt(end))) { end++; } - int minor = Integer.parseInt(vmVersion.substring(start, end)); + int minor; + try { + minor = Integer.parseInt(vmVersion.substring(start, end)); + } catch (NumberFormatException e) { + failVersionCheck(exitOnFailure, "The VM does not support the minimum JVMCI API version required by Graal.%n" + + "Cannot read JVMCI minor version from java.vm.version property: %s.%n", vmVersion); + return; + } if (major >= JVMCI8_MIN_MAJOR_VERSION && minor >= JVMCI8_MIN_MINOR_VERSION) { return; } @@ -96,7 +112,7 @@ "Cannot read JVMCI version from java.vm.version property: %s.%n", vmVersion); } else { if (vmVersion.contains("SNAPSHOT")) { - // The snapshot of http://hg.openjdk.java.net/jdk9/hs tip is expected to work + // The snapshot of http://hg.openjdk.java.net/jdk9/dev tip is expected to work return; } if (vmVersion.contains("internal")) { @@ -104,23 +120,36 @@ return; } // http://openjdk.java.net/jeps/223 - // Only support EA builds until GA is available - if (vmVersion.startsWith("9-ea+")) { - int start = "9-ea+".length(); + if (vmVersion.startsWith("9+")) { + int start = "9+".length(); int end = start; end = start; while (end < vmVersion.length() && Character.isDigit(vmVersion.charAt(end))) { end++; } - int build = Integer.parseInt(vmVersion.substring(start, end)); + int build; + try { + build = Integer.parseInt(vmVersion.substring(start, end)); + } catch (NumberFormatException e) { + failVersionCheck(exitOnFailure, "The VM does not support the minimum JVMCI API version required by Graal.%n" + + "Cannot read JDK9 EA build number from java.vm.version property: %s.%n", vmVersion); + return; + } if (build >= JVMCI9_MIN_EA_BUILD) { return; } - failVersionCheck(exitOnFailure, "The VM is an insufficiently recent EA JDK9 build for Graal: %d < %d.%n", build, JVMCI9_MIN_EA_BUILD); + // Using Object.equals suppresses Eclipse's "Dead code" warning. + // Unfortunately @SuppressWarnings("unused") can only be applied at method level. + if (Objects.equals(JVMCI9_MIN_EA_BUILD, Integer.MAX_VALUE)) { + failVersionCheck(exitOnFailure, "This version of Graal is not compatible with any JDK 9 Early Access build.%n"); + } else { + failVersionCheck(exitOnFailure, "The VM is an insufficiently recent EA JDK9 build for Graal: %d < %d.%n", build, JVMCI9_MIN_EA_BUILD); + } return; + } else { + // Graal will be compatible with all JDK versions as of 9 GA + // until a JVMCI API change is made in a 9u or later release. } - failVersionCheck(exitOnFailure, "The VM does not support the minimum JVMCI API version required by Graal.%n" + - "Cannot read JDK9 EA build number from java.vm.version property: %s.%n", vmVersion); } }
--- a/hotspot/src/share/vm/adlc/archDesc.cpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/share/vm/adlc/archDesc.cpp Thu Aug 24 16:33:25 2017 +0200 @@ -1166,6 +1166,7 @@ || strcmp(idealName,"CmpP") == 0 || strcmp(idealName,"CmpN") == 0 || strcmp(idealName,"CmpL") == 0 + || strcmp(idealName,"CmpUL") == 0 || strcmp(idealName,"CmpD") == 0 || strcmp(idealName,"CmpF") == 0 || strcmp(idealName,"FastLock") == 0
--- a/hotspot/src/share/vm/opto/c2_globals.hpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/share/vm/opto/c2_globals.hpp Thu Aug 24 16:33:25 2017 +0200 @@ -181,7 +181,7 @@ "Map number of unrolls for main loop via " \ "Superword Level Parallelism analysis") \ \ - diagnostic_pd(bool, PostLoopMultiversioning, \ + experimental(bool, PostLoopMultiversioning, false, \ "Multi versioned post loops to eliminate range checks") \ \ notproduct(bool, TraceSuperWordLoopUnrollAnalysis, false, \
--- a/hotspot/src/share/vm/opto/classes.hpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/share/vm/opto/classes.hpp Thu Aug 24 16:33:25 2017 +0200 @@ -81,6 +81,7 @@ macro(CmpLTMask) macro(CmpP) macro(CmpU) +macro(CmpUL) macro(CompareAndSwapB) macro(CompareAndSwapS) macro(CompareAndSwapI)
--- a/hotspot/src/share/vm/opto/loopPredicate.cpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/share/vm/opto/loopPredicate.cpp Thu Aug 24 16:33:25 2017 +0200 @@ -29,6 +29,7 @@ #include "opto/connode.hpp" #include "opto/convertnode.hpp" #include "opto/loopnode.hpp" +#include "opto/matcher.hpp" #include "opto/mulnode.hpp" #include "opto/opaquenode.hpp" #include "opto/rootnode.hpp" @@ -629,45 +630,138 @@ // max(scale*i + offset) = scale*init + offset BoolNode* PhaseIdealLoop::rc_predicate(IdealLoopTree *loop, Node* ctrl, int scale, Node* offset, - Node* init, Node* limit, Node* stride, - Node* range, bool upper) { + Node* init, Node* limit, jint stride, + Node* range, bool upper, bool &overflow) { + jint con_limit = limit->is_Con() ? limit->get_int() : 0; + jint con_init = init->is_Con() ? init->get_int() : 0; + jint con_offset = offset->is_Con() ? offset->get_int() : 0; + stringStream* predString = NULL; if (TraceLoopPredicate) { predString = new stringStream(); predString->print("rc_predicate "); } - Node* max_idx_expr = init; - int stride_con = stride->get_int(); - if ((stride_con > 0) == (scale > 0) == upper) { - // Limit is not exact. - // Calculate exact limit here. - // Note, counted loop's test is '<' or '>'. - limit = exact_limit(loop); - max_idx_expr = new SubINode(limit, stride); + overflow = false; + Node* max_idx_expr = NULL; + const TypeInt* idx_type = TypeInt::INT; + if ((stride > 0) == (scale > 0) == upper) { + if (TraceLoopPredicate) { + predString->print(limit->is_Con() ? "(%d " : "(limit ", con_limit); + predString->print("- %d) ", stride); + } + // Check if (limit - stride) may overflow + const TypeInt* limit_type = _igvn.type(limit)->isa_int(); + jint limit_lo = limit_type->_lo; + jint limit_hi = limit_type->_hi; + if ((stride > 0 && (java_subtract(limit_lo, stride) < limit_lo)) || + (stride < 0 && (java_subtract(limit_hi, stride) > limit_hi))) { + // No overflow possible + ConINode* con_stride = _igvn.intcon(stride); + set_ctrl(con_stride, C->root()); + max_idx_expr = new SubINode(limit, con_stride); + idx_type = TypeInt::make(limit_lo - stride, limit_hi - stride, limit_type->_widen); + } else { + // May overflow + overflow = true; + limit = new ConvI2LNode(limit); + register_new_node(limit, ctrl); + ConLNode* con_stride = _igvn.longcon(stride); + set_ctrl(con_stride, C->root()); + max_idx_expr = new SubLNode(limit, con_stride); + } register_new_node(max_idx_expr, ctrl); - if (TraceLoopPredicate) predString->print("(limit - stride) "); } else { - if (TraceLoopPredicate) predString->print("init "); + if (TraceLoopPredicate) { + predString->print(init->is_Con() ? "%d " : "init ", con_init); + } + idx_type = _igvn.type(init)->isa_int(); + max_idx_expr = init; } if (scale != 1) { ConNode* con_scale = _igvn.intcon(scale); set_ctrl(con_scale, C->root()); - max_idx_expr = new MulINode(max_idx_expr, con_scale); + if (TraceLoopPredicate) { + predString->print("* %d ", scale); + } + // Check if (scale * max_idx_expr) may overflow + const TypeInt* scale_type = TypeInt::make(scale); + MulINode* mul = new MulINode(max_idx_expr, con_scale); + idx_type = (TypeInt*)mul->mul_ring(idx_type, scale_type); + if (overflow || TypeInt::INT->higher_equal(idx_type)) { + // May overflow + mul->destruct(); + if (!overflow) { + max_idx_expr = new ConvI2LNode(max_idx_expr); + register_new_node(max_idx_expr, ctrl); + } + overflow = true; + con_scale = _igvn.longcon(scale); + set_ctrl(con_scale, C->root()); + max_idx_expr = new MulLNode(max_idx_expr, con_scale); + } else { + // No overflow possible + max_idx_expr = mul; + } register_new_node(max_idx_expr, ctrl); - if (TraceLoopPredicate) predString->print("* %d ", scale); } - if (offset && (!offset->is_Con() || offset->get_int() != 0)){ - max_idx_expr = new AddINode(max_idx_expr, offset); + if (offset && (!offset->is_Con() || con_offset != 0)){ + if (TraceLoopPredicate) { + predString->print(offset->is_Con() ? "+ %d " : "+ offset", con_offset); + } + // Check if (max_idx_expr + offset) may overflow + const TypeInt* offset_type = _igvn.type(offset)->isa_int(); + jint lo = java_add(idx_type->_lo, offset_type->_lo); + jint hi = java_add(idx_type->_hi, offset_type->_hi); + if (overflow || (lo > hi) || + ((idx_type->_lo & offset_type->_lo) < 0 && lo >= 0) || + ((~(idx_type->_hi | offset_type->_hi)) < 0 && hi < 0)) { + // May overflow + if (!overflow) { + max_idx_expr = new ConvI2LNode(max_idx_expr); + register_new_node(max_idx_expr, ctrl); + } + overflow = true; + offset = new ConvI2LNode(offset); + register_new_node(offset, ctrl); + max_idx_expr = new AddLNode(max_idx_expr, offset); + } else { + // No overflow possible + max_idx_expr = new AddINode(max_idx_expr, offset); + } register_new_node(max_idx_expr, ctrl); - if (TraceLoopPredicate) - if (offset->is_Con()) predString->print("+ %d ", offset->get_int()); - else predString->print("+ offset "); } - CmpUNode* cmp = new CmpUNode(max_idx_expr, range); + CmpNode* cmp = NULL; + if (overflow) { + // Integer expressions may overflow, do long comparison + range = new ConvI2LNode(range); + register_new_node(range, ctrl); + if (!Matcher::has_match_rule(Op_CmpUL)) { + // We don't support unsigned long comparisons. Set 'max_idx_expr' + // to max_julong if < 0 to make the signed comparison fail. + ConINode* sign_pos = _igvn.intcon(BitsPerLong - 1); + set_ctrl(sign_pos, C->root()); + Node* sign_bit_mask = new RShiftLNode(max_idx_expr, sign_pos); + register_new_node(sign_bit_mask, ctrl); + // OR with sign bit to set all bits to 1 if negative (otherwise no change) + max_idx_expr = new OrLNode(max_idx_expr, sign_bit_mask); + register_new_node(max_idx_expr, ctrl); + // AND with 0x7ff... to unset the sign bit + ConLNode* remove_sign_mask = _igvn.longcon(max_jlong); + set_ctrl(remove_sign_mask, C->root()); + max_idx_expr = new AndLNode(max_idx_expr, remove_sign_mask); + register_new_node(max_idx_expr, ctrl); + + cmp = new CmpLNode(max_idx_expr, range); + } else { + cmp = new CmpULNode(max_idx_expr, range); + } + } else { + cmp = new CmpUNode(max_idx_expr, range); + } register_new_node(cmp, ctrl); BoolNode* bol = new BoolNode(cmp, BoolTest::lt); register_new_node(bol, ctrl); @@ -814,28 +908,30 @@ assert(ok, "must be index expression"); Node* init = cl->init_trip(); - Node* limit = cl->limit(); - Node* stride = cl->stride(); + // Limit is not exact. + // Calculate exact limit here. + // Note, counted loop's test is '<' or '>'. + Node* limit = exact_limit(loop); + int stride = cl->stride()->get_int(); // Build if's for the upper and lower bound tests. The // lower_bound test will dominate the upper bound test and all // cloned or created nodes will use the lower bound test as // their declared control. - ProjNode* lower_bound_proj = create_new_if_for_predicate(predicate_proj, NULL, Deoptimization::Reason_predicate, iff->Opcode()); - ProjNode* upper_bound_proj = create_new_if_for_predicate(predicate_proj, NULL, Deoptimization::Reason_predicate, iff->Opcode()); - assert(upper_bound_proj->in(0)->as_If()->in(0) == lower_bound_proj, "should dominate"); - Node *ctrl = lower_bound_proj->in(0)->as_If()->in(0); // Perform cloning to keep Invariance state correct since the // late schedule will place invariant things in the loop. + Node *ctrl = predicate_proj->in(0)->as_If()->in(0); rng = invar.clone(rng, ctrl); if (offset && offset != zero) { assert(invar.is_invariant(offset), "offset must be loop invariant"); offset = invar.clone(offset, ctrl); } + // If predicate expressions may overflow in the integer range, longs are used. + bool overflow = false; // Test the lower bound - BoolNode* lower_bound_bol = rc_predicate(loop, ctrl, scale, offset, init, limit, stride, rng, false); + BoolNode* lower_bound_bol = rc_predicate(loop, ctrl, scale, offset, init, limit, stride, rng, false, overflow); // Negate test if necessary bool negated = false; if (proj->_con != predicate_proj->_con) { @@ -843,19 +939,22 @@ register_new_node(lower_bound_bol, ctrl); negated = true; } + ProjNode* lower_bound_proj = create_new_if_for_predicate(predicate_proj, NULL, Deoptimization::Reason_predicate, overflow ? Op_If : iff->Opcode()); IfNode* lower_bound_iff = lower_bound_proj->in(0)->as_If(); _igvn.hash_delete(lower_bound_iff); lower_bound_iff->set_req(1, lower_bound_bol); if (TraceLoopPredicate) tty->print_cr("lower bound check if: %s %d ", negated ? " negated" : "", lower_bound_iff->_idx); // Test the upper bound - BoolNode* upper_bound_bol = rc_predicate(loop, lower_bound_proj, scale, offset, init, limit, stride, rng, true); + BoolNode* upper_bound_bol = rc_predicate(loop, lower_bound_proj, scale, offset, init, limit, stride, rng, true, overflow); negated = false; if (proj->_con != predicate_proj->_con) { upper_bound_bol = new BoolNode(upper_bound_bol->in(1), upper_bound_bol->_test.negate()); register_new_node(upper_bound_bol, ctrl); negated = true; } + ProjNode* upper_bound_proj = create_new_if_for_predicate(predicate_proj, NULL, Deoptimization::Reason_predicate, overflow ? Op_If : iff->Opcode()); + assert(upper_bound_proj->in(0)->as_If()->in(0) == lower_bound_proj, "should dominate"); IfNode* upper_bound_iff = upper_bound_proj->in(0)->as_If(); _igvn.hash_delete(upper_bound_iff); upper_bound_iff->set_req(1, upper_bound_bol);
--- a/hotspot/src/share/vm/opto/loopnode.hpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/share/vm/opto/loopnode.hpp Thu Aug 24 16:33:25 2017 +0200 @@ -983,8 +983,8 @@ // Construct a range check for a predicate if BoolNode* rc_predicate(IdealLoopTree *loop, Node* ctrl, int scale, Node* offset, - Node* init, Node* limit, Node* stride, - Node* range, bool upper); + Node* init, Node* limit, jint stride, + Node* range, bool upper, bool &overflow); // Implementation of the loop predication to promote checks outside the loop bool loop_predication_impl(IdealLoopTree *loop);
--- a/hotspot/src/share/vm/opto/output.cpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/share/vm/opto/output.cpp Thu Aug 24 16:33:25 2017 +0200 @@ -1982,6 +1982,7 @@ if( last->is_MachIf() && last->in(1) == n && ( op == Op_CmpI || op == Op_CmpU || + op == Op_CmpUL || op == Op_CmpP || op == Op_CmpF || op == Op_CmpD ||
--- a/hotspot/src/share/vm/opto/subnode.cpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/share/vm/opto/subnode.cpp Thu Aug 24 16:33:25 2017 +0200 @@ -738,6 +738,60 @@ return TypeInt::CC; // else use worst case results } + +// Simplify a CmpUL (compare 2 unsigned longs) node, based on local information. +// If both inputs are constants, compare them. +const Type* CmpULNode::sub(const Type* t1, const Type* t2) const { + assert(!t1->isa_ptr(), "obsolete usage of CmpUL"); + + // comparing two unsigned longs + const TypeLong* r0 = t1->is_long(); // Handy access + const TypeLong* r1 = t2->is_long(); + + // Current installed version + // Compare ranges for non-overlap + julong lo0 = r0->_lo; + julong hi0 = r0->_hi; + julong lo1 = r1->_lo; + julong hi1 = r1->_hi; + + // If either one has both negative and positive values, + // it therefore contains both 0 and -1, and since [0..-1] is the + // full unsigned range, the type must act as an unsigned bottom. + bool bot0 = ((jlong)(lo0 ^ hi0) < 0); + bool bot1 = ((jlong)(lo1 ^ hi1) < 0); + + if (bot0 || bot1) { + // All unsigned values are LE -1 and GE 0. + if (lo0 == 0 && hi0 == 0) { + return TypeInt::CC_LE; // 0 <= bot + } else if ((jlong)lo0 == -1 && (jlong)hi0 == -1) { + return TypeInt::CC_GE; // -1 >= bot + } else if (lo1 == 0 && hi1 == 0) { + return TypeInt::CC_GE; // bot >= 0 + } else if ((jlong)lo1 == -1 && (jlong)hi1 == -1) { + return TypeInt::CC_LE; // bot <= -1 + } + } else { + // We can use ranges of the form [lo..hi] if signs are the same. + assert(lo0 <= hi0 && lo1 <= hi1, "unsigned ranges are valid"); + // results are reversed, '-' > '+' for unsigned compare + if (hi0 < lo1) { + return TypeInt::CC_LT; // smaller + } else if (lo0 > hi1) { + return TypeInt::CC_GT; // greater + } else if (hi0 == lo1 && lo0 == hi1) { + return TypeInt::CC_EQ; // Equal results + } else if (lo0 >= hi1) { + return TypeInt::CC_GE; + } else if (hi0 <= lo1) { + return TypeInt::CC_LE; + } + } + + return TypeInt::CC; // else use worst case results +} + //============================================================================= //------------------------------sub-------------------------------------------- // Simplify an CmpP (compare 2 pointers) node, based on local information.
--- a/hotspot/src/share/vm/opto/subnode.hpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/share/vm/opto/subnode.hpp Thu Aug 24 16:33:25 2017 +0200 @@ -198,6 +198,15 @@ virtual const Type *sub( const Type *, const Type * ) const; }; +//------------------------------CmpULNode--------------------------------------- +// Compare 2 unsigned long values, returning condition codes (-1, 0 or 1). +class CmpULNode : public CmpNode { +public: + CmpULNode(Node* in1, Node* in2) : CmpNode(in1, in2) { } + virtual int Opcode() const; + virtual const Type* sub(const Type*, const Type*) const; +}; + //------------------------------CmpL3Node-------------------------------------- // Compare 2 long values, returning integer value (-1, 0 or 1). class CmpL3Node : public CmpLNode {
--- a/hotspot/src/share/vm/runtime/vmStructs.cpp Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/src/share/vm/runtime/vmStructs.cpp Thu Aug 24 16:33:25 2017 +0200 @@ -2013,6 +2013,7 @@ declare_c2_type(CmpPNode, CmpNode) \ declare_c2_type(CmpNNode, CmpNode) \ declare_c2_type(CmpLNode, CmpNode) \ + declare_c2_type(CmpULNode, CmpNode) \ declare_c2_type(CmpL3Node, CmpLNode) \ declare_c2_type(CmpFNode, CmpNode) \ declare_c2_type(CmpF3Node, CmpFNode) \
--- a/hotspot/test/compiler/rangechecks/TestRangeCheckEliminationDisabled.java Fri Jul 28 02:34:37 2017 +0000 +++ b/hotspot/test/compiler/rangechecks/TestRangeCheckEliminationDisabled.java Thu Aug 24 16:33:25 2017 +0200 @@ -26,7 +26,7 @@ * @bug 8154763 * @summary Tests PostLoopMultiversioning with RangeCheckElimination disabled. * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions - * -XX:+PostLoopMultiversioning -XX:-RangeCheckElimination + * -XX:+UnlockExperimentalVMOptions -XX:+PostLoopMultiversioning -XX:-RangeCheckElimination * compiler.rangechecks.TestRangeCheckEliminationDisabled */
--- a/jdk/.hgtags Fri Jul 28 02:34:37 2017 +0000 +++ b/jdk/.hgtags Thu Aug 24 16:33:25 2017 +0200 @@ -437,3 +437,6 @@ 80acf577b7d0b886fb555c9916552844f6cc72af jdk-9+177 e069834e2c518a7bc2ffadc8c7e3cd7ec69fa8a0 jdk-10+15 3281b964ab104002623d744e8b77a12269b70acd jdk-10+16 +443025bee731eb2225371b92c1c74b519b7baf33 jdk-9+178 +06df1ce4b9b887d05ce6a13f4def3547e434dd1a jdk-9+179 +d93f2fd542b7d7855c2cd49ae15ebcc3d441a83b jdk-10+17
--- a/jdk/make/Tools.gmk Fri Jul 28 02:34:37 2017 +0000 +++ b/jdk/make/Tools.gmk Thu Aug 24 16:33:25 2017 +0200 @@ -116,6 +116,9 @@ TOOL_CLDRCONVERTER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \ build.tools.cldrconverter.CLDRConverter +TOOL_GENERATELSREQUIVMAPS = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \ + build.tools.generatelsrequivmaps.EquivMapsGenerator + TOOL_GENMODULESXML = $(JAVA_SMALL) $(INTERIM_LANGTOOLS_BOOTCLASSPATH) \ -cp $(call PathList, $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes) \ build.tools.module.GenJdepsModulesXml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/make/data/lsrdata/language-subtag-registry.txt Thu Aug 24 16:33:25 2017 +0200 @@ -0,0 +1,47097 @@ +File-Date: 2016-02-10 +%% +Type: language +Subtag: aa +Description: Afar +Added: 2005-10-16 +%% +Type: language +Subtag: ab +Description: Abkhazian +Added: 2005-10-16 +Suppress-Script: Cyrl +%% +Type: language +Subtag: ae +Description: Avestan +Added: 2005-10-16 +%% +Type: language +Subtag: af +Description: Afrikaans +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: ak +Description: Akan +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: am +Description: Amharic +Added: 2005-10-16 +Suppress-Script: Ethi +%% +Type: language +Subtag: an +Description: Aragonese +Added: 2005-10-16 +%% +Type: language +Subtag: ar +Description: Arabic +Added: 2005-10-16 +Suppress-Script: Arab +Scope: macrolanguage +%% +Type: language +Subtag: as +Description: Assamese +Added: 2005-10-16 +Suppress-Script: Beng +%% +Type: language +Subtag: av +Description: Avaric +Added: 2005-10-16 +%% +Type: language +Subtag: ay +Description: Aymara +Added: 2005-10-16 +Suppress-Script: Latn +Scope: macrolanguage +%% +Type: language +Subtag: az +Description: Azerbaijani +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: ba +Description: Bashkir +Added: 2005-10-16 +%% +Type: language +Subtag: be +Description: Belarusian +Added: 2005-10-16 +Suppress-Script: Cyrl +%% +Type: language +Subtag: bg +Description: Bulgarian +Added: 2005-10-16 +Suppress-Script: Cyrl +%% +Type: language +Subtag: bh +Description: Bihari languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: bi +Description: Bislama +Added: 2005-10-16 +%% +Type: language +Subtag: bm +Description: Bambara +Added: 2005-10-16 +%% +Type: language +Subtag: bn +Description: Bengali +Added: 2005-10-16 +Suppress-Script: Beng +%% +Type: language +Subtag: bo +Description: Tibetan +Added: 2005-10-16 +%% +Type: language +Subtag: br +Description: Breton +Added: 2005-10-16 +%% +Type: language +Subtag: bs +Description: Bosnian +Added: 2005-10-16 +Suppress-Script: Latn +Macrolanguage: sh +%% +Type: language +Subtag: ca +Description: Catalan +Description: Valencian +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: ce +Description: Chechen +Added: 2005-10-16 +%% +Type: language +Subtag: ch +Description: Chamorro +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: co +Description: Corsican +Added: 2005-10-16 +%% +Type: language +Subtag: cr +Description: Cree +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: cs +Description: Czech +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: cu +Description: Church Slavic +Description: Church Slavonic +Description: Old Bulgarian +Description: Old Church Slavonic +Description: Old Slavonic +Added: 2005-10-16 +%% +Type: language +Subtag: cv +Description: Chuvash +Added: 2005-10-16 +%% +Type: language +Subtag: cy +Description: Welsh +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: da +Description: Danish +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: de +Description: German +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: dv +Description: Dhivehi +Description: Divehi +Description: Maldivian +Added: 2005-10-16 +Suppress-Script: Thaa +%% +Type: language +Subtag: dz +Description: Dzongkha +Added: 2005-10-16 +Suppress-Script: Tibt +%% +Type: language +Subtag: ee +Description: Ewe +Added: 2005-10-16 +%% +Type: language +Subtag: el +Description: Modern Greek (1453-) +Added: 2005-10-16 +Suppress-Script: Grek +%% +Type: language +Subtag: en +Description: English +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: eo +Description: Esperanto +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: es +Description: Spanish +Description: Castilian +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: et +Description: Estonian +Added: 2005-10-16 +Suppress-Script: Latn +Scope: macrolanguage +%% +Type: language +Subtag: eu +Description: Basque +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: fa +Description: Persian +Added: 2005-10-16 +Suppress-Script: Arab +Scope: macrolanguage +%% +Type: language +Subtag: ff +Description: Fulah +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: fi +Description: Finnish +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: fj +Description: Fijian +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: fo +Description: Faroese +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: fr +Description: French +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: fy +Description: Western Frisian +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: ga +Description: Irish +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: gd +Description: Scottish Gaelic +Description: Gaelic +Added: 2005-10-16 +%% +Type: language +Subtag: gl +Description: Galician +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: gn +Description: Guarani +Added: 2005-10-16 +Suppress-Script: Latn +Scope: macrolanguage +%% +Type: language +Subtag: gu +Description: Gujarati +Added: 2005-10-16 +Suppress-Script: Gujr +%% +Type: language +Subtag: gv +Description: Manx +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: ha +Description: Hausa +Added: 2005-10-16 +%% +Type: language +Subtag: he +Description: Hebrew +Added: 2005-10-16 +Suppress-Script: Hebr +%% +Type: language +Subtag: hi +Description: Hindi +Added: 2005-10-16 +Suppress-Script: Deva +%% +Type: language +Subtag: ho +Description: Hiri Motu +Added: 2005-10-16 +%% +Type: language +Subtag: hr +Description: Croatian +Added: 2005-10-16 +Suppress-Script: Latn +Macrolanguage: sh +%% +Type: language +Subtag: ht +Description: Haitian +Description: Haitian Creole +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: hu +Description: Hungarian +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: hy +Description: Armenian +Added: 2005-10-16 +Suppress-Script: Armn +%% +Type: language +Subtag: hz +Description: Herero +Added: 2005-10-16 +%% +Type: language +Subtag: ia +Description: Interlingua (International Auxiliary Language + Association) +Added: 2005-10-16 +%% +Type: language +Subtag: id +Description: Indonesian +Added: 2005-10-16 +Suppress-Script: Latn +Macrolanguage: ms +%% +Type: language +Subtag: ie +Description: Interlingue +Description: Occidental +Added: 2005-10-16 +%% +Type: language +Subtag: ig +Description: Igbo +Added: 2005-10-16 +%% +Type: language +Subtag: ii +Description: Sichuan Yi +Description: Nuosu +Added: 2005-10-16 +%% +Type: language +Subtag: ik +Description: Inupiaq +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: in +Description: Indonesian +Added: 2005-10-16 +Deprecated: 1989-01-01 +Preferred-Value: id +Suppress-Script: Latn +Macrolanguage: ms +%% +Type: language +Subtag: io +Description: Ido +Added: 2005-10-16 +%% +Type: language +Subtag: is +Description: Icelandic +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: it +Description: Italian +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: iu +Description: Inuktitut +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: iw +Description: Hebrew +Added: 2005-10-16 +Deprecated: 1989-01-01 +Preferred-Value: he +Suppress-Script: Hebr +%% +Type: language +Subtag: ja +Description: Japanese +Added: 2005-10-16 +Suppress-Script: Jpan +%% +Type: language +Subtag: ji +Description: Yiddish +Added: 2005-10-16 +Deprecated: 1989-01-01 +Preferred-Value: yi +%% +Type: language +Subtag: jv +Description: Javanese +Added: 2005-10-16 +%% +Type: language +Subtag: jw +Description: Javanese +Added: 2005-10-16 +Deprecated: 2001-08-13 +Preferred-Value: jv +Comments: published by error in Table 1 of ISO 639:1988 +%% +Type: language +Subtag: ka +Description: Georgian +Added: 2005-10-16 +Suppress-Script: Geor +%% +Type: language +Subtag: kg +Description: Kongo +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: ki +Description: Kikuyu +Description: Gikuyu +Added: 2005-10-16 +%% +Type: language +Subtag: kj +Description: Kuanyama +Description: Kwanyama +Added: 2005-10-16 +%% +Type: language +Subtag: kk +Description: Kazakh +Added: 2005-10-16 +Suppress-Script: Cyrl +%% +Type: language +Subtag: kl +Description: Kalaallisut +Description: Greenlandic +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: km +Description: Central Khmer +Added: 2005-10-16 +Suppress-Script: Khmr +%% +Type: language +Subtag: kn +Description: Kannada +Added: 2005-10-16 +Suppress-Script: Knda +%% +Type: language +Subtag: ko +Description: Korean +Added: 2005-10-16 +Suppress-Script: Kore +%% +Type: language +Subtag: kr +Description: Kanuri +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: ks +Description: Kashmiri +Added: 2005-10-16 +%% +Type: language +Subtag: ku +Description: Kurdish +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: kv +Description: Komi +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: kw +Description: Cornish +Added: 2005-10-16 +%% +Type: language +Subtag: ky +Description: Kirghiz +Description: Kyrgyz +Added: 2005-10-16 +%% +Type: language +Subtag: la +Description: Latin +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: lb +Description: Luxembourgish +Description: Letzeburgesch +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: lg +Description: Ganda +Added: 2005-10-16 +%% +Type: language +Subtag: li +Description: Limburgan +Description: Limburger +Description: Limburgish +Added: 2005-10-16 +%% +Type: language +Subtag: ln +Description: Lingala +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: lo +Description: Lao +Added: 2005-10-16 +Suppress-Script: Laoo +%% +Type: language +Subtag: lt +Description: Lithuanian +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: lu +Description: Luba-Katanga +Added: 2005-10-16 +%% +Type: language +Subtag: lv +Description: Latvian +Added: 2005-10-16 +Suppress-Script: Latn +Scope: macrolanguage +%% +Type: language +Subtag: mg +Description: Malagasy +Added: 2005-10-16 +Suppress-Script: Latn +Scope: macrolanguage +%% +Type: language +Subtag: mh +Description: Marshallese +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: mi +Description: Maori +Added: 2005-10-16 +%% +Type: language +Subtag: mk +Description: Macedonian +Added: 2005-10-16 +Suppress-Script: Cyrl +%% +Type: language +Subtag: ml +Description: Malayalam +Added: 2005-10-16 +Suppress-Script: Mlym +%% +Type: language +Subtag: mn +Description: Mongolian +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: mo +Description: Moldavian +Description: Moldovan +Added: 2005-10-16 +Deprecated: 2008-11-22 +Preferred-Value: ro +Suppress-Script: Latn +%% +Type: language +Subtag: mr +Description: Marathi +Added: 2005-10-16 +Suppress-Script: Deva +%% +Type: language +Subtag: ms +Description: Malay (macrolanguage) +Added: 2005-10-16 +Suppress-Script: Latn +Scope: macrolanguage +%% +Type: language +Subtag: mt +Description: Maltese +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: my +Description: Burmese +Added: 2005-10-16 +Suppress-Script: Mymr +%% +Type: language +Subtag: na +Description: Nauru +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: nb +Description: Norwegian Bokmål +Added: 2005-10-16 +Suppress-Script: Latn +Macrolanguage: no +%% +Type: language +Subtag: nd +Description: North Ndebele +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: ne +Description: Nepali (macrolanguage) +Added: 2005-10-16 +Suppress-Script: Deva +Scope: macrolanguage +%% +Type: language +Subtag: ng +Description: Ndonga +Added: 2005-10-16 +%% +Type: language +Subtag: nl +Description: Dutch +Description: Flemish +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: nn +Description: Norwegian Nynorsk +Added: 2005-10-16 +Suppress-Script: Latn +Macrolanguage: no +%% +Type: language +Subtag: no +Description: Norwegian +Added: 2005-10-16 +Suppress-Script: Latn +Scope: macrolanguage +%% +Type: language +Subtag: nr +Description: South Ndebele +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: nv +Description: Navajo +Description: Navaho +Added: 2005-10-16 +%% +Type: language +Subtag: ny +Description: Nyanja +Description: Chewa +Description: Chichewa +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: oc +Description: Occitan (post 1500) +Added: 2005-10-16 +%% +Type: language +Subtag: oj +Description: Ojibwa +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: om +Description: Oromo +Added: 2005-10-16 +Suppress-Script: Latn +Scope: macrolanguage +%% +Type: language +Subtag: or +Description: Oriya (macrolanguage) +Added: 2005-10-16 +Suppress-Script: Orya +Scope: macrolanguage +%% +Type: language +Subtag: os +Description: Ossetian +Description: Ossetic +Added: 2005-10-16 +%% +Type: language +Subtag: pa +Description: Panjabi +Description: Punjabi +Added: 2005-10-16 +Suppress-Script: Guru +%% +Type: language +Subtag: pi +Description: Pali +Added: 2005-10-16 +%% +Type: language +Subtag: pl +Description: Polish +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: ps +Description: Pushto +Description: Pashto +Added: 2005-10-16 +Suppress-Script: Arab +Scope: macrolanguage +%% +Type: language +Subtag: pt +Description: Portuguese +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: qu +Description: Quechua +Added: 2005-10-16 +Suppress-Script: Latn +Scope: macrolanguage +%% +Type: language +Subtag: rm +Description: Romansh +Suppress-Script: Latn +Added: 2005-10-16 +%% +Type: language +Subtag: rn +Description: Rundi +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: ro +Description: Romanian +Description: Moldavian +Description: Moldovan +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: ru +Description: Russian +Added: 2005-10-16 +Suppress-Script: Cyrl +%% +Type: language +Subtag: rw +Description: Kinyarwanda +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: sa +Description: Sanskrit +Added: 2005-10-16 +%% +Type: language +Subtag: sc +Description: Sardinian +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: sd +Description: Sindhi +Added: 2005-10-16 +%% +Type: language +Subtag: se +Description: Northern Sami +Added: 2005-10-16 +%% +Type: language +Subtag: sg +Description: Sango +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: sh +Description: Serbo-Croatian +Added: 2005-10-16 +Scope: macrolanguage +Comments: sr, hr, bs are preferred for most modern uses +%% +Type: language +Subtag: si +Description: Sinhala +Description: Sinhalese +Added: 2005-10-16 +Suppress-Script: Sinh +%% +Type: language +Subtag: sk +Description: Slovak +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: sl +Description: Slovenian +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: sm +Description: Samoan +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: sn +Description: Shona +Added: 2005-10-16 +%% +Type: language +Subtag: so +Description: Somali +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: sq +Description: Albanian +Added: 2005-10-16 +Suppress-Script: Latn +Scope: macrolanguage +%% +Type: language +Subtag: sr +Description: Serbian +Added: 2005-10-16 +Macrolanguage: sh +%% +Type: language +Subtag: ss +Description: Swati +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: st +Description: Southern Sotho +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: su +Description: Sundanese +Added: 2005-10-16 +%% +Type: language +Subtag: sv +Description: Swedish +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: sw +Description: Swahili (macrolanguage) +Added: 2005-10-16 +Suppress-Script: Latn +Scope: macrolanguage +%% +Type: language +Subtag: ta +Description: Tamil +Added: 2005-10-16 +Suppress-Script: Taml +%% +Type: language +Subtag: te +Description: Telugu +Added: 2005-10-16 +Suppress-Script: Telu +%% +Type: language +Subtag: tg +Description: Tajik +Added: 2005-10-16 +%% +Type: language +Subtag: th +Description: Thai +Added: 2005-10-16 +Suppress-Script: Thai +%% +Type: language +Subtag: ti +Description: Tigrinya +Added: 2005-10-16 +Suppress-Script: Ethi +%% +Type: language +Subtag: tk +Description: Turkmen +Added: 2005-10-16 +%% +Type: language +Subtag: tl +Description: Tagalog +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: tn +Description: Tswana +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: to +Description: Tonga (Tonga Islands) +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: tr +Description: Turkish +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: ts +Description: Tsonga +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: tt +Description: Tatar +Added: 2005-10-16 +%% +Type: language +Subtag: tw +Description: Twi +Added: 2005-10-16 +Macrolanguage: ak +%% +Type: language +Subtag: ty +Description: Tahitian +Added: 2005-10-16 +%% +Type: language +Subtag: ug +Description: Uighur +Description: Uyghur +Added: 2005-10-16 +%% +Type: language +Subtag: uk +Description: Ukrainian +Added: 2005-10-16 +Suppress-Script: Cyrl +%% +Type: language +Subtag: ur +Description: Urdu +Added: 2005-10-16 +Suppress-Script: Arab +%% +Type: language +Subtag: uz +Description: Uzbek +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: ve +Description: Venda +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: vi +Description: Vietnamese +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: vo +Description: Volapük +Added: 2005-10-16 +%% +Type: language +Subtag: wa +Description: Walloon +Added: 2005-10-16 +%% +Type: language +Subtag: wo +Description: Wolof +Added: 2005-10-16 +%% +Type: language +Subtag: xh +Description: Xhosa +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: yi +Description: Yiddish +Added: 2005-10-16 +Suppress-Script: Hebr +Scope: macrolanguage +%% +Type: language +Subtag: yo +Description: Yoruba +Added: 2005-10-16 +%% +Type: language +Subtag: za +Description: Zhuang +Description: Chuang +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: zh +Description: Chinese +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: zu +Description: Zulu +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: aaa +Description: Ghotuo +Added: 2009-07-29 +%% +Type: language +Subtag: aab +Description: Alumu-Tesu +Added: 2009-07-29 +%% +Type: language +Subtag: aac +Description: Ari +Added: 2009-07-29 +%% +Type: language +Subtag: aad +Description: Amal +Added: 2009-07-29 +%% +Type: language +Subtag: aae +Description: Arbëreshë Albanian +Added: 2009-07-29 +Macrolanguage: sq +%% +Type: language +Subtag: aaf +Description: Aranadan +Added: 2009-07-29 +%% +Type: language +Subtag: aag +Description: Ambrak +Added: 2009-07-29 +%% +Type: language +Subtag: aah +Description: Abu' Arapesh +Added: 2009-07-29 +%% +Type: language +Subtag: aai +Description: Arifama-Miniafia +Added: 2009-07-29 +%% +Type: language +Subtag: aak +Description: Ankave +Added: 2009-07-29 +%% +Type: language +Subtag: aal +Description: Afade +Added: 2009-07-29 +%% +Type: language +Subtag: aam +Description: Aramanik +Added: 2009-07-29 +Deprecated: 2015-02-12 +Preferred-Value: aas +%% +Type: language +Subtag: aan +Description: Anambé +Added: 2009-07-29 +%% +Type: language +Subtag: aao +Description: Algerian Saharan Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: aap +Description: Pará Arára +Added: 2009-07-29 +%% +Type: language +Subtag: aaq +Description: Eastern Abnaki +Added: 2009-07-29 +%% +Type: language +Subtag: aas +Description: Aasáx +Added: 2009-07-29 +%% +Type: language +Subtag: aat +Description: Arvanitika Albanian +Added: 2009-07-29 +Macrolanguage: sq +%% +Type: language +Subtag: aau +Description: Abau +Added: 2009-07-29 +%% +Type: language +Subtag: aav +Description: Austro-Asiatic languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: aaw +Description: Solong +Added: 2009-07-29 +%% +Type: language +Subtag: aax +Description: Mandobo Atas +Added: 2009-07-29 +%% +Type: language +Subtag: aaz +Description: Amarasi +Added: 2009-07-29 +%% +Type: language +Subtag: aba +Description: Abé +Added: 2009-07-29 +%% +Type: language +Subtag: abb +Description: Bankon +Added: 2009-07-29 +%% +Type: language +Subtag: abc +Description: Ambala Ayta +Added: 2009-07-29 +%% +Type: language +Subtag: abd +Description: Manide +Added: 2009-07-29 +%% +Type: language +Subtag: abe +Description: Western Abnaki +Added: 2009-07-29 +%% +Type: language +Subtag: abf +Description: Abai Sungai +Added: 2009-07-29 +%% +Type: language +Subtag: abg +Description: Abaga +Added: 2009-07-29 +%% +Type: language +Subtag: abh +Description: Tajiki Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: abi +Description: Abidji +Added: 2009-07-29 +%% +Type: language +Subtag: abj +Description: Aka-Bea +Added: 2009-07-29 +%% +Type: language +Subtag: abl +Description: Lampung Nyo +Added: 2009-07-29 +%% +Type: language +Subtag: abm +Description: Abanyom +Added: 2009-07-29 +%% +Type: language +Subtag: abn +Description: Abua +Added: 2009-07-29 +%% +Type: language +Subtag: abo +Description: Abon +Added: 2009-07-29 +%% +Type: language +Subtag: abp +Description: Abellen Ayta +Added: 2009-07-29 +%% +Type: language +Subtag: abq +Description: Abaza +Added: 2009-07-29 +%% +Type: language +Subtag: abr +Description: Abron +Added: 2009-07-29 +%% +Type: language +Subtag: abs +Description: Ambonese Malay +Added: 2009-07-29 +%% +Type: language +Subtag: abt +Description: Ambulas +Added: 2009-07-29 +%% +Type: language +Subtag: abu +Description: Abure +Added: 2009-07-29 +%% +Type: language +Subtag: abv +Description: Baharna Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: abw +Description: Pal +Added: 2009-07-29 +%% +Type: language +Subtag: abx +Description: Inabaknon +Added: 2009-07-29 +%% +Type: language +Subtag: aby +Description: Aneme Wake +Added: 2009-07-29 +%% +Type: language +Subtag: abz +Description: Abui +Added: 2009-07-29 +%% +Type: language +Subtag: aca +Description: Achagua +Added: 2009-07-29 +%% +Type: language +Subtag: acb +Description: Áncá +Added: 2009-07-29 +%% +Type: language +Subtag: acd +Description: Gikyode +Added: 2009-07-29 +%% +Type: language +Subtag: ace +Description: Achinese +Added: 2005-10-16 +%% +Type: language +Subtag: acf +Description: Saint Lucian Creole French +Added: 2009-07-29 +%% +Type: language +Subtag: ach +Description: Acoli +Added: 2005-10-16 +%% +Type: language +Subtag: aci +Description: Aka-Cari +Added: 2009-07-29 +%% +Type: language +Subtag: ack +Description: Aka-Kora +Added: 2009-07-29 +%% +Type: language +Subtag: acl +Description: Akar-Bale +Added: 2009-07-29 +%% +Type: language +Subtag: acm +Description: Mesopotamian Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: acn +Description: Achang +Added: 2009-07-29 +%% +Type: language +Subtag: acp +Description: Eastern Acipa +Added: 2009-07-29 +%% +Type: language +Subtag: acq +Description: Ta'izzi-Adeni Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: acr +Description: Achi +Added: 2009-07-29 +%% +Type: language +Subtag: acs +Description: Acroá +Added: 2009-07-29 +%% +Type: language +Subtag: act +Description: Achterhoeks +Added: 2009-07-29 +%% +Type: language +Subtag: acu +Description: Achuar-Shiwiar +Added: 2009-07-29 +%% +Type: language +Subtag: acv +Description: Achumawi +Added: 2009-07-29 +%% +Type: language +Subtag: acw +Description: Hijazi Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: acx +Description: Omani Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: acy +Description: Cypriot Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: acz +Description: Acheron +Added: 2009-07-29 +%% +Type: language +Subtag: ada +Description: Adangme +Added: 2005-10-16 +%% +Type: language +Subtag: adb +Description: Adabe +Added: 2009-07-29 +%% +Type: language +Subtag: add +Description: Dzodinka +Added: 2009-07-29 +%% +Type: language +Subtag: ade +Description: Adele +Added: 2009-07-29 +%% +Type: language +Subtag: adf +Description: Dhofari Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: adg +Description: Andegerebinha +Added: 2009-07-29 +%% +Type: language +Subtag: adh +Description: Adhola +Added: 2009-07-29 +%% +Type: language +Subtag: adi +Description: Adi +Added: 2009-07-29 +%% +Type: language +Subtag: adj +Description: Adioukrou +Added: 2009-07-29 +%% +Type: language +Subtag: adl +Description: Galo +Added: 2009-07-29 +%% +Type: language +Subtag: adn +Description: Adang +Added: 2009-07-29 +%% +Type: language +Subtag: ado +Description: Abu +Added: 2009-07-29 +%% +Type: language +Subtag: adp +Description: Adap +Added: 2009-07-29 +Deprecated: 2015-02-12 +Preferred-Value: dz +%% +Type: language +Subtag: adq +Description: Adangbe +Added: 2009-07-29 +%% +Type: language +Subtag: adr +Description: Adonara +Added: 2009-07-29 +%% +Type: language +Subtag: ads +Description: Adamorobe Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: adt +Description: Adnyamathanha +Added: 2009-07-29 +%% +Type: language +Subtag: adu +Description: Aduge +Added: 2009-07-29 +%% +Type: language +Subtag: adw +Description: Amundava +Added: 2009-07-29 +%% +Type: language +Subtag: adx +Description: Amdo Tibetan +Added: 2009-07-29 +%% +Type: language +Subtag: ady +Description: Adyghe +Description: Adygei +Added: 2005-10-16 +%% +Type: language +Subtag: adz +Description: Adzera +Added: 2009-07-29 +%% +Type: language +Subtag: aea +Description: Areba +Added: 2009-07-29 +%% +Type: language +Subtag: aeb +Description: Tunisian Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: aec +Description: Saidi Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: aed +Description: Argentine Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: aee +Description: Northeast Pashai +Description: Northeast Pashayi +Added: 2009-07-29 +%% +Type: language +Subtag: aek +Description: Haeke +Added: 2009-07-29 +%% +Type: language +Subtag: ael +Description: Ambele +Added: 2009-07-29 +%% +Type: language +Subtag: aem +Description: Arem +Added: 2009-07-29 +%% +Type: language +Subtag: aen +Description: Armenian Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: aeq +Description: Aer +Added: 2009-07-29 +%% +Type: language +Subtag: aer +Description: Eastern Arrernte +Added: 2009-07-29 +%% +Type: language +Subtag: aes +Description: Alsea +Added: 2009-07-29 +%% +Type: language +Subtag: aeu +Description: Akeu +Added: 2009-07-29 +%% +Type: language +Subtag: aew +Description: Ambakich +Added: 2009-07-29 +%% +Type: language +Subtag: aey +Description: Amele +Added: 2009-07-29 +%% +Type: language +Subtag: aez +Description: Aeka +Added: 2009-07-29 +%% +Type: language +Subtag: afa +Description: Afro-Asiatic languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: afb +Description: Gulf Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: afd +Description: Andai +Added: 2009-07-29 +%% +Type: language +Subtag: afe +Description: Putukwam +Added: 2009-07-29 +%% +Type: language +Subtag: afg +Description: Afghan Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: afh +Description: Afrihili +Added: 2005-10-16 +%% +Type: language +Subtag: afi +Description: Akrukay +Description: Chini +Added: 2009-07-29 +%% +Type: language +Subtag: afk +Description: Nanubae +Added: 2009-07-29 +%% +Type: language +Subtag: afn +Description: Defaka +Added: 2009-07-29 +%% +Type: language +Subtag: afo +Description: Eloyi +Added: 2009-07-29 +%% +Type: language +Subtag: afp +Description: Tapei +Added: 2009-07-29 +%% +Type: language +Subtag: afs +Description: Afro-Seminole Creole +Added: 2009-07-29 +%% +Type: language +Subtag: aft +Description: Afitti +Added: 2009-07-29 +%% +Type: language +Subtag: afu +Description: Awutu +Added: 2009-07-29 +%% +Type: language +Subtag: afz +Description: Obokuitai +Added: 2009-07-29 +%% +Type: language +Subtag: aga +Description: Aguano +Added: 2009-07-29 +%% +Type: language +Subtag: agb +Description: Legbo +Added: 2009-07-29 +%% +Type: language +Subtag: agc +Description: Agatu +Added: 2009-07-29 +%% +Type: language +Subtag: agd +Description: Agarabi +Added: 2009-07-29 +%% +Type: language +Subtag: age +Description: Angal +Added: 2009-07-29 +%% +Type: language +Subtag: agf +Description: Arguni +Added: 2009-07-29 +%% +Type: language +Subtag: agg +Description: Angor +Added: 2009-07-29 +%% +Type: language +Subtag: agh +Description: Ngelima +Added: 2009-07-29 +%% +Type: language +Subtag: agi +Description: Agariya +Added: 2009-07-29 +%% +Type: language +Subtag: agj +Description: Argobba +Added: 2009-07-29 +%% +Type: language +Subtag: agk +Description: Isarog Agta +Added: 2009-07-29 +%% +Type: language +Subtag: agl +Description: Fembe +Added: 2009-07-29 +%% +Type: language +Subtag: agm +Description: Angaataha +Added: 2009-07-29 +%% +Type: language +Subtag: agn +Description: Agutaynen +Added: 2009-07-29 +%% +Type: language +Subtag: ago +Description: Tainae +Added: 2009-07-29 +%% +Type: language +Subtag: agp +Description: Paranan +Added: 2009-07-29 +Deprecated: 2010-03-11 +Comments: see apf, prf +%% +Type: language +Subtag: agq +Description: Aghem +Added: 2009-07-29 +%% +Type: language +Subtag: agr +Description: Aguaruna +Added: 2009-07-29 +%% +Type: language +Subtag: ags +Description: Esimbi +Added: 2009-07-29 +%% +Type: language +Subtag: agt +Description: Central Cagayan Agta +Added: 2009-07-29 +%% +Type: language +Subtag: agu +Description: Aguacateco +Added: 2009-07-29 +%% +Type: language +Subtag: agv +Description: Remontado Dumagat +Added: 2009-07-29 +%% +Type: language +Subtag: agw +Description: Kahua +Added: 2009-07-29 +%% +Type: language +Subtag: agx +Description: Aghul +Added: 2009-07-29 +%% +Type: language +Subtag: agy +Description: Southern Alta +Added: 2009-07-29 +%% +Type: language +Subtag: agz +Description: Mt. Iriga Agta +Added: 2009-07-29 +%% +Type: language +Subtag: aha +Description: Ahanta +Added: 2009-07-29 +%% +Type: language +Subtag: ahb +Description: Axamb +Added: 2009-07-29 +%% +Type: language +Subtag: ahg +Description: Qimant +Added: 2009-07-29 +%% +Type: language +Subtag: ahh +Description: Aghu +Added: 2009-07-29 +%% +Type: language +Subtag: ahi +Description: Tiagbamrin Aizi +Added: 2009-07-29 +%% +Type: language +Subtag: ahk +Description: Akha +Added: 2009-07-29 +%% +Type: language +Subtag: ahl +Description: Igo +Added: 2009-07-29 +%% +Type: language +Subtag: ahm +Description: Mobumrin Aizi +Added: 2009-07-29 +%% +Type: language +Subtag: ahn +Description: Àhàn +Added: 2009-07-29 +%% +Type: language +Subtag: aho +Description: Ahom +Added: 2009-07-29 +%% +Type: language +Subtag: ahp +Description: Aproumu Aizi +Added: 2009-07-29 +%% +Type: language +Subtag: ahr +Description: Ahirani +Added: 2009-07-29 +%% +Type: language +Subtag: ahs +Description: Ashe +Added: 2009-07-29 +%% +Type: language +Subtag: aht +Description: Ahtena +Added: 2009-07-29 +%% +Type: language +Subtag: aia +Description: Arosi +Added: 2009-07-29 +%% +Type: language +Subtag: aib +Description: Ainu (China) +Added: 2009-07-29 +%% +Type: language +Subtag: aic +Description: Ainbai +Added: 2009-07-29 +%% +Type: language +Subtag: aid +Description: Alngith +Added: 2009-07-29 +%% +Type: language +Subtag: aie +Description: Amara +Added: 2009-07-29 +%% +Type: language +Subtag: aif +Description: Agi +Added: 2009-07-29 +%% +Type: language +Subtag: aig +Description: Antigua and Barbuda Creole English +Added: 2009-07-29 +%% +Type: language +Subtag: aih +Description: Ai-Cham +Added: 2009-07-29 +%% +Type: language +Subtag: aii +Description: Assyrian Neo-Aramaic +Added: 2009-07-29 +Macrolanguage: syr +%% +Type: language +Subtag: aij +Description: Lishanid Noshan +Added: 2009-07-29 +%% +Type: language +Subtag: aik +Description: Ake +Added: 2009-07-29 +%% +Type: language +Subtag: ail +Description: Aimele +Added: 2009-07-29 +%% +Type: language +Subtag: aim +Description: Aimol +Added: 2009-07-29 +%% +Type: language +Subtag: ain +Description: Ainu (Japan) +Added: 2005-10-16 +%% +Type: language +Subtag: aio +Description: Aiton +Added: 2009-07-29 +%% +Type: language +Subtag: aip +Description: Burumakok +Added: 2009-07-29 +%% +Type: language +Subtag: aiq +Description: Aimaq +Added: 2009-07-29 +%% +Type: language +Subtag: air +Description: Airoran +Added: 2009-07-29 +%% +Type: language +Subtag: ais +Description: Nataoran Amis +Added: 2009-07-29 +%% +Type: language +Subtag: ait +Description: Arikem +Added: 2009-07-29 +%% +Type: language +Subtag: aiw +Description: Aari +Added: 2009-07-29 +%% +Type: language +Subtag: aix +Description: Aighon +Added: 2009-07-29 +%% +Type: language +Subtag: aiy +Description: Ali +Added: 2009-07-29 +%% +Type: language +Subtag: aja +Description: Aja (Sudan) +Added: 2009-07-29 +%% +Type: language +Subtag: ajg +Description: Aja (Benin) +Added: 2009-07-29 +%% +Type: language +Subtag: aji +Description: Ajië +Added: 2009-07-29 +%% +Type: language +Subtag: ajn +Description: Andajin +Added: 2012-08-12 +%% +Type: language +Subtag: ajp +Description: South Levantine Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: ajt +Description: Judeo-Tunisian Arabic +Added: 2009-07-29 +Macrolanguage: jrb +%% +Type: language +Subtag: aju +Description: Judeo-Moroccan Arabic +Added: 2009-07-29 +Macrolanguage: jrb +%% +Type: language +Subtag: ajw +Description: Ajawa +Added: 2009-07-29 +%% +Type: language +Subtag: ajz +Description: Amri Karbi +Added: 2009-07-29 +%% +Type: language +Subtag: akb +Description: Batak Angkola +Added: 2009-07-29 +%% +Type: language +Subtag: akc +Description: Mpur +Added: 2009-07-29 +%% +Type: language +Subtag: akd +Description: Ukpet-Ehom +Added: 2009-07-29 +%% +Type: language +Subtag: ake +Description: Akawaio +Added: 2009-07-29 +%% +Type: language +Subtag: akf +Description: Akpa +Added: 2009-07-29 +%% +Type: language +Subtag: akg +Description: Anakalangu +Added: 2009-07-29 +%% +Type: language +Subtag: akh +Description: Angal Heneng +Added: 2009-07-29 +%% +Type: language +Subtag: aki +Description: Aiome +Added: 2009-07-29 +%% +Type: language +Subtag: akj +Description: Aka-Jeru +Added: 2009-07-29 +%% +Type: language +Subtag: akk +Description: Akkadian +Added: 2005-10-16 +%% +Type: language +Subtag: akl +Description: Aklanon +Added: 2009-07-29 +%% +Type: language +Subtag: akm +Description: Aka-Bo +Added: 2009-07-29 +%% +Type: language +Subtag: ako +Description: Akurio +Added: 2009-07-29 +%% +Type: language +Subtag: akp +Description: Siwu +Added: 2009-07-29 +%% +Type: language +Subtag: akq +Description: Ak +Added: 2009-07-29 +%% +Type: language +Subtag: akr +Description: Araki +Added: 2009-07-29 +%% +Type: language +Subtag: aks +Description: Akaselem +Added: 2009-07-29 +%% +Type: language +Subtag: akt +Description: Akolet +Added: 2009-07-29 +%% +Type: language +Subtag: aku +Description: Akum +Added: 2009-07-29 +%% +Type: language +Subtag: akv +Description: Akhvakh +Added: 2009-07-29 +%% +Type: language +Subtag: akw +Description: Akwa +Added: 2009-07-29 +%% +Type: language +Subtag: akx +Description: Aka-Kede +Added: 2009-07-29 +%% +Type: language +Subtag: aky +Description: Aka-Kol +Added: 2009-07-29 +%% +Type: language +Subtag: akz +Description: Alabama +Added: 2009-07-29 +%% +Type: language +Subtag: ala +Description: Alago +Added: 2009-07-29 +%% +Type: language +Subtag: alc +Description: Qawasqar +Added: 2009-07-29 +%% +Type: language +Subtag: ald +Description: Alladian +Added: 2009-07-29 +%% +Type: language +Subtag: ale +Description: Aleut +Added: 2005-10-16 +%% +Type: language +Subtag: alf +Description: Alege +Added: 2009-07-29 +%% +Type: language +Subtag: alg +Description: Algonquian languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: alh +Description: Alawa +Added: 2009-07-29 +%% +Type: language +Subtag: ali +Description: Amaimon +Added: 2009-07-29 +%% +Type: language +Subtag: alj +Description: Alangan +Added: 2009-07-29 +%% +Type: language +Subtag: alk +Description: Alak +Added: 2009-07-29 +%% +Type: language +Subtag: all +Description: Allar +Added: 2009-07-29 +%% +Type: language +Subtag: alm +Description: Amblong +Added: 2009-07-29 +%% +Type: language +Subtag: aln +Description: Gheg Albanian +Added: 2009-07-29 +Macrolanguage: sq +%% +Type: language +Subtag: alo +Description: Larike-Wakasihu +Added: 2009-07-29 +%% +Type: language +Subtag: alp +Description: Alune +Added: 2009-07-29 +%% +Type: language +Subtag: alq +Description: Algonquin +Added: 2009-07-29 +%% +Type: language +Subtag: alr +Description: Alutor +Added: 2009-07-29 +%% +Type: language +Subtag: als +Description: Tosk Albanian +Added: 2009-07-29 +Macrolanguage: sq +%% +Type: language +Subtag: alt +Description: Southern Altai +Added: 2005-10-16 +%% +Type: language +Subtag: alu +Description: 'Are'are +Added: 2009-07-29 +%% +Type: language +Subtag: alv +Description: Atlantic-Congo languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: alw +Description: Alaba-K’abeena +Description: Wanbasana +Added: 2009-07-29 +%% +Type: language +Subtag: alx +Description: Amol +Added: 2009-07-29 +%% +Type: language +Subtag: aly +Description: Alyawarr +Added: 2009-07-29 +%% +Type: language +Subtag: alz +Description: Alur +Added: 2009-07-29 +%% +Type: language +Subtag: ama +Description: Amanayé +Added: 2009-07-29 +%% +Type: language +Subtag: amb +Description: Ambo +Added: 2009-07-29 +%% +Type: language +Subtag: amc +Description: Amahuaca +Added: 2009-07-29 +%% +Type: language +Subtag: ame +Description: Yanesha' +Added: 2009-07-29 +%% +Type: language +Subtag: amf +Description: Hamer-Banna +Added: 2009-07-29 +%% +Type: language +Subtag: amg +Description: Amurdak +Added: 2009-07-29 +%% +Type: language +Subtag: ami +Description: Amis +Added: 2009-07-29 +%% +Type: language +Subtag: amj +Description: Amdang +Added: 2009-07-29 +%% +Type: language +Subtag: amk +Description: Ambai +Added: 2009-07-29 +%% +Type: language +Subtag: aml +Description: War-Jaintia +Added: 2009-07-29 +%% +Type: language +Subtag: amm +Description: Ama (Papua New Guinea) +Added: 2009-07-29 +%% +Type: language +Subtag: amn +Description: Amanab +Added: 2009-07-29 +%% +Type: language +Subtag: amo +Description: Amo +Added: 2009-07-29 +%% +Type: language +Subtag: amp +Description: Alamblak +Added: 2009-07-29 +%% +Type: language +Subtag: amq +Description: Amahai +Added: 2009-07-29 +%% +Type: language +Subtag: amr +Description: Amarakaeri +Added: 2009-07-29 +%% +Type: language +Subtag: ams +Description: Southern Amami-Oshima +Added: 2009-07-29 +%% +Type: language +Subtag: amt +Description: Amto +Added: 2009-07-29 +%% +Type: language +Subtag: amu +Description: Guerrero Amuzgo +Added: 2009-07-29 +%% +Type: language +Subtag: amv +Description: Ambelau +Added: 2009-07-29 +%% +Type: language +Subtag: amw +Description: Western Neo-Aramaic +Added: 2009-07-29 +%% +Type: language +Subtag: amx +Description: Anmatyerre +Added: 2009-07-29 +%% +Type: language +Subtag: amy +Description: Ami +Added: 2009-07-29 +%% +Type: language +Subtag: amz +Description: Atampaya +Added: 2009-07-29 +%% +Type: language +Subtag: ana +Description: Andaqui +Added: 2009-07-29 +%% +Type: language +Subtag: anb +Description: Andoa +Added: 2009-07-29 +%% +Type: language +Subtag: anc +Description: Ngas +Added: 2009-07-29 +%% +Type: language +Subtag: and +Description: Ansus +Added: 2009-07-29 +%% +Type: language +Subtag: ane +Description: Xârâcùù +Added: 2009-07-29 +%% +Type: language +Subtag: anf +Description: Animere +Added: 2009-07-29 +%% +Type: language +Subtag: ang +Description: Old English (ca. 450-1100) +Added: 2005-10-16 +%% +Type: language +Subtag: anh +Description: Nend +Added: 2009-07-29 +%% +Type: language +Subtag: ani +Description: Andi +Added: 2009-07-29 +%% +Type: language +Subtag: anj +Description: Anor +Added: 2009-07-29 +%% +Type: language +Subtag: ank +Description: Goemai +Added: 2009-07-29 +%% +Type: language +Subtag: anl +Description: Anu-Hkongso Chin +Added: 2009-07-29 +%% +Type: language +Subtag: anm +Description: Anal +Added: 2009-07-29 +%% +Type: language +Subtag: ann +Description: Obolo +Added: 2009-07-29 +%% +Type: language +Subtag: ano +Description: Andoque +Added: 2009-07-29 +%% +Type: language +Subtag: anp +Description: Angika +Added: 2006-03-08 +%% +Type: language +Subtag: anq +Description: Jarawa (India) +Added: 2009-07-29 +%% +Type: language +Subtag: anr +Description: Andh +Added: 2009-07-29 +%% +Type: language +Subtag: ans +Description: Anserma +Added: 2009-07-29 +%% +Type: language +Subtag: ant +Description: Antakarinya +Added: 2009-07-29 +%% +Type: language +Subtag: anu +Description: Anuak +Added: 2009-07-29 +%% +Type: language +Subtag: anv +Description: Denya +Added: 2009-07-29 +%% +Type: language +Subtag: anw +Description: Anaang +Added: 2009-07-29 +%% +Type: language +Subtag: anx +Description: Andra-Hus +Added: 2009-07-29 +%% +Type: language +Subtag: any +Description: Anyin +Added: 2009-07-29 +%% +Type: language +Subtag: anz +Description: Anem +Added: 2009-07-29 +%% +Type: language +Subtag: aoa +Description: Angolar +Added: 2009-07-29 +%% +Type: language +Subtag: aob +Description: Abom +Added: 2009-07-29 +%% +Type: language +Subtag: aoc +Description: Pemon +Added: 2009-07-29 +%% +Type: language +Subtag: aod +Description: Andarum +Added: 2009-07-29 +%% +Type: language +Subtag: aoe +Description: Angal Enen +Added: 2009-07-29 +%% +Type: language +Subtag: aof +Description: Bragat +Added: 2009-07-29 +%% +Type: language +Subtag: aog +Description: Angoram +Added: 2009-07-29 +%% +Type: language +Subtag: aoh +Description: Arma +Added: 2009-07-29 +%% +Type: language +Subtag: aoi +Description: Anindilyakwa +Added: 2009-07-29 +%% +Type: language +Subtag: aoj +Description: Mufian +Added: 2009-07-29 +%% +Type: language +Subtag: aok +Description: Arhö +Added: 2009-07-29 +%% +Type: language +Subtag: aol +Description: Alor +Added: 2009-07-29 +%% +Type: language +Subtag: aom +Description: Ömie +Added: 2009-07-29 +%% +Type: language +Subtag: aon +Description: Bumbita Arapesh +Added: 2009-07-29 +%% +Type: language +Subtag: aor +Description: Aore +Added: 2009-07-29 +%% +Type: language +Subtag: aos +Description: Taikat +Added: 2009-07-29 +%% +Type: language +Subtag: aot +Description: Atong (India) +Description: A'tong +Added: 2009-07-29 +%% +Type: language +Subtag: aou +Description: A'ou +Added: 2012-08-12 +%% +Type: language +Subtag: aox +Description: Atorada +Added: 2009-07-29 +%% +Type: language +Subtag: aoz +Description: Uab Meto +Added: 2009-07-29 +%% +Type: language +Subtag: apa +Description: Apache languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: apb +Description: Sa'a +Added: 2009-07-29 +%% +Type: language +Subtag: apc +Description: North Levantine Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: apd +Description: Sudanese Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: ape +Description: Bukiyip +Added: 2009-07-29 +%% +Type: language +Subtag: apf +Description: Pahanan Agta +Added: 2010-03-11 +%% +Type: language +Subtag: apg +Description: Ampanang +Added: 2009-07-29 +%% +Type: language +Subtag: aph +Description: Athpariya +Added: 2009-07-29 +%% +Type: language +Subtag: api +Description: Apiaká +Added: 2009-07-29 +%% +Type: language +Subtag: apj +Description: Jicarilla Apache +Added: 2009-07-29 +%% +Type: language +Subtag: apk +Description: Kiowa Apache +Added: 2009-07-29 +%% +Type: language +Subtag: apl +Description: Lipan Apache +Added: 2009-07-29 +%% +Type: language +Subtag: apm +Description: Mescalero-Chiricahua Apache +Added: 2009-07-29 +%% +Type: language +Subtag: apn +Description: Apinayé +Added: 2009-07-29 +%% +Type: language +Subtag: apo +Description: Ambul +Added: 2009-07-29 +%% +Type: language +Subtag: app +Description: Apma +Added: 2009-07-29 +%% +Type: language +Subtag: apq +Description: A-Pucikwar +Added: 2009-07-29 +%% +Type: language +Subtag: apr +Description: Arop-Lokep +Added: 2009-07-29 +%% +Type: language +Subtag: aps +Description: Arop-Sissano +Added: 2009-07-29 +%% +Type: language +Subtag: apt +Description: Apatani +Added: 2009-07-29 +%% +Type: language +Subtag: apu +Description: Apurinã +Added: 2009-07-29 +%% +Type: language +Subtag: apv +Description: Alapmunte +Added: 2009-07-29 +%% +Type: language +Subtag: apw +Description: Western Apache +Added: 2009-07-29 +%% +Type: language +Subtag: apx +Description: Aputai +Added: 2009-07-29 +%% +Type: language +Subtag: apy +Description: Apalaí +Added: 2009-07-29 +%% +Type: language +Subtag: apz +Description: Safeyoka +Added: 2009-07-29 +%% +Type: language +Subtag: aqa +Description: Alacalufan languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: aqc +Description: Archi +Added: 2009-07-29 +%% +Type: language +Subtag: aqd +Description: Ampari Dogon +Added: 2011-08-16 +%% +Type: language +Subtag: aqg +Description: Arigidi +Added: 2009-07-29 +%% +Type: language +Subtag: aql +Description: Algic languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: aqm +Description: Atohwaim +Added: 2009-07-29 +%% +Type: language +Subtag: aqn +Description: Northern Alta +Added: 2009-07-29 +%% +Type: language +Subtag: aqp +Description: Atakapa +Added: 2009-07-29 +%% +Type: language +Subtag: aqr +Description: Arhâ +Added: 2009-07-29 +%% +Type: language +Subtag: aqt +Description: Angaité +Added: 2014-02-28 +%% +Type: language +Subtag: aqz +Description: Akuntsu +Added: 2010-03-11 +%% +Type: language +Subtag: arb +Description: Standard Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: arc +Description: Official Aramaic (700-300 BCE) +Description: Imperial Aramaic (700-300 BCE) +Added: 2005-10-16 +%% +Type: language +Subtag: ard +Description: Arabana +Added: 2009-07-29 +%% +Type: language +Subtag: are +Description: Western Arrarnta +Added: 2009-07-29 +%% +Type: language +Subtag: arh +Description: Arhuaco +Added: 2009-07-29 +%% +Type: language +Subtag: ari +Description: Arikara +Added: 2009-07-29 +%% +Type: language +Subtag: arj +Description: Arapaso +Added: 2009-07-29 +%% +Type: language +Subtag: ark +Description: Arikapú +Added: 2009-07-29 +%% +Type: language +Subtag: arl +Description: Arabela +Added: 2009-07-29 +%% +Type: language +Subtag: arn +Description: Mapudungun +Description: Mapuche +Added: 2005-10-16 +%% +Type: language +Subtag: aro +Description: Araona +Added: 2009-07-29 +%% +Type: language +Subtag: arp +Description: Arapaho +Added: 2005-10-16 +%% +Type: language +Subtag: arq +Description: Algerian Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: arr +Description: Karo (Brazil) +Added: 2009-07-29 +%% +Type: language +Subtag: ars +Description: Najdi Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: art +Description: Artificial languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: aru +Description: Aruá (Amazonas State) +Description: Arawá +Added: 2009-07-29 +%% +Type: language +Subtag: arv +Description: Arbore +Added: 2009-07-29 +%% +Type: language +Subtag: arw +Description: Arawak +Added: 2005-10-16 +%% +Type: language +Subtag: arx +Description: Aruá (Rodonia State) +Added: 2009-07-29 +%% +Type: language +Subtag: ary +Description: Moroccan Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: arz +Description: Egyptian Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: asa +Description: Asu (Tanzania) +Added: 2009-07-29 +%% +Type: language +Subtag: asb +Description: Assiniboine +Added: 2009-07-29 +%% +Type: language +Subtag: asc +Description: Casuarina Coast Asmat +Added: 2009-07-29 +%% +Type: language +Subtag: asd +Description: Asas +Added: 2009-07-29 +%% +Type: language +Subtag: ase +Description: American Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: asf +Description: Australian Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: asg +Description: Cishingini +Added: 2009-07-29 +%% +Type: language +Subtag: ash +Description: Abishira +Added: 2009-07-29 +%% +Type: language +Subtag: asi +Description: Buruwai +Added: 2009-07-29 +%% +Type: language +Subtag: asj +Description: Sari +Added: 2009-07-29 +%% +Type: language +Subtag: ask +Description: Ashkun +Added: 2009-07-29 +%% +Type: language +Subtag: asl +Description: Asilulu +Added: 2009-07-29 +%% +Type: language +Subtag: asn +Description: Xingú Asuriní +Added: 2009-07-29 +%% +Type: language +Subtag: aso +Description: Dano +Added: 2009-07-29 +%% +Type: language +Subtag: asp +Description: Algerian Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: asq +Description: Austrian Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: asr +Description: Asuri +Added: 2009-07-29 +%% +Type: language +Subtag: ass +Description: Ipulo +Added: 2009-07-29 +%% +Type: language +Subtag: ast +Description: Asturian +Description: Asturleonese +Description: Bable +Description: Leonese +Added: 2005-10-16 +%% +Type: language +Subtag: asu +Description: Tocantins Asurini +Added: 2009-07-29 +%% +Type: language +Subtag: asv +Description: Asoa +Added: 2009-07-29 +%% +Type: language +Subtag: asw +Description: Australian Aborigines Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: asx +Description: Muratayak +Added: 2009-07-29 +%% +Type: language +Subtag: asy +Description: Yaosakor Asmat +Added: 2009-07-29 +%% +Type: language +Subtag: asz +Description: As +Added: 2009-07-29 +%% +Type: language +Subtag: ata +Description: Pele-Ata +Added: 2009-07-29 +%% +Type: language +Subtag: atb +Description: Zaiwa +Added: 2009-07-29 +%% +Type: language +Subtag: atc +Description: Atsahuaca +Added: 2009-07-29 +%% +Type: language +Subtag: atd +Description: Ata Manobo +Added: 2009-07-29 +%% +Type: language +Subtag: ate +Description: Atemble +Added: 2009-07-29 +%% +Type: language +Subtag: atg +Description: Ivbie North-Okpela-Arhe +Added: 2009-07-29 +%% +Type: language +Subtag: ath +Description: Athapascan languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: ati +Description: Attié +Added: 2009-07-29 +%% +Type: language +Subtag: atj +Description: Atikamekw +Added: 2009-07-29 +%% +Type: language +Subtag: atk +Description: Ati +Added: 2009-07-29 +%% +Type: language +Subtag: atl +Description: Mt. Iraya Agta +Added: 2009-07-29 +%% +Type: language +Subtag: atm +Description: Ata +Added: 2009-07-29 +%% +Type: language +Subtag: atn +Description: Ashtiani +Added: 2009-07-29 +%% +Type: language +Subtag: ato +Description: Atong (Cameroon) +Added: 2009-07-29 +%% +Type: language +Subtag: atp +Description: Pudtol Atta +Added: 2009-07-29 +%% +Type: language +Subtag: atq +Description: Aralle-Tabulahan +Added: 2009-07-29 +%% +Type: language +Subtag: atr +Description: Waimiri-Atroari +Added: 2009-07-29 +%% +Type: language +Subtag: ats +Description: Gros Ventre +Added: 2009-07-29 +%% +Type: language +Subtag: att +Description: Pamplona Atta +Added: 2009-07-29 +%% +Type: language +Subtag: atu +Description: Reel +Added: 2009-07-29 +%% +Type: language +Subtag: atv +Description: Northern Altai +Added: 2009-07-29 +%% +Type: language +Subtag: atw +Description: Atsugewi +Added: 2009-07-29 +%% +Type: language +Subtag: atx +Description: Arutani +Added: 2009-07-29 +%% +Type: language +Subtag: aty +Description: Aneityum +Added: 2009-07-29 +%% +Type: language +Subtag: atz +Description: Arta +Added: 2009-07-29 +%% +Type: language +Subtag: aua +Description: Asumboa +Added: 2009-07-29 +%% +Type: language +Subtag: aub +Description: Alugu +Added: 2009-07-29 +%% +Type: language +Subtag: auc +Description: Waorani +Added: 2009-07-29 +%% +Type: language +Subtag: aud +Description: Anuta +Added: 2009-07-29 +%% +Type: language +Subtag: aue +Description: =/Kx'au//'ein +Added: 2009-07-29 +Deprecated: 2015-02-12 +Preferred-Value: ktz +%% +Type: language +Subtag: auf +Description: Arauan languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: aug +Description: Aguna +Added: 2009-07-29 +%% +Type: language +Subtag: auh +Description: Aushi +Added: 2009-07-29 +%% +Type: language +Subtag: aui +Description: Anuki +Added: 2009-07-29 +%% +Type: language +Subtag: auj +Description: Awjilah +Added: 2009-07-29 +%% +Type: language +Subtag: auk +Description: Heyo +Added: 2009-07-29 +%% +Type: language +Subtag: aul +Description: Aulua +Added: 2009-07-29 +%% +Type: language +Subtag: aum +Description: Asu (Nigeria) +Added: 2009-07-29 +%% +Type: language +Subtag: aun +Description: Molmo One +Added: 2009-07-29 +%% +Type: language +Subtag: auo +Description: Auyokawa +Added: 2009-07-29 +%% +Type: language +Subtag: aup +Description: Makayam +Added: 2009-07-29 +%% +Type: language +Subtag: auq +Description: Anus +Description: Korur +Added: 2009-07-29 +%% +Type: language +Subtag: aur +Description: Aruek +Added: 2009-07-29 +%% +Type: language +Subtag: aus +Description: Australian languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: aut +Description: Austral +Added: 2009-07-29 +%% +Type: language +Subtag: auu +Description: Auye +Added: 2009-07-29 +%% +Type: language +Subtag: auw +Description: Awyi +Added: 2009-07-29 +%% +Type: language +Subtag: aux +Description: Aurá +Added: 2009-07-29 +%% +Type: language +Subtag: auy +Description: Awiyaana +Added: 2009-07-29 +%% +Type: language +Subtag: auz +Description: Uzbeki Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: avb +Description: Avau +Added: 2009-07-29 +%% +Type: language +Subtag: avd +Description: Alviri-Vidari +Added: 2009-07-29 +%% +Type: language +Subtag: avi +Description: Avikam +Added: 2009-07-29 +%% +Type: language +Subtag: avk +Description: Kotava +Added: 2009-07-29 +%% +Type: language +Subtag: avl +Description: Eastern Egyptian Bedawi Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: avm +Description: Angkamuthi +Added: 2012-08-12 +%% +Type: language +Subtag: avn +Description: Avatime +Added: 2009-07-29 +%% +Type: language +Subtag: avo +Description: Agavotaguerra +Added: 2009-07-29 +%% +Type: language +Subtag: avs +Description: Aushiri +Added: 2009-07-29 +%% +Type: language +Subtag: avt +Description: Au +Added: 2009-07-29 +%% +Type: language +Subtag: avu +Description: Avokaya +Added: 2009-07-29 +%% +Type: language +Subtag: avv +Description: Avá-Canoeiro +Added: 2009-07-29 +%% +Type: language +Subtag: awa +Description: Awadhi +Added: 2005-10-16 +%% +Type: language +Subtag: awb +Description: Awa (Papua New Guinea) +Added: 2009-07-29 +%% +Type: language +Subtag: awc +Description: Cicipu +Added: 2009-07-29 +%% +Type: language +Subtag: awd +Description: Arawakan languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: awe +Description: Awetí +Added: 2009-07-29 +%% +Type: language +Subtag: awg +Description: Anguthimri +Added: 2012-08-12 +%% +Type: language +Subtag: awh +Description: Awbono +Added: 2009-07-29 +%% +Type: language +Subtag: awi +Description: Aekyom +Added: 2009-07-29 +%% +Type: language +Subtag: awk +Description: Awabakal +Added: 2009-07-29 +%% +Type: language +Subtag: awm +Description: Arawum +Added: 2009-07-29 +%% +Type: language +Subtag: awn +Description: Awngi +Added: 2009-07-29 +%% +Type: language +Subtag: awo +Description: Awak +Added: 2009-07-29 +%% +Type: language +Subtag: awr +Description: Awera +Added: 2009-07-29 +%% +Type: language +Subtag: aws +Description: South Awyu +Added: 2009-07-29 +%% +Type: language +Subtag: awt +Description: Araweté +Added: 2009-07-29 +%% +Type: language +Subtag: awu +Description: Central Awyu +Added: 2009-07-29 +%% +Type: language +Subtag: awv +Description: Jair Awyu +Added: 2009-07-29 +%% +Type: language +Subtag: aww +Description: Awun +Added: 2009-07-29 +%% +Type: language +Subtag: awx +Description: Awara +Added: 2009-07-29 +%% +Type: language +Subtag: awy +Description: Edera Awyu +Added: 2009-07-29 +%% +Type: language +Subtag: axb +Description: Abipon +Added: 2009-07-29 +%% +Type: language +Subtag: axe +Description: Ayerrerenge +Added: 2012-08-12 +%% +Type: language +Subtag: axg +Description: Mato Grosso Arára +Added: 2009-07-29 +%% +Type: language +Subtag: axk +Description: Yaka (Central African Republic) +Added: 2009-07-29 +%% +Type: language +Subtag: axl +Description: Lower Southern Aranda +Added: 2013-09-10 +%% +Type: language +Subtag: axm +Description: Middle Armenian +Added: 2009-07-29 +%% +Type: language +Subtag: axx +Description: Xârâgurè +Added: 2009-07-29 +%% +Type: language +Subtag: aya +Description: Awar +Added: 2009-07-29 +%% +Type: language +Subtag: ayb +Description: Ayizo Gbe +Added: 2009-07-29 +%% +Type: language +Subtag: ayc +Description: Southern Aymara +Added: 2009-07-29 +Macrolanguage: ay +%% +Type: language +Subtag: ayd +Description: Ayabadhu +Added: 2009-07-29 +%% +Type: language +Subtag: aye +Description: Ayere +Added: 2009-07-29 +%% +Type: language +Subtag: ayg +Description: Ginyanga +Added: 2009-07-29 +%% +Type: language +Subtag: ayh +Description: Hadrami Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: ayi +Description: Leyigha +Added: 2009-07-29 +%% +Type: language +Subtag: ayk +Description: Akuku +Added: 2009-07-29 +%% +Type: language +Subtag: ayl +Description: Libyan Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: ayn +Description: Sanaani Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: ayo +Description: Ayoreo +Added: 2009-07-29 +%% +Type: language +Subtag: ayp +Description: North Mesopotamian Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: ayq +Description: Ayi (Papua New Guinea) +Added: 2009-07-29 +%% +Type: language +Subtag: ayr +Description: Central Aymara +Added: 2009-07-29 +Macrolanguage: ay +%% +Type: language +Subtag: ays +Description: Sorsogon Ayta +Added: 2009-07-29 +%% +Type: language +Subtag: ayt +Description: Magbukun Ayta +Added: 2009-07-29 +%% +Type: language +Subtag: ayu +Description: Ayu +Added: 2009-07-29 +%% +Type: language +Subtag: ayx +Description: Ayi (China) +Added: 2009-07-29 +Deprecated: 2011-08-16 +Preferred-Value: nun +%% +Type: language +Subtag: ayy +Description: Tayabas Ayta +Added: 2009-07-29 +%% +Type: language +Subtag: ayz +Description: Mai Brat +Added: 2009-07-29 +%% +Type: language +Subtag: aza +Description: Azha +Added: 2009-07-29 +%% +Type: language +Subtag: azb +Description: South Azerbaijani +Added: 2009-07-29 +Macrolanguage: az +%% +Type: language +Subtag: azc +Description: Uto-Aztecan languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: azd +Description: Eastern Durango Nahuatl +Added: 2012-08-12 +%% +Type: language +Subtag: azg +Description: San Pedro Amuzgos Amuzgo +Added: 2009-07-29 +%% +Type: language +Subtag: azj +Description: North Azerbaijani +Added: 2009-07-29 +Macrolanguage: az +%% +Type: language +Subtag: azm +Description: Ipalapa Amuzgo +Added: 2009-07-29 +%% +Type: language +Subtag: azn +Description: Western Durango Nahuatl +Added: 2012-08-12 +%% +Type: language +Subtag: azo +Description: Awing +Added: 2009-07-29 +%% +Type: language +Subtag: azt +Description: Faire Atta +Added: 2009-07-29 +%% +Type: language +Subtag: azz +Description: Highland Puebla Nahuatl +Added: 2009-07-29 +%% +Type: language +Subtag: baa +Description: Babatana +Added: 2009-07-29 +%% +Type: language +Subtag: bab +Description: Bainouk-Gunyuño +Added: 2009-07-29 +%% +Type: language +Subtag: bac +Description: Badui +Added: 2009-07-29 +%% +Type: language +Subtag: bad +Description: Banda languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: bae +Description: Baré +Added: 2009-07-29 +%% +Type: language +Subtag: baf +Description: Nubaca +Added: 2009-07-29 +%% +Type: language +Subtag: bag +Description: Tuki +Added: 2009-07-29 +%% +Type: language +Subtag: bah +Description: Bahamas Creole English +Added: 2009-07-29 +%% +Type: language +Subtag: bai +Description: Bamileke languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: baj +Description: Barakai +Added: 2009-07-29 +%% +Type: language +Subtag: bal +Description: Baluchi +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: ban +Description: Balinese +Added: 2005-10-16 +%% +Type: language +Subtag: bao +Description: Waimaha +Added: 2009-07-29 +%% +Type: language +Subtag: bap +Description: Bantawa +Added: 2009-07-29 +%% +Type: language +Subtag: bar +Description: Bavarian +Added: 2009-07-29 +%% +Type: language +Subtag: bas +Description: Basa (Cameroon) +Added: 2005-10-16 +%% +Type: language +Subtag: bat +Description: Baltic languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: bau +Description: Bada (Nigeria) +Added: 2009-07-29 +%% +Type: language +Subtag: bav +Description: Vengo +Added: 2009-07-29 +%% +Type: language +Subtag: baw +Description: Bambili-Bambui +Added: 2009-07-29 +%% +Type: language +Subtag: bax +Description: Bamun +Added: 2009-07-29 +%% +Type: language +Subtag: bay +Description: Batuley +Added: 2009-07-29 +%% +Type: language +Subtag: baz +Description: Tunen +Added: 2009-07-29 +Deprecated: 2012-08-12 +Comments: see nvo, tvu +%% +Type: language +Subtag: bba +Description: Baatonum +Added: 2009-07-29 +%% +Type: language +Subtag: bbb +Description: Barai +Added: 2009-07-29 +%% +Type: language +Subtag: bbc +Description: Batak Toba +Added: 2009-07-29 +%% +Type: language +Subtag: bbd +Description: Bau +Added: 2009-07-29 +%% +Type: language +Subtag: bbe +Description: Bangba +Added: 2009-07-29 +%% +Type: language +Subtag: bbf +Description: Baibai +Added: 2009-07-29 +%% +Type: language +Subtag: bbg +Description: Barama +Added: 2009-07-29 +%% +Type: language +Subtag: bbh +Description: Bugan +Added: 2009-07-29 +%% +Type: language +Subtag: bbi +Description: Barombi +Added: 2009-07-29 +%% +Type: language +Subtag: bbj +Description: Ghomálá' +Added: 2009-07-29 +%% +Type: language +Subtag: bbk +Description: Babanki +Added: 2009-07-29 +%% +Type: language +Subtag: bbl +Description: Bats +Added: 2009-07-29 +%% +Type: language +Subtag: bbm +Description: Babango +Added: 2009-07-29 +%% +Type: language +Subtag: bbn +Description: Uneapa +Added: 2009-07-29 +%% +Type: language +Subtag: bbo +Description: Northern Bobo Madaré +Description: Konabéré +Added: 2009-07-29 +%% +Type: language +Subtag: bbp +Description: West Central Banda +Added: 2009-07-29 +%% +Type: language +Subtag: bbq +Description: Bamali +Added: 2009-07-29 +%% +Type: language +Subtag: bbr +Description: Girawa +Added: 2009-07-29 +%% +Type: language +Subtag: bbs +Description: Bakpinka +Added: 2009-07-29 +%% +Type: language +Subtag: bbt +Description: Mburku +Added: 2009-07-29 +%% +Type: language +Subtag: bbu +Description: Kulung (Nigeria) +Added: 2009-07-29 +%% +Type: language +Subtag: bbv +Description: Karnai +Added: 2009-07-29 +%% +Type: language +Subtag: bbw +Description: Baba +Added: 2009-07-29 +%% +Type: language +Subtag: bbx +Description: Bubia +Added: 2009-07-29 +%% +Type: language +Subtag: bby +Description: Befang +Added: 2009-07-29 +%% +Type: language +Subtag: bbz +Description: Babalia Creole Arabic +Added: 2009-07-29 +Macrolanguage: ar +%% +Type: language +Subtag: bca +Description: Central Bai +Added: 2009-07-29 +%% +Type: language +Subtag: bcb +Description: Bainouk-Samik +Added: 2009-07-29 +%% +Type: language +Subtag: bcc +Description: Southern Balochi +Added: 2009-07-29 +Macrolanguage: bal +%% +Type: language +Subtag: bcd +Description: North Babar +Added: 2009-07-29 +%% +Type: language +Subtag: bce +Description: Bamenyam +Added: 2009-07-29 +%% +Type: language +Subtag: bcf +Description: Bamu +Added: 2009-07-29 +%% +Type: language +Subtag: bcg +Description: Baga Binari +Added: 2009-07-29 +%% +Type: language +Subtag: bch +Description: Bariai +Added: 2009-07-29 +%% +Type: language +Subtag: bci +Description: Baoulé +Added: 2009-07-29 +%% +Type: language +Subtag: bcj +Description: Bardi +Added: 2009-07-29 +%% +Type: language +Subtag: bck +Description: Bunaba +Added: 2009-07-29 +%% +Type: language +Subtag: bcl +Description: Central Bikol +Added: 2009-07-29 +Macrolanguage: bik +%% +Type: language +Subtag: bcm +Description: Bannoni +Added: 2009-07-29 +%% +Type: language +Subtag: bcn +Description: Bali (Nigeria) +Added: 2009-07-29 +%% +Type: language +Subtag: bco +Description: Kaluli +Added: 2009-07-29 +%% +Type: language +Subtag: bcp +Description: Bali (Democratic Republic of Congo) +Added: 2009-07-29 +%% +Type: language +Subtag: bcq +Description: Bench +Added: 2009-07-29 +%% +Type: language +Subtag: bcr +Description: Babine +Added: 2009-07-29 +%% +Type: language +Subtag: bcs +Description: Kohumono +Added: 2009-07-29 +%% +Type: language +Subtag: bct +Description: Bendi +Added: 2009-07-29 +%% +Type: language +Subtag: bcu +Description: Awad Bing +Added: 2009-07-29 +%% +Type: language +Subtag: bcv +Description: Shoo-Minda-Nye +Added: 2009-07-29 +%% +Type: language +Subtag: bcw +Description: Bana +Added: 2009-07-29 +%% +Type: language +Subtag: bcy +Description: Bacama +Added: 2009-07-29 +%% +Type: language +Subtag: bcz +Description: Bainouk-Gunyaamolo +Added: 2009-07-29 +%% +Type: language +Subtag: bda +Description: Bayot +Added: 2009-07-29 +%% +Type: language +Subtag: bdb +Description: Basap +Added: 2009-07-29 +%% +Type: language +Subtag: bdc +Description: Emberá-Baudó +Added: 2009-07-29 +%% +Type: language +Subtag: bdd +Description: Bunama +Added: 2009-07-29 +%% +Type: language +Subtag: bde +Description: Bade +Added: 2009-07-29 +%% +Type: language +Subtag: bdf +Description: Biage +Added: 2010-03-11 +%% +Type: language +Subtag: bdg +Description: Bonggi +Added: 2009-07-29 +%% +Type: language +Subtag: bdh +Description: Baka (Sudan) +Added: 2009-07-29 +%% +Type: language +Subtag: bdi +Description: Burun +Added: 2009-07-29 +%% +Type: language +Subtag: bdj +Description: Bai +Added: 2009-07-29 +%% +Type: language +Subtag: bdk +Description: Budukh +Added: 2009-07-29 +%% +Type: language +Subtag: bdl +Description: Indonesian Bajau +Added: 2009-07-29 +%% +Type: language +Subtag: bdm +Description: Buduma +Added: 2009-07-29 +%% +Type: language +Subtag: bdn +Description: Baldemu +Added: 2009-07-29 +%% +Type: language +Subtag: bdo +Description: Morom +Added: 2009-07-29 +%% +Type: language +Subtag: bdp +Description: Bende +Added: 2009-07-29 +%% +Type: language +Subtag: bdq +Description: Bahnar +Added: 2009-07-29 +%% +Type: language +Subtag: bdr +Description: West Coast Bajau +Added: 2009-07-29 +%% +Type: language +Subtag: bds +Description: Burunge +Added: 2009-07-29 +%% +Type: language +Subtag: bdt +Description: Bokoto +Added: 2009-07-29 +Macrolanguage: gba +%% +Type: language +Subtag: bdu +Description: Oroko +Added: 2009-07-29 +%% +Type: language +Subtag: bdv +Description: Bodo Parja +Added: 2009-07-29 +%% +Type: language +Subtag: bdw +Description: Baham +Added: 2009-07-29 +%% +Type: language +Subtag: bdx +Description: Budong-Budong +Added: 2009-07-29 +%% +Type: language +Subtag: bdy +Description: Bandjalang +Added: 2009-07-29 +%% +Type: language +Subtag: bdz +Description: Badeshi +Added: 2009-07-29 +%% +Type: language +Subtag: bea +Description: Beaver +Added: 2009-07-29 +%% +Type: language +Subtag: beb +Description: Bebele +Added: 2009-07-29 +%% +Type: language +Subtag: bec +Description: Iceve-Maci +Added: 2009-07-29 +%% +Type: language +Subtag: bed +Description: Bedoanas +Added: 2009-07-29 +%% +Type: language +Subtag: bee +Description: Byangsi +Added: 2009-07-29 +%% +Type: language +Subtag: bef +Description: Benabena +Added: 2009-07-29 +%% +Type: language +Subtag: beg +Description: Belait +Added: 2009-07-29 +%% +Type: language +Subtag: beh +Description: Biali +Added: 2009-07-29 +%% +Type: language +Subtag: bei +Description: Bekati' +Added: 2009-07-29 +%% +Type: language +Subtag: bej +Description: Beja +Description: Bedawiyet +Added: 2005-10-16 +%% +Type: language +Subtag: bek +Description: Bebeli +Added: 2009-07-29 +%% +Type: language +Subtag: bem +Description: Bemba (Zambia) +Added: 2005-10-16 +%% +Type: language +Subtag: beo +Description: Beami +Added: 2009-07-29 +%% +Type: language +Subtag: bep +Description: Besoa +Added: 2009-07-29 +%% +Type: language +Subtag: beq +Description: Beembe +Added: 2009-07-29 +%% +Type: language +Subtag: ber +Description: Berber languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: bes +Description: Besme +Added: 2009-07-29 +%% +Type: language +Subtag: bet +Description: Guiberoua Béte +Added: 2009-07-29 +%% +Type: language +Subtag: beu +Description: Blagar +Added: 2009-07-29 +%% +Type: language +Subtag: bev +Description: Daloa Bété +Added: 2009-07-29 +%% +Type: language +Subtag: bew +Description: Betawi +Added: 2009-07-29 +%% +Type: language +Subtag: bex +Description: Jur Modo +Added: 2009-07-29 +%% +Type: language +Subtag: bey +Description: Beli (Papua New Guinea) +Added: 2009-07-29 +%% +Type: language +Subtag: bez +Description: Bena (Tanzania) +Added: 2009-07-29 +%% +Type: language +Subtag: bfa +Description: Bari +Added: 2009-07-29 +%% +Type: language +Subtag: bfb +Description: Pauri Bareli +Added: 2009-07-29 +%% +Type: language +Subtag: bfc +Description: Panyi Bai +Description: Northern Bai +Added: 2009-07-29 +%% +Type: language +Subtag: bfd +Description: Bafut +Added: 2009-07-29 +%% +Type: language +Subtag: bfe +Description: Betaf +Description: Tena +Added: 2009-07-29 +%% +Type: language +Subtag: bff +Description: Bofi +Added: 2009-07-29 +%% +Type: language +Subtag: bfg +Description: Busang Kayan +Added: 2009-07-29 +%% +Type: language +Subtag: bfh +Description: Blafe +Added: 2009-07-29 +%% +Type: language +Subtag: bfi +Description: British Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: bfj +Description: Bafanji +Added: 2009-07-29 +%% +Type: language +Subtag: bfk +Description: Ban Khor Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: bfl +Description: Banda-Ndélé +Added: 2009-07-29 +%% +Type: language +Subtag: bfm +Description: Mmen +Added: 2009-07-29 +%% +Type: language +Subtag: bfn +Description: Bunak +Added: 2009-07-29 +%% +Type: language +Subtag: bfo +Description: Malba Birifor +Added: 2009-07-29 +%% +Type: language +Subtag: bfp +Description: Beba +Added: 2009-07-29 +%% +Type: language +Subtag: bfq +Description: Badaga +Added: 2009-07-29 +%% +Type: language +Subtag: bfr +Description: Bazigar +Added: 2009-07-29 +%% +Type: language +Subtag: bfs +Description: Southern Bai +Added: 2009-07-29 +%% +Type: language +Subtag: bft +Description: Balti +Added: 2009-07-29 +%% +Type: language +Subtag: bfu +Description: Gahri +Added: 2009-07-29 +%% +Type: language +Subtag: bfw +Description: Bondo +Added: 2009-07-29 +%% +Type: language +Subtag: bfx +Description: Bantayanon +Added: 2010-03-11 +%% +Type: language +Subtag: bfy +Description: Bagheli +Added: 2009-07-29 +%% +Type: language +Subtag: bfz +Description: Mahasu Pahari +Added: 2009-07-29 +%% +Type: language +Subtag: bga +Description: Gwamhi-Wuri +Added: 2009-07-29 +%% +Type: language +Subtag: bgb +Description: Bobongko +Added: 2009-07-29 +%% +Type: language +Subtag: bgc +Description: Haryanvi +Added: 2009-07-29 +%% +Type: language +Subtag: bgd +Description: Rathwi Bareli +Added: 2009-07-29 +%% +Type: language +Subtag: bge +Description: Bauria +Added: 2009-07-29 +%% +Type: language +Subtag: bgf +Description: Bangandu +Added: 2009-07-29 +%% +Type: language +Subtag: bgg +Description: Bugun +Added: 2009-07-29 +%% +Type: language +Subtag: bgi +Description: Giangan +Added: 2009-07-29 +%% +Type: language +Subtag: bgj +Description: Bangolan +Added: 2009-07-29 +%% +Type: language +Subtag: bgk +Description: Bit +Description: Buxinhua +Added: 2009-07-29 +%% +Type: language +Subtag: bgl +Description: Bo (Laos) +Added: 2009-07-29 +%% +Type: language +Subtag: bgm +Description: Baga Mboteni +Added: 2009-07-29 +%% +Type: language +Subtag: bgn +Description: Western Balochi +Added: 2009-07-29 +Macrolanguage: bal +%% +Type: language +Subtag: bgo +Description: Baga Koga +Added: 2009-07-29 +%% +Type: language +Subtag: bgp +Description: Eastern Balochi +Added: 2009-07-29 +Macrolanguage: bal +%% +Type: language +Subtag: bgq +Description: Bagri +Added: 2009-07-29 +Macrolanguage: raj +%% +Type: language +Subtag: bgr +Description: Bawm Chin +Added: 2009-07-29 +%% +Type: language +Subtag: bgs +Description: Tagabawa +Added: 2009-07-29 +%% +Type: language +Subtag: bgt +Description: Bughotu +Added: 2009-07-29 +%% +Type: language +Subtag: bgu +Description: Mbongno +Added: 2009-07-29 +%% +Type: language +Subtag: bgv +Description: Warkay-Bipim +Added: 2009-07-29 +%% +Type: language +Subtag: bgw +Description: Bhatri +Added: 2009-07-29 +%% +Type: language +Subtag: bgx +Description: Balkan Gagauz Turkish +Added: 2009-07-29 +%% +Type: language +Subtag: bgy +Description: Benggoi +Added: 2009-07-29 +%% +Type: language +Subtag: bgz +Description: Banggai +Added: 2009-07-29 +%% +Type: language +Subtag: bha +Description: Bharia +Added: 2009-07-29 +%% +Type: language +Subtag: bhb +Description: Bhili +Added: 2009-07-29 +%% +Type: language +Subtag: bhc +Description: Biga +Added: 2009-07-29 +%% +Type: language +Subtag: bhd +Description: Bhadrawahi +Added: 2009-07-29 +%% +Type: language +Subtag: bhe +Description: Bhaya +Added: 2009-07-29 +%% +Type: language +Subtag: bhf +Description: Odiai +Added: 2009-07-29 +%% +Type: language +Subtag: bhg +Description: Binandere +Added: 2009-07-29 +%% +Type: language +Subtag: bhh +Description: Bukharic +Added: 2009-07-29 +%% +Type: language +Subtag: bhi +Description: Bhilali +Added: 2009-07-29 +%% +Type: language +Subtag: bhj +Description: Bahing +Added: 2009-07-29 +%% +Type: language +Subtag: bhk +Description: Albay Bicolano +Added: 2009-07-29 +Deprecated: 2010-03-11 +Macrolanguage: bik +Comments: see fbl, lbl, rbl, ubl +%% +Type: language +Subtag: bhl +Description: Bimin +Added: 2009-07-29 +%% +Type: language +Subtag: bhm +Description: Bathari +Added: 2009-07-29 +%% +Type: language +Subtag: bhn +Description: Bohtan Neo-Aramaic +Added: 2009-07-29 +%% +Type: language +Subtag: bho +Description: Bhojpuri +Added: 2005-10-16 +%% +Type: language +Subtag: bhp +Description: Bima +Added: 2009-07-29 +%% +Type: language +Subtag: bhq +Description: Tukang Besi South +Added: 2009-07-29 +%% +Type: language +Subtag: bhr +Description: Bara Malagasy +Added: 2009-07-29 +Macrolanguage: mg +%% +Type: language +Subtag: bhs +Description: Buwal +Added: 2009-07-29 +%% +Type: language +Subtag: bht +Description: Bhattiyali +Added: 2009-07-29 +%% +Type: language +Subtag: bhu +Description: Bhunjia +Added: 2009-07-29 +%% +Type: language +Subtag: bhv +Description: Bahau +Added: 2009-07-29 +%% +Type: language +Subtag: bhw +Description: Biak +Added: 2009-07-29 +%% +Type: language +Subtag: bhx +Description: Bhalay +Added: 2009-07-29 +%% +Type: language +Subtag: bhy +Description: Bhele +Added: 2009-07-29 +%% +Type: language +Subtag: bhz +Description: Bada (Indonesia) +Added: 2009-07-29 +%% +Type: language +Subtag: bia +Description: Badimaya +Added: 2009-07-29 +%% +Type: language +Subtag: bib +Description: Bissa +Description: Bisa +Added: 2009-07-29 +%% +Type: language +Subtag: bic +Description: Bikaru +Added: 2009-07-29 +%% +Type: language +Subtag: bid +Description: Bidiyo +Added: 2009-07-29 +%% +Type: language +Subtag: bie +Description: Bepour +Added: 2009-07-29 +%% +Type: language +Subtag: bif +Description: Biafada +Added: 2009-07-29 +%% +Type: language +Subtag: big +Description: Biangai +Added: 2009-07-29 +%% +Type: language +Subtag: bij +Description: Vaghat-Ya-Bijim-Legeri +Added: 2009-07-29 +%% +Type: language +Subtag: bik +Description: Bikol +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: bil +Description: Bile +Added: 2009-07-29 +%% +Type: language +Subtag: bim +Description: Bimoba +Added: 2009-07-29 +%% +Type: language +Subtag: bin +Description: Bini +Description: Edo +Added: 2005-10-16 +%% +Type: language +Subtag: bio +Description: Nai +Added: 2009-07-29 +%% +Type: language +Subtag: bip +Description: Bila +Added: 2009-07-29 +%% +Type: language +Subtag: biq +Description: Bipi +Added: 2009-07-29 +%% +Type: language +Subtag: bir +Description: Bisorio +Added: 2009-07-29 +%% +Type: language +Subtag: bit +Description: Berinomo +Added: 2009-07-29 +%% +Type: language +Subtag: biu +Description: Biete +Added: 2009-07-29 +%% +Type: language +Subtag: biv +Description: Southern Birifor +Added: 2009-07-29 +%% +Type: language +Subtag: biw +Description: Kol (Cameroon) +Added: 2009-07-29 +%% +Type: language +Subtag: bix +Description: Bijori +Added: 2009-07-29 +%% +Type: language +Subtag: biy +Description: Birhor +Added: 2009-07-29 +%% +Type: language +Subtag: biz +Description: Baloi +Added: 2009-07-29 +%% +Type: language +Subtag: bja +Description: Budza +Added: 2009-07-29 +%% +Type: language +Subtag: bjb +Description: Banggarla +Added: 2009-07-29 +%% +Type: language +Subtag: bjc +Description: Bariji +Added: 2009-07-29 +%% +Type: language +Subtag: bjd +Description: Bandjigali +Added: 2009-07-29 +Deprecated: 2012-08-12 +Preferred-Value: drl +%% +Type: language +Subtag: bje +Description: Biao-Jiao Mien +Added: 2009-07-29 +%% +Type: language +Subtag: bjf +Description: Barzani Jewish Neo-Aramaic +Added: 2009-07-29 +%% +Type: language +Subtag: bjg +Description: Bidyogo +Added: 2009-07-29 +%% +Type: language +Subtag: bjh +Description: Bahinemo +Added: 2009-07-29 +%% +Type: language +Subtag: bji +Description: Burji +Added: 2009-07-29 +%% +Type: language +Subtag: bjj +Description: Kanauji +Added: 2009-07-29 +%% +Type: language +Subtag: bjk +Description: Barok +Added: 2009-07-29 +%% +Type: language +Subtag: bjl +Description: Bulu (Papua New Guinea) +Added: 2009-07-29 +%% +Type: language +Subtag: bjm +Description: Bajelani +Added: 2009-07-29 +%% +Type: language +Subtag: bjn +Description: Banjar +Added: 2009-07-29 +Macrolanguage: ms +%% +Type: language +Subtag: bjo +Description: Mid-Southern Banda +Added: 2009-07-29 +%% +Type: language +Subtag: bjp +Description: Fanamaket +Added: 2013-09-10 +%% +Type: language +Subtag: bjq +Description: Southern Betsimisaraka Malagasy +Added: 2009-07-29 +Deprecated: 2011-08-16 +Macrolanguage: mg +Comments: see bzc, tkg +%% +Type: language +Subtag: bjr +Description: Binumarien +Added: 2009-07-29 +%% +Type: language +Subtag: bjs +Description: Bajan +Added: 2009-07-29 +%% +Type: language +Subtag: bjt +Description: Balanta-Ganja +Added: 2009-07-29 +%% +Type: language +Subtag: bju +Description: Busuu +Added: 2009-07-29 +%% +Type: language +Subtag: bjv +Description: Bedjond +Added: 2009-07-29 +%% +Type: language +Subtag: bjw +Description: Bakwé +Added: 2009-07-29 +%% +Type: language +Subtag: bjx +Description: Banao Itneg +Added: 2009-07-29 +%% +Type: language +Subtag: bjy +Description: Bayali +Added: 2009-07-29 +%% +Type: language +Subtag: bjz +Description: Baruga +Added: 2009-07-29 +%% +Type: language +Subtag: bka +Description: Kyak +Added: 2009-07-29 +%% +Type: language +Subtag: bkb +Description: Finallig +Added: 2009-07-29 +Deprecated: 2010-03-11 +Comments: see ebk, obk +%% +Type: language +Subtag: bkc +Description: Baka (Cameroon) +Added: 2009-07-29 +%% +Type: language +Subtag: bkd +Description: Binukid +Description: Talaandig +Added: 2009-07-29 +%% +Type: language +Subtag: bkf +Description: Beeke +Added: 2009-07-29 +%% +Type: language +Subtag: bkg +Description: Buraka +Added: 2009-07-29 +%% +Type: language +Subtag: bkh +Description: Bakoko +Added: 2009-07-29 +%% +Type: language +Subtag: bki +Description: Baki +Added: 2009-07-29 +%% +Type: language +Subtag: bkj +Description: Pande +Added: 2009-07-29 +%% +Type: language +Subtag: bkk +Description: Brokskat +Added: 2009-07-29 +%% +Type: language +Subtag: bkl +Description: Berik +Added: 2009-07-29 +%% +Type: language +Subtag: bkm +Description: Kom (Cameroon) +Added: 2009-07-29 +%% +Type: language +Subtag: bkn +Description: Bukitan +Added: 2009-07-29 +%% +Type: language +Subtag: bko +Description: Kwa' +Added: 2009-07-29 +%% +Type: language +Subtag: bkp +Description: Boko (Democratic Republic of Congo) +Added: 2009-07-29 +%% +Type: language +Subtag: bkq +Description: Bakairí +Added: 2009-07-29 +%% +Type: language +Subtag: bkr +Description: Bakumpai +Added: 2009-07-29 +%% +Type: language +Subtag: bks +Description: Northern Sorsoganon +Added: 2009-07-29 +%% +Type: language +Subtag: bkt +Description: Boloki +Added: 2009-07-29 +%% +Type: language +Subtag: bku +Description: Buhid +Added: 2009-07-29 +%% +Type: language +Subtag: bkv +Description: Bekwarra +Added: 2009-07-29 +%% +Type: language +Subtag: bkw +Description: Bekwel +Added: 2009-07-29 +%% +Type: language +Subtag: bkx +Description: Baikeno +Added: 2009-07-29 +%% +Type: language +Subtag: bky +Description: Bokyi +Added: 2009-07-29 +%% +Type: language +Subtag: bkz +Description: Bungku +Added: 2009-07-29 +%% +Type: language +Subtag: bla +Description: Siksika +Added: 2005-10-16 +%% +Type: language +Subtag: blb +Description: Bilua +Added: 2009-07-29 +%% +Type: language +Subtag: blc +Description: Bella Coola +Added: 2009-07-29 +%% +Type: language +Subtag: bld +Description: Bolango +Added: 2009-07-29 +%% +Type: language +Subtag: ble +Description: Balanta-Kentohe +Added: 2009-07-29 +%% +Type: language +Subtag: blf +Description: Buol +Added: 2009-07-29 +%% +Type: language +Subtag: blg +Description: Balau +Added: 2009-07-29 +%% +Type: language +Subtag: blh +Description: Kuwaa +Added: 2009-07-29 +%% +Type: language +Subtag: bli +Description: Bolia +Added: 2009-07-29 +%% +Type: language +Subtag: blj +Description: Bolongan +Added: 2009-07-29 +%% +Type: language +Subtag: blk +Description: Pa'o Karen +Description: Pa'O +Added: 2009-07-29 +%% +Type: language +Subtag: bll +Description: Biloxi +Added: 2009-07-29 +%% +Type: language +Subtag: blm +Description: Beli (Sudan) +Added: 2009-07-29 +%% +Type: language +Subtag: bln +Description: Southern Catanduanes Bikol +Added: 2009-07-29 +Macrolanguage: bik +%% +Type: language +Subtag: blo +Description: Anii +Added: 2009-07-29 +%% +Type: language +Subtag: blp +Description: Blablanga +Added: 2009-07-29 +%% +Type: language +Subtag: blq +Description: Baluan-Pam +Added: 2009-07-29 +%% +Type: language +Subtag: blr +Description: Blang +Added: 2009-07-29 +%% +Type: language +Subtag: bls +Description: Balaesang +Added: 2009-07-29 +%% +Type: language +Subtag: blt +Description: Tai Dam +Added: 2009-07-29 +%% +Type: language +Subtag: blv +Description: Bolo +Added: 2009-07-29 +%% +Type: language +Subtag: blw +Description: Balangao +Added: 2009-07-29 +%% +Type: language +Subtag: blx +Description: Mag-Indi Ayta +Added: 2009-07-29 +%% +Type: language +Subtag: bly +Description: Notre +Added: 2009-07-29 +%% +Type: language +Subtag: blz +Description: Balantak +Added: 2009-07-29 +%% +Type: language +Subtag: bma +Description: Lame +Added: 2009-07-29 +%% +Type: language +Subtag: bmb +Description: Bembe +Added: 2009-07-29 +%% +Type: language +Subtag: bmc +Description: Biem +Added: 2009-07-29 +%% +Type: language +Subtag: bmd +Description: Baga Manduri +Added: 2009-07-29 +%% +Type: language +Subtag: bme +Description: Limassa +Added: 2009-07-29 +%% +Type: language +Subtag: bmf +Description: Bom +Added: 2009-07-29 +%% +Type: language +Subtag: bmg +Description: Bamwe +Added: 2009-07-29 +%% +Type: language +Subtag: bmh +Description: Kein +Added: 2009-07-29 +%% +Type: language +Subtag: bmi +Description: Bagirmi +Added: 2009-07-29 +%% +Type: language +Subtag: bmj +Description: Bote-Majhi +Added: 2009-07-29 +%% +Type: language +Subtag: bmk +Description: Ghayavi +Added: 2009-07-29 +%% +Type: language +Subtag: bml +Description: Bomboli +Added: 2009-07-29 +%% +Type: language +Subtag: bmm +Description: Northern Betsimisaraka Malagasy +Added: 2009-07-29 +Macrolanguage: mg +%% +Type: language +Subtag: bmn +Description: Bina (Papua New Guinea) +Added: 2009-07-29 +%% +Type: language +Subtag: bmo +Description: Bambalang +Added: 2009-07-29 +%% +Type: language +Subtag: bmp +Description: Bulgebi +Added: 2009-07-29 +%% +Type: language +Subtag: bmq +Description: Bomu +Added: 2009-07-29 +%% +Type: language +Subtag: bmr +Description: Muinane +Added: 2009-07-29 +%% +Type: language +Subtag: bms +Description: Bilma Kanuri +Added: 2009-07-29 +%% +Type: language +Subtag: bmt +Description: Biao Mon +Added: 2009-07-29 +%% +Type: language +Subtag: bmu +Description: Somba-Siawari +Added: 2009-07-29 +%% +Type: language +Subtag: bmv +Description: Bum +Added: 2009-07-29 +%% +Type: language +Subtag: bmw +Description: Bomwali +Added: 2009-07-29 +%% +Type: language +Subtag: bmx +Description: Baimak +Added: 2009-07-29 +%% +Type: language +Subtag: bmy +Description: Bemba (Democratic Republic of Congo) +Added: 2009-07-29 +Deprecated: 2015-02-12 +%% +Type: language +Subtag: bmz +Description: Baramu +Added: 2009-07-29 +%% +Type: language +Subtag: bna +Description: Bonerate +Added: 2009-07-29 +%% +Type: language +Subtag: bnb +Description: Bookan +Added: 2009-07-29 +%% +Type: language +Subtag: bnc +Description: Bontok +Added: 2009-07-29 +Scope: macrolanguage +%% +Type: language +Subtag: bnd +Description: Banda (Indonesia) +Added: 2009-07-29 +%% +Type: language +Subtag: bne +Description: Bintauna +Added: 2009-07-29 +%% +Type: language +Subtag: bnf +Description: Masiwang +Added: 2009-07-29 +%% +Type: language +Subtag: bng +Description: Benga +Added: 2009-07-29 +%% +Type: language +Subtag: bni +Description: Bangi +Added: 2009-07-29 +%% +Type: language +Subtag: bnj +Description: Eastern Tawbuid +Added: 2009-07-29 +%% +Type: language +Subtag: bnk +Description: Bierebo +Added: 2009-07-29 +%% +Type: language +Subtag: bnl +Description: Boon +Added: 2009-07-29 +%% +Type: language +Subtag: bnm +Description: Batanga +Added: 2009-07-29 +%% +Type: language +Subtag: bnn +Description: Bunun +Added: 2009-07-29 +%% +Type: language +Subtag: bno +Description: Bantoanon +Added: 2009-07-29 +%% +Type: language +Subtag: bnp +Description: Bola +Added: 2009-07-29 +%% +Type: language +Subtag: bnq +Description: Bantik +Added: 2009-07-29 +%% +Type: language +Subtag: bnr +Description: Butmas-Tur +Added: 2009-07-29 +%% +Type: language +Subtag: bns +Description: Bundeli +Added: 2009-07-29 +%% +Type: language +Subtag: bnt +Description: Bantu languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: bnu +Description: Bentong +Added: 2009-07-29 +%% +Type: language +Subtag: bnv +Description: Bonerif +Description: Beneraf +Description: Edwas +Added: 2009-07-29 +%% +Type: language +Subtag: bnw +Description: Bisis +Added: 2009-07-29 +%% +Type: language +Subtag: bnx +Description: Bangubangu +Added: 2009-07-29 +%% +Type: language +Subtag: bny +Description: Bintulu +Added: 2009-07-29 +%% +Type: language +Subtag: bnz +Description: Beezen +Added: 2009-07-29 +%% +Type: language +Subtag: boa +Description: Bora +Added: 2009-07-29 +%% +Type: language +Subtag: bob +Description: Aweer +Added: 2009-07-29 +%% +Type: language +Subtag: boe +Description: Mundabli +Added: 2009-07-29 +%% +Type: language +Subtag: bof +Description: Bolon +Added: 2009-07-29 +%% +Type: language +Subtag: bog +Description: Bamako Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: boh +Description: Boma +Added: 2009-07-29 +%% +Type: language +Subtag: boi +Description: Barbareño +Added: 2009-07-29 +%% +Type: language +Subtag: boj +Description: Anjam +Added: 2009-07-29 +%% +Type: language +Subtag: bok +Description: Bonjo +Added: 2009-07-29 +%% +Type: language +Subtag: bol +Description: Bole +Added: 2009-07-29 +%% +Type: language +Subtag: bom +Description: Berom +Added: 2009-07-29 +%% +Type: language +Subtag: bon +Description: Bine +Added: 2009-07-29 +%% +Type: language +Subtag: boo +Description: Tiemacèwè Bozo +Added: 2009-07-29 +%% +Type: language +Subtag: bop +Description: Bonkiman +Added: 2009-07-29 +%% +Type: language +Subtag: boq +Description: Bogaya +Added: 2009-07-29 +%% +Type: language +Subtag: bor +Description: Borôro +Added: 2009-07-29 +%% +Type: language +Subtag: bot +Description: Bongo +Added: 2009-07-29 +%% +Type: language +Subtag: bou +Description: Bondei +Added: 2009-07-29 +%% +Type: language +Subtag: bov +Description: Tuwuli +Added: 2009-07-29 +%% +Type: language +Subtag: bow +Description: Rema +Added: 2009-07-29 +%% +Type: language +Subtag: box +Description: Buamu +Added: 2009-07-29 +%% +Type: language +Subtag: boy +Description: Bodo (Central African Republic) +Added: 2009-07-29 +%% +Type: language +Subtag: boz +Description: Tiéyaxo Bozo +Added: 2009-07-29 +%% +Type: language +Subtag: bpa +Description: Daakaka +Added: 2009-07-29 +%% +Type: language +Subtag: bpb +Description: Barbacoas +Added: 2009-07-29 +%% +Type: language +Subtag: bpd +Description: Banda-Banda +Added: 2009-07-29 +%% +Type: language +Subtag: bpg +Description: Bonggo +Added: 2009-07-29 +%% +Type: language +Subtag: bph +Description: Botlikh +Added: 2009-07-29 +%% +Type: language +Subtag: bpi +Description: Bagupi +Added: 2009-07-29 +%% +Type: language +Subtag: bpj +Description: Binji +Added: 2009-07-29 +%% +Type: language +Subtag: bpk +Description: Orowe +Description: 'Ôrôê +Added: 2009-07-29 +%% +Type: language +Subtag: bpl +Description: Broome Pearling Lugger Pidgin +Added: 2009-07-29 +%% +Type: language +Subtag: bpm +Description: Biyom +Added: 2009-07-29 +%% +Type: language +Subtag: bpn +Description: Dzao Min +Added: 2009-07-29 +%% +Type: language +Subtag: bpo +Description: Anasi +Added: 2009-07-29 +%% +Type: language +Subtag: bpp +Description: Kaure +Added: 2009-07-29 +%% +Type: language +Subtag: bpq +Description: Banda Malay +Added: 2009-07-29 +%% +Type: language +Subtag: bpr +Description: Koronadal Blaan +Added: 2009-07-29 +%% +Type: language +Subtag: bps +Description: Sarangani Blaan +Added: 2009-07-29 +%% +Type: language +Subtag: bpt +Description: Barrow Point +Added: 2009-07-29 +%% +Type: language +Subtag: bpu +Description: Bongu +Added: 2009-07-29 +%% +Type: language +Subtag: bpv +Description: Bian Marind +Added: 2009-07-29 +%% +Type: language +Subtag: bpw +Description: Bo (Papua New Guinea) +Added: 2009-07-29 +%% +Type: language +Subtag: bpx +Description: Palya Bareli +Added: 2009-07-29 +%% +Type: language +Subtag: bpy +Description: Bishnupriya +Added: 2009-07-29 +%% +Type: language +Subtag: bpz +Description: Bilba +Added: 2009-07-29 +%% +Type: language +Subtag: bqa +Description: Tchumbuli +Added: 2009-07-29 +%% +Type: language +Subtag: bqb +Description: Bagusa +Added: 2009-07-29 +%% +Type: language +Subtag: bqc +Description: Boko (Benin) +Description: Boo +Added: 2009-07-29 +%% +Type: language +Subtag: bqd +Description: Bung +Added: 2009-07-29 +%% +Type: language +Subtag: bqf +Description: Baga Kaloum +Added: 2009-07-29 +%% +Type: language +Subtag: bqg +Description: Bago-Kusuntu +Added: 2009-07-29 +%% +Type: language +Subtag: bqh +Description: Baima +Added: 2009-07-29 +%% +Type: language +Subtag: bqi +Description: Bakhtiari +Added: 2009-07-29 +%% +Type: language +Subtag: bqj +Description: Bandial +Added: 2009-07-29 +%% +Type: language +Subtag: bqk +Description: Banda-Mbrès +Added: 2009-07-29 +%% +Type: language +Subtag: bql +Description: Bilakura +Added: 2009-07-29 +%% +Type: language +Subtag: bqm +Description: Wumboko +Added: 2009-07-29 +%% +Type: language +Subtag: bqn +Description: Bulgarian Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: bqo +Description: Balo +Added: 2009-07-29 +%% +Type: language +Subtag: bqp +Description: Busa +Added: 2009-07-29 +%% +Type: language +Subtag: bqq +Description: Biritai +Added: 2009-07-29 +%% +Type: language +Subtag: bqr +Description: Burusu +Added: 2009-07-29 +%% +Type: language +Subtag: bqs +Description: Bosngun +Added: 2009-07-29 +%% +Type: language +Subtag: bqt +Description: Bamukumbit +Added: 2009-07-29 +%% +Type: language +Subtag: bqu +Description: Boguru +Added: 2009-07-29 +%% +Type: language +Subtag: bqv +Description: Koro Wachi +Description: Begbere-Ejar +Added: 2009-07-29 +%% +Type: language +Subtag: bqw +Description: Buru (Nigeria) +Added: 2009-07-29 +%% +Type: language +Subtag: bqx +Description: Baangi +Added: 2009-07-29 +%% +Type: language +Subtag: bqy +Description: Bengkala Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: bqz +Description: Bakaka +Added: 2009-07-29 +%% +Type: language +Subtag: bra +Description: Braj +Added: 2005-10-16 +%% +Type: language +Subtag: brb +Description: Lave +Added: 2009-07-29 +%% +Type: language +Subtag: brc +Description: Berbice Creole Dutch +Added: 2009-07-29 +%% +Type: language +Subtag: brd +Description: Baraamu +Added: 2009-07-29 +%% +Type: language +Subtag: brf +Description: Bera +Added: 2009-07-29 +%% +Type: language +Subtag: brg +Description: Baure +Added: 2009-07-29 +%% +Type: language +Subtag: brh +Description: Brahui +Added: 2009-07-29 +%% +Type: language +Subtag: bri +Description: Mokpwe +Added: 2009-07-29 +%% +Type: language +Subtag: brj +Description: Bieria +Added: 2009-07-29 +%% +Type: language +Subtag: brk +Description: Birked +Added: 2009-07-29 +%% +Type: language +Subtag: brl +Description: Birwa +Added: 2009-07-29 +%% +Type: language +Subtag: brm +Description: Barambu +Added: 2009-07-29 +%% +Type: language +Subtag: brn +Description: Boruca +Added: 2009-07-29 +%% +Type: language +Subtag: bro +Description: Brokkat +Added: 2009-07-29 +%% +Type: language +Subtag: brp +Description: Barapasi +Added: 2009-07-29 +%% +Type: language +Subtag: brq +Description: Breri +Added: 2009-07-29 +%% +Type: language +Subtag: brr +Description: Birao +Added: 2009-07-29 +%% +Type: language +Subtag: brs +Description: Baras +Added: 2009-07-29 +%% +Type: language +Subtag: brt +Description: Bitare +Added: 2009-07-29 +%% +Type: language +Subtag: bru +Description: Eastern Bru +Added: 2009-07-29 +%% +Type: language +Subtag: brv +Description: Western Bru +Added: 2009-07-29 +%% +Type: language +Subtag: brw +Description: Bellari +Added: 2009-07-29 +%% +Type: language +Subtag: brx +Description: Bodo (India) +Added: 2009-07-29 +%% +Type: language +Subtag: bry +Description: Burui +Added: 2009-07-29 +%% +Type: language +Subtag: brz +Description: Bilbil +Added: 2009-07-29 +%% +Type: language +Subtag: bsa +Description: Abinomn +Added: 2009-07-29 +%% +Type: language +Subtag: bsb +Description: Brunei Bisaya +Added: 2009-07-29 +%% +Type: language +Subtag: bsc +Description: Bassari +Description: Oniyan +Added: 2009-07-29 +%% +Type: language +Subtag: bse +Description: Wushi +Added: 2009-07-29 +%% +Type: language +Subtag: bsf +Description: Bauchi +Added: 2009-07-29 +%% +Type: language +Subtag: bsg +Description: Bashkardi +Added: 2009-07-29 +%% +Type: language +Subtag: bsh +Description: Kati +Added: 2009-07-29 +%% +Type: language +Subtag: bsi +Description: Bassossi +Added: 2009-07-29 +%% +Type: language +Subtag: bsj +Description: Bangwinji +Added: 2009-07-29 +%% +Type: language +Subtag: bsk +Description: Burushaski +Added: 2009-07-29 +%% +Type: language +Subtag: bsl +Description: Basa-Gumna +Added: 2009-07-29 +%% +Type: language +Subtag: bsm +Description: Busami +Added: 2009-07-29 +%% +Type: language +Subtag: bsn +Description: Barasana-Eduria +Added: 2009-07-29 +%% +Type: language +Subtag: bso +Description: Buso +Added: 2009-07-29 +%% +Type: language +Subtag: bsp +Description: Baga Sitemu +Added: 2009-07-29 +%% +Type: language +Subtag: bsq +Description: Bassa +Added: 2009-07-29 +%% +Type: language +Subtag: bsr +Description: Bassa-Kontagora +Added: 2009-07-29 +%% +Type: language +Subtag: bss +Description: Akoose +Added: 2009-07-29 +%% +Type: language +Subtag: bst +Description: Basketo +Added: 2009-07-29 +%% +Type: language +Subtag: bsu +Description: Bahonsuai +Added: 2009-07-29 +%% +Type: language +Subtag: bsv +Description: Baga Sobané +Added: 2009-07-29 +%% +Type: language +Subtag: bsw +Description: Baiso +Added: 2009-07-29 +%% +Type: language +Subtag: bsx +Description: Yangkam +Added: 2009-07-29 +%% +Type: language +Subtag: bsy +Description: Sabah Bisaya +Added: 2009-07-29 +%% +Type: language +Subtag: bta +Description: Bata +Added: 2009-07-29 +%% +Type: language +Subtag: btb +Description: Beti (Cameroon) +Added: 2009-07-29 +Deprecated: 2010-03-11 +Comments: see beb, bum, bxp, eto, ewo, fan, mct +%% +Type: language +Subtag: btc +Description: Bati (Cameroon) +Added: 2009-07-29 +%% +Type: language +Subtag: btd +Description: Batak Dairi +Added: 2009-07-29 +%% +Type: language +Subtag: bte +Description: Gamo-Ningi +Added: 2009-07-29 +%% +Type: language +Subtag: btf +Description: Birgit +Added: 2009-07-29 +%% +Type: language +Subtag: btg +Description: Gagnoa Bété +Added: 2009-07-29 +%% +Type: language +Subtag: bth +Description: Biatah Bidayuh +Added: 2009-07-29 +%% +Type: language +Subtag: bti +Description: Burate +Added: 2009-07-29 +%% +Type: language +Subtag: btj +Description: Bacanese Malay +Added: 2009-07-29 +Macrolanguage: ms +%% +Type: language +Subtag: btk +Description: Batak languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: btl +Description: Bhatola +Added: 2009-07-29 +%% +Type: language +Subtag: btm +Description: Batak Mandailing +Added: 2009-07-29 +%% +Type: language +Subtag: btn +Description: Ratagnon +Added: 2009-07-29 +%% +Type: language +Subtag: bto +Description: Rinconada Bikol +Added: 2009-07-29 +Macrolanguage: bik +%% +Type: language +Subtag: btp +Description: Budibud +Added: 2009-07-29 +%% +Type: language +Subtag: btq +Description: Batek +Added: 2009-07-29 +%% +Type: language +Subtag: btr +Description: Baetora +Added: 2009-07-29 +%% +Type: language +Subtag: bts +Description: Batak Simalungun +Added: 2009-07-29 +%% +Type: language +Subtag: btt +Description: Bete-Bendi +Added: 2009-07-29 +%% +Type: language +Subtag: btu +Description: Batu +Added: 2009-07-29 +%% +Type: language +Subtag: btv +Description: Bateri +Added: 2009-07-29 +%% +Type: language +Subtag: btw +Description: Butuanon +Added: 2009-07-29 +%% +Type: language +Subtag: btx +Description: Batak Karo +Added: 2009-07-29 +%% +Type: language +Subtag: bty +Description: Bobot +Added: 2009-07-29 +%% +Type: language +Subtag: btz +Description: Batak Alas-Kluet +Added: 2009-07-29 +%% +Type: language +Subtag: bua +Description: Buriat +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: bub +Description: Bua +Added: 2009-07-29 +%% +Type: language +Subtag: buc +Description: Bushi +Added: 2009-07-29 +%% +Type: language +Subtag: bud +Description: Ntcham +Added: 2009-07-29 +%% +Type: language +Subtag: bue +Description: Beothuk +Added: 2009-07-29 +%% +Type: language +Subtag: buf +Description: Bushoong +Added: 2009-07-29 +%% +Type: language +Subtag: bug +Description: Buginese +Added: 2005-10-16 +%% +Type: language +Subtag: buh +Description: Younuo Bunu +Added: 2009-07-29 +%% +Type: language +Subtag: bui +Description: Bongili +Added: 2009-07-29 +%% +Type: language +Subtag: buj +Description: Basa-Gurmana +Added: 2009-07-29 +%% +Type: language +Subtag: buk +Description: Bugawac +Added: 2009-07-29 +%% +Type: language +Subtag: bum +Description: Bulu (Cameroon) +Added: 2009-07-29 +%% +Type: language +Subtag: bun +Description: Sherbro +Added: 2009-07-29 +%% +Type: language +Subtag: buo +Description: Terei +Added: 2009-07-29 +%% +Type: language +Subtag: bup +Description: Busoa +Added: 2009-07-29 +%% +Type: language +Subtag: buq +Description: Brem +Added: 2009-07-29 +%% +Type: language +Subtag: bus +Description: Bokobaru +Added: 2009-07-29 +%% +Type: language +Subtag: but +Description: Bungain +Added: 2009-07-29 +%% +Type: language +Subtag: buu +Description: Budu +Added: 2009-07-29 +%% +Type: language +Subtag: buv +Description: Bun +Added: 2009-07-29 +%% +Type: language +Subtag: buw +Description: Bubi +Added: 2009-07-29 +%% +Type: language +Subtag: bux +Description: Boghom +Added: 2009-07-29 +%% +Type: language +Subtag: buy +Description: Bullom So +Added: 2009-07-29 +%% +Type: language +Subtag: buz +Description: Bukwen +Added: 2009-07-29 +%% +Type: language +Subtag: bva +Description: Barein +Added: 2009-07-29 +%% +Type: language +Subtag: bvb +Description: Bube +Added: 2009-07-29 +%% +Type: language +Subtag: bvc +Description: Baelelea +Added: 2009-07-29 +%% +Type: language +Subtag: bvd +Description: Baeggu +Added: 2009-07-29 +%% +Type: language +Subtag: bve +Description: Berau Malay +Added: 2009-07-29 +Macrolanguage: ms +%% +Type: language +Subtag: bvf +Description: Boor +Added: 2009-07-29 +%% +Type: language +Subtag: bvg +Description: Bonkeng +Added: 2009-07-29 +%% +Type: language +Subtag: bvh +Description: Bure +Added: 2009-07-29 +%% +Type: language +Subtag: bvi +Description: Belanda Viri +Added: 2009-07-29 +%% +Type: language +Subtag: bvj +Description: Baan +Added: 2009-07-29 +%% +Type: language +Subtag: bvk +Description: Bukat +Added: 2009-07-29 +%% +Type: language +Subtag: bvl +Description: Bolivian Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: bvm +Description: Bamunka +Added: 2009-07-29 +%% +Type: language +Subtag: bvn +Description: Buna +Added: 2009-07-29 +%% +Type: language +Subtag: bvo +Description: Bolgo +Added: 2009-07-29 +%% +Type: language +Subtag: bvp +Description: Bumang +Added: 2013-09-10 +%% +Type: language +Subtag: bvq +Description: Birri +Added: 2009-07-29 +%% +Type: language +Subtag: bvr +Description: Burarra +Added: 2009-07-29 +%% +Type: language +Subtag: bvt +Description: Bati (Indonesia) +Added: 2009-07-29 +%% +Type: language +Subtag: bvu +Description: Bukit Malay +Added: 2009-07-29 +Macrolanguage: ms +%% +Type: language +Subtag: bvv +Description: Baniva +Added: 2009-07-29 +%% +Type: language +Subtag: bvw +Description: Boga +Added: 2009-07-29 +%% +Type: language +Subtag: bvx +Description: Dibole +Added: 2009-07-29 +%% +Type: language +Subtag: bvy +Description: Baybayanon +Added: 2010-03-11 +%% +Type: language +Subtag: bvz +Description: Bauzi +Added: 2009-07-29 +%% +Type: language +Subtag: bwa +Description: Bwatoo +Added: 2009-07-29 +%% +Type: language +Subtag: bwb +Description: Namosi-Naitasiri-Serua +Added: 2009-07-29 +%% +Type: language +Subtag: bwc +Description: Bwile +Added: 2009-07-29 +%% +Type: language +Subtag: bwd +Description: Bwaidoka +Added: 2009-07-29 +%% +Type: language +Subtag: bwe +Description: Bwe Karen +Added: 2009-07-29 +%% +Type: language +Subtag: bwf +Description: Boselewa +Added: 2009-07-29 +%% +Type: language +Subtag: bwg +Description: Barwe +Added: 2009-07-29 +%% +Type: language +Subtag: bwh +Description: Bishuo +Added: 2009-07-29 +%% +Type: language +Subtag: bwi +Description: Baniwa +Added: 2009-07-29 +%% +Type: language +Subtag: bwj +Description: Láá Láá Bwamu +Added: 2009-07-29 +%% +Type: language +Subtag: bwk +Description: Bauwaki +Added: 2009-07-29 +%% +Type: language +Subtag: bwl +Description: Bwela +Added: 2009-07-29 +%% +Type: language +Subtag: bwm +Description: Biwat +Added: 2009-07-29 +%% +Type: language +Subtag: bwn +Description: Wunai Bunu +Added: 2009-07-29 +%% +Type: language +Subtag: bwo +Description: Boro (Ethiopia) +Description: Borna (Ethiopia) +Added: 2009-07-29 +%% +Type: language +Subtag: bwp +Description: Mandobo Bawah +Added: 2009-07-29 +%% +Type: language +Subtag: bwq +Description: Southern Bobo Madaré +Added: 2009-07-29 +%% +Type: language +Subtag: bwr +Description: Bura-Pabir +Added: 2009-07-29 +%% +Type: language +Subtag: bws +Description: Bomboma +Added: 2009-07-29 +%% +Type: language +Subtag: bwt +Description: Bafaw-Balong +Added: 2009-07-29 +%% +Type: language +Subtag: bwu +Description: Buli (Ghana) +Added: 2009-07-29 +%% +Type: language +Subtag: bww +Description: Bwa +Added: 2009-07-29 +%% +Type: language +Subtag: bwx +Description: Bu-Nao Bunu +Added: 2009-07-29 +%% +Type: language +Subtag: bwy +Description: Cwi Bwamu +Added: 2009-07-29 +%% +Type: language +Subtag: bwz +Description: Bwisi +Added: 2009-07-29 +%% +Type: language +Subtag: bxa +Description: Tairaha +Added: 2009-07-29 +%% +Type: language +Subtag: bxb +Description: Belanda Bor +Added: 2009-07-29 +%% +Type: language +Subtag: bxc +Description: Molengue +Added: 2009-07-29 +%% +Type: language +Subtag: bxd +Description: Pela +Added: 2009-07-29 +%% +Type: language +Subtag: bxe +Description: Birale +Added: 2009-07-29 +%% +Type: language +Subtag: bxf +Description: Bilur +Description: Minigir +Added: 2009-07-29 +Comments: see also vmg +%% +Type: language +Subtag: bxg +Description: Bangala +Added: 2009-07-29 +%% +Type: language +Subtag: bxh +Description: Buhutu +Added: 2009-07-29 +%% +Type: language +Subtag: bxi +Description: Pirlatapa +Added: 2009-07-29 +%% +Type: language +Subtag: bxj +Description: Bayungu +Added: 2009-07-29 +%% +Type: language +Subtag: bxk +Description: Bukusu +Description: Lubukusu +Added: 2009-07-29 +Macrolanguage: luy +%% +Type: language +Subtag: bxl +Description: Jalkunan +Added: 2009-07-29 +%% +Type: language +Subtag: bxm +Description: Mongolia Buriat +Added: 2009-07-29 +Macrolanguage: bua +%% +Type: language +Subtag: bxn +Description: Burduna +Added: 2009-07-29 +%% +Type: language +Subtag: bxo +Description: Barikanchi +Added: 2009-07-29 +%% +Type: language +Subtag: bxp +Description: Bebil +Added: 2009-07-29 +%% +Type: language +Subtag: bxq +Description: Beele +Added: 2009-07-29 +%% +Type: language +Subtag: bxr +Description: Russia Buriat +Added: 2009-07-29 +Macrolanguage: bua +%% +Type: language +Subtag: bxs +Description: Busam +Added: 2009-07-29 +%% +Type: language +Subtag: bxu +Description: China Buriat +Added: 2009-07-29 +Macrolanguage: bua +%% +Type: language +Subtag: bxv +Description: Berakou +Added: 2009-07-29 +%% +Type: language +Subtag: bxw +Description: Bankagooma +Added: 2009-07-29 +%% +Type: language +Subtag: bxx +Description: Borna (Democratic Republic of Congo) +Added: 2009-07-29 +Deprecated: 2015-02-12 +%% +Type: language +Subtag: bxz +Description: Binahari +Added: 2009-07-29 +%% +Type: language +Subtag: bya +Description: Batak +Added: 2009-07-29 +%% +Type: language +Subtag: byb +Description: Bikya +Added: 2009-07-29 +%% +Type: language +Subtag: byc +Description: Ubaghara +Added: 2009-07-29 +%% +Type: language +Subtag: byd +Description: Benyadu' +Added: 2009-07-29 +%% +Type: language +Subtag: bye +Description: Pouye +Added: 2009-07-29 +%% +Type: language +Subtag: byf +Description: Bete +Added: 2009-07-29 +%% +Type: language +Subtag: byg +Description: Baygo +Added: 2009-07-29 +%% +Type: language +Subtag: byh +Description: Bhujel +Added: 2009-07-29 +%% +Type: language +Subtag: byi +Description: Buyu +Added: 2009-07-29 +%% +Type: language +Subtag: byj +Description: Bina (Nigeria) +Added: 2009-07-29 +%% +Type: language +Subtag: byk +Description: Biao +Added: 2009-07-29 +%% +Type: language +Subtag: byl +Description: Bayono +Added: 2009-07-29 +%% +Type: language +Subtag: bym +Description: Bidyara +Added: 2009-07-29 +%% +Type: language +Subtag: byn +Description: Bilin +Description: Blin +Added: 2005-10-16 +%% +Type: language +Subtag: byo +Description: Biyo +Added: 2009-07-29 +%% +Type: language +Subtag: byp +Description: Bumaji +Added: 2009-07-29 +%% +Type: language +Subtag: byq +Description: Basay +Added: 2009-07-29 +%% +Type: language +Subtag: byr +Description: Baruya +Description: Yipma +Added: 2009-07-29 +%% +Type: language +Subtag: bys +Description: Burak +Added: 2009-07-29 +%% +Type: language +Subtag: byt +Description: Berti +Added: 2009-07-29 +%% +Type: language +Subtag: byv +Description: Medumba +Added: 2009-07-29 +%% +Type: language +Subtag: byw +Description: Belhariya +Added: 2009-07-29 +%% +Type: language +Subtag: byx +Description: Qaqet +Added: 2009-07-29 +%% +Type: language +Subtag: byy +Description: Buya +Added: 2009-07-29 +Deprecated: 2015-02-12 +%% +Type: language +Subtag: byz +Description: Banaro +Added: 2009-07-29 +%% +Type: language +Subtag: bza +Description: Bandi +Added: 2009-07-29 +%% +Type: language +Subtag: bzb +Description: Andio +Added: 2009-07-29 +%% +Type: language +Subtag: bzc +Description: Southern Betsimisaraka Malagasy +Added: 2011-08-16 +Macrolanguage: mg +%% +Type: language +Subtag: bzd +Description: Bribri +Added: 2009-07-29 +%% +Type: language +Subtag: bze +Description: Jenaama Bozo +Added: 2009-07-29 +%% +Type: language +Subtag: bzf +Description: Boikin +Added: 2009-07-29 +%% +Type: language +Subtag: bzg +Description: Babuza +Added: 2009-07-29 +%% +Type: language +Subtag: bzh +Description: Mapos Buang +Added: 2009-07-29 +%% +Type: language +Subtag: bzi +Description: Bisu +Added: 2009-07-29 +%% +Type: language +Subtag: bzj +Description: Belize Kriol English +Added: 2009-07-29 +%% +Type: language +Subtag: bzk +Description: Nicaragua Creole English +Added: 2009-07-29 +%% +Type: language +Subtag: bzl +Description: Boano (Sulawesi) +Added: 2009-07-29 +%% +Type: language +Subtag: bzm +Description: Bolondo +Added: 2009-07-29 +%% +Type: language +Subtag: bzn +Description: Boano (Maluku) +Added: 2009-07-29 +%% +Type: language +Subtag: bzo +Description: Bozaba +Added: 2009-07-29 +%% +Type: language +Subtag: bzp +Description: Kemberano +Added: 2009-07-29 +%% +Type: language +Subtag: bzq +Description: Buli (Indonesia) +Added: 2009-07-29 +%% +Type: language +Subtag: bzr +Description: Biri +Added: 2009-07-29 +%% +Type: language +Subtag: bzs +Description: Brazilian Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: bzt +Description: Brithenig +Added: 2009-07-29 +%% +Type: language +Subtag: bzu +Description: Burmeso +Added: 2009-07-29 +%% +Type: language +Subtag: bzv +Description: Naami +Added: 2009-07-29 +%% +Type: language +Subtag: bzw +Description: Basa (Nigeria) +Added: 2009-07-29 +%% +Type: language +Subtag: bzx +Description: Kɛlɛngaxo Bozo +Added: 2009-07-29 +%% +Type: language +Subtag: bzy +Description: Obanliku +Added: 2009-07-29 +%% +Type: language +Subtag: bzz +Description: Evant +Added: 2009-07-29 +%% +Type: language +Subtag: caa +Description: Chortí +Added: 2009-07-29 +%% +Type: language +Subtag: cab +Description: Garifuna +Added: 2009-07-29 +%% +Type: language +Subtag: cac +Description: Chuj +Added: 2009-07-29 +%% +Type: language +Subtag: cad +Description: Caddo +Added: 2005-10-16 +%% +Type: language +Subtag: cae +Description: Lehar +Description: Laalaa +Added: 2009-07-29 +%% +Type: language +Subtag: caf +Description: Southern Carrier +Added: 2009-07-29 +%% +Type: language +Subtag: cag +Description: Nivaclé +Added: 2009-07-29 +%% +Type: language +Subtag: cah +Description: Cahuarano +Added: 2009-07-29 +%% +Type: language +Subtag: cai +Description: Central American Indian languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: caj +Description: Chané +Added: 2009-07-29 +%% +Type: language +Subtag: cak +Description: Kaqchikel +Description: Cakchiquel +Added: 2009-07-29 +%% +Type: language +Subtag: cal +Description: Carolinian +Added: 2009-07-29 +%% +Type: language +Subtag: cam +Description: Cemuhî +Added: 2009-07-29 +%% +Type: language +Subtag: can +Description: Chambri +Added: 2009-07-29 +%% +Type: language +Subtag: cao +Description: Chácobo +Added: 2009-07-29 +%% +Type: language +Subtag: cap +Description: Chipaya +Added: 2009-07-29 +%% +Type: language +Subtag: caq +Description: Car Nicobarese +Added: 2009-07-29 +%% +Type: language +Subtag: car +Description: Galibi Carib +Added: 2005-10-16 +%% +Type: language +Subtag: cas +Description: Tsimané +Added: 2009-07-29 +%% +Type: language +Subtag: cau +Description: Caucasian languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: cav +Description: Cavineña +Added: 2009-07-29 +%% +Type: language +Subtag: caw +Description: Callawalla +Added: 2009-07-29 +%% +Type: language +Subtag: cax +Description: Chiquitano +Added: 2009-07-29 +%% +Type: language +Subtag: cay +Description: Cayuga +Added: 2009-07-29 +%% +Type: language +Subtag: caz +Description: Canichana +Added: 2009-07-29 +%% +Type: language +Subtag: cba +Description: Chibchan languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: cbb +Description: Cabiyarí +Added: 2009-07-29 +%% +Type: language +Subtag: cbc +Description: Carapana +Added: 2009-07-29 +%% +Type: language +Subtag: cbd +Description: Carijona +Added: 2009-07-29 +%% +Type: language +Subtag: cbe +Description: Chipiajes +Added: 2009-07-29 +%% +Type: language +Subtag: cbg +Description: Chimila +Added: 2009-07-29 +%% +Type: language +Subtag: cbh +Description: Cagua +Added: 2009-07-29 +%% +Type: language +Subtag: cbi +Description: Chachi +Added: 2009-07-29 +%% +Type: language +Subtag: cbj +Description: Ede Cabe +Added: 2009-07-29 +%% +Type: language +Subtag: cbk +Description: Chavacano +Added: 2009-07-29 +%% +Type: language +Subtag: cbl +Description: Bualkhaw Chin +Added: 2009-07-29 +%% +Type: language +Subtag: cbn +Description: Nyahkur +Added: 2009-07-29 +%% +Type: language +Subtag: cbo +Description: Izora +Added: 2009-07-29 +%% +Type: language +Subtag: cbq +Description: Tsucuba +Description: Cuba +Added: 2015-02-12 +%% +Type: language +Subtag: cbr +Description: Cashibo-Cacataibo +Added: 2009-07-29 +%% +Type: language +Subtag: cbs +Description: Cashinahua +Added: 2009-07-29 +%% +Type: language +Subtag: cbt +Description: Chayahuita +Added: 2009-07-29 +%% +Type: language +Subtag: cbu +Description: Candoshi-Shapra +Added: 2009-07-29 +%% +Type: language +Subtag: cbv +Description: Cacua +Added: 2009-07-29 +%% +Type: language +Subtag: cbw +Description: Kinabalian +Added: 2010-03-11 +%% +Type: language +Subtag: cby +Description: Carabayo +Added: 2009-07-29 +%% +Type: language +Subtag: cca +Description: Cauca +Added: 2009-07-29 +%% +Type: language +Subtag: ccc +Description: Chamicuro +Added: 2009-07-29 +%% +Type: language +Subtag: ccd +Description: Cafundo Creole +Added: 2009-07-29 +%% +Type: language +Subtag: cce +Description: Chopi +Added: 2009-07-29 +%% +Type: language +Subtag: ccg +Description: Samba Daka +Added: 2009-07-29 +%% +Type: language +Subtag: cch +Description: Atsam +Added: 2009-07-29 +%% +Type: language +Subtag: ccj +Description: Kasanga +Added: 2009-07-29 +%% +Type: language +Subtag: ccl +Description: Cutchi-Swahili +Added: 2009-07-29 +%% +Type: language +Subtag: ccm +Description: Malaccan Creole Malay +Added: 2009-07-29 +%% +Type: language +Subtag: ccn +Description: North Caucasian languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: cco +Description: Comaltepec Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: ccp +Description: Chakma +Added: 2009-07-29 +%% +Type: language +Subtag: ccq +Description: Chaungtha +Added: 2009-07-29 +Deprecated: 2012-08-12 +Preferred-Value: rki +%% +Type: language +Subtag: ccr +Description: Cacaopera +Added: 2009-07-29 +%% +Type: language +Subtag: ccs +Description: South Caucasian languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: cda +Description: Choni +Added: 2009-07-29 +%% +Type: language +Subtag: cdc +Description: Chadic languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: cdd +Description: Caddoan languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: cde +Description: Chenchu +Added: 2009-07-29 +%% +Type: language +Subtag: cdf +Description: Chiru +Added: 2009-07-29 +%% +Type: language +Subtag: cdg +Description: Chamari +Added: 2009-07-29 +%% +Type: language +Subtag: cdh +Description: Chambeali +Added: 2009-07-29 +%% +Type: language +Subtag: cdi +Description: Chodri +Added: 2009-07-29 +%% +Type: language +Subtag: cdj +Description: Churahi +Added: 2009-07-29 +%% +Type: language +Subtag: cdm +Description: Chepang +Added: 2009-07-29 +%% +Type: language +Subtag: cdn +Description: Chaudangsi +Added: 2009-07-29 +%% +Type: language +Subtag: cdo +Description: Min Dong Chinese +Added: 2009-07-29 +Macrolanguage: zh +%% +Type: language +Subtag: cdr +Description: Cinda-Regi-Tiyal +Added: 2009-07-29 +%% +Type: language +Subtag: cds +Description: Chadian Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: cdy +Description: Chadong +Added: 2009-07-29 +%% +Type: language +Subtag: cdz +Description: Koda +Added: 2009-07-29 +%% +Type: language +Subtag: cea +Description: Lower Chehalis +Added: 2009-07-29 +%% +Type: language +Subtag: ceb +Description: Cebuano +Added: 2005-10-16 +%% +Type: language +Subtag: ceg +Description: Chamacoco +Added: 2009-07-29 +%% +Type: language +Subtag: cek +Description: Eastern Khumi Chin +Added: 2012-08-12 +%% +Type: language +Subtag: cel +Description: Celtic languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: cen +Description: Cen +Added: 2009-07-29 +%% +Type: language +Subtag: cet +Description: Centúúm +Added: 2009-07-29 +%% +Type: language +Subtag: cfa +Description: Dijim-Bwilim +Added: 2009-07-29 +%% +Type: language +Subtag: cfd +Description: Cara +Added: 2009-07-29 +%% +Type: language +Subtag: cfg +Description: Como Karim +Added: 2009-07-29 +%% +Type: language +Subtag: cfm +Description: Falam Chin +Added: 2009-07-29 +%% +Type: language +Subtag: cga +Description: Changriwa +Added: 2009-07-29 +%% +Type: language +Subtag: cgc +Description: Kagayanen +Added: 2009-07-29 +%% +Type: language +Subtag: cgg +Description: Chiga +Added: 2009-07-29 +%% +Type: language +Subtag: cgk +Description: Chocangacakha +Added: 2009-07-29 +%% +Type: language +Subtag: chb +Description: Chibcha +Added: 2005-10-16 +%% +Type: language +Subtag: chc +Description: Catawba +Added: 2009-07-29 +%% +Type: language +Subtag: chd +Description: Highland Oaxaca Chontal +Added: 2009-07-29 +%% +Type: language +Subtag: chf +Description: Tabasco Chontal +Added: 2009-07-29 +%% +Type: language +Subtag: chg +Description: Chagatai +Added: 2005-10-16 +%% +Type: language +Subtag: chh +Description: Chinook +Added: 2009-07-29 +%% +Type: language +Subtag: chj +Description: Ojitlán Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: chk +Description: Chuukese +Added: 2005-10-16 +%% +Type: language +Subtag: chl +Description: Cahuilla +Added: 2009-07-29 +%% +Type: language +Subtag: chm +Description: Mari (Russia) +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: chn +Description: Chinook jargon +Added: 2005-10-16 +%% +Type: language +Subtag: cho +Description: Choctaw +Added: 2005-10-16 +%% +Type: language +Subtag: chp +Description: Chipewyan +Description: Dene Suline +Added: 2005-10-16 +%% +Type: language +Subtag: chq +Description: Quiotepec Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: chr +Description: Cherokee +Added: 2005-10-16 +%% +Type: language +Subtag: cht +Description: Cholón +Added: 2009-07-29 +%% +Type: language +Subtag: chw +Description: Chuwabu +Added: 2009-07-29 +%% +Type: language +Subtag: chx +Description: Chantyal +Added: 2009-07-29 +%% +Type: language +Subtag: chy +Description: Cheyenne +Added: 2005-10-16 +%% +Type: language +Subtag: chz +Description: Ozumacín Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: cia +Description: Cia-Cia +Added: 2009-07-29 +%% +Type: language +Subtag: cib +Description: Ci Gbe +Added: 2009-07-29 +%% +Type: language +Subtag: cic +Description: Chickasaw +Added: 2009-07-29 +%% +Type: language +Subtag: cid +Description: Chimariko +Added: 2009-07-29 +%% +Type: language +Subtag: cie +Description: Cineni +Added: 2009-07-29 +%% +Type: language +Subtag: cih +Description: Chinali +Added: 2009-07-29 +%% +Type: language +Subtag: cik +Description: Chitkuli Kinnauri +Added: 2009-07-29 +%% +Type: language +Subtag: cim +Description: Cimbrian +Added: 2009-07-29 +%% +Type: language +Subtag: cin +Description: Cinta Larga +Added: 2009-07-29 +%% +Type: language +Subtag: cip +Description: Chiapanec +Added: 2009-07-29 +%% +Type: language +Subtag: cir +Description: Tiri +Description: Haméa +Description: Méa +Added: 2009-07-29 +%% +Type: language +Subtag: ciw +Description: Chippewa +Added: 2009-07-29 +Macrolanguage: oj +%% +Type: language +Subtag: ciy +Description: Chaima +Added: 2009-07-29 +%% +Type: language +Subtag: cja +Description: Western Cham +Added: 2009-07-29 +%% +Type: language +Subtag: cje +Description: Chru +Added: 2009-07-29 +%% +Type: language +Subtag: cjh +Description: Upper Chehalis +Added: 2009-07-29 +%% +Type: language +Subtag: cji +Description: Chamalal +Added: 2009-07-29 +%% +Type: language +Subtag: cjk +Description: Chokwe +Added: 2009-07-29 +%% +Type: language +Subtag: cjm +Description: Eastern Cham +Added: 2009-07-29 +%% +Type: language +Subtag: cjn +Description: Chenapian +Added: 2009-07-29 +%% +Type: language +Subtag: cjo +Description: Ashéninka Pajonal +Added: 2009-07-29 +%% +Type: language +Subtag: cjp +Description: Cabécar +Added: 2009-07-29 +%% +Type: language +Subtag: cjr +Description: Chorotega +Added: 2009-07-29 +Deprecated: 2010-03-11 +Preferred-Value: mom +%% +Type: language +Subtag: cjs +Description: Shor +Added: 2009-07-29 +%% +Type: language +Subtag: cjv +Description: Chuave +Added: 2009-07-29 +%% +Type: language +Subtag: cjy +Description: Jinyu Chinese +Added: 2009-07-29 +Macrolanguage: zh +%% +Type: language +Subtag: cka +Description: Khumi Awa Chin +Added: 2009-07-29 +Deprecated: 2012-08-12 +Preferred-Value: cmr +%% +Type: language +Subtag: ckb +Description: Central Kurdish +Added: 2009-07-29 +Macrolanguage: ku +%% +Type: language +Subtag: ckh +Description: Chak +Added: 2009-07-29 +%% +Type: language +Subtag: ckl +Description: Cibak +Added: 2009-07-29 +%% +Type: language +Subtag: ckn +Description: Kaang Chin +Added: 2013-09-10 +%% +Type: language +Subtag: cko +Description: Anufo +Added: 2009-07-29 +%% +Type: language +Subtag: ckq +Description: Kajakse +Added: 2009-07-29 +%% +Type: language +Subtag: ckr +Description: Kairak +Added: 2009-07-29 +%% +Type: language +Subtag: cks +Description: Tayo +Added: 2009-07-29 +%% +Type: language +Subtag: ckt +Description: Chukot +Added: 2009-07-29 +%% +Type: language +Subtag: cku +Description: Koasati +Added: 2009-07-29 +%% +Type: language +Subtag: ckv +Description: Kavalan +Added: 2009-07-29 +%% +Type: language +Subtag: ckx +Description: Caka +Added: 2009-07-29 +%% +Type: language +Subtag: cky +Description: Cakfem-Mushere +Added: 2009-07-29 +%% +Type: language +Subtag: ckz +Description: Cakchiquel-Quiché Mixed Language +Added: 2009-07-29 +%% +Type: language +Subtag: cla +Description: Ron +Added: 2009-07-29 +%% +Type: language +Subtag: clc +Description: Chilcotin +Added: 2009-07-29 +%% +Type: language +Subtag: cld +Description: Chaldean Neo-Aramaic +Added: 2009-07-29 +Macrolanguage: syr +%% +Type: language +Subtag: cle +Description: Lealao Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: clh +Description: Chilisso +Added: 2009-07-29 +%% +Type: language +Subtag: cli +Description: Chakali +Added: 2009-07-29 +%% +Type: language +Subtag: clj +Description: Laitu Chin +Added: 2012-08-12 +%% +Type: language +Subtag: clk +Description: Idu-Mishmi +Added: 2009-07-29 +%% +Type: language +Subtag: cll +Description: Chala +Added: 2009-07-29 +%% +Type: language +Subtag: clm +Description: Clallam +Added: 2009-07-29 +%% +Type: language +Subtag: clo +Description: Lowland Oaxaca Chontal +Added: 2009-07-29 +%% +Type: language +Subtag: clt +Description: Lautu Chin +Added: 2012-08-12 +%% +Type: language +Subtag: clu +Description: Caluyanun +Added: 2009-07-29 +%% +Type: language +Subtag: clw +Description: Chulym +Added: 2009-07-29 +%% +Type: language +Subtag: cly +Description: Eastern Highland Chatino +Added: 2009-07-29 +%% +Type: language +Subtag: cma +Description: Maa +Added: 2009-07-29 +%% +Type: language +Subtag: cmc +Description: Chamic languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: cme +Description: Cerma +Added: 2009-07-29 +%% +Type: language +Subtag: cmg +Description: Classical Mongolian +Added: 2009-07-29 +%% +Type: language +Subtag: cmi +Description: Emberá-Chamí +Added: 2009-07-29 +%% +Type: language +Subtag: cmk +Description: Chimakum +Added: 2009-07-29 +Deprecated: 2010-03-11 +Preferred-Value: xch +%% +Type: language +Subtag: cml +Description: Campalagian +Added: 2009-07-29 +%% +Type: language +Subtag: cmm +Description: Michigamea +Added: 2009-07-29 +%% +Type: language +Subtag: cmn +Description: Mandarin Chinese +Added: 2009-07-29 +Macrolanguage: zh +%% +Type: language +Subtag: cmo +Description: Central Mnong +Added: 2009-07-29 +%% +Type: language +Subtag: cmr +Description: Mro-Khimi Chin +Added: 2009-07-29 +%% +Type: language +Subtag: cms +Description: Messapic +Added: 2009-07-29 +%% +Type: language +Subtag: cmt +Description: Camtho +Added: 2009-07-29 +%% +Type: language +Subtag: cna +Description: Changthang +Added: 2009-07-29 +%% +Type: language +Subtag: cnb +Description: Chinbon Chin +Added: 2009-07-29 +%% +Type: language +Subtag: cnc +Description: Côông +Added: 2009-07-29 +%% +Type: language +Subtag: cng +Description: Northern Qiang +Added: 2009-07-29 +%% +Type: language +Subtag: cnh +Description: Haka Chin +Added: 2009-07-29 +%% +Type: language +Subtag: cni +Description: Asháninka +Added: 2009-07-29 +%% +Type: language +Subtag: cnk +Description: Khumi Chin +Added: 2009-07-29 +%% +Type: language +Subtag: cnl +Description: Lalana Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: cno +Description: Con +Added: 2009-07-29 +%% +Type: language +Subtag: cns +Description: Central Asmat +Added: 2009-07-29 +%% +Type: language +Subtag: cnt +Description: Tepetotutla Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: cnu +Description: Chenoua +Added: 2009-07-29 +%% +Type: language +Subtag: cnw +Description: Ngawn Chin +Added: 2009-07-29 +%% +Type: language +Subtag: cnx +Description: Middle Cornish +Added: 2009-07-29 +%% +Type: language +Subtag: coa +Description: Cocos Islands Malay +Added: 2009-07-29 +Macrolanguage: ms +%% +Type: language +Subtag: cob +Description: Chicomuceltec +Added: 2009-07-29 +%% +Type: language +Subtag: coc +Description: Cocopa +Added: 2009-07-29 +%% +Type: language +Subtag: cod +Description: Cocama-Cocamilla +Added: 2009-07-29 +%% +Type: language +Subtag: coe +Description: Koreguaje +Added: 2009-07-29 +%% +Type: language +Subtag: cof +Description: Colorado +Added: 2009-07-29 +%% +Type: language +Subtag: cog +Description: Chong +Added: 2009-07-29 +%% +Type: language +Subtag: coh +Description: Chonyi-Dzihana-Kauma +Description: Chichonyi-Chidzihana-Chikauma +Added: 2009-07-29 +%% +Type: language +Subtag: coj +Description: Cochimi +Added: 2009-07-29 +%% +Type: language +Subtag: cok +Description: Santa Teresa Cora +Added: 2009-07-29 +%% +Type: language +Subtag: col +Description: Columbia-Wenatchi +Added: 2009-07-29 +%% +Type: language +Subtag: com +Description: Comanche +Added: 2009-07-29 +%% +Type: language +Subtag: con +Description: Cofán +Added: 2009-07-29 +%% +Type: language +Subtag: coo +Description: Comox +Added: 2009-07-29 +%% +Type: language +Subtag: cop +Description: Coptic +Added: 2005-10-16 +%% +Type: language +Subtag: coq +Description: Coquille +Added: 2009-07-29 +%% +Type: language +Subtag: cot +Description: Caquinte +Added: 2009-07-29 +%% +Type: language +Subtag: cou +Description: Wamey +Added: 2009-07-29 +%% +Type: language +Subtag: cov +Description: Cao Miao +Added: 2009-07-29 +%% +Type: language +Subtag: cow +Description: Cowlitz +Added: 2009-07-29 +%% +Type: language +Subtag: cox +Description: Nanti +Added: 2009-07-29 +%% +Type: language +Subtag: coy +Description: Coyaima +Added: 2009-07-29 +%% +Type: language +Subtag: coz +Description: Chochotec +Added: 2009-07-29 +%% +Type: language +Subtag: cpa +Description: Palantla Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: cpb +Description: Ucayali-Yurúa Ashéninka +Added: 2009-07-29 +%% +Type: language +Subtag: cpc +Description: Ajyíninka Apurucayali +Added: 2009-07-29 +%% +Type: language +Subtag: cpe +Description: English-based creoles and pidgins +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: cpf +Description: French-based creoles and pidgins +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: cpg +Description: Cappadocian Greek +Added: 2009-07-29 +%% +Type: language +Subtag: cpi +Description: Chinese Pidgin English +Added: 2009-07-29 +%% +Type: language +Subtag: cpn +Description: Cherepon +Added: 2009-07-29 +%% +Type: language +Subtag: cpo +Description: Kpeego +Added: 2013-09-10 +%% +Type: language +Subtag: cpp +Description: Portuguese-based creoles and pidgins +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: cps +Description: Capiznon +Added: 2009-07-29 +%% +Type: language +Subtag: cpu +Description: Pichis Ashéninka +Added: 2009-07-29 +%% +Type: language +Subtag: cpx +Description: Pu-Xian Chinese +Added: 2009-07-29 +Macrolanguage: zh +%% +Type: language +Subtag: cpy +Description: South Ucayali Ashéninka +Added: 2009-07-29 +%% +Type: language +Subtag: cqd +Description: Chuanqiandian Cluster Miao +Added: 2009-07-29 +Macrolanguage: hmn +%% +Type: language +Subtag: cqu +Description: Chilean Quechua +Added: 2009-07-29 +Macrolanguage: qu +%% +Type: language +Subtag: cra +Description: Chara +Added: 2009-07-29 +%% +Type: language +Subtag: crb +Description: Island Carib +Added: 2009-07-29 +%% +Type: language +Subtag: crc +Description: Lonwolwol +Added: 2009-07-29 +%% +Type: language +Subtag: crd +Description: Coeur d'Alene +Added: 2009-07-29 +%% +Type: language +Subtag: crf +Description: Caramanta +Added: 2009-07-29 +%% +Type: language +Subtag: crg +Description: Michif +Added: 2009-07-29 +%% +Type: language +Subtag: crh +Description: Crimean Tatar +Description: Crimean Turkish +Added: 2005-10-16 +%% +Type: language +Subtag: cri +Description: Sãotomense +Added: 2009-07-29 +%% +Type: language +Subtag: crj +Description: Southern East Cree +Added: 2009-07-29 +Macrolanguage: cr +%% +Type: language +Subtag: crk +Description: Plains Cree +Added: 2009-07-29 +Macrolanguage: cr +%% +Type: language +Subtag: crl +Description: Northern East Cree +Added: 2009-07-29 +Macrolanguage: cr +%% +Type: language +Subtag: crm +Description: Moose Cree +Added: 2009-07-29 +Macrolanguage: cr +%% +Type: language +Subtag: crn +Description: El Nayar Cora +Added: 2009-07-29 +%% +Type: language +Subtag: cro +Description: Crow +Added: 2009-07-29 +%% +Type: language +Subtag: crp +Description: Creoles and pidgins +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: crq +Description: Iyo'wujwa Chorote +Added: 2009-07-29 +%% +Type: language +Subtag: crr +Description: Carolina Algonquian +Added: 2009-07-29 +%% +Type: language +Subtag: crs +Description: Seselwa Creole French +Added: 2009-07-29 +%% +Type: language +Subtag: crt +Description: Iyojwa'ja Chorote +Added: 2009-07-29 +%% +Type: language +Subtag: crv +Description: Chaura +Added: 2009-07-29 +%% +Type: language +Subtag: crw +Description: Chrau +Added: 2009-07-29 +%% +Type: language +Subtag: crx +Description: Carrier +Added: 2009-07-29 +%% +Type: language +Subtag: cry +Description: Cori +Added: 2009-07-29 +%% +Type: language +Subtag: crz +Description: Cruzeño +Added: 2009-07-29 +%% +Type: language +Subtag: csa +Description: Chiltepec Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: csb +Description: Kashubian +Added: 2005-10-16 +%% +Type: language +Subtag: csc +Description: Catalan Sign Language +Description: Lengua de señas catalana +Description: Llengua de Signes Catalana +Added: 2009-07-29 +%% +Type: language +Subtag: csd +Description: Chiangmai Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: cse +Description: Czech Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: csf +Description: Cuba Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: csg +Description: Chilean Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: csh +Description: Asho Chin +Added: 2009-07-29 +%% +Type: language +Subtag: csi +Description: Coast Miwok +Added: 2009-07-29 +%% +Type: language +Subtag: csj +Description: Songlai Chin +Added: 2013-09-10 +%% +Type: language +Subtag: csk +Description: Jola-Kasa +Added: 2009-07-29 +%% +Type: language +Subtag: csl +Description: Chinese Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: csm +Description: Central Sierra Miwok +Added: 2009-07-29 +%% +Type: language +Subtag: csn +Description: Colombian Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: cso +Description: Sochiapam Chinantec +Description: Sochiapan Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: csq +Description: Croatia Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: csr +Description: Costa Rican Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: css +Description: Southern Ohlone +Added: 2009-07-29 +%% +Type: language +Subtag: cst +Description: Northern Ohlone +Added: 2009-07-29 +%% +Type: language +Subtag: csu +Description: Central Sudanic languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: csv +Description: Sumtu Chin +Added: 2012-08-12 +%% +Type: language +Subtag: csw +Description: Swampy Cree +Added: 2009-07-29 +Macrolanguage: cr +%% +Type: language +Subtag: csy +Description: Siyin Chin +Added: 2009-07-29 +%% +Type: language +Subtag: csz +Description: Coos +Added: 2009-07-29 +%% +Type: language +Subtag: cta +Description: Tataltepec Chatino +Added: 2009-07-29 +%% +Type: language +Subtag: ctc +Description: Chetco +Added: 2009-07-29 +%% +Type: language +Subtag: ctd +Description: Tedim Chin +Added: 2009-07-29 +%% +Type: language +Subtag: cte +Description: Tepinapa Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: ctg +Description: Chittagonian +Added: 2009-07-29 +%% +Type: language +Subtag: cth +Description: Thaiphum Chin +Added: 2012-08-12 +%% +Type: language +Subtag: ctl +Description: Tlacoatzintepec Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: ctm +Description: Chitimacha +Added: 2009-07-29 +%% +Type: language +Subtag: ctn +Description: Chhintange +Added: 2009-07-29 +%% +Type: language +Subtag: cto +Description: Emberá-Catío +Added: 2009-07-29 +%% +Type: language +Subtag: ctp +Description: Western Highland Chatino +Added: 2009-07-29 +%% +Type: language +Subtag: cts +Description: Northern Catanduanes Bikol +Added: 2009-07-29 +Macrolanguage: bik +%% +Type: language +Subtag: ctt +Description: Wayanad Chetti +Added: 2009-07-29 +%% +Type: language +Subtag: ctu +Description: Chol +Added: 2009-07-29 +%% +Type: language +Subtag: ctz +Description: Zacatepec Chatino +Added: 2009-07-29 +%% +Type: language +Subtag: cua +Description: Cua +Added: 2009-07-29 +%% +Type: language +Subtag: cub +Description: Cubeo +Added: 2009-07-29 +%% +Type: language +Subtag: cuc +Description: Usila Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: cug +Description: Cung +Added: 2009-07-29 +%% +Type: language +Subtag: cuh +Description: Chuka +Description: Gichuka +Added: 2009-07-29 +%% +Type: language +Subtag: cui +Description: Cuiba +Added: 2009-07-29 +%% +Type: language +Subtag: cuj +Description: Mashco Piro +Added: 2009-07-29 +%% +Type: language +Subtag: cuk +Description: San Blas Kuna +Added: 2009-07-29 +%% +Type: language +Subtag: cul +Description: Culina +Description: Kulina +Added: 2009-07-29 +%% +Type: language +Subtag: cum +Description: Cumeral +Added: 2009-07-29 +%% +Type: language +Subtag: cuo +Description: Cumanagoto +Added: 2009-07-29 +%% +Type: language +Subtag: cup +Description: Cupeño +Added: 2009-07-29 +%% +Type: language +Subtag: cuq +Description: Cun +Added: 2009-07-29 +%% +Type: language +Subtag: cur +Description: Chhulung +Added: 2009-07-29 +%% +Type: language +Subtag: cus +Description: Cushitic languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: cut +Description: Teutila Cuicatec +Added: 2009-07-29 +%% +Type: language +Subtag: cuu +Description: Tai Ya +Added: 2009-07-29 +%% +Type: language +Subtag: cuv +Description: Cuvok +Added: 2009-07-29 +%% +Type: language +Subtag: cuw +Description: Chukwa +Added: 2009-07-29 +%% +Type: language +Subtag: cux +Description: Tepeuxila Cuicatec +Added: 2009-07-29 +%% +Type: language +Subtag: cvg +Description: Chug +Added: 2009-07-29 +%% +Type: language +Subtag: cvn +Description: Valle Nacional Chinantec +Added: 2009-07-29 +%% +Type: language +Subtag: cwa +Description: Kabwa +Added: 2009-07-29 +%% +Type: language +Subtag: cwb +Description: Maindo +Added: 2009-07-29 +%% +Type: language +Subtag: cwd +Description: Woods Cree +Added: 2009-07-29 +Macrolanguage: cr +%% +Type: language +Subtag: cwe +Description: Kwere +Added: 2009-07-29 +%% +Type: language +Subtag: cwg +Description: Chewong +Description: Cheq Wong +Added: 2009-07-29 +%% +Type: language +Subtag: cwt +Description: Kuwaataay +Added: 2009-07-29 +%% +Type: language +Subtag: cya +Description: Nopala Chatino +Added: 2009-07-29 +%% +Type: language +Subtag: cyb +Description: Cayubaba +Added: 2009-07-29 +%% +Type: language +Subtag: cyo +Description: Cuyonon +Added: 2009-07-29 +%% +Type: language +Subtag: czh +Description: Huizhou Chinese +Added: 2009-07-29 +Macrolanguage: zh +%% +Type: language +Subtag: czk +Description: Knaanic +Added: 2009-07-29 +%% +Type: language +Subtag: czn +Description: Zenzontepec Chatino +Added: 2009-07-29 +%% +Type: language +Subtag: czo +Description: Min Zhong Chinese +Added: 2009-07-29 +Macrolanguage: zh +%% +Type: language +Subtag: czt +Description: Zotung Chin +Added: 2009-07-29 +%% +Type: language +Subtag: daa +Description: Dangaléat +Added: 2009-07-29 +%% +Type: language +Subtag: dac +Description: Dambi +Added: 2009-07-29 +%% +Type: language +Subtag: dad +Description: Marik +Added: 2009-07-29 +%% +Type: language +Subtag: dae +Description: Duupa +Added: 2009-07-29 +%% +Type: language +Subtag: daf +Description: Dan +Added: 2009-07-29 +Deprecated: 2013-09-10 +Comments: see dnj, lda +%% +Type: language +Subtag: dag +Description: Dagbani +Added: 2009-07-29 +%% +Type: language +Subtag: dah +Description: Gwahatike +Added: 2009-07-29 +%% +Type: language +Subtag: dai +Description: Day +Added: 2009-07-29 +%% +Type: language +Subtag: daj +Description: Dar Fur Daju +Added: 2009-07-29 +%% +Type: language +Subtag: dak +Description: Dakota +Added: 2005-10-16 +%% +Type: language +Subtag: dal +Description: Dahalo +Added: 2009-07-29 +%% +Type: language +Subtag: dam +Description: Damakawa +Added: 2009-07-29 +%% +Type: language +Subtag: dao +Description: Daai Chin +Added: 2009-07-29 +%% +Type: language +Subtag: dap +Description: Nisi (India) +Added: 2009-07-29 +Deprecated: 2012-08-12 +Comments: see njz, tgj +%% +Type: language +Subtag: daq +Description: Dandami Maria +Added: 2009-07-29 +%% +Type: language +Subtag: dar +Description: Dargwa +Added: 2005-10-16 +%% +Type: language +Subtag: das +Description: Daho-Doo +Added: 2009-07-29 +%% +Type: language +Subtag: dau +Description: Dar Sila Daju +Added: 2009-07-29 +%% +Type: language +Subtag: dav +Description: Taita +Description: Dawida +Added: 2009-07-29 +%% +Type: language +Subtag: daw +Description: Davawenyo +Added: 2009-07-29 +%% +Type: language +Subtag: dax +Description: Dayi +Added: 2009-07-29 +%% +Type: language +Subtag: day +Description: Land Dayak languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: daz +Description: Dao +Added: 2009-07-29 +%% +Type: language +Subtag: dba +Description: Bangime +Added: 2009-07-29 +%% +Type: language +Subtag: dbb +Description: Deno +Added: 2009-07-29 +%% +Type: language +Subtag: dbd +Description: Dadiya +Added: 2009-07-29 +%% +Type: language +Subtag: dbe +Description: Dabe +Added: 2009-07-29 +%% +Type: language +Subtag: dbf +Description: Edopi +Added: 2009-07-29 +%% +Type: language +Subtag: dbg +Description: Dogul Dom Dogon +Added: 2009-07-29 +%% +Type: language +Subtag: dbi +Description: Doka +Added: 2009-07-29 +%% +Type: language +Subtag: dbj +Description: Ida'an +Added: 2009-07-29 +%% +Type: language +Subtag: dbl +Description: Dyirbal +Added: 2009-07-29 +%% +Type: language +Subtag: dbm +Description: Duguri +Added: 2009-07-29 +%% +Type: language +Subtag: dbn +Description: Duriankere +Added: 2009-07-29 +%% +Type: language +Subtag: dbo +Description: Dulbu +Added: 2009-07-29 +%% +Type: language +Subtag: dbp +Description: Duwai +Added: 2009-07-29 +%% +Type: language +Subtag: dbq +Description: Daba +Added: 2009-07-29 +%% +Type: language +Subtag: dbr +Description: Dabarre +Added: 2009-07-29 +%% +Type: language +Subtag: dbt +Description: Ben Tey Dogon +Added: 2012-08-12 +%% +Type: language +Subtag: dbu +Description: Bondum Dom Dogon +Added: 2009-07-29 +%% +Type: language +Subtag: dbv +Description: Dungu +Added: 2009-07-29 +%% +Type: language +Subtag: dbw +Description: Bankan Tey Dogon +Added: 2012-08-12 +%% +Type: language +Subtag: dby +Description: Dibiyaso +Added: 2009-07-29 +%% +Type: language +Subtag: dcc +Description: Deccan +Added: 2009-07-29 +%% +Type: language +Subtag: dcr +Description: Negerhollands +Added: 2009-07-29 +%% +Type: language +Subtag: dda +Description: Dadi Dadi +Added: 2012-08-12 +%% +Type: language +Subtag: ddd +Description: Dongotono +Added: 2009-07-29 +%% +Type: language +Subtag: dde +Description: Doondo +Added: 2009-07-29 +%% +Type: language +Subtag: ddg +Description: Fataluku +Added: 2009-07-29 +%% +Type: language +Subtag: ddi +Description: West Goodenough +Added: 2009-07-29 +%% +Type: language +Subtag: ddj +Description: Jaru +Added: 2009-07-29 +%% +Type: language +Subtag: ddn +Description: Dendi (Benin) +Added: 2009-07-29 +%% +Type: language +Subtag: ddo +Description: Dido +Added: 2009-07-29 +%% +Type: language +Subtag: ddr +Description: Dhudhuroa +Added: 2012-08-12 +%% +Type: language +Subtag: dds +Description: Donno So Dogon +Added: 2009-07-29 +%% +Type: language +Subtag: ddw +Description: Dawera-Daweloor +Added: 2009-07-29 +%% +Type: language +Subtag: dec +Description: Dagik +Added: 2009-07-29 +%% +Type: language +Subtag: ded +Description: Dedua +Added: 2009-07-29 +%% +Type: language +Subtag: dee +Description: Dewoin +Added: 2009-07-29 +%% +Type: language +Subtag: def +Description: Dezfuli +Added: 2009-07-29 +%% +Type: language +Subtag: deg +Description: Degema +Added: 2009-07-29 +%% +Type: language +Subtag: deh +Description: Dehwari +Added: 2009-07-29 +%% +Type: language +Subtag: dei +Description: Demisa +Added: 2009-07-29 +%% +Type: language +Subtag: dek +Description: Dek +Added: 2009-07-29 +%% +Type: language +Subtag: del +Description: Delaware +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: dem +Description: Dem +Added: 2009-07-29 +%% +Type: language +Subtag: den +Description: Slave (Athapascan) +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: dep +Description: Pidgin Delaware +Added: 2009-07-29 +%% +Type: language +Subtag: deq +Description: Dendi (Central African Republic) +Added: 2009-07-29 +%% +Type: language +Subtag: der +Description: Deori +Added: 2009-07-29 +%% +Type: language +Subtag: des +Description: Desano +Added: 2009-07-29 +%% +Type: language +Subtag: dev +Description: Domung +Added: 2009-07-29 +%% +Type: language +Subtag: dez +Description: Dengese +Added: 2009-07-29 +%% +Type: language +Subtag: dga +Description: Southern Dagaare +Added: 2009-07-29 +%% +Type: language +Subtag: dgb +Description: Bunoge Dogon +Added: 2009-07-29 +%% +Type: language +Subtag: dgc +Description: Casiguran Dumagat Agta +Added: 2009-07-29 +%% +Type: language +Subtag: dgd +Description: Dagaari Dioula +Added: 2009-07-29 +%% +Type: language +Subtag: dge +Description: Degenan +Added: 2009-07-29 +%% +Type: language +Subtag: dgg +Description: Doga +Added: 2009-07-29 +%% +Type: language +Subtag: dgh +Description: Dghwede +Added: 2009-07-29 +%% +Type: language +Subtag: dgi +Description: Northern Dagara +Added: 2009-07-29 +%% +Type: language +Subtag: dgk +Description: Dagba +Added: 2009-07-29 +%% +Type: language +Subtag: dgl +Description: Andaandi +Description: Dongolawi +Added: 2012-08-12 +%% +Type: language +Subtag: dgn +Description: Dagoman +Added: 2009-07-29 +%% +Type: language +Subtag: dgo +Description: Dogri (individual language) +Added: 2009-07-29 +Macrolanguage: doi +%% +Type: language +Subtag: dgr +Description: Dogrib +Added: 2005-10-16 +%% +Type: language +Subtag: dgs +Description: Dogoso +Added: 2009-07-29 +%% +Type: language +Subtag: dgt +Description: Ndra'ngith +Added: 2012-08-12 +%% +Type: language +Subtag: dgu +Description: Degaru +Added: 2009-07-29 +%% +Type: language +Subtag: dgw +Description: Daungwurrung +Added: 2012-08-12 +%% +Type: language +Subtag: dgx +Description: Doghoro +Added: 2009-07-29 +%% +Type: language +Subtag: dgz +Description: Daga +Added: 2009-07-29 +%% +Type: language +Subtag: dha +Description: Dhanwar (India) +Added: 2009-07-29 +Deprecated: 2011-08-16 +%% +Type: language +Subtag: dhd +Description: Dhundari +Added: 2009-07-29 +Macrolanguage: mwr +%% +Type: language +Subtag: dhg +Description: Dhangu +Description: Djangu +Added: 2009-07-29 +%% +Type: language +Subtag: dhi +Description: Dhimal +Added: 2009-07-29 +%% +Type: language +Subtag: dhl +Description: Dhalandji +Added: 2009-07-29 +%% +Type: language +Subtag: dhm +Description: Zemba +Added: 2009-07-29 +%% +Type: language +Subtag: dhn +Description: Dhanki +Added: 2009-07-29 +%% +Type: language +Subtag: dho +Description: Dhodia +Added: 2009-07-29 +%% +Type: language +Subtag: dhr +Description: Dhargari +Added: 2009-07-29 +%% +Type: language +Subtag: dhs +Description: Dhaiso +Added: 2009-07-29 +%% +Type: language +Subtag: dhu +Description: Dhurga +Added: 2009-07-29 +%% +Type: language +Subtag: dhv +Description: Dehu +Description: Drehu +Added: 2009-07-29 +%% +Type: language +Subtag: dhw +Description: Dhanwar (Nepal) +Added: 2009-07-29 +%% +Type: language +Subtag: dhx +Description: Dhungaloo +Added: 2013-09-10 +%% +Type: language +Subtag: dia +Description: Dia +Added: 2009-07-29 +%% +Type: language +Subtag: dib +Description: South Central Dinka +Added: 2009-07-29 +Macrolanguage: din +%% +Type: language +Subtag: dic +Description: Lakota Dida +Added: 2009-07-29 +%% +Type: language +Subtag: did +Description: Didinga +Added: 2009-07-29 +%% +Type: language +Subtag: dif +Description: Dieri +Added: 2009-07-29 +%% +Type: language +Subtag: dig +Description: Digo +Description: Chidigo +Added: 2009-07-29 +%% +Type: language +Subtag: dih +Description: Kumiai +Added: 2009-07-29 +%% +Type: language +Subtag: dii +Description: Dimbong +Added: 2009-07-29 +%% +Type: language +Subtag: dij +Description: Dai +Added: 2009-07-29 +%% +Type: language +Subtag: dik +Description: Southwestern Dinka +Added: 2009-07-29 +Macrolanguage: din +%% +Type: language +Subtag: dil +Description: Dilling +Added: 2009-07-29 +%% +Type: language +Subtag: dim +Description: Dime +Added: 2009-07-29 +%% +Type: language +Subtag: din +Description: Dinka +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: dio +Description: Dibo +Added: 2009-07-29 +%% +Type: language +Subtag: dip +Description: Northeastern Dinka +Added: 2009-07-29 +Macrolanguage: din +%% +Type: language +Subtag: diq +Description: Dimli (individual language) +Added: 2009-07-29 +Macrolanguage: zza +%% +Type: language +Subtag: dir +Description: Dirim +Added: 2009-07-29 +%% +Type: language +Subtag: dis +Description: Dimasa +Added: 2009-07-29 +%% +Type: language +Subtag: dit +Description: Dirari +Added: 2009-07-29 +%% +Type: language +Subtag: diu +Description: Diriku +Added: 2009-07-29 +%% +Type: language +Subtag: diw +Description: Northwestern Dinka +Added: 2009-07-29 +Macrolanguage: din +%% +Type: language +Subtag: dix +Description: Dixon Reef +Added: 2009-07-29 +%% +Type: language +Subtag: diy +Description: Diuwe +Added: 2009-07-29 +%% +Type: language +Subtag: diz +Description: Ding +Added: 2009-07-29 +%% +Type: language +Subtag: dja +Description: Djadjawurrung +Added: 2012-08-12 +%% +Type: language +Subtag: djb +Description: Djinba +Added: 2009-07-29 +%% +Type: language +Subtag: djc +Description: Dar Daju Daju +Added: 2009-07-29 +%% +Type: language +Subtag: djd +Description: Djamindjung +Added: 2009-07-29 +%% +Type: language +Subtag: dje +Description: Zarma +Added: 2009-07-29 +%% +Type: language +Subtag: djf +Description: Djangun +Added: 2009-07-29 +%% +Type: language +Subtag: dji +Description: Djinang +Added: 2009-07-29 +%% +Type: language +Subtag: djj +Description: Djeebbana +Added: 2009-07-29 +%% +Type: language +Subtag: djk +Description: Eastern Maroon Creole +Description: Businenge Tongo +Description: Nenge +Added: 2009-07-29 +%% +Type: language +Subtag: djl +Description: Djiwarli +Added: 2009-07-29 +Deprecated: 2013-09-10 +Comments: see dze, iin +%% +Type: language +Subtag: djm +Description: Jamsay Dogon +Added: 2009-07-29 +%% +Type: language +Subtag: djn +Description: Djauan +Added: 2009-07-29 +%% +Type: language +Subtag: djo +Description: Jangkang +Added: 2009-07-29 +%% +Type: language +Subtag: djr +Description: Djambarrpuyngu +Added: 2009-07-29 +%% +Type: language +Subtag: dju +Description: Kapriman +Added: 2009-07-29 +%% +Type: language +Subtag: djw +Description: Djawi +Added: 2009-07-29 +%% +Type: language +Subtag: dka +Description: Dakpakha +Added: 2009-07-29 +%% +Type: language +Subtag: dkk +Description: Dakka +Added: 2009-07-29 +%% +Type: language +Subtag: dkl +Description: Kolum So Dogon +Added: 2009-07-29 +Deprecated: 2011-08-16 +Comments: see aqd, dmb +%% +Type: language +Subtag: dkr +Description: Kuijau +Added: 2009-07-29 +%% +Type: language +Subtag: dks +Description: Southeastern Dinka +Added: 2009-07-29 +Macrolanguage: din +%% +Type: language +Subtag: dkx +Description: Mazagway +Added: 2009-07-29 +%% +Type: language +Subtag: dlg +Description: Dolgan +Added: 2009-07-29 +%% +Type: language +Subtag: dlk +Description: Dahalik +Added: 2013-09-10 +%% +Type: language +Subtag: dlm +Description: Dalmatian +Added: 2009-07-29 +%% +Type: language +Subtag: dln +Description: Darlong +Added: 2009-07-29 +%% +Type: language +Subtag: dma +Description: Duma +Added: 2009-07-29 +%% +Type: language +Subtag: dmb +Description: Mombo Dogon +Added: 2011-08-16 +%% +Type: language +Subtag: dmc +Description: Gavak +Added: 2009-07-29 +%% +Type: language +Subtag: dmd +Description: Madhi Madhi +Added: 2012-08-12 +%% +Type: language +Subtag: dme +Description: Dugwor +Added: 2009-07-29 +%% +Type: language +Subtag: dmg +Description: Upper Kinabatangan +Added: 2009-07-29 +%% +Type: language +Subtag: dmk +Description: Domaaki +Added: 2009-07-29 +%% +Type: language +Subtag: dml +Description: Dameli +Added: 2009-07-29 +%% +Type: language +Subtag: dmm +Description: Dama +Added: 2009-07-29 +%% +Type: language +Subtag: dmn +Description: Mande languages +Added: 2009-07-29 +Scope: collection +%% +Type: language +Subtag: dmo +Description: Kemedzung +Added: 2009-07-29 +%% +Type: language +Subtag: dmr +Description: East Damar +Added: 2009-07-29 +%% +Type: language +Subtag: dms +Description: Dampelas +Added: 2009-07-29 +%% +Type: language +Subtag: dmu +Description: Dubu +Description: Tebi +Added: 2009-07-29 +%% +Type: language +Subtag: dmv +Description: Dumpas +Added: 2009-07-29 +%% +Type: language +Subtag: dmw +Description: Mudburra +Added: 2013-09-10 +%% +Type: language +Subtag: dmx +Description: Dema +Added: 2009-07-29 +%% +Type: language +Subtag: dmy +Description: Demta +Description: Sowari +Added: 2009-07-29 +%% +Type: language +Subtag: dna +Description: Upper Grand Valley Dani +Added: 2009-07-29 +%% +Type: language +Subtag: dnd +Description: Daonda +Added: 2009-07-29 +%% +Type: language +Subtag: dne +Description: Ndendeule +Added: 2009-07-29 +%% +Type: language +Subtag: dng +Description: Dungan +Added: 2009-07-29 +%% +Type: language +Subtag: dni +Description: Lower Grand Valley Dani +Added: 2009-07-29 +%% +Type: language +Subtag: dnj +Description: Dan +Added: 2013-09-10 +%% +Type: language +Subtag: dnk +Description: Dengka +Added: 2009-07-29 +%% +Type: language +Subtag: dnn +Description: Dzùùngoo +Added: 2009-07-29 +%% +Type: language +Subtag: dnr +Description: Danaru +Added: 2009-07-29 +%% +Type: language +Subtag: dnt +Description: Mid Grand Valley Dani +Added: 2009-07-29 +%% +Type: language +Subtag: dnu +Description: Danau +Added: 2009-07-29 +%% +Type: language +Subtag: dnv +Description: Danu +Added: 2012-08-12 +%% +Type: language +Subtag: dnw +Description: Western Dani +Added: 2009-07-29 +%% +Type: language +Subtag: dny +Description: Dení +Added: 2009-07-29 +%% +Type: language +Subtag: doa +Description: Dom +Added: 2009-07-29 +%% +Type: language +Subtag: dob +Description: Dobu +Added: 2009-07-29 +%% +Type: language +Subtag: doc +Description: Northern Dong +Added: 2009-07-29 +%% +Type: language +Subtag: doe +Description: Doe +Added: 2009-07-29 +%% +Type: language +Subtag: dof +Description: Domu +Added: 2009-07-29 +%% +Type: language +Subtag: doh +Description: Dong +Added: 2009-07-29 +%% +Type: language +Subtag: doi +Description: Dogri (macrolanguage) +Added: 2005-10-16 +Scope: macrolanguage +%% +Type: language +Subtag: dok +Description: Dondo +Added: 2009-07-29 +%% +Type: language +Subtag: dol +Description: Doso +Added: 2009-07-29 +%% +Type: language +Subtag: don +Description: Toura (Papua New Guinea) +Added: 2009-07-29 +%% +Type: language +Subtag: doo +Description: Dongo +Added: 2009-07-29 +%% +Type: language +Subtag: dop +Description: Lukpa +Added: 2009-07-29 +%% +Type: language +Subtag: doq +Description: Dominican Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: dor +Description: Dori'o +Added: 2009-07-29 +%% +Type: language +Subtag: dos +Description: Dogosé +Added: 2009-07-29 +%% +Type: language +Subtag: dot +Description: Dass +Added: 2009-07-29 +%% +Type: language +Subtag: dov +Description: Dombe +Added: 2009-07-29 +%% +Type: language +Subtag: dow +Description: Doyayo +Added: 2009-07-29 +%% +Type: language +Subtag: dox +Description: Bussa +Added: 2009-07-29 +%% +Type: language +Subtag: doy +Description: Dompo +Added: 2009-07-29 +%% +Type: language +Subtag: doz +Description: Dorze +Added: 2009-07-29 +%% +Type: language +Subtag: dpp +Description: Papar +Added: 2009-07-29 +%% +Type: language +Subtag: dra +Description: Dravidian languages +Added: 2005-10-16 +Scope: collection +%% +Type: language +Subtag: drb +Description: Dair +Added: 2009-07-29 +%% +Type: language +Subtag: drc +Description: Minderico +Added: 2011-08-16 +%% +Type: language +Subtag: drd +Description: Darmiya +Added: 2009-07-29 +%% +Type: language +Subtag: dre +Description: Dolpo +Added: 2009-07-29 +%% +Type: language +Subtag: drg +Description: Rungus +Added: 2009-07-29 +%% +Type: language +Subtag: drh +Description: Darkhat +Added: 2009-07-29 +Deprecated: 2010-03-11 +Preferred-Value: khk +%% +Type: language +Subtag: dri +Description: C'lela +Added: 2009-07-29 +%% +Type: language +Subtag: drl +Description: Paakantyi +Added: 2009-07-29 +%% +Type: language +Subtag: drn +Description: West Damar +Added: 2009-07-29 +%% +Type: language +Subtag: dro +Description: Daro-Matu Melanau +Added: 2009-07-29 +%% +Type: language +Subtag: drq +Description: Dura +Added: 2009-07-29 +%% +Type: language +Subtag: drr +Description: Dororo +Added: 2009-07-29 +%% +Type: language +Subtag: drs +Description: Gedeo +Added: 2009-07-29 +%% +Type: language +Subtag: drt +Description: Drents +Added: 2009-07-29 +%% +Type: language +Subtag: dru +Description: Rukai +Added: 2009-07-29 +%% +Type: language +Subtag: drw +Description: Darwazi +Added: 2009-07-29 +Deprecated: 2010-03-11 +Preferred-Value: prs +%% +Type: language +Subtag: dry +Description: Darai +Added: 2009-07-29 +%% +Type: language +Subtag: dsb +Description: Lower Sorbian +Added: 2005-10-16 +Suppress-Script: Latn +%% +Type: language +Subtag: dse +Description: Dutch Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: dsh +Description: Daasanach +Added: 2009-07-29 +%% +Type: language +Subtag: dsi +Description: Disa +Added: 2009-07-29 +%% +Type: language +Subtag: dsl +Description: Danish Sign Language +Added: 2009-07-29 +%% +Type: language +Subtag: dsn +Description: Dusner +Added: 2009-07-29 +%% +Type: language +Subtag: dso +Description: Desiya +Added: 2009-07-29 +%% +Type: language +Subtag: dsq +Description: Tadaksahak +Added: 2009-07-29 +%% +Type: language +Subtag: dta +Description: Daur +Added: 2009-07-29 +%% +Type: language +Subtag: dtb +Description: Labuk-Kinabatangan Kadazan +Added: 2009-07-29 +%% +Type: language +Subtag: dtd +Description: Ditidaht +Added: 2011-08-16 +%% +Type: language +Subtag: dth +Description: Adithinngithigh +Added: 2012-08-12 +%% +Type: language +Subtag: dti +Description: Ana Tinga Dogon +Added: 2009-07-29 +%% +Type: language +Subtag: dtk +Description: Tene Kan Dogon +Added: 2009-07-29 +%% +Type: language +Subtag: dtm +Description: Tomo Kan Dogon +Added: 2009-07-29 +%% +Type: language +Subtag: dto +Description: Tommo So Dogon +Added: 2012-08-12 +%% +Type: language +Subtag: dtp +Description: Central Dusun +Added: 2009-07-29 +%% +Type: language +Subtag: dtr +Description: Lotud +Added: 2009-07-29 +%% +Type: language +Subtag: dts +Description: Toro So Dogon +Added: 2009-07-29 +%% +Type: language +Subtag: dtt +Description: Toro Tegu Dogon +Added: 2009-07-29 +%% +Type: language