Commit Graph

7003 Commits

Author SHA1 Message Date
Ulrich Drepper
fc618fd0fd Update.
* stdlib/Makefile: Remove code to automatically import GMP.
2002-12-13 00:56:24 +00:00
Ulrich Drepper
efd56f5391 Update.
* elf/Makefile (tests): Add rules to build and run check-textrel.
	* elf/check-textrel.c: New file.
2002-12-12 21:51:52 +00:00
Ulrich Drepper
2ad2e1e702 Update.
2002-12-12  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/sysdep.h (SETUP_PIC_REG): Add .size
	directive.
2002-12-12 18:29:08 +00:00
Ulrich Drepper
688e7bfe2b Update.
2002-12-11  Jakub Jelinek  <jakub@redhat.com>

	* io/test-utime (main): If stnow.st[am]time is wrong, print it and
	not st.st[am]time.
2002-12-12 09:25:42 +00:00
Ulrich Drepper
57f97cff02 Update.
2002-04-30  Bruno Haible  <bruno@clisp.org>

	* intl/loadmsgcat.c (_nl_init_domain_conv): Don't append //TRANSLIT to
	the encoding if it already has slashes.
	Reported by Perry Rapp <prapp@erols.com>.
2002-12-12 06:58:20 +00:00
Roland McGrath
d004f303b6 * csu/Makefile ($(objpfx)elf-init.oS): Remove target, braino.
(CPPFLAGS-elf-init.oS, CFLAGS-elf-init.oS): New variables.
	Turn off PIC for compiling this file.
2002-12-12 02:44:03 +00:00
Ulrich Drepper
f494b70b55 Update.
2002-12-11  Ulrich Drepper  <drepper@redhat.com>

	* malloc/thread-m.h: Remove thread_id type and MUTEX_INITIALIZER
	definitions.  Not needed.
	[_LIBC]: Use definitions from libc-lock.h instead of referencing
	pthread routines directly.
	* malloc/arena.c (ptmalloc_unlock_all2): Don't add (void) to
	mutex_init calls.
	(arena_get2): Don't look at return value of mutex_lock.
2002-12-12 01:01:43 +00:00
Roland McGrath
6161ef14c3 * csu/Makefile ($(objpfx)elf-init.oS): New target, just clone
elf-init.o instead of compiling a PIC version.
2002-12-11 23:13:29 +00:00
Roland McGrath
0f1316460c * intl/gettext.h: Renamed to ...
* intl/gmo.h: ... here.
	* intl/Makefile (distribute): Add gmo.h, remove gettext.h.
	* intl/gettextP.h: Update.
	* intl/loadmsgcat.c: Update.

	* intl/gettextP.h (PARAMS): Make more portable.
	(attribute_hidden): Define as empty macro if not already defined.
	* intl/hash-string.h (PARAMS): Make more portable.
	* intl/loadinfo.h (PARAMS): Likewise.
	* intl/plural-exp.h (PARAMS): Likewise.
	(attribute_hidden): Move definition near the definition of
	internal_function.

	* intl/gettextP.h (_nl_locale_name) [!_LIBC]: New declaration.
	* intl/plural-exp.h (plural_eval) [!_LIBC]: New declaration.

2002-07-13  Bruno Haible  <bruno@clisp.org>

	* intl/dcigettext.c (freea): New macro.
	(FREE_BLOCKS): Free also the registered blocks.
	(DCIGETTEXT): Free the 'search' variable.
	Reported by Andreas Fischer <a.fischer@asentics.de>.

2002-04-27  Bruno Haible  <bruno@clisp.org>

	* intl/gettextP.h [! _LIBC]: Use prefix libintl_ instead of suffix __.
	* intl/dcigettext.c: Likewise.
	* intl/dcgettext.c: Likewise.
	* intl/dgettext.c: Likewise.
	* intl/gettext.c: Likewise.
	* intl/dcngettext.c: Likewise.
	* intl/dngettext.c: Likewise.
	* intl/ngettext.c: Likewise.
	* intl/textdomain.c: Likewise.
	* intl/bindtextdom.c: Likewise.
	* intl/plural-exp.h: Likewise.

2002-01-02  Bruno Haible  <bruno@clisp.org>

	* intl/loadmsgcat.c (_nl_init_domain_conv): Use PARAMS in extern decl.

2001-04-30  Bruno Haible  <bruno@clisp.org>

	* intl/dcigettext.c (getuid, getgid, geteuid, getegid): Provide
	default macro definitions.  Needed for mingw32.
2002-12-11 22:59:29 +00:00
Ulrich Drepper
70a8ca6d89 Update.
* sysdeps/i386/bits/byteswap.h (__bswap_64): Apply
	__builtin_constant_p to macro parameter.
2002-12-11 06:32:37 +00:00
Ulrich Drepper
34a075bea3 Update.
* sysdeps/generic/sigpause.c: Define all functions as weak.
	* sysdeps/posix/sigpause.c: Likewise.
2002-12-11 00:55:49 +00:00
Ulrich Drepper
9cfd817252 Update.
2002-12-10  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/posix/sigpause.c: Define all functions as weak.

	* elf/tst-tls7.c (do_test): Adjustments for l_tls_modid being of
	type size_t.
2002-12-11 00:49:28 +00:00
Roland McGrath
d00453348c * elf/tst-array1.c (preinit_array, init_array, fini_array):
Explicitly align the array to sizeof (void *).
	* elf/tst-array2dep.c (init_array, fini_array): Likewise.
2002-12-10 23:28:57 +00:00
Ulrich Drepper
dce8f2b62a Update.
2002-12-10  Jakub Jelinek  <jakub@redhat.com>

	* include/libc-symbols.h: Fix a comment typo.

	* sysdeps/unix/sysv/linux/alpha/select.S (__libc_select): New alias.
	* sysdeps/unix/sysv/linux/alpha/sigsuspend.S (__libc_sigsuspend):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigsuspend.c (__libc_sigsuspend):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c
	(__libc_sigsuspend): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c
	(__libc_sigsuspend): Likewise.
	* sysdeps/generic/creat.c (__libc_creat): Renamed from creat.
	(creat): New weak alias.
2002-12-10 20:35:58 +00:00
Ulrich Drepper
818d08de37 Update.
* Versions.def: No new symbols in 2.3.1, but some new ones in 2.3.2.
2002-12-10 19:45:21 +00:00
Roland McGrath
f0baa8234d * manual/libc-texinfo.sh: Emit @set ADD-ON for each ADD-ON that
contributes a manual chapter.
	* manual/signal.texi (Process Signal Mask): Use @ifset linuxthreads
	around xref to it.
2002-12-10 11:08:11 +00:00
Roland McGrath
2402cdf37f * sysdeps/unix/sysv/linux/dl-librecon.h (EXTRA_LD_ENVVARS): Refer to
and move contents to ...
	(EXTRA_LD_ENVVARS_LINUX): ... this new macro.  Add break for nonmatch.
	* sysdeps/unix/sysv/linux/i386/dl-librecon.h (EXTRA_LD_ENVVARS): Use
	it instead of duplicating its contents.
	(EXTRA_LD_ENVVARS): Likewise.  Add break for nonmatch.

2002-12-09  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-support.c (_dl_non_dynamic_init): Add DL_OSVERSION_INIT if
	defined.
	* sysdeps/unix/sysv/linux/dl-librecon.h (_dl_osversion_init): New
	function.
	(EXTRA_LD_ENVVARS): Use it.
	(DL_OSVERSION_INIT): Define.
	* sysdeps/unix/sysv/linux/i386/dl-librecon.h: Include linux
	dl-librecon.h.
	(EXTRA_LD_ENVVARS): Undef before defining.  Use _dl_osversion_init.
2002-12-10 10:31:03 +00:00
Ulrich Drepper
5a6dcd0d89 Update.
2002-12-10  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/closedir.c (__closedir): Remove __libc_lock_lock
	call.  It is not allowed to destroy pthread mutexes which are
	still in use even though it is safe for our implementations.  If
	somebody still uses the descriptor it is a bug.
2002-12-10 10:00:51 +00:00
Roland McGrath
741e0d64d2 * csu/abi-note.S: Use .p2align, not .align. 2002-12-10 05:10:08 +00:00
Ulrich Drepper
e5e45b5337 Update.
2002-12-09  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/syscalls.list: Add __libc_creat and
	__libc_select aliases.

	* sysdeps/unix/sysv/linux/sigwaitinfo.c: Define __libc_sigwaitinfo
	alias.

	* sysdeps/unix/sysv/linux/sigwait.c: Define __libc_sigwait alias.

	* sysdeps/unix/sysv/linux/sigsuspend.c: Define __libc_sigsuspend alias.

	* sysdeps/unix/sysv/linux/poll.c: Define __libc_poll alias.

	* sysdeps/unix/syscalls.list: Define __libc_select alias.

	* sysdeps/posix/waitid.c: Define __libc_waitid alias.

	* sysdeps/posix/sigpause.c: Define __libc_sigpause and
	__libc___xpg_sigpause aliases.

	* sysdeps/generic/pselect.c: Define __libc_pselect alias.

	* misc/error.c: Remove use of USE_IN_LIBIO.
2002-12-10 04:05:39 +00:00
Roland McGrath
06b31ad3ef * elf/Makefile (tests): Uncomment tst-array[123].
* Makeconfig (CPPFLAGS-.oS): Add -DLIBC_NONSHARED=1.
	* csu/elf-init.c: New file.
	* csu/Makefile (routines, static-only-routines): Add elf-init.
	* sysdeps/alpha/elf/start.S: Use __libc_csu_init in place of _init
	and __libc_csu_fini in place of _fini.
	* sysdeps/arm/elf/start.S: Likewise.
	* sysdeps/cris/elf/start.S: Likewise.
	* sysdeps/hppa/elf/start.S: Likewise.
	* sysdeps/i386/elf/start.S: Likewise.
	* sysdeps/ia64/elf/start.S: Likewise.
	* sysdeps/m68k/elf/start.S: Likewise.
	* sysdeps/mach/hurd/powerpc/static-start.S: Likewise.
	* sysdeps/mips/elf/start.S: Likewise.
	* sysdeps/powerpc/powerpc32/elf/start.S: Likewise.
	* sysdeps/powerpc/powerpc64/elf/start.S: Likewise.
	* sysdeps/s390/s390-32/elf/start.S: Likewise.
	* sysdeps/s390/s390-64/elf/start.S: Likewise.
	* sysdeps/sh/elf/start.S: Likewise.
	* sysdeps/sparc/sparc32/elf/start.S: Likewise.
	* sysdeps/sparc/sparc64/elf/start.S: Likewise.
	* sysdeps/x86_64/elf/start.S: Likewise.
2002-12-09 20:37:37 +00:00
Roland McGrath
57b4cb2522 * sysdeps/pthread/aio_notify.c (notify_func_wrapper): Take a malloc'd
struct containing function ptr and value, free it.
	(__aio_notify_only): Allocate that and copy values from SIGEV into it.
	It's not safe to let the new thread use the SIGEV pointer.
2002-12-09 07:14:24 +00:00
Roland McGrath
531da978ce * misc/error.c (strerror_r): Do not declare unless [!_LIBC].
Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
	Use strerror_r that is only a macro, even if it is not a function.
	(strerror): Check for HAVE_DECL_STRERROR before declaring.
	(private_strerror): Use prototypes, not old-style function definition.
	(print_errno_message): New function.
	Support the POSIX 'int'-flavored strerror_r, as well as the traditional
	char*-flavored one.
	(error_tail, error, error_at_line): Use it.
2002-12-09 02:03:28 +00:00
Ulrich Drepper
f92921c5cf Update.
2002-12-07  Carlos O'Donell  <carlos@baldric.uwo.ca>

	* sysdeps/unix/sysv/linux/hppa/bits/shm.h: Added SHMLBA #define.
2002-12-08 22:55:19 +00:00
Ulrich Drepper
bdb04f9220 Update.
* scripts/output-format.sed: Fix bug in one of the s expressions
	which used / for one too many things.
2002-12-08 08:25:05 +00:00
Ulrich Drepper
3335502bec Update.
2002-12-08  Ulrich Drepper  <drepper@redhat.com>

	* include/unistd.h: Declare __libc_close.
2002-12-08 08:05:25 +00:00
Ulrich Drepper
09efc3ba12 Update.
2002-12-07  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/generic/bits/stdio-lock.h (_IO_lock_trylock): New define.
2002-12-08 03:13:06 +00:00
Roland McGrath
82412d5402 * sysdeps/generic/libc-tls.c (__libc_setup_tls): Reintroduce changes
from 2002-12-06, but remove unnecessary memset call without removing
	necessary copy of initialization image.

	* Makerules ($(common-objpfx)format.lds): New target.
	(common-generated): Add it.
	($(inst_libdir)/libc.so): Depend on that, and cat it into the result.
	* scripts/output-format.sed: New file.
	* Makefile (distribute): Add it.

2002-12-07  Kenneth W. Chen  <kenneth.w.chen@intel.com>
2002-12-07 21:55:56 +00:00
Ulrich Drepper
99343c0579 Update.
2002-12-07  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/generic/libc-tls.c: Include <sys/param.h>.
	Reported by Art Haas <ahaas@airmail.net>.

2002-12-07  Kenneth W. Chen  <kenneth.w.chen@intel.com>.
2002-12-07 18:46:53 +00:00
Ulrich Drepper
739ca6906a Update.
2002-12-07  Kenneth W. Chen <kenneth.w.chen@intel.com>.

	* sysdeps/ia64/strncpy.S (strncpy): Clear ar.ec.  Fix .recovery4.

2002-12-07  Jakub Jelinek  <jakub@redhat.com>

	* string/test-strncpy.c (do_random_tests): Improve test coverage.
2002-12-07 09:03:23 +00:00
Ulrich Drepper
4614167ae7 Update.
* test-skeleton.c (timeout_handler): Allow expected signal to be
	SIGALRM.
2002-12-07 05:39:20 +00:00
Ulrich Drepper
85d1401f1b Update.
2002-12-06  Ulrich Drepper  <drepper@redhat.com>

	* wctype/wcfuncs.c: Add libc_hidden_def for iswalnum.

	* sysdeps/posix/raise.c: Add libc_hidden_def for raise.
2002-12-07 04:21:51 +00:00
Ulrich Drepper
9bd9c81528 Update.
2002-12-07  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h [RTLD_PRIVATE_ERRNO]
	(SYSCALL_ERROR_HANDLER): Fix a pasto.
	Reported by Jeff Bailey <jbailey@nisa.net>.
2002-12-07 02:12:17 +00:00
Ulrich Drepper
01054d37f2 Update.
* sysdeps/generic/libc-tls.c: Undo last patch.
2002-12-07 01:24:46 +00:00
Ulrich Drepper
13ece8977b Update.
* include/wctype.h: Define iswalnum with libc_hidden_proto.

	* include/signal.h: Define raise with libc_hidden_proto.

	* sysdeps/unix/sysv/linux/fexecve.c (fexecve): Use __snprintf and
	__execve instead of snprintf and execve.
2002-12-06 23:38:01 +00:00
Ulrich Drepper
01cec3edaa Update.
2002-12-06  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/x86_64/fpu/libm-test-ulps: Relax errors for float and double
	again a bit.
2002-12-06 22:29:26 +00:00
Roland McGrath
593d2ac88e * posix/Makefile (annexc.out): Add -I../dir for all sorted-dirs.
* posix/annexc.c (fmt, testfmt): Remove -D_LIBC.
2002-12-06 22:08:25 +00:00
Ulrich Drepper
d3c9f89525 Update.
2002-12-06  Ulrich Drepper  <drepper@redhat.com>

	* misc/syslog.c (log_cleanup): New function.
	(openlog): Use log_cleanup instead of __libc_mutex_unlock.
	(closelog): Likewise.

	* elf/dl-close.c: Use __rtld_lock_* macros instead of __libc_lock_*.
	* elf/dl-iteratephdr.c: Likewise.
	* elf/dl-lookup.c: Likewise.
	* elf/dl-misc.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-support.c: Likewise.
	* elf/rtld.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/generic/bits/libc-lock.h: Define __rtld_lock_* macros.
	* sysdeps/mach/bits/libc-lock.h: Likewise.
	* sysdeps/mach/hurd/bits/libc-lock.h: Likewise.

	* dirent/bug-readdir1.c (main): Don't call closedir, just close
2002-12-06 11:49:42 +00:00
Roland McGrath
fde89ad009 * sysdeps/generic/libc-tls.c (__libc_setup_tls): Cope with zero ALIGN.
* malloc/hooks.c [_LIBC && (USE___THREAD || (USE_TLS && !SHARED))]
	(malloc_starter, memalign_starter, free_starter): Don't define these.
	* malloc/malloc.c [_LIBC && (USE___THREAD || (USE_TLS && !SHARED))]:
	Don't declare them either.
	* malloc/arena.c (ptmalloc_init) [_LIBC && USE_TLS]: Don't call
	__pthread_initialize, so no need to set hooks to *_starter.
	(ptmalloc_init_minimal): New function, broken out of ptmalloc_init.
	[_LIBC && SHARED && USE_TLS && !USE___THREAD]
	(__libc_malloc_pthread_startup): New function.
	* malloc/Versions (libc: GLIBC_PRIVATE): New set, add that function.

	* malloc/hooks.c (memalign_starter): New function.
	* malloc/malloc.c: Declare it.
	* malloc/arena.c (save_memalign_hook): New variable.
	(ptmalloc_init): Set __memalign_hook to memalign_starter.

	* elf/dl-minimal.c (free): Clear the memory.
	(calloc): Just call malloc, knowing all memory it returns is cleared.

	* sysdeps/generic/dl-tls.c (allocate_dtv): Use calloc instead of
	malloc and memset; calloc can avoid the zeroing when redundant.
	(_dl_tls_setup): Likewise.
	* elf/dl-load.c (decompose_rpath): Likewise.
	* sysdeps/generic/libc-tls.c (__libc_setup_tls): Comment out memset
	call, since memory from sbrk at startup is already zero.

	* elf/rtld.c (_dl_start, dl_main): TLS_INIT_TP macro now returns an
	error string for failure, null for success.  Update callers.
	* sysdeps/generic/libc-tls.c (__libc_setup_tls): Likewise.
	* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
2002-12-06 11:15:07 +00:00
Roland McGrath
9cf6fef171 * sysdeps/unix/sysv/linux/x86_64/syscalls.list (sendfile): Change
args to i:iipi.
	(readahead): Change args to i:iii.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list (readahead):
	Change args to i:iii.
	* sysdeps/unix/sysv/linux/mips/syscalls.list (readahead): Change
	args to i:iiii.
2002-12-05 23:47:33 +00:00
Roland McGrath
ca4961c095 * stdlib/cxa_finalize.c (__cxa_finalize): When given a null argument,
call all functions rather than none.
	Reported by Mark P. Mitchell <mark@codesourcery.com>.
2002-12-05 22:34:59 +00:00
Roland McGrath
cbf949bb71 * locale/localeinfo.h [NL_CURRENT_INDIRECT]: Use attribute_tls_model_ie
on _nl_current_LC_* variables.
2002-12-05 11:06:49 +00:00
Ulrich Drepper
bf6fc6c1a5 Update.
2002-12-05  Ulrich Drepper  <drepper@redhat.com>

	* dirent/bug-readdir1.c (main): Don't call closedir, just close on
	the file descriptor.  This is testing what the bug report was about.
2002-12-05 10:45:13 +00:00
Ulrich Drepper
d8d317454d Update.
* po/be.po: New file.
2002-12-05 06:14:03 +00:00
Ulrich Drepper
eaa4099fd6 Update.
* sysdeps/unix/sysv/linux/alpha/bits/siginfo.h: (struct sigevent):
	Change type of _attribute to void*.
	* sysdeps/unix/sysv/linux/ia64/bits/siginfo.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/siginfo.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/siginfo.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/siginfo.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/siginfo.h: Likewise.
2002-12-05 01:09:19 +00:00
Ulrich Drepper
c4a6d85994 Update.
2002-12-04  Ulrich Drepper  <drepper@redhat.com>

	* argp/Makefile (tests): Add tst-argp1.
2002-12-04 19:53:08 +00:00
Roland McGrath
216455bc28 * sysdeps/generic/ldsodefs.h (struct rtld_global): Move all [USE_TLS]
members to the end, so a libpthread compiled with !USE_TLS will still
	find other members properly.

	* sysdeps/i386/i486/bits/string.h (__strcpy_g): Add dummy output
	operand for DEST memory.  Fix dummy input operand to use SRC.
	Reported by Davin McCall <davmac@ozonline.com.au>.

	* sysdeps/generic/libc-tls.c (__libc_setup_tls): Account for TCB
	alignment when initializing the DTV entry.

	* elf/dl-load.c (_dl_map_object_from_fd): If we hit a TLS segment
	when TLS has not been set up, try to set it up if we can.
	* elf/tst-tls4.c: Revert last change.
	* elf/tst-tls5.c: Likewise.
	* elf/tst-tls6.c: Likewise.
	* elf/tst-tls7.c: Likewise.
	* elf/tst-tls8.c: Likewise.
	* elf/tst-tls9.c: Likewise.

	* sysdeps/generic/dl-tls.c [SHARED] (_dl_tls_setup): New function.
	* sysdeps/generic/ldsodefs.h: Declare it.
	* elf/Versions (ld: GLIBC_PRIVATE): Add it.
	* sysdeps/generic/libc-tls.c (init_slotinfo): New static inline
	function, broken out of __libc_setup_tls.
	(init_static_tls): Likewise.
	(__libc_setup_tls): Call them.
	(_dl_tls_setup): New function, uses new subroutines.

	* elf/dl-close.c (free_slotinfo): Make argument pointer to pointer.
	Clear the pointer when returning true.
	(libc_freeres_fn) [SHARED]: If GL(dl_initial_dtv) is null, free the
	first element of the slotinfo list too.

	* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Define only if
	[SHARED].

	* sysdeps/generic/ldsodefs.h (_dl_next_tls_modid): Declare as hidden.
	(_dl_determine_tlsoffset): Likewise.

	* elf/rtld.c (_dl_initial_error_catch_tsd): Renamed from
	startup_error_tsd, made global.
	(dl_main): Update initialization.
	* elf/dl-tsd.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Declare it.
2002-12-04 12:30:40 +00:00
Ulrich Drepper
d16055ee52 Update.
2002-12-03  Ulrich Drepper  <drepper@redhat.com>

	* manual/texinfo.tex: Update from latest upstream version.
2002-12-04 06:33:29 +00:00
Roland McGrath
852ce9bc38 * sysdeps/generic/libc-tls.c (__libc_setup_tls): Include static TLS
area surplus in calculation for sbrk call.
2002-12-04 04:20:40 +00:00
Roland McGrath
b15c9395a8 * iconvdata/cp1125.c: New file.
* iconvdata/Makefile (distribute): Add it.
	(modules): Add CP1125.
	(gen-8bit-gap-modules): Add cp1125.
	* iconvdata/gconv-modules: Add CP1125, alias RUSCII.
	* iconvdata/tst-tables.sh: Add CP1125 to the list to test.
2002-12-03 21:52:23 +00:00