From 9378784537d0a4cd4e630aa360d0ae838dfcf500 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 4 Nov 2003 21:11:41 +0000 Subject: [PATCH] Update. 2003-11-04 Jakub Jelinek * io/ftw.c (ftw_dir): Close dir if callback with FTW_D type returns non-zero. * io/Makefile (tests): Add bug-ftw4. * io/bug-ftw4.c: New test. --- ChangeLog | 7 + io/Makefile | 2 +- io/bug-ftw4.c | 124 +++++++++ io/ftw.c | 22 +- linuxthreads/ChangeLog | 5 + linuxthreads/signals.c | 15 +- localedata/CHECKSUMS | 670 ++++++++++++++++++++++++++++++------------------- 7 files changed, 575 insertions(+), 270 deletions(-) create mode 100644 io/bug-ftw4.c diff --git a/ChangeLog b/ChangeLog index 0013f05..d9d6b55 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-11-04 Jakub Jelinek + + * io/ftw.c (ftw_dir): Close dir if callback with FTW_D type returns + non-zero. + * io/Makefile (tests): Add bug-ftw4. + * io/bug-ftw4.c: New test. + 2003-10-27 Daniel Jacobowitz * libio/libioP.h [_IO_USE_OLD_IO_FILE] diff --git a/io/Makefile b/io/Makefile index 14358ec..906d1e3 100644 --- a/io/Makefile +++ b/io/Makefile @@ -57,7 +57,7 @@ static-only-routines = stat fstat lstat mknod stat64 fstat64 lstat64 others := pwd test-srcs := ftwtest tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ - tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 tst-statvfs + tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 bug-ftw4 tst-statvfs distribute := ftwtest-sh diff --git a/io/bug-ftw4.c b/io/bug-ftw4.c new file mode 100644 index 0000000..0a652d3 --- /dev/null +++ b/io/bug-ftw4.c @@ -0,0 +1,124 @@ +/* Test if ftw function doesn't leak fds. + Copyright (C) 2003 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek , 2003. + + 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. + + The GNU C Library 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. + + 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. */ + +#include +#include +#include +#include +#include +#include + +static int cb_called; + +static int +cb (const char *name, const struct stat64 *st, int type) +{ + return cb_called++ & 1; +} + +int +main (void) +{ + char name[32] = "/tmp/ftwXXXXXX", *p; + int ret, i, result = 0, fd, fd1, fd2; + + if (mkdtemp (name) == NULL) + { + printf ("Couldn't make temporary directory: %m\n"); + exit (EXIT_FAILURE); + } + p = strchr (name, '\0'); + strcpy (p, "/1"); + if (mkdir (name, 0755) < 0) + { + printf ("Couldn't make temporary subdirectory: %m\n"); + exit (EXIT_FAILURE); + } + *p = '\0'; + + ret = ftw64 (name, cb, 20); + if (ret != 1) + { + printf ("ftw64 returned %d instead of 1", ret); + result = 1; + } + + fd = open (name, O_RDONLY); + if (fd < 0) + { + printf ("open failed: %m\n"); + result = 1; + } + fd1 = open (name, O_RDONLY); + if (fd1 < 0) + { + printf ("open failed: %m\n"); + result = 1; + } + else + close (fd1); + if (fd >= 0) + close (fd); + + for (i = 0; i < 128; ++i) + { + ret = ftw64 (name, cb, 20); + if (ret != 1) + { + printf ("ftw64 returned %d instead of 1", ret); + result = 1; + } + } + + fd = open (name, O_RDONLY); + if (fd < 0) + { + printf ("open failed: %m\n"); + result = 1; + } + fd2 = open (name, O_RDONLY); + if (fd2 < 0) + { + printf ("open failed: %m\n"); + result = 1; + } + else + close (fd2); + if (fd >= 0) + close (fd); + + if (fd2 >= fd1 + 128) + { + printf ("ftw64 leaking fds: %d -> %d\n", fd1, fd2); + result = 1; + } + + if (cb_called != 129 * 2) + { + printf ("callback called %d times\n", cb_called); + result = 1; + } + + strcpy (p, "/1"); + rmdir (name); + *p = '\0'; + rmdir (name); + return result; +} diff --git a/io/ftw.c b/io/ftw.c index c7c2038..6d5cedf 100644 --- a/io/ftw.c +++ b/io/ftw.c @@ -476,23 +476,27 @@ ftw_dir (struct ftw_data *data, struct STAT *st) { result = (*data->func) (data->dirbuf, st, FTW_D, &data->ftw); if (result != 0) - return result; - } - - /* If necessary, change to this directory. */ - if (data->flags & FTW_CHDIR) - { - if (__fchdir (dirfd (dir.stream)) < 0) { - int save_err = errno; + int save_err; +fail: + save_err = errno; __closedir (dir.stream); __set_errno (save_err); if (data->actdir-- == 0) data->actdir = data->maxdir - 1; data->dirstreams[data->actdir] = NULL; + return result; + } + } - return -1; + /* If necessary, change to this directory. */ + if (data->flags & FTW_CHDIR) + { + if (__fchdir (dirfd (dir.stream)) < 0) + { + result = -1; + goto fail; } } diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 3102111..8f74133 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,8 @@ +2003-11-04 Jakub Jelinek + + * signals.c (__pthread_sigaction): Set __sighandler[sig].old before + __libc_sigaction if it has been one of the special values before. + 2003-10-06 Carlos O'Donell * pthread.c (__pthread_self_stack): _STACK_GROWS_UP case added. diff --git a/linuxthreads/signals.c b/linuxthreads/signals.c index e1f67ab..667754a 100644 --- a/linuxthreads/signals.c +++ b/linuxthreads/signals.c @@ -78,6 +78,7 @@ int __pthread_sigaction(int sig, const struct sigaction * act, { struct sigaction newact; struct sigaction *newactp; + __sighandler_t old = SIG_DFL; if (sig == __pthread_sig_restart || sig == __pthread_sig_cancel || @@ -86,6 +87,8 @@ int __pthread_sigaction(int sig, const struct sigaction * act, __set_errno (EINVAL); return -1; } + if (sig > 0 && sig < NSIG) + old = (__sighandler_t) __sighandler[sig].old; if (act) { newact = *act; @@ -96,21 +99,27 @@ int __pthread_sigaction(int sig, const struct sigaction * act, newact.sa_handler = (__sighandler_t) __pthread_sighandler_rt; else newact.sa_handler = (__sighandler_t) __pthread_sighandler; + if (old == SIG_IGN || old == SIG_DFL || old == SIG_ERR) + __sighandler[sig].old = (arch_sighandler_t) act->sa_handler; } newactp = &newact; } else newactp = NULL; if (__libc_sigaction(sig, newactp, oact) == -1) - return -1; + { + if (act) + __sighandler[sig].old = (arch_sighandler_t) old; + return -1; + } if (sig > 0 && sig < NSIG) { if (oact != NULL /* We may have inherited SIG_IGN from the parent, so return the kernel's idea of the signal handler the first time through. */ - && (__sighandler_t) __sighandler[sig].old != SIG_ERR) - oact->sa_handler = (__sighandler_t) __sighandler[sig].old; + && old != SIG_ERR) + oact->sa_handler = old; if (act) /* For the assignment it does not matter whether it's a normal or real-time signal. */ diff --git a/localedata/CHECKSUMS b/localedata/CHECKSUMS index 4478a29..c0914eb 100644 --- a/localedata/CHECKSUMS +++ b/localedata/CHECKSUMS @@ -1,268 +1,424 @@ -97ec3e0e5a02ba50bf034cfcdea6469d locales/POSIX -2ac9c8dab200035ab30329e025ae29be locales/af_ZA -dc560d0dd71ca1cf4b3a3f422fe03b14 locales/ca_ES -e2b2c79ac083d3c7151e9ede9360f6c0 locales/cs_CZ -6ed0464590918f9b59731ea8b762900d locales/da_DK -3c1e78eeb968fa5ef49b2672fe3da756 locales/de_AT -6ee0be7a3b0033b35719419a9d84b27f locales/de_BE -89ff8fb9bb9d2ea2fbfd409baccd7f59 locales/de_CH -693b60488445f63d15207cd407884345 locales/de_DE -969062eb7dd2196ae96c26b837f77591 locales/de_LU -9a10c3ac70ab2d0d26ea2e8921199665 locales/el_GR -1df05f9450263138fd5d4ee513642310 locales/en_AU -0271ab37e58ddb29733ab3f89789f10c locales/en_BW -bafe0469ff4621636a90e72acebb6f93 locales/en_CA -688ec6a92b152ec3dfad2c52d7fd61ea locales/en_CA,2.5 -172ca6f82d8dfb3edd86ddf51e157a1e locales/en_DK -94cd32fd51aa57d42255b9aa8ab7cee3 locales/en_DK.com -8f322dd28903682c6a80a4a96861dc59 locales/en_GB -aee81bf8761ef1e38f6adc39e5846b17 locales/en_IE -e6accbc3458eba9e23156e99ce700439 locales/en_NZ -e7e3223904043d185087bbb13bbc6e97 locales/en_US -21fd1816ee6f32b6777d90222d660be3 locales/en_ZA -d82de853fcd448dfd1a7e5d2bb114daf locales/en_ZW -b2f02bb97de06de5a14bb4cc11877ad7 locales/es_AR -41630e6e8f5a164fa90e10b202cc3eaf locales/es_BO -b21ac1fea9726a62d7306d63e646c990 locales/es_CL -8e3752256da403c9a9d66680deed45c8 locales/es_CO -915aa3b6b7c73ffa00ceda87b8589495 locales/es_DO -01175f59670c47e8bb62553c62d480ee locales/es_EC -c9df76a675c75ab0000057ffcf826aee locales/es_ES -0085a8fee4c77cfa02e5b2a700fa30d4 locales/es_GT -de8e51deed4c7bf897cf886fea7772d6 locales/es_HN -e07278e9fb181fd32e1a89f2025a43b7 locales/es_MX -0f4c8e46eb4790f598137678ace1887c locales/es_PA -15decb57c2ce997e76e6c5c217c44d1d locales/es_PE -1e7d8a5c9f0abb506e3b7128a3f28980 locales/es_PY -69dd105d588ef12726c51735d94e2d59 locales/es_SV -97c3c0374bdd90fba624e0aa46bdb745 locales/es_US -e24d7f66ec0f5fbbca742be937d680b5 locales/es_UY -05d4a96a70ccaecd3472a1e9b40db513 locales/es_VE -55b992cdb4b9adf72df968881a55045c locales/et_EE -4d85ff4728e48450e1ae4f371c1fd12e locales/eu_ES -b921bf84d560d5ab06111807981748e9 locales/fa_IR -7fc821e07d7e228535dcc2b6c4fce8f1 locales/fi_FI -35d631cc21c7cc9d1ce2933e1d94d81a locales/fo_FO -419d0507292b954a0cee5be020771b00 locales/fr_BE -d9e85f9c1dc5d2d9396afac293f0553c locales/fr_CA -c1836dfa41f6eb43dc90900d2cd9b341 locales/fr_CA,2.13 -47b866d8e108070ebc393f18e5a11618 locales/fr_CH -1d63fde6acfdc6c0dc03b36098a9f5ab locales/fr_FR -8c17257001e3d33e8ab8c5dc9fae87a7 locales/fr_LU -fe6ba034da4ce416f480a11a0b1f7356 locales/ga_IE -37dc43894af12d76a399af38ec3b848e locales/gl_ES -e5730342b747e9445b6448792d39d121 locales/he_IL -8264c2cdffbead098d797ea1d861753f locales/hr_HR -70ea8a47c5e1ea1af40fe059795108f6 locales/hu_HU -0d145a65dfa353f93f78090719cb086d locales/id_ID -d1089f83e82d9ea9256a82cd4b883a72 locales/in_ID -c96cc2c4f753f6641d2744eb762dc4e3 locales/is_IS -48252394b6e3f50cfcf00510eacd3683 locales/it_CH -69b619bf7fad926c3c04349f1a316d0d locales/it_IT -e5730342b747e9445b6448792d39d121 locales/iw_IL -934faede9009fc486fc7453c16084aba locales/ja_JP -2f97cb36f71528ce4dda636ddb96d0c5 locales/kl_GL -880237172b8700c9645dd0cee6ad3a59 locales/ko_KR -c7e3b3446446aa0e9fcc6dd1bdee6a5d locales/lt_LT -b93e2cb7a11c1fbd22d0427aab4922d0 locales/lv_LV -5be9df64a7bf8669701f0f9983dc1004 locales/nl_BE -4d58de18535a2e1f98e6985d4fa5b671 locales/nl_NL -ed41a02e1c2aec4eddc42fe7b5702bf4 locales/no_NO -83bf7b71dd5b09e267d9e69d37bc8883 locales/pl_PL -7e40f55558927e1754744a5b705d5089 locales/pt_BR -3ed6e5080462030ceb847ef241ee1352 locales/pt_PT -33324d57567944135cadec56b4b1e77d locales/ro_RO -b4e8ac2dea2a3c736befb854c4edf45b locales/ru_RU -2be354a9d753a14159067f4e98437bb4 locales/ru_UA -e138da41f8586445c277a761ca2fc7df locales/sk_SK -18408da663b6c4498c06d844ef14ae1b locales/sl_SI -d1aefa7d8bb6354743b0e386fcbb0652 locales/sr_YU -2c1087e408f00e70320ca5e4efd80617 locales/sv_FI -c4e59d821962d68097175242220427ea locales/sv_SE -669ade381cccccd0a3fac10bec9a2917 locales/th_TH -f9ac3ea566e659cdcbc6dde43d7655fd locales/tr_TR -d10211b77b9c19fd04080e9df5b03bf5 locales/uk_UA -d3d797491b67d7207ea1bf00204515d2 locales/zh_CN -0e7fdb8285e9ca6113454ce247d3863c charmaps/ANSI_X3.110-1983 -a586da90c49cd6875b8238a8878a7591 charmaps/ANSI_X3.4-1968 -5f18526bbba0326cf6af1861bcac141f charmaps/ASMO_449 -a9f7051d90b3cd83bc0ad8bd7bae0b02 charmaps/BALTIC -8e1e15a295bd169737f22dc53f08ab0b charmaps/BS_4730 -93f30925bb39086d37e66e4d185ec84b charmaps/BS_VIEWDATA -5c1b91f005c3c2c0ccc73aaf707fc998 charmaps/CP1125 -a907a00ba93ea9f46154cf3a80818e70 charmaps/CP1250 -2a92a00cd906127843d519aa937bf0c9 charmaps/CP1251 -10e2330202c5b24766d4d04ec46a56c1 charmaps/CP1252 -e26ab9843d95b3d200d94cf76981d09d charmaps/CP1253 -c31e2cbcee34f148786ca38c0a5570d2 charmaps/CP1254 -0c8a06d02ed67967129d6f7496d24b15 charmaps/CP1255 -f861218a23625c411f6e736e9ae7a6fa charmaps/CP1256 -bb9b52bfe2d51434c2d02755153ad215 charmaps/CP1257 -a6497ae372e62cc7b92c3cfd33efd5a0 charmaps/CP1258 -de28dafcea25942068f985ed626f2dc8 charmaps/CSA_Z243.4-1985-1 -052ef075f60624efa6e802e91410b47e charmaps/CSA_Z243.4-1985-2 -06e1bab71c5bb639445d86075cf7cef4 charmaps/CSA_Z243.4-1985-GR -bfcceac1c7d2315b982cdf02e2870c39 charmaps/CSN_369103 -18eaa1c7aae3a6cb1609564c2df17c97 charmaps/CWI -e3940ad883b5d632284be02e9e5fe0e6 charmaps/DEC-MCS -5b2f992418cd91c2fd8f4404798d7ec3 charmaps/DIN_66003 -49813249f796b430323b39f5ac214c52 charmaps/DS_2089 -c4d27a4c8b3d1dab456c18e19b9cb581 charmaps/EBCDIC-AT-DE -b6ee12056031057046fe9ac512f37eeb charmaps/EBCDIC-AT-DE-A -f80c64718816f3bb3ed6d19f2d7b80dd charmaps/EBCDIC-CA-FR -6e87df8f2e888deaa9f3470d57f59a15 charmaps/EBCDIC-DK-NO -5732dfa3c6c28fff5da1471b0e56a05c charmaps/EBCDIC-DK-NO-A -f259d26266edee351f070320a014e7eb charmaps/EBCDIC-ES -12232db40f6339d548f8ed37eb6463f9 charmaps/EBCDIC-ES-A -0408b369c135709d2994fff8a1f7dac4 charmaps/EBCDIC-ES-S -1a3e377a76556eb17de9a269933943b1 charmaps/EBCDIC-FI-SE -759dc0c6c3d6354fa61c1b04b59d709c charmaps/EBCDIC-FI-SE-A -c98d95a6890fc7e5a8819e16d8f808e7 charmaps/EBCDIC-FR -e3c41b832d7645e9190a86ddde244011 charmaps/EBCDIC-IS-FRISS -05582f7a3153f505859710b0829faa12 charmaps/EBCDIC-IT -24dd8e158b408851dffaeed975ea57e0 charmaps/EBCDIC-PT -8e2215ef304cf77b7fdaceb76bfd27fd charmaps/EBCDIC-UK -b2f02a121a48a3ac110bd6ee5263fd9b charmaps/EBCDIC-US -ac706419ebd1e3a649fb681312ac8ce5 charmaps/ECMA-CYRILLIC -7dddc0b7992cd333434b8a02959c50a0 charmaps/ES -4c0b61e790c2d2470516111e1d2aa319 charmaps/ES2 -d0eb42459f3bfa8a576579d74f10f3fd charmaps/EUC-JP -729b91a542fbf5f30a2e16258f21ceaf charmaps/EUC-KR -20bb289e25334344a0662470db3e9a8c charmaps/GB2312 -a135f498373b1305167f1a6c699949a2 charmaps/GB_1988-80 -1e1e94ad8d1c12e9f10f7d6e1d870a68 charmaps/GOST_19768-74 -69a174dec8822dedba8b8aad36ba44df charmaps/GREEK-CCITT -7963e4f78b3e7da2904db267b51ffdad charmaps/GREEK7 -98867deff09f3b96d80967768cef2860 charmaps/GREEK7-OLD -a20e92ee764a1021470f63ddf2b4ac26 charmaps/HP-ROMAN8 -d2bb7b6934925cd3c48339932683d738 charmaps/IBM037 -75372e1aa9e87d8f21029beea062ebfa charmaps/IBM038 -00135b9fe204f67ffb3ca606c6e90e65 charmaps/IBM1004 -06a3321eb8e21e60ef061e547af5004d charmaps/IBM1026 -d6db928eeb35033d1ab07a61874afcc8 charmaps/IBM1047 -612e20c98d575f4926417557d59653a4 charmaps/IBM256 -5f610ea0f1199d48a60b735815e441ac charmaps/IBM273 -1918b8b2947201cf1abd09fde2a270f5 charmaps/IBM274 -f0ba496e0bb3928385bf8746e362aaea charmaps/IBM275 -d5e68a6b5e6e4a5673bd488e4754cbb1 charmaps/IBM277 -70c7fc622ca4d613c0d8bd160517e7b6 charmaps/IBM278 -8d75b9799cc7857f31779b68cd326deb charmaps/IBM280 -80d9bb633ddf8118a16a3c13c02e2775 charmaps/IBM281 -ace7a1f04f6ea723fc23de14ee07a686 charmaps/IBM284 -aa42a6d193da334341f83f5783e88346 charmaps/IBM285 -7d71d7200be8bfbc3b132813a1fa79de charmaps/IBM290 -04e570ddbb122b2fc06503d3f74573cb charmaps/IBM297 -6f33fae170d1d8f2e8805598a5d9faec charmaps/IBM420 -8b156f73e652c2d61b7ccd6a87f9a8ed charmaps/IBM423 -66042b458fb9ab18f17b10c8f28f6e36 charmaps/IBM424 -b7dbbe944c14f37b99c88589ce23f4f6 charmaps/IBM437 -fbfeade12b636f330ae301c8c4889066 charmaps/IBM500 -14624459eeab649848449d0e3f83acc1 charmaps/IBM850 -c758668ec74757819130a3fe0dc0c360 charmaps/IBM851 -c1788b0d0c362ad15d23ebe5aaeb035c charmaps/IBM852 -381e89c44f3563c165cad5649818f7e2 charmaps/IBM855 -9b8ee5f11d59b7ceb3714eb1448d9793 charmaps/IBM857 -32c16fd20b3fb11b92bb12e14de90825 charmaps/IBM860 -bc2e6b784e155a42c3329cb7b23cd653 charmaps/IBM861 -759ef63f459acb00c54fafed06b52fa3 charmaps/IBM862 -d663303a0f58dab4a6eb28a66a64b94e charmaps/IBM863 -754b798ba5e75bc05fd2171f425261ed charmaps/IBM864 -b6a61bfb10e0e97b6e6acfa85b974e54 charmaps/IBM865 -a97d1ae5b7e1042e9fd64b25ed471f40 charmaps/IBM866 +de03b81861a80e9fef5c1133360843bb charmaps/ANSI_X3.110-1983 +9cdbf98f2ef33457957ebcaf6a1f8cf4 charmaps/ANSI_X3.4-1968 +951fd6220705423baf0b8a5a102e3352 charmaps/ARMSCII-8 +c2316daf6629c132ba4e6fdadb0e6503 charmaps/ASMO_449 +33f96ca46035ae74ef4b231c5e42acd8 charmaps/BIG5 +56da6c91734e160c7931d268c37438fc charmaps/BIG5-HKSCS +798dd6b57c3d0c122211aab2fab5736e charmaps/BS_4730 +09f7a9187907a3f3fcfaae8906b01579 charmaps/BS_VIEWDATA +11013c76150d062df1a5fe899a614cf0 charmaps/CP10007 +284549ebab7699ddde23d273641751b9 charmaps/CP1125 +592572e42aa242f2f30f227bccc5afb0 charmaps/CP1250 +ad9dd6c3f4eaa95fe949fae0a5c1745d charmaps/CP1251 +b24132834355a7d7841a82aed7a83cda charmaps/CP1252 +2f2053bf482cdac273277a292653bdf6 charmaps/CP1253 +d859cd8d447aedcdf7c09c299a6469bf charmaps/CP1254 +c8ed5f1b2cfc26a3370697450be33943 charmaps/CP1255 +9b8e16bde8b9449f8f72bfa7fc7eb772 charmaps/CP1256 +c2d246cb44be36163085e5c6f04a31bc charmaps/CP1257 +1cdd6799992c1d9e238e78bb386876fe charmaps/CP1258 +a4ca07fac87e0c813e77f0cf95daecdb charmaps/CP737 +039969caf1003a6e91cb039df41c2fa0 charmaps/CP775 +d512d19a02da69dafd98ab0f7a27d0df charmaps/CP949 +2467367588810aa21ea1010d09b34d6b charmaps/CSA_Z243.4-1985-1 +02d1072b7e20d5d0d70dede9f51b9a9d charmaps/CSA_Z243.4-1985-2 +f2154153876719004abd05bd3a49c310 charmaps/CSA_Z243.4-1985-GR +f12d99e29832227d3d659446c3bd1efe charmaps/CSN_369103 +4745e4c913944bb3a842eda1ab84f463 charmaps/CWI +02795f59b18fd5e0a38a75983ee5f9b1 charmaps/DEC-MCS +81954d04e26499ce6ebe34674ccb71e1 charmaps/DIN_66003 +8cdcc842a730c5febcda9074c5a9e20f charmaps/DS_2089 +2d23e4b626f5cfa5d40c344d9cdef29a charmaps/EBCDIC-AT-DE +a3afba3b3742c929cf8228061eff9bce charmaps/EBCDIC-AT-DE-A +51747fc3a0be01a8864c4ac463e47134 charmaps/EBCDIC-CA-FR +da9f0a660776bf0a8d787a5512efa30f charmaps/EBCDIC-DK-NO +4ab022770a9e8e685c9696fd2bb3e5d6 charmaps/EBCDIC-DK-NO-A +554a94a84c21d7dfe35d2378967901ab charmaps/EBCDIC-ES +75508c60b07ada5ed9d5511422fdee36 charmaps/EBCDIC-ES-A +071618eb679d75c272e6f252fc34ef6f charmaps/EBCDIC-ES-S +eeb2eb499bc7d7e023a49545258cd4c8 charmaps/EBCDIC-FI-SE +4510fd482c6bf286ab144d2023896992 charmaps/EBCDIC-FI-SE-A +31c70716871e13e55e3c4d2e409c1f6a charmaps/EBCDIC-FR +0ccf405badf73924e43f7381015c5e7f charmaps/EBCDIC-IS-FRISS +e7e3235e426d5484ff681e1e21f76de7 charmaps/EBCDIC-IT +7ea01bd248ab4f9cf149d5462084a1e9 charmaps/EBCDIC-PT +06f67e85e3edfaaba2844a11227d4b8e charmaps/EBCDIC-UK +ab8146d876f7cea2fd79202141a56bf0 charmaps/EBCDIC-US +4d59ebf5245387e6e48bc28e8ff3f683 charmaps/ECMA-CYRILLIC +c8aa077828897c01f539f6728867827e charmaps/ES +56d96f732da26b9c9687cade2559414e charmaps/ES2 +ca3364fd7f65248864973b25b951906c charmaps/EUC-JISX0213 +f33e30fe7a2b9e410a402ba1b8f2d6ab charmaps/EUC-JP +00f24f0b8b34ec055a8bddf01f059329 charmaps/EUC-JP-MS +fa30ad5600f0c999abb104f9a64cdf40 charmaps/EUC-KR +838393203b84e028f76622920458a526 charmaps/EUC-TW +f5856ca72c25cbbab09b25bd62077df7 charmaps/GB18030 +3ac7955343a281d44278036e69045bc4 charmaps/GB_1988-80 +f49f85a7390e23e7bf9af220b87e98fc charmaps/GB2312 +0469fc4833a4c4d78d9a2429ab7af816 charmaps/GBK +731aa4c53f5f8a083ab361e6f4f30ad1 charmaps/GEORGIAN-ACADEMY +145fac3915354997f3ddaa3d8250a229 charmaps/GEORGIAN-PS +a78b5d94e07ed0290118ed0dc174e43c charmaps/GOST_19768-74 +830992d6e3db2d47c1704b933a823e95 charmaps/GREEK7 +6347508e7de055cbd671b13268aeac23 charmaps/GREEK7-OLD +3f1bc260f3aa97f5e6cce8f833692e6f charmaps/GREEK-CCITT +c992fd7297c822d5f8bd25684cbe68b6 charmaps/HP-ROMAN8 +795478f3edc5de4e4ecc9517d9c10258 charmaps/IBM037 +04c69d8a16cda189f3b6ec82e82c85bf charmaps/IBM038 +fcb4591ac80ea22a2c03ce8b4ba6e916 charmaps/IBM1004 +7397fcf22867b7ec839c92c9f6309708 charmaps/IBM1026 +bb438d8c996392cff5ee96001ab8d5ba charmaps/IBM1047 +53d2b26c2688e9cf5991a7c678cc5400 charmaps/IBM1124 +8fd05661e39ba8e2aefe753b44fcb47a charmaps/IBM1129 +f7c54fdfaf67cc97ac2b7db70d042e7a charmaps/IBM1132 +1ec982a6a1e44b504190e0c20ca383b6 charmaps/IBM1133 +cae180a3a7a98e7ca267fd0593e8d4d2 charmaps/IBM1160 +7ff59e7d51c14135ee55cb5b670b7ec9 charmaps/IBM1161 +0d897fe64ee1177bb3efa2e091698a67 charmaps/IBM1162 +0b8a87c4acaeb8b80aa53b02aa74ace7 charmaps/IBM1163 +1bb671b575ce2d5903730a3095a1e9f9 charmaps/IBM1164 +67a6575425a0cd2b1eee477ba3825a79 charmaps/IBM256 +7f4bf7665c80ebb374d340ff9dc6c2d4 charmaps/IBM273 +e833c32c6bc4532f339b073dec83c748 charmaps/IBM274 +b3f81aa5f3eafc70f8681272dfcf3278 charmaps/IBM275 +6d844171463960c44a4389f8733dece1 charmaps/IBM277 +7ab572bda6426937997bc0e793174333 charmaps/IBM278 +b50429e0d3f1d35cd96fbc28b84153a8 charmaps/IBM280 +f8290cb02a3abfedb892d0c8f3234c99 charmaps/IBM281 +455810c2183613b5802711787a895927 charmaps/IBM284 +e6ce68850339e3e7137b26cbaad47a87 charmaps/IBM285 +0fcfa6f27b21b49c5554079f9b5601e3 charmaps/IBM290 +478b0e853b8582b32163c3b923a08217 charmaps/IBM297 +25f4bb6afd2f89e4e765f4be2b111d28 charmaps/IBM420 +4e50f102de50eff1045bf9da4168d8fb charmaps/IBM423 +42332e3613dd030d4ba571cf4a92ca45 charmaps/IBM424 +1fbc46c1d1191bc52b222c306b81c73f charmaps/IBM437 +cd7c5a1ef8d643113e3b4793f3122c8a charmaps/IBM500 +2bd16747d13d214d657ea66342306ddc charmaps/IBM850 +1cdaf2970b6e2ec03ffefdd22a9d447f charmaps/IBM851 +5591da3bdf04653cc68f31b4c2ba3df7 charmaps/IBM852 +e88d449343c4a6f16fd437a5868b3fb0 charmaps/IBM855 +94960aeda652856c46774a9e03cbf808 charmaps/IBM856 +c3256856786484d090c1e938329807bc charmaps/IBM857 +898810c91e5567f2aed5edc47946dc23 charmaps/IBM860 +343745daadaf451e84b71ca9e58048fb charmaps/IBM861 +52c70d49960d46164e4e49acc47826e3 charmaps/IBM862 +6f04d0e070db520338f0d4a68b24cbb3 charmaps/IBM863 +df59b4d4de6059a4064ce31ba931cc8d charmaps/IBM864 +e2edcee690cf123113ed191e466b47a6 charmaps/IBM865 +2e21a8811f9d218ebdb6b3744eef04d3 charmaps/IBM866 ed3787887442af7cc8e03cb440bd22e3 charmaps/IBM866NAV -3c687466bbe8924d247de33aefc3b39c charmaps/IBM868 -25a012edcc641079a92e48b7daaefb6c charmaps/IBM869 -f06c133a6a95e36ed4bfd25def526769 charmaps/IBM870 -3484dd8f95b187e5875dc73278485dd5 charmaps/IBM871 -549df48822f4d8c00e36ecd8ac12dad2 charmaps/IBM874 -2ac060b9d24b0627a69edaf9c8f9b20f charmaps/IBM875 -526e51ad0ce04ad9700b6444e83d4331 charmaps/IBM880 -d594cb73e9deddfbacf403223a39415e charmaps/IBM891 -13fd16925cebadb6a90fd4739ab128f8 charmaps/IBM903 -38bc42b9ccbe74fd83c17fe7035d378f charmaps/IBM904 -dafb03bc5ff222d549f49526aad39f14 charmaps/IBM905 -2f05e3ef0b85315493c1367db075f89f charmaps/IBM918 -b620d1383e848c22e993d83c929d4e2c charmaps/IEC_P27-1 -9cc72469de529887ae06cc49eba811b9 charmaps/INIS -698eb5f931a6378ec100988b2e7080f8 charmaps/INIS-8 -3355267d5b626e15335bc3d9e9ceecec charmaps/INIS-CYRILLIC -82997b03c60b1c75db7c684369afa784 charmaps/INVARIANT -f73101f88ab99ae54aab390a39e37bd2 charmaps/ISIRI-3342 -00278485a2b71756393bdaff1d475f09 charmaps/ISO-8859-1 -97daa5d07db924785235076958fd0cf4 charmaps/ISO-8859-10 -65b513f374f59ab6c3065f6cabac073a charmaps/ISO-8859-13 -7a53d1853f07c116e8ceaac4b42c10f4 charmaps/ISO-8859-14 -291de15c8b16692c49cd7cbacf88c47a charmaps/ISO-8859-15 -b5aeeb41514765d0c6d59e209e34b489 charmaps/ISO-8859-16 -eb0956b77262e50119b476b8a7266ee7 charmaps/ISO-8859-2 -5f4b7f0d6d3123a5928f83d13b15b8ef charmaps/ISO-8859-3 -43a6fbbc2c730598a4c9924a4caf1a5a charmaps/ISO-8859-4 -cf08296dd3226cb37c14faf45e7bf7e0 charmaps/ISO-8859-5 -2aa504f779ecaa9b1ed1bd2095f9b690 charmaps/ISO-8859-6 -7aaf7cf69626b0db87314ec8b6f9a2c9 charmaps/ISO-8859-7 -e8820ebb915620714fe103155cd5429c charmaps/ISO-8859-8 -172863abae066ff434fdde13bfcbdf74 charmaps/ISO-8859-9 -7f859ae24e0921d1ed24e9415865c20f charmaps/ISO-IR-197 -35a007ff10462707262fddeaaed09a79 charmaps/ISO-IR-90 -29e4042157fbde4ecf3e36d82c976c62 charmaps/ISO_10367-BOX +4f28c084eabcfe12bde019374129a161 charmaps/IBM868 +6ac7b3009a8bb910ceaecf75911275a6 charmaps/IBM869 +e1379d157c60f93c6df7fbdc2d565c8f charmaps/IBM870 +c8d9b36f2e44f24f58e5f081db30ff63 charmaps/IBM871 +b6e1d473e843432345c2c0f25284a153 charmaps/IBM874 +3b16722f23d9915bc90a85e8061e9d34 charmaps/IBM875 +c90729a71c9431cbb979a57a697cf83f charmaps/IBM880 +bf9dfd44b19373f7156ed4a082cd2cb3 charmaps/IBM891 +9b408f55af89f8aba5df1e13a676db97 charmaps/IBM903 +70fd65da56a106659a6febcd1fb38643 charmaps/IBM904 +53083d727fa2d49438b8f1fbab617448 charmaps/IBM905 +121bfefb46142b2ddd6e1560aefbd964 charmaps/IBM918 +6ef218728e9ff68b69ab256ba76f5417 charmaps/IBM922 +2a171f0031a60aa49418428df4a7b2dd charmaps/IEC_P27-1 +856d2be4bb0573c19887cbc420580dd8 charmaps/INIS +a4275626c05a72c6e9305fefd8015863 charmaps/INIS-8 +7b69918d8cd14725a1ccc965808dd39e charmaps/INIS-CYRILLIC +56896a7ea4bdd08c817be2062e7d16f5 charmaps/INVARIANT +1f66bdc760ca0a90ec8dd75d9c104d7d charmaps/ISIRI-3342 +6601310ca85ba289b5ce2e1c68df8c03 charmaps/ISO_10367-BOX a2fae2a1c29554eaa27fc44b6f2448b7 charmaps/ISO_10646 -2eb96001d9520c322ec37b9a9893431b charmaps/ISO_2033-1983 -cdd74ad87b62bebded4d4f09e4b70d95 charmaps/ISO_5427 -9a0245eaeaa3542e4792462dc4167a3b charmaps/ISO_5427-EXT -99fbd7b049392e2eeec98725b69d2dab charmaps/ISO_5428 -a5ab527ece9076cd01834ef48c8106e4 charmaps/ISO_646.BASIC -fea79ae8fd70fd216df26613ad5d293f charmaps/ISO_646.IRV -55b56e442762700cf94e449c7325a5ee charmaps/ISO_6937 -87ffdcd2cc8b976bfd692e810e45a428 charmaps/ISO_6937-2-25 -4a587336167d35c53a053fb8f1ffdc74 charmaps/ISO_6937-2-ADD +f176d328d9a123a02f8736cb77fcfd23 charmaps/ISO_2033-1983 +63d3483ec057bbe25aeab1e12fbd8304 charmaps/ISO_5427 +3e4677b9ffb7bafe85956568d6fce732 charmaps/ISO_5427-EXT +14f0ee818d06e319a2b24916403250c5 charmaps/ISO_5428 +58298af322e5edc30ce9aa764b095419 charmaps/ISO_646.BASIC +9931d68b8b4d1d0db5b81d507ce4565e charmaps/ISO_646.IRV +b738e3b159b9263930b92f19b101e1db charmaps/ISO_6937 +3019d94851ff22768f89ceb055a3470b charmaps/ISO_6937-2-25 +9a3258e87d321373a376839f5ce33bd0 charmaps/ISO_6937-2-ADD +f7e1941df5107a4da74f0f800eb15e35 charmaps/ISO-8859-1 +af94e14d910651594b816af93bf9475a charmaps/ISO-8859-10 +e16960f25fe12d23dc8b2a44e0440baa charmaps/ISO-8859-11 +e91281017b3d6eab9c2e3e022c28b5b5 charmaps/ISO-8859-13 +1d5e0b232c7c00485a8dd1c5ae036723 charmaps/ISO-8859-14 +f7cf2b0c55b5bb7a34faeca71a08759e charmaps/ISO-8859-15 +d4a91a4bc27e1c681c4c0d7923775801 charmaps/ISO-8859-16 8106c88f663bad113164494c1c11118d charmaps/ISO_8859-1,GL -d745d787e036ed217810e9af07e05962 charmaps/ISO_8859-SUPP -ce480b4ebe5d70f6eb769ba74b770a6b charmaps/IT +eaee6554170275d650e77034b44a1f86 charmaps/ISO-8859-2 +aad5c3f7f6e0917e82a544782b6fce67 charmaps/ISO-8859-3 +ec512181fb8e766c544d8de815126336 charmaps/ISO-8859-4 +38c1fb70059ee456ed1332107504b00c charmaps/ISO-8859-5 +a8b1087b3179f4318c63bb673b4c7819 charmaps/ISO-8859-6 +3d235e1f1680f23719c98893adf025c9 charmaps/ISO-8859-7 +30f7840f335a536db8d44df7dcf5a048 charmaps/ISO-8859-8 +c920792113cc26d6df988ba81defa022 charmaps/ISO-8859-9 +e784440dbd319ccec8860cbc675f15da charmaps/ISO_8859-SUPP +ad27186058e7fc2f479d5917ffc33d83 charmaps/ISO-IR-197 +ee62f653713d184ab9b5645c13067aa9 charmaps/ISO-IR-209 +309b5745e52f0c6861a40dce0b20e1af charmaps/ISO-IR-90 +069dbeda500ef8539977fdeaace0fb8d charmaps/IT 0e8eeddeaf18ff2ea878694a2739463f charmaps/JIS_C6220-1969-JP -889594dcd1e032e70e44b286616fc12d charmaps/JIS_C6220-1969-RO +126abc61c9a99e94208bcfa038a4d8ef charmaps/JIS_C6220-1969-RO 1b0ed357f33c83769d60f871c9ca5f9a charmaps/JIS_C6229-1984-A -c3fedbfd1213028ec7a9072dc3efe2fe charmaps/JIS_C6229-1984-B +2fcf260bc119cf342134a8fd85a1e49a charmaps/JIS_C6229-1984-B 127a7f4f39cb025219a5415dadc6601a charmaps/JIS_C6229-1984-B-ADD f97432b25a4838f338fb97632d5a1e68 charmaps/JIS_C6229-1984-HAND eeb2032e4e26972c0ea298b4add26f1a charmaps/JIS_C6229-1984-HAND-ADD f6635f62933ca73d099f7f0deabf98e2 charmaps/JIS_C6229-1984-KANA -1eacfba9e5ea66fcba5e899fb1e0d5b0 charmaps/JIS_X0201 -58db9089f3a64d68e4d8ccae52477658 charmaps/JUS_I.B1.002 -0ef24ee22fe2db7c269f391fcf318a25 charmaps/JUS_I.B1.003-MAC -d9f90201c1cf81ea3e1d168720bffc83 charmaps/JUS_I.B1.003-SERB -67d61886ea42a4f7860ac7c4e02788d3 charmaps/KOI-8 -7762b0e55445ff057d6d12b9d4b58858 charmaps/KOI8-R -7e4c814f2e2237f50a8e9cb16cf972af charmaps/KOI8-U -740a29c47cc9a64027b11dfa25c40db0 charmaps/KSC5636 -58cd9bffdffb8acea02431bc05e1cffb charmaps/KSX1001 -c4a4025dccd0b37119b9382d9f741736 charmaps/LATIN-GREEK -5fb2c89721a7ac283154db22d6d2dce3 charmaps/LATIN-GREEK-1 -6680017c5cda54ba6b7191e9bbbbd521 charmaps/MAC-IS -b4dd3b580ed4c12a00db6a92bfe704a4 charmaps/MAC-UK -4d605d9319f35bca76db2f3adc37b186 charmaps/MACINTOSH -447109f8043eed245396b8dfb0c5b024 charmaps/MSZ_7795.3 -1d20c917abdd4beeeba248c57e315cfa charmaps/NATS-DANO +813d074d5cd729ac82c12abec04ef408 charmaps/JIS_X0201 +52c4609d8314f19801e57d00e951fd34 charmaps/JOHAB +8542d92fd55e8cf99af4b68227b25c3c charmaps/JUS_I.B1.002 +b9a4e70db506f9944225fe5f9ed34597 charmaps/JUS_I.B1.003-MAC +cc533ff46e14e2b8a03d56cc8f981a14 charmaps/JUS_I.B1.003-SERB +dabd840e798145212d505a5e2c7c546a charmaps/KOI-8 +7010dc2605d2a8cc38503ae59a50329f charmaps/KOI8-R +a986f5cae08665f176673ae7ab9149d6 charmaps/KOI8-T +d24b8e4b73610606debbf3cd15175029 charmaps/KOI8-U +e5f7b48895785f3c0a30c2b65e3b905e charmaps/KSC5636 +b4a5adcc8e08dfe44c69a2e85abc69da charmaps/LATIN-GREEK +b87ff4cbc01d181c973c0ee4123e39e8 charmaps/LATIN-GREEK-1 +315486ff388e4195d1a9c4ea783bd9dd charmaps/MAC-CYRILLIC +0564b198c18a53106aa4ec03203d01e6 charmaps/MACINTOSH +ebccfbf3bc244c3c40695d8ee457a151 charmaps/MAC-IS +2bf87a60b752d9e78a9bdc1e1e017421 charmaps/MAC-SAMI +fe01d972c30c0eb99d68c12e8206828e charmaps/MAC-UK +0ec89aa18809cce916665c7170eafff3 charmaps/MSZ_7795.3 +b88c7e31d530dcfe1088458bc2cd63e6 charmaps/NATS-DANO b3bbdc3f120f8953a4f6aa642427fe15 charmaps/NATS-DANO-ADD -6ecc9d568a7816ec1c36e671397bc62e charmaps/NATS-SEFI +d513a9143cb5d41c140840f990297ad8 charmaps/NATS-SEFI 10d8bd8b95e840b9158f429ad5b9365a charmaps/NATS-SEFI-ADD -0ecf1f5d1f3013682c36740c70a401b7 charmaps/NC_NC00-10 -3d0fe48348b6bc87a8b51bc14e7095f1 charmaps/NEXTSTEP -27d205fe2bdb212ff487149378a8fb13 charmaps/NF_Z_62-010 -3b41e78b72c9e6ae388372250a4c2aa1 charmaps/NF_Z_62-010_1973 -f337a4af933e8cf76ce0cbe0c3220385 charmaps/NS_4551-1 -249ccbf125a7f3ba65f981c713315518 charmaps/NS_4551-2 -c31d1e195aa38a135db258ffe9819686 charmaps/PT -15be55c497423c88f935bc5cb0b8a8a3 charmaps/PT2 -4350bd8c8fe1e5af0c7ce81ca1cede69 charmaps/SAMI -a32a61d30e9a82987d46c6519ba4fa1b charmaps/SAMI-WS2 -0749422e24fc635059683aab8e5cec7c charmaps/SEN_850200_B -ba143c0073ddafb215cb977c352c51a0 charmaps/SEN_850200_C -9785b30026d616bbda77eaf8e6153787 charmaps/T.101-G2 -1f46111983da2e6089c96fe82dac584a charmaps/T.61-7BIT -c9cddee81fc56afc565103f0595512d8 charmaps/T.61-8BIT -f326985c547ec318a5f898b6515b575e charmaps/TIS-620 -866ff501227eb0be777ab0311f9caadf charmaps/UTF8 -ef3bf5ae895d02eaef728a6cad19f389 charmaps/VIDEOTEX-SUPPL -d8b499f15cb60ae79eb30a5fddc46826 repertoiremaps/charids.894 -471cbc9b5fc329e2de0439c53bf15632 repertoiremaps/mnemonic.ds -fb66d6b898b399e9a3ba9dc37d77e167 repertoiremaps/mnemonic.ja +5f27e26b7da7764626373fe2a1dcba13 charmaps/NC_NC00-10 +a73be75e967e651a46dda5161259a074 charmaps/NEXTSTEP +7c0d92699fef4f7cd04b8227656ac007 charmaps/NF_Z_62-010 +aaa5948bb876595c0caa07a5321c06fa charmaps/NF_Z_62-010_1973 +b26ac54d4b66d418284362f9d2bfaf34 charmaps/NS_4551-1 +ca8617473b167f0ddd74a8d4c5eeafab charmaps/NS_4551-2 +f3e6dfcd92af17588d92bb74a00cedc5 charmaps/PT +3ca88f7f2ceb8e0a34f99faa2fc08b9d charmaps/PT2 +8b6072951526b7ff9d5fbf87b12d21c0 charmaps/SAMI +fa0a7a36c57f096caefef7e279406379 charmaps/SAMI-WS2 +fc41ad3d839b73901e570a03d444b151 charmaps/SEN_850200_B +655d147aa9930cc0f4a4f65d85baa28f charmaps/SEN_850200_C +2d3fed5eab85625db611d698626b869b charmaps/SHIFT_JIS +d48e132620d65ad9c036f78c81adfde8 charmaps/SHIFT_JISX0213 +e04ceed36f922c7cb08cc0d9ec1214e1 charmaps/T.101-G2 +994af9e3143e52f81a35a3bdbfc09fdd charmaps/T.61-7BIT +69d66b016c2402128fe490ae7720ecf1 charmaps/T.61-8BIT +05ed91b9ffe615448ea35dc783d14f50 charmaps/TCVN5712-1 +f42dab98605fd2aa47a6013ee9c187dc charmaps/TIS-620 +e848a5839dffb64ce93f1c7b1f41d939 charmaps/TSCII +4efdcd39c789eba06c9a1e734cf0fa8c charmaps/UTF-8 +03e4b6c635f3a7e17be55196da899c2e charmaps/VIDEOTEX-SUPPL +7eae0c62a98fd1da82b0553675cf99d0 charmaps/VISCII +b04e38295a41a71d3fab0aaaf9edeba2 charmaps/WINDOWS-31J +9ff9ac74474b20c587ba6f77a387a900 locales/aa_DJ +8a2e947b19fcae224347c7354f05dd03 locales/aa_ER +6bbd61e487754a53b60b964daa0efde5 locales/aa_ER@saaho +ba23148ad4dd3a20e9f8678cd3a7318d locales/aa_ET +457ee847dd7a116f2f32dc42c4d2e618 locales/af_ZA +112ef7390f725bbf458148bb1579f0f3 locales/am_ET +97483db07a72333f6220eb1068bb9774 locales/an_ES +fec3397642d45c5208fa70d956172626 locales/ar_AE +64cd23d98b1cb5430d8170ea8ae7cd01 locales/ar_BH +bec775783856166f021ba99784a3e45d locales/ar_DZ +7843c84c076edc1b40aa299742e2db62 locales/ar_EG +36ca1f53ee3459dc8b7625147d6dc9c1 locales/ar_IN +7f1418fb9cb8fca35dc39f4956e2c542 locales/ar_IQ +3de70d3d4e2734885cc037b931dc20df locales/ar_JO +5675e747cde2c3b5fcb9fb137b93e57b locales/ar_KW +f2f4c3c8d936c6b81665f32b7855466c locales/ar_LB +ed14bac539f84e457679acd2d30f946f locales/ar_LY +b8a696a52bae6257fa9568f184ed08d0 locales/ar_MA +cfb021ac947cc63c38cfad98030b4511 locales/ar_OM +4c453c63b94b75dcef3afb394b7e09d9 locales/ar_QA +4a6ccc5c573e36016f9606ca2ec998e2 locales/ar_SA +d97cc1e38ef6e864ace03970e9f3e5d1 locales/ar_SD +1c6f4fdfcf1646d19d929c5b888cdc74 locales/ar_SY +5bf7bc4fec4bb6cca16fdcfb333e7fa7 locales/ar_TN +8876594529e9dad27cde50df1314b638 locales/ar_YE +4950332376ac7f49bde921607bf8b3b5 locales/az_AZ +a7b1e75e62bd39e8c8201f22eee8d09c locales/be_BY +4ab284f0079d9b20c3b3aa86e0927077 locales/bg_BG +58a08f84cc830d1c980d02934b9ef1db locales/bn_BD +0d0f6402010da4cb1bde6088e0a3163e locales/bn_IN +f29ed6d548c24c2915c5739860b22b70 locales/br_FR +08a8c7b978907ed61b3c9619274b322a locales/br_FR@euro +70c92650a64296d270824bd348377cc2 locales/bs_BA +ff62b390c9f7bdb928842cd0cd505b6d locales/byn_ER +62b50002731b4242088c94428d8b1695 locales/ca_ES +3b6ff441ee0b875d04892afc4b2bad63 locales/ca_ES@euro +6dc1d5ffa23e21feadcf81366d972907 locales/cs_CZ +a738a1d84e58ced722161a0c63109b21 locales/cy_GB +999c6345303d86fdcac50bfeedd486d7 locales/da_DK +d2725690a2288b9a25eae4f591ab337b locales/de_AT +a1990ce5780d1218cf6f74450900903a locales/de_AT@euro +4e9abd22096b32897075bc0e2b7784c6 locales/de_BE +f69f03f7e1949a9fc3821ed4895dce4a locales/de_BE@euro +493b4c54ac3a8ef6adbec7927fa9a2e3 locales/de_CH +b27aaab25e031e4bc2e23981842fbb23 locales/de_DE +fbe2dd1a46614a618b49218d1a3ccaf3 locales/de_DE@euro +7302e7d47b28997842adac2c0f33e696 locales/de_LU +bfcf25ca5a25fc6c306597338a4b2ed3 locales/de_LU@euro +6bb5552e181f4923304b009a1e918c5d locales/el_GR +2d5da0c3b8eade0a394c65b2c416c728 locales/el_GR@euro +69cae8537c340f9b715657b56c2fdc8e locales/en_AU +d43afbe5ba7e63d53d91d43ba81f1186 locales/en_BW +9342fe09a131f1132b28e7e5fe14f9de locales/en_CA +a1207363c4095e0b673bcc1b49e83aa5 locales/en_DK +a0c4f8032f09bbbc642cb72c3fb24b23 locales/en_GB +c339d79ffb50a5a4f5cbc1b0c3440805 locales/en_HK +24c117ee23313635ac5992a3d23f3583 locales/en_IE +c643822f5581e98602da2226b1c9c9bb locales/en_IE@euro +2fbd7f240fdb5df2ef8930a226c65b4f locales/en_IN +155f110e81b60919aafc4c19cca69844 locales/en_NZ +26705f63153dc885cd3ed689950b732a locales/en_PH +3c0345df097adb223a8b0a3452525d9b locales/en_SG +92e303b805f4764fc4673c6b91dcc727 locales/en_US +fa5a491dc297f7238f80874ee496e9c2 locales/en_ZA +7ad745cfd65235a822a8df609fbde6be locales/en_ZW +2b8b723bacd503d19c954c114892c6b7 locales/es_AR +c6a229ca597b87d76f4dab984b81269a locales/es_BO +82d08d10a6b495642d29e10881db125e locales/es_CL +d5c0e6d7a7cf3b78c10d01488e56bac6 locales/es_CO +43c977fb2e8c5cf8ebc22e540394c9c5 locales/es_CR +e8e40390b325bda7745c35dcf21ed85b locales/es_DO +4fb0673c208ab98a2e2730d5d276b4ca locales/es_EC +8b594f3f54feee58b532fd79bc5cb3c4 locales/es_ES +a22a41f2de517348cda30ae1abf5c9c8 locales/es_ES@euro +2b48ad6a533e2be0e276309e8d850176 locales/es_GT +2b93a8311856003ac1a8d99c953384fe locales/es_HN +8c4dac544d27d7e13be46f41a7faffc1 locales/es_MX +05a1608d55defa7b3365675fcf877447 locales/es_NI +52cf11d5a1177f0559184b2c9809a646 locales/es_PA +7676d6ef45b605dc41ca263a0281e104 locales/es_PE +8b71100af8e3368b72adb5245ca09ea4 locales/es_PR +8b018e757da1484cb871b57232d541b6 locales/es_PY +a127d052ef4296077cf471e74f512ea3 locales/es_SV +fd0e34704a9924e5c5fa4d8c036ea2cb locales/es_US +11cf1cc98949dfdd46a809132567708d locales/es_UY +23d39b096e723bc42bacf47f178fcd8f locales/es_VE +0cacce3d2ea3cdf629199fa9860cdbc7 locales/et_EE +9c061ce2fa1ed4840a188f4d6571c467 locales/eu_ES +425dea94a607159ca347683ad54bd01c locales/eu_ES@euro +b4d6364a3ded4f5d755ce06ff4113813 locales/fa_IR +01dd74acb0f9f223b8f10cee4d84a27a locales/fi_FI +e7788148a070838b2a955f8581b85ecc locales/fi_FI@euro +72dce48480391d4511ea5652addb7a7f locales/fo_FO +b20965c23b512815e89d19968943f79f locales/fr_BE +9d903d1619eee84f9d6f2548a244f16b locales/fr_BE@euro +27350ff5edcbad23a3cbaf51e5ce9516 locales/fr_CA +85cfedbae2635ff3cc6c020e4fedae77 locales/fr_CH +3d1778f0b391280e0f8e659ffd6540c3 locales/fr_FR +05926a63352664481996d6fc88e89652 locales/fr_FR@euro +f9a73089ca808e23a1f3baa21bed2d16 locales/fr_LU +1197cac6a722879b5bb6be9542849126 locales/fr_LU@euro +f3c44dd40253222ad0e679843129ff93 locales/ga_IE +d2d4dc4afca993cc23ca3f5b8bd14086 locales/ga_IE@euro +371b5a1fbfe1c2f85702e73cc422144f locales/gd_GB +e9a09a754980c57d164542f8836ca7f2 locales/gez_ER +578aad298eab4b7417f63e84def24b70 locales/gez_ER@abegede +1c3588c1649830a853a8b3fb6551f216 locales/gez_ET +5baf61b1452b869a7ef68fb0bc104c93 locales/gez_ET@abegede +932688c021d50c8c006c69e5dd400916 locales/gl_ES +96442bb448710d3bb8b8312aa3aeb1bf locales/gl_ES@euro +843a63c023de548c5bd68a6501b6111f locales/gv_GB +b224f30f6caeb5b4224055b8dffa4e6e locales/he_IL +50316cb01e3d71ad62ece1d1d3c07dee locales/hi_IN +076594c8fca0d8cba6025bc84c632955 locales/hr_HR +a32f724ac52a0b7b93e4f16634434aa6 locales/hu_HU +fbbbf45334e1e194ab1a97c86021a0de locales/hy_AM +d4e0ac1becf81c3d8ee2015149217bec locales/i18n +ce85601a76ae2614f8bda0f32dffdc1c locales/id_ID +b4289c043013ae5eea11d3aecb358def locales/is_IS +41285017b3e92ce96f58b0893693fdd0 locales/iso14651_t1 +3eb074e32f7c47e55b7fc87f4f95ed1f locales/it_CH +9782bbb990596391294615db31ed354b locales/it_IT +ca5c8db6da01632a55e456a1b9c5d06a locales/it_IT@euro +87ec0865bc168f8eb1ccc34f39af3c54 locales/iw_IL +670e8aa17ac05f3d87e02b7b30d821dc locales/ja_JP +91e1303b1a2178d1d65fc1680aeeee73 locales/ka_GE +be1c55fb66abca09de958efda88a2fd2 locales/kl_GL +7c2b56c107bd690d5f1a02b483251108 locales/ko_KR +18606681228f2b3657000b540156d26c locales/kw_GB +8626f9f367ccb8e53ff9134d10e0d3bc locales/lo_LA +b167f637994d4e0dc63278afead20e70 locales/lt_LT +ff1ff54d5c81200f10443d38d4ffe5d9 locales/lug_UG +afc1712af84f72d2ef7df4017d032d0a locales/lv_LV +736f907d676339c1491ef9b05fd72d43 locales/mi_NZ +e5ea9d27b7a744398b7172d217e0fcf4 locales/mk_MK +fd8a499f99ce938a2248a3f15c3734a9 locales/ml_IN +2e8b7bae428155446d7576b0cb30922c locales/mn_MN +b84eb46c82ab6b9d62a2488bdcc20424 locales/mr_IN +cacea2dc23f73bbcb41315b54efa2497 locales/ms_MY +22032e413b237e3065e45ec826cf4f33 locales/mt_MT +e0a1935babff9d11ec1a351f32139b66 locales/nb_NO +f5c3f7b9407b830f81f6fa436025cf8b locales/nl_BE +b8fe92bcb67bd9ce8881245265bc0921 locales/nl_BE@euro +398ed78337e7e54b70c326de73419acc locales/nl_NL +582e91119b249216632792ccc3a4b39c locales/nl_NL@euro +e0c8f075f207f0eeae0126a828e7b002 locales/nn_NO +e08b57d42540a5f6b9583cf0b307e16d locales/oc_FR +291d4f7f52f2de6a12e20a6a772bfa08 locales/om_ET +aff6f78433e871e621625a9d01cce9b0 locales/om_KE +5d76d187628194194670c66b6ed087a4 locales/pl_PL +75a57c202a85a70e526df48b76020fe9 locales/POSIX +00018d0456c949f1e4e6039667a3ce18 locales/pt_BR +71504211f33a2912b4883f4fcebc8e49 locales/pt_PT +ee436677e91daca539d79043c3445cee locales/pt_PT@euro +7f22da8067aae183e4b9f8f2c4c50bb0 locales/ro_RO +87030de9292c9b3f11d4947e3ae39389 locales/ru_RU +b12d40e940af0a7475981a88a7c2efe8 locales/ru_UA +ded75eac13f8497dbbede7e8c0ea23f2 locales/se_NO +9ee09dd75dae654dc0cb5a51e3269a8e locales/sid_ET +b90424a5fa153de8b87d0ea50ddf4b88 locales/sk_SK +fcc825d97cd9c9c28cc9dcdb9b1765c7 locales/sl_SI +fe867afa6e46165623fd32d60cb9d10e locales/so_DJ +bae8167739a8f22df3f11418019a4155 locales/so_ET +b7aa5b5b6a2bbf7252c4b0addac2a022 locales/so_KE +ffbdf559e7ce632ef015484de36693a1 locales/so_SO +62791e8307a9d3752a84e57af6e6a8e2 locales/sq_AL +4a5f61c9afd6c9a7043eefe61ccfa369 locales/sr_YU +d0b1a64f76a9362bd3b9cb8640b3f619 locales/sr_YU@cyrillic +81a23b384860a2f3bbd8589e7093d7de locales/st_ZA +4ef891cdce4c0a55cfcda7e6af47a1e2 locales/sv_FI +3bbf9a4b501088ecc575ae72df849afc locales/sv_FI@euro +79597e3058759603fd29b8a6330264ad locales/sv_SE +20dfa47f8fcc69a25b409360e21d1e06 locales/ta_IN +d2bd445b112ea8e998eea01a10b48b97 locales/te_IN +9c6e97d831e4c5d0007c953608941699 locales/tg_TJ +dfb05377acb07e76b2894d81d0f4a45b locales/th_TH +3e68cfdf175a1e2b9d2be63c111dc054 locales/ti_ER +a91c0d9a6c063ae3cf840581517002fe locales/ti_ET +ca60e4038ea4d4014469963d1d5c34ec locales/tig_ER +f536f6552f808199a79f8c0e17e965df locales/tl_PH +75671aeaff9a0e7bb749c03b60ed4d4e locales/translit_circle +6ecb21da3b802c875d99f4af1864baa8 locales/translit_cjk_compat +1974543ca5f2d3ade1381476d43aeb30 locales/translit_cjk_variants +380e21746526f66ecec28f973c608088 locales/translit_combining +4c15e69cdfd3f3ee604348663f21983a locales/translit_compat +a7bf06733aa33711c79b1884ebc1d16b locales/translit_et +7a9587b2b0a14472ed945d23d99e2479 locales/translit_font +2c1e80f58ae24a9239da80dab21cfdea locales/translit_fraction +e51778b0210e1f5bd9538cd108031e98 locales/translit_hangul +eaa2e353f38bcde0779dc915b45596cd locales/translit_narrow +355db6a426662caf6cc5a711a42ac18d locales/translit_neutral +dd772f49ea41f9528569ec1e999e53a3 locales/translit_small +7f2820edbc0323952e3b9043df95630a locales/translit_wide +277e145e97d3ae10da1e9f6e6fb24faf locales/tr_TR +ec6144a5d6bfdcda3f1df77d10e5352f locales/tt_RU +899c3baab6ceb6525f16107319b6fba1 locales/uk_UA +a3116f5e4244b9413244e7efd951f18f locales/ur_PK +10e979f6e29034b3b87478ed532faf8b locales/uz_UZ +f53b5b9bdc0ece4ba5bbc6851181ddea locales/uz_UZ@cyrillic +e01a1f876fe923b192f5d8475a24e70c locales/vi_VN +d32625e7bbdef12e210855d2ed7a1fd9 locales/wa_BE +5593017a2088448a06a0dededc590ebf locales/wa_BE@euro +6d741c89481f57554d4803e4810a9e93 locales/xh_ZA +43e6de668e54a9d5f95dbacd561daed7 locales/yi_US +e582e3d3526610821f7151d404b6d9f3 locales/zh_CN +75d7f18534abad8f90d5ee9b09287cce locales/zh_HK +683fdb012a69950961dd9ff92f67d928 locales/zh_SG +6342a0bd67a627fc94b9755f0c21e199 locales/zh_TW +062e7d6c0ddee5bb0b1cbf934f656fe2 locales/zu_ZA -- 2.7.4