The build took 00h 01m 09s and was SUCCESSFUL.
The program in this build is written in the following languages, according to sloccount:
SLOC | Language |
---|---|
853 |
ansic |
152 |
sh |
143 |
makefile |
25 |
perl |
15 |
sed |
1,188 |
total |
The process tree of the build process is here.
To avoid scrolling, you may jump to the last line of the
invocation of makepkg
that was used to build this
package.
Removed vanilla repositories from pacman.conf and added:
There were existing files in /sysroot, using those
CMD: sudo -u tuscan PATH=/sysroot/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin CC=clang CXX=clang++ red makepkg --noextract --syncdeps --skipinteg --skippgpcheck --skipchecksums --noconfirm --nocolor --log --noprogressbar --nocheck
==> Making package: pwgen 2.07-1 (Wed Apr 5 00:05:32 UTC 2017)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting build()...
checking for x86_64-unknown-linux-gcc... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking for clang option to accept ISO C89... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking for mv... /usr/sbin/mv
checking for rm... /usr/sbin/rm
checking for sed... /usr/sbin/sed
checking for perl... /usr/sbin/perl
checking for getopt_long... yes
checking how to run the C preprocessor... clang -E
checking for grep that handles long lines and -e... /usr/sbin/grep
checking for egrep... /usr/sbin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
configure: creating ./config.status
config.status: creating Makefile
clang -c -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_GETOPT_LONG=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETOPT_H=1 -Wall -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -pedantic pwgen.c -o pwgen.o
clang -c -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_GETOPT_LONG=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETOPT_H=1 -Wall -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -pedantic pw_phonemes.c -o pw_phonemes.o
clang -c -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_GETOPT_LONG=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETOPT_H=1 -Wall -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -pedantic pw_rand.c -o pw_rand.o
clang -c -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_GETOPT_LONG=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETOPT_H=1 -Wall -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -pedantic randnum.c -o randnum.o
clang -c -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_GETOPT_LONG=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETOPT_H=1 -Wall -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -pedantic sha1.c -o sha1.o
clang -c -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_GETOPT_LONG=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETOPT_H=1 -Wall -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -pedantic sha1num.c -o sha1num.o
randnum.c:54:6: warning: variable 'nbytes' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
if (fd >= 0) {
^~~~~~~
randnum.c:71:6: note: uninitialized use occurs here
if (nbytes == 0)
^~~~~~
randnum.c:54:2: note: remove the 'if' if its condition is always true
if (fd >= 0) {
^~~~~~~~~~~~~
randnum.c:50:30: note: initialize the variable 'nbytes' to silence this warning
int lose_counter = 0, nbytes;
^
= 0
1 warning generated.
clang -o pwgen pwgen.o pw_phonemes.o pw_rand.o randnum.o sha1.o sha1num.o
==> Entering fakeroot environment...
==> Starting package()...
make: Entering directory '/tmp/pwgen/src/pwgen-2.07'
mkdir -p /tmp/pwgen/pkg/pwgen/usr/bin /tmp/pwgen/pkg/pwgen/usr/share/man/man1
/usr/bin/install -c pwgen /tmp/pwgen/pkg/pwgen/usr/bin/pwgen
/usr/bin/install -c -m 644 ./pwgen.1 /tmp/pwgen/pkg/pwgen/usr/share/man/man1/pwgen.1
make: Leaving directory '/tmp/pwgen/src/pwgen-2.07'
==> Tidying install...
-> Removing doc files...
-> Purging unwanted files...
==> Checking for packaging issue...
==> Creating package "pwgen"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
error: invalid option '--noprogressbar'
-> Generating .MTREE file...
-> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: pwgen 2.07-1 (Wed Apr 5 00:05:36 UTC 2017)
CMD: pacman --query --file pwgen-2.07-1-x86_64.pkg.tar.xz
Creating hybrid package for 'pwgen'
Trying to find vanilla package 'pwgen'...
CMD: pacman --query --file /mirror/pwgen-2.07-1.pkg.tar.xz
Package file has the following structure:
Generating .MTREE
CMD: bsdtar -czf .MTREE --format=mtree --options=!all,use-set,type,uid,mode,time,size,md5,sha256,link .PKGINFO usr
Tar-ing up files
CMD: bsdtar -cf - .PKGINFO usr .MTREE
CMD: xz -c -z
Successfully ran bsdtar -cf - .PKGINFO usr .MTREE | xz -c -z
CMD: bsdtar -tqf pwgen.pkg.tar.xz .PKGINFO
Created package at path /var/cache/pacman/pkg/pwgen.pkg.tar.xz
Attempting to access local repository, attempt 1
CMD: repo-add /var/cache/pacman/pkg/tuscan.db.tar /var/cache/pacman/pkg/pwgen.pkg.tar.xz
==> Extracting database to a temporary location...
==> Extracting database to a temporary location...
==> Adding package '/var/cache/pacman/pkg/pwgen.pkg.tar.xz'
-> Computing checksums...
-> Creating 'desc' db entry...
-> Creating 'files' db entry...
==> Creating updated database file '/var/cache/pacman/pkg/tuscan.db.tar'
Printing config logfiles
CMD: config logfiles '/tmp/pwgen/src/pwgen-2.07/config.log'
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by configure, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ ./configure --host=x86_64-unknown-linux --prefix=/usr --mandir=/usr/share/man
## --------- ##
## Platform. ##
## --------- ##
hostname = f6e5be53b719
uname -m = x86_64
uname -r = 4.10.6-1-ARCH
uname -s = Linux
uname -v = #1 SMP PREEMPT Mon Mar 27 08:28:22 CEST 2017
/usr/bin/uname -p = unknown
/bin/uname -X = unknown
/bin/arch = unknown
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown
PATH: /sysroot/bin
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
## ----------- ##
## Core tests. ##
## ----------- ##
configure:2093: checking for x86_64-unknown-linux-gcc
configure:2120: result: clang
configure:2389: checking for C compiler version
configure:2398: clang --version >&5
clang version 3.8.1
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /
configure:2409: $? = 0
configure:2398: clang -v >&5
clang version 3.8.1
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /
Found candidate GCC installation: //../lib/gcc/x86_64-pc-linux-gnu/6.1.1
Found candidate GCC installation: //../lib64/gcc/x86_64-pc-linux-gnu/6.1.1
Selected GCC installation: //../lib64/gcc/x86_64-pc-linux-gnu/6.1.1
Candidate multilib: .;@m64
Selected multilib: .;@m64
configure:2409: $? = 0
configure:2398: clang -V >&5
clang-3.8: error: argument to '-V' is missing (expected 1 value)
clang-3.8: error: no input files
configure:2409: $? = 1
configure:2398: clang -qversion >&5
clang-3.8: error: unknown argument: '-qversion'
clang-3.8: error: no input files
configure:2409: $? = 1
configure:2429: checking whether the C compiler works
configure:2451: clang conftest.c >&5
configure:2455: $? = 0
configure:2503: result: yes
configure:2506: checking for C compiler default output file name
configure:2508: result: a.out
configure:2514: checking for suffix of executables
configure:2521: clang -o conftest conftest.c >&5
configure:2525: $? = 0
configure:2547: result:
configure:2569: checking whether we are cross compiling
configure:2577: clang -o conftest conftest.c >&5
configure:2581: $? = 0
configure:2588: ./conftest
./conftest: error while loading shared libraries: /usr/lib/libc.so: invalid ELF header
configure:2592: $? = 127
configure:2607: result: yes
configure:2612: checking for suffix of object files
configure:2634: clang -c conftest.c >&5
configure:2638: $? = 0
configure:2659: result: o
configure:2663: checking whether we are using the GNU C compiler
configure:2682: clang -c conftest.c >&5
configure:2682: $? = 0
configure:2691: result: yes
configure:2700: checking whether clang accepts -g
configure:2720: clang -c -g conftest.c >&5
configure:2720: $? = 0
configure:2761: result: yes
configure:2778: checking for clang option to accept ISO C89
configure:2841: clang -c conftest.c >&5
configure:2841: $? = 0
configure:2854: result: none needed
configure:2917: checking for a BSD-compatible install
configure:2985: result: /usr/bin/install -c
configure:2998: checking for mv
configure:3016: found /usr/sbin/mv
configure:3029: result: /usr/sbin/mv
configure:3039: checking for rm
configure:3057: found /usr/sbin/rm
configure:3070: result: /usr/sbin/rm
configure:3080: checking for sed
configure:3098: found /usr/sbin/sed
configure:3111: result: /usr/sbin/sed
configure:3121: checking for perl
configure:3139: found /usr/sbin/perl
configure:3152: result: /usr/sbin/perl
configure:3163: checking for getopt_long
configure:3163: clang -o conftest conftest.c >&5
configure:3163: $? = 0
configure:3163: result: yes
configure:3177: checking how to run the C preprocessor
configure:3208: clang -E conftest.c
configure:3208: $? = 0
configure:3222: clang -E conftest.c
conftest.c:10:10: fatal error: 'ac_nonexistent.h' file not found
#include
^
1 error generated.
configure:3222: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define HAVE_GETOPT_LONG 1
| /* end confdefs.h. */
| #include
configure:3247: result: clang -E
configure:3267: clang -E conftest.c
configure:3267: $? = 0
configure:3281: clang -E conftest.c
conftest.c:10:10: fatal error: 'ac_nonexistent.h' file not found
#include
^
1 error generated.
configure:3281: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define HAVE_GETOPT_LONG 1
| /* end confdefs.h. */
| #include
configure:3310: checking for grep that handles long lines and -e
configure:3368: result: /usr/sbin/grep
configure:3373: checking for egrep
configure:3435: result: /usr/sbin/grep -E
configure:3440: checking for ANSI C header files
configure:3460: clang -c conftest.c >&5
configure:3460: $? = 0
configure:3544: result: yes
configure:3557: checking for sys/types.h
configure:3557: clang -c conftest.c >&5
configure:3557: $? = 0
configure:3557: result: yes
configure:3557: checking for sys/stat.h
configure:3557: clang -c conftest.c >&5
configure:3557: $? = 0
configure:3557: result: yes
configure:3557: checking for stdlib.h
configure:3557: clang -c conftest.c >&5
configure:3557: $? = 0
configure:3557: result: yes
configure:3557: checking for string.h
configure:3557: clang -c conftest.c >&5
configure:3557: $? = 0
configure:3557: result: yes
configure:3557: checking for memory.h
configure:3557: clang -c conftest.c >&5
configure:3557: $? = 0
configure:3557: result: yes
configure:3557: checking for strings.h
configure:3557: clang -c conftest.c >&5
configure:3557: $? = 0
configure:3557: result: yes
configure:3557: checking for inttypes.h
configure:3557: clang -c conftest.c >&5
configure:3557: $? = 0
configure:3557: result: yes
configure:3557: checking for stdint.h
configure:3557: clang -c conftest.c >&5
configure:3557: $? = 0
configure:3557: result: yes
configure:3557: checking for unistd.h
configure:3557: clang -c conftest.c >&5
configure:3557: $? = 0
configure:3557: result: yes
configure:3571: checking getopt.h usability
configure:3571: clang -c conftest.c >&5
configure:3571: $? = 0
configure:3571: result: yes
configure:3571: checking getopt.h presence
configure:3571: clang -E conftest.c
configure:3571: $? = 0
configure:3571: result: yes
configure:3571: checking for getopt.h
configure:3571: result: yes
configure:3733: creating ./config.status
## ---------------------- ##
## Running config.status. ##
## ---------------------- ##
This file was extended by config.status, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES =
CONFIG_HEADERS =
CONFIG_LINKS =
CONFIG_COMMANDS =
$ ./config.status
on f6e5be53b719
config.status:731: creating Makefile
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_c_compiler_gnu=yes
ac_cv_env_CC_set=set
ac_cv_env_CC_value=clang
ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=set
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_LDFLAGS_set=set
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=set
ac_cv_env_host_alias_value=x86_64-unknown-linux
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_func_getopt_long=yes
ac_cv_header_getopt_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_memory_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_objext=o
ac_cv_path_EGREP='/usr/sbin/grep -E'
ac_cv_path_GREP=/usr/sbin/grep
ac_cv_path_MV=/usr/sbin/mv
ac_cv_path_PERL=/usr/sbin/perl
ac_cv_path_RM=/usr/sbin/rm
ac_cv_path_SED=/usr/sbin/sed
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_CC=clang
ac_cv_prog_CPP='clang -E'
ac_cv_prog_cc_c89=
ac_cv_prog_cc_g=yes
## ----------------- ##
## Output variables. ##
## ----------------- ##
CC='clang'
CFLAGS=''
CPP='clang -E'
CPPFLAGS=''
DEFS='-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_GETOPT_LONG=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETOPT_H=1'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/usr/sbin/grep -E'
EXEEXT=''
GREP='/usr/sbin/grep'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LTLIBOBJS=''
MV='/usr/sbin/mv'
OBJEXT='o'
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_URL=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
PERL='/usr/sbin/perl'
RM='/usr/sbin/rm'
SED='/usr/sbin/sed'
SHELL='/bin/sh'
ac_ct_CC=''
bindir='${exec_prefix}/bin'
build_alias=''
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE}'
dvidir='${docdir}'
exec_prefix='${prefix}'
host_alias='x86_64-unknown-linux'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='/usr/share/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''
## ----------- ##
## confdefs.h. ##
## ----------- ##
/* confdefs.h */
#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""
#define HAVE_GETOPT_LONG 1
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define HAVE_GETOPT_H 1
configure: exit 0