summary refs log tree commit diff
path: root/locale
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-07-12 18:26:36 +0000
committerJakub Jelinek <jakub@redhat.com>2007-07-12 18:26:36 +0000
commit0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (patch)
tree2ea1f8305970753e4a657acb2ccc15ca3eec8e2c /locale
parent7d58530341304d403a6626d7f7a1913165fe2f32 (diff)
downloadglibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.tar.gz
glibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.tar.xz
glibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.zip
2.5-18.1
Diffstat (limited to 'locale')
-rw-r--r--locale/C-translit.h759
-rw-r--r--locale/C-translit.h.in3
-rw-r--r--locale/Makefile6
-rw-r--r--locale/SYS_libc.c4
-rw-r--r--locale/duplocale.c4
-rw-r--r--locale/findlocale.c11
-rw-r--r--locale/freelocale.c4
-rw-r--r--locale/iso-3166.def3
-rw-r--r--locale/iso-4217.def34
-rw-r--r--locale/iso-639.def121
-rw-r--r--locale/langinfo.h10
-rw-r--r--locale/lc-ctype.c6
-rw-r--r--locale/loadarchive.c4
-rw-r--r--locale/loadlocale.c6
-rw-r--r--locale/localeinfo.h25
-rw-r--r--locale/newlocale.c9
-rw-r--r--locale/nl_langinfo.c15
-rw-r--r--locale/programs/3level.h58
-rw-r--r--locale/programs/charmap-dir.c22
-rw-r--r--locale/programs/charmap-dir.h22
-rw-r--r--locale/programs/charmap-kw.gperf22
-rw-r--r--locale/programs/charmap-kw.h102
-rw-r--r--locale/programs/charmap.c41
-rw-r--r--locale/programs/charmap.h25
-rw-r--r--locale/programs/config.h22
-rw-r--r--locale/programs/ld-address.c38
-rw-r--r--locale/programs/ld-collate.c42
-rw-r--r--locale/programs/ld-ctype.c53
-rw-r--r--locale/programs/ld-identification.c22
-rw-r--r--locale/programs/ld-measurement.c22
-rw-r--r--locale/programs/ld-messages.c22
-rw-r--r--locale/programs/ld-monetary.c22
-rw-r--r--locale/programs/ld-name.c22
-rw-r--r--locale/programs/ld-numeric.c43
-rw-r--r--locale/programs/ld-paper.c22
-rw-r--r--locale/programs/ld-telephone.c22
-rw-r--r--locale/programs/ld-time.c52
-rw-r--r--locale/programs/linereader.c32
-rw-r--r--locale/programs/linereader.h22
-rw-r--r--locale/programs/locale-spec.c22
-rw-r--r--locale/programs/locale.c24
-rw-r--r--locale/programs/localedef.c54
-rw-r--r--locale/programs/localedef.h22
-rw-r--r--locale/programs/locarchive.c22
-rw-r--r--locale/programs/locfile-kw.gperf22
-rw-r--r--locale/programs/locfile-kw.h729
-rw-r--r--locale/programs/locfile-token.h22
-rw-r--r--locale/programs/locfile.c31
-rw-r--r--locale/programs/locfile.h22
-rw-r--r--locale/programs/repertoire.c24
-rw-r--r--locale/programs/repertoire.h22
-rw-r--r--locale/programs/simple-hash.c26
-rw-r--r--locale/programs/simple-hash.h22
-rw-r--r--locale/programs/xmalloc.c23
-rw-r--r--locale/programs/xstrdup.c22
-rw-r--r--locale/setlocale.c33
-rw-r--r--locale/weightwc.h14
-rw-r--r--locale/xlocale.c4
58 files changed, 1625 insertions, 1309 deletions
diff --git a/locale/C-translit.h b/locale/C-translit.h
index 568db4866f..adb009ba56 100644
--- a/locale/C-translit.h
+++ b/locale/C-translit.h
@@ -1,4 +1,4 @@
-#define NTRANSLIT 1352
+#define NTRANSLIT 1353
 static const uint32_t translit_from_idx[] =
 {
      0,    2,    4,    6,    8,   10,   12,   14,   16,   18,   20,   22,
@@ -113,7 +113,7 @@ static const uint32_t translit_from_idx[] =
   2616, 2618, 2620, 2622, 2624, 2626, 2628, 2630, 2632, 2634, 2636, 2638,
   2640, 2642, 2644, 2646, 2648, 2650, 2652, 2654, 2656, 2658, 2660, 2662,
   2664, 2666, 2668, 2670, 2672, 2674, 2676, 2678, 2680, 2682, 2684, 2686,
-  2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702
+  2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704
 };
 static const wchar_t translit_from_tbl[] =
   L"\x00a0" L"\0" L"\x00a9" L"\0" L"\x00ab" L"\0" L"\x00ad" L"\0" L"\x00ae"
@@ -132,335 +132,336 @@ static const wchar_t translit_from_tbl[] =
   L"\0" L"\x201d" L"\0" L"\x201e" L"\0" L"\x201f" L"\0" L"\x2020" L"\0"
   L"\x2022" L"\0" L"\x2024" L"\0" L"\x2025" L"\0" L"\x2026" L"\0" L"\x202f"
   L"\0" L"\x2035" L"\0" L"\x2036" L"\0" L"\x2037" L"\0" L"\x2039" L"\0"
-  L"\x203a" L"\0" L"\x203c" L"\0" L"\x2047" L"\0" L"\x2048" L"\0" L"\x2049"
-  L"\0" L"\x205f" L"\0" L"\x2060" L"\0" L"\x2061" L"\0" L"\x2062" L"\0"
-  L"\x2063" L"\0" L"\x20a8" L"\0" L"\x20ac" L"\0" L"\x2100" L"\0" L"\x2101"
-  L"\0" L"\x2102" L"\0" L"\x2105" L"\0" L"\x2106" L"\0" L"\x210a" L"\0"
-  L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d" L"\0" L"\x210e" L"\0" L"\x2110"
-  L"\0" L"\x2111" L"\0" L"\x2112" L"\0" L"\x2113" L"\0" L"\x2115" L"\0"
-  L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a" L"\0" L"\x211b" L"\0" L"\x211c"
-  L"\0" L"\x211d" L"\0" L"\x2121" L"\0" L"\x2122" L"\0" L"\x2124" L"\0"
-  L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c" L"\0" L"\x212d" L"\0" L"\x212e"
-  L"\0" L"\x212f" L"\0" L"\x2130" L"\0" L"\x2131" L"\0" L"\x2133" L"\0"
-  L"\x2134" L"\0" L"\x2139" L"\0" L"\x2145" L"\0" L"\x2146" L"\0" L"\x2147"
-  L"\0" L"\x2148" L"\0" L"\x2149" L"\0" L"\x2153" L"\0" L"\x2154" L"\0"
-  L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157" L"\0" L"\x2158" L"\0" L"\x2159"
-  L"\0" L"\x215a" L"\0" L"\x215b" L"\0" L"\x215c" L"\0" L"\x215d" L"\0"
-  L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160" L"\0" L"\x2161" L"\0" L"\x2162"
-  L"\0" L"\x2163" L"\0" L"\x2164" L"\0" L"\x2165" L"\0" L"\x2166" L"\0"
-  L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169" L"\0" L"\x216a" L"\0" L"\x216b"
-  L"\0" L"\x216c" L"\0" L"\x216d" L"\0" L"\x216e" L"\0" L"\x216f" L"\0"
-  L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172" L"\0" L"\x2173" L"\0" L"\x2174"
-  L"\0" L"\x2175" L"\0" L"\x2176" L"\0" L"\x2177" L"\0" L"\x2178" L"\0"
-  L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b" L"\0" L"\x217c" L"\0" L"\x217d"
-  L"\0" L"\x217e" L"\0" L"\x217f" L"\0" L"\x2190" L"\0" L"\x2192" L"\0"
-  L"\x2194" L"\0" L"\x21d0" L"\0" L"\x21d2" L"\0" L"\x21d4" L"\0" L"\x2212"
-  L"\0" L"\x2215" L"\0" L"\x2216" L"\0" L"\x2217" L"\0" L"\x2223" L"\0"
-  L"\x2236" L"\0" L"\x223c" L"\0" L"\x2264" L"\0" L"\x2265" L"\0" L"\x226a"
-  L"\0" L"\x226b" L"\0" L"\x22d8" L"\0" L"\x22d9" L"\0" L"\x2400" L"\0"
-  L"\x2401" L"\0" L"\x2402" L"\0" L"\x2403" L"\0" L"\x2404" L"\0" L"\x2405"
-  L"\0" L"\x2406" L"\0" L"\x2407" L"\0" L"\x2408" L"\0" L"\x2409" L"\0"
-  L"\x240a" L"\0" L"\x240b" L"\0" L"\x240c" L"\0" L"\x240d" L"\0" L"\x240e"
-  L"\0" L"\x240f" L"\0" L"\x2410" L"\0" L"\x2411" L"\0" L"\x2412" L"\0"
-  L"\x2413" L"\0" L"\x2414" L"\0" L"\x2415" L"\0" L"\x2416" L"\0" L"\x2417"
-  L"\0" L"\x2418" L"\0" L"\x2419" L"\0" L"\x241a" L"\0" L"\x241b" L"\0"
-  L"\x241c" L"\0" L"\x241d" L"\0" L"\x241e" L"\0" L"\x241f" L"\0" L"\x2420"
-  L"\0" L"\x2421" L"\0" L"\x2423" L"\0" L"\x2424" L"\0" L"\x2460" L"\0"
-  L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463" L"\0" L"\x2464" L"\0" L"\x2465"
-  L"\0" L"\x2466" L"\0" L"\x2467" L"\0" L"\x2468" L"\0" L"\x2469" L"\0"
-  L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c" L"\0" L"\x246d" L"\0" L"\x246e"
-  L"\0" L"\x246f" L"\0" L"\x2470" L"\0" L"\x2471" L"\0" L"\x2472" L"\0"
-  L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475" L"\0" L"\x2476" L"\0" L"\x2477"
-  L"\0" L"\x2478" L"\0" L"\x2479" L"\0" L"\x247a" L"\0" L"\x247b" L"\0"
-  L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e" L"\0" L"\x247f" L"\0" L"\x2480"
-  L"\0" L"\x2481" L"\0" L"\x2482" L"\0" L"\x2483" L"\0" L"\x2484" L"\0"
-  L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487" L"\0" L"\x2488" L"\0" L"\x2489"
-  L"\0" L"\x248a" L"\0" L"\x248b" L"\0" L"\x248c" L"\0" L"\x248d" L"\0"
-  L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490" L"\0" L"\x2491" L"\0" L"\x2492"
-  L"\0" L"\x2493" L"\0" L"\x2494" L"\0" L"\x2495" L"\0" L"\x2496" L"\0"
-  L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499" L"\0" L"\x249a" L"\0" L"\x249b"
-  L"\0" L"\x249c" L"\0" L"\x249d" L"\0" L"\x249e" L"\0" L"\x249f" L"\0"
-  L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2" L"\0" L"\x24a3" L"\0" L"\x24a4"
-  L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0" L"\x24a7" L"\0" L"\x24a8" L"\0"
-  L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab" L"\0" L"\x24ac" L"\0" L"\x24ad"
-  L"\0" L"\x24ae" L"\0" L"\x24af" L"\0" L"\x24b0" L"\0" L"\x24b1" L"\0"
-  L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4" L"\0" L"\x24b5" L"\0" L"\x24b6"
-  L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0" L"\x24b9" L"\0" L"\x24ba" L"\0"
-  L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd" L"\0" L"\x24be" L"\0" L"\x24bf"
-  L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0" L"\x24c2" L"\0" L"\x24c3" L"\0"
-  L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6" L"\0" L"\x24c7" L"\0" L"\x24c8"
-  L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0" L"\x24cb" L"\0" L"\x24cc" L"\0"
-  L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf" L"\0" L"\x24d0" L"\0" L"\x24d1"
-  L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0" L"\x24d4" L"\0" L"\x24d5" L"\0"
-  L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8" L"\0" L"\x24d9" L"\0" L"\x24da"
-  L"\0" L"\x24db" L"\0" L"\x24dc" L"\0" L"\x24dd" L"\0" L"\x24de" L"\0"
-  L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1" L"\0" L"\x24e2" L"\0" L"\x24e3"
-  L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0" L"\x24e6" L"\0" L"\x24e7" L"\0"
-  L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea" L"\0" L"\x2500" L"\0" L"\x2502"
-  L"\0" L"\x250c" L"\0" L"\x2510" L"\0" L"\x2514" L"\0" L"\x2518" L"\0"
-  L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c" L"\0" L"\x2534" L"\0" L"\x253c"
-  L"\0" L"\x25e6" L"\0" L"\x2a74" L"\0" L"\x2a75" L"\0" L"\x2a76" L"\0"
-  L"\x3000" L"\0" L"\x30a0" L"\0" L"\x3251" L"\0" L"\x3252" L"\0" L"\x3253"
-  L"\0" L"\x3254" L"\0" L"\x3255" L"\0" L"\x3256" L"\0" L"\x3257" L"\0"
-  L"\x3258" L"\0" L"\x3259" L"\0" L"\x325a" L"\0" L"\x325b" L"\0" L"\x325c"
-  L"\0" L"\x325d" L"\0" L"\x325e" L"\0" L"\x325f" L"\0" L"\x32b1" L"\0"
-  L"\x32b2" L"\0" L"\x32b3" L"\0" L"\x32b4" L"\0" L"\x32b5" L"\0" L"\x32b6"
-  L"\0" L"\x32b7" L"\0" L"\x32b8" L"\0" L"\x32b9" L"\0" L"\x32ba" L"\0"
-  L"\x32bb" L"\0" L"\x32bc" L"\0" L"\x32bd" L"\0" L"\x32be" L"\0" L"\x32bf"
-  L"\0" L"\x3371" L"\0" L"\x3372" L"\0" L"\x3373" L"\0" L"\x3374" L"\0"
-  L"\x3375" L"\0" L"\x3376" L"\0" L"\x3380" L"\0" L"\x3381" L"\0" L"\x3382"
-  L"\0" L"\x3383" L"\0" L"\x3384" L"\0" L"\x3385" L"\0" L"\x3386" L"\0"
-  L"\x3387" L"\0" L"\x3388" L"\0" L"\x3389" L"\0" L"\x338a" L"\0" L"\x338b"
-  L"\0" L"\x338c" L"\0" L"\x338d" L"\0" L"\x338e" L"\0" L"\x338f" L"\0"
-  L"\x3390" L"\0" L"\x3391" L"\0" L"\x3392" L"\0" L"\x3393" L"\0" L"\x3394"
-  L"\0" L"\x3395" L"\0" L"\x3396" L"\0" L"\x3397" L"\0" L"\x3398" L"\0"
-  L"\x3399" L"\0" L"\x339a" L"\0" L"\x339b" L"\0" L"\x339c" L"\0" L"\x339d"
-  L"\0" L"\x339e" L"\0" L"\x339f" L"\0" L"\x33a0" L"\0" L"\x33a1" L"\0"
-  L"\x33a2" L"\0" L"\x33a3" L"\0" L"\x33a4" L"\0" L"\x33a5" L"\0" L"\x33a6"
-  L"\0" L"\x33a7" L"\0" L"\x33a8" L"\0" L"\x33a9" L"\0" L"\x33aa" L"\0"
-  L"\x33ab" L"\0" L"\x33ac" L"\0" L"\x33ad" L"\0" L"\x33ae" L"\0" L"\x33af"
-  L"\0" L"\x33b0" L"\0" L"\x33b1" L"\0" L"\x33b2" L"\0" L"\x33b3" L"\0"
-  L"\x33b4" L"\0" L"\x33b5" L"\0" L"\x33b6" L"\0" L"\x33b7" L"\0" L"\x33b8"
-  L"\0" L"\x33b9" L"\0" L"\x33ba" L"\0" L"\x33bb" L"\0" L"\x33bc" L"\0"
-  L"\x33bd" L"\0" L"\x33be" L"\0" L"\x33bf" L"\0" L"\x33c2" L"\0" L"\x33c3"
-  L"\0" L"\x33c4" L"\0" L"\x33c5" L"\0" L"\x33c6" L"\0" L"\x33c7" L"\0"
-  L"\x33c8" L"\0" L"\x33c9" L"\0" L"\x33ca" L"\0" L"\x33cb" L"\0" L"\x33cc"
-  L"\0" L"\x33cd" L"\0" L"\x33ce" L"\0" L"\x33cf" L"\0" L"\x33d0" L"\0"
-  L"\x33d1" L"\0" L"\x33d2" L"\0" L"\x33d3" L"\0" L"\x33d4" L"\0" L"\x33d5"
-  L"\0" L"\x33d6" L"\0" L"\x33d7" L"\0" L"\x33d8" L"\0" L"\x33d9" L"\0"
-  L"\x33da" L"\0" L"\x33db" L"\0" L"\x33dc" L"\0" L"\x33dd" L"\0" L"\xfb00"
-  L"\0" L"\xfb01" L"\0" L"\xfb02" L"\0" L"\xfb03" L"\0" L"\xfb04" L"\0"
-  L"\xfb06" L"\0" L"\xfb29" L"\0" L"\xfe00" L"\0" L"\xfe01" L"\0" L"\xfe02"
-  L"\0" L"\xfe03" L"\0" L"\xfe04" L"\0" L"\xfe05" L"\0" L"\xfe06" L"\0"
-  L"\xfe07" L"\0" L"\xfe08" L"\0" L"\xfe09" L"\0" L"\xfe0a" L"\0" L"\xfe0b"
-  L"\0" L"\xfe0c" L"\0" L"\xfe0d" L"\0" L"\xfe0e" L"\0" L"\xfe0f" L"\0"
-  L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f" L"\0" L"\xfe50" L"\0" L"\xfe52"
-  L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0" L"\xfe56" L"\0" L"\xfe57" L"\0"
-  L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b" L"\0" L"\xfe5c" L"\0" L"\xfe5f"
-  L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0" L"\xfe62" L"\0" L"\xfe63" L"\0"
-  L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66" L"\0" L"\xfe68" L"\0" L"\xfe69"
-  L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0" L"\xfeff" L"\0" L"\xff01" L"\0"
-  L"\xff02" L"\0" L"\xff03" L"\0" L"\xff04" L"\0" L"\xff05" L"\0" L"\xff06"
-  L"\0" L"\xff07" L"\0" L"\xff08" L"\0" L"\xff09" L"\0" L"\xff0a" L"\0"
-  L"\xff0b" L"\0" L"\xff0c" L"\0" L"\xff0d" L"\0" L"\xff0e" L"\0" L"\xff0f"
-  L"\0" L"\xff10" L"\0" L"\xff11" L"\0" L"\xff12" L"\0" L"\xff13" L"\0"
-  L"\xff14" L"\0" L"\xff15" L"\0" L"\xff16" L"\0" L"\xff17" L"\0" L"\xff18"
-  L"\0" L"\xff19" L"\0" L"\xff1a" L"\0" L"\xff1b" L"\0" L"\xff1c" L"\0"
-  L"\xff1d" L"\0" L"\xff1e" L"\0" L"\xff1f" L"\0" L"\xff20" L"\0" L"\xff21"
-  L"\0" L"\xff22" L"\0" L"\xff23" L"\0" L"\xff24" L"\0" L"\xff25" L"\0"
-  L"\xff26" L"\0" L"\xff27" L"\0" L"\xff28" L"\0" L"\xff29" L"\0" L"\xff2a"
-  L"\0" L"\xff2b" L"\0" L"\xff2c" L"\0" L"\xff2d" L"\0" L"\xff2e" L"\0"
-  L"\xff2f" L"\0" L"\xff30" L"\0" L"\xff31" L"\0" L"\xff32" L"\0" L"\xff33"
-  L"\0" L"\xff34" L"\0" L"\xff35" L"\0" L"\xff36" L"\0" L"\xff37" L"\0"
-  L"\xff38" L"\0" L"\xff39" L"\0" L"\xff3a" L"\0" L"\xff3b" L"\0" L"\xff3c"
-  L"\0" L"\xff3d" L"\0" L"\xff3e" L"\0" L"\xff3f" L"\0" L"\xff40" L"\0"
-  L"\xff41" L"\0" L"\xff42" L"\0" L"\xff43" L"\0" L"\xff44" L"\0" L"\xff45"
-  L"\0" L"\xff46" L"\0" L"\xff47" L"\0" L"\xff48" L"\0" L"\xff49" L"\0"
-  L"\xff4a" L"\0" L"\xff4b" L"\0" L"\xff4c" L"\0" L"\xff4d" L"\0" L"\xff4e"
-  L"\0" L"\xff4f" L"\0" L"\xff50" L"\0" L"\xff51" L"\0" L"\xff52" L"\0"
-  L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55" L"\0" L"\xff56" L"\0" L"\xff57"
-  L"\0" L"\xff58" L"\0" L"\xff59" L"\0" L"\xff5a" L"\0" L"\xff5b" L"\0"
-  L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e" L"\0" L"\x0001d400" L"\0"
-  L"\x0001d401" L"\0" L"\x0001d402" L"\0" L"\x0001d403" L"\0" L"\x0001d404"
-  L"\0" L"\x0001d405" L"\0" L"\x0001d406" L"\0" L"\x0001d407" L"\0"
-  L"\x0001d408" L"\0" L"\x0001d409" L"\0" L"\x0001d40a" L"\0" L"\x0001d40b"
-  L"\0" L"\x0001d40c" L"\0" L"\x0001d40d" L"\0" L"\x0001d40e" L"\0"
-  L"\x0001d40f" L"\0" L"\x0001d410" L"\0" L"\x0001d411" L"\0" L"\x0001d412"
-  L"\0" L"\x0001d413" L"\0" L"\x0001d414" L"\0" L"\x0001d415" L"\0"
-  L"\x0001d416" L"\0" L"\x0001d417" L"\0" L"\x0001d418" L"\0" L"\x0001d419"
-  L"\0" L"\x0001d41a" L"\0" L"\x0001d41b" L"\0" L"\x0001d41c" L"\0"
-  L"\x0001d41d" L"\0" L"\x0001d41e" L"\0" L"\x0001d41f" L"\0" L"\x0001d420"
-  L"\0" L"\x0001d421" L"\0" L"\x0001d422" L"\0" L"\x0001d423" L"\0"
-  L"\x0001d424" L"\0" L"\x0001d425" L"\0" L"\x0001d426" L"\0" L"\x0001d427"
-  L"\0" L"\x0001d428" L"\0" L"\x0001d429" L"\0" L"\x0001d42a" L"\0"
-  L"\x0001d42b" L"\0" L"\x0001d42c" L"\0" L"\x0001d42d" L"\0" L"\x0001d42e"
-  L"\0" L"\x0001d42f" L"\0" L"\x0001d430" L"\0" L"\x0001d431" L"\0"
-  L"\x0001d432" L"\0" L"\x0001d433" L"\0" L"\x0001d434" L"\0" L"\x0001d435"
-  L"\0" L"\x0001d436" L"\0" L"\x0001d437" L"\0" L"\x0001d438" L"\0"
-  L"\x0001d439" L"\0" L"\x0001d43a" L"\0" L"\x0001d43b" L"\0" L"\x0001d43c"
-  L"\0" L"\x0001d43d" L"\0" L"\x0001d43e" L"\0" L"\x0001d43f" L"\0"
-  L"\x0001d440" L"\0" L"\x0001d441" L"\0" L"\x0001d442" L"\0" L"\x0001d443"
-  L"\0" L"\x0001d444" L"\0" L"\x0001d445" L"\0" L"\x0001d446" L"\0"
-  L"\x0001d447" L"\0" L"\x0001d448" L"\0" L"\x0001d449" L"\0" L"\x0001d44a"
-  L"\0" L"\x0001d44b" L"\0" L"\x0001d44c" L"\0" L"\x0001d44d" L"\0"
-  L"\x0001d44e" L"\0" L"\x0001d44f" L"\0" L"\x0001d450" L"\0" L"\x0001d451"
-  L"\0" L"\x0001d452" L"\0" L"\x0001d453" L"\0" L"\x0001d454" L"\0"
-  L"\x0001d456" L"\0" L"\x0001d457" L"\0" L"\x0001d458" L"\0" L"\x0001d459"
-  L"\0" L"\x0001d45a" L"\0" L"\x0001d45b" L"\0" L"\x0001d45c" L"\0"
-  L"\x0001d45d" L"\0" L"\x0001d45e" L"\0" L"\x0001d45f" L"\0" L"\x0001d460"
-  L"\0" L"\x0001d461" L"\0" L"\x0001d462" L"\0" L"\x0001d463" L"\0"
-  L"\x0001d464" L"\0" L"\x0001d465" L"\0" L"\x0001d466" L"\0" L"\x0001d467"
-  L"\0" L"\x0001d468" L"\0" L"\x0001d469" L"\0" L"\x0001d46a" L"\0"
-  L"\x0001d46b" L"\0" L"\x0001d46c" L"\0" L"\x0001d46d" L"\0" L"\x0001d46e"
-  L"\0" L"\x0001d46f" L"\0" L"\x0001d470" L"\0" L"\x0001d471" L"\0"
-  L"\x0001d472" L"\0" L"\x0001d473" L"\0" L"\x0001d474" L"\0" L"\x0001d475"
-  L"\0" L"\x0001d476" L"\0" L"\x0001d477" L"\0" L"\x0001d478" L"\0"
-  L"\x0001d479" L"\0" L"\x0001d47a" L"\0" L"\x0001d47b" L"\0" L"\x0001d47c"
-  L"\0" L"\x0001d47d" L"\0" L"\x0001d47e" L"\0" L"\x0001d47f" L"\0"
-  L"\x0001d480" L"\0" L"\x0001d481" L"\0" L"\x0001d482" L"\0" L"\x0001d483"
-  L"\0" L"\x0001d484" L"\0" L"\x0001d485" L"\0" L"\x0001d486" L"\0"
-  L"\x0001d487" L"\0" L"\x0001d488" L"\0" L"\x0001d489" L"\0" L"\x0001d48a"
-  L"\0" L"\x0001d48b" L"\0" L"\x0001d48c" L"\0" L"\x0001d48d" L"\0"
-  L"\x0001d48e" L"\0" L"\x0001d48f" L"\0" L"\x0001d490" L"\0" L"\x0001d491"
-  L"\0" L"\x0001d492" L"\0" L"\x0001d493" L"\0" L"\x0001d494" L"\0"
-  L"\x0001d495" L"\0" L"\x0001d496" L"\0" L"\x0001d497" L"\0" L"\x0001d498"
-  L"\0" L"\x0001d499" L"\0" L"\x0001d49a" L"\0" L"\x0001d49b" L"\0"
-  L"\x0001d49c" L"\0" L"\x0001d49e" L"\0" L"\x0001d49f" L"\0" L"\x0001d4a2"
-  L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6" L"\0" L"\x0001d4a9" L"\0"
-  L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0" L"\x0001d4ac" L"\0" L"\x0001d4ae"
-  L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0" L"\0" L"\x0001d4b1" L"\0"
-  L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0" L"\x0001d4b4" L"\0" L"\x0001d4b5"
-  L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7" L"\0" L"\x0001d4b8" L"\0"
-  L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0" L"\x0001d4bd" L"\0" L"\x0001d4be"
-  L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0" L"\0" L"\x0001d4c2" L"\0"
-  L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0" L"\x0001d4c6" L"\0" L"\x0001d4c7"
-  L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9" L"\0" L"\x0001d4ca" L"\0"
-  L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0" L"\x0001d4cd" L"\0" L"\x0001d4ce"
-  L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0" L"\0" L"\x0001d4d1" L"\0"
-  L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0" L"\x0001d4d4" L"\0" L"\x0001d4d5"
-  L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7" L"\0" L"\x0001d4d8" L"\0"
-  L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0" L"\x0001d4db" L"\0" L"\x0001d4dc"
-  L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de" L"\0" L"\x0001d4df" L"\0"
-  L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0" L"\x0001d4e2" L"\0" L"\x0001d4e3"
-  L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5" L"\0" L"\x0001d4e6" L"\0"
-  L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0" L"\x0001d4e9" L"\0" L"\x0001d4ea"
-  L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec" L"\0" L"\x0001d4ed" L"\0"
-  L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0" L"\x0001d4f0" L"\0" L"\x0001d4f1"
-  L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3" L"\0" L"\x0001d4f4" L"\0"
-  L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0" L"\x0001d4f7" L"\0" L"\x0001d4f8"
-  L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa" L"\0" L"\x0001d4fb" L"\0"
-  L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0" L"\x0001d4fe" L"\0" L"\x0001d4ff"
-  L"\0" L"\x0001d500" L"\0" L"\x0001d501" L"\0" L"\x0001d502" L"\0"
-  L"\x0001d503" L"\0" L"\x0001d504" L"\0" L"\x0001d505" L"\0" L"\x0001d507"
-  L"\0" L"\x0001d508" L"\0" L"\x0001d509" L"\0" L"\x0001d50a" L"\0"
-  L"\x0001d50d" L"\0" L"\x0001d50e" L"\0" L"\x0001d50f" L"\0" L"\x0001d510"
-  L"\0" L"\x0001d511" L"\0" L"\x0001d512" L"\0" L"\x0001d513" L"\0"
-  L"\x0001d514" L"\0" L"\x0001d516" L"\0" L"\x0001d517" L"\0" L"\x0001d518"
-  L"\0" L"\x0001d519" L"\0" L"\x0001d51a" L"\0" L"\x0001d51b" L"\0"
-  L"\x0001d51c" L"\0" L"\x0001d51e" L"\0" L"\x0001d51f" L"\0" L"\x0001d520"
-  L"\0" L"\x0001d521" L"\0" L"\x0001d522" L"\0" L"\x0001d523" L"\0"
-  L"\x0001d524" L"\0" L"\x0001d525" L"\0" L"\x0001d526" L"\0" L"\x0001d527"
-  L"\0" L"\x0001d528" L"\0" L"\x0001d529" L"\0" L"\x0001d52a" L"\0"
-  L"\x0001d52b" L"\0" L"\x0001d52c" L"\0" L"\x0001d52d" L"\0" L"\x0001d52e"
-  L"\0" L"\x0001d52f" L"\0" L"\x0001d530" L"\0" L"\x0001d531" L"\0"
-  L"\x0001d532" L"\0" L"\x0001d533" L"\0" L"\x0001d534" L"\0" L"\x0001d535"
-  L"\0" L"\x0001d536" L"\0" L"\x0001d537" L"\0" L"\x0001d538" L"\0"
-  L"\x0001d539" L"\0" L"\x0001d53b" L"\0" L"\x0001d53c" L"\0" L"\x0001d53d"
-  L"\0" L"\x0001d53e" L"\0" L"\x0001d540" L"\0" L"\x0001d541" L"\0"
-  L"\x0001d542" L"\0" L"\x0001d543" L"\0" L"\x0001d544" L"\0" L"\x0001d546"
-  L"\0" L"\x0001d54a" L"\0" L"\x0001d54b" L"\0" L"\x0001d54c" L"\0"
-  L"\x0001d54d" L"\0" L"\x0001d54e" L"\0" L"\x0001d54f" L"\0" L"\x0001d550"
-  L"\0" L"\x0001d552" L"\0" L"\x0001d553" L"\0" L"\x0001d554" L"\0"
-  L"\x0001d555" L"\0" L"\x0001d556" L"\0" L"\x0001d557" L"\0" L"\x0001d558"
-  L"\0" L"\x0001d559" L"\0" L"\x0001d55a" L"\0" L"\x0001d55b" L"\0"
-  L"\x0001d55c" L"\0" L"\x0001d55d" L"\0" L"\x0001d55e" L"\0" L"\x0001d55f"
-  L"\0" L"\x0001d560" L"\0" L"\x0001d561" L"\0" L"\x0001d562" L"\0"
-  L"\x0001d563" L"\0" L"\x0001d564" L"\0" L"\x0001d565" L"\0" L"\x0001d566"
-  L"\0" L"\x0001d567" L"\0" L"\x0001d568" L"\0" L"\x0001d569" L"\0"
-  L"\x0001d56a" L"\0" L"\x0001d56b" L"\0" L"\x0001d56c" L"\0" L"\x0001d56d"
-  L"\0" L"\x0001d56e" L"\0" L"\x0001d56f" L"\0" L"\x0001d570" L"\0"
-  L"\x0001d571" L"\0" L"\x0001d572" L"\0" L"\x0001d573" L"\0" L"\x0001d574"
-  L"\0" L"\x0001d575" L"\0" L"\x0001d576" L"\0" L"\x0001d577" L"\0"
-  L"\x0001d578" L"\0" L"\x0001d579" L"\0" L"\x0001d57a" L"\0" L"\x0001d57b"
-  L"\0" L"\x0001d57c" L"\0" L"\x0001d57d" L"\0" L"\x0001d57e" L"\0"
-  L"\x0001d57f" L"\0" L"\x0001d580" L"\0" L"\x0001d581" L"\0" L"\x0001d582"
-  L"\0" L"\x0001d583" L"\0" L"\x0001d584" L"\0" L"\x0001d585" L"\0"
-  L"\x0001d586" L"\0" L"\x0001d587" L"\0" L"\x0001d588" L"\0" L"\x0001d589"
-  L"\0" L"\x0001d58a" L"\0" L"\x0001d58b" L"\0" L"\x0001d58c" L"\0"
-  L"\x0001d58d" L"\0" L"\x0001d58e" L"\0" L"\x0001d58f" L"\0" L"\x0001d590"
-  L"\0" L"\x0001d591" L"\0" L"\x0001d592" L"\0" L"\x0001d593" L"\0"
-  L"\x0001d594" L"\0" L"\x0001d595" L"\0" L"\x0001d596" L"\0" L"\x0001d597"
-  L"\0" L"\x0001d598" L"\0" L"\x0001d599" L"\0" L"\x0001d59a" L"\0"
-  L"\x0001d59b" L"\0" L"\x0001d59c" L"\0" L"\x0001d59d" L"\0" L"\x0001d59e"
-  L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0" L"\0" L"\x0001d5a1" L"\0"
-  L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0" L"\x0001d5a4" L"\0" L"\x0001d5a5"
-  L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7" L"\0" L"\x0001d5a8" L"\0"
-  L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0" L"\x0001d5ab" L"\0" L"\x0001d5ac"
-  L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae" L"\0" L"\x0001d5af" L"\0"
-  L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0" L"\x0001d5b2" L"\0" L"\x0001d5b3"
-  L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5" L"\0" L"\x0001d5b6" L"\0"
-  L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0" L"\x0001d5b9" L"\0" L"\x0001d5ba"
-  L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc" L"\0" L"\x0001d5bd" L"\0"
-  L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0" L"\x0001d5c0" L"\0" L"\x0001d5c1"
-  L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3" L"\0" L"\x0001d5c4" L"\0"
-  L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0" L"\x0001d5c7" L"\0" L"\x0001d5c8"
-  L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca" L"\0" L"\x0001d5cb" L"\0"
-  L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0" L"\x0001d5ce" L"\0" L"\x0001d5cf"
-  L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1" L"\0" L"\x0001d5d2" L"\0"
-  L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0" L"\x0001d5d5" L"\0" L"\x0001d5d6"
-  L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8" L"\0" L"\x0001d5d9" L"\0"
-  L"\x0001d5da" L"\0" L"\x0001d5db" L"\0" L"\x0001d5dc" L"\0" L"\x0001d5dd"
-  L"\0" L"\x0001d5de" L"\0" L"\x0001d5df" L"\0" L"\x0001d5e0" L"\0"
-  L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0" L"\x0001d5e3" L"\0" L"\x0001d5e4"
-  L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6" L"\0" L"\x0001d5e7" L"\0"
-  L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0" L"\x0001d5ea" L"\0" L"\x0001d5eb"
-  L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed" L"\0" L"\x0001d5ee" L"\0"
-  L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0" L"\x0001d5f1" L"\0" L"\x0001d5f2"
-  L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4" L"\0" L"\x0001d5f5" L"\0"
-  L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0" L"\x0001d5f8" L"\0" L"\x0001d5f9"
-  L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb" L"\0" L"\x0001d5fc" L"\0"
-  L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0" L"\x0001d5ff" L"\0" L"\x0001d600"
-  L"\0" L"\x0001d601" L"\0" L"\x0001d602" L"\0" L"\x0001d603" L"\0"
-  L"\x0001d604" L"\0" L"\x0001d605" L"\0" L"\x0001d606" L"\0" L"\x0001d607"
-  L"\0" L"\x0001d608" L"\0" L"\x0001d609" L"\0" L"\x0001d60a" L"\0"
-  L"\x0001d60b" L"\0" L"\x0001d60c" L"\0" L"\x0001d60d" L"\0" L"\x0001d60e"
-  L"\0" L"\x0001d60f" L"\0" L"\x0001d610" L"\0" L"\x0001d611" L"\0"
-  L"\x0001d612" L"\0" L"\x0001d613" L"\0" L"\x0001d614" L"\0" L"\x0001d615"
-  L"\0" L"\x0001d616" L"\0" L"\x0001d617" L"\0" L"\x0001d618" L"\0"
-  L"\x0001d619" L"\0" L"\x0001d61a" L"\0" L"\x0001d61b" L"\0" L"\x0001d61c"
-  L"\0" L"\x0001d61d" L"\0" L"\x0001d61e" L"\0" L"\x0001d61f" L"\0"
-  L"\x0001d620" L"\0" L"\x0001d621" L"\0" L"\x0001d622" L"\0" L"\x0001d623"
-  L"\0" L"\x0001d624" L"\0" L"\x0001d625" L"\0" L"\x0001d626" L"\0"
-  L"\x0001d627" L"\0" L"\x0001d628" L"\0" L"\x0001d629" L"\0" L"\x0001d62a"
-  L"\0" L"\x0001d62b" L"\0" L"\x0001d62c" L"\0" L"\x0001d62d" L"\0"
-  L"\x0001d62e" L"\0" L"\x0001d62f" L"\0" L"\x0001d630" L"\0" L"\x0001d631"
-  L"\0" L"\x0001d632" L"\0" L"\x0001d633" L"\0" L"\x0001d634" L"\0"
-  L"\x0001d635" L"\0" L"\x0001d636" L"\0" L"\x0001d637" L"\0" L"\x0001d638"
-  L"\0" L"\x0001d639" L"\0" L"\x0001d63a" L"\0" L"\x0001d63b" L"\0"
-  L"\x0001d63c" L"\0" L"\x0001d63d" L"\0" L"\x0001d63e" L"\0" L"\x0001d63f"
-  L"\0" L"\x0001d640" L"\0" L"\x0001d641" L"\0" L"\x0001d642" L"\0"
-  L"\x0001d643" L"\0" L"\x0001d644" L"\0" L"\x0001d645" L"\0" L"\x0001d646"
-  L"\0" L"\x0001d647" L"\0" L"\x0001d648" L"\0" L"\x0001d649" L"\0"
-  L"\x0001d64a" L"\0" L"\x0001d64b" L"\0" L"\x0001d64c" L"\0" L"\x0001d64d"
-  L"\0" L"\x0001d64e" L"\0" L"\x0001d64f" L"\0" L"\x0001d650" L"\0"
-  L"\x0001d651" L"\0" L"\x0001d652" L"\0" L"\x0001d653" L"\0" L"\x0001d654"
-  L"\0" L"\x0001d655" L"\0" L"\x0001d656" L"\0" L"\x0001d657" L"\0"
-  L"\x0001d658" L"\0" L"\x0001d659" L"\0" L"\x0001d65a" L"\0" L"\x0001d65b"
-  L"\0" L"\x0001d65c" L"\0" L"\x0001d65d" L"\0" L"\x0001d65e" L"\0"
-  L"\x0001d65f" L"\0" L"\x0001d660" L"\0" L"\x0001d661" L"\0" L"\x0001d662"
-  L"\0" L"\x0001d663" L"\0" L"\x0001d664" L"\0" L"\x0001d665" L"\0"
-  L"\x0001d666" L"\0" L"\x0001d667" L"\0" L"\x0001d668" L"\0" L"\x0001d669"
-  L"\0" L"\x0001d66a" L"\0" L"\x0001d66b" L"\0" L"\x0001d66c" L"\0"
-  L"\x0001d66d" L"\0" L"\x0001d66e" L"\0" L"\x0001d66f" L"\0" L"\x0001d670"
-  L"\0" L"\x0001d671" L"\0" L"\x0001d672" L"\0" L"\x0001d673" L"\0"
-  L"\x0001d674" L"\0" L"\x0001d675" L"\0" L"\x0001d676" L"\0" L"\x0001d677"
-  L"\0" L"\x0001d678" L"\0" L"\x0001d679" L"\0" L"\x0001d67a" L"\0"
-  L"\x0001d67b" L"\0" L"\x0001d67c" L"\0" L"\x0001d67d" L"\0" L"\x0001d67e"
-  L"\0" L"\x0001d67f" L"\0" L"\x0001d680" L"\0" L"\x0001d681" L"\0"
-  L"\x0001d682" L"\0" L"\x0001d683" L"\0" L"\x0001d684" L"\0" L"\x0001d685"
-  L"\0" L"\x0001d686" L"\0" L"\x0001d687" L"\0" L"\x0001d688" L"\0"
-  L"\x0001d689" L"\0" L"\x0001d68a" L"\0" L"\x0001d68b" L"\0" L"\x0001d68c"
-  L"\0" L"\x0001d68d" L"\0" L"\x0001d68e" L"\0" L"\x0001d68f" L"\0"
-  L"\x0001d690" L"\0" L"\x0001d691" L"\0" L"\x0001d692" L"\0" L"\x0001d693"
-  L"\0" L"\x0001d694" L"\0" L"\x0001d695" L"\0" L"\x0001d696" L"\0"
-  L"\x0001d697" L"\0" L"\x0001d698" L"\0" L"\x0001d699" L"\0" L"\x0001d69a"
-  L"\0" L"\x0001d69b" L"\0" L"\x0001d69c" L"\0" L"\x0001d69d" L"\0"
-  L"\x0001d69e" L"\0" L"\x0001d69f" L"\0" L"\x0001d6a0" L"\0" L"\x0001d6a1"
-  L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3" L"\0" L"\x0001d7ce" L"\0"
-  L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0" L"\x0001d7d1" L"\0" L"\x0001d7d2"
-  L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4" L"\0" L"\x0001d7d5" L"\0"
-  L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0" L"\x0001d7d8" L"\0" L"\x0001d7d9"
-  L"\0" L"\x0001d7da" L"\0" L"\x0001d7db" L"\0" L"\x0001d7dc" L"\0"
-  L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0" L"\x0001d7df" L"\0" L"\x0001d7e0"
-  L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2" L"\0" L"\x0001d7e3" L"\0"
-  L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0" L"\x0001d7e6" L"\0" L"\x0001d7e7"
-  L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9" L"\0" L"\x0001d7ea" L"\0"
-  L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0" L"\x0001d7ed" L"\0" L"\x0001d7ee"
-  L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0" L"\0" L"\x0001d7f1" L"\0"
-  L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0" L"\x0001d7f4" L"\0" L"\x0001d7f5"
-  L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7" L"\0" L"\x0001d7f8" L"\0"
-  L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0" L"\x0001d7fb" L"\0" L"\x0001d7fc"
-  L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe" L"\0" L"\x0001d7ff";
+  L"\x203a" L"\0" L"\x203c" L"\0" L"\x2044" L"\0" L"\x2047" L"\0" L"\x2048"
+  L"\0" L"\x2049" L"\0" L"\x205f" L"\0" L"\x2060" L"\0" L"\x2061" L"\0"
+  L"\x2062" L"\0" L"\x2063" L"\0" L"\x20a8" L"\0" L"\x20ac" L"\0" L"\x2100"
+  L"\0" L"\x2101" L"\0" L"\x2102" L"\0" L"\x2105" L"\0" L"\x2106" L"\0"
+  L"\x210a" L"\0" L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d" L"\0" L"\x210e"
+  L"\0" L"\x2110" L"\0" L"\x2111" L"\0" L"\x2112" L"\0" L"\x2113" L"\0"
+  L"\x2115" L"\0" L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a" L"\0" L"\x211b"
+  L"\0" L"\x211c" L"\0" L"\x211d" L"\0" L"\x2121" L"\0" L"\x2122" L"\0"
+  L"\x2124" L"\0" L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c" L"\0" L"\x212d"
+  L"\0" L"\x212e" L"\0" L"\x212f" L"\0" L"\x2130" L"\0" L"\x2131" L"\0"
+  L"\x2133" L"\0" L"\x2134" L"\0" L"\x2139" L"\0" L"\x2145" L"\0" L"\x2146"
+  L"\0" L"\x2147" L"\0" L"\x2148" L"\0" L"\x2149" L"\0" L"\x2153" L"\0"
+  L"\x2154" L"\0" L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157" L"\0" L"\x2158"
+  L"\0" L"\x2159" L"\0" L"\x215a" L"\0" L"\x215b" L"\0" L"\x215c" L"\0"
+  L"\x215d" L"\0" L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160" L"\0" L"\x2161"
+  L"\0" L"\x2162" L"\0" L"\x2163" L"\0" L"\x2164" L"\0" L"\x2165" L"\0"
+  L"\x2166" L"\0" L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169" L"\0" L"\x216a"
+  L"\0" L"\x216b" L"\0" L"\x216c" L"\0" L"\x216d" L"\0" L"\x216e" L"\0"
+  L"\x216f" L"\0" L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172" L"\0" L"\x2173"
+  L"\0" L"\x2174" L"\0" L"\x2175" L"\0" L"\x2176" L"\0" L"\x2177" L"\0"
+  L"\x2178" L"\0" L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b" L"\0" L"\x217c"
+  L"\0" L"\x217d" L"\0" L"\x217e" L"\0" L"\x217f" L"\0" L"\x2190" L"\0"
+  L"\x2192" L"\0" L"\x2194" L"\0" L"\x21d0" L"\0" L"\x21d2" L"\0" L"\x21d4"
+  L"\0" L"\x2212" L"\0" L"\x2215" L"\0" L"\x2216" L"\0" L"\x2217" L"\0"
+  L"\x2223" L"\0" L"\x2236" L"\0" L"\x223c" L"\0" L"\x2264" L"\0" L"\x2265"
+  L"\0" L"\x226a" L"\0" L"\x226b" L"\0" L"\x22d8" L"\0" L"\x22d9" L"\0"
+  L"\x2400" L"\0" L"\x2401" L"\0" L"\x2402" L"\0" L"\x2403" L"\0" L"\x2404"
+  L"\0" L"\x2405" L"\0" L"\x2406" L"\0" L"\x2407" L"\0" L"\x2408" L"\0"
+  L"\x2409" L"\0" L"\x240a" L"\0" L"\x240b" L"\0" L"\x240c" L"\0" L"\x240d"
+  L"\0" L"\x240e" L"\0" L"\x240f" L"\0" L"\x2410" L"\0" L"\x2411" L"\0"
+  L"\x2412" L"\0" L"\x2413" L"\0" L"\x2414" L"\0" L"\x2415" L"\0" L"\x2416"
+  L"\0" L"\x2417" L"\0" L"\x2418" L"\0" L"\x2419" L"\0" L"\x241a" L"\0"
+  L"\x241b" L"\0" L"\x241c" L"\0" L"\x241d" L"\0" L"\x241e" L"\0" L"\x241f"
+  L"\0" L"\x2420" L"\0" L"\x2421" L"\0" L"\x2423" L"\0" L"\x2424" L"\0"
+  L"\x2460" L"\0" L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463" L"\0" L"\x2464"
+  L"\0" L"\x2465" L"\0" L"\x2466" L"\0" L"\x2467" L"\0" L"\x2468" L"\0"
+  L"\x2469" L"\0" L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c" L"\0" L"\x246d"
+  L"\0" L"\x246e" L"\0" L"\x246f" L"\0" L"\x2470" L"\0" L"\x2471" L"\0"
+  L"\x2472" L"\0" L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475" L"\0" L"\x2476"
+  L"\0" L"\x2477" L"\0" L"\x2478" L"\0" L"\x2479" L"\0" L"\x247a" L"\0"
+  L"\x247b" L"\0" L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e" L"\0" L"\x247f"
+  L"\0" L"\x2480" L"\0" L"\x2481" L"\0" L"\x2482" L"\0" L"\x2483" L"\0"
+  L"\x2484" L"\0" L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487" L"\0" L"\x2488"
+  L"\0" L"\x2489" L"\0" L"\x248a" L"\0" L"\x248b" L"\0" L"\x248c" L"\0"
+  L"\x248d" L"\0" L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490" L"\0" L"\x2491"
+  L"\0" L"\x2492" L"\0" L"\x2493" L"\0" L"\x2494" L"\0" L"\x2495" L"\0"
+  L"\x2496" L"\0" L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499" L"\0" L"\x249a"
+  L"\0" L"\x249b" L"\0" L"\x249c" L"\0" L"\x249d" L"\0" L"\x249e" L"\0"
+  L"\x249f" L"\0" L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2" L"\0" L"\x24a3"
+  L"\0" L"\x24a4" L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0" L"\x24a7" L"\0"
+  L"\x24a8" L"\0" L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab" L"\0" L"\x24ac"
+  L"\0" L"\x24ad" L"\0" L"\x24ae" L"\0" L"\x24af" L"\0" L"\x24b0" L"\0"
+  L"\x24b1" L"\0" L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4" L"\0" L"\x24b5"
+  L"\0" L"\x24b6" L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0" L"\x24b9" L"\0"
+  L"\x24ba" L"\0" L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd" L"\0" L"\x24be"
+  L"\0" L"\x24bf" L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0" L"\x24c2" L"\0"
+  L"\x24c3" L"\0" L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6" L"\0" L"\x24c7"
+  L"\0" L"\x24c8" L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0" L"\x24cb" L"\0"
+  L"\x24cc" L"\0" L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf" L"\0" L"\x24d0"
+  L"\0" L"\x24d1" L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0" L"\x24d4" L"\0"
+  L"\x24d5" L"\0" L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8" L"\0" L"\x24d9"
+  L"\0" L"\x24da" L"\0" L"\x24db" L"\0" L"\x24dc" L"\0" L"\x24dd" L"\0"
+  L"\x24de" L"\0" L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1" L"\0" L"\x24e2"
+  L"\0" L"\x24e3" L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0" L"\x24e6" L"\0"
+  L"\x24e7" L"\0" L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea" L"\0" L"\x2500"
+  L"\0" L"\x2502" L"\0" L"\x250c" L"\0" L"\x2510" L"\0" L"\x2514" L"\0"
+  L"\x2518" L"\0" L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c" L"\0" L"\x2534"
+  L"\0" L"\x253c" L"\0" L"\x25e6" L"\0" L"\x2a74" L"\0" L"\x2a75" L"\0"
+  L"\x2a76" L"\0" L"\x3000" L"\0" L"\x30a0" L"\0" L"\x3251" L"\0" L"\x3252"
+  L"\0" L"\x3253" L"\0" L"\x3254" L"\0" L"\x3255" L"\0" L"\x3256" L"\0"
+  L"\x3257" L"\0" L"\x3258" L"\0" L"\x3259" L"\0" L"\x325a" L"\0" L"\x325b"
+  L"\0" L"\x325c" L"\0" L"\x325d" L"\0" L"\x325e" L"\0" L"\x325f" L"\0"
+  L"\x32b1" L"\0" L"\x32b2" L"\0" L"\x32b3" L"\0" L"\x32b4" L"\0" L"\x32b5"
+  L"\0" L"\x32b6" L"\0" L"\x32b7" L"\0" L"\x32b8" L"\0" L"\x32b9" L"\0"
+  L"\x32ba" L"\0" L"\x32bb" L"\0" L"\x32bc" L"\0" L"\x32bd" L"\0" L"\x32be"
+  L"\0" L"\x32bf" L"\0" L"\x3371" L"\0" L"\x3372" L"\0" L"\x3373" L"\0"
+  L"\x3374" L"\0" L"\x3375" L"\0" L"\x3376" L"\0" L"\x3380" L"\0" L"\x3381"
+  L"\0" L"\x3382" L"\0" L"\x3383" L"\0" L"\x3384" L"\0" L"\x3385" L"\0"
+  L"\x3386" L"\0" L"\x3387" L"\0" L"\x3388" L"\0" L"\x3389" L"\0" L"\x338a"
+  L"\0" L"\x338b" L"\0" L"\x338c" L"\0" L"\x338d" L"\0" L"\x338e" L"\0"
+  L"\x338f" L"\0" L"\x3390" L"\0" L"\x3391" L"\0" L"\x3392" L"\0" L"\x3393"
+  L"\0" L"\x3394" L"\0" L"\x3395" L"\0" L"\x3396" L"\0" L"\x3397" L"\0"
+  L"\x3398" L"\0" L"\x3399" L"\0" L"\x339a" L"\0" L"\x339b" L"\0" L"\x339c"
+  L"\0" L"\x339d" L"\0" L"\x339e" L"\0" L"\x339f" L"\0" L"\x33a0" L"\0"
+  L"\x33a1" L"\0" L"\x33a2" L"\0" L"\x33a3" L"\0" L"\x33a4" L"\0" L"\x33a5"
+  L"\0" L"\x33a6" L"\0" L"\x33a7" L"\0" L"\x33a8" L"\0" L"\x33a9" L"\0"
+  L"\x33aa" L"\0" L"\x33ab" L"\0" L"\x33ac" L"\0" L"\x33ad" L"\0" L"\x33ae"
+  L"\0" L"\x33af" L"\0" L"\x33b0" L"\0" L"\x33b1" L"\0" L"\x33b2" L"\0"
+  L"\x33b3" L"\0" L"\x33b4" L"\0" L"\x33b5" L"\0" L"\x33b6" L"\0" L"\x33b7"
+  L"\0" L"\x33b8" L"\0" L"\x33b9" L"\0" L"\x33ba" L"\0" L"\x33bb" L"\0"
+  L"\x33bc" L"\0" L"\x33bd" L"\0" L"\x33be" L"\0" L"\x33bf" L"\0" L"\x33c2"
+  L"\0" L"\x33c3" L"\0" L"\x33c4" L"\0" L"\x33c5" L"\0" L"\x33c6" L"\0"
+  L"\x33c7" L"\0" L"\x33c8" L"\0" L"\x33c9" L"\0" L"\x33ca" L"\0" L"\x33cb"
+  L"\0" L"\x33cc" L"\0" L"\x33cd" L"\0" L"\x33ce" L"\0" L"\x33cf" L"\0"
+  L"\x33d0" L"\0" L"\x33d1" L"\0" L"\x33d2" L"\0" L"\x33d3" L"\0" L"\x33d4"
+  L"\0" L"\x33d5" L"\0" L"\x33d6" L"\0" L"\x33d7" L"\0" L"\x33d8" L"\0"
+  L"\x33d9" L"\0" L"\x33da" L"\0" L"\x33db" L"\0" L"\x33dc" L"\0" L"\x33dd"
+  L"\0" L"\xfb00" L"\0" L"\xfb01" L"\0" L"\xfb02" L"\0" L"\xfb03" L"\0"
+  L"\xfb04" L"\0" L"\xfb06" L"\0" L"\xfb29" L"\0" L"\xfe00" L"\0" L"\xfe01"
+  L"\0" L"\xfe02" L"\0" L"\xfe03" L"\0" L"\xfe04" L"\0" L"\xfe05" L"\0"
+  L"\xfe06" L"\0" L"\xfe07" L"\0" L"\xfe08" L"\0" L"\xfe09" L"\0" L"\xfe0a"
+  L"\0" L"\xfe0b" L"\0" L"\xfe0c" L"\0" L"\xfe0d" L"\0" L"\xfe0e" L"\0"
+  L"\xfe0f" L"\0" L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f" L"\0" L"\xfe50"
+  L"\0" L"\xfe52" L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0" L"\xfe56" L"\0"
+  L"\xfe57" L"\0" L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b" L"\0" L"\xfe5c"
+  L"\0" L"\xfe5f" L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0" L"\xfe62" L"\0"
+  L"\xfe63" L"\0" L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66" L"\0" L"\xfe68"
+  L"\0" L"\xfe69" L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0" L"\xfeff" L"\0"
+  L"\xff01" L"\0" L"\xff02" L"\0" L"\xff03" L"\0" L"\xff04" L"\0" L"\xff05"
+  L"\0" L"\xff06" L"\0" L"\xff07" L"\0" L"\xff08" L"\0" L"\xff09" L"\0"
+  L"\xff0a" L"\0" L"\xff0b" L"\0" L"\xff0c" L"\0" L"\xff0d" L"\0" L"\xff0e"
+  L"\0" L"\xff0f" L"\0" L"\xff10" L"\0" L"\xff11" L"\0" L"\xff12" L"\0"
+  L"\xff13" L"\0" L"\xff14" L"\0" L"\xff15" L"\0" L"\xff16" L"\0" L"\xff17"
+  L"\0" L"\xff18" L"\0" L"\xff19" L"\0" L"\xff1a" L"\0" L"\xff1b" L"\0"
+  L"\xff1c" L"\0" L"\xff1d" L"\0" L"\xff1e" L"\0" L"\xff1f" L"\0" L"\xff20"
+  L"\0" L"\xff21" L"\0" L"\xff22" L"\0" L"\xff23" L"\0" L"\xff24" L"\0"
+  L"\xff25" L"\0" L"\xff26" L"\0" L"\xff27" L"\0" L"\xff28" L"\0" L"\xff29"
+  L"\0" L"\xff2a" L"\0" L"\xff2b" L"\0" L"\xff2c" L"\0" L"\xff2d" L"\0"
+  L"\xff2e" L"\0" L"\xff2f" L"\0" L"\xff30" L"\0" L"\xff31" L"\0" L"\xff32"
+  L"\0" L"\xff33" L"\0" L"\xff34" L"\0" L"\xff35" L"\0" L"\xff36" L"\0"
+  L"\xff37" L"\0" L"\xff38" L"\0" L"\xff39" L"\0" L"\xff3a" L"\0" L"\xff3b"
+  L"\0" L"\xff3c" L"\0" L"\xff3d" L"\0" L"\xff3e" L"\0" L"\xff3f" L"\0"
+  L"\xff40" L"\0" L"\xff41" L"\0" L"\xff42" L"\0" L"\xff43" L"\0" L"\xff44"
+  L"\0" L"\xff45" L"\0" L"\xff46" L"\0" L"\xff47" L"\0" L"\xff48" L"\0"
+  L"\xff49" L"\0" L"\xff4a" L"\0" L"\xff4b" L"\0" L"\xff4c" L"\0" L"\xff4d"
+  L"\0" L"\xff4e" L"\0" L"\xff4f" L"\0" L"\xff50" L"\0" L"\xff51" L"\0"
+  L"\xff52" L"\0" L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55" L"\0" L"\xff56"
+  L"\0" L"\xff57" L"\0" L"\xff58" L"\0" L"\xff59" L"\0" L"\xff5a" L"\0"
+  L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e" L"\0"
+  L"\x0001d400" L"\0" L"\x0001d401" L"\0" L"\x0001d402" L"\0" L"\x0001d403"
+  L"\0" L"\x0001d404" L"\0" L"\x0001d405" L"\0" L"\x0001d406" L"\0"
+  L"\x0001d407" L"\0" L"\x0001d408" L"\0" L"\x0001d409" L"\0" L"\x0001d40a"
+  L"\0" L"\x0001d40b" L"\0" L"\x0001d40c" L"\0" L"\x0001d40d" L"\0"
+  L"\x0001d40e" L"\0" L"\x0001d40f" L"\0" L"\x0001d410" L"\0" L"\x0001d411"
+  L"\0" L"\x0001d412" L"\0" L"\x0001d413" L"\0" L"\x0001d414" L"\0"
+  L"\x0001d415" L"\0" L"\x0001d416" L"\0" L"\x0001d417" L"\0" L"\x0001d418"
+  L"\0" L"\x0001d419" L"\0" L"\x0001d41a" L"\0" L"\x0001d41b" L"\0"
+  L"\x0001d41c" L"\0" L"\x0001d41d" L"\0" L"\x0001d41e" L"\0" L"\x0001d41f"
+  L"\0" L"\x0001d420" L"\0" L"\x0001d421" L"\0" L"\x0001d422" L"\0"
+  L"\x0001d423" L"\0" L"\x0001d424" L"\0" L"\x0001d425" L"\0" L"\x0001d426"
+  L"\0" L"\x0001d427" L"\0" L"\x0001d428" L"\0" L"\x0001d429" L"\0"
+  L"\x0001d42a" L"\0" L"\x0001d42b" L"\0" L"\x0001d42c" L"\0" L"\x0001d42d"
+  L"\0" L"\x0001d42e" L"\0" L"\x0001d42f" L"\0" L"\x0001d430" L"\0"
+  L"\x0001d431" L"\0" L"\x0001d432" L"\0" L"\x0001d433" L"\0" L"\x0001d434"
+  L"\0" L"\x0001d435" L"\0" L"\x0001d436" L"\0" L"\x0001d437" L"\0"
+  L"\x0001d438" L"\0" L"\x0001d439" L"\0" L"\x0001d43a" L"\0" L"\x0001d43b"
+  L"\0" L"\x0001d43c" L"\0" L"\x0001d43d" L"\0" L"\x0001d43e" L"\0"
+  L"\x0001d43f" L"\0" L"\x0001d440" L"\0" L"\x0001d441" L"\0" L"\x0001d442"
+  L"\0" L"\x0001d443" L"\0" L"\x0001d444" L"\0" L"\x0001d445" L"\0"
+  L"\x0001d446" L"\0" L"\x0001d447" L"\0" L"\x0001d448" L"\0" L"\x0001d449"
+  L"\0" L"\x0001d44a" L"\0" L"\x0001d44b" L"\0" L"\x0001d44c" L"\0"
+  L"\x0001d44d" L"\0" L"\x0001d44e" L"\0" L"\x0001d44f" L"\0" L"\x0001d450"
+  L"\0" L"\x0001d451" L"\0" L"\x0001d452" L"\0" L"\x0001d453" L"\0"
+  L"\x0001d454" L"\0" L"\x0001d456" L"\0" L"\x0001d457" L"\0" L"\x0001d458"
+  L"\0" L"\x0001d459" L"\0" L"\x0001d45a" L"\0" L"\x0001d45b" L"\0"
+  L"\x0001d45c" L"\0" L"\x0001d45d" L"\0" L"\x0001d45e" L"\0" L"\x0001d45f"
+  L"\0" L"\x0001d460" L"\0" L"\x0001d461" L"\0" L"\x0001d462" L"\0"
+  L"\x0001d463" L"\0" L"\x0001d464" L"\0" L"\x0001d465" L"\0" L"\x0001d466"
+  L"\0" L"\x0001d467" L"\0" L"\x0001d468" L"\0" L"\x0001d469" L"\0"
+  L"\x0001d46a" L"\0" L"\x0001d46b" L"\0" L"\x0001d46c" L"\0" L"\x0001d46d"
+  L"\0" L"\x0001d46e" L"\0" L"\x0001d46f" L"\0" L"\x0001d470" L"\0"
+  L"\x0001d471" L"\0" L"\x0001d472" L"\0" L"\x0001d473" L"\0" L"\x0001d474"
+  L"\0" L"\x0001d475" L"\0" L"\x0001d476" L"\0" L"\x0001d477" L"\0"
+  L"\x0001d478" L"\0" L"\x0001d479" L"\0" L"\x0001d47a" L"\0" L"\x0001d47b"
+  L"\0" L"\x0001d47c" L"\0" L"\x0001d47d" L"\0" L"\x0001d47e" L"\0"
+  L"\x0001d47f" L"\0" L"\x0001d480" L"\0" L"\x0001d481" L"\0" L"\x0001d482"
+  L"\0" L"\x0001d483" L"\0" L"\x0001d484" L"\0" L"\x0001d485" L"\0"
+  L"\x0001d486" L"\0" L"\x0001d487" L"\0" L"\x0001d488" L"\0" L"\x0001d489"
+  L"\0" L"\x0001d48a" L"\0" L"\x0001d48b" L"\0" L"\x0001d48c" L"\0"
+  L"\x0001d48d" L"\0" L"\x0001d48e" L"\0" L"\x0001d48f" L"\0" L"\x0001d490"
+  L"\0" L"\x0001d491" L"\0" L"\x0001d492" L"\0" L"\x0001d493" L"\0"
+  L"\x0001d494" L"\0" L"\x0001d495" L"\0" L"\x0001d496" L"\0" L"\x0001d497"
+  L"\0" L"\x0001d498" L"\0" L"\x0001d499" L"\0" L"\x0001d49a" L"\0"
+  L"\x0001d49b" L"\0" L"\x0001d49c" L"\0" L"\x0001d49e" L"\0" L"\x0001d49f"
+  L"\0" L"\x0001d4a2" L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6" L"\0"
+  L"\x0001d4a9" L"\0" L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0" L"\x0001d4ac"
+  L"\0" L"\x0001d4ae" L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0" L"\0"
+  L"\x0001d4b1" L"\0" L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0" L"\x0001d4b4"
+  L"\0" L"\x0001d4b5" L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7" L"\0"
+  L"\x0001d4b8" L"\0" L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0" L"\x0001d4bd"
+  L"\0" L"\x0001d4be" L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0" L"\0"
+  L"\x0001d4c2" L"\0" L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0" L"\x0001d4c6"
+  L"\0" L"\x0001d4c7" L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9" L"\0"
+  L"\x0001d4ca" L"\0" L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0" L"\x0001d4cd"
+  L"\0" L"\x0001d4ce" L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0" L"\0"
+  L"\x0001d4d1" L"\0" L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0" L"\x0001d4d4"
+  L"\0" L"\x0001d4d5" L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7" L"\0"
+  L"\x0001d4d8" L"\0" L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0" L"\x0001d4db"
+  L"\0" L"\x0001d4dc" L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de" L"\0"
+  L"\x0001d4df" L"\0" L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0" L"\x0001d4e2"
+  L"\0" L"\x0001d4e3" L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5" L"\0"
+  L"\x0001d4e6" L"\0" L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0" L"\x0001d4e9"
+  L"\0" L"\x0001d4ea" L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec" L"\0"
+  L"\x0001d4ed" L"\0" L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0" L"\x0001d4f0"
+  L"\0" L"\x0001d4f1" L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3" L"\0"
+  L"\x0001d4f4" L"\0" L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0" L"\x0001d4f7"
+  L"\0" L"\x0001d4f8" L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa" L"\0"
+  L"\x0001d4fb" L"\0" L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0" L"\x0001d4fe"
+  L"\0" L"\x0001d4ff" L"\0" L"\x0001d500" L"\0" L"\x0001d501" L"\0"
+  L"\x0001d502" L"\0" L"\x0001d503" L"\0" L"\x0001d504" L"\0" L"\x0001d505"
+  L"\0" L"\x0001d507" L"\0" L"\x0001d508" L"\0" L"\x0001d509" L"\0"
+  L"\x0001d50a" L"\0" L"\x0001d50d" L"\0" L"\x0001d50e" L"\0" L"\x0001d50f"
+  L"\0" L"\x0001d510" L"\0" L"\x0001d511" L"\0" L"\x0001d512" L"\0"
+  L"\x0001d513" L"\0" L"\x0001d514" L"\0" L"\x0001d516" L"\0" L"\x0001d517"
+  L"\0" L"\x0001d518" L"\0" L"\x0001d519" L"\0" L"\x0001d51a" L"\0"
+  L"\x0001d51b" L"\0" L"\x0001d51c" L"\0" L"\x0001d51e" L"\0" L"\x0001d51f"
+  L"\0" L"\x0001d520" L"\0" L"\x0001d521" L"\0" L"\x0001d522" L"\0"
+  L"\x0001d523" L"\0" L"\x0001d524" L"\0" L"\x0001d525" L"\0" L"\x0001d526"
+  L"\0" L"\x0001d527" L"\0" L"\x0001d528" L"\0" L"\x0001d529" L"\0"
+  L"\x0001d52a" L"\0" L"\x0001d52b" L"\0" L"\x0001d52c" L"\0" L"\x0001d52d"
+  L"\0" L"\x0001d52e" L"\0" L"\x0001d52f" L"\0" L"\x0001d530" L"\0"
+  L"\x0001d531" L"\0" L"\x0001d532" L"\0" L"\x0001d533" L"\0" L"\x0001d534"
+  L"\0" L"\x0001d535" L"\0" L"\x0001d536" L"\0" L"\x0001d537" L"\0"
+  L"\x0001d538" L"\0" L"\x0001d539" L"\0" L"\x0001d53b" L"\0" L"\x0001d53c"
+  L"\0" L"\x0001d53d" L"\0" L"\x0001d53e" L"\0" L"\x0001d540" L"\0"
+  L"\x0001d541" L"\0" L"\x0001d542" L"\0" L"\x0001d543" L"\0" L"\x0001d544"
+  L"\0" L"\x0001d546" L"\0" L"\x0001d54a" L"\0" L"\x0001d54b" L"\0"
+  L"\x0001d54c" L"\0" L"\x0001d54d" L"\0" L"\x0001d54e" L"\0" L"\x0001d54f"
+  L"\0" L"\x0001d550" L"\0" L"\x0001d552" L"\0" L"\x0001d553" L"\0"
+  L"\x0001d554" L"\0" L"\x0001d555" L"\0" L"\x0001d556" L"\0" L"\x0001d557"
+  L"\0" L"\x0001d558" L"\0" L"\x0001d559" L"\0" L"\x0001d55a" L"\0"
+  L"\x0001d55b" L"\0" L"\x0001d55c" L"\0" L"\x0001d55d" L"\0" L"\x0001d55e"
+  L"\0" L"\x0001d55f" L"\0" L"\x0001d560" L"\0" L"\x0001d561" L"\0"
+  L"\x0001d562" L"\0" L"\x0001d563" L"\0" L"\x0001d564" L"\0" L"\x0001d565"
+  L"\0" L"\x0001d566" L"\0" L"\x0001d567" L"\0" L"\x0001d568" L"\0"
+  L"\x0001d569" L"\0" L"\x0001d56a" L"\0" L"\x0001d56b" L"\0" L"\x0001d56c"
+  L"\0" L"\x0001d56d" L"\0" L"\x0001d56e" L"\0" L"\x0001d56f" L"\0"
+  L"\x0001d570" L"\0" L"\x0001d571" L"\0" L"\x0001d572" L"\0" L"\x0001d573"
+  L"\0" L"\x0001d574" L"\0" L"\x0001d575" L"\0" L"\x0001d576" L"\0"
+  L"\x0001d577" L"\0" L"\x0001d578" L"\0" L"\x0001d579" L"\0" L"\x0001d57a"
+  L"\0" L"\x0001d57b" L"\0" L"\x0001d57c" L"\0" L"\x0001d57d" L"\0"
+  L"\x0001d57e" L"\0" L"\x0001d57f" L"\0" L"\x0001d580" L"\0" L"\x0001d581"
+  L"\0" L"\x0001d582" L"\0" L"\x0001d583" L"\0" L"\x0001d584" L"\0"
+  L"\x0001d585" L"\0" L"\x0001d586" L"\0" L"\x0001d587" L"\0" L"\x0001d588"
+  L"\0" L"\x0001d589" L"\0" L"\x0001d58a" L"\0" L"\x0001d58b" L"\0"
+  L"\x0001d58c" L"\0" L"\x0001d58d" L"\0" L"\x0001d58e" L"\0" L"\x0001d58f"
+  L"\0" L"\x0001d590" L"\0" L"\x0001d591" L"\0" L"\x0001d592" L"\0"
+  L"\x0001d593" L"\0" L"\x0001d594" L"\0" L"\x0001d595" L"\0" L"\x0001d596"
+  L"\0" L"\x0001d597" L"\0" L"\x0001d598" L"\0" L"\x0001d599" L"\0"
+  L"\x0001d59a" L"\0" L"\x0001d59b" L"\0" L"\x0001d59c" L"\0" L"\x0001d59d"
+  L"\0" L"\x0001d59e" L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0" L"\0"
+  L"\x0001d5a1" L"\0" L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0" L"\x0001d5a4"
+  L"\0" L"\x0001d5a5" L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7" L"\0"
+  L"\x0001d5a8" L"\0" L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0" L"\x0001d5ab"
+  L"\0" L"\x0001d5ac" L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae" L"\0"
+  L"\x0001d5af" L"\0" L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0" L"\x0001d5b2"
+  L"\0" L"\x0001d5b3" L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5" L"\0"
+  L"\x0001d5b6" L"\0" L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0" L"\x0001d5b9"
+  L"\0" L"\x0001d5ba" L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc" L"\0"
+  L"\x0001d5bd" L"\0" L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0" L"\x0001d5c0"
+  L"\0" L"\x0001d5c1" L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3" L"\0"
+  L"\x0001d5c4" L"\0" L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0" L"\x0001d5c7"
+  L"\0" L"\x0001d5c8" L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca" L"\0"
+  L"\x0001d5cb" L"\0" L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0" L"\x0001d5ce"
+  L"\0" L"\x0001d5cf" L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1" L"\0"
+  L"\x0001d5d2" L"\0" L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0" L"\x0001d5d5"
+  L"\0" L"\x0001d5d6" L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8" L"\0"
+  L"\x0001d5d9" L"\0" L"\x0001d5da" L"\0" L"\x0001d5db" L"\0" L"\x0001d5dc"
+  L"\0" L"\x0001d5dd" L"\0" L"\x0001d5de" L"\0" L"\x0001d5df" L"\0"
+  L"\x0001d5e0" L"\0" L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0" L"\x0001d5e3"
+  L"\0" L"\x0001d5e4" L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6" L"\0"
+  L"\x0001d5e7" L"\0" L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0" L"\x0001d5ea"
+  L"\0" L"\x0001d5eb" L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed" L"\0"
+  L"\x0001d5ee" L"\0" L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0" L"\x0001d5f1"
+  L"\0" L"\x0001d5f2" L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4" L"\0"
+  L"\x0001d5f5" L"\0" L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0" L"\x0001d5f8"
+  L"\0" L"\x0001d5f9" L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb" L"\0"
+  L"\x0001d5fc" L"\0" L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0" L"\x0001d5ff"
+  L"\0" L"\x0001d600" L"\0" L"\x0001d601" L"\0" L"\x0001d602" L"\0"
+  L"\x0001d603" L"\0" L"\x0001d604" L"\0" L"\x0001d605" L"\0" L"\x0001d606"
+  L"\0" L"\x0001d607" L"\0" L"\x0001d608" L"\0" L"\x0001d609" L"\0"
+  L"\x0001d60a" L"\0" L"\x0001d60b" L"\0" L"\x0001d60c" L"\0" L"\x0001d60d"
+  L"\0" L"\x0001d60e" L"\0" L"\x0001d60f" L"\0" L"\x0001d610" L"\0"
+  L"\x0001d611" L"\0" L"\x0001d612" L"\0" L"\x0001d613" L"\0" L"\x0001d614"
+  L"\0" L"\x0001d615" L"\0" L"\x0001d616" L"\0" L"\x0001d617" L"\0"
+  L"\x0001d618" L"\0" L"\x0001d619" L"\0" L"\x0001d61a" L"\0" L"\x0001d61b"
+  L"\0" L"\x0001d61c" L"\0" L"\x0001d61d" L"\0" L"\x0001d61e" L"\0"
+  L"\x0001d61f" L"\0" L"\x0001d620" L"\0" L"\x0001d621" L"\0" L"\x0001d622"
+  L"\0" L"\x0001d623" L"\0" L"\x0001d624" L"\0" L"\x0001d625" L"\0"
+  L"\x0001d626" L"\0" L"\x0001d627" L"\0" L"\x0001d628" L"\0" L"\x0001d629"
+  L"\0" L"\x0001d62a" L"\0" L"\x0001d62b" L"\0" L"\x0001d62c" L"\0"
+  L"\x0001d62d" L"\0" L"\x0001d62e" L"\0" L"\x0001d62f" L"\0" L"\x0001d630"
+  L"\0" L"\x0001d631" L"\0" L"\x0001d632" L"\0" L"\x0001d633" L"\0"
+  L"\x0001d634" L"\0" L"\x0001d635" L"\0" L"\x0001d636" L"\0" L"\x0001d637"
+  L"\0" L"\x0001d638" L"\0" L"\x0001d639" L"\0" L"\x0001d63a" L"\0"
+  L"\x0001d63b" L"\0" L"\x0001d63c" L"\0" L"\x0001d63d" L"\0" L"\x0001d63e"
+  L"\0" L"\x0001d63f" L"\0" L"\x0001d640" L"\0" L"\x0001d641" L"\0"
+  L"\x0001d642" L"\0" L"\x0001d643" L"\0" L"\x0001d644" L"\0" L"\x0001d645"
+  L"\0" L"\x0001d646" L"\0" L"\x0001d647" L"\0" L"\x0001d648" L"\0"
+  L"\x0001d649" L"\0" L"\x0001d64a" L"\0" L"\x0001d64b" L"\0" L"\x0001d64c"
+  L"\0" L"\x0001d64d" L"\0" L"\x0001d64e" L"\0" L"\x0001d64f" L"\0"
+  L"\x0001d650" L"\0" L"\x0001d651" L"\0" L"\x0001d652" L"\0" L"\x0001d653"
+  L"\0" L"\x0001d654" L"\0" L"\x0001d655" L"\0" L"\x0001d656" L"\0"
+  L"\x0001d657" L"\0" L"\x0001d658" L"\0" L"\x0001d659" L"\0" L"\x0001d65a"
+  L"\0" L"\x0001d65b" L"\0" L"\x0001d65c" L"\0" L"\x0001d65d" L"\0"
+  L"\x0001d65e" L"\0" L"\x0001d65f" L"\0" L"\x0001d660" L"\0" L"\x0001d661"
+  L"\0" L"\x0001d662" L"\0" L"\x0001d663" L"\0" L"\x0001d664" L"\0"
+  L"\x0001d665" L"\0" L"\x0001d666" L"\0" L"\x0001d667" L"\0" L"\x0001d668"
+  L"\0" L"\x0001d669" L"\0" L"\x0001d66a" L"\0" L"\x0001d66b" L"\0"
+  L"\x0001d66c" L"\0" L"\x0001d66d" L"\0" L"\x0001d66e" L"\0" L"\x0001d66f"
+  L"\0" L"\x0001d670" L"\0" L"\x0001d671" L"\0" L"\x0001d672" L"\0"
+  L"\x0001d673" L"\0" L"\x0001d674" L"\0" L"\x0001d675" L"\0" L"\x0001d676"
+  L"\0" L"\x0001d677" L"\0" L"\x0001d678" L"\0" L"\x0001d679" L"\0"
+  L"\x0001d67a" L"\0" L"\x0001d67b" L"\0" L"\x0001d67c" L"\0" L"\x0001d67d"
+  L"\0" L"\x0001d67e" L"\0" L"\x0001d67f" L"\0" L"\x0001d680" L"\0"
+  L"\x0001d681" L"\0" L"\x0001d682" L"\0" L"\x0001d683" L"\0" L"\x0001d684"
+  L"\0" L"\x0001d685" L"\0" L"\x0001d686" L"\0" L"\x0001d687" L"\0"
+  L"\x0001d688" L"\0" L"\x0001d689" L"\0" L"\x0001d68a" L"\0" L"\x0001d68b"
+  L"\0" L"\x0001d68c" L"\0" L"\x0001d68d" L"\0" L"\x0001d68e" L"\0"
+  L"\x0001d68f" L"\0" L"\x0001d690" L"\0" L"\x0001d691" L"\0" L"\x0001d692"
+  L"\0" L"\x0001d693" L"\0" L"\x0001d694" L"\0" L"\x0001d695" L"\0"
+  L"\x0001d696" L"\0" L"\x0001d697" L"\0" L"\x0001d698" L"\0" L"\x0001d699"
+  L"\0" L"\x0001d69a" L"\0" L"\x0001d69b" L"\0" L"\x0001d69c" L"\0"
+  L"\x0001d69d" L"\0" L"\x0001d69e" L"\0" L"\x0001d69f" L"\0" L"\x0001d6a0"
+  L"\0" L"\x0001d6a1" L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3" L"\0"
+  L"\x0001d7ce" L"\0" L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0" L"\x0001d7d1"
+  L"\0" L"\x0001d7d2" L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4" L"\0"
+  L"\x0001d7d5" L"\0" L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0" L"\x0001d7d8"
+  L"\0" L"\x0001d7d9" L"\0" L"\x0001d7da" L"\0" L"\x0001d7db" L"\0"
+  L"\x0001d7dc" L"\0" L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0" L"\x0001d7df"
+  L"\0" L"\x0001d7e0" L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2" L"\0"
+  L"\x0001d7e3" L"\0" L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0" L"\x0001d7e6"
+  L"\0" L"\x0001d7e7" L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9" L"\0"
+  L"\x0001d7ea" L"\0" L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0" L"\x0001d7ed"
+  L"\0" L"\x0001d7ee" L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0" L"\0"
+  L"\x0001d7f1" L"\0" L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0" L"\x0001d7f4"
+  L"\0" L"\x0001d7f5" L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7" L"\0"
+  L"\x0001d7f8" L"\0" L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0" L"\x0001d7fb"
+  L"\0" L"\x0001d7fc" L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe" L"\0"
+  L"\x0001d7ff";
 static const uint32_t translit_to_idx[] =
 {
      0,    3,    8,   12,   15,   20,   23,   26,   30,   37,   44,   51,
@@ -469,47 +470,47 @@ static const uint32_t translit_to_idx[] =
    145,  148,  151,  154,  157,  160,  163,  166,  169,  172,  175,  178,
    180,  183,  186,  189,  192,  196,  199,  202,  205,  208,  211,  214,
    217,  221,  224,  227,  230,  233,  237,  242,  245,  248,  252,  257,
-   260,  263,  267,  271,  275,  279,  282,  284,  286,  288,  290,  294,
-   299,  304,  309,  312,  317,  322,  325,  328,  331,  334,  337,  340,
-   343,  346,  349,  352,  356,  359,  362,  365,  368,  371,  376,  382,
-   385,  390,  393,  396,  399,  402,  405,  408,  411,  414,  417,  420,
-   423,  426,  429,  432,  435,  442,  449,  456,  463,  470,  477,  484,
-   491,  498,  505,  512,  519,  524,  527,  531,  536,  540,  543,  547,
-   552,  558,  562,  565,  569,  574,  577,  580,  583,  586,  589,  593,
-   598,  602,  605,  609,  614,  620,  624,  627,  631,  636,  639,  642,
-   645,  648,  652,  656,  661,  665,  669,  674,  677,  680,  683,  686,
-   689,  692,  695,  699,  703,  707,  711,  716,  721,  726,  731,  736,
-   741,  746,  751,  756,  761,  765,  769,  773,  777,  781,  785,  789,
-   793,  798,  803,  808,  813,  818,  823,  828,  833,  838,  842,  847,
-   852,  856,  860,  864,  868,  872,  877,  880,  884,  889,  894,  899,
-   904,  909,  914,  919,  924,  929,  935,  941,  947,  953,  959,  965,
-   971,  977,  983,  989,  995, 1000, 1005, 1010, 1015, 1020, 1025, 1030,
-  1035, 1040, 1046, 1052, 1058, 1064, 1070, 1076, 1082, 1088, 1094, 1100,
-  1106, 1110, 1114, 1118, 1122, 1126, 1130, 1134, 1138, 1142, 1147, 1152,
-  1157, 1162, 1167, 1172, 1177, 1182, 1187, 1192, 1197, 1202, 1207, 1212,
-  1217, 1222, 1227, 1232, 1237, 1242, 1247, 1252, 1257, 1262, 1267, 1272,
-  1277, 1282, 1287, 1292, 1297, 1302, 1307, 1312, 1317, 1322, 1327, 1332,
-  1337, 1342, 1347, 1352, 1357, 1362, 1367, 1372, 1377, 1382, 1387, 1392,
-  1397, 1402, 1407, 1412, 1417, 1422, 1427, 1432, 1437, 1442, 1447, 1452,
-  1457, 1462, 1467, 1472, 1477, 1482, 1487, 1492, 1497, 1502, 1507, 1512,
-  1517, 1522, 1527, 1532, 1537, 1542, 1547, 1552, 1557, 1562, 1567, 1572,
-  1577, 1582, 1587, 1592, 1595, 1598, 1601, 1604, 1607, 1610, 1613, 1616,
-  1619, 1622, 1625, 1628, 1633, 1637, 1642, 1645, 1648, 1654, 1660, 1666,
-  1672, 1678, 1684, 1690, 1696, 1702, 1708, 1714, 1720, 1726, 1732, 1738,
-  1744, 1750, 1756, 1762, 1768, 1774, 1780, 1786, 1792, 1798, 1804, 1810,
-  1816, 1822, 1828, 1833, 1837, 1841, 1846, 1850, 1854, 1858, 1862, 1866,
-  1870, 1874, 1878, 1882, 1886, 1891, 1897, 1901, 1905, 1909, 1913, 1917,
-  1921, 1925, 1930, 1935, 1940, 1945, 1949, 1953, 1957, 1961, 1965, 1969,
-  1973, 1977, 1981, 1985, 1991, 1997, 2002, 2008, 2014, 2020, 2025, 2031,
-  2036, 2043, 2047, 2052, 2057, 2062, 2067, 2074, 2083, 2087, 2091, 2095,
-  2099, 2103, 2107, 2111, 2115, 2119, 2123, 2127, 2131, 2135, 2139, 2143,
-  2147, 2153, 2157, 2161, 2165, 2171, 2176, 2180, 2184, 2188, 2192, 2196,
-  2200, 2204, 2208, 2212, 2216, 2221, 2225, 2229, 2234, 2239, 2243, 2249,
-  2254, 2258, 2262, 2266, 2270, 2274, 2278, 2282, 2287, 2292, 2296, 2299,
-  2301, 2303, 2305, 2307, 2309, 2311, 2313, 2315, 2317, 2319, 2321, 2323,
-  2325, 2327, 2329, 2331, 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355,
+   260,  263,  267,  270,  274,  278,  282,  285,  287,  289,  291,  293,
+   297,  302,  307,  312,  315,  320,  325,  328,  331,  334,  337,  340,
+   343,  346,  349,  352,  355,  359,  362,  365,  368,  371,  374,  379,
+   385,  388,  393,  396,  399,  402,  405,  408,  411,  414,  417,  420,
+   423,  426,  429,  432,  435,  438,  445,  452,  459,  466,  473,  480,
+   487,  494,  501,  508,  515,  522,  527,  530,  534,  539,  543,  546,
+   550,  555,  561,  565,  568,  572,  577,  580,  583,  586,  589,  592,
+   596,  601,  605,  608,  612,  617,  623,  627,  630,  634,  639,  642,
+   645,  648,  651,  655,  659,  664,  668,  672,  677,  680,  683,  686,
+   689,  692,  695,  698,  702,  706,  710,  714,  719,  724,  729,  734,
+   739,  744,  749,  754,  759,  764,  768,  772,  776,  780,  784,  788,
+   792,  796,  801,  806,  811,  816,  821,  826,  831,  836,  841,  845,
+   850,  855,  859,  863,  867,  871,  875,  880,  883,  887,  892,  897,
+   902,  907,  912,  917,  922,  927,  932,  938,  944,  950,  956,  962,
+   968,  974,  980,  986,  992,  998, 1003, 1008, 1013, 1018, 1023, 1028,
+  1033, 1038, 1043, 1049, 1055, 1061, 1067, 1073, 1079, 1085, 1091, 1097,
+  1103, 1109, 1113, 1117, 1121, 1125, 1129, 1133, 1137, 1141, 1145, 1150,
+  1155, 1160, 1165, 1170, 1175, 1180, 1185, 1190, 1195, 1200, 1205, 1210,
+  1215, 1220, 1225, 1230, 1235, 1240, 1245, 1250, 1255, 1260, 1265, 1270,
+  1275, 1280, 1285, 1290, 1295, 1300, 1305, 1310, 1315, 1320, 1325, 1330,
+  1335, 1340, 1345, 1350, 1355, 1360, 1365, 1370, 1375, 1380, 1385, 1390,
+  1395, 1400, 1405, 1410, 1415, 1420, 1425, 1430, 1435, 1440, 1445, 1450,
+  1455, 1460, 1465, 1470, 1475, 1480, 1485, 1490, 1495, 1500, 1505, 1510,
+  1515, 1520, 1525, 1530, 1535, 1540, 1545, 1550, 1555, 1560, 1565, 1570,
+  1575, 1580, 1585, 1590, 1595, 1598, 1601, 1604, 1607, 1610, 1613, 1616,
+  1619, 1622, 1625, 1628, 1631, 1636, 1640, 1645, 1648, 1651, 1657, 1663,
+  1669, 1675, 1681, 1687, 1693, 1699, 1705, 1711, 1717, 1723, 1729, 1735,
+  1741, 1747, 1753, 1759, 1765, 1771, 1777, 1783, 1789, 1795, 1801, 1807,
+  1813, 1819, 1825, 1831, 1836, 1840, 1844, 1849, 1853, 1857, 1861, 1865,
+  1869, 1873, 1877, 1881, 1885, 1889, 1894, 1900, 1904, 1908, 1912, 1916,
+  1920, 1924, 1928, 1933, 1938, 1943, 1948, 1952, 1956, 1960, 1964, 1968,
+  1972, 1976, 1980, 1984, 1988, 1994, 2000, 2005, 2011, 2017, 2023, 2028,
+  2034, 2039, 2046, 2050, 2055, 2060, 2065, 2070, 2077, 2086, 2090, 2094,
+  2098, 2102, 2106, 2110, 2114, 2118, 2122, 2126, 2130, 2134, 2138, 2142,
+  2146, 2150, 2156, 2160, 2164, 2168, 2174, 2179, 2183, 2187, 2191, 2195,
+  2199, 2203, 2207, 2211, 2215, 2219, 2224, 2228, 2232, 2237, 2242, 2246,
+  2252, 2257, 2261, 2265, 2269, 2273, 2277, 2281, 2285, 2290, 2295, 2299,
+  2302, 2304, 2306, 2308, 2310, 2312, 2314, 2316, 2318, 2320, 2322, 2324,
+  2326, 2328, 2330, 2332, 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355,
   2358, 2361, 2364, 2367, 2370, 2373, 2376, 2379, 2382, 2385, 2388, 2391,
-  2394, 2397, 2400, 2403, 2406, 2408, 2411, 2414, 2417, 2420, 2423, 2426,
+  2394, 2397, 2400, 2403, 2406, 2409, 2411, 2414, 2417, 2420, 2423, 2426,
   2429, 2432, 2435, 2438, 2441, 2444, 2447, 2450, 2453, 2456, 2459, 2462,
   2465, 2468, 2471, 2474, 2477, 2480, 2483, 2486, 2489, 2492, 2495, 2498,
   2501, 2504, 2507, 2510, 2513, 2516, 2519, 2522, 2525, 2528, 2531, 2534,
@@ -575,7 +576,7 @@ static const uint32_t translit_to_idx[] =
   4661, 4664, 4667, 4670, 4673, 4676, 4679, 4682, 4685, 4688, 4691, 4694,
   4697, 4700, 4703, 4706, 4709, 4712, 4715, 4718, 4721, 4724, 4727, 4730,
   4733, 4736, 4739, 4742, 4745, 4748, 4751, 4754, 4757, 4760, 4763, 4766,
-  4769, 4772, 4775, 4778, 4781, 4784, 4787, 4790
+  4769, 4772, 4775, 4778, 4781, 4784, 4787, 4790, 4793
 };
 static const wchar_t translit_to_tbl[] =
   L" \0" L"\0" L"(C)\0" L"\0" L"<<\0" L"\0" L"-\0" L"\0" L"(R)\0" L"\0" L"u\0"
@@ -591,13 +592,13 @@ static const wchar_t translit_to_tbl[] =
   L"\0" L"'\0" L"\0" L"'\0" L"\0" L",\0" L"\0" L"'\0" L"\0" L"\"\0" L"\0"
   L"\"\0" L"\0" L",,\0" L"\0" L"\"\0" L"\0" L"+\0" L"\0" L"o\0" L"\0" L".\0"
   L"\0" L"..\0" L"\0" L"...\0" L"\0" L" \0" L"\0" L"`\0" L"\0" L"``\0" L"\0"
-  L"```\0" L"\0" L"<\0" L"\0" L">\0" L"\0" L"!!\0" L"\0" L"??\0" L"\0" L"?!\0"
-  L"\0" L"!?\0" L"\0" L" \0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0"
-  L"\0" L"Rs\0" L"\0" L"EUR\0" L"\0" L"a/c\0" L"\0" L"a/s\0" L"\0" L"C\0"
-  L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0" L"g\0" L"\0" L"H\0" L"\0" L"H\0" L"\0"
-  L"H\0" L"\0" L"h\0" L"\0" L"I\0" L"\0" L"I\0" L"\0" L"L\0" L"\0" L"l\0"
-  L"\0" L"N\0" L"\0" L"No\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0" L"\0"
-  L"R\0" L"\0" L"R\0" L"\0" L"TEL\0" L"\0" L"(TM)\0" L"\0" L"Z\0" L"\0"
+  L"```\0" L"\0" L"<\0" L"\0" L">\0" L"\0" L"!!\0" L"\0" L"/\0" L"\0" L"??\0"
+  L"\0" L"?!\0" L"\0" L"!?\0" L"\0" L" \0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0"
+  L"\0" L"\0" L"\0" L"Rs\0" L"\0" L"EUR\0" L"\0" L"a/c\0" L"\0" L"a/s\0" L"\0"
+  L"C\0" L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0" L"g\0" L"\0" L"H\0" L"\0" L"H\0"
+  L"\0" L"H\0" L"\0" L"h\0" L"\0" L"I\0" L"\0" L"I\0" L"\0" L"L\0" L"\0"
+  L"l\0" L"\0" L"N\0" L"\0" L"No\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0"
+  L"\0" L"R\0" L"\0" L"R\0" L"\0" L"TEL\0" L"\0" L"(TM)\0" L"\0" L"Z\0" L"\0"
   L"Ohm\0" L"\0" L"Z\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"e\0" L"\0" L"e\0"
   L"\0" L"E\0" L"\0" L"F\0" L"\0" L"M\0" L"\0" L"o\0" L"\0" L"i\0" L"\0"
   L"D\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L" 1/3 \0"
diff --git a/locale/C-translit.h.in b/locale/C-translit.h.in
index d440c9b9ab..ab0b130983 100644
--- a/locale/C-translit.h.in
+++ b/locale/C-translit.h.in
@@ -1,5 +1,5 @@
 /* Transliteration for the C locale.  -*-C-*-
-   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2001, 2002, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
 
@@ -94,6 +94,7 @@
 "\x2039"	"<"	/* <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK */
 "\x203a"	">"	/* <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */
 "\x203c"	"!!"	/* <U203C> DOUBLE EXCLAMATION MARK */
+"\x2044"	"/"	/* <U2044> FRACTION SLASH */
 "\x2047"	"??"	/* <U2047> DOUBLE QUESTION MARK */
 "\x2048"	"?!"	/* <U2048> QUESTION EXCLAMATION MARK */
 "\x2049"	"!?"	/* <U2049> EXCLAMATION QUESTION MARK */
diff --git a/locale/Makefile b/locale/Makefile
index b493c1c9b9..d9ab1947e7 100644
--- a/locale/Makefile
+++ b/locale/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991,1992,1995-2002,2003 Free Software Foundation, Inc.
+# Copyright (C) 1991,1992,1995-2003,2005 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -72,7 +72,8 @@ GPERFFLAGS = -acCgopt -k1,2,5,9,$$ -L ANSI-C
 include ../Rules
 
 programs/%-kw.h: programs/%-kw.gperf
-	$(GPERF) $(GPERFFLAGS) -N $(@F:-kw.h=_hash) $< > $@.new
+	cd programs \
+	&& $(GPERF) $(GPERFFLAGS) -N $(@F:-kw.h=_hash) $(<F) > $(@F).new
 	mv -f $@.new $@
 
 $(objpfx)localedef: $(localedef-modules:%=$(objpfx)%.o)
@@ -100,7 +101,6 @@ locale-CPPFLAGS := -DLOCALE_PATH='$(localepath)' \
 CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts
 CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts
 CFLAGS-charmap-dir.c = -Wno-write-strings
-CFLAGS-loadlocale.c = $(fno-unit-at-a-time)
 
 # This makes sure -DNOT_IN_libc is passed for all these modules.
 cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \
diff --git a/locale/SYS_libc.c b/locale/SYS_libc.c
index 4f9e946cf3..a879b68a25 100644
--- a/locale/SYS_libc.c
+++ b/locale/SYS_libc.c
@@ -1,5 +1,7 @@
 /* Define a constant for the dgettext domainname for libc internal messages,
    so the string constant is not repeated in dozens of object files.  */
 
+#include <libintl.h>
+
 const char _libc_intl_domainname[] = "libc";
-INTDEF(_libc_intl_domainname)
+libc_hidden_data_def (_libc_intl_domainname)
diff --git a/locale/duplocale.c b/locale/duplocale.c
index 77dfc01046..0cec09f63a 100644
--- a/locale/duplocale.c
+++ b/locale/duplocale.c
@@ -1,5 +1,5 @@
 /* Duplicate handle for selection of locales.
-   Copyright (C) 1997, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -34,7 +34,7 @@ __locale_t
 __duplocale (__locale_t dataset)
 {
   /* This static object is returned for newlocale (LC_ALL_MASK, "C").  */
-  if (dataset == &_nl_C_locobj)
+  if (dataset == _nl_C_locobj_ptr)
     return dataset;
 
   __locale_t result;
diff --git a/locale/findlocale.c b/locale/findlocale.c
index 04b197d266..ea24170df5 100644
--- a/locale/findlocale.c
+++ b/locale/findlocale.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2001, 2002, 2003, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -80,7 +80,8 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
 	 variables.  */
       *name = getenv ("LC_ALL");
       if (*name == NULL || (*name)[0] == '\0')
-	*name = getenv (_nl_category_names[category]);
+	*name = getenv (_nl_category_names.str
+			+ _nl_category_name_idxs[category]);
       if (*name == NULL || (*name)[0] == '\0')
 	*name = getenv ("LANG");
     }
@@ -145,7 +146,8 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
 				    locale_path, locale_path_len, mask,
 				    language, territory, codeset,
 				    normalized_codeset, modifier,
-				    _nl_category_names[category], 0);
+				    _nl_category_names.str
+				    + _nl_category_name_idxs[category], 0);
 
   if (locale_file == NULL)
     {
@@ -155,7 +157,8 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
 					locale_path, locale_path_len, mask,
 					language, territory, codeset,
 					normalized_codeset, modifier,
-					_nl_category_names[category], 1);
+					_nl_category_names.str
+					+ _nl_category_name_idxs[category], 1);
       if (locale_file == NULL)
 	/* This means we are out of core.  */
 	return NULL;
diff --git a/locale/freelocale.c b/locale/freelocale.c
index ec169bcb66..7430455d56 100644
--- a/locale/freelocale.c
+++ b/locale/freelocale.c
@@ -1,5 +1,5 @@
 /* Free data allocated by a call to setlocale_r
-   Copyright (C) 1996, 1997, 2000, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 2000, 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -35,7 +35,7 @@ __freelocale (__locale_t dataset)
   int cnt;
 
   /* This static object is returned for newlocale (LC_ALL_MASK, "C").  */
-  if (dataset == &_nl_C_locobj)
+  if (dataset == _nl_C_locobj_ptr)
     return;
 
   /* We modify global data (the usage counts).  */
diff --git a/locale/iso-3166.def b/locale/iso-3166.def
index 7e40c0095a..a0dd56385a 100644
--- a/locale/iso-3166.def
+++ b/locale/iso-3166.def
@@ -6,6 +6,7 @@
  * http://www.gnu.org/software/libc/bugs.html and follow
  * instructions there to file a bug report.
  */
+DEFINE_COUNTRY_CODE ("AALAND ISLANDS", AX, ALA, 248)
 DEFINE_COUNTRY_CODE ("AFGHANISTAN", AF, AFG, 4)
 DEFINE_COUNTRY_CODE ("ALBANIA", AL, ALB, 8)
 DEFINE_COUNTRY_CODE ("ALGERIA", DZ, DZA, 12)
@@ -149,6 +150,7 @@ DEFINE_COUNTRY_CODE ("MICRONESIA, FEDERATED STATES OF", FM, FSM, 583)
 DEFINE_COUNTRY_CODE ("MOLDOVA, REPUBLIC OF", MD, MDA, 498)
 DEFINE_COUNTRY_CODE ("MONACO", MC, MCO, 492)
 DEFINE_COUNTRY_CODE ("MONGOLIA", MN, MNG, 496)
+DEFINE_COUNTRY_CODE ("MONTENEGRO", ME, MNE, 499)
 DEFINE_COUNTRY_CODE ("MONTSERRAT", MS, MSR, 500)
 DEFINE_COUNTRY_CODE ("MOROCCO", MA, MAR, 504)
 DEFINE_COUNTRY_CODE ("MOZAMBIQUE", MZ, MOZ, 508)
@@ -196,6 +198,7 @@ DEFINE_COUNTRY_CODE ("SAO TOME AND PRINCIPE", ST, STP, 678)
 DEFINE_COUNTRY_CODE ("SAUDI ARABIA", SA, SAU, 682)
 DEFINE_COUNTRY_CODE ("SENEGAL", SN, SEN, 686)
 DEFINE_COUNTRY_CODE ("SERBIA AND MONTENEGRO", CS, SCG, 891)
+DEFINE_COUNTRY_CODE ("SERBIA", RS, SRB, 688)
 DEFINE_COUNTRY_CODE ("SEYCHELLES", SC, SYC, 690)
 DEFINE_COUNTRY_CODE ("SIERRA LEONE", SL, SLE, 694)
 DEFINE_COUNTRY_CODE ("SINGAPORE", SG, SGP, 702)
diff --git a/locale/iso-4217.def b/locale/iso-4217.def
index cc8af19564..581130038d 100644
--- a/locale/iso-4217.def
+++ b/locale/iso-4217.def
@@ -8,20 +8,23 @@
  *
  * !!! The list has to be sorted !!!
  */
+DEFINE_INT_CURR("ADP")		/* Andorran Peseta -> EUR  */
 DEFINE_INT_CURR("AED")		/* United Arab Emirates Dirham  */
-DEFINE_INT_CURR("AFA")		/* Afghanistan Afgani  */
+DEFINE_INT_CURR("AFN")		/* Afghanistan Afgani  */
 DEFINE_INT_CURR("ALL")		/* Albanian Lek  */
 DEFINE_INT_CURR("AMD")		/* Armenia Dram  */
 DEFINE_INT_CURR("ANG")		/* Netherlands Antilles  */
 DEFINE_INT_CURR("AOA")		/* Angolan Kwanza  */
 DEFINE_INT_CURR("ARS")		/* Argentine Peso  */
+DEFINE_INT_CURR("ATS")		/* Austrian Schilling -> EUR  */
 DEFINE_INT_CURR("AUD")		/* Australian Dollar  */
 DEFINE_INT_CURR("AWG")		/* Aruba Guilder  */
 DEFINE_INT_CURR("AZM")		/* Azerbaijan Manat  */
-DEFINE_INT_CURR("BAK")		/* Bosnian and Herzegovina Convertible Mark  */
+DEFINE_INT_CURR("BAM")		/* Bosnian and Herzegovina Convertible Mark  */
 DEFINE_INT_CURR("BBD")		/* Barbados Dollar  */
 DEFINE_INT_CURR("BDT")		/* Bangladesh Taka  */
-DEFINE_INT_CURR("BGL")		/* Bulgarian Lev  */
+DEFINE_INT_CURR("BEF")		/* Belgian Franc -> EUR  */
+DEFINE_INT_CURR("BGN")		/* Bulgarian Lev  */
 DEFINE_INT_CURR("BHD")		/* Bahraini Dinar  */
 DEFINE_INT_CURR("BIF")		/* Burundi Franc  */
 DEFINE_INT_CURR("BMD")		/* Burmudian Dollar  */
@@ -40,10 +43,12 @@ DEFINE_INT_CURR("CLP")		/* Chilean Peso  */
 DEFINE_INT_CURR("CNY")		/* China Yuan Renminbi  */
 DEFINE_INT_CURR("COP")		/* Colombian Peso  */
 DEFINE_INT_CURR("CRC")		/* Costa Rican Colon  */
+DEFINE_INT_CURR("CSD")		/* Serbian Dinar  */
 DEFINE_INT_CURR("CUP")		/* Cuban Peso  */
 DEFINE_INT_CURR("CVE")		/* Cape Verde Escudo  */
 DEFINE_INT_CURR("CYP")		/* Cypriot Pound  */
 DEFINE_INT_CURR("CZK")		/* Czech Koruna  */
+DEFINE_INT_CURR("DEM")		/* German Mark -> EUR  */
 DEFINE_INT_CURR("DJF")		/* Djibouti Franc  */
 DEFINE_INT_CURR("DKK")		/* Danish Krone (Faroe Islands, Greenland)  */
 DEFINE_INT_CURR("DOP")		/* Dominican Republic  */
@@ -51,16 +56,20 @@ DEFINE_INT_CURR("DZD")		/* Algerian Dinar  */
 DEFINE_INT_CURR("EEK")		/* Estonian Kroon  */
 DEFINE_INT_CURR("EGP")		/* Egyptian Pound  */
 DEFINE_INT_CURR("ERN")		/* Eritrean Nakfa  */
+DEFINE_INT_CURR("ESP")		/* Spanish Peseta -> EUR  */
 DEFINE_INT_CURR("ETB")		/* Ethiopian Birr  */
 DEFINE_INT_CURR("EUR")		/* European Union Euro  */
+DEFINE_INT_CURR("FIM")		/* Finnish Markka -> EUR  */
 DEFINE_INT_CURR("FJD")		/* Fiji Dollar  */
 DEFINE_INT_CURR("FKP")		/* Falkland Islands Pound (Malvinas)  */
+DEFINE_INT_CURR("FRF")		/* French Franc -> EUR  */
 DEFINE_INT_CURR("GBP")		/* British Pound  */
 DEFINE_INT_CURR("GEL")		/* Georgia Lari  */
 DEFINE_INT_CURR("GHC")		/* Ghana Cedi  */
 DEFINE_INT_CURR("GIP")		/* Gibraltar Pound  */
 DEFINE_INT_CURR("GMD")		/* Gambian Dalasi  */
 DEFINE_INT_CURR("GNF")		/* Guinea Franc  */
+DEFINE_INT_CURR("GRD")		/* Greek Drachma -> EUR  */
 DEFINE_INT_CURR("GTQ")		/* Guatemala Quetzal  */
 DEFINE_INT_CURR("GYD")		/* Guyana Dollar  */
 DEFINE_INT_CURR("HKD")		/* Hong Kong Dollar  */
@@ -69,12 +78,15 @@ DEFINE_INT_CURR("HRK")		/* Croatia Kuna  */
 DEFINE_INT_CURR("HTG")		/* Haiti Gourde  */
 DEFINE_INT_CURR("HUF")		/* Hungarian Forint  */
 DEFINE_INT_CURR("IDR")		/* Indonesia Rupiah  */
+DEFINE_INT_CURR("IEP")		/* Irish Pound -> EUR  */
 DEFINE_INT_CURR("ILS")		/* Israeli Shekel  */
 DEFINE_INT_CURR("IMP")		/* Isle of Man Pounds  */
 DEFINE_INT_CURR("INR")		/* Indian Rupee (Bhutan)  */
 DEFINE_INT_CURR("IQD")		/* Iraqi Dinar  */
 DEFINE_INT_CURR("IRR")		/* Iranian Rial  */
 DEFINE_INT_CURR("ISK")		/* Iceland Krona  */
+DEFINE_INT_CURR("ITL")		/* Italian Lira -> EUR  */
+DEFINE_INT_CURR("JEP")		/* Jersey Pound  */
 DEFINE_INT_CURR("JMD")		/* Jamaican Dollar  */
 DEFINE_INT_CURR("JOD")		/* Jordanian Dinar  */
 DEFINE_INT_CURR("JPY")		/* Japanese Yen  */
@@ -93,11 +105,12 @@ DEFINE_INT_CURR("LKR")		/* Sri Lankan Rupee  */
 DEFINE_INT_CURR("LRD")		/* Liberian Dollar  */
 DEFINE_INT_CURR("LSL")		/* Lesotho Maloti  */
 DEFINE_INT_CURR("LTL")		/* Lithuanian Litas  */
+DEFINE_INT_CURR("LUF")		/* Luxembourg Franc -> EUR  */
 DEFINE_INT_CURR("LVL")		/* Latvia Lat  */
 DEFINE_INT_CURR("LYD")		/* Libyan Arab Jamahiriya Dinar  */
 DEFINE_INT_CURR("MAD")		/* Moroccan Dirham  */
 DEFINE_INT_CURR("MDL")		/* Moldova Lei  */
-DEFINE_INT_CURR("MGF")		/* Madagasy Franc  */
+DEFINE_INT_CURR("MGA")		/* Madagasy Ariary  */
 DEFINE_INT_CURR("MKD")		/* Macedonia Denar  */
 DEFINE_INT_CURR("MMK")		/* Myanmar Kyat  */
 DEFINE_INT_CURR("MNT")		/* Mongolia Tugrik  */
@@ -107,12 +120,13 @@ DEFINE_INT_CURR("MTL")		/* Maltese Lira  */
 DEFINE_INT_CURR("MUR")		/* Mauritius Rupee  */
 DEFINE_INT_CURR("MVR")		/* Maldives Rupee  */
 DEFINE_INT_CURR("MWK")		/* Malawi Kwacha  */
-DEFINE_INT_CURR("MXP")		/* Mexican Peso  */
+DEFINE_INT_CURR("MXN")		/* Mexican Peso  */
 DEFINE_INT_CURR("MYR")		/* Malaysian Ringgit  */
 DEFINE_INT_CURR("MZM")		/* Mozambique Metical  */
 DEFINE_INT_CURR("NAD")		/* Namibia Dollar  */
 DEFINE_INT_CURR("NGN")		/* Nigeria Naira  */
 DEFINE_INT_CURR("NIO")		/* Nicaragua Cordoba Oro  */
+DEFINE_INT_CURR("NLG")		/* Netherlands Guilder -> EUR  */
 DEFINE_INT_CURR("NOK")		/* Norwegian Krone  */
 DEFINE_INT_CURR("NPR")		/* Nepalese Rupee  */
 DEFINE_INT_CURR("NZD")		/* New Zealand Dollar  */
@@ -123,10 +137,13 @@ DEFINE_INT_CURR("PGK")		/* Papau New Guinea Kina  */
 DEFINE_INT_CURR("PHP")		/* Philippines Peso  */
 DEFINE_INT_CURR("PKR")		/* Pakistan Rupee  */
 DEFINE_INT_CURR("PLN")		/* Polish Zloty  */
+DEFINE_INT_CURR("PTE")		/* Portugese Escudo -> EUR  */
 DEFINE_INT_CURR("PYG")		/* Paraguay Guarani  */
 DEFINE_INT_CURR("QAR")		/* Qatar Rial  */
 DEFINE_INT_CURR("ROL")		/* Romanian Leu  */
-DEFINE_INT_CURR("RUR")		/* Russian Ruble  */
+DEFINE_INT_CURR("RON")		/* Romanian New Leu  */
+DEFINE_INT_CURR("RSD")		/* Serbian Dinars  */
+DEFINE_INT_CURR("RUB")		/* Russian Ruble  */
 DEFINE_INT_CURR("RWF")		/* Rwanda Franc  */
 DEFINE_INT_CURR("SAR")		/* Saudi Arabia Riyal  */
 DEFINE_INT_CURR("SBD")		/* Solomon Islands Dollar  */
@@ -146,11 +163,11 @@ DEFINE_INT_CURR("SVC")		/* El Salvador Colon  */
 DEFINE_INT_CURR("SYP")		/* Syrian Arab Republic Pound  */
 DEFINE_INT_CURR("SZL")		/* Swaziland Lilangeni  */
 DEFINE_INT_CURR("THB")		/* Thai Baht  */
-DEFINE_INT_CURR("TJR")		/* Tajikistani Ruble  */
+DEFINE_INT_CURR("TJS")		/* Tajikistani Somoni  */
 DEFINE_INT_CURR("TMM")		/* Turkmenistan Manet  */
 DEFINE_INT_CURR("TND")		/* Tunisian Dinar  */
 DEFINE_INT_CURR("TOP")		/* Tonga Pa'Anga  */
-DEFINE_INT_CURR("TRL")		/* Turkish Lira  */
+DEFINE_INT_CURR("TRY")		/* New Turkish Lira  */
 DEFINE_INT_CURR("TTD")		/* Trinidad and Tobago  */
 DEFINE_INT_CURR("TVD")		/* Tuvalu Dollars  */
 DEFINE_INT_CURR("TWD")		/* Taiwan, Province of China Dollar  */
@@ -170,7 +187,6 @@ DEFINE_INT_CURR("XDR")		/* International Monetary Fund  */
 DEFINE_INT_CURR("XOF")		/* West African Franc (Benin, Ivory Coast, Niger, Senegal, Togo, Upper Volta)  */
 DEFINE_INT_CURR("XPF")		/* French polynesia, New Caledonia, Wallis and Futuna Islands  */
 DEFINE_INT_CURR("YER")		/* Yemeni Rial  */
-DEFINE_INT_CURR("YUM")		/* Yugoslavian New Dinar  */
 DEFINE_INT_CURR("ZAR")		/* South Africa Rand (Lesotho, Namibia)  */
 DEFINE_INT_CURR("ZMK")		/* Zambian Kwacha  */
 DEFINE_INT_CURR("ZWD")		/* Zimbabwe Dollar  */
diff --git a/locale/iso-639.def b/locale/iso-639.def
index 3805b8ef53..0507ba5c91 100644
--- a/locale/iso-639.def
+++ b/locale/iso-639.def
@@ -12,7 +12,7 @@ DEFINE_LANGUAGE_CODE ("Abkhazian", ab, abk, abk)
 DEFINE_LANGUAGE_CODE3 ("Achinese", ace, ace)
 DEFINE_LANGUAGE_CODE3 ("Acoli", ach, ach)
 DEFINE_LANGUAGE_CODE3 ("Adangme", ada, ada)
-DEFINE_LANGUAGE_CODE3 ("Adygei", ady, ady)
+DEFINE_LANGUAGE_CODE3 ("Adyghe; Adygei", ady, ady)
 DEFINE_LANGUAGE_CODE ("Afar", aa, aar, aar)
 DEFINE_LANGUAGE_CODE3 ("Afrihili", afh, afh)
 DEFINE_LANGUAGE_CODE ("Afrikaans", af, afr, afr)
@@ -21,12 +21,12 @@ DEFINE_LANGUAGE_CODE ("Akan", ak, aka, aka)
 DEFINE_LANGUAGE_CODE3 ("Akkadian", akk, akk)
 DEFINE_LANGUAGE_CODE ("Albanian", sq, sqi, alb)
 DEFINE_LANGUAGE_CODE3 ("Aleut", ale, ale)
-DEFINE_LANGUAGE_CODE3 ("Alonquian languages", alg, alg)
+DEFINE_LANGUAGE_CODE3 ("Algonquian languages", alg, alg)
 DEFINE_LANGUAGE_CODE3 ("Altaic (Other)", tut, tut)
 DEFINE_LANGUAGE_CODE ("Amharic", am, amh, amh)
-DEFINE_LANGUAGE_CODE3 ("Apache language", apa, apa)
+DEFINE_LANGUAGE_CODE3 ("Apache languages", apa, apa)
 DEFINE_LANGUAGE_CODE ("Arabic", ar, ara, ara)
-DEFINE_LANGUAGE_CODE ("Argonese", an, arg, arg)
+DEFINE_LANGUAGE_CODE ("Aragonese", an, arg, arg)
 DEFINE_LANGUAGE_CODE3 ("Aramaic", arc, arc)
 DEFINE_LANGUAGE_CODE3 ("Arapaho", arp, arp)
 DEFINE_LANGUAGE_CODE3 ("Araucanian", arn, arn)
@@ -64,7 +64,7 @@ DEFINE_LANGUAGE_CODE ("Bihari", bh, bih, bih)
 DEFINE_LANGUAGE_CODE3 ("Bikol", bik, bik)
 DEFINE_LANGUAGE_CODE3 ("Bini", bin, bin)
 DEFINE_LANGUAGE_CODE ("Bislama", bi, bis, bis)
-DEFINE_LANGUAGE_CODE3 ("Blin", byn, byn)
+DEFINE_LANGUAGE_CODE3 ("Blin; Bilin", byn, byn)
 DEFINE_LANGUAGE_CODE ("Bosnian", bs, bos, bos)
 DEFINE_LANGUAGE_CODE3 ("Braj", bra, bra)
 DEFINE_LANGUAGE_CODE ("Breton", br, bre, bre)
@@ -74,33 +74,34 @@ DEFINE_LANGUAGE_CODE3 ("Buriat", bua, bua)
 DEFINE_LANGUAGE_CODE ("Burmese", my, mya, bur)
 DEFINE_LANGUAGE_CODE3 ("Caddo", cad, cad)
 DEFINE_LANGUAGE_CODE3 ("Carib", car, car)
-DEFINE_LANGUAGE_CODE ("Catalan", ca, cat, cat)
+DEFINE_LANGUAGE_CODE ("Catalan; Valencian", ca, cat, cat)
 DEFINE_LANGUAGE_CODE3 ("Caucasian (Other)", cau, cau)
 DEFINE_LANGUAGE_CODE3 ("Cebuano", ceb, ceb)
 DEFINE_LANGUAGE_CODE3 ("Celtic (Other)", cel, cel)
 DEFINE_LANGUAGE_CODE3 ("Central American Indian (Other)", cai, cai)
 DEFINE_LANGUAGE_CODE3 ("Chagatai", chg, chg)
-DEFINE_LANGUAGE_CODE3 ("Canmic languages", cmc, cmc)
+DEFINE_LANGUAGE_CODE3 ("Chamic languages", cmc, cmc)
 DEFINE_LANGUAGE_CODE ("Chamorro", ch, cha, cha)
 DEFINE_LANGUAGE_CODE ("Chechen", ce, che, che)
 DEFINE_LANGUAGE_CODE3 ("Cherokee", chr, chr)
-DEFINE_LANGUAGE_CODE ("Chewa; Chechewa; Nyanja", ny, nya, nya)
 DEFINE_LANGUAGE_CODE3 ("Cheyenne", chy, chy)
 DEFINE_LANGUAGE_CODE3 ("Chibcha", chb, chb)
+DEFINE_LANGUAGE_CODE ("Chichewa; Chewa; Nyanja", ny, nya, nya)
 DEFINE_LANGUAGE_CODE ("Chinese", zh, zho, chi)
 DEFINE_LANGUAGE_CODE3 ("Chinook jargon", chn, chn)
 DEFINE_LANGUAGE_CODE3 ("Chipewyan", chp, chp)
 DEFINE_LANGUAGE_CODE3 ("Choctaw", cho, cho)
-DEFINE_LANGUAGE_CODE ("Church Slavic", cu, chu, chu)
+DEFINE_LANGUAGE_CODE ("Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic", cu, chu, chu)
 DEFINE_LANGUAGE_CODE3 ("Chuukese", chk, chk)
 DEFINE_LANGUAGE_CODE ("Chuvash", cv, chv, chv)
+DEFINE_LANGUAGE_CODE3 ("Classical Newari; Old Newari; Classical Nepal Bhasa", nwc, nwc)
 DEFINE_LANGUAGE_CODE3 ("Coptic", cop, cop)
 DEFINE_LANGUAGE_CODE ("Cornish", kw, cor, cor)
 DEFINE_LANGUAGE_CODE ("Corsican", co, cos, cos)
-DEFINE_LANGUAGE_CODE ("Cree", cr, cre, cre)
 DEFINE_LANGUAGE_CODE3 ("Creek", mus, mus)
+DEFINE_LANGUAGE_CODE ("Cree", cr, cre, cre)
 DEFINE_LANGUAGE_CODE3 ("Creoles and pidgins (Other)", crp, crp)
-DEFINE_LANGUAGE_CODE3 ("Creoles and pidgins, English-based (Other)", cpe, cpe)
+DEFINE_LANGUAGE_CODE3 ("Creoles and pidgins, English based (Other)", cpe, cpe)
 DEFINE_LANGUAGE_CODE3 ("Creoles and pidgins, French-based (Other)", cpf, cpf)
 DEFINE_LANGUAGE_CODE3 ("Creoles and pidgins, Portuguese-based (Other)", cpp, cpp)
 DEFINE_LANGUAGE_CODE3 ("Crimean Tatar; Crimean Turkish", crh, crh)
@@ -114,21 +115,21 @@ DEFINE_LANGUAGE_CODE3 ("Dayak", day, day)
 DEFINE_LANGUAGE_CODE3 ("Delaware", del, del)
 DEFINE_LANGUAGE_CODE3 ("Dinka", din, din)
 DEFINE_LANGUAGE_CODE ("Divehi", dv, div, div)
-DEFINE_LANGUAGE_CODE3 ("Dogri", doi, doi)
 DEFINE_LANGUAGE_CODE3 ("Dogrib", dgr, dgr)
+DEFINE_LANGUAGE_CODE3 ("Dogri", doi, doi)
 DEFINE_LANGUAGE_CODE3 ("Dravidian (Other)", dra, dra)
 DEFINE_LANGUAGE_CODE3 ("Duala", dua, dua)
+DEFINE_LANGUAGE_CODE3 ("Dutch, Middle (ca.1050-1350)", dum, dum)
 DEFINE_LANGUAGE_CODE ("Dutch; Flemish", nl, nld, dut)
-DEFINE_LANGUAGE_CODE3 ("Dutch, Middle", dum, dum)
 DEFINE_LANGUAGE_CODE3 ("Dyula", dyu, dyu)
 DEFINE_LANGUAGE_CODE ("Dzongkha", dz, dzo, dzo)
 DEFINE_LANGUAGE_CODE3 ("Efik", efi, efi)
 DEFINE_LANGUAGE_CODE3 ("Egyptian (Ancient)", egy, egy)
 DEFINE_LANGUAGE_CODE3 ("Ekajuk", eka, eka)
 DEFINE_LANGUAGE_CODE3 ("Elamite", elx, elx)
+DEFINE_LANGUAGE_CODE3 ("English, Middle (1100-1500)", enm, enm)
+DEFINE_LANGUAGE_CODE3 ("English, Old (ca.450-1100)", ang, ang)
 DEFINE_LANGUAGE_CODE ("English", en, eng, eng)
-DEFINE_LANGUAGE_CODE3 ("English, Middle", enm, enm)
-DEFINE_LANGUAGE_CODE3 ("English, Old", ang, ang)
 DEFINE_LANGUAGE_CODE3 ("Erzya", myv, myv)
 DEFINE_LANGUAGE_CODE ("Esperanto", eo, epo, epo)
 DEFINE_LANGUAGE_CODE ("Estonian", et, est, est)
@@ -138,36 +139,35 @@ DEFINE_LANGUAGE_CODE3 ("Fang", fan, fan)
 DEFINE_LANGUAGE_CODE3 ("Fanti", fat, fat)
 DEFINE_LANGUAGE_CODE ("Faroese", fo, fao, fao)
 DEFINE_LANGUAGE_CODE ("Fijian", fj, fij, fij)
+DEFINE_LANGUAGE_CODE3 ("Filipino; Pilipino", fil, fil)
 DEFINE_LANGUAGE_CODE ("Finnish", fi, fin, fin)
 DEFINE_LANGUAGE_CODE3 ("Finno-Ugrian (Other)", fiu, fiu)
 DEFINE_LANGUAGE_CODE3 ("Fon", fon, fon)
+DEFINE_LANGUAGE_CODE3 ("French, Middle (ca.1400-1800)", frm, frm)
+DEFINE_LANGUAGE_CODE3 ("French, Old (842-ca.1400)", fro, fro)
 DEFINE_LANGUAGE_CODE ("French", fr, fra, fre)
-DEFINE_LANGUAGE_CODE3 ("French, Middle", frm, frm)
-DEFINE_LANGUAGE_CODE3 ("French, Old", fro, fro)
 DEFINE_LANGUAGE_CODE ("Frisian", fy, fry, fry)
 DEFINE_LANGUAGE_CODE3 ("Friulian", fur, fur)
 DEFINE_LANGUAGE_CODE ("Fulah", ff, ful, ful)
-DEFINE_LANGUAGE_CODE3 ("Ga", gaa, gaa)
-DEFINE_LANGUAGE_CODE ("Gaelic (Scots)", gd, gla, gla)
+DEFINE_LANGUAGE_CODE ("Gaelic; Scottish Gaelic", gd, gla, gla)
 DEFINE_LANGUAGE_CODE ("Gallegan", gl, glg, glg)
 DEFINE_LANGUAGE_CODE ("Ganda", lg, lug, lug)
 DEFINE_LANGUAGE_CODE3 ("Gayo", gay, gay)
+DEFINE_LANGUAGE_CODE3 ("Ga", gaa, gaa)
 DEFINE_LANGUAGE_CODE3 ("Gbaya", gba, gba)
 DEFINE_LANGUAGE_CODE3 ("Geez", gez, gez)
 DEFINE_LANGUAGE_CODE ("Georgian", ka, kat, geo)
-DEFINE_LANGUAGE_CODE ("German", de, deu, ger)
-DEFINE_LANGUAGE_CODE3 ("German,  Low; Saxon, Low", nds, nds)
-DEFINE_LANGUAGE_CODE3 ("German, Middle High", gmh, gmh)
-DEFINE_LANGUAGE_CODE3 ("German, Old High", goh, goh)
+DEFINE_LANGUAGE_CODE3 ("German, Middle High (ca.1050-1500)", gmh, gmh)
+DEFINE_LANGUAGE_CODE3 ("German, Old High (ca.750-1050)", goh, goh)
 DEFINE_LANGUAGE_CODE3 ("Germanic (Other)", gem, gem)
-DEFINE_LANGUAGE_CODE ("Gikuyu; Kikuyu", ki, kik, kik)
+DEFINE_LANGUAGE_CODE ("German", de, deu, ger)
 DEFINE_LANGUAGE_CODE3 ("Gilbertese", gil, gil)
 DEFINE_LANGUAGE_CODE3 ("Gondi", gon, gon)
 DEFINE_LANGUAGE_CODE3 ("Gorontalo", gor, gor)
 DEFINE_LANGUAGE_CODE3 ("Gothic", got, got)
 DEFINE_LANGUAGE_CODE3 ("Grebo", grb, grb)
-DEFINE_LANGUAGE_CODE3 ("Greek, Ancient", grc, grc)
-DEFINE_LANGUAGE_CODE ("Greek, Modern", el, gre, ell)
+DEFINE_LANGUAGE_CODE3 ("Greek, Ancient (to 1453)", grc, grc)
+DEFINE_LANGUAGE_CODE ("Greek, Modern (1453-)", el, ell, gre)
 DEFINE_LANGUAGE_CODE ("Guarani", gn, grn, grn)
 DEFINE_LANGUAGE_CODE ("Gujarati", gu, guj, guj)
 DEFINE_LANGUAGE_CODE3 ("Gwich´in", gwi, gwi)
@@ -196,29 +196,30 @@ DEFINE_LANGUAGE_CODE3 ("Indic (Other)", inc, inc)
 DEFINE_LANGUAGE_CODE3 ("Indo-European (Other)", ine, ine)
 DEFINE_LANGUAGE_CODE ("Indonesian", id, ind, ind)
 DEFINE_LANGUAGE_CODE3 ("Ingush", inh, inh)
-DEFINE_LANGUAGE_CODE ("Interlingua", ia, ina, ina)
+DEFINE_LANGUAGE_CODE ("Interlingua (International Auxiliary Language Association)", ia, ina, ina)
 DEFINE_LANGUAGE_CODE ("Interlingue", ie, ile, ile)
 DEFINE_LANGUAGE_CODE ("Inuktitut", iu, iku, iku)
 DEFINE_LANGUAGE_CODE ("Inupiaq", ik, ipk, ipk)
 DEFINE_LANGUAGE_CODE3 ("Iranian (Other)", ira, ira)
+DEFINE_LANGUAGE_CODE3 ("Irish, Middle (900-1200)", mga, mga)
+DEFINE_LANGUAGE_CODE3 ("Irish, Old (to 900)", sga, sga)
 DEFINE_LANGUAGE_CODE ("Irish", ga, gle, gle)
-DEFINE_LANGUAGE_CODE3 ("Irish, Middle", mga, mga)
-DEFINE_LANGUAGE_CODE3 ("Irish, Old", sga, sga)
 DEFINE_LANGUAGE_CODE3 ("Iroquoian languages", iro, iro)
 DEFINE_LANGUAGE_CODE ("Italian", it, ita, ita)
 DEFINE_LANGUAGE_CODE ("Japanese", ja, jpn, jpn)
-DEFINE_LANGUAGE_CODE ("Javanese", jv, jaw, jav)
+DEFINE_LANGUAGE_CODE ("Javanese", jv, jav, jav)
 DEFINE_LANGUAGE_CODE3 ("Judeo-Arabic", jrb, jrb)
 DEFINE_LANGUAGE_CODE3 ("Judeo-Persian", jpr, jpr)
 DEFINE_LANGUAGE_CODE3 ("Kabardian", kbd, kbd)
 DEFINE_LANGUAGE_CODE3 ("Kabyle", kab, kab)
 DEFINE_LANGUAGE_CODE3 ("Kachin", kac, kac)
-DEFINE_LANGUAGE_CODE ("Kalaallisut (Greenlandic)", kl, kal, kal)
+DEFINE_LANGUAGE_CODE ("Kalaallisut; Greenlandic", kl, kal, kal)
+DEFINE_LANGUAGE_CODE3 ("Kalmyk", xal, xal)
 DEFINE_LANGUAGE_CODE3 ("Kamba", kam, kam)
 DEFINE_LANGUAGE_CODE ("Kannada", kn, kan, kan)
 DEFINE_LANGUAGE_CODE ("Kanuri", kr, kau, kau)
-DEFINE_LANGUAGE_CODE3 ("Karachay-Balkar", krc, krc)
 DEFINE_LANGUAGE_CODE3 ("Kara-Kalpak", kaa, kaa)
+DEFINE_LANGUAGE_CODE3 ("Karachay-Balkar", krc, krc)
 DEFINE_LANGUAGE_CODE3 ("Karen", kar, kar)
 DEFINE_LANGUAGE_CODE ("Kashmiri", ks, kas, kas)
 DEFINE_LANGUAGE_CODE3 ("Kashubian", csb, csb)
@@ -228,10 +229,11 @@ DEFINE_LANGUAGE_CODE3 ("Khasi", kha, kha)
 DEFINE_LANGUAGE_CODE ("Khmer", km, khm, khm)
 DEFINE_LANGUAGE_CODE3 ("Khoisan (Other)", khi, khi)
 DEFINE_LANGUAGE_CODE3 ("Khotanese", kho, kho)
-DEFINE_LANGUAGE_CODE ("Kikuyu", ki, kik, kik)
+DEFINE_LANGUAGE_CODE ("Kikuyu; Gikuyu", ki, kik, kik)
 DEFINE_LANGUAGE_CODE3 ("Kimbundu", kmb, kmb)
 DEFINE_LANGUAGE_CODE ("Kinyarwanda", rw, kin, kin)
 DEFINE_LANGUAGE_CODE ("Kirghiz", ky, kir, kir)
+DEFINE_LANGUAGE_CODE3 ("Klingon; tlhIngan-Hol", tlh, tlh)
 DEFINE_LANGUAGE_CODE ("Komi", kv, kom, kom)
 DEFINE_LANGUAGE_CODE ("Kongo", kg, kon, kon)
 DEFINE_LANGUAGE_CODE3 ("Konkani", kok, kok)
@@ -239,7 +241,7 @@ DEFINE_LANGUAGE_CODE ("Korean", ko, kor, kor)
 DEFINE_LANGUAGE_CODE3 ("Kosraean", kos, kos)
 DEFINE_LANGUAGE_CODE3 ("Kpelle", kpe, kpe)
 DEFINE_LANGUAGE_CODE3 ("Kru", kro, kro)
-DEFINE_LANGUAGE_CODE ("Kuanyama", kj, kua, kua)
+DEFINE_LANGUAGE_CODE ("Kuanyama; Kwanyama", kj, kua, kua)
 DEFINE_LANGUAGE_CODE3 ("Kumyk", kum, kum)
 DEFINE_LANGUAGE_CODE ("Kurdish", ku, kur, kur)
 DEFINE_LANGUAGE_CODE3 ("Kurukh", kru, kru)
@@ -250,11 +252,13 @@ DEFINE_LANGUAGE_CODE3 ("Lamba", lam, lam)
 DEFINE_LANGUAGE_CODE ("Lao", lo, lao, lao)
 DEFINE_LANGUAGE_CODE ("Latin", la, lat, lat)
 DEFINE_LANGUAGE_CODE ("Latvian", lv, lav, lav)
-DEFINE_LANGUAGE_CODE ("Letzeburgesch", lb, ltz, ltz)
 DEFINE_LANGUAGE_CODE3 ("Lezghian", lez, lez)
 DEFINE_LANGUAGE_CODE ("Limburgan; Limburger; Limburgish", li, lim, lim)
 DEFINE_LANGUAGE_CODE ("Lingala", ln, lin, lin)
 DEFINE_LANGUAGE_CODE ("Lithuanian", lt, lit, lit)
+DEFINE_LANGUAGE_CODE3 ("Lojban", jbo, jbo)
+DEFINE_LANGUAGE_CODE3 ("Low German; Low Saxon; German, Low; Saxon, Low", nds, nds)
+DEFINE_LANGUAGE_CODE3 ("Lower Sorbian", dsb, dsb)
 DEFINE_LANGUAGE_CODE3 ("Lozi", loz, loz)
 DEFINE_LANGUAGE_CODE ("Luba-Katanga", lu, lub, lub)
 DEFINE_LANGUAGE_CODE3 ("Luba-Lulua", lua, lua)
@@ -263,14 +267,15 @@ DEFINE_LANGUAGE_CODE3 ("Lule Sami", smj, smj)
 DEFINE_LANGUAGE_CODE3 ("Lunda", lun, lun)
 DEFINE_LANGUAGE_CODE3 ("Luo (Kenya and Tanzania)", luo, luo)
 DEFINE_LANGUAGE_CODE3 ("Lushai", lus, lus)
+DEFINE_LANGUAGE_CODE ("Luxembourgish; Letzeburgesch", lb, ltz, ltz)
 DEFINE_LANGUAGE_CODE ("Macedonian", mk, mkd, mac)
 DEFINE_LANGUAGE_CODE3 ("Madurese", mad, mad)
 DEFINE_LANGUAGE_CODE3 ("Magahi", mag, mag)
 DEFINE_LANGUAGE_CODE3 ("Maithili", mai, mai)
 DEFINE_LANGUAGE_CODE3 ("Makasar", mak, mak)
 DEFINE_LANGUAGE_CODE ("Malagasy", mg, mlg, mlg)
-DEFINE_LANGUAGE_CODE ("Malay", ms, msa, may)
 DEFINE_LANGUAGE_CODE ("Malayalam", ml, mal, mal)
+DEFINE_LANGUAGE_CODE ("Malay", ms, msa, may)
 DEFINE_LANGUAGE_CODE ("Maltese", mt, mlt, mlt)
 DEFINE_LANGUAGE_CODE3 ("Manchu", mnc, mnc)
 DEFINE_LANGUAGE_CODE3 ("Mandar", mdr, mdr)
@@ -286,42 +291,46 @@ DEFINE_LANGUAGE_CODE3 ("Marwari", mwr, mwr)
 DEFINE_LANGUAGE_CODE3 ("Masai", mas, mas)
 DEFINE_LANGUAGE_CODE3 ("Mayan languages", myn, myn)
 DEFINE_LANGUAGE_CODE3 ("Mende", men, men)
-DEFINE_LANGUAGE_CODE3 ("Micmac", mic, mic)
+DEFINE_LANGUAGE_CODE3 ("Mi'kmaq; Micmac", mic, mic)
 DEFINE_LANGUAGE_CODE3 ("Minangkabau", min, min)
+DEFINE_LANGUAGE_CODE3 ("Mirandese", mwl, mwl)
 DEFINE_LANGUAGE_CODE3 ("Miscellaneous languages", mis, mis)
 DEFINE_LANGUAGE_CODE3 ("Mohawk", moh, moh)
 DEFINE_LANGUAGE_CODE3 ("Moksha", mdf, mdf)
 DEFINE_LANGUAGE_CODE ("Moldavian", mo, mol, mol)
 DEFINE_LANGUAGE_CODE3 ("Mon-Khmer (Other)", mkh, mkh)
-DEFINE_LANGUAGE_CODE3 ("Mongo", lol, lol)
 DEFINE_LANGUAGE_CODE ("Mongolian", mn, mon, mon)
+DEFINE_LANGUAGE_CODE3 ("Mongo", lol, lol)
 DEFINE_LANGUAGE_CODE3 ("Mossi", mos, mos)
+DEFINE_LANGUAGE_CODE3 ("Multiple languages", mul, mul)
 DEFINE_LANGUAGE_CODE3 ("Munda languages", mun, mun)
 DEFINE_LANGUAGE_CODE3 ("Nahuatl", nah, nah)
 DEFINE_LANGUAGE_CODE ("Nauru", na, nau, nau)
-DEFINE_LANGUAGE_CODE ("Navajo", nv, nav, nav)
-DEFINE_LANGUAGE_CODE ("Ndebele, North", nd, nde, nde)
-DEFINE_LANGUAGE_CODE ("Ndebele, South", nr, nbl, nbl)
+DEFINE_LANGUAGE_CODE ("Navajo; Navaho", nv, nav, nav)
+DEFINE_LANGUAGE_CODE ("Ndebele, North; North Ndebele", nd, nde, nde)
+DEFINE_LANGUAGE_CODE ("Ndebele, South; South Ndebele", nr, nbl, nbl)
 DEFINE_LANGUAGE_CODE ("Ndonga", ng, ndo, ndo)
 DEFINE_LANGUAGE_CODE3 ("Neapolitan", nap, nap)
+DEFINE_LANGUAGE_CODE3 ("Nepal Bhasa; Newari", new, new)
 DEFINE_LANGUAGE_CODE ("Nepali", ne, nep, nep)
-DEFINE_LANGUAGE_CODE3 ("Newari", new, new)
 DEFINE_LANGUAGE_CODE3 ("Nias", nia, nia)
 DEFINE_LANGUAGE_CODE3 ("Niger-Kordofanian (Other)", nic, nic)
 DEFINE_LANGUAGE_CODE3 ("Nilo-Saharan (Other)", ssa, ssa)
 DEFINE_LANGUAGE_CODE3 ("Niuean", niu, niu)
 DEFINE_LANGUAGE_CODE3 ("Nogai", nog, nog)
 DEFINE_LANGUAGE_CODE3 ("Norse, Old", non, non)
-DEFINE_LANGUAGE_CODE3 ("North  American  Indian  (Other)", nai, nai)
+DEFINE_LANGUAGE_CODE3 ("North American Indian", nai, nai)
 DEFINE_LANGUAGE_CODE ("Northern Sami", se, sme, sme)
-DEFINE_LANGUAGE_CODE ("Norwegian", no, nor, nor)
+DEFINE_LANGUAGE_CODE3 ("Northern Sotho; Pedi; Sepedi", nso, nso)
 DEFINE_LANGUAGE_CODE ("Norwegian Bokmål", nb, nob, nob)
 DEFINE_LANGUAGE_CODE ("Norwegian Nynorsk", nn, nno, nno)
+DEFINE_LANGUAGE_CODE ("Norwegian", no, nor, nor)
 DEFINE_LANGUAGE_CODE3 ("Nubian languages", nub, nub)
 DEFINE_LANGUAGE_CODE3 ("Nyamwezi", nym, nym)
 DEFINE_LANGUAGE_CODE3 ("Nyankole", nyn, nyn)
 DEFINE_LANGUAGE_CODE3 ("Nyoro", nyo, nyo)
 DEFINE_LANGUAGE_CODE3 ("Nzima", nzi, nzi)
+DEFINE_LANGUAGE_CODE ("Occitan (post 1500); Provençal", oc, oci, oci)
 DEFINE_LANGUAGE_CODE ("Ojibwa", oj, oji, oji)
 DEFINE_LANGUAGE_CODE ("Oriya", or, ori, ori)
 DEFINE_LANGUAGE_CODE ("Oromo", om, orm, orm)
@@ -333,18 +342,17 @@ DEFINE_LANGUAGE_CODE3 ("Palauan", pau, pau)
 DEFINE_LANGUAGE_CODE ("Pali", pi, pli, pli)
 DEFINE_LANGUAGE_CODE3 ("Pampanga", pam, pam)
 DEFINE_LANGUAGE_CODE3 ("Pangasinan", pag, pag)
-DEFINE_LANGUAGE_CODE ("Panjabi", pa, pan, pan)
+DEFINE_LANGUAGE_CODE ("Panjabi; Punjabi", pa, pan, pan)
 DEFINE_LANGUAGE_CODE3 ("Papiamento", pap, pap)
 DEFINE_LANGUAGE_CODE3 ("Papuan (Other)", paa, paa)
+DEFINE_LANGUAGE_CODE3 ("Persian, Old (ca.600-400 B.C.)", peo, peo)
 DEFINE_LANGUAGE_CODE ("Persian", fa, fas, per)
-DEFINE_LANGUAGE_CODE3 ("Persian, Old (ca.600-400 B.C.E.)", peo, peo)
 DEFINE_LANGUAGE_CODE3 ("Philippine (Other)", phi, phi)
 DEFINE_LANGUAGE_CODE3 ("Phoenician", phn, phn)
 DEFINE_LANGUAGE_CODE3 ("Pohnpeian", pon, pon)
 DEFINE_LANGUAGE_CODE ("Polish", pl, pol, pol)
 DEFINE_LANGUAGE_CODE ("Portuguese", pt, por, por)
-DEFINE_LANGUAGE_CODE3 ("Prakrit", pra, pra)
-DEFINE_LANGUAGE_CODE ("Provençal; Occitan (post 1500)", oc, oci, oci)
+DEFINE_LANGUAGE_CODE3 ("Prakrit languages", pra, pra)
 DEFINE_LANGUAGE_CODE3 ("Provençal, Old (to 1500)", pro, pro)
 DEFINE_LANGUAGE_CODE ("Pushto", ps, pus, pus)
 DEFINE_LANGUAGE_CODE ("Quechua", qu, que, que)
@@ -375,10 +383,12 @@ DEFINE_LANGUAGE_CODE3 ("Serer", srr, srr)
 DEFINE_LANGUAGE_CODE3 ("Shan", shn, shn)
 DEFINE_LANGUAGE_CODE ("Shona", sn, sna, sna)
 DEFINE_LANGUAGE_CODE ("Sichuan Yi", ii, iii, iii)
+DEFINE_LANGUAGE_CODE3 ("Sicilian", scn, scn)
 DEFINE_LANGUAGE_CODE3 ("Sidamo", sid, sid)
+DEFINE_LANGUAGE_CODE3 ("Sign Languages", sgn, sgn)
 DEFINE_LANGUAGE_CODE3 ("Siksika", bla, bla)
 DEFINE_LANGUAGE_CODE ("Sindhi", sd, snd, snd)
-DEFINE_LANGUAGE_CODE ("Sinhalese", si, sin, sin)
+DEFINE_LANGUAGE_CODE ("Sinhala; Sinhalese", si, sin, sin)
 DEFINE_LANGUAGE_CODE3 ("Sino-Tibetan (Other)", sit, sit)
 DEFINE_LANGUAGE_CODE3 ("Siouan languages", sio, sio)
 DEFINE_LANGUAGE_CODE3 ("Skolt Sami", sms, sms)
@@ -391,11 +401,10 @@ DEFINE_LANGUAGE_CODE ("Somali", so, som, som)
 DEFINE_LANGUAGE_CODE3 ("Songhai", son, son)
 DEFINE_LANGUAGE_CODE3 ("Soninke", snk, snk)
 DEFINE_LANGUAGE_CODE3 ("Sorbian languages", wen, wen)
-DEFINE_LANGUAGE_CODE3 ("Sotho, Northern", nso, nso)
 DEFINE_LANGUAGE_CODE ("Sotho, Southern", st, sot, sot)
 DEFINE_LANGUAGE_CODE3 ("South American Indian (Other)", sai, sai)
 DEFINE_LANGUAGE_CODE3 ("Southern Sami", sma, sma)
-DEFINE_LANGUAGE_CODE ("Spanish", es, spa, spa)
+DEFINE_LANGUAGE_CODE ("Spanish; Castilian", es, spa, spa)
 DEFINE_LANGUAGE_CODE3 ("Sukuma", suk, suk)
 DEFINE_LANGUAGE_CODE3 ("Sumerian", sux, sux)
 DEFINE_LANGUAGE_CODE ("Sundanese", su, sun, sun)
@@ -430,21 +439,23 @@ DEFINE_LANGUAGE_CODE ("Tsonga", ts, tso, tso)
 DEFINE_LANGUAGE_CODE ("Tswana", tn, tsn, tsn)
 DEFINE_LANGUAGE_CODE3 ("Tumbuka", tum, tum)
 DEFINE_LANGUAGE_CODE3 ("Tupi languages", tup, tup)
-DEFINE_LANGUAGE_CODE ("Turkish", tr, tur, tur)
 DEFINE_LANGUAGE_CODE3 ("Turkish, Ottoman (1500-1928)", ota, ota)
+DEFINE_LANGUAGE_CODE ("Turkish", tr, tur, tur)
 DEFINE_LANGUAGE_CODE ("Turkmen", tk, tuk, tuk)
 DEFINE_LANGUAGE_CODE3 ("Tuvalu", tvl, tvl)
 DEFINE_LANGUAGE_CODE3 ("Tuvinian", tyv, tyv)
 DEFINE_LANGUAGE_CODE ("Twi", tw, twi, twi)
 DEFINE_LANGUAGE_CODE3 ("Udmurt", udm, udm)
 DEFINE_LANGUAGE_CODE3 ("Ugaritic", uga, uga)
-DEFINE_LANGUAGE_CODE ("Uighur", ug, uig, uig)
+DEFINE_LANGUAGE_CODE ("Uighur; Uyghur", ug, uig, uig)
 DEFINE_LANGUAGE_CODE ("Ukrainian", uk, ukr, ukr)
 DEFINE_LANGUAGE_CODE3 ("Umbundu", umb, umb)
+DEFINE_LANGUAGE_CODE3 ("Undetermined", und, und)
+DEFINE_LANGUAGE_CODE3 ("Upper Sorbian", hsb, hsb)
 DEFINE_LANGUAGE_CODE ("Urdu", ur, urd, urd)
 DEFINE_LANGUAGE_CODE ("Uzbek", uz, uzb, uzb)
 DEFINE_LANGUAGE_CODE3 ("Vai", vai, vai)
-DEFINE_LANGUAGE_CODE3 ("Venda", ven, ven)
+DEFINE_LANGUAGE_CODE ("Venda", ve, ven, ven)
 DEFINE_LANGUAGE_CODE ("Vietnamese", vi, vie, vie)
 DEFINE_LANGUAGE_CODE ("Volapük", vo, vol, vol)
 DEFINE_LANGUAGE_CODE3 ("Votic", vot, vot)
@@ -465,6 +476,6 @@ DEFINE_LANGUAGE_CODE3 ("Yupik languages", ypk, ypk)
 DEFINE_LANGUAGE_CODE3 ("Zande", znd, znd)
 DEFINE_LANGUAGE_CODE3 ("Zapotec", zap, zap)
 DEFINE_LANGUAGE_CODE3 ("Zenaga", zen, zen)
-DEFINE_LANGUAGE_CODE ("Zhuang", za, zha, zha)
+DEFINE_LANGUAGE_CODE ("Zhuang; Chuang", za, zha, zha)
 DEFINE_LANGUAGE_CODE ("Zulu", zu, zul, zul)
 DEFINE_LANGUAGE_CODE3 ("Zuni", zun, zun)
diff --git a/locale/langinfo.h b/locale/langinfo.h
index 15ff950bd5..10c4232918 100644
--- a/locale/langinfo.h
+++ b/locale/langinfo.h
@@ -1,5 +1,5 @@
 /* Access to locale-dependent parameters.
-   Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1995-2002,2003,2004,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -38,7 +38,6 @@ __BEGIN_DECLS
 #define _NL_ITEM_CATEGORY(item)		((int) (item) >> 16)
 #define _NL_ITEM_INDEX(item)		((int) (item) & 0xffff)
 
-
 /* Enumeration of locale items that can be queried with `nl_langinfo'.  */
 enum
 {
@@ -566,6 +565,13 @@ enum
   _NL_NUM
 };
 
+/* This macro produces an item you can pass to `nl_langinfo' or
+   `nl_langinfo_l' to get the name of the locale in use for CATEGORY.  */
+#define _NL_LOCALE_NAME(category)	_NL_ITEM ((category), -1)
+#ifdef __USE_GNU
+# define NL_LOCALE_NAME(category)	_NL_LOCALE_NAME (category)
+#endif
+
 
 /* Return the current locale's value for ITEM.
    If ITEM is invalid, an empty string is returned.
diff --git a/locale/lc-ctype.c b/locale/lc-ctype.c
index 21964b9130..a0a54fbd8d 100644
--- a/locale/lc-ctype.c
+++ b/locale/lc-ctype.c
@@ -1,5 +1,5 @@
 /* Define current locale data for LC_CTYPE category.
-   Copyright (C) 1995,1996,1997,1998,1999,2000,2002,2003
+   Copyright (C) 1995,1996,1997,1998,1999,2000,2002,2003,2005
 	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -102,8 +102,8 @@ compat_symbol (libc, __ctype32_tolower, __ctype32_tolower, GLIBC_2_2);
 compat_symbol (libc, __ctype32_toupper, __ctype32_toupper, GLIBC_2_2);
 
   __ctype_b = current (uint16_t, CLASS, 128);
-  __ctype_toupper = current (uint32_t, TOUPPER, 128);
-  __ctype_tolower = current (uint32_t, TOLOWER, 128);
+  __ctype_toupper = current (int32_t, TOUPPER, 128);
+  __ctype_tolower = current (int32_t, TOLOWER, 128);
   __ctype32_b = current (uint32_t, CLASS32, 0);
   __ctype32_toupper = current (uint32_t, TOUPPER32, 0);
   __ctype32_tolower = current (uint32_t, TOLOWER32, 0);
diff --git a/locale/loadarchive.c b/locale/loadarchive.c
index 80bab9e7c9..d545f17fb5 100644
--- a/locale/loadarchive.c
+++ b/locale/loadarchive.c
@@ -1,5 +1,5 @@
 /* Code to load locale data from the locale archive file.
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -185,9 +185,9 @@ _nl_load_locale_from_archive (int category, const char **namep)
 	    memcpy (__mempcpy (__mempcpy (newname, name, p - name),
 			       normalized_codeset, normlen),
 		    rest, restlen);
-	    free ((char *) normalized_codeset);
 	    name = newname;
 	  }
+	free ((char *) normalized_codeset);
       }
   }
 
diff --git a/locale/loadlocale.c b/locale/loadlocale.c
index 11ece50a22..467dff157a 100644
--- a/locale/loadlocale.c
+++ b/locale/loadlocale.c
@@ -1,5 +1,5 @@
 /* Functions to read locale data files.
-   Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1996-2004, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -52,7 +52,7 @@ static const enum value_type _nl_value_type_##category[] = { NO_PAREN items };
 #include "categories.def"
 #undef DEFINE_CATEGORY
 
-static const enum value_type *_nl_value_types[] =
+static const enum value_type *const _nl_value_types[] =
 {
 #define DEFINE_CATEGORY(category, category_name, items, a) \
   [category] = _nl_value_type_##category,
@@ -198,7 +198,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
 			      + 5 + _nl_category_name_sizes[category] + 1);
       __mempcpy (__mempcpy (__mempcpy (newp, file->filename, filenamelen),
 			    "/SYS_", 5),
-		 _nl_category_names[category],
+		 _nl_category_names.str + _nl_category_name_idxs[category],
 		 _nl_category_name_sizes[category] + 1);
 
       fd = open_not_cancel_2 (newp, O_RDONLY);
diff --git a/locale/localeinfo.h b/locale/localeinfo.h
index 065ee18cf9..4f746a298d 100644
--- a/locale/localeinfo.h
+++ b/locale/localeinfo.h
@@ -1,5 +1,5 @@
 /* Declarations for internal libc locale interfaces
-   Copyright (C) 1995-2001, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1995-2003, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -31,7 +31,10 @@
 #include <intl/loadinfo.h>	/* For loaded_l10nfile definition.  */
 
 /* Magic number at the beginning of a locale data file for CATEGORY.  */
-#define	LIMAGIC(category)	((unsigned int) (0x20031115 ^ (category)))
+#define	LIMAGIC(category) \
+  (category == LC_COLLATE						\
+   ? ((unsigned int) (0x20051014 ^ (category)))				\
+   : ((unsigned int) (0x20031115 ^ (category))))
 
 /* Two special weight constants for the collation data.  */
 #define IGNORE_CHAR	2
@@ -169,8 +172,22 @@ enum
 #define _ISCTYPE(c, desc) \
   (((((const uint32_t *) (desc)) - 8)[(c) >> 5] >> ((c) & 0x1f)) & 1)
 
-extern const char *const _nl_category_names[__LC_LAST] attribute_hidden;
-extern const size_t _nl_category_name_sizes[__LC_LAST] attribute_hidden;
+/* Category name handling variables.  */
+#define CATNAMEMF(line) CATNAMEMF1 (line)
+#define CATNAMEMF1(line) str##line
+extern const union catnamestr_t
+{
+  struct
+  {
+#define DEFINE_CATEGORY(category, category_name, items, a) \
+    char CATNAMEMF (__LINE__)[sizeof (category_name)];
+#include "categories.def"
+#undef DEFINE_CATEGORY
+  };
+  char str[0];
+} _nl_category_names attribute_hidden;
+const uint8_t _nl_category_name_idxs[__LC_LAST] attribute_hidden;
+extern const uint8_t _nl_category_name_sizes[__LC_LAST] attribute_hidden;
 
 /* Name of the standard locales.  */
 extern const char _nl_C_name[] attribute_hidden;
diff --git a/locale/newlocale.c b/locale/newlocale.c
index b646ffeacd..0c31ba48ae 100644
--- a/locale/newlocale.c
+++ b/locale/newlocale.c
@@ -1,5 +1,5 @@
 /* Return a reference to locale information record.
-   Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2004
+   Copyright (C) 1996, 1997, 1999, 2000-2002, 2004, 2005, 2006
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -66,7 +66,7 @@ __newlocale (int category_mask, const char *locale, __locale_t base)
   if (locale == NULL)
     ERROR_RETURN;
 
-  if (base == &_nl_C_locobj)
+  if (base == _nl_C_locobj_ptr)
     /* We're to modify BASE, returned for a previous call with "C".
        We can't really modify the read-only structure, so instead
        start over by copying it.  */
@@ -75,7 +75,7 @@ __newlocale (int category_mask, const char *locale, __locale_t base)
   if ((base == NULL || category_mask == (1 << __LC_LAST) - 1 - (1 << LC_ALL))
       && (category_mask == 0 || !strcmp (locale, "C")))
     /* Asking for the "C" locale needn't allocate a new object.  */
-    return &_nl_C_locobj;
+    return _nl_C_locobj_ptr;
 
   /* Allocate memory for the result.  */
   if (base != NULL)
@@ -133,7 +133,8 @@ __newlocale (int category_mask, const char *locale, __locale_t base)
 	  for (cnt = 0; cnt < __LC_LAST; ++cnt)
 	    if (cnt != LC_ALL
 		&& (size_t) (cp - np) == _nl_category_name_sizes[cnt]
-		&& memcmp (np, _nl_category_names[cnt], cp - np) == 0)
+		&& memcmp (np, (_nl_category_names.str
+				+ _nl_category_name_idxs[cnt]), cp - np) == 0)
 	      break;
 
 	  if (cnt == __LC_LAST)
diff --git a/locale/nl_langinfo.c b/locale/nl_langinfo.c
index 2314b80f0f..c5fbf19e15 100644
--- a/locale/nl_langinfo.c
+++ b/locale/nl_langinfo.c
@@ -1,5 +1,6 @@
 /* User interface for extracting locale-dependent parameters.
-   Copyright (C) 1995,96,97,99,2000,01,02 Free Software Foundation, Inc.
+   Copyright (C) 1995,96,97,99,2000,2001,2002,2005
+	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -45,6 +46,18 @@ nl_langinfo (item)
     /* Bogus category: bogus item.  */
     return (char *) "";
 
+  /* Special case value for NL_LOCALE_NAME (category).
+     This is not a real item index in the string table.  */
+  if (index == _NL_ITEM_INDEX (_NL_LOCALE_NAME (category)))
+    {
+#ifdef USE_IN_EXTENDED_LOCALE_MODEL
+# define THISLOCALE l
+#else
+# define THISLOCALE _NL_CURRENT_LOCALE
+#endif
+      return (char *) THISLOCALE->__names[category];
+    }
+
 #ifdef USE_IN_EXTENDED_LOCALE_MODEL
   data = l->__locales[category];
 #elif defined NL_CURRENT_INDIRECT
diff --git a/locale/programs/3level.h b/locale/programs/3level.h
index ef4ba2bbc0..88f1b49724 100644
--- a/locale/programs/3level.h
+++ b/locale/programs/3level.h
@@ -1,21 +1,19 @@
-/* Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2001, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Bruno Haible <haible@clisp.cons.org>, 2000.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* Construction of sparse 3-level tables.
    See wchar-lookup.h or coll-lookup.h for their structure and the
@@ -204,6 +202,42 @@ CONCAT(TABLE,_iterate) (struct TABLE *t,
 	}
     }
 }
+
+/* GCC ATM seems to do a poor job with pointers to nested functions passed
+   to inlined functions.  Help it a little bit with this hack.  */
+#define wchead_table_iterate(tp, fn) \
+do									      \
+  {									      \
+    struct wchead_table *t = (tp);					      \
+    uint32_t index1;							      \
+    for (index1 = 0; index1 < t->level1_size; index1++)			      \
+      {									      \
+	uint32_t lookup1 = t->level1[index1];				      \
+	if (lookup1 != ((uint32_t) ~0))					      \
+	  {								      \
+	    uint32_t lookup1_shifted = lookup1 << t->q;			      \
+	    uint32_t index2;						      \
+	    for (index2 = 0; index2 < (1 << t->q); index2++)		      \
+	      {								      \
+		uint32_t lookup2 = t->level2[index2 + lookup1_shifted];	      \
+		if (lookup2 != ((uint32_t) ~0))				      \
+		  {							      \
+		    uint32_t lookup2_shifted = lookup2 << t->p;		      \
+		    uint32_t index3;					      \
+		    for (index3 = 0; index3 < (1 << t->p); index3++)	      \
+		      {							      \
+			struct element_t *lookup3			      \
+			  = t->level3[index3 + lookup2_shifted];	      \
+			if (lookup3 != NULL)				      \
+			  fn ((((index1 << t->q) + index2) << t->p) + index3, \
+			      lookup3);					      \
+		      }							      \
+		  }							      \
+	      }								      \
+	  }								      \
+      }									      \
+  } while (0)
+
 #endif
 
 #ifndef NO_FINALIZE
diff --git a/locale/programs/charmap-dir.c b/locale/programs/charmap-dir.c
index 903bd5cabc..07d0cdcfd0 100644
--- a/locale/programs/charmap-dir.c
+++ b/locale/programs/charmap-dir.c
@@ -1,20 +1,18 @@
-/* Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <dirent.h>
 #include <errno.h>
diff --git a/locale/programs/charmap-dir.h b/locale/programs/charmap-dir.h
index 1d07c64ec1..256db8dc35 100644
--- a/locale/programs/charmap-dir.h
+++ b/locale/programs/charmap-dir.h
@@ -1,20 +1,18 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _CHARMAP_DIR_H
 #define _CHARMAP_DIR_H 1
diff --git a/locale/programs/charmap-kw.gperf b/locale/programs/charmap-kw.gperf
index 83da36aa74..64f7452500 100644
--- a/locale/programs/charmap-kw.gperf
+++ b/locale/programs/charmap-kw.gperf
@@ -1,22 +1,20 @@
 %{
-/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,1999,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.org>.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <string.h>
 
diff --git a/locale/programs/charmap-kw.h b/locale/programs/charmap-kw.h
index 089f45d7d8..d7d85774da 100644
--- a/locale/programs/charmap-kw.h
+++ b/locale/programs/charmap-kw.h
@@ -1,27 +1,56 @@
-/* ANSI-C code produced by gperf version 2.7.2 */
-/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N charmap_hash programs/charmap-kw.gperf  */
-/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+/* ANSI-C code produced by gperf version 3.0.1 */
+/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N charmap_hash charmap-kw.gperf  */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 1 "charmap-kw.gperf"
+
+/* Copyright (C) 1995,1996,1997,1998,1999,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.org>.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <string.h>
 
 #include "locfile-token.h"
+#line 23 "charmap-kw.gperf"
 struct keyword_t ;
 
 #define TOTAL_KEYWORDS 17
@@ -47,15 +76,15 @@ hash (register const char *str, register unsigned int len)
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
-      36, 36, 36, 36, 36, 36, 36, 36, 25, 10,
-      15, 20, 36, 36, 36, 36, 36, 36, 36, 36,
-      36, 36, 36, 36, 36, 36, 36, 10,  0,  0,
-       5, 36,  0,  0, 36, 36, 36,  0,  0, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 25, 20,
+      15, 10, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36,  5,  0,  0,
+       5, 36,  0,  0, 36, 36, 36,  5,  0, 36,
        0, 36,  0, 36,  0, 36, 36,  0, 36, 36,
-      36, 36, 36, 36, 36,  0, 36,  0,  0,  0,
-      10,  0, 36,  0,  0,  0, 36, 36, 36,  0,
+      36, 36, 36, 36, 36,  0, 36,  5,  0,  0,
+       5,  0, 36,  5,  0,  0, 36, 36, 36,  0,
        0,  0,  0,  0,  0,  0,  0,  0, 36, 36,
-      25, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+       0, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
@@ -75,17 +104,19 @@ hash (register const char *str, register unsigned int len)
   switch (hval)
     {
       default:
-      case 9:
         hval += asso_values[(unsigned char)str[8]];
+      /*FALLTHROUGH*/
       case 8:
       case 7:
       case 6:
       case 5:
         hval += asso_values[(unsigned char)str[4]];
+      /*FALLTHROUGH*/
       case 4:
       case 3:
       case 2:
         hval += asso_values[(unsigned char)str[1]];
+      /*FALLTHROUGH*/
       case 1:
         hval += asso_values[(unsigned char)str[0]];
         break;
@@ -102,29 +133,46 @@ charmap_hash (register const char *str, register unsigned int len)
   static const struct keyword_t wordlist[] =
     {
       {""}, {""}, {""},
+#line 38 "charmap-kw.gperf"
       {"END",             tok_end,             0},
       {""},
+#line 39 "charmap-kw.gperf"
       {"WIDTH",           tok_width,           0},
+#line 34 "charmap-kw.gperf"
       {"escseq",          tok_escseq,          1},
+#line 36 "charmap-kw.gperf"
       {"include",         tok_include,         1},
       {""}, {""},
+#line 27 "charmap-kw.gperf"
       {"mb_cur_min",      tok_mb_cur_min,      1},
+#line 28 "charmap-kw.gperf"
       {"escape_char",     tok_escape_char,     1},
+#line 29 "charmap-kw.gperf"
       {"comment_char",    tok_comment_char,    1},
+#line 25 "charmap-kw.gperf"
       {"code_set_name",   tok_code_set_name,   1},
+#line 40 "charmap-kw.gperf"
       {"WIDTH_VARIABLE",  tok_width_variable,  0},
-      {"g1esc",           tok_g1esc,           1},
+#line 26 "charmap-kw.gperf"
+      {"mb_cur_max",      tok_mb_cur_max,      1},
+#line 35 "charmap-kw.gperf"
       {"addset",          tok_addset,          1},
+#line 37 "charmap-kw.gperf"
       {"CHARMAP",         tok_charmap,         0},
+#line 41 "charmap-kw.gperf"
       {"WIDTH_DEFAULT",   tok_width_default,   0},
       {""},
-      {"g2esc",           tok_g2esc,           1},
-      {""}, {""}, {""}, {""},
+#line 33 "charmap-kw.gperf"
       {"g3esc",           tok_g3esc,           1},
       {""}, {""}, {""}, {""},
-      {"g0esc",           tok_g0esc,           1},
+#line 32 "charmap-kw.gperf"
+      {"g2esc",           tok_g2esc,           1},
+      {""}, {""}, {""}, {""},
+#line 31 "charmap-kw.gperf"
+      {"g1esc",           tok_g1esc,           1},
       {""}, {""}, {""}, {""},
-      {"mb_cur_max",      tok_mb_cur_max,      1}
+#line 30 "charmap-kw.gperf"
+      {"g0esc",           tok_g0esc,           1}
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c
index 8dbac6f5b9..52a69de4b0 100644
--- a/locale/programs/charmap.c
+++ b/locale/programs/charmap.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996, 1998-2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1998-2004,2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -49,8 +47,9 @@ static void new_width (struct linereader *cmfile, struct charmap_t *result,
 		       const char *from, const char *to,
 		       unsigned long int width);
 static void charmap_new_char (struct linereader *lr, struct charmap_t *cm,
-			      int nbytes, char *bytes, const char *from,
-			      const char *to, int decimal_ellipsis, int step);
+			      size_t nbytes, unsigned char *bytes,
+			      const char *from, const char *to,
+			      int decimal_ellipsis, int step);
 
 
 bool enc_not_ascii_compatible;
@@ -87,7 +86,8 @@ cmlr_open (const char *directory, const char *name, kw_hash_fct_t hf)
 }
 
 struct charmap_t *
-charmap_read (const char *filename, int verbose, int be_quiet, int use_default)
+charmap_read (const char *filename, int verbose, int error_not_found,
+	      int be_quiet, int use_default)
 {
   struct charmap_t *result = NULL;
 
@@ -131,13 +131,11 @@ charmap_read (const char *filename, int verbose, int be_quiet, int use_default)
 	}
 
       if (cmfile != NULL)
-	{
-	  result = parse_charmap (cmfile, verbose, be_quiet);
+	result = parse_charmap (cmfile, verbose, be_quiet);
 
-	  if (result == NULL && !be_quiet)
-	    WITH_CUR_LOCALE (error (0, errno, _("\
+      if (result == NULL && error_not_found)
+	WITH_CUR_LOCALE (error (0, errno, _("\
 character map file `%s' not found"), filename));
-	}
     }
 
   if (result == NULL && filename != NULL && strchr (filename, '/') == NULL)
@@ -927,7 +925,8 @@ charmap_find_value (const struct charmap_t *cm, const char *name, size_t len)
 
 static void
 charmap_new_char (struct linereader *lr, struct charmap_t *cm,
-		  int nbytes, char *bytes, const char *from, const char *to,
+		  size_t nbytes, unsigned char *bytes,
+		  const char *from, const char *to,
 		  int decimal_ellipsis, int step)
 {
   hash_table *ht = &cm->char_table;
diff --git a/locale/programs/charmap.h b/locale/programs/charmap.h
index a4a6d3833b..fd711f2d11 100644
--- a/locale/programs/charmap.h
+++ b/locale/programs/charmap.h
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996-1999, 2001, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1999,2001,2003,2005,2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _CHARMAP_H
 #define _CHARMAP_H
@@ -71,7 +69,8 @@ extern bool enc_not_ascii_compatible;
 
 /* Prototypes for charmap handling functions.  */
 extern struct charmap_t *charmap_read (const char *filename, int verbose,
-				       int be_quiet, int use_default);
+				       int error_not_found, int be_quiet,
+				       int use_default);
 
 /* Return the value stored under the given key in the hashing table.  */
 extern struct charseq *charmap_find_value (const struct charmap_t *charmap,
diff --git a/locale/programs/config.h b/locale/programs/config.h
index 12a921c1cf..6f9bfde903 100644
--- a/locale/programs/config.h
+++ b/locale/programs/config.h
@@ -1,22 +1,20 @@
 /* Configuration for localedef program.
-   Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1995,1996,1997,1998,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _LD_CONFIG_H
 #define _LD_CONFIG_H	1
diff --git a/locale/programs/ld-address.c b/locale/programs/ld-address.c
index 079aa0094d..dac8551071 100644
--- a/locale/programs/ld-address.c
+++ b/locale/programs/ld-address.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2002, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -224,17 +222,29 @@ No definition for %s category found"), "LC_ADDRESS"));
 
   if (address->lang_ab == NULL)
     {
-      if (verbose && ! nothing)
+      if ((cnt == sizeof (iso639) / sizeof (iso639[0])
+	   || iso639[cnt].ab[0] != '\0')
+	  && verbose && ! nothing)
 	WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
 				"LC_ADDRESS", "lang_ab"));
       address->lang_ab = "";
     }
   else if (address->lang_ab[0] == '\0')
     {
-      if (verbose)
+      if ((cnt == sizeof (iso639) / sizeof (iso639[0])
+	   || iso639[cnt].ab[0] != '\0')
+	  && verbose)
 	WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
 				"LC_ADDRESS", "lang_ab"));
     }
+  else if (cnt < sizeof (iso639) / sizeof (iso639[0])
+	   && iso639[cnt].ab[0] == '\0')
+    {
+      WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be defined"),
+			      "LC_ADDRESS", "lang_ab"));
+
+      address->lang_ab = "";
+    }
   else
     {
       if (cnt == sizeof (iso639) / sizeof (iso639[0]))
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index 6d0d03c235..cf1bff130f 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2002, 2003, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -1297,7 +1295,7 @@ order for `%.*s' already defined at %s:%Zu"),
 	    {
 	    invalid_range:
 	      lr_error (ldfile, _("\
-`%s' and `%.*s' are no valid names for symbolic range"),
+`%s' and `%.*s' are not valid names for symbolic range"),
 			startp->name, (int) lento, endp->name);
 	      return;
 	    }
@@ -2469,14 +2467,14 @@ collate_output (struct localedef_t *locale, const struct charmap_t *charmap,
   runp = collate->start;
   while (runp != NULL)
     {
-      if (runp->mbs != NULL && runp->weights != NULL)
+      if (runp->mbs != NULL && runp->weights != NULL && !runp->is_character)
 	/* Yep, the element really counts.  */
 	++elem_size;
 
       runp = runp->next;
     }
   /* Add 40% and find the next prime number.  */
-  elem_size = MIN (next_prime (elem_size * 1.4), 257);
+  elem_size = next_prime (elem_size * 1.4);
 
   /* Allocate the table.  Each entry consists of two words: the hash
      value and an index in a secondary table which provides the index
@@ -2496,18 +2494,20 @@ collate_output (struct localedef_t *locale, const struct charmap_t *charmap,
 	  uint32_t namelen = strlen (runp->name);
 	  uint32_t hash = elem_hash (runp->name, namelen);
 	  size_t idx = hash % elem_size;
+	  size_t start_idx = idx;
 
 	  if (elem_table[idx * 2] != 0)
 	    {
-	      /* The spot is already take.  Try iterating using the value
+	      /* The spot is already taken.  Try iterating using the value
 		 from the secondary hashing function.  */
-	      size_t iter = hash % (elem_size - 2);
+	      size_t iter = hash % (elem_size - 2) + 1;
 
 	      do
 		{
 		  idx += iter;
 		  if (idx >= elem_size)
 		    idx -= elem_size;
+		  assert (idx != start_idx);
 		}
 	      while (elem_table[idx * 2] != 0);
 	    }
@@ -2671,6 +2671,9 @@ collate_read (struct linereader *ldfile, struct localedef_t *result,
 	      if (locfile_read (copy_locale, charmap) != 0)
 		goto skip_category;
 	    }
+
+	  if (copy_locale->categories[LC_COLLATE].collate == NULL)
+	    return;
 	}
 
       lr_ignore_rest (ldfile, 1);
@@ -3065,7 +3068,7 @@ collate_read (struct linereader *ldfile, struct localedef_t *result,
 		  lr_error (ldfile, _("\
 %s: unknown symbol `%s' in equivalent definition"),
 			    "LC_COLLATE", symname);
-		  goto col_sym_free;
+		  goto sym_equiv_free;
 		}
 
 	      if (insert_entry (&collate->sym_table,
@@ -3530,13 +3533,13 @@ error while adding equivalent collating symbol"));
 	      break;
 	    }
 
+	  struct element_t *seqp;
 	  if (state == 0)
 	    {
 	      /* We are outside an `order_start' region.  This means
                  we must only accept definitions of values for
                  collation symbols since these are purely abstract
                  values and don't need directions associated.  */
-	      struct element_t *seqp;
 	      void *ptr;
 
 	      if (find_entry (&collate->seq_table, symstr, symlen, &ptr) == 0)
@@ -3583,7 +3586,6 @@ error while adding equivalent collating symbol"));
 	    {
 	      /* It is possible that we already have this collation sequence.
 		 In this case we move the entry.  */
-	      struct element_t *seqp = NULL;
 	      void *sym;
 	      void *ptr;
 
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index ed8fa919d5..40d5e4b17f 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2006, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -994,8 +992,8 @@ ctype_output (struct localedef_t *locale, const struct charmap_t *charmap,
 		total += iov[2 + elem + offset].iov_len;
 	      }
 	    iov[2 + elem + offset].iov_base = (void *) nulbytes;
-	    iov[2 + elem + offset].iov_len = 1 + (4 - ((total + 1) % 4));
-	    total += 1 + (4 - ((total + 1) % 4));
+	    iov[2 + elem + offset].iov_len = 4 - (total % 4);
+	    total += 4 - (total % 4);
 
 	    idx[elem + 1] = idx[elem] + total;
 	    break;
@@ -1012,8 +1010,8 @@ ctype_output (struct localedef_t *locale, const struct charmap_t *charmap,
 		total += iov[2 + elem + offset].iov_len;
 	      }
 	    iov[2 + elem + offset].iov_base = (void *) nulbytes;
-	    iov[2 + elem + offset].iov_len = 1 + (4 - ((total + 1) % 4));
-	    total += 1 + (4 - ((total + 1) % 4));
+	    iov[2 + elem + offset].iov_len = 4 - (total % 4);
+	    total += 4 - (total % 4);
 
 	    idx[elem + 1] = idx[elem] + total;
 	    break;
@@ -1155,7 +1153,7 @@ ctype_output (struct localedef_t *locale, const struct charmap_t *charmap,
 	    iov[2 + elem + offset].iov_base =
 	      ctype->default_missing ?: (uint32_t *) L"";
 	    iov[2 + elem + offset].iov_len =
-	      wcslen (iov[2 + elem + offset].iov_base);
+	      wcslen (iov[2 + elem + offset].iov_base) * sizeof (uint32_t);
 	    idx[elem + 1] = idx[elem] + iov[2 + elem + offset].iov_len;
 	    break;
 
@@ -1474,7 +1472,7 @@ charclass_symbolic_ellipsis (struct linereader *ldfile,
     {
     invalid_range:
       lr_error (ldfile,
-		_("`%s' and `%.*s' are no valid names for symbolic range"),
+		_("`%s' and `%.*s' are not valid names for symbolic range"),
 		last_str, (int) now->val.str.lenmb, nowstr);
       return;
     }
@@ -1868,6 +1866,9 @@ find_translit (struct localedef_t *locale, const struct charmap_t *charmap,
   assert (locale != NULL);
   ctype = locale->categories[LC_CTYPE].ctype;
 
+  if (ctype == NULL)
+    return NULL;
+
   if (ctype->translit != NULL)
     result = find_translit2 (ctype, charmap, wch);
 
@@ -2247,6 +2248,9 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result,
 	      if (locfile_read (copy_locale, charmap) != 0)
 		goto skip_category;
 	    }
+
+	  if (copy_locale->categories[LC_CTYPE].ctype == NULL)
+	    return;
 	}
 
       lr_ignore_rest (ldfile, 1);
@@ -3768,7 +3772,7 @@ translit_flatten (struct locale_ctype_t *ctype,
 
       other = find_locale (LC_CTYPE, copy_locale, copy_repertoire, charmap);
 
-      if (other == NULL)
+      if (other == NULL || other->categories[LC_CTYPE].ctype == NULL)
 	{
 	  WITH_CUR_LOCALE (error (0, 0, _("\
 %s: transliteration data from locale `%s' not available"),
@@ -3846,9 +3850,14 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap,
     {
       ctype->class_b[nr] = (uint32_t *) xcalloc (256 / 32, sizeof (uint32_t));
 
-      for (idx = 0; idx < 256; ++idx)
-	if (ctype->class256_collection[idx] & _ISbit (nr))
-	  ctype->class_b[nr][idx >> 5] |= (uint32_t)1 << (idx & 0x1f);
+      /* We only set CLASS_B for the bits in the ISO C classes, not
+	 the user defined classes.  The number should not change but
+	 who knows.  */
+#define LAST_ISO_C_BIT 11
+      if (nr <= LAST_ISO_C_BIT)
+	for (idx = 0; idx < 256; ++idx)
+	  if (ctype->class256_collection[idx] & _ISbit (nr))
+	    ctype->class_b[nr][idx >> 5] |= (uint32_t) 1 << (idx & 0x1f);
     }
 
   for (nr = 0; nr < ctype->nr_charclass; nr++)
diff --git a/locale/programs/ld-identification.c b/locale/programs/ld-identification.c
index ae5ea6fb16..d050f7aaa9 100644
--- a/locale/programs/ld-identification.c
+++ b/locale/programs/ld-identification.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-measurement.c b/locale/programs/ld-measurement.c
index e3ec90199e..6a9b847a1a 100644
--- a/locale/programs/ld-measurement.c
+++ b/locale/programs/ld-measurement.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-messages.c b/locale/programs/ld-messages.c
index d5cc393e4b..e98574f130 100644
--- a/locale/programs/ld-messages.c
+++ b/locale/programs/ld-messages.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-monetary.c b/locale/programs/ld-monetary.c
index 868ab6980e..27636d6498 100644
--- a/locale/programs/ld-monetary.c
+++ b/locale/programs/ld-monetary.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-name.c b/locale/programs/ld-name.c
index 80b42f7048..c1153fd51d 100644
--- a/locale/programs/ld-name.c
+++ b/locale/programs/ld-name.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-numeric.c b/locale/programs/ld-numeric.c
index 594c0c8c1b..a901c4d985 100644
--- a/locale/programs/ld-numeric.c
+++ b/locale/programs/ld-numeric.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2002,2005,2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -304,7 +302,7 @@ numeric_read (struct linereader *ldfile, struct localedef_t *result,
 	    {
 	      size_t act = 0;
 	      size_t max = 10;
-	      char *grouping = ignore_content ? NULL : xmalloc (max);
+	      char *grouping = xmalloc (max);
 
 	      do
 		{
@@ -323,24 +321,20 @@ numeric_read (struct linereader *ldfile, struct localedef_t *result,
 		    }
 
 		  if (now->tok == tok_minus1)
-		    {
-		      if (!ignore_content)
-			grouping[act++] = '\177';
-		    }
+		    grouping[act++] = '\177';
 		  else if (now->val.num == 0)
 		    {
 		      /* A value of 0 disables grouping from here on but
 			 we must not store a NUL character since this
 			 terminates the string.  Use something different
 			 which must not be used otherwise.  */
-		      if (!ignore_content)
-			grouping[act++] = '\377';
+		      grouping[act++] = '\377';
 		    }
 		  else if (now->val.num > 126)
 		    lr_error (ldfile, _("\
 %s: values for field `%s' must be smaller than 127"),
 			      "LC_NUMERIC", "grouping");
-		  else if (!ignore_content)
+		  else
 		    grouping[act++] = now->val.num;
 
 		  /* Next must be semicolon.  */
@@ -355,13 +349,10 @@ numeric_read (struct linereader *ldfile, struct localedef_t *result,
 	      if (now->tok != tok_eol)
 		goto err_label;
 
-	      if (!ignore_content)
-		{
-		  grouping[act++] = '\0';
+	      grouping[act++] = '\0';
 
-		  numeric->grouping = xrealloc (grouping, act);
-		  numeric->grouping_len = act;
-		}
+	      numeric->grouping = xrealloc (grouping, act);
+	      numeric->grouping_len = act;
 	    }
 	  break;
 
diff --git a/locale/programs/ld-paper.c b/locale/programs/ld-paper.c
index 2910954f04..38f9af3e60 100644
--- a/locale/programs/ld-paper.c
+++ b/locale/programs/ld-paper.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-telephone.c b/locale/programs/ld-telephone.c
index 5a60c016b0..4075a14f46 100644
--- a/locale/programs/ld-telephone.c
+++ b/locale/programs/ld-telephone.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
index a7dd25c80d..bf5151858a 100644
--- a/locale/programs/ld-time.c
+++ b/locale/programs/ld-time.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -469,10 +467,22 @@ No definition for %s category found"), "LC_TIME"));
 	  wstr = wstr ? wcschr (wstr + 1, L':') : NULL;	/* end offset */
 	  wstr = wstr ? wcschr (wstr + 1, L':') : NULL;	/* end start */
 	  wstr = wstr ? wcschr (wstr + 1, L':') : NULL;	/* end end */
-	  time->era_entries[idx].wname = (uint32_t *) wstr + 1;
-	  wstr = wstr ? wcschr (wstr + 1, L':') : NULL;	/* end name */
-	  *wstr = L'\0';
-	  time->era_entries[idx].wformat = (uint32_t *) wstr + 1;
+	  if (wstr != NULL)
+	    {
+	      time->era_entries[idx].wname = (uint32_t *) wstr + 1;
+	      wstr = wcschr (wstr + 1, L':');	/* end name */
+	      if (wstr != NULL)
+		{
+		  *wstr = L'\0';
+		  time->era_entries[idx].wformat = (uint32_t *) wstr + 1;
+		}
+	      else
+		time->era_entries[idx].wname =
+		  time->era_entries[idx].wformat = (uint32_t *) L"";
+	    }
+	  else
+	    time->era_entries[idx].wname =
+	      time->era_entries[idx].wformat = (uint32_t *) L"";
 	}
     }
 
@@ -532,7 +542,7 @@ time_output (struct localedef_t *locale, const struct charmap_t *charmap,
 			      * (2 + _NL_ITEM_INDEX (_NL_NUM_LC_TIME)
 				 + time->num_era - 1
 				 + 2 * 99
-				 + 2 + time->num_era * 10 - 1));
+				 + 2 + time->num_era * 10));
   struct locale_file data;
   uint32_t idx[_NL_ITEM_INDEX (_NL_NUM_LC_TIME)];
   size_t cnt, last_idx, num, n;
@@ -891,6 +901,12 @@ time_output (struct localedef_t *locale, const struct charmap_t *charmap,
   ++cnt;
   ++last_idx;
 
+  /* We must align the following data.  */
+  iov[2 + cnt].iov_base = (void *) "\0\0";
+  iov[2 + cnt].iov_len = -idx[last_idx] & 3;
+  idx[last_idx] += -idx[last_idx] & 3;
+  ++cnt;
+
   iov[2 + cnt].iov_base = (void *) time->wdate_fmt;
   iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
                           * sizeof (uint32_t));
@@ -906,7 +922,7 @@ time_output (struct localedef_t *locale, const struct charmap_t *charmap,
   assert (cnt == (_NL_ITEM_INDEX (_NL_NUM_LC_TIME)
 		  + time->num_era - 1
 		  + 2 * 99
-		  + 2 + time->num_era * 10 - 1));
+		  + 2 + time->num_era * 10));
   assert (last_idx  == _NL_ITEM_INDEX (_NL_NUM_LC_TIME));
 
   write_locale_data (output_path, LC_TIME, "LC_TIME", 2 + cnt, iov);
diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c
index 233799a87d..6587f7305b 100644
--- a/locale/programs/linereader.c
+++ b/locale/programs/linereader.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -216,12 +214,6 @@ lr_token (struct linereader *lr, const struct charmap_t *charmap,
 	}
       while (isspace (ch));
 
-      if (ch == EOF)
-	{
-	  lr->token.tok = tok_eof;
-	  return &lr->token;
-	};
-
       if (ch != lr->comment_char)
 	break;
 
@@ -347,8 +339,8 @@ get_toplvl_escape (struct linereader *lr)
   /* This is supposed to be a numeric value.  We return the
      numerical value and the number of bytes.  */
   size_t start_idx = lr->idx - 1;
-  char *bytes = lr->token.val.charcode.bytes;
-  int nbytes = 0;
+  unsigned char *bytes = lr->token.val.charcode.bytes;
+  size_t nbytes = 0;
   int ch;
 
   do
diff --git a/locale/programs/linereader.h b/locale/programs/linereader.h
index 27043b2456..d4d7e830a6 100644
--- a/locale/programs/linereader.h
+++ b/locale/programs/linereader.h
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2001, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.org>.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _LINEREADER_H
 #define _LINEREADER_H 1
diff --git a/locale/programs/locale-spec.c b/locale/programs/locale-spec.c
index a1a3aba47f..6ad3d95efe 100644
--- a/locale/programs/locale-spec.c
+++ b/locale/programs/locale-spec.c
@@ -1,22 +1,20 @@
 /* Handle special requests.
-   Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1999, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/locale.c b/locale/programs/locale.c
index adf9944578..a03974e8a1 100644
--- a/locale/programs/locale.c
+++ b/locale/programs/locale.c
@@ -1,22 +1,20 @@
 /* Implementation of the locale program according to POSIX 9945-2.
-   Copyright (C) 1995-1997, 1999-2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1995-1997, 1999-2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -277,7 +275,7 @@ print_version (FILE *stream, struct argp_state *state)
 Copyright (C) %s Free Software Foundation, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2004");
+"), "2006");
   fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
 }
 
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
index 28cb7b316e..9c3acbebcc 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2004, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -245,7 +243,7 @@ main (int argc, char *argv[])
 FATAL: system does not define `_POSIX2_LOCALEDEF'")));
 
   /* Process charmap file.  */
-  charmap = charmap_read (charmap_file, verbose, be_quiet, 1);
+  charmap = charmap_read (charmap_file, verbose, 1, be_quiet, 1);
 
   /* Add the first entry in the locale list.  */
   memset (&global, '\0', sizeof (struct localedef_t));
@@ -290,7 +288,7 @@ cannot write output files to `%s'"), output_path));
     }
   else
     WITH_CUR_LOCALE (error (4, 0, _("\
-no output file produced because warning were issued")));
+no output file produced because warnings were issued")));
 
   /* This exit status is prescribed by POSIX.2 4.35.7.  */
   exit (error_message_count != 0);
@@ -389,7 +387,7 @@ print_version (FILE *stream, struct argp_state *state)
 Copyright (C) %s Free Software Foundation, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2004");
+"), "2006");
   fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
 }
 
@@ -532,7 +530,7 @@ normalize_codeset (codeset, name_len)
 
 
 struct localedef_t *
-add_to_readlist (int locale, const char *name, const char *repertoire_name,
+add_to_readlist (int category, const char *name, const char *repertoire_name,
 		 int generate, struct localedef_t *copy_locale)
 {
   struct localedef_t *runp = locales;
@@ -563,39 +561,39 @@ add_to_readlist (int locale, const char *name, const char *repertoire_name,
     }
 
   if (generate
-      && (runp->needed & (1 << locale)) != 0
-      && (runp->avail & (1 << locale)) == 0)
+      && (runp->needed & (1 << category)) != 0
+      && (runp->avail & (1 << category)) == 0)
     WITH_CUR_LOCALE (error (5, 0, _("\
 circular dependencies between locale definitions")));
 
   if (copy_locale != NULL)
     {
-      if (runp->categories[locale].generic != NULL)
+      if (runp->categories[category].generic != NULL)
 	WITH_CUR_LOCALE (error (5, 0, _("\
 cannot add already read locale `%s' a second time"), name));
       else
-	runp->categories[locale].generic =
-	  copy_locale->categories[locale].generic;
+	runp->categories[category].generic =
+	  copy_locale->categories[category].generic;
     }
 
-  runp->needed |= 1 << locale;
+  runp->needed |= 1 << category;
 
   return runp;
 }
 
 
 struct localedef_t *
-find_locale (int locale, const char *name, const char *repertoire_name,
+find_locale (int category, const char *name, const char *repertoire_name,
 	     const struct charmap_t *charmap)
 {
   struct localedef_t *result;
 
   /* Find the locale, but do not generate it since this would be a bug.  */
-  result = add_to_readlist (locale, name, repertoire_name, 0, NULL);
+  result = add_to_readlist (category, name, repertoire_name, 0, NULL);
 
   assert (result != NULL);
 
-  if ((result->avail & (1 << locale)) == 0
+  if ((result->avail & (1 << category)) == 0
       && locfile_read (result, charmap) != 0)
     WITH_CUR_LOCALE (error (4, errno, _("\
 cannot open locale definition file `%s'"), result->name));
@@ -605,17 +603,17 @@ cannot open locale definition file `%s'"), result->name));
 
 
 struct localedef_t *
-load_locale (int locale, const char *name, const char *repertoire_name,
+load_locale (int category, const char *name, const char *repertoire_name,
 	     const struct charmap_t *charmap, struct localedef_t *copy_locale)
 {
   struct localedef_t *result;
 
   /* Generate the locale if it does not exist.  */
-  result = add_to_readlist (locale, name, repertoire_name, 1, copy_locale);
+  result = add_to_readlist (category, name, repertoire_name, 1, copy_locale);
 
   assert (result != NULL);
 
-  if ((result->avail & (1 << locale)) == 0
+  if ((result->avail & (1 << category)) == 0
       && locfile_read (result, charmap) != 0)
     WITH_CUR_LOCALE (error (4, errno, _("\
 cannot open locale definition file `%s'"), result->name));
diff --git a/locale/programs/localedef.h b/locale/programs/localedef.h
index 41f72860d4..f8cc4ca9c1 100644
--- a/locale/programs/localedef.h
+++ b/locale/programs/localedef.h
@@ -1,22 +1,20 @@
 /* General definitions for localedef(1).
-   Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _LOCALEDEF_H
 #define _LOCALEDEF_H	1
diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
index 1a1c7701d1..5c0d5f18ce 100644
--- a/locale/programs/locarchive.c
+++ b/locale/programs/locarchive.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/locfile-kw.gperf b/locale/programs/locfile-kw.gperf
index 7a9285d97e..efdb9afab9 100644
--- a/locale/programs/locfile-kw.gperf
+++ b/locale/programs/locfile-kw.gperf
@@ -1,22 +1,20 @@
 %{
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <string.h>
 
diff --git a/locale/programs/locfile-kw.h b/locale/programs/locfile-kw.h
index da4a63e033..6ec2134cdd 100644
--- a/locale/programs/locfile-kw.h
+++ b/locale/programs/locfile-kw.h
@@ -1,35 +1,64 @@
-/* ANSI-C code produced by gperf version 2.7.2 */
-/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N locfile_hash programs/locfile-kw.gperf  */
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* ANSI-C code produced by gperf version 3.0.1 */
+/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N locfile_hash locfile-kw.gperf  */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 1 "locfile-kw.gperf"
+
+/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <string.h>
 
 #include "locfile-token.h"
+#line 23 "locfile-kw.gperf"
 struct keyword_t ;
 
 #define TOTAL_KEYWORDS 175
 #define MIN_WORD_LENGTH 3
 #define MAX_WORD_LENGTH 22
 #define MIN_HASH_VALUE 3
-#define MAX_HASH_VALUE 687
-/* maximum key range = 685, duplicates = 0 */
+#define MAX_HASH_VALUE 610
+/* maximum key range = 608, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -43,49 +72,51 @@ hash (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-        5,   0, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688,  15, 688,   0,   0,   0,
-        5,   0,   0,   0, 688, 688,   0, 688,   0,   5,
-      688, 688,  15,   0,   5,  15, 688, 688, 688,   0,
-      688, 688, 688, 688, 688,  75, 688,   0,   0,  65,
-        5,   0,  85,  40,   5, 155, 688,  10, 105, 120,
-      125,  35,   5,  20,   5, 190,   0, 125,  35,  10,
-       30,  35,   0, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+        5,   0, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611,   5, 611,   0,   0,   0,
+        0,   0,  10,   0, 611, 611,   0, 611,   0,   5,
+      611, 611,   0,   0,   0,  10, 611, 611, 611,   0,
+      611, 611, 611, 611, 611,   0, 611, 145, 105,  25,
+       15,   0, 190, 110,  10,  35, 611,   0,  80,  65,
+        5, 130,  40,  50,   5,   0,  10,  35,  50,  20,
+        5,  10,   0, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611
     };
   register int hval = len;
 
   switch (hval)
     {
       default:
-      case 9:
         hval += asso_values[(unsigned char)str[8]];
+      /*FALLTHROUGH*/
       case 8:
       case 7:
       case 6:
       case 5:
         hval += asso_values[(unsigned char)str[4]];
+      /*FALLTHROUGH*/
       case 4:
       case 3:
       case 2:
         hval += asso_values[(unsigned char)str[1]];
+      /*FALLTHROUGH*/
       case 1:
         hval += asso_values[(unsigned char)str[0]];
         break;
@@ -102,314 +133,470 @@ locfile_hash (register const char *str, register unsigned int len)
   static const struct keyword_t wordlist[] =
     {
       {""}, {""}, {""},
+#line 30 "locfile-kw.gperf"
       {"END",                    tok_end,                    0},
-      {""}, {""}, {""},
+      {""}, {""},
+#line 69 "locfile-kw.gperf"
+      {"IGNORE",                 tok_ignore,                 0},
+#line 127 "locfile-kw.gperf"
       {"LC_TIME",                tok_lc_time,                0},
-      {"era",                    tok_era,                    0},
-      {"date",                   tok_date,                   0},
+#line 29 "locfile-kw.gperf"
+      {"LC_CTYPE",               tok_lc_ctype,               0},
+      {""},
+#line 164 "locfile-kw.gperf"
       {"LC_ADDRESS",             tok_lc_address,             0},
+#line 149 "locfile-kw.gperf"
       {"LC_MESSAGES",            tok_lc_messages,            0},
-      {"LC_TELEPHONE",           tok_lc_telephone,           0},
-      {"LC_CTYPE",               tok_lc_ctype,               0},
-      {"era_t_fmt",              tok_era_t_fmt,              0},
-      {"print",                  tok_print,                  0},
-      {"height",                 tok_height,                 0},
+#line 157 "locfile-kw.gperf"
+      {"LC_NAME",                tok_lc_name,                0},
+#line 154 "locfile-kw.gperf"
+      {"LC_PAPER",               tok_lc_paper,               0},
+#line 182 "locfile-kw.gperf"
+      {"LC_MEASUREMENT",         tok_lc_measurement,         0},
+#line 55 "locfile-kw.gperf"
+      {"LC_COLLATE",             tok_lc_collate,             0},
+      {""},
+#line 184 "locfile-kw.gperf"
       {"LC_IDENTIFICATION",      tok_lc_identification,      0},
+#line 197 "locfile-kw.gperf"
+      {"revision",               tok_revision,               0},
+#line 68 "locfile-kw.gperf"
+      {"UNDEFINED",              tok_undefined,              0},
+#line 123 "locfile-kw.gperf"
+      {"LC_NUMERIC",             tok_lc_numeric,             0},
+#line 80 "locfile-kw.gperf"
+      {"LC_MONETARY",            tok_lc_monetary,            0},
+#line 177 "locfile-kw.gperf"
+      {"LC_TELEPHONE",           tok_lc_telephone,           0},
       {""},
-      {"era_d_fmt",              tok_era_d_fmt,              0},
-      {"LC_COLLATE",             tok_lc_collate,             0},
-      {"IGNORE",                 tok_ignore,                 0},
-      {"LC_NAME",                tok_lc_name,                0},
-      {"backward",               tok_backward,               0},
+#line 130 "locfile-kw.gperf"
       {"week",                   tok_week,                   0},
-      {"LC_NUMERIC",             tok_lc_numeric,             0},
+      {""},
+#line 74 "locfile-kw.gperf"
+      {"define",                 tok_define,                 0},
+#line 150 "locfile-kw.gperf"
+      {"yesexpr",                tok_yesexpr,                0},
+#line 139 "locfile-kw.gperf"
+      {"era_year",               tok_era_year,               0},
+      {""},
+#line 53 "locfile-kw.gperf"
+      {"translit_ignore",        tok_translit_ignore,        0},
+#line 152 "locfile-kw.gperf"
+      {"yesstr",                 tok_yesstr,                 0},
+      {""},
+#line 87 "locfile-kw.gperf"
+      {"negative_sign",          tok_negative_sign,          0},
+      {""},
+#line 135 "locfile-kw.gperf"
+      {"t_fmt",                  tok_t_fmt,                  0},
+#line 155 "locfile-kw.gperf"
+      {"height",                 tok_height,                 0},
+      {""}, {""},
+#line 51 "locfile-kw.gperf"
+      {"translit_start",         tok_translit_start,         0},
+#line 134 "locfile-kw.gperf"
+      {"d_fmt",                  tok_d_fmt,                  0},
+      {""},
+#line 52 "locfile-kw.gperf"
+      {"translit_end",           tok_translit_end,           0},
+#line 92 "locfile-kw.gperf"
+      {"n_cs_precedes",          tok_n_cs_precedes,          0},
+#line 142 "locfile-kw.gperf"
+      {"era_t_fmt",              tok_era_t_fmt,              0},
+#line 38 "locfile-kw.gperf"
+      {"space",                  tok_space,                  0},
+#line 71 "locfile-kw.gperf"
       {"reorder-end",            tok_reorder_end,            0},
+#line 72 "locfile-kw.gperf"
+      {"reorder-sections-after", tok_reorder_sections_after, 0},
       {""},
-      {"reorder-after",          tok_reorder_after,          0},
-      {"UNDEFINED",              tok_undefined,              0},
+#line 140 "locfile-kw.gperf"
+      {"era_d_fmt",              tok_era_d_fmt,              0},
+#line 185 "locfile-kw.gperf"
+      {"title",                  tok_title,                  0},
+      {""}, {""},
+#line 147 "locfile-kw.gperf"
+      {"timezone",               tok_timezone,               0},
       {""},
-      {"LC_MONETARY",            tok_lc_monetary,            0},
+#line 73 "locfile-kw.gperf"
+      {"reorder-sections-end",   tok_reorder_sections_end,   0},
+      {""}, {""}, {""},
+#line 93 "locfile-kw.gperf"
+      {"n_sep_by_space",         tok_n_sep_by_space,         0},
+      {""}, {""},
+#line 98 "locfile-kw.gperf"
+      {"int_n_cs_precedes",      tok_int_n_cs_precedes,      0},
+      {""}, {""}, {""},
+#line 25 "locfile-kw.gperf"
+      {"escape_char",            tok_escape_char,            0},
       {""},
+#line 27 "locfile-kw.gperf"
       {"repertoiremap",          tok_repertoiremap,          0},
-      {"LC_MEASUREMENT",         tok_lc_measurement,         0},
-      {""}, {""}, {""},
-      {"LC_PAPER",               tok_lc_paper,               0},
+#line 45 "locfile-kw.gperf"
+      {"charclass",              tok_charclass,              0},
+#line 42 "locfile-kw.gperf"
+      {"print",                  tok_print,                  0},
+#line 43 "locfile-kw.gperf"
+      {"xdigit",                 tok_xdigit,                 0},
+#line 108 "locfile-kw.gperf"
+      {"duo_n_cs_precedes",      tok_duo_n_cs_precedes,      0},
+#line 125 "locfile-kw.gperf"
+      {"thousands_sep",          tok_thousands_sep,          0},
+#line 193 "locfile-kw.gperf"
+      {"territory",              tok_territory,              0},
+#line 35 "locfile-kw.gperf"
+      {"digit",                  tok_digit,                  0},
+      {""}, {""},
+#line 90 "locfile-kw.gperf"
+      {"p_cs_precedes",          tok_p_cs_precedes,          0},
+      {""},
+#line 156 "locfile-kw.gperf"
+      {"width",                  tok_width,                  0},
+#line 61 "locfile-kw.gperf"
+      {"script",                 tok_script,                 0},
+#line 28 "locfile-kw.gperf"
+      {"include",                tok_include,                0},
+      {""},
+#line 77 "locfile-kw.gperf"
+      {"else",                   tok_else,                   0},
+#line 180 "locfile-kw.gperf"
+      {"int_select",             tok_int_select,             0},
       {""}, {""}, {""}, {""},
-      {"day",                    tok_day,                    0},
+#line 32 "locfile-kw.gperf"
+      {"upper",                  tok_upper,                  0},
       {""}, {""},
-      {"yesstr",                 tok_yesstr,                 0},
-      {""}, {""}, {""}, {""}, {""},
-      {"toupper",                tok_toupper,                0},
-      {"era_year",               tok_era_year,               0},
+#line 190 "locfile-kw.gperf"
+      {"tel",                    tok_tel,                    0},
+#line 91 "locfile-kw.gperf"
+      {"p_sep_by_space",         tok_p_sep_by_space,         0},
       {""}, {""},
-      {"order_start",            tok_order_start,            0},
-      {"tolower",                tok_tolower,                0},
+#line 96 "locfile-kw.gperf"
+      {"int_p_cs_precedes",      tok_int_p_cs_precedes,      0},
       {""}, {""},
-      {"graph",                  tok_graph,                  0},
+#line 40 "locfile-kw.gperf"
+      {"punct",                  tok_punct,                  0},
+      {""}, {""},
+#line 99 "locfile-kw.gperf"
+      {"int_n_sep_by_space",     tok_int_n_sep_by_space,     0},
       {""}, {""}, {""},
-      {"order_end",              tok_order_end,              0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 106 "locfile-kw.gperf"
+      {"duo_p_cs_precedes",      tok_duo_p_cs_precedes,      0},
+      {""}, {""},
+#line 46 "locfile-kw.gperf"
+      {"class",                  tok_class,                  0},
+#line 112 "locfile-kw.gperf"
+      {"duo_int_n_cs_precedes",  tok_duo_int_n_cs_precedes,  0},
+#line 113 "locfile-kw.gperf"
+      {"duo_int_n_sep_by_space", tok_duo_int_n_sep_by_space, 0},
+#line 109 "locfile-kw.gperf"
+      {"duo_n_sep_by_space",     tok_duo_n_sep_by_space,     0},
+#line 117 "locfile-kw.gperf"
+      {"duo_int_n_sign_posn",    tok_duo_int_n_sign_posn,    0},
+      {""}, {""}, {""},
+#line 47 "locfile-kw.gperf"
+      {"charconv",               tok_charconv,               0},
+      {""}, {""},
+#line 183 "locfile-kw.gperf"
+      {"measurement",            tok_measurement,            0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 57 "locfile-kw.gperf"
+      {"section-symbol",         tok_section_symbol,         0},
+#line 181 "locfile-kw.gperf"
+      {"int_prefix",             tok_int_prefix,             0},
+      {""}, {""}, {""}, {""},
+#line 137 "locfile-kw.gperf"
+      {"t_fmt_ampm",             tok_t_fmt_ampm,             0},
+      {""}, {""},
+#line 97 "locfile-kw.gperf"
+      {"int_p_sep_by_space",     tok_int_p_sep_by_space,     0},
       {""},
-      {"abday",                  tok_abday,                  0},
+#line 41 "locfile-kw.gperf"
+      {"graph",                  tok_graph,                  0},
+      {""}, {""},
+#line 124 "locfile-kw.gperf"
+      {"decimal_point",          tok_decimal_point,          0},
+      {""}, {""},
+#line 110 "locfile-kw.gperf"
+      {"duo_int_p_cs_precedes",  tok_duo_int_p_cs_precedes,  0},
+#line 111 "locfile-kw.gperf"
+      {"duo_int_p_sep_by_space", tok_duo_int_p_sep_by_space, 0},
+#line 107 "locfile-kw.gperf"
+      {"duo_p_sep_by_space",     tok_duo_p_sep_by_space,     0},
+#line 116 "locfile-kw.gperf"
+      {"duo_int_p_sign_posn",    tok_duo_int_p_sign_posn,    0},
+#line 153 "locfile-kw.gperf"
+      {"nostr",                  tok_nostr,                  0},
+      {""}, {""},
+#line 138 "locfile-kw.gperf"
+      {"era",                    tok_era,                    0},
       {""},
-      {"yesexpr",                tok_yesexpr,                0},
+#line 82 "locfile-kw.gperf"
+      {"currency_symbol",        tok_currency_symbol,        0},
+      {""},
+#line 163 "locfile-kw.gperf"
+      {"name_ms",                tok_name_ms,                0},
+#line 161 "locfile-kw.gperf"
+      {"name_mrs",               tok_name_mrs,               0},
+#line 162 "locfile-kw.gperf"
+      {"name_miss",              tok_name_miss,              0},
+#line 81 "locfile-kw.gperf"
+      {"int_curr_symbol",        tok_int_curr_symbol,        0},
+#line 186 "locfile-kw.gperf"
+      {"source",                 tok_source,                 0},
+#line 160 "locfile-kw.gperf"
+      {"name_mr",                tok_name_mr,                0},
+#line 159 "locfile-kw.gperf"
+      {"name_gen",               tok_name_gen,               0},
+#line 198 "locfile-kw.gperf"
+      {"date",                   tok_date,                   0},
       {""}, {""},
-      {"t_fmt",                  tok_t_fmt,                  0},
-      {""}, {""}, {""}, {""},
-      {"d_fmt",                  tok_d_fmt,                  0},
+#line 187 "locfile-kw.gperf"
+      {"address",                tok_address,                0},
+#line 158 "locfile-kw.gperf"
+      {"name_fmt",               tok_name_fmt,               0},
+#line 31 "locfile-kw.gperf"
+      {"copy",                   tok_copy,                   0},
       {""}, {""},
+#line 49 "locfile-kw.gperf"
+      {"tolower",                tok_tolower,                0},
+#line 129 "locfile-kw.gperf"
+      {"day",                    tok_day,                    0},
+#line 103 "locfile-kw.gperf"
+      {"duo_currency_symbol",    tok_duo_currency_symbol,    0},
+#line 101 "locfile-kw.gperf"
+      {"int_n_sign_posn",        tok_int_n_sign_posn,        0},
+      {""}, {""},
+#line 148 "locfile-kw.gperf"
       {"date_fmt",               tok_date_fmt,               0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"grouping",               tok_grouping,               0},
+#line 63 "locfile-kw.gperf"
+      {"order_end",              tok_order_end,              0},
       {""}, {""},
-      {"tel_dom_fmt",            tok_tel_dom_fmt,            0},
-      {""}, {""}, {""}, {""},
-      {"era_d_t_fmt",            tok_era_d_t_fmt,            0},
-      {"contact",                tok_contact,                0},
-      {"tel",                    tok_tel,                    0},
-      {"else",                   tok_else,                   0},
-      {"alpha",                  tok_alpha,                  0},
-      {"country_ab3",            tok_country_ab3,            0},
-      {""}, {""}, {""}, {""},
-      {"country_ab2",            tok_country_ab2,            0},
-      {"country_post",           tok_country_post,           0},
-      {"fax",                    tok_fax,                    0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"map",                    tok_map,                    0},
-      {""},
-      {"blank",                  tok_blank,                  0},
+#line 166 "locfile-kw.gperf"
+      {"country_name",           tok_country_name,           0},
+#line 70 "locfile-kw.gperf"
+      {"reorder-after",          tok_reorder_after,          0},
+#line 118 "locfile-kw.gperf"
+      {"uno_valid_from",         tok_uno_valid_from,         0},
+#line 115 "locfile-kw.gperf"
+      {"duo_n_sign_posn",        tok_duo_n_sign_posn,        0},
+#line 151 "locfile-kw.gperf"
+      {"noexpr",                 tok_noexpr,                 0},
       {""},
-      {"forward",                tok_forward,                0},
+#line 194 "locfile-kw.gperf"
       {"audience",               tok_audience,               0},
       {""},
-      {"punct",                  tok_punct,                  0},
-      {"define",                 tok_define,                 0},
-      {"abbreviation",           tok_abbreviation,           0},
-      {""},
-      {"copy",                   tok_copy,                   0},
-      {""}, {""}, {""},
-      {"decimal_point",          tok_decimal_point,          0},
+#line 44 "locfile-kw.gperf"
+      {"blank",                  tok_blank,                  0},
       {""},
-      {"upper",                  tok_upper,                  0},
-      {""}, {""},
-      {"category",               tok_category,               0},
+#line 48 "locfile-kw.gperf"
+      {"toupper",                tok_toupper,                0},
+#line 67 "locfile-kw.gperf"
+      {"position",               tok_position,               0},
+#line 120 "locfile-kw.gperf"
+      {"duo_valid_from",         tok_duo_valid_from,         0},
+#line 39 "locfile-kw.gperf"
+      {"cntrl",                  tok_cntrl,                  0},
       {""},
-      {"conversion_rate",        tok_conversion_rate,        0},
+#line 26 "locfile-kw.gperf"
+      {"comment_char",           tok_comment_char,           0},
+#line 86 "locfile-kw.gperf"
+      {"positive_sign",          tok_positive_sign,          0},
       {""}, {""}, {""}, {""},
-      {"lower",                  tok_lower,                  0},
-      {""},
-      {"collating-element",      tok_collating_element,      0},
-      {"duo_p_sep_by_space",     tok_duo_p_sep_by_space,     0},
-      {""},
-      {"title",                  tok_title,                  0},
+#line 132 "locfile-kw.gperf"
+      {"mon",                    tok_mon,                    0},
       {""}, {""},
-      {"timezone",               tok_timezone,               0},
+#line 171 "locfile-kw.gperf"
+      {"country_car",            tok_country_car,            0},
       {""},
-      {"digit",                  tok_digit,                  0},
-      {""}, {""}, {""}, {""},
-      {"postal_fmt",             tok_postal_fmt,             0},
+#line 60 "locfile-kw.gperf"
+      {"symbol-equivalence",     tok_symbol_equivalence,     0},
+#line 102 "locfile-kw.gperf"
+      {"duo_int_curr_symbol",    tok_duo_int_curr_symbol,    0},
+#line 100 "locfile-kw.gperf"
+      {"int_p_sign_posn",        tok_int_p_sign_posn,        0},
+      {""}, {""}, {""}, {""}, {""}, {""},
+#line 172 "locfile-kw.gperf"
+      {"country_isbn",           tok_country_isbn,           0},
+#line 36 "locfile-kw.gperf"
+      {"outdigit",               tok_outdigit,               0},
+      {""},
+#line 114 "locfile-kw.gperf"
+      {"duo_p_sign_posn",        tok_duo_p_sign_posn,        0},
       {""},
+#line 133 "locfile-kw.gperf"
       {"d_t_fmt",                tok_d_t_fmt,                0},
-      {"position",               tok_position,               0},
-      {"p_sep_by_space",         tok_p_sep_by_space,         0},
-      {"nostr",                  tok_nostr,                  0},
-      {"noexpr",                 tok_noexpr,                 0},
+      {""}, {""},
+#line 33 "locfile-kw.gperf"
+      {"lower",                  tok_lower,                  0},
       {""},
-      {"charconv",               tok_charconv,               0},
+#line 167 "locfile-kw.gperf"
+      {"country_post",           tok_country_post,           0},
+#line 146 "locfile-kw.gperf"
+      {"cal_direction",          tok_cal_direction,          0},
       {""},
-      {"width",                  tok_width,                  0},
-      {"country_car",            tok_country_car,            0},
-      {"comment_char",           tok_comment_char,           0},
-      {""}, {""}, {""}, {""},
-      {"lang_ab",                tok_lang_ab,                0},
-      {"lang_lib",               tok_lang_lib,               0},
+#line 189 "locfile-kw.gperf"
+      {"email",                  tok_email,                  0},
+#line 141 "locfile-kw.gperf"
+      {"era_d_t_fmt",            tok_era_d_t_fmt,            0},
+      {""}, {""},
+#line 173 "locfile-kw.gperf"
       {"lang_name",              tok_lang_name,              0},
-      {""}, {""}, {""}, {""},
-      {"elif",                   tok_elif,                   0},
       {""},
-      {"xdigit",                 tok_xdigit,                 0},
+#line 179 "locfile-kw.gperf"
+      {"tel_dom_fmt",            tok_tel_dom_fmt,            0},
       {""}, {""}, {""},
-      {"space",                  tok_space,                  0},
-      {""},
-      {"address",                tok_address,                0},
+#line 54 "locfile-kw.gperf"
+      {"default_missing",        tok_default_missing,        0},
+#line 89 "locfile-kw.gperf"
+      {"frac_digits",            tok_frac_digits,            0},
+      {""}, {""}, {""},
+#line 88 "locfile-kw.gperf"
+      {"int_frac_digits",        tok_int_frac_digits,        0},
+#line 170 "locfile-kw.gperf"
+      {"country_num",            tok_country_num,            0},
+#line 119 "locfile-kw.gperf"
+      {"uno_valid_to",           tok_uno_valid_to,           0},
       {""}, {""}, {""}, {""}, {""},
-      {"name_fmt",               tok_name_fmt,               0},
-      {""},
-      {"t_fmt_ampm",             tok_t_fmt_ampm,             0},
-      {""},
-      {"name_mr",                tok_name_mr,                0},
-      {""},
-      {"from",                   tok_from,                   0},
+#line 50 "locfile-kw.gperf"
+      {"map",                    tok_map,                    0},
       {""},
-      {"escape_char",            tok_escape_char,            0},
+#line 105 "locfile-kw.gperf"
+      {"duo_frac_digits",        tok_duo_frac_digits,        0},
+#line 178 "locfile-kw.gperf"
+      {"tel_int_fmt",            tok_tel_int_fmt,            0},
+#line 121 "locfile-kw.gperf"
       {"duo_valid_to",           tok_duo_valid_to,           0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"reorder-sections-end",   tok_reorder_sections_end,   0},
+#line 144 "locfile-kw.gperf"
+      {"first_weekday",          tok_first_weekday,          0},
       {""},
-      {"reorder-sections-after", tok_reorder_sections_after, 0},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"territory",              tok_territory,              0},
+#line 143 "locfile-kw.gperf"
+      {"alt_digits",             tok_alt_digits,             0},
+#line 95 "locfile-kw.gperf"
+      {"n_sign_posn",            tok_n_sign_posn,            0},
+#line 84 "locfile-kw.gperf"
+      {"mon_thousands_sep",      tok_mon_thousands_sep,      0},
+#line 145 "locfile-kw.gperf"
+      {"first_workday",          tok_first_workday,          0},
+#line 64 "locfile-kw.gperf"
+      {"from",                   tok_from,                   0},
+#line 131 "locfile-kw.gperf"
+      {"abmon",                  tok_abmon,                  0},
       {""}, {""},
-      {"country_name",           tok_country_name,           0},
+#line 192 "locfile-kw.gperf"
       {"language",               tok_language,               0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""},
-      {"tel_int_fmt",            tok_tel_int_fmt,            0},
-      {"mon_grouping",           tok_mon_grouping,           0},
-      {"positive_sign",          tok_positive_sign,          0},
+      {""}, {""},
+#line 195 "locfile-kw.gperf"
+      {"application",            tok_application,            0},
       {""},
-      {"abmon",                  tok_abmon,                  0},
-      {"measurement",            tok_measurement,            0},
-      {""}, {""}, {""},
+#line 126 "locfile-kw.gperf"
+      {"grouping",               tok_grouping,               0},
+#line 78 "locfile-kw.gperf"
+      {"elif",                   tok_elif,                   0},
+#line 128 "locfile-kw.gperf"
+      {"abday",                  tok_abday,                  0},
+      {""},
+#line 196 "locfile-kw.gperf"
+      {"abbreviation",           tok_abbreviation,           0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 56 "locfile-kw.gperf"
       {"coll_weight_max",        tok_coll_weight_max,        0},
-      {"collating-symbol",       tok_collating_symbol,       0},
-      {""}, {""}, {""}, {""},
-      {"script",                 tok_script,                 0},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"cal_direction",          tok_cal_direction,          0},
-      {""}, {""}, {""}, {""},
-      {"duo_n_sep_by_space",     tok_duo_n_sep_by_space,     0},
-      {""}, {""}, {""}, {""},
-      {"mon",                    tok_mon,                    0},
-      {"translit_start",         tok_translit_start,         0},
-      {"translit_ignore",        tok_translit_ignore,        0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 66 "locfile-kw.gperf"
+      {"backward",               tok_backward,               0},
+#line 104 "locfile-kw.gperf"
+      {"duo_int_frac_digits",    tok_duo_int_frac_digits,    0},
       {""},
-      {"translit_end",           tok_translit_end,           0},
-      {"first_weekday",          tok_first_weekday,          0},
-      {""}, {""},
+#line 94 "locfile-kw.gperf"
       {"p_sign_posn",            tok_p_sign_posn,            0},
       {""},
-      {"first_workday",          tok_first_workday,          0},
-      {"n_sep_by_space",         tok_n_sep_by_space,         0},
+#line 199 "locfile-kw.gperf"
+      {"category",               tok_category,               0},
       {""},
-      {"source",                 tok_source,                 0},
-      {"mon_decimal_point",      tok_mon_decimal_point,      0},
-      {"symbol-equivalence",     tok_symbol_equivalence,     0},
+#line 122 "locfile-kw.gperf"
+      {"conversion_rate",        tok_conversion_rate,        0},
       {""},
-      {"endif",                  tok_endif,                  0},
+#line 83 "locfile-kw.gperf"
+      {"mon_decimal_point",      tok_mon_decimal_point,      0},
       {""}, {""}, {""},
-      {"duo_valid_from",         tok_duo_valid_from,         0},
-      {"default_missing",        tok_default_missing,        0},
-      {""}, {""},
-      {"int_p_sep_by_space",     tok_int_p_sep_by_space,     0},
-      {""},
-      {"alt_digits",             tok_alt_digits,             0},
+#line 62 "locfile-kw.gperf"
+      {"order_start",            tok_order_start,            0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""},
-      {"duo_int_p_sep_by_space", tok_duo_int_p_sep_by_space, 0},
-      {""}, {""},
-      {"duo_p_sign_posn",        tok_duo_p_sign_posn,        0},
-      {""}, {""}, {""},
-      {"duo_currency_symbol",    tok_duo_currency_symbol,    0},
+#line 188 "locfile-kw.gperf"
+      {"contact",                tok_contact,                0},
       {""}, {""}, {""},
-      {"outdigit",               tok_outdigit,               0},
-      {""}, {""}, {""}, {""},
-      {"revision",               tok_revision,               0},
+#line 169 "locfile-kw.gperf"
+      {"country_ab3",            tok_country_ab3,            0},
       {""}, {""}, {""}, {""},
-      {"name_gen",               tok_name_gen,               0},
-      {""},
-      {"email",                  tok_email,                  0},
-      {""},
-      {"uno_valid_to",           tok_uno_valid_to,           0},
-      {"negative_sign",          tok_negative_sign,          0},
+#line 168 "locfile-kw.gperf"
+      {"country_ab2",            tok_country_ab2,            0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-      {"alnum",                  tok_alnum,                  0},
-      {""}, {""}, {""}, {""}, {""},
-      {"country_num",            tok_country_num,            0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"am_pm",                  tok_am_pm,                  0},
       {""},
-      {"mon_thousands_sep",      tok_mon_thousands_sep,      0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"currency_symbol",        tok_currency_symbol,        0},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"country_isbn",           tok_country_isbn,           0},
-      {""}, {""}, {""}, {""},
-      {"name_ms",                tok_name_ms,                0},
-      {"name_mrs",               tok_name_mrs,               0},
+#line 174 "locfile-kw.gperf"
+      {"lang_ab",                tok_lang_ab,                0},
+#line 176 "locfile-kw.gperf"
+      {"lang_lib",               tok_lang_lib,               0},
       {""}, {""}, {""}, {""},
-      {"thousands_sep",          tok_thousands_sep,          0},
-      {""},
-      {"cntrl",                  tok_cntrl,                  0},
-      {""}, {""}, {""}, {""}, {""},
-      {"n_sign_posn",            tok_n_sign_posn,            0},
-      {"include",                tok_include,                0},
-      {""}, {""},
-      {"ifdef",                  tok_ifdef,                  0},
+#line 191 "locfile-kw.gperf"
+      {"fax",                    tok_fax,                    0},
       {""},
-      {"duo_p_cs_precedes",      tok_duo_p_cs_precedes,      0},
+#line 136 "locfile-kw.gperf"
+      {"am_pm",                  tok_am_pm,                  0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""},
-      {"p_cs_precedes",          tok_p_cs_precedes,          0},
-      {"uno_valid_from",         tok_uno_valid_from,         0},
-      {"undef",                  tok_undef,                  0},
-      {""}, {""},
-      {"int_n_sep_by_space",     tok_int_n_sep_by_space,     0},
+#line 37 "locfile-kw.gperf"
+      {"alnum",                  tok_alnum,                  0},
+      {""}, {""}, {""},
+#line 175 "locfile-kw.gperf"
       {"lang_term",              tok_lang_term,              0},
-      {""}, {""},
-      {"duo_int_n_sep_by_space", tok_duo_int_n_sep_by_space, 0},
-      {""},
-      {"duo_int_p_sign_posn",    tok_duo_int_p_sign_posn,    0},
-      {"duo_n_sign_posn",        tok_duo_n_sign_posn,        0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"application",            tok_application,            0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""},
-      {"int_p_sign_posn",        tok_int_p_sign_posn,        0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"duo_int_curr_symbol",    tok_duo_int_curr_symbol,    0},
-      {""}, {""}, {""}, {""}, {""},
-      {"int_prefix",             tok_int_prefix,             0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 79 "locfile-kw.gperf"
+      {"endif",                  tok_endif,                  0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""},
-      {"duo_frac_digits",        tok_duo_frac_digits,        0},
-      {""}, {""}, {""}, {""}, {""},
-      {"duo_int_p_cs_precedes",  tok_duo_int_p_cs_precedes,  0},
+#line 165 "locfile-kw.gperf"
+      {"postal_fmt",             tok_postal_fmt,             0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
-      {"frac_digits",            tok_frac_digits,            0},
-      {""}, {""},
-      {"charclass",              tok_charclass,              0},
+      {""}, {""}, {""}, {""}, {""}, {""},
+#line 75 "locfile-kw.gperf"
+      {"undef",                  tok_undef,                  0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""},
-      {"duo_n_cs_precedes",      tok_duo_n_cs_precedes,      0},
-      {""}, {""},
-      {"int_curr_symbol",        tok_int_curr_symbol,        0},
       {""}, {""},
-      {"n_cs_precedes",          tok_n_cs_precedes,          0},
-      {""},
-      {"int_select",             tok_int_select,             0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"duo_int_n_sign_posn",    tok_duo_int_n_sign_posn,    0},
-      {"class",                  tok_class,                  0},
+#line 58 "locfile-kw.gperf"
+      {"collating-element",      tok_collating_element,      0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-      {"int_p_cs_precedes",      tok_int_p_cs_precedes,      0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""},
-      {"duo_int_frac_digits",    tok_duo_int_frac_digits,    0},
-      {""}, {""}, {""}, {""}, {""},
-      {"int_n_sign_posn",        tok_int_n_sign_posn,        0},
-      {""}, {""}, {""},
-      {"name_miss",              tok_name_miss,              0},
+#line 85 "locfile-kw.gperf"
+      {"mon_grouping",           tok_mon_grouping,           0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+#line 65 "locfile-kw.gperf"
+      {"forward",                tok_forward,                0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 59 "locfile-kw.gperf"
+      {"collating-symbol",       tok_collating_symbol,       0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""},
-      {"duo_int_n_cs_precedes",  tok_duo_int_n_cs_precedes,  0},
+#line 34 "locfile-kw.gperf"
+      {"alpha",                  tok_alpha,                  0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""},
-      {"int_frac_digits",        tok_int_frac_digits,        0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"section-symbol",         tok_section_symbol,         0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""},
-      {"int_n_cs_precedes",      tok_int_n_cs_precedes,      0}
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 76 "locfile-kw.gperf"
+      {"ifdef",                  tok_ifdef,                  0}
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
diff --git a/locale/programs/locfile-token.h b/locale/programs/locfile-token.h
index cada206655..beb979c632 100644
--- a/locale/programs/locfile-token.h
+++ b/locale/programs/locfile-token.h
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _TOKEN_H
 #define _TOKEN_H
diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c
index 1d3276a6bf..ae8ce73ce4 100644
--- a/locale/programs/locfile.c
+++ b/locale/programs/locfile.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2004, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -157,10 +155,11 @@ argument to `%s' must be a single character"),
 
 	  if (repertoire_name == NULL)
 	    {
-	      repertoire_name = memcpy (xmalloc (arg->val.str.lenmb + 1),
-					arg->val.str.startmb,
-					arg->val.str.lenmb);
-	      ((char *) repertoire_name)[arg->val.str.lenmb] = '\0';
+	      char *newp = alloca (arg->val.str.lenmb + 1);
+
+	      *((char *) mempcpy (newp, arg->val.str.startmb,
+				  arg->val.str.lenmb)) = '\0';
+	      repertoire_name = newp;
 	    }
 	  break;
 
diff --git a/locale/programs/locfile.h b/locale/programs/locfile.h
index db34f462e3..f6290f0ee0 100644
--- a/locale/programs/locfile.h
+++ b/locale/programs/locfile.h
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2001, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _LOCFILE_H
 #define _LOCFILE_H	1
diff --git a/locale/programs/repertoire.c b/locale/programs/repertoire.c
index 933b88f5cd..e9bdf9e7ba 100644
--- a/locale/programs/repertoire.c
+++ b/locale/programs/repertoire.c
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998,1999,2000,2001,2002,2004 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2002,2004,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -330,7 +328,7 @@ argument to <%s> must be a single character"),
 
   if (tsearch (result, &known, &repertoire_compare) == NULL)
     /* Something went wrong.  */
-    WITH_CUR_LOCALE (error (0, errno, _("cannot safe new repertoire map")));
+    WITH_CUR_LOCALE (error (0, errno, _("cannot save new repertoire map")));
 
   return result;
 }
diff --git a/locale/programs/repertoire.h b/locale/programs/repertoire.h
index d463c81690..75877044ca 100644
--- a/locale/programs/repertoire.h
+++ b/locale/programs/repertoire.h
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _REPERTOIREMAP_H
 #define _REPERTOIREMAP_H	1
diff --git a/locale/programs/simple-hash.c b/locale/programs/simple-hash.c
index c319068677..de8998cc7a 100644
--- a/locale/programs/simple-hash.c
+++ b/locale/programs/simple-hash.c
@@ -1,22 +1,20 @@
 /* Implement simple hashing table with string based keys.
-   Copyright (C) 1994-1997, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, October 1994.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -148,13 +146,13 @@ insert_entry_2 (htab, key, keylen, hval, idx, data)
   if ((hash_entry *) htab->first == NULL)
     {
       table[idx].next = &table[idx];
-      *(hash_entry **) &htab->first = &table[idx];
+      htab->first = &table[idx];
     }
   else
     {
       table[idx].next = ((hash_entry *) htab->first)->next;
       ((hash_entry *) htab->first)->next = &table[idx];
-      *(hash_entry **) &htab->first = &table[idx];
+      htab->first = &table[idx];
     }
 
   ++htab->filled;
diff --git a/locale/programs/simple-hash.h b/locale/programs/simple-hash.h
index 469caedc19..7261ebc396 100644
--- a/locale/programs/simple-hash.h
+++ b/locale/programs/simple-hash.h
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-1999, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2001, 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _SIMPLE_HASH_H
 #define _SIMPLE_HASH_H
diff --git a/locale/programs/xmalloc.c b/locale/programs/xmalloc.c
index 9f3c2c1cd1..a95dc5a40f 100644
--- a/locale/programs/xmalloc.c
+++ b/locale/programs/xmalloc.c
@@ -1,21 +1,20 @@
 /* xmalloc.c -- malloc with out of memory checking
-   Copyright (C) 1990,91,92,93,94,95,96,97,2004 Free Software Foundation, Inc.
+   Copyright (C) 1990,91,92,93,94,95,96,97,2004,2005
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 #include <config.h>
diff --git a/locale/programs/xstrdup.c b/locale/programs/xstrdup.c
index 7838d201ab..12fb3a8287 100644
--- a/locale/programs/xstrdup.c
+++ b/locale/programs/xstrdup.c
@@ -1,21 +1,19 @@
 /* xstrdup.c -- copy a string with out of memory checking
-   Copyright (C) 1990, 1996, 1997, 1999, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1990,1996,1997,1999,2004,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/setlocale.c b/locale/setlocale.c
index e6db70d4c7..c1b8c3faec 100644
--- a/locale/setlocale.c
+++ b/locale/setlocale.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1995-2000, 2002, 2003, 2004
+/* Copyright (C) 1991, 1992, 1995-2000, 2002, 2003, 2004, 2006
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -66,18 +66,27 @@ static char *const _nl_current_used[] =
 #endif
 
 
-/* Define an array of category names (also the environment variable names),
-   indexed by integral category.  */
-const char *const _nl_category_names[] =
+/* Define an array of category names (also the environment variable names).  */
+const union catnamestr_t _nl_category_names attribute_hidden =
   {
+    {
 #define DEFINE_CATEGORY(category, category_name, items, a) \
-    [category] = category_name,
+      category_name,
 #include "categories.def"
-#undef	DEFINE_CATEGORY
-    [LC_ALL] = "LC_ALL"
+#undef DEFINE_CATEGORY
+    }
+  };
+
+const uint8_t _nl_category_name_idxs[__LC_LAST] attribute_hidden =
+  {
+#define DEFINE_CATEGORY(category, category_name, items, a) \
+    [category] = offsetof (union catnamestr_t, CATNAMEMF (__LINE__)),
+#include "categories.def"
+#undef DEFINE_CATEGORY
   };
+
 /* An array of their lengths, for convenience.  */
-const size_t _nl_category_name_sizes[] =
+const uint8_t _nl_category_name_sizes[] attribute_hidden =
   {
 #define DEFINE_CATEGORY(category, category_name, items, a) \
     [category] = sizeof (category_name) - 1,
@@ -173,7 +182,7 @@ new_composite_name (int category, const char *newnames[__LC_LAST])
 	const char *name = (category == LC_ALL ? newnames[i] :
 			    category == i ? newnames[0] :
 			    _nl_global_locale.__names[i]);
-	p = __stpcpy (p, _nl_category_names[i]);
+	p = __stpcpy (p, _nl_category_names.str + _nl_category_name_idxs[i]);
 	*p++ = '=';
 	p = __stpcpy (p, name);
 	*p++ = ';';
@@ -275,7 +284,9 @@ setlocale (int category, const char *locale)
 	      for (cnt = 0; cnt < __LC_LAST; ++cnt)
 		if (cnt != LC_ALL
 		    && (size_t) (cp - np) == _nl_category_name_sizes[cnt]
-		    && memcmp (np, _nl_category_names[cnt], cp - np) == 0)
+		    && (memcmp (np, (_nl_category_names.str
+				     + _nl_category_name_idxs[cnt]), cp - np)
+			== 0))
 		  break;
 
 	      if (cnt == __LC_LAST)
@@ -372,7 +383,7 @@ setlocale (int category, const char *locale)
       /* Critical section left.  */
       __libc_lock_unlock (__libc_setlocale_lock);
 
-      /* Free the resources (the locale path variable.  */
+      /* Free the resources (the locale path variable).  */
       free (locale_path);
 
       return composite;
diff --git a/locale/weightwc.h b/locale/weightwc.h
index ff5e63aeef..436aa7e548 100644
--- a/locale/weightwc.h
+++ b/locale/weightwc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2000, 2001,2003,2004 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2001,2003,2004,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Ulrich Drepper, <drepper@cygnus.com>.
 
@@ -22,12 +22,8 @@ auto inline int32_t
 __attribute ((always_inline))
 findidx (const wint_t **cpp)
 {
-  int32_t i;
-  const wint_t *cp;
-  wint_t ch;
-
-  ch = *(*cpp)++;
-  i = __collidx_table_lookup ((const char *) table, ch);
+  wint_t ch = *(*cpp)++;
+  int32_t i = __collidx_table_lookup ((const char *) table, ch);
 
   if (i >= 0)
     /* This is an index into the weight table.  Cool.  */
@@ -35,11 +31,11 @@ findidx (const wint_t **cpp)
 
   /* Oh well, more than one sequence starting with this byte.
      Search for the correct one.  */
-  cp = &extra[-i];
+  const int32_t *cp = &extra[-i];
   while (1)
     {
       size_t nhere;
-      const wint_t *usrc = *cpp;
+      const int32_t *usrc = (const int32_t *) *cpp;
 
       /* The first thing is the index.  */
       i = *cp++;
diff --git a/locale/xlocale.c b/locale/xlocale.c
index d9d3442621..4573e6f390 100644
--- a/locale/xlocale.c
+++ b/locale/xlocale.c
@@ -1,5 +1,5 @@
 /* C locale object.
-   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
 
@@ -32,7 +32,7 @@ extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden;
 extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden;
 
 
-struct __locale_struct _nl_C_locobj attribute_hidden =
+const struct __locale_struct _nl_C_locobj attribute_hidden =
   {
     .__locales =
     {